diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h index 413664746b..2393e9c13d 100644 --- a/include/SSystem/SComponent/c_cc_d.h +++ b/include/SSystem/SComponent/c_cc_d.h @@ -221,7 +221,7 @@ public: u32 MskRPrm(u32 mask) const { return mRPrm & mask; } void OnSPrmBit(u32 flag) { mSPrm |= flag; } void OffSPrmBit(u32 flag) { mSPrm &= ~flag; } - u32 ChkSPrm(u32 prm) const { return MskSPrm(prm); } + u32 ChkSPrm(u32 prm) const { return MskSPrm(prm) != 0; } void Set(cCcD_SrcObjCommonBase const& src) { mSPrm = src.mSPrm; } }; diff --git a/include/Z2AudioLib/Z2LinkMgr.h b/include/Z2AudioLib/Z2LinkMgr.h index 0510738e61..7432a2bc82 100644 --- a/include/Z2AudioLib/Z2LinkMgr.h +++ b/include/Z2AudioLib/Z2LinkMgr.h @@ -58,6 +58,7 @@ public: void setMarkState(u8 state) { mMarkState = state; } static Z2CreatureLink* mLinkPtr; + static Z2CreatureLink* getLink() { return mLinkPtr; } friend class Z2LinkSoundStarter; friend class Z2RideSoundStarter; @@ -96,7 +97,7 @@ private: }; // Size: 0xD0 inline Z2CreatureLink* Z2GetLink() { - return Z2CreatureLink::mLinkPtr; + return Z2CreatureLink::getLink(); } class Z2CreatureRide; diff --git a/include/d/actor/d_a_alink.h b/include/d/actor/d_a_alink.h index a4debb71d2..9e0dc7c712 100644 --- a/include/d/actor/d_a_alink.h +++ b/include/d/actor/d_a_alink.h @@ -13,7 +13,9 @@ #include "d/d_save.h" #include "f_op/f_op_actor_mng.h" #include "f_op/f_op_camera_mng.h" + #include "res/Object/AlAnm.h" +#include "res/Object/Always.h" class J2DAnmColorKey; class J2DAnmTransformKey; @@ -72,10 +74,14 @@ public: virtual void draw(); virtual ~daAlink_sight_c() {} - bool getLockFlg() { return mLockFlag; } + void update() { + mLockCursor.update(); + } + + u8 getLockFlg() { return mLockFlag; } void offLockFlg() { mLockFlag = false; } - /* 0x4C */ bool mLockFlag; + /* 0x4C */ u8 mLockFlag; /* 0x4D */ u8 field_0x4d[3]; /* 0x50 */ daAlink_lockCursor_c mLockCursor; }; @@ -150,7 +156,7 @@ public: void offSetFlg() { mSetFlag = FALSE; } virtual ~daAlink_matAnm_c() {} - virtual void calc(J3DMaterial*) const; + virtual void calc(J3DMaterial* i_material) const; static void decMorfFrame() { cLib_calcTimer(&m_morf_frame); } static void setMorfFrame(u8 i_frame) { m_morf_frame = i_frame; } @@ -168,11 +174,11 @@ public: static bool m_eye_move_flg; static u8 m_morf_frame; - /* 0x0F4 */ f32 field_0xf4; - /* 0x0F8 */ f32 field_0xf8; - /* 0x0FC */ f32 mNowOffsetX; - /* 0x100 */ f32 mNowOffsetY; - /* 0x104 */ int mSetFlag; + /* 0x0F4 */ mutable f32 field_0xf4; + /* 0x0F8 */ mutable f32 field_0xf8; + /* 0x0FC */ mutable f32 mNowOffsetX; + /* 0x100 */ mutable f32 mNowOffsetY; + /* 0x104 */ mutable int mSetFlag; }; // this class is mostly a complete guess @@ -192,21 +198,19 @@ struct daAlink_FaceTexData { }; struct daAlink_AnmData { - /* 0x0 */ daAlink_BckData field_0x0; - /* 0x4 */ u8 field_0x4; - /* 0x5 */ u8 field_0x5; + /* 0x0 */ daAlink_BckData m_bckData; + /* 0x4 */ u8 m_handIndexL; + /* 0x5 */ u8 m_handIndexR; /* 0x6 */ u16 m_faceTexID; /* 0x8 */ u16 m_faceBckID; /* 0xA */ u16 field_0xa; }; // Size: 0xC struct daAlink_WlAnmData { - /* 0x0 */ u16 field_0x0; - /* 0x2 */ u8 field_0x2; - /* 0x3 */ u8 field_0x3; - /* 0x4 */ u16 field_0x4; - /* 0x6 */ u8 field_0x6; - /* 0x7 */ u8 field_0x7; + /* 0x0 */ u16 m_bckID; + /* 0x2 */ u8 m_midnaAnm; + /* 0x3 */ u8 m_voiceIdx; + /* 0x4 */ s8 m_voiceFrames[4]; }; // Size: 0x8 class daAlinkHIO_data_c : public JORReflexible { @@ -3980,6 +3984,15 @@ public: size_t makeFileOutData(char*, char*); void listenPropertyEvent(const JORPropertyEvent*); + enum PropertyID_e { + PROPERTY_POS_DISP_e = 0x4000002, + PROPERTY_RESET_e = 0x4000003, + PROPERTY_SAVE_FILE_e = 0x4000004, + PROPERTY_LOAD_FILE_e = 0x4000005, + PROPERTY_JUMP_HDIST_DISP_e = 0x4000006, + PROPERTY_JUMP_VDIST_DISP_e = 0x4000007, + }; + /* 0x0008 */ daAlinkHIO_basic_c mBasic; /* 0x0094 */ daAlinkHIO_move_c mMove; /* 0x0120 */ daAlinkHIO_atnMove_c mAtnMove; @@ -4483,53 +4496,169 @@ public: }; enum daAlink_FTANM { - FTANM_UNK_0 = 0, - FTANM_UNK_1 = 1, - FTANM_UNK_3 = 3, - FTANM_UNK_4 = 4, - FTANM_UNK_5 = 5, - FTANM_UNK_8 = 8, - FTANM_UNK_9 = 9, - FTANM_UNK_13 = 0x13, - FTANM_UNK_14 = 0x14, - FTANM_UNK_20 = 0x20, - FTANM_UNK_21 = 0x21, - FTANM_UNK_22 = 0x22, - FTANM_UNK_23 = 0x23, - FTANM_UNK_27 = 0x27, - FTANM_UNK_2D = 0x2D, - FTANM_UNK_39 = 0x39, - FTANM_UNK_48 = 0x48, - FTANM_UNK_75 = 0x75, - FTANM_UNK_76 = 0x76, - FTANM_UNK_77 = 0x77, - FTANM_UNK_7A = 0x7A, - FTANM_UNK_7B = 0x7B, - FTANM_UNK_7C = 0x7C, - FTANM_UNK_8A = 0x8A, - FTANM_UNK_8B = 0x8B, - FTANM_UNK_8C = 0x8C, - FTANM_UNK_8D = 0x8D, - FTANM_UNK_8E = 0x8E, - FTANM_UNK_8F = 0x8F, - FTANM_UNK_90 = 0x90, - FTANM_UNK_91 = 0x91, - FTANM_UNK_92 = 0x92, - FTANM_UNK_93 = 0x93, - FTANM_UNK_95 = 0x95, - FTANM_UNK_96 = 0x96, - FTANM_UNK_97 = 0x97, - FTANM_UNK_98 = 0x98, - FTANM_UNK_99 = 0x99, - FTANM_UNK_9A = 0x9A, - FTANM_UNK_9B = 0x9B, - FTANM_UNK_9C = 0x9C, - FTANM_UNK_9D = 0x9D, - FTANM_UNK_9E = 0x9E, - FTANM_UNK_9F = 0x9F, - FTANM_UNK_A0 = 0xA0, - FTANM_UNK_A1 = 0xA1, - FTANM_UNK_A2 = 0xA2, + FTANM_0, + FTANM_MABA01, + FTANM_MABA02, + FTANM_MABA03, + FTANM_MABA01_L, + FTANM_MABA01_R, + FTANM_MABAGOMA, + FTANM_DAM01, + FTANM_FINISHA, + FTANM_ARELORD, + FTANM_ARELORDTAME, + FTANM_PUSHW, + FTANM_PULLW, + FTANM_WAITST, + FTANM_CUTST, + FTANM_A_WAITST, + FTANM_WAITHDB, + FTANM_WAITWATOWB, + FTANM_CUTUNG, + FTANM_CUTDL, + FTANM_CUTDR, + FTANM_SWIMINGA, + FTANM_SWIMP, + FTANM_SWIMDIVE, + FTANM_GRABP, + FTANM_GRABUP, + FTANM_HEAVYTHROW, + FTANM_GRABNG, + FTANM_SWAITA, + FTANM_PICKUP, + FTANM_DOOROPA, + FTANM_DOOROPB, + FTANM_CUTHLA, + FTANM_CUTHLB, + FTANM_CUTHRA, + FTANM_CUTHRB, + FTANM_CUTHTB, + FTANM_TURNBS, + FTANM_ROLLFGOOD, + FTANM_B_A, + FTANM_C_A, + FTANM_TURNBACK, + FTANM_DAMFFUP, + FTANM_DAMFBUP, + FTANM_DAMFRLUP, + FTANM_WAITATOS, + FTANM_CUTA, + FTANM_CUTL, + FTANM_CUTR, + FTANM_CUTF, + FTANM_CUTEA, + FTANM_CUTEB, + FTANM_CUTEG, + FTANM_CHANGEATOW, + FTANM_CHANGEWTOA, + FTANM_SWAITHA, + FTANM_SWIATHB, + FTANM_DASHWIND, + FTANM_CUTTB, + FTANM_CUTT, + FTANM_CUTJST, + FTANM_CUTJED, + FTANM_BINDRINKST, + FTANM_BINDRINK, + FTANM_BINDRINKED, + FTANM_BINBAD, + FTANM_BINOP, + FTANM_BINOUT, + FTANM_BINFAIRY, + FTANM_BINSWINGS, + FTANM_BINSWINGU, + FTANM_BINGET, + FTANM_I_BINGET, + FTANM_K_BINGET, + FTANM_GRASSAST, + FTANM_CATCHTAKA, + FTANM_E_A, + FTANM_BOXOPSHORT, + FTANM_BOXOPKICK, + FTANM_BOXOP, + FTANM_DIE, + FTANM_DIEH, + FTANM_SWIMDIEA, + FTANM_SWIMDIEP, + FTANM_ENTRANCE, + FTANM_COWCATCHST, + FTANM_COWTHROW_L, + FTANM_COWTHROW_R, + FTANM_DIEHUP, + FTANM_CUTRE, + FTANM_CUTU, + FTANM_CUTUED, + FTANM_CLIMBHANGMISS, + FTANM_DAMFBW, + FTANM_UNK_94, + FTANM_UNK_95, + FTANM_UNK_96, + FTANM_UNK_97, + FTANM_UNK_98, + FTANM_UNK_99, + FTANM_UNK_100, + FTANM_UNK_101, + FTANM_UNK_102, + FTANM_UNK_103, + FTANM_UNK_104, + FTANM_UNK_105, + FTANM_UNK_106, + FTANM_UNK_107, + FTANM_UNK_108, + FTANM_SPILLH, + FTANM_HANGH, + FTANM_RODSWING, + FTANM_RODSWINGL, + FTANM_GETSWL, + FTANM_TURNLS, + FTANM_TURNRS, + FTANM_KEYCATCHH, + FTANM_DEMOTALKA, + FTANM_DEMOTALKB, + FTANM_DEMOTALKC, + FTANM_CANORELEASE, + FTANM_WAITINSECT, + FTANM_I_A, + FTANM_J_A, + FTANM_K_A, + FTANM_ATDEFNG, + FTANM_DEMOMHOP, + FTANM_CUTEHST, + FTANM_CUTEH, + FTANM_CUTTJP, + FTANM_CUTTJST, + FTANM_CUTTJ, + FTANM_CUTTJED, + FTANM_UNK_133, + FTANM_UNK_134, + FTANM_UNK_135, + FTANM_ODOROKU, + FTANM_ASHIMOTO, + FTANM_UNAZUKU, + FTANM_WL_MABA01, + FTANM_WL_MABA02, + FTANM_WL_SWAITA, + FTANM_WL_SWIMP, + FTANM_WL_SWAITB, + FTANM_WL_DAM, + FTANM_WL_B_A, + FTANM_WL_DAMFFBUP, + FTANM_WL_DAMFLRUP, + FTANM_WL_WAITST, + FTANM_WL_LANDDAMA, + FTANM_WL_LANDDAMAST, + FTANM_WL_ATTACKUNG, + FTANM_WL_DASHWIND, + FTANM_WL_THROUGH, + FTANM_WL_ATTACKREST, + FTANM_WL_ATTACKREED, + FTANM_WL_DIE, + FTANM_WL_SWIMDIEA, + FTANM_WL_SWIMDIEP, + FTANM_WL_MDSHOCK, + FTANM_WL_ENTRANCE, + FTANM_WL_HOWLC, + FTANM_WL_C_A, }; enum daAlink_WARP_MAT_MODE { @@ -4685,6 +4814,7 @@ public: /* 0x90 */ WANM_PIG_GANON_THROW_LEFT_END, /* 0x91 */ WANM_PIG_GANON_THROW_RIGHT_START, /* 0x92 */ WANM_PIG_GANON_THROW_RIGHT_END, + WANM_MAX, }; enum MODE_FLG { @@ -5072,6 +5202,8 @@ public: /* 0x15D */ PROC_GLARE, /* 0x15E */ PROC_HORSE_CALL_WAIT, /* 0x15F */ PROC_QUAKE_WAIT, + + PROC_MAX, }; enum daAlink_ITEM_BTN { @@ -5104,6 +5236,14 @@ public: EFFPROC_SUMOU, EFFPROC_NONE, }; + + enum daAlink_RIDETYPE { + RIDETYPE_HORSE = 1, + RIDETYPE_BOAR, + RIDETYPE_CANOE, + RIDETYPE_BOARD, + RIDETYPE_SPINNER, + }; class firePointEff_c { public: @@ -5125,29 +5265,29 @@ public: static BOOL getE3Zhint(); static const char* getAlinkArcName(); - static bool checkStageName(char const*); - void tgHitCallback(fopAc_ac_c*, dCcD_GObjInf*, dCcD_GObjInf*); - void coHitCallback(fopAc_ac_c*, dCcD_GObjInf*); - void setMatrixWorldAxisRot(f32 (*)[4], s16, s16, s16, int, cXyz const*); - int jointControll(int); + static bool checkStageName(char const* i_stageName); + void tgHitCallback(fopAc_ac_c* i_atActor, dCcD_GObjInf* i_tgObjInf, dCcD_GObjInf* i_atObjInf); + void coHitCallback(fopAc_ac_c* i_coHitActor, dCcD_GObjInf* i_coHitObj); + void setMatrixWorldAxisRot(MtxP i_mtx, s16 i_rotX, s16 i_rotY, s16 i_rotZ, BOOL, cXyz const*); + int jointControll(int i_jointNo); void setUpperFront(); - void changeBlendRate(int); + void changeBlendRate(int i_jointNo); void resetRootMtx(); - bool modelCallBack(int); - int headModelCallBack(int); - int wolfModelCallBack(int); + bool modelCallBack(int i_jointNo); + int headModelCallBack(int i_jointNo); + int wolfModelCallBack(int i_jointNo); void setHatAngle(); - void calcHairAngle(s16*); + void calcHairAngle(s16* o_angle); void setHairAngle(cXyz*, f32, f32); - void setLookPosFromOut(cXyz*); + void setLookPosFromOut(cXyz* i_pos); bool checkAttentionPosAngle(cXyz*); - bool checkActorPosAngle(fopAc_ac_c*, cXyz**); + bool checkActorPosAngle(fopAc_ac_c* i_actor, cXyz** o_ppos); cXyz* getNeckAimPos(cXyz*, int*, int); s16 getNeckAimAngle(cXyz*, s16*, s16*, s16*, s16*); void setEyeMove(cXyz*, s16, s16); void setNeckAngle(); - bool commonLineCheck(cXyz*, cXyz*); - static s16 getMoveBGActorName(cBgS_PolyInfo&, int); + bool commonLineCheck(cXyz* i_startPos, cXyz* i_endPos); + static s16 getMoveBGActorName(cBgS_PolyInfo& i_polyinf, BOOL i_forceCheck); fopAc_ac_c* checkGoronRide(); void setMoveSlantAngle(); int setArmMatrix(); @@ -5157,19 +5297,19 @@ public: void footBgCheck(); void handBgCheck(); JKRHeap* setItemHeap(); - void setIdxMask(u16*, u16*); - J3DAnmTransform* getAnimeResource(daPy_anmHeap_c*, u16, u32); - J3DModel* initModel(J3DModelData*, u32, u32); - J3DModel* initModel(u16, u32); - J3DModel* initModelEnv(u16, u32); - int initDemoModel(J3DModel**, char const*, u32); - static int initDemoBck(mDoExt_bckAnm**, char const*); + void setIdxMask(u16* o_arcNo, u16* o_resIdx); + J3DAnmTransform* getAnimeResource(daPy_anmHeap_c* i_anmHeap, u16 i_resIdx, u32 i_bufSize); + J3DModel* initModel(J3DModelData* i_modelData, u32 i_mdlFlags, u32 i_diffFlags); + J3DModel* initModel(u16 i_resIdx, u32 i_diffFlags); + J3DModel* initModelEnv(u16 i_resIdx, u32 i_diffFlags); + int initDemoModel(J3DModel** i_ppmodel, char const* i_resName, u32 i_diffFlags); + static int initDemoBck(mDoExt_bckAnm** i_ppbck, char const* i_resName); int createHeap(); - void setSelectEquipItem(int); + void setSelectEquipItem(BOOL); BOOL checkBoarStart(); BOOL checkCanoeStart(); void playerInit(); - BOOL checkHorseStart(u32, int); + BOOL checkHorseStart(u32 i_lastMode, int i_startMode); int setStartProcInit(); int create(); int setRoomInfo(); @@ -5186,7 +5326,7 @@ public: void setBodyPartPos(); void setAttentionPos(); void setMatrix(); - static int simpleAnmPlay(J3DAnmBase*); + static int simpleAnmPlay(J3DAnmBase* i_anm); void setSwordPos(); void setItemMatrix(int); void setWolfItemMatrix(); @@ -5204,60 +5344,67 @@ public: void setCollisionPos(); void setCollision(); void setFrameCtrl(daPy_frameCtrl_c* i_ctrl, u8 i_attr, s16 i_start, s16 i_end, - f32 i_rate, f32 i_frame); - const daAlink_BckData* getMainBckData(daAlink_c::daAlink_ANM) const; - BOOL checkUnderMove0BckNoArc(daAlink_c::daAlink_ANM) const; - BOOL checkUnderMove1BckNoArc(daAlink_c::daAlink_ANM) const; - int getUnderUpperAnime(daAlink_c::daAlink_ANM, J3DAnmTransform**, - J3DAnmTransform**, int, u32); - void setDoubleAnimeBlendRatio(f32); - void commonDoubleAnime(J3DAnmTransform*, J3DAnmTransform*, J3DAnmTransform*, - J3DAnmTransform*, f32, f32, f32, int); - int setDoubleAnime(f32, f32, f32, daAlink_c::daAlink_ANM, daAlink_c::daAlink_ANM, - int, f32); - void commonSingleAnime(J3DAnmTransform*, J3DAnmTransform*, f32, f32, s16); - void setSingleAnimeBase(daAlink_c::daAlink_ANM anmID); - void setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM anmID, f32); - void setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM anmID, f32 speed, f32 morf); - int setSingleAnime(daAlink_c::daAlink_ANM anmID, f32 rate, f32 start, s16 endF, - f32 morf); - int setSingleAnimeParam(daAlink_c::daAlink_ANM anmID, daAlinkHIO_anm_c const*); - void animePlay(J3DAnmTransform*, daPy_frameCtrl_c*); + f32 i_rate, f32 i_frame); + const daAlink_BckData* getMainBckData(daAlink_c::daAlink_ANM i_anmID) const; + BOOL checkUnderMove0BckNoArc(daAlink_c::daAlink_ANM i_anmID) const; + BOOL checkUnderMove1BckNoArc(daAlink_c::daAlink_ANM i_anmID) const; + int getUnderUpperAnime(daAlink_c::daAlink_ANM i_anmID, J3DAnmTransform** i_underBck, + J3DAnmTransform** i_upperBck, int i_anmPackID, u32 i_bufSize); + void setDoubleAnimeBlendRatio(f32 i_ratio); + void commonDoubleAnime(J3DAnmTransform* i_underBck1, J3DAnmTransform* i_upperBck1, + J3DAnmTransform* i_underBck2, J3DAnmTransform* i_upperBck2, + f32 i_blendRatio, f32 i_anmSpeed1, f32 i_anmSpeed2, int); + int setDoubleAnime(f32 i_blendRate, f32 i_anmSpeedA, f32 i_anmSpeedB, + daAlink_c::daAlink_ANM i_anmA, daAlink_c::daAlink_ANM i_anmB, + int param_5, f32 i_morf); + void commonSingleAnime(J3DAnmTransform* i_underBck, J3DAnmTransform* i_upperBck, + f32 i_speed, f32 i_startF, s16 i_endF); + int setSingleAnimeBase(daAlink_c::daAlink_ANM i_anmID); + int setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM i_anmID, f32 i_morf); + int setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM i_anmID, f32 i_speed, f32 i_morf); + int setSingleAnime(daAlink_c::daAlink_ANM i_anmID, f32 i_speed, f32 i_startF, s16 i_endF, + f32 i_morf); + int setSingleAnimeParam(daAlink_c::daAlink_ANM i_anmID, const daAlinkHIO_anm_c* i_anmParams); + void animePlay(J3DAnmTransform* i_anm, daPy_frameCtrl_c* i_frameCtrl); void allAnimePlay(); - void setUpperAnimeMorf(f32); - void setUpperAnimeBase(u16); - void setUpperAnimeBaseMorf(u16, f32); - void setUpperAnimeBaseSpeed(u16, f32, f32); - int setUpperAnime(u16, daAlink_c::daAlink_UPPER, f32, f32, s16, f32); - void setUpperAnimeParam(u16, daAlink_c::daAlink_UPPER, daAlinkHIO_anm_c const*); - int resetUpperAnime(daAlink_c::daAlink_UPPER, f32); - void setUnderAnimeMorf(f32); - int setUnderAnime(u16, daAlink_c::daAlink_UNDER, f32, f32, s16, f32); - int setUnderAnimeParam(u16, daAlink_c::daAlink_UNDER, daAlinkHIO_anm_c const*); - int resetUnderAnime(daAlink_c::daAlink_UNDER, f32); + void setUpperAnimeMorf(f32 i_morf); + void setUpperAnimeBase(u16 i_anmResIdx); + void setUpperAnimeBaseMorf(u16 i_anmResIdx, f32 i_morf); + void setUpperAnimeBaseSpeed(u16 i_anmResIdx, f32 i_speed, f32 i_morf); + int setUpperAnime(u16 i_anmResIdx, daAlink_c::daAlink_UPPER i_upperIdx, f32 i_speed, + f32 i_startFrame, s16 i_endFrame, f32 i_morf); + void setUpperAnimeParam(u16 i_anmResIdx, daAlink_c::daAlink_UPPER i_upperIdx, + const daAlinkHIO_anm_c* i_anmParam); + int resetUpperAnime(daAlink_c::daAlink_UPPER i_upperIdx, f32 i_morf); + void setUnderAnimeMorf(f32 i_morf); + int setUnderAnime(u16 i_resIdx, daAlink_c::daAlink_UNDER i_underIdx, f32 i_speed, + f32 i_startF, s16 i_endF, f32 i_morf); + int setUnderAnimeParam(u16 i_resIdx, daAlink_c::daAlink_UNDER i_underIdx, + const daAlinkHIO_anm_c* i_anmParam); + int resetUnderAnime(daAlink_c::daAlink_UNDER i_underIdx, f32 i_morf); void setOldRootQuaternion(s16, s16, s16); BOOL checkAtnLeftAnime(); BOOL checkAtnRightAnime(); f32 getMoveGroundAngleSpeedRate(); - void setBlendMoveAnime(f32); - void setBlendAtnMoveAnime(f32); - void setBlendAtnBackMoveAnime(f32); - void setFaceBck(u16, int, u16); - void setFaceBtp(u16, int, u16); - void setFaceBtk(u16, int, u16); - daAlink_FTANM setFaceBasicTexture(daAlink_c::daAlink_FTANM); - void setFaceBasicAnime(daAlink_c::daAlink_ANM); - void setFacePriTexture(daAlink_c::daAlink_FTANM); - void setFacePriAnime(daAlink_c::daAlink_ANM); + void setBlendMoveAnime(f32 i_morf); + void setBlendAtnMoveAnime(f32 i_morf); + void setBlendAtnBackMoveAnime(f32 i_morf); + void setFaceBck(u16 i_resIdx, BOOL i_isPriIdx, u16 i_arcNo); + void setFaceBtp(u16 i_resIdx, BOOL i_isPriIdx, u16 i_arcNo); + void setFaceBtk(u16 i_resIdx, BOOL i_isPriIdx, u16 i_arcNo); + daAlink_FTANM setFaceBasicTexture(daAlink_c::daAlink_FTANM i_ftanm); + void setFaceBasicAnime(daAlink_c::daAlink_ANM i_anm); + void setFacePriTexture(daAlink_c::daAlink_FTANM i_ftanm); + void setFacePriAnime(daAlink_c::daAlink_ANM i_anm); void resetFacePriBck(); void resetFacePriBtp(); void resetFacePriBtk(); void resetFacePriTexture(); void resetFacePriAnime(); void playFaceTextureAnime(); - s16 getGroundAngle(cBgS_PolyInfo*, s16); - s16 getRoofAngle(cBgS_PolyInfo*, s16); - BOOL getWallEdgePos(cXyz const&, cM3dGPla*, cM3dGPla*, cXyz*, int); + s16 getGroundAngle(cBgS_PolyInfo* i_polyinfo, s16 i_angle); + s16 getRoofAngle(cBgS_PolyInfo* i_polyinfo, s16 i_angle); + BOOL getWallEdgePos(cXyz const&, cM3dGPla*, cM3dGPla*, cXyz* o_outVec, int); void setFrontWallType(); BOOL checkWaterPolygonUnder(); void setWaterY(); @@ -5267,41 +5414,41 @@ public: BOOL checkNotJumpSinkLimit(); BOOL checkNotItemSinkLimit(); void setSandShapeOffset(); - bool checkLv2MiddleBossBgRide(s16); - bool getSlidePolygon(cM3dGPla*); + bool checkLv2MiddleBossBgRide(s16 i_procName); + bool getSlidePolygon(cM3dGPla* o_tripla); BOOL checkSlope() const; - BOOL itemTriggerCheck(u8); - BOOL itemButtonCheck(u8); + BOOL itemTriggerCheck(u8 i_btnFlag); + BOOL itemButtonCheck(u8 i_btnFlag); BOOL itemButton(); BOOL itemTrigger(); BOOL spActionButton(); BOOL spActionTrigger(); BOOL midnaTalkTrigger() const; BOOL swordSwingTrigger(); - void setItemActionButtonStatus(u8); + void setItemActionButtonStatus(u8 i_status); BOOL itemActionTrigger(); void setStickData(); void setAtnList(); - void setRStatus(u8); - void setRStatusEmphasys(u8); - void setDoStatus(u8); - void setDoStatusEmphasys(u8); - void setDoStatusContinuation(u8); - void setBStatus(u8); + void setRStatus(u8 i_status); + void setRStatusEmphasys(u8 i_status); + void setDoStatus(u8 i_status); + void setDoStatusEmphasys(u8 i_status); + void setDoStatusContinuation(u8 i_status); + void setBStatus(u8 i_status); BOOL checkAtnWaitAnime(); - void setTiredVoice(daPy_frameCtrl_c*); + void setTiredVoice(daPy_frameCtrl_c* i_frameCtrl); BOOL checkRestHPAnime(); - static int getDirectionFromAngle(s16 angle); + static int getDirectionFromAngle(s16 i_angle); bool checkAttentionState(); s16 getShapeAngleYAtnActor(); bool setShapeAngleToAtnActor(int); void initServiceWaitTime(); bool checkZeroSpeedF() const; - void setNormalSpeedF(f32, f32); + void setNormalSpeedF(f32 i_speed, f32 i_deceleration); f32 getStickAngleDistanceRate(); void setSpeedAndAngleNormal(); void setSpeedAndAngleAtn(); - int checkRequestTalkActor(dAttList_c*, fopAc_ac_c*); + int checkRequestTalkActor(dAttList_c* i_attList, fopAc_ac_c* i_actor); bool checkServiceWaitMode(); void setJumpMode(); f32 getMetamorphoseNearDis() const; @@ -5362,36 +5509,36 @@ public: void setItemAction(); BOOL checkNextActionFromCrouch(int); int checkUpperReadyThrowAnime() const; - void getBodyAngleXBasePos(cXyz*); + void getBodyAngleXBasePos(cXyz* o_pos); s16 getBodyAngleXAtnActor(int); void setBodyAngleXReadyAnime(int); - void setMagicArmorBrk(int); + void setMagicArmorBrk(int i_status); BOOL checkMagicArmorHeavy() const; - BOOL checkHeavyStateOn(int, int); + BOOL checkHeavyStateOn(BOOL, BOOL); void initGravity(); - void setSpecialGravity(f32, f32, int); + void setSpecialGravity(f32 i_gravity, f32 i_speed, BOOL i_isOffFlag); void transAnimeProc(cXyz*, f32, f32); void setFootSpeed(); void posMove(); void autoGroundHit(); bool startPeepChange(); - void setLastSceneDamage(int, u32*); + void setLastSceneDamage(int i_dmgAmount, u32* o_mode); void setLastSceneMode(u32*); - int startRestartRoom(u32, int, int, int); + int startRestartRoom(u32 i_mode, int param_1, int i_dmgAmount, BOOL i_isEventRun); BOOL checkCoachGuardGame(); void checkRoofRestart(); BOOL checkRestartRoom(); s16 getSceneExitMoveAngle(); int checkSceneChange(int i_exitID); - void voiceStartLevel(u32); - void seStartSwordCut(u32); - void seStartMapInfo(u32); - void seStartMapInfoLevel(u32); - void setBasAnime(daAlink_c::daAlink_UNDER); + void voiceStartLevel(u32 i_soundID); + void seStartSwordCut(u32 i_soundID); + void seStartMapInfo(u32 i_soundID); + void seStartMapInfoLevel(u32 i_soundID); + void setBasAnime(daAlink_c::daAlink_UNDER i_underIdx); void initBasAnime(); void resetBasAnime(); - BOOL checkSightLine(f32, cXyz*); - void setMetamorphoseModel(int); + BOOL checkSightLine(f32 i_maxDist, cXyz* o_sightPos); + void setMetamorphoseModel(BOOL i_isChangeToWolf); void keepItemData(); void returnKeepItemData(); BOOL setItemModel(); @@ -5399,15 +5546,15 @@ public: void makeItemType(); BOOL checkZoraWearAbility() const; BOOL checkMagicArmorWearAbility() const; - J3DModelData* loadAramBmd(u16, u32); - void* loadAram(u16, u32); - J3DAnmTevRegKey* loadAramItemBrk(u16, J3DModel*); - J3DAnmTextureSRTKey* loadAramItemBtk(u16, J3DModel*); - J3DAnmTexPattern* loadAramItemBtp(u16, J3DModel*); - void changeItemBck(u16, f32); - int checkGroupItem(int, int) const; - int checkSetItemTrigger(int); - int checkItemSetButton(int); + J3DModelData* loadAramBmd(u16 i_resIdx, u32 i_bufSize); + void* loadAram(u16 i_resIdx, u32 i_bufSize); + J3DAnmTevRegKey* loadAramItemBrk(u16 i_resIdx, J3DModel* i_model); + J3DAnmTextureSRTKey* loadAramItemBtk(u16 i_resIdx, J3DModel* i_model); + J3DAnmTexPattern* loadAramItemBtp(u16 i_resIdx, J3DModel* i_model); + void changeItemBck(u16 i_resIdx, f32); + BOOL checkGroupItem(int i_itemNo, int i_selItem) const; + int checkSetItemTrigger(int i_itemNo); + int checkItemSetButton(int i_itemNo); static bool checkField(); static bool checkBossRoom(); static bool checkDungeon(); @@ -5420,16 +5567,16 @@ public: static bool checkNotBattleStage(); static bool checkNotHeavyBootsStage(); static bool checkNotAutoJumpStage(); - static bool checkCastleTownUseItem(u16); - int changeItemTriggerKeepProc(u8, int); - int checkNewItemChange(u8); - void deleteEquipItem(int playSound, int deleteKantera); + static bool checkCastleTownUseItem(u16 i_itemNo); + int changeItemTriggerKeepProc(u8 i_selItemIdx, int i_procType); + int checkNewItemChange(u8 i_selItemIdx); + void deleteEquipItem(BOOL i_isPlaySound, BOOL i_isDeleteKantera); void setLight(); void setFrontRollCrashShock(u8); - void changeWarpMaterial(daAlink_c::daAlink_WARP_MAT_MODE); - void commonProcInit(daAlink_c::daAlink_PROC procID); - BOOL commonProcInitNotSameProc(daAlink_PROC procID); - int procPreActionUnequipInit(int, fopAc_ac_c*); + void changeWarpMaterial(daAlink_c::daAlink_WARP_MAT_MODE i_matMode); + void commonProcInit(daAlink_c::daAlink_PROC i_procID); + BOOL commonProcInitNotSameProc(daAlink_PROC i_procID); + int procPreActionUnequipInit(int i_procAfter, fopAc_ac_c*); int procPreActionUnequip(); int procServiceWaitInit(); int procServiceWait(); @@ -5449,7 +5596,7 @@ public: int procWaitTurn(); int procMoveTurnInit(int); int procMoveTurn(); - int procSideStepInit(int); + int procSideStepInit(int i_jumpDirection); int procSideStep(); int procSideStepLandInit(); int procSideStepLand(); @@ -5478,7 +5625,7 @@ public: int procDiveJump(); int procRollJumpInit(); int procRollJump(); - int procFallInit(int, f32); + int procFallInit(int, f32 i_morf); int procFall(); int procLandInit(f32); int procLand(); @@ -5494,7 +5641,7 @@ public: int procCoMetamorphoseOnly(); int procFloorDownReboundInit(); int procFloorDownRebound(); - int procGoronRideWaitInit(fopAc_ac_c*); + int procGoronRideWaitInit(fopAc_ac_c* i_goronActor); int procGoronRideWait(); int execute(); void setDrawHand(); @@ -5504,8 +5651,8 @@ public: int initShadowScaleLight(); int moveShadowScaleLight(); void shadowDraw(); - void modelCalc(J3DModel*); - void basicModelDraw(J3DModel*); + void modelCalc(J3DModel* i_model); + void basicModelDraw(J3DModel* i_model); void modelDraw(J3DModel*, int); void setWaterDropColor(J3DGXColorS10 const*); void initTevCustomColor(); @@ -5514,12 +5661,12 @@ public: bool checkNoSubjectModeCamera(); bool acceptSubjectModeChange(); int checkSubjectAction(); - s16 checkBodyAngleX(s16); + s16 checkBodyAngleX(s16 i_angle); BOOL setBodyAngleToCamera(); void setSubjectMode(); BOOL subjectCancelTrigger(); - int checkSubjectEnd(int); - void searchPeepObj(fopAc_ac_c*, void*); + BOOL checkSubjectEnd(BOOL i_isPlaySe); + void searchPeepObj(fopAc_ac_c* i_actor, void* i_data); int procCoSubjectivityInit(); int procCoSubjectivity(); int procCoSwimSubjectivityInit(); @@ -5549,23 +5696,24 @@ public: BOOL checkCutTypeNoBlur() const; bool checkCutTurnInput() const; int getCutTurnDirection() const; - void resetCombo(int); + void resetCombo(int i_resetRunCut); void checkComboCnt(); - void setCutType(u8); - void setCylAtParam(u32, dCcG_At_Spl, u8, u8, int, f32, f32); + void setCutType(u8 i_type); + void setCylAtParam(u32 i_AtType, dCcG_At_Spl i_spl, u8 i_hitMark, u8 i_AtSe, int i_atp, + f32 i_radius, f32 i_height); void setSwordAtParam(dCcG_At_Spl i_spl, u8 i_hitMark, u8 i_AtSe, int i_atp, - f32 param_4, f32 i_radius); - static BOOL notSwordHitVibActor(fopAc_ac_c*); - BOOL setSwordHitVibration(dCcD_GObjInf*); - BOOL checkAtShieldHit(dCcD_GObjInf&); - BOOL checkCutReverseAt(dCcD_GObjInf*); - BOOL changeCutReverseProc(daAlink_c::daAlink_ANM); + f32 param_4, f32 i_radius); + static BOOL notSwordHitVibActor(fopAc_ac_c* i_actor); + BOOL setSwordHitVibration(dCcD_GObjInf* i_gobj); + BOOL checkAtShieldHit(dCcD_GObjInf& i_gobj); + BOOL checkCutReverseAt(dCcD_GObjInf* i_gobj); + BOOL changeCutReverseProc(daAlink_c::daAlink_ANM i_anmID); void setCutDash(int, int); BOOL checkForceSwordSwing(); void setComboReserb(); BOOL checkComboReserb(); int commonCutAction(); - void setSwordVoiceSe(u32); + void setSwordVoiceSe(u32 i_seID); void setSwordChargeVoiceSe(); void setSwordComboVoice(); bool checkCutTurnInputTrigger(); @@ -5580,18 +5728,18 @@ public: void cancelCutCharge(); void initCutAtnActorSearch(); void checkCutAtnActorChange(); - void setCutJumpSpeed(int); - int procCutNormalInit(int); + void setCutJumpSpeed(BOOL i_isAirCut); + int procCutNormalInit(int i_type); int procCutNormal(); - int procCutFinishInit(int); + int procCutFinishInit(int i_type); int procCutFinish(); int procCutFinishJumpUpInit(); int procCutFinishJumpUp(); int procCutFinishJumpUpLandInit(); int procCutFinishJumpUpLand(); - int procCutReverseInit(daAlink_c::daAlink_ANM); + int procCutReverseInit(daAlink_c::daAlink_ANM i_anmID); int procCutReverse(); - int procCutJumpInit(int); + int procCutJumpInit(BOOL i_isAirCut); int procCutJump(); int procCutJumpLandInit(int); int procCutJumpLand(); @@ -5603,7 +5751,7 @@ public: int procCutTurnMove(); int procCutDownInit(); int procCutDown(); - int procCutDownLandInit(fopEn_enemy_c*); + int procCutDownLandInit(fopEn_enemy_c* i_enemy); int procCutDownLand(); int procCutHeadInit(); int procCutHead(); @@ -5625,33 +5773,33 @@ public: BOOL checkNoLandDamageSlidePolygon(); void checkCutLandDamage(); BOOL checkCaughtEscapeCutTurn(); - f32 damageMagnification(int i_checkZoraMag, int); - int setDamagePoint(int i_dmgAmount, int i_checkZoraMag, int i_setDmgTimer, int); - void setDamagePointNormal(int); - void setLandDamagePoint(int); + f32 damageMagnification(BOOL i_checkZoraMag, int); + int setDamagePoint(int i_dmgAmount, BOOL i_checkZoraMag, BOOL i_setDmgTimer, int); + int setDamagePointNormal(int i_dmgAmount); + int setLandDamagePoint(int i_dmgAmount); cXyz* getDamageVec(dCcD_GObjInf*); void setDashDamage(); static BOOL checkIcePolygonDamage(cBgS_PolyInfo*); BOOL checkMagicArmorNoDamage(); int checkPolyDamage(); - BOOL checkElecReturnDamage(dCcD_GObjInf&, fopAc_ac_c**); + BOOL checkElecReturnDamage(dCcD_GObjInf& i_obj, fopAc_ac_c** o_hitActor); void damageTimerCount(); - bool checkHugeAttack(int) const; - bool checkLargeAttack(int) const; + bool checkHugeAttack(int i_atSpl) const; + bool checkLargeAttack(int i_atSpl) const; BOOL checkDamageAction(); - int procDamageInit(dCcD_GObjInf*, int); + int procDamageInit(dCcD_GObjInf* i_tgObj, int); int procDamage(); - int procCoLargeDamageInit(int, int, s16, s16, dCcD_GObjInf*, int); + int procCoLargeDamageInit(int i_type, BOOL i_isLargeDmg, s16, s16, dCcD_GObjInf* i_hitObj, int); int procCoLargeDamage(); - int procLargeDamageUpInit(int, int, s16, s16); + int procLargeDamageUpInit(int i_type, BOOL i_isLargeDmg, s16, s16); int procLargeDamageUp(); - int procCoLargeDamageWallInit(int, int, s16, s16); + int procCoLargeDamageWallInit(int i_type, BOOL i_isLargeDmg, s16, s16); int procCoLargeDamageWall(); int procCoPolyDamageInit(); int procCoPolyDamage(); int procLandDamageInit(int); int procLandDamage(); - int procCoElecDamageInit(fopAc_ac_c*, dCcD_GObjInf*, int); + int procCoElecDamageInit(fopAc_ac_c* i_tgHitActor, dCcD_GObjInf* i_tgHitObj, int i_atSpl); int procCoElecDamage(); int procStEscapeInit(); int procStEscape(); @@ -5662,7 +5810,7 @@ public: int procScreamWait(); int procCoSandWallHitInit(); int procCoSandWallHit(); - int procCoLavaReturnInit(int); + int procCoLavaReturnInit(BOOL i_isSandReturn); int procCoLavaReturn(); int procCoSwimFreezeReturnInit(); int procCoSwimFreezeReturn(); @@ -5680,9 +5828,9 @@ public: BOOL checkGuardAccept(); void setUpperGuardAnime(f32); void setShieldGuard(); - void setGuardSe(dCcD_GObjInf*); - void setSmallGuard(dCcD_GObjInf*); - int procGuardSlipInit(int, dCcD_GObjInf*); + void setGuardSe(dCcD_GObjInf* i_objinf); + void setSmallGuard(dCcD_GObjInf* i_objinf); + int procGuardSlipInit(int i_atSpl, dCcD_GObjInf* i_objinf); int procGuardSlip(); int procGuardAttackInit(); int procGuardAttack(); @@ -5690,14 +5838,14 @@ public: int procGuardBreak(); int procTurnMoveInit(int); int procTurnMove(); - void getArrowFlyData(f32*, f32*, int) const; + void getArrowFlyData(f32* o_distance, f32* o_speed, BOOL i_forceCharge) const; f32 getArrowIncAtR() const; s16 getBombArrowFlyExplodeTime() const; f32 getArrowIncAtMaxStart() const; f32 getArrowIncAtMax() const; - BOOL checkBowAndSlingItem(int); + BOOL checkBowAndSlingItem(int i_itemNo); void setSlingModel(); - cXyz* checkBowCameraArrowPosP(s16*, s16*); + cXyz* checkBowCameraArrowPosP(s16* o_angleX, s16* o_angleY); BOOL checkBowReadyAnime() const; BOOL checkBowAnime() const; void makeArrow(); @@ -5780,8 +5928,8 @@ public: int procCopyRodRevive(); void concatMagneBootMtx(); void concatMagneBootInvMtx(); - void multVecMagneBootInvMtx(cXyz*); - bool commonMagneLineCheck(cXyz*, cXyz*); + void multVecMagneBootInvMtx(cXyz* o_dst); + bool commonMagneLineCheck(cXyz* i_start, cXyz* i_end); BOOL checkBootsMoveAnime(int); int setHeavyBoots(int); s16 getMagneBootsLocalAngleY(s16, int); @@ -5825,9 +5973,9 @@ public: void initGrabNextMode(); void setGrabItemThrow(); BOOL checkUpperGrabItemThrow(f32); - void putObjLineCheck(dBgS_LinChk&, cXyz*, fopAc_ac_c*); - bool grabLineCheck(cXyz*, cXyz*); - void setGrabItemActor(fopAc_ac_c*); + void putObjLineCheck(dBgS_LinChk& i_linchk, cXyz* i_endpos, fopAc_ac_c* i_objActor); + bool grabLineCheck(cXyz* i_start, cXyz* i_end); + void setGrabItemActor(fopAc_ac_c* i_actor); int procGrabReadyInit(); int procGrabReady(); int procGrabUpInit(); @@ -5843,7 +5991,7 @@ public: int procGrabRebound(); int procGrabStandInit(); int procGrabStand(); - BOOL checkInsectActorName(fopAc_ac_c*); + BOOL checkInsectActorName(fopAc_ac_c* i_insectActor); int procInsectCatchInit(); int procInsectCatch(); int procPickUpInit(); @@ -5859,15 +6007,15 @@ public: int procFmChainUp(); int procFmChainStrongPullInit(); int procFmChainStrongPull(); - void setWallGrabStatus(u8, u8); + void setWallGrabStatus(u8 i_status, u8 i_flag); int getWallGrabStatus(); BOOL wallGrabTrigger(); BOOL wallGrabButton(); - int setPushPullKeepData(dBgW_Base::PushPullLabel, int); + int setPushPullKeepData(dBgW_Base::PushPullLabel i_label, BOOL); BOOL checkPushPullTurnBlock(); BOOL checkPullBehindWall(); void offGoatStopGame(); - BOOL checkGoatCatchActor(fopAc_ac_c*); + BOOL checkGoatCatchActor(fopAc_ac_c* i_actor); f32 getGoatCatchDistance2(); int endPushPull(); f32 getPushPullAnimeSpeed(); @@ -5877,10 +6025,10 @@ public: int procCoPushMove(); int procPullMoveInit(int); int procPullMove(); - void setGoatStopGameFail(fopAc_ac_c*); + void setGoatStopGameFail(fopAc_ac_c* i_actor); int procGoatMoveInit(); int procGoatMove(); - int procGoatCatchInit(fopAc_ac_c*, f32); + int procGoatCatchInit(fopAc_ac_c* i_actor, f32); int procGoatCatch(); int procGoatStrokeInit(); int procGoatStroke(); @@ -5896,7 +6044,7 @@ public: int procSumouMove(); int procSumouSideMoveInit(); int procSumouSideMove(); - int procSumouActionInit(BOOL i_doTrigger, BOOL i_punchTrigger, int unused); + int procSumouActionInit(BOOL i_isDoTrigger, BOOL i_isPunchTrigger, int unused); int procSumouAction(); int procSumouStaggerInit(); int procSumouStagger(); @@ -5921,9 +6069,9 @@ public: BOOL checkHorseLieAnime() const; BOOL checkHorseSubjectivity() const; void setHorseSwordUpAnime(); - void setHorseTurnUpperAnime(int); + void setHorseTurnUpperAnime(BOOL i_isTurnL); BOOL checkHorseNoUpperAnime() const; - void getHorseReinHandPos(cXyz*, cXyz*); + void getHorseReinHandPos(cXyz* o_handPosA, cXyz* o_handPosB); BOOL checkHorseNotGrab() const; void setHorseStirrup(); void changeBoarRunRide(); @@ -5932,7 +6080,7 @@ public: int setSyncBoarRunPos(); BOOL setSyncRidePos(); void setHorseTurnAnime(); - void getBaseHorseAnime(daAlink_c::daAlink_ANM*); + void getBaseHorseAnime(daAlink_c::daAlink_ANM* i_anmList); int checkHorseSpecialProc(); BOOL checkHorseServiceWaitAnime(); int setSyncHorse(int); @@ -5945,7 +6093,7 @@ public: void setHorseSwordUp(int); int setRideSubjectAngle(s16); void setBodyAngleRideReadyAnime(); - BOOL checkHorseGetOffWallCheck(cXyz*, cXyz*, s16); + BOOL checkHorseGetOffWallCheck(cXyz* i_lineStartPos, cXyz* i_lineEndPos, s16); int checkHorseGetOffDirection(); void boarForceGetOff(); void horseGetOffEnd(); @@ -5973,7 +6121,7 @@ public: int procHorseCutChargeReady(); int procHorseCutTurnInit(); int procHorseCutTurn(); - int procHorseDamageInit(dCcD_GObjInf*); + int procHorseDamageInit(dCcD_GObjInf* i_hitObj); int procHorseDamage(); int procHorseBowSubjectInit(); int procHorseBowSubject(); @@ -5989,7 +6137,7 @@ public: int procHorseHookshotSubject(); int procHorseHookshotMoveInit(); int procHorseHookshotMove(); - int procHorseBottleDrinkInit(u16); + int procHorseBottleDrinkInit(u16 i_itemNo); int procHorseBottleDrink(); int procHorseKandelaarPourInit(); int procHorseKandelaarPour(); @@ -5997,7 +6145,7 @@ public: int procHorseComeback(); int procHorseRunInit(); int procHorseRun(); - int procHorseHangInit(dCcD_GObjInf*, int); + int procHorseHangInit(dCcD_GObjInf* i_hitObj, BOOL i_isPlaySE); int procHorseHang(); int procHorseGetKeyInit(); int procHorseGetKey(); @@ -6015,21 +6163,21 @@ public: BOOL checkFishingRodAndLureItem() const; void initFishingRodHand(); MtxP getCanoePaddleMatrix(); - BOOL checkFishingRodGrab(fopAc_ac_c*) const; - BOOL checkCanoePaddleGrab(fopAc_ac_c*) const; + BOOL checkFishingRodGrab(fopAc_ac_c* i_actor) const; + BOOL checkCanoePaddleGrab(fopAc_ac_c* i_actor) const; BOOL checkCanoeFishingRodGrabOrPut() const; void initCanoeRide(); BOOL checkCanoeJumpRide(); void setArmReelAnime(); void setFishingWaitAction(); void setFishGetFace(); - void setRideCanoeBasePos(fopAc_ac_c*); + void setRideCanoeBasePos(fopAc_ac_c* i_canoeActor); void setSyncCanoePos(); int canoeCommon(); int checkNextActionCanoe(); int procCanoeRideInit(); int procCanoeRide(); - int procCanoeJumpRideInit(fopAc_ac_c*); + int procCanoeJumpRideInit(fopAc_ac_c* i_canoeActor); int procCanoeJumpRide(); int procCanoeGetOffInit(); int procCanoeGetOff(); @@ -6067,7 +6215,7 @@ public: int procCanoeHookshotSubject(); int procCanoeHookshotMoveInit(); int procCanoeHookshotMove(); - int procCanoeBottleDrinkInit(u16); + int procCanoeBottleDrinkInit(u16 i_itemNo); int procCanoeBottleDrink(); int procCanoeKandelaarPourInit(); int procCanoeKandelaarPour(); @@ -6089,20 +6237,20 @@ public: BOOL checkCrawlInHoll(cXyz*, cXyz*, cXyz*, int); void setCrawlMoveHoll(); void setCrawlMoveAngle(); - void stopHalfMoveAnime(f32); + void stopHalfMoveAnime(f32 i_frame); void setCrawlAutoMoveAimPos(); int procCrawlStartInit(); int procCrawlStart(); - int procCrawlMoveInit(s16, s16); + int procCrawlMoveInit(s16 i_angleX, s16 i_angleZ); int procCrawlMove(); int procCrawlAutoMoveInit(int, cXyz*); int procCrawlAutoMove(); - int procCrawlEndInit(int, s16, s16); + int procCrawlEndInit(int, s16 i_angleX, s16 i_angleZ); int procCrawlEnd(); f32 getHangMoveAnmSpeed(); int getHangDirectionFromAngle(); BOOL hangMoveBgCheck(s16, cXyz*); - BOOL changeHangMoveProc(int); + BOOL changeHangMoveProc(int i_direction); bool checkHangFootWall(); void setHangGroundY(); int changeHangEndProc(); @@ -6128,7 +6276,7 @@ public: int setDragonHangPos(); int setOctaIealHangPos(); int setBossBodyHangPos(); - int procBossBodyHangInit(fopAc_ac_c*); + int procBossBodyHangInit(fopAc_ac_c* i_actor); int procBossBodyHang(); int getLadderUnitCount() const; int setLadderInit(); @@ -6150,18 +6298,18 @@ public: int procLadderMove(); f32 getClimbMoveUpDownAnmSpeed(); f32 getClimbMoveSideAnmSpeed(); - BOOL checkClimbCode(cBgS_PolyInfo&); + BOOL checkClimbCode(cBgS_PolyInfo& i_polyinfo); BOOL setClimbInit(); void setClimbShapeOffset(); int getClimbDirectionFromAngle(); void changeClimbMoveProc(int); - BOOL checkClimbMoveUpDownProc(int); - BOOL checkClimbMoveSideProc(int); + BOOL checkClimbMoveUpDownProc(int i_direction); + BOOL checkClimbMoveSideProc(int i_direction); int setMoveBGClimbCorrect(); - int checkBgCorrectClimbMove(cXyz*, cXyz*); + int checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos); BOOL checkClimbRoof(f32); int checkClimbGround(cXyz*, f32); - BOOL checkBgClimbMove(int); + BOOL checkBgClimbMove(int i_direction); int setClimbStartNotGround(); int procClimbUpStartInit(int); int procClimbUpStart(); @@ -6177,7 +6325,7 @@ public: int procClimbToRoof(); f32 getRoofHangFMoveAnmSpeed() const; f32 getRoofHangSMoveAnmSpeed() const; - void setRoofHangHandOnSE(cBgS_PolyInfo*); + void setRoofHangHandOnSE(cBgS_PolyInfo* unused); int checkRoofHangMovePos(); int commonRoofHangProc(); int checkNextActionRoofHang(); @@ -6192,10 +6340,10 @@ public: int procRoofHangTurnInit(); int procRoofHangTurn(); void setRoofHangSwitch(); - int procRoofSwitchHangInit(fopAc_ac_c*); + int procRoofSwitchHangInit(fopAc_ac_c* i_actor); int procRoofSwitchHang(); BOOL checkZoraWearMaskDraw(); - BOOL checkAcceptUseItemInWater(u16) const; + BOOL checkAcceptUseItemInWater(u16 i_itemNo) const; void swimDeleteItem(); bool getZoraSwim() const; f32 getSwimFrontMaxSpeed() const; @@ -6203,7 +6351,7 @@ public: void checkOxygenTimer(); void offOxygenTimer(); BOOL checkPossibleWaterInMode() const; - void setWaterInAnmRate(daPy_frameCtrl_c*, f32); + void setWaterInAnmRate(daPy_frameCtrl_c* i_frameCtrl, f32 i_rate); void swimBgCheck(f32); void setSpeedAndAngleSwim(); int checkNextActionSwim(); @@ -6231,29 +6379,29 @@ public: int procSwimHookshotSubject(); int procSwimHookshotMoveInit(); int procSwimHookshotMove(); - int procSwimDamageInit(dCcD_GObjInf*); + int procSwimDamageInit(dCcD_GObjInf* i_hitObj); int procSwimDamage(); int procOctaIealSpitInit(); int procOctaIealSpit(); bool checkSnowCode() const; - static bool checkSnowCodePolygon(cBgS_PolyInfo&); + static bool checkSnowCodePolygon(cBgS_PolyInfo& i_polyinfo); bool checkBoardRestart(); - int boardCommon(int); - void setCommonBoardAnime(int); + int boardCommon(BOOL i_canMove); + void setCommonBoardAnime(BOOL i_isRideFront); int checkNextActionBoard(); int checkBoardSwordTriggerAction(); - int commonProcBoardInit(daAlink_c::daAlink_PROC); + int commonProcBoardInit(daAlink_c::daAlink_PROC i_procID); f32 getBoardRowAnmSpeed(); void setBoardLandAnime(); int procBoardRideInit(); int procBoardRide(); - int procBoardWaitInit(fopAc_ac_c*); + int procBoardWaitInit(fopAc_ac_c* i_boardActor); int procBoardWait(); int procBoardRowInit(); int procBoardRow(); int procBoardTurnInit(); int procBoardTurn(); - int procBoardJumpInit(f32, int); + int procBoardJumpInit(f32 i_jumpSpeed, BOOL i_isNoSpeed); int procBoardJump(); int procBoardSubjectivityInit(); int procBoardSubjectivity(); @@ -6261,11 +6409,11 @@ public: int procBoardCut(); int procBoardCutTurnInit(); int procBoardCutTurn(); - void hookshotAtHitCallBack(dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*); + void hookshotAtHitCallBack(dCcD_GObjInf* i_atObjInf, fopAc_ac_c* i_tgActor, dCcD_GObjInf* i_tgObjInf); void resetHookshotMode(); - BOOL setEnemyBombHookshot(fopAc_ac_c*); + BOOL setEnemyBombHookshot(fopAc_ac_c* i_actor); bool checkLv7BossRoom(); - BOOL checkHookshotStickBG(cBgS_PolyInfo&); + BOOL checkHookshotStickBG(cBgS_PolyInfo& i_polyinfo); void cancelHookshotCarry(); void changeHookshotDrawModel(); BOOL checkHookshotRoofLv7Boss(); @@ -6280,7 +6428,7 @@ public: bool cancelHookshotMove(); BOOL checkHookshotReadyMaterialOffMode() const; void setHookshotReadyMaterial(); - int initHookshotUpperAnimeSpeed(int); + int initHookshotUpperAnimeSpeed(BOOL); void initHookshotReady(); void setHookshotReadyAnime(); int checkUpperItemActionHookshot(); @@ -6292,7 +6440,7 @@ public: void setHookshotRoofWaitAnime(); void setHookshotWallWaitAnime(); void hookshotRoofTurn(); - void initHookshotRoofWaitActor(fopAc_ac_c*); + void initHookshotRoofWaitActor(fopAc_ac_c* i_actor); int checkNextHookPoint(); int checkLandHookshotHang(); int commonHookshotRoofWait(); @@ -6327,21 +6475,21 @@ public: void setSpinnerSyncPos(); int procSpinnerReadyInit(); int procSpinnerReady(); - void setSpinnerStatus(u8, u8); + void setSpinnerStatus(u8 i_status, u8 i_flag); int procSpinnerWaitInit(); int procSpinnerWait(); int bottleModelCallBack(); - BOOL checkOilBottleItemNotGet(u16); - void setBottleModel(u16); - int commonBottleDrink(int); - fopAc_ac_c* makeFairy(cXyz*, u32); - int procBottleDrinkInit(u16); + BOOL checkOilBottleItemNotGet(u16 i_itemNo); + void setBottleModel(u16 i_itemNo); + int commonBottleDrink(BOOL); + fopAc_ac_c* makeFairy(cXyz* i_pos, u32 i_params); + int procBottleDrinkInit(u16 i_itemNo); int procBottleDrink(); - int procBottleOpenInit(u16); + int procBottleOpenInit(u16 i_itemNo); int procBottleOpen(); - int procBottleSwingInit(fopAc_ac_c*, int); + int procBottleSwingInit(fopAc_ac_c* i_catchActor, int); int procBottleSwing(); - int procBottleGetInit(int); + int procBottleGetInit(BOOL); int procBottleGet(); BOOL checkWaterInKandelaarOffset(f32); void checkWaterInKandelaar(f32); @@ -6358,7 +6506,7 @@ public: int procKandelaarSwing(); int procKandelaarPourInit(); int procKandelaarPour(); - void setGrassWhistleModel(int); + void setGrassWhistleModel(int i_modelType); void setHorseWhistleModel(); int procGrassWhistleGetInit(); int procGrassWhistleGet(); @@ -6395,10 +6543,10 @@ public: int procIronBallReturnInit(); int procIronBallReturn(); BOOL checkEventRun() const; - void createNpcTks(cXyz*, int, u32); + void createNpcTks(cXyz* i_basePos, int i_roomNo, u32 i_parameters); int checkDemoAction(); - bool checkDemoMoveMode(u32) const; - void setDemoMoveData(u32*, cXyz const*); + bool checkDemoMoveMode(u32 i_mode) const; + void setDemoMoveData(u32* o_mode, cXyz const* i_goal); void setNoDrawSwordShield(int, u16); void setDemoData(); void resetDemoBck(); @@ -6407,27 +6555,28 @@ public: void endDemoMode(); fopAc_ac_c* getDemoLookActor(); BOOL checkFlyAtnWait(); - void setGetItemFace(u16); - BOOL checkGrabTalkActor(fopAc_ac_c*); + void setGetItemFace(u16 i_itemNo); + BOOL checkGrabTalkActor(fopAc_ac_c* i_actor); int setTalkStartBack(cXyz*); void setShapeAngleToTalkActor(); void setTalkAnime(); u8 setTradeItemAnime(); void setTradeItemOutHand(); - BOOL checkEndMessage(u32); + BOOL checkEndMessage(u32 i_msgIdx); u8 setDemoRightHandIndex(u16); u8 setDemoLeftHandIndex(u16); void setDemoRide(u16); - void setDemoBodyBck(dDemo_actor_c*, u16); + void setDemoBodyBck(dDemo_actor_c* i_demoActor, u16 i_resIdx); static BOOL checkFinalBattle(); - BOOL checkRestartDead(int, int); + BOOL checkRestartDead(int i_dmgAmount, BOOL i_checkZoraMag); void setDeadRideSyncPos(); BOOL checkDeadHP(); BOOL checkDeadAction(int); - void setHighModelBck(mDoExt_bckAnm*, u16); - void setHighModelFaceBtk(u16); - void setDemoBrk(J3DAnmTevRegKey**, J3DModel*, u16); - f32 setStickAnmData(J3DAnmBase*, int, int, u16, int); + void setHighModelBck(mDoExt_bckAnm* i_bck, u16 i_resIdx); + void setHighModelFaceBtk(u16 i_resIdx); + void setDemoBrk(J3DAnmTevRegKey** o_ppbrk, J3DModel* i_model, u16 i_resIdx); + f32 setStickAnmData(J3DAnmBase* i_anm, int i_arg1, int i_arg2, u16 i_resIdx, + int i_stickDirection); int procDemoCommon(); int procCoToolDemoInit(); int procCoToolDemo(); @@ -6437,7 +6586,7 @@ public: int procCoOpenTreasure(); int procCoUnequipInit(); int procCoUnequip(); - void setGetSubBgm(int); + void setGetSubBgm(int i_itemNo); int procCoGetItemInit(); int procCoGetItem(); int procCoTurnBackInit(); @@ -6488,8 +6637,8 @@ public: int procLookAroundTurn(); int procTradeItemOutInit(); int procTradeItemOut(); - static BOOL checkLetterItem(int); - int procNotUseItemInit(int); + static BOOL checkLetterItem(int i_itemNo); + int procNotUseItemInit(int i_itemNo); int procNotUseItem(); int procSwordReadyInit(); int procSwordReady(); @@ -6519,13 +6668,15 @@ public: int procCoWarp(); int commonWaitTurnInit(); int commonGrabPutInit(); - int commonLargeDamageUpInit(int, int, s16, s16); + int commonLargeDamageUpInit(int i_type, BOOL i_isLargeDmg, s16, s16); int commonFallInit(int); - JPABaseEmitter* setEmitter(u32*, u16, cXyz const*, csXyz const*); - JPABaseEmitter* setEmitterPolyColor(u32*, u16, cBgS_PolyInfo&, cXyz const*, - csXyz const*); - JPABaseEmitter* setEmitterColor(u32*, u16, cXyz const*, csXyz const*); - void stopDrawParticle(u32); + JPABaseEmitter* setEmitter(u32* i_emitterId, u16 i_effName, cXyz const* i_pos, + csXyz const* i_rotation); + JPABaseEmitter* setEmitterPolyColor(u32* i_emitterId, u16 i_effName, cBgS_PolyInfo& i_polyinfo, cXyz const*, + csXyz const*); + JPABaseEmitter* setEmitterColor(u32* i_emitterId, u16 i_effName, cXyz const* i_pos, + csXyz const* i_rotation); + void stopDrawParticle(u32 i_emitterId); void setEffectFrontRollParam(); void setEffectSlipParam(); void setEffectRunParam(); @@ -6534,10 +6685,10 @@ public: void setEffectSumouParam(); void setFootEffectProcType(int); void setWolfFootOn(int); - void setFootMark(cXyz*, u16, int); + void setFootMark(cXyz* i_pos, u16 i_mtxNo, int); void setEffect(); void setSumouEffect(); - void setWaterfallEffect(cXyz const*, u32*); + void setWaterfallEffect(const cXyz* i_pos, u32* i_emitterId); void setWaterfallEffect(); void setMagneBootsEffect(); void setSwordChargeEffect(); @@ -6553,7 +6704,7 @@ public: void setWolfSwimEndEffect(JPABaseEmitter**, JPABaseEmitter**); void setWolfLockAttackEffect(); void setWolfJumpAttackEffect(); - void setWolfBarrierHitEffect(dBgS_LinChk&); + void setWolfBarrierHitEffect(dBgS_LinChk& i_linchk); void setCutWaterDropEffect(); void setWaterDropEffect(); void setSwordUpColorEffect(); @@ -6563,9 +6714,9 @@ public: void setRunSplash(); void resetFairyEffect(); void setBottleEffect(); - void clearFirePointDamageEffect(int); + void clearFirePointDamageEffect(int i_effNo); void initFirePointDamageEffectAll(); - void initFirePointDamageEffect(cXyz const*, dCcD_GObjInf*); + void initFirePointDamageEffect(cXyz const*, dCcD_GObjInf* i_hitObj); void setFirePointDamageEffect(); void setFreezeEffect(); void setWoodShieldBurnEffect(); @@ -6577,9 +6728,9 @@ public: void onWolfEyeUp(); void offWolfEyeUp(); BOOL wolfSenseTrigger(); - void setWolfSenceStatus(u8); + void setWolfSenceStatus(u8 i_status); BOOL wolfClawTrigger(); - void setWolfDigStatus(u8); + void setWolfDigStatus(u8 i_flag); BOOL checkWolfShapeReverse() const; BOOL checkWolfSideStep() const; void setWolfTailAngle(); @@ -6587,20 +6738,22 @@ public: void setSpeedAndAngleWolf(); void setSpeedAndAngleWolfAtn(); BOOL checkWolfAtnWait(); - BOOL checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM) const; + BOOL checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM i_anm) const; void setBlendWolfMoveAnime(f32); BOOL checkWolfAtnMoveBack(s16); void setWolfAtnMoveDirection(); void setBlendWolfAtnMoveAnime(f32); void setBlendWolfAtnBackMoveAnime(f32); int setDoubleAnimeWolf(f32, f32, f32, daAlink_c::daAlink_WANM, - daAlink_c::daAlink_WANM, int, f32); - void setSingleAnimeWolfBase(daAlink_c::daAlink_WANM); - void setSingleAnimeWolfBaseMorf(daAlink_c::daAlink_WANM, f32); - void setSingleAnimeWolfBaseSpeed(daAlink_c::daAlink_WANM, f32, f32); - int setSingleAnimeWolf(daAlink_c::daAlink_WANM, f32, f32, s16, f32); - void setSingleAnimeWolfParam(daAlink_c::daAlink_WANM, daAlinkHIO_anm_c const*); - int checkWolfLandAction(int); + daAlink_c::daAlink_WANM, int, f32); + void setSingleAnimeWolfBase(daAlink_c::daAlink_WANM i_anmID); + void setSingleAnimeWolfBaseMorf(daAlink_c::daAlink_WANM i_anmID, f32 i_morf); + void setSingleAnimeWolfBaseSpeed(daAlink_c::daAlink_WANM i_anmID, f32 i_speed, f32 i_morf); + int setSingleAnimeWolf(daAlink_c::daAlink_WANM i_anmID, f32 i_speed, f32 i_start, + s16 i_endFrame, f32 i_morf); + void setSingleAnimeWolfParam(daAlink_c::daAlink_WANM i_anmID, + daAlinkHIO_anm_c const* i_anmData); + int checkWolfLandAction(BOOL); BOOL checkMidnaUseAbility() const; void checkWolfUseAbility(); int checkWolfGroundSpecialMode(); @@ -6608,7 +6761,7 @@ public: BOOL wolfSideBgCheck(s16); BOOL checkWolfAttackReverse(int); int checkWolfBarrierHitReverse(); - BOOL checkWolfBarrierWallHit(cBgS_PolyInfo&); + BOOL checkWolfBarrierWallHit(cBgS_PolyInfo& i_polyinfo); void wolfBgCheck(); void changeWolfBlendRate(int); void setWolfFootMatrix(); @@ -6648,7 +6801,7 @@ public: int procWolfHowl(); int procWolfAutoJumpInit(int); int procWolfAutoJump(); - int procWolfFallInit(int, f32); + int procWolfFallInit(int, f32 i_morf); int procWolfFall(); int procWolfLandInit(); int procWolfLand(); @@ -6662,9 +6815,9 @@ public: int procWolfSlipTurn(); int procWolfSlipTurnLandInit(); int procWolfSlipTurnLand(); - int procWolfSlideReadyInit(s16, int); + int procWolfSlideReadyInit(s16 i_angle, int); int procWolfSlideReady(); - int procWolfSlideInit(s16, int); + int procWolfSlideInit(s16 i_angle, int); int procWolfSlide(); int procWolfSlideLandInit(); int procWolfSlideLand(); @@ -6675,7 +6828,7 @@ public: void setWolfHowlNotHappen(int); int procWolfHowlDemoInit(); int procWolfHowlDemo(); - fopAc_ac_c* checkWolfRopeHit(dCcD_GObjInf*, cXyz const*, int) const; + fopAc_ac_c* checkWolfRopeHit(dCcD_GObjInf* i_collider, cXyz const*, int) const; int checkWolfRopeJumpHang(); f32 getWolfRopeMoveSpeed(); int setWolfRopePosY(); @@ -6695,9 +6848,9 @@ public: int procWolfRopeSubjectivity(); int getWolfTagJumpTime() const; const cXyz* checkMidnaLockJumpPoint() const; - int procWolfTagJumpInit(fopAc_ac_c*); + int procWolfTagJumpInit(fopAc_ac_c* i_tag); int procWolfTagJump(); - int procWolfTagJumpLandInit(fopAc_ac_c*); + int procWolfTagJumpLandInit(fopAc_ac_c* i_tag); int procWolfTagJumpLand(); int procWolfGiantPuzzleInit(); int procWolfGiantPuzzle(); @@ -6707,10 +6860,10 @@ public: int procWolfHangReady(); int procWolfHangWallCatchInit(int); int procWolfHangWallCatch(); - int procWolfHangFallStartInit(cM3dGPla*); + int procWolfHangFallStartInit(cM3dGPla* i_tripla); int procWolfHangFallStart(); void setWolfHeadDamage(); - int procWolfDamageInit(dCcD_GObjInf*); + int procWolfDamageInit(dCcD_GObjInf* i_hitObj); int procWolfDamage(); int procWolfLargeDamageUpInit(int, int, s16, s16); int procWolfLargeDamageUp(); @@ -6750,12 +6903,12 @@ public: void resetWolfBallGrab(); void checkWolfLockData(); fopAc_ac_c* getWolfLockActorEnd(); - void searchWolfLockEnemy(fopAc_ac_c*, void*); + void searchWolfLockEnemy(fopAc_ac_c* i_actor, void* i_data); void checkWolfComboCnt(); BOOL checkWolfAttackAction(); - void setWolfEnemyThrowUpperAnime(daAlink_c::daAlink_WANM, f32); - BOOL setWolfEnemyHangBitePos(fopEn_enemy_c*); - void setWolfBiteDamage(fopEn_enemy_c*); + void setWolfEnemyThrowUpperAnime(daAlink_c::daAlink_WANM i_anmID, f32); + BOOL setWolfEnemyHangBitePos(fopEn_enemy_c* i_enemy); + void setWolfBiteDamage(fopEn_enemy_c* i_enemy); BOOL checkWolfLockAttackChargeState(); int procWolfRollAttackChargeInit(); int procWolfRollAttackCharge(); @@ -6775,7 +6928,7 @@ public: int procWolfRollAttack(); int procWolfDownAttackInit(); int procWolfDownAttack(); - int procWolfDownAtLandInit(fopEn_enemy_c*); + int procWolfDownAtLandInit(fopEn_enemy_c* i_enemy); int procWolfDownAtLand(); int procWolfDownAtMissLandInit(); int procWolfDownAtMissLand(); @@ -6814,9 +6967,9 @@ public: void setSmellSave(); int procWolfGetSmellInit(); int procWolfGetSmell(); - void setArcName(int); + void setArcName(BOOL i_isWolf); void setShieldArcName(); - void setOriginalHeap(JKRExpHeap**, u32); + void setOriginalHeap(JKRExpHeap** i_ppheap, u32 i_size); void setShieldChange(); int loadModelDVD(); void setShieldModel(); @@ -6824,7 +6977,7 @@ public: void changeModelDataDirect(int); void changeModelDataDirectWolf(int); void initStatusWindow(); - void statusWindowExecute(cXyz const*, s16); + void statusWindowExecute(const cXyz* i_pos, s16 i_angle); void statusWindowDraw(); void resetStatusWindow(); fopAc_ac_c* getChainGrabActor() { return field_0x2844.getActor(); } @@ -6839,21 +6992,24 @@ public: BOOL checkCutHeadProc() const { return mProcID == PROC_CUT_HEAD; } fopAc_ac_c* getRideActor() { return mRideAcKeep.getActor(); } - virtual bool checkAcceptDungeonWarpAlink(int) { return checkAcceptWarp(); } - virtual daSpinner_c* getSpinnerActor() { - daSpinner_c* spinnerActor; - if (!checkSpinnerRide()) { - spinnerActor = NULL; - } else { - spinnerActor = (daSpinner_c*)mRideAcKeep.getActor(); - } - return (daSpinner_c*)spinnerActor; + virtual bool checkAcceptDungeonWarpAlink(int unused) { + UNUSED(unused); + return checkAcceptWarp(); } + + virtual daSpinner_c* getSpinnerActor() { + if (checkSpinnerRide()) { + return (daSpinner_c*)mRideAcKeep.getActor(); + } else { + return NULL; + } + } + virtual s16 getSumouCounter() const { return mProcVar2.field_0x300c; } virtual s16 checkSumouWithstand() const { return mProcVar3.field_0x300e; } - virtual void setMidnaMsgNum(fopAc_ac_c* param_0, u16 pMsgNum) { - mMidnaMsgNum = pMsgNum; - mMidnaMsg = (daTagMmsg_c*)param_0; + virtual void setMidnaMsgNum(fopAc_ac_c* i_msgTag, u16 i_msgNum) { + mMidnaMsgNum = i_msgNum; + mMidnaMsg = (daTagMmsg_c*)i_msgTag; } virtual MtxP getModelMtx() { return mpLinkModel->getBaseTRMtx(); } virtual MtxP getInvMtx() { return mInvMtx; } @@ -6963,19 +7119,19 @@ public: virtual f32 getSearchBallScale() const { return mSearchBallScale; } virtual int checkFastShotTime() { return mFastShotTime; } virtual f32 getBaseAnimeFrame() const; - virtual void setAnimeFrame(f32); + virtual void setAnimeFrame(f32 i_frame); virtual BOOL checkWolfLock(fopAc_ac_c*) const; virtual bool cancelWolfLock(fopAc_ac_c*); - virtual BOOL exchangeGrabActor(fopAc_ac_c*); - virtual BOOL setForceGrab(fopAc_ac_c*, int, int); + virtual BOOL exchangeGrabActor(fopAc_ac_c* i_actor); + virtual BOOL setForceGrab(fopAc_ac_c* i_actor, BOOL, BOOL); virtual u32 checkPlayerNoDraw(); virtual void voiceStart(u32); virtual void seStartOnlyReverb(u32); virtual void seStartOnlyReverbLevel(u32); - virtual void setOutPower(f32, short, int); - virtual void setGrabCollisionOffset(f32, f32, cBgS_PolyInfo*); - virtual void onFrollCrashFlg(u8, int); - virtual MtxP getModelJointMtx(u16); + virtual void setOutPower(f32, s16, int); + virtual void setGrabCollisionOffset(f32 i_offsetX, f32 i_offsetZ, cBgS_PolyInfo*); + virtual void onFrollCrashFlg(u8 i_flg, BOOL); + virtual MtxP getModelJointMtx(u16 i_jointNo); virtual bool setHookshotCarryOffset(fpc_ProcID, cXyz const*); virtual BOOL checkCutJumpCancelTurn() const { return (mProcID == PROC_CUT_JUMP || mProcID == PROC_CUT_JUMP_LAND) && field_0x3198 != 2; @@ -6986,23 +7142,23 @@ public: return mProcID == PROC_HORSE_BOW_SUBJECT && mProcVar2.field_0x300c != 0; } virtual void setClothesChange(int); - virtual void setPlayerPosAndAngle(cXyz const*, short, int); - virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*); - virtual void setPlayerPosAndAngle(f32 (*)[4]); - virtual bool setThrowDamage(short, f32, f32, int, int, int); - virtual bool checkSetNpcTks(cXyz*, int, int); - virtual int setRollJump(f32, f32, short); + virtual void setPlayerPosAndAngle(const cXyz* i_pos, s16 i_angle, BOOL); + virtual void setPlayerPosAndAngle(const cXyz* i_pos, const csXyz* i_angle); + virtual void setPlayerPosAndAngle(Mtx i_mtx); + virtual bool setThrowDamage(s16, f32, f32, int, int, int); + virtual bool checkSetNpcTks(cXyz* i_basePos, int i_roomNo, int); + virtual int setRollJump(f32 i_speedH, f32 i_speedV, s16 i_angle); virtual void cancelDungeonWarpReadyNeck() { if (mProcID != PROC_DUNGEON_WARP_READY) { return; } offModeFlg(MODE_UNK_100); } - virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*); - virtual void onSceneChangeAreaJump(u8 exitID, u8 exitDirection, fopAc_ac_c* scexAc) { - mExitID = exitID | 0x8000; - mExitDirection = exitDirection; - mpScnChg = (daScex_c*)scexAc; + virtual void onSceneChangeArea(u8 i_exitID, u8 i_exitDirection, fopAc_ac_c* i_scexAc); + virtual void onSceneChangeAreaJump(u8 i_exitID, u8 i_exitDirection, fopAc_ac_c* i_scexAc) { + mExitID = i_exitID | 0x8000; + mExitDirection = i_exitDirection; + mpScnChg = (daScex_c*)i_scexAc; } virtual void onSceneChangeDead(u8 param_0, int param_1) { if (mProcID != PROC_DEAD) { @@ -7026,20 +7182,20 @@ public: return 0; } virtual cXyz* getMagneBootsTopVec() { return &mMagneBootsTopVec; } - virtual void setCargoCarry(fopAc_ac_c* p_actor) { - mSpecialMode = SMODE_CARGO_CARRY; - mCargoCarryAcKeep.setData(p_actor); + virtual void setCargoCarry(fopAc_ac_c* i_actor) { + mMode = SMODE_CARGO_CARRY; + mCargoCarryAcKeep.setData(i_actor); } - virtual void setGoronSideMove(fopAc_ac_c* p_actor) { - mSpecialMode = SMODE_GORON_THROW; - mCargoCarryAcKeep.setData(p_actor); + virtual void setGoronSideMove(fopAc_ac_c* i_actor) { + mMode = SMODE_GORON_THROW; + mCargoCarryAcKeep.setData(i_actor); } - virtual void setSumouReady(fopAc_ac_c* p_actor) { - mSpecialMode = SMODE_SUMO_READY; - mCargoCarryAcKeep.setData(p_actor); - mDemo.setDemoMode(1); + virtual void setSumouReady(fopAc_ac_c* i_actor) { + mMode = SMODE_SUMO_READY; + mCargoCarryAcKeep.setData(i_actor); + mDemo.setDemoMode(daPy_demo_c::DEMO_UNK_1_e); } - virtual void setSumouPushBackDirection(short param_0) { + virtual void setSumouPushBackDirection(s16 param_0) { if (mProcID != PROC_SUMOU_MOVE) { return; } @@ -7049,24 +7205,24 @@ public: if (mProcID != PROC_SUMOU_WIN_LOSE) { return; } - mSpecialMode = SMODE_SUMO_LOSE; + mMode = SMODE_SUMO_LOSE; } virtual cXyz* getKandelaarFlamePos(); virtual bool checkUseKandelaar(int); - virtual void setDkCaught(fopAc_ac_c*); - virtual void onPressedDamage(cXyz const&, short); - virtual bool checkPriActorOwn(fopAc_ac_c const* p_actor) const { - return field_0x27f4 == p_actor; + virtual void setDkCaught(fopAc_ac_c* i_dkActor); + virtual void onPressedDamage(cXyz const&, s16); + virtual bool checkPriActorOwn(fopAc_ac_c const* i_actor) const { + return field_0x27f4 == i_actor; } - virtual bool onWolfEnemyBiteAll(fopAc_ac_c*, daPy_FLG2); - virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const* p_actor) const { - return field_0x281c.getActorConst() == p_actor; + virtual bool onWolfEnemyBiteAll(fopAc_ac_c* i_enemy, daPy_py_c::daPy_FLG2 i_flag); + virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const* i_actor) const { + return field_0x281c.getActorConst() == i_actor; } - virtual void setWolfEnemyHangBiteAngle(short angle) { + virtual void setWolfEnemyHangBiteAngle(s16 i_angle) { if (mProcID != PROC_WOLF_ENEMY_HANG_BITE) { return; } - mProcVar4.field_0x3010 = angle; + mProcVar4.field_0x3010 = i_angle; } virtual void setSumouGraspCancelCount(int param_0) { if (mProcID != PROC_SUMOU_MOVE) { @@ -7076,7 +7232,7 @@ public: } virtual bool checkItemSwordEquip() const { return mEquipItem == 0x103; } virtual f32 getSinkShapeOffset() const { return mSinkShapeOffset; } - virtual BOOL checkSinkDead() const { return field_0x2fbd == 0xFF; } + virtual BOOL checkSinkDead() const { return mGndPolyAtt1 == 0xFF; } virtual BOOL checkCutJumpMode() const { return mProcID == PROC_CUT_JUMP; } virtual s16 getGiantPuzzleAimAngle() const { return mProcVar2.mPuzzleAimAngle; } virtual u8 getSwordChangeWaitTimer() const { return mSwordChangeWaitTimer; } @@ -7086,8 +7242,8 @@ public: virtual BOOL checkWolfDownAttackPullOut() const { return mProcID == PROC_WOLF_DOWN_AT_LAND; } virtual cXyz* getMidnaAtnPos() const { return (cXyz*)&mMidnaAtnPos; } virtual bool checkCopyRodEquip() const { return mEquipItem == fpcNm_ITEM_COPY_ROD; } - virtual void setKandelaarMtx(f32 (*)[4], int, int); - virtual bool getStickAngleFromPlayerShape(short*) const; + virtual void setKandelaarMtx(Mtx i_mtx, int, int); + virtual bool getStickAngleFromPlayerShape(s16* o_angle) const; virtual bool checkSpinnerPathMove(); virtual bool checkSpinnerTriggerAttack(); virtual void onSpinnerPathForceRemove(); @@ -7105,7 +7261,7 @@ public: return checkUnderMove0BckNoArcWolf(WANM_HOWL_SUCCESS); } virtual void skipPortalObjWarp(); - virtual BOOL checkTreasureRupeeReturn(int) const; + virtual BOOL checkTreasureRupeeReturn(int i_itemNo) const; virtual void cancelGoronThrowEvent(); virtual cXyz* getHookshotTopPos(); virtual bool checkHookshotReturnMode() const; @@ -7134,10 +7290,10 @@ public: virtual bool checkDragonHangRide() const { return mProcID == PROC_BOSS_BODY_HANG && field_0x32cc != 0; } - virtual void playerStartCollisionSE(u32 param_0, u32 param_1) { - mZ2Link.startCollisionSE(param_0, param_1); + virtual void playerStartCollisionSE(u32 i_hitID, u32 i_mapinfo) { + mZ2Link.startCollisionSE(i_hitID, i_mapinfo); } - virtual void changeDragonActor(fopAc_ac_c*); + virtual void changeDragonActor(fopAc_ac_c* i_actor); virtual u8 getClothesChangeWaitTimer() const { return mClothesChangeWaitTimer; } virtual u8 getShieldChangeWaitTimer() const { return mShieldChangeWaitTimer; } virtual BOOL checkBootsOrArmorHeavy() const; @@ -7145,30 +7301,24 @@ public: virtual BOOL checkHorseStart() { return checkHorseStart(getLastSceneMode(), getStartMode()); } virtual BOOL checkCopyRodTopUse(); - static BOOL checkDebugMoveInput() { - if (mDoCPd_c::isConnect(PAD_3)) { - return mDoCPd_c::getHoldB(PAD_1) && mDoCPd_c::getAnalogR(PAD_1) > 0.8f && - mDoCPd_c::getTrigA(PAD_1); - } + static BOOL checkDebugMoveInput(); - return FALSE; - } + u32 checkModeFlg(u32 i_flag) const { return mModeFlg & i_flag; } - u32 checkModeFlg(u32 pFlag) const { return mModeFlg & pFlag; } - BOOL checkSmallUpperGuardAnime() const { return checkUpperAnime(0x16); } - BOOL checkFmChainGrabAnime() const { return checkUpperAnime(0x62) || checkUpperAnime(0x2A0); } + BOOL checkSmallUpperGuardAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ATDEFS_e); } + BOOL checkFmChainGrabAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_CHAIN_e) || checkUpperAnime(dRes_ID_ALANM_BCK_WL_CHAIN_e); } BOOL checkAttentionLock() { return mAttention->Lockon(); } - bool checkUpperAnime(u16 i_idx) const { return mUpperAnmHeap[UPPER_2].getIdx() == i_idx; } - bool checkUnderAnime(u16 i_idx) const { return mUnderAnmHeap[UNDER_2].getIdx() == i_idx; } + bool checkUpperAnime(u16 i_resIdx) const { return mUpperAnmHeap[UPPER_2].getIdx() == i_resIdx; } + bool checkUnderAnime(u16 i_resIdx) const { return mUnderAnmHeap[UNDER_2].getIdx() == i_resIdx; } bool checkNoSetUpperAnime() const { return mUpperAnmHeap[UPPER_2].checkNoSetIdx(); } - bool checkSwimMoveHandAnime() const { return checkUpperAnime(0x23F); } - bool checkZoraSwimDamageAnime() const { return checkUpperAnime(0xBF); } - bool checkIronBallWaitAnime() const { return checkUpperAnime(0x19C); } - bool checkHorseTurnLAnime() const { return checkUpperAnime(0x24C); } - bool checkHorseTurnRAnime() const { return checkUpperAnime(0x24D); } + bool checkSwimMoveHandAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_SWIMINGB_e); } + bool checkZoraSwimDamageAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_DAMSW_e); } + bool checkIronBallWaitAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_IBWAIT_e); } + bool checkHorseTurnLAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_TURNLS_e); } + bool checkHorseTurnRAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_TURNRS_e); } bool checkHorseTurnAnime() const { return checkHorseTurnLAnime() || checkHorseTurnRAnime(); } bool checkHookshotShootAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_HSSHOOT_e); } bool checkHookshotReadyAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_HSWAIT_e); } @@ -7176,99 +7326,99 @@ public: return checkHookshotReadyAnime() || checkHookshotShootAnime(); } BOOL checkBoomerangReadyAnime() const { - return (mEquipItem == fpcNm_ITEM_BOOMERANG || mEquipItem == 0x102) && checkUpperAnime(0x54); + return (mEquipItem == fpcNm_ITEM_BOOMERANG || mEquipItem == 0x102) && checkUpperAnime(dRes_ID_ALANM_BCK_BOOMWAIT_e); } - bool checkDkCaught2Anime() const { return checkUpperAnime(0x262); } + bool checkDkCaught2Anime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WAITHDB_e); } BOOL checkCopyRodThrowAnime() const { - return mEquipItem == fpcNm_ITEM_COPY_ROD && checkUpperAnime(0x53); + return mEquipItem == fpcNm_ITEM_COPY_ROD && checkUpperAnime(dRes_ID_ALANM_BCK_BOOMTHROW_e); } - BOOL checkCutDashChargeAnime() const { return checkUpperAnime(0x83); } + BOOL checkCutDashChargeAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_CUTDTP_e); } BOOL checkBoomerangAnimeAndReturnWait() const { return checkBoomerangAnime(); } - BOOL checkTwoHandItemEquipAnime() const { return checkUpperAnime(0x245); } - BOOL checkBarkAnime() const { return 0; } - bool checkWolfGrabAnimeObj() const { return checkUpperAnime(0x2DA); } - bool checkWolfGrabAnimeStick() const { return checkUpperAnime(0x2DB); } + BOOL checkTwoHandItemEquipAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_TAKE_e); } + BOOL checkBarkAnime() const { return FALSE; } + bool checkWolfGrabAnimeObj() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WL_PICKUPA_e); } + bool checkWolfGrabAnimeStick() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WL_PICKUPB_e); } BOOL checkWolfGrabAnime() const { return checkWolfGrabAnimeObj() || checkWolfGrabAnimeStick(); } - bool checkWolfSwimDashAnime() const { return checkUnderMove0BckNoArcWolf(WANM_SWIM_DASH); } + BOOL checkWolfSwimDashAnime() const { return checkUnderMove0BckNoArcWolf(WANM_SWIM_DASH); } bool checkKandelaarSwingAnime() const { return false; } - bool checkBowChargeWaitAnime() const { return checkUpperAnime(0xA); } - bool checkBowReloadAnime() const { return checkUpperAnime(0x9); } - bool checkBowShootAnime() const { return checkUpperAnime(0xC); } - bool checkBowWaitAnime() const { return checkUpperAnime(0xD); } - BOOL checkGrabUpThrowAnime() const { return checkUpperAnime(0x170); } + bool checkBowChargeWaitAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ARELORDTAME_e); } + bool checkBowReloadAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ARELORD_e); } + bool checkBowShootAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ASHOOT_e); } + bool checkBowWaitAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_ASHOOTWAIT_e); } + BOOL checkGrabUpThrowAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_GRABTHROW_e); } BOOL checkGrabSideThrowAnime() const { - return checkUpperAnime(0x51) || mUpperAnmHeap[0].getIdx() == 0x51; + return checkUpperAnime(dRes_ID_ALANM_BCK_BOMBTHROW_e) || mUpperAnmHeap[0].getIdx() == dRes_ID_ALANM_BCK_BOMBTHROW_e; } - BOOL checkGrabHeavyThrowAnime() const { return checkUpperAnime(0x17B); } - BOOL checkGrabAnimeUp() const { return checkUpperAnime(0x16C); } - BOOL checkGrabAnimeSide() const { return checkUpperAnime(0x50); } - BOOL checkGrabAnimeCarry() const { return checkUpperAnime(0x60); } - bool checkHorseUnderDashStartAnime() const { return checkUnderAnime(0xDD); } - bool checkHorseUnderLashAnime() const { return checkUnderAnime(0x1B3); } - bool checkUpperHorseLieAnime() const { return checkUpperAnime(0x265); } - bool checkHorseTiredAnime() const { return checkUpperAnime(0x263); } - bool checkHorseSwordUpAnime() const { return checkUpperAnime(0xCC); } - bool checkHorseUnderItemAnime() const { return checkUnderAnime(0x19); } + BOOL checkGrabHeavyThrowAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_HEAVYTHROW_e); } + BOOL checkGrabAnimeUp() const { return checkUpperAnime(dRes_ID_ALANM_BCK_GRABD_e); } + BOOL checkGrabAnimeSide() const { return checkUpperAnime(dRes_ID_ALANM_BCK_BOMBD_e); } + BOOL checkGrabAnimeCarry() const { return checkUpperAnime(dRes_ID_ALANM_BCK_CARRYD_e); } + bool checkHorseUnderDashStartAnime() const { return checkUnderAnime(dRes_ID_ALANM_BCK_DSTARTHS_e); } + bool checkHorseUnderLashAnime() const { return checkUnderAnime(dRes_ID_ALANM_BCK_LASHS_e); } + bool checkUpperHorseLieAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WAITHLIE_e); } + bool checkHorseTiredAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WAITHDS_e); } + bool checkHorseSwordUpAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_DASHHBSUP_e); } + bool checkHorseUnderItemAnime() const { return checkUnderAnime(dRes_ID_ALANM_BCK_ATH_e); } BOOL checkHorseWalkStartAnm() const { return checkUnderMove0BckNoArc(ANM_WSTARTH); } - bool checkIronBallPreSwingAnime() const { return checkUpperAnime(0x19A); } - bool checkIronBallSwingAnime() const { return checkUpperAnime(0x19B); } - bool checkDashDamageAnime() const { return checkUpperAnime(0xAD); } - bool checkBoomerangCatchAnime() const { return checkUpperAnime(0x52); } + bool checkIronBallPreSwingAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_IBTHROW_e); } + bool checkIronBallSwingAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_IBTURN_e); } + bool checkDashDamageAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_DAMD_e); } + bool checkBoomerangCatchAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_BOOMCATCH_e); } BOOL checkCopyRodReadyAnime() const { - return mEquipItem == fpcNm_ITEM_COPY_ROD && checkUpperAnime(0x54); + return mEquipItem == fpcNm_ITEM_COPY_ROD && checkUpperAnime(dRes_ID_ALANM_BCK_BOOMWAIT_e); } BOOL checkCanoeFishingWaitAnime() const { - return checkUpperAnime(0x5D) || checkUpperAnime(0x260); + return checkUpperAnime(dRes_ID_ALANM_BCK_CANOEREELINGR_e) || checkUpperAnime(dRes_ID_ALANM_BCK_WAITFISHR_e); } - BOOL checkCopyRodControllAnime() const { return checkUpperAnime(0x202); } - BOOL checkWolfHeadDamageAnime() const { return checkUpperAnime(0x2A7); } - BOOL checkExchangeRodAnime() const { return checkUpperAnime(0x68); } - BOOL checkReelAnime() const { return checkUpperAnime(0x1FB); } + BOOL checkCopyRodControllAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_RODD_e); } + BOOL checkWolfHeadDamageAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_WL_DAM_e); } + BOOL checkExchangeRodAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_CHANGEROD_e); } + BOOL checkReelAnime() const { return checkUpperAnime(dRes_ID_ALANM_BCK_REELINGARM_e); } int checkWolfEyeUp() const { return mWolfEyeUp; } void onModeFlg(u32 flag) { mModeFlg |= flag; } void offModeFlg(u32 flag) { mModeFlg &= ~flag; } - bool swordButton() { return itemButtonCheck(8); } + BOOL swordButton() { return itemButtonCheck(BTN_B); } daPy_actorKeep_c* getThrowBoomerangAcKeep() { return &mThrowBoomerangAcKeep; } int getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; } bool checkFisingRodLure() const { return mEquipItem == 0x105; } BOOL doTrigger() const { return mItemTrigger & BTN_A; } - bool swordTrigger() { return itemTriggerCheck(BTN_B); } + BOOL swordTrigger() { return itemTriggerCheck(BTN_B); } BOOL grassCancelTrigger() { return itemTriggerCheck(BTN_B); } BOOL arrowChangeTrigger() { return itemActionTrigger(); } - bool peepSubjectCancelTrigger() { return itemTriggerCheck(0x8); } + BOOL peepSubjectCancelTrigger() { return itemTriggerCheck(BTN_B); } int getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; } - bool checkInputOnR() const { return field_0x33ac > 0.05f; } - static int getSightBti() { return 0x5B; } + bool checkInputOnR() const { return mMoveValue > 0.05f; } + static u16 getSightBti() { return 0x5B; } bool checkBoomerangChargeEndWait() const { return mEquipItem != 0x102 && checkBoomerangAnime(); } J3DAnmTransform* getNowAnmPackUpper(daAlink_UPPER param_0) { return mNowAnmPackUpper[param_0].getAnmTransform(); } - void setFacePriBck(u16 param_0) { setFaceBck(param_0, 1, 0xFFFF); } - void setFacePriBtp(u16 param_0) { setFaceBtp(param_0, 1, 0xFFFF); } - void setFacePriBtk(u16 param_0) { setFaceBtk(param_0, 1, 0xFFFF); } - void setFaceBasicBck(u16 param_0) { setFaceBck(param_0, 0, 0xFFFF); } - void setFaceBasicBtp(u16 param_0) { setFaceBtp(param_0, 0, 0xFFFF); } - void setFaceBasicBtk(u16 param_0) { setFaceBtk(param_0, 0, 0xFFFF); } - void setFaceDemoBck(u16 param_0) { setFaceBck(param_0, 0, 0); } - void setFaceDemoBtp(u16 param_0) { setFaceBtp(param_0, 0, 0); } - void setFaceDemoBtk(u16 param_0) { setFaceBtk(param_0, 0, 0); } + void setFacePriBck(u16 i_resIdx) { setFaceBck(i_resIdx, TRUE, 0xFFFF); } + void setFacePriBtp(u16 i_resIdx) { setFaceBtp(i_resIdx, TRUE, 0xFFFF); } + void setFacePriBtk(u16 i_resIdx) { setFaceBtk(i_resIdx, TRUE, 0xFFFF); } + void setFaceBasicBck(u16 i_resIdx) { setFaceBck(i_resIdx, FALSE, 0xFFFF); } + void setFaceBasicBtp(u16 i_resIdx) { setFaceBtp(i_resIdx, FALSE, 0xFFFF); } + void setFaceBasicBtk(u16 i_resIdx) { setFaceBtk(i_resIdx, FALSE, 0xFFFF); } + void setFaceDemoBck(u16 i_resIdx) { setFaceBck(i_resIdx, FALSE, 0); } + void setFaceDemoBtp(u16 i_resIdx) { setFaceBtp(i_resIdx, FALSE, 0); } + void setFaceDemoBtk(u16 i_resIdx) { setFaceBtk(i_resIdx, FALSE, 0); } - void setGrabStatus(u8 i_status, u8 param_1) { setWallGrabStatus(i_status, param_1); } - void setChainGrabStatus(u8 i_status) { setGrabStatus(i_status, 2); } + void setGrabStatus(u8 i_status, u8 i_flag) { setWallGrabStatus(i_status, i_flag); } + void setChainGrabStatus(u8 i_status) { setGrabStatus(i_status, BUTTON_STATUS_FLAG_EMPHASIS); } void cancelFmChainGrabFromOut() { field_0x2fa3 = 0; field_0x2844.clearData(); } - int checkPlayerDemoMode() const { return mDemo.getDemoType(); } + BOOL checkPlayerDemoMode() const { return mDemo.getDemoType() != 0; } BOOL checkSpecialDemoMode() const { return mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_SPECIAL_e; } - static bool checkMidnaChargeAttack() { return dComIfGs_isEventBit(0x501); } + static BOOL checkMidnaChargeAttack() { return dComIfGs_isEventBit(0x501); } u16 getMidnaMsgNum() const { return mMidnaMsgNum; } u32 getStartEvent() { return fopAcM_GetParam(this) >> 0x18; } BOOL checkClimbFall() { return checkLadderFall(); } @@ -7322,7 +7472,7 @@ public: s16 getCameraAngleY() const { return field_0x310c; } cXyz* getSubjectEyePos() { return &field_0x3768; } - u32 checkReinRide() const { return mRideStatus == 1 || mRideStatus == 2; } + u32 checkReinRide() const { return mRideStatus == RIDETYPE_HORSE || mRideStatus == RIDETYPE_BOAR; } int getGrassHowlEventActor() const { return field_0x3198; } MtxP getShieldMtx() const { return mShieldModel->getBaseTRMtx(); } MtxP getMagneBootsMtx() { return mMagneBootMtx; } @@ -7331,7 +7481,7 @@ public: BOOL checkFishingCastMode() const { return (mProcID == PROC_FISHING_CAST && !(mItemAcKeep.getActor() != NULL && mItemAcKeep.getActor()->eventInfo.checkCommandDemoAccrpt())) || - (mProcID != PROC_FISHING_CAST && checkNoResetFlg2(FLG2_UNK_20000000) != 0); + (mProcID != PROC_FISHING_CAST && checkNoResetFlg2(FLG2_FISHING_CAST_WAIT) != 0); } BOOL setCanoeCast() { @@ -7351,11 +7501,11 @@ public: void setFishingArm1Angle(const csXyz& i_angle) { mFishingArm1Angle = i_angle; } void setFishingArm2Angle(const csXyz& i_angle) { field_0x3160 = i_angle; } - void endFishingCastWait() { offNoResetFlg2(FLG2_UNK_20000000); } + void endFishingCastWait() { offNoResetFlg2(FLG2_FISHING_CAST_WAIT); } void startFishingCastWait() { if (checkFishingRodItem(mEquipItem)) { - onNoResetFlg2(FLG2_UNK_20000000); + onNoResetFlg2(FLG2_FISHING_CAST_WAIT); } } @@ -7374,12 +7524,12 @@ public: } bool checkFisingRodJewl() const { - return (mEquipItem == 0x5C || mEquipItem == 0x5F) || mEquipItem == 0x5E; + return (mEquipItem == fpcNm_ITEM_JEWEL_ROD || mEquipItem == fpcNm_ITEM_JEWEL_WORM_ROD) || mEquipItem == fpcNm_ITEM_JEWEL_BEE_ROD; } - bool checkFisingRodWorm() const { return mItemMode == 0x74; } + bool checkFisingRodWorm() const { return mItemMode == fpcNm_ITEM_WORM; } - bool checkFisingRodBee() const { return mItemMode == 0x76; } + bool checkFisingRodBee() const { return mItemMode == fpcNm_ITEM_BEE_CHILD; } void fishingCastWaitAnimeStart() { if (mProcID == PROC_FISHING_CAST) { @@ -7405,28 +7555,26 @@ public: f32 getCopyRodBallDisFlyMax() const { return mSearchBallScale; } void clearIronBallActor() { field_0x173c.SetActor(this); } - BOOL checkCanoeRideOwn(const fopAc_ac_c* param_0) const { - return checkCanoeRide() && mRideAcKeep.getActorConst() == param_0; + BOOL checkCanoeRideOwn(const fopAc_ac_c* i_actor) const { + return checkCanoeRide() && mRideAcKeep.getActorConst() == i_actor; } - BOOL checkBoarRideOwn(const fopAc_ac_c* i_actorP) const { - return checkBoarRide() && mRideAcKeep.getActorConst() == i_actorP; + BOOL checkBoarRideOwn(const fopAc_ac_c* i_actor) const { + return checkBoarRide() && mRideAcKeep.getActorConst() == i_actor; } - bool checkWolfDashMode() const { return checkNoResetFlg1(FLG1_DASH_MODE); } + u32 checkWolfDashMode() const { return checkNoResetFlg1(FLG1_DASH_MODE); } bool checkWolfLieWaterIn() const { return mWaterY > current.pos.y + 20.5f; } - BOOL checkPowerGloveGet() { return false; } - - J3DModel* initModel(J3DModelData* p_modelData, u32 param_1) { - return initModel(p_modelData, 0x80000, param_1); + J3DModel* initModel(J3DModelData* i_modelData, u32 i_diffFlags) { + return initModel(i_modelData, 0x80000, i_diffFlags); } - J3DModel* initModelEnv(J3DModelData* p_modelData, u32 param_1) { - return initModel(p_modelData, 0, param_1); + J3DModel* initModelEnv(J3DModelData* i_modelData, u32 i_diffFlags) { + return initModel(i_modelData, 0, i_diffFlags); } bool checkResetRootMtx(int param_0) const { return field_0x2f90 != 0 && param_0 == 1; } - bool checkGrabGlide() { return checkGrabRooster(); } + BOOL checkGrabGlide() { return checkGrabRooster(); } bool checkCopyRodRevive() const { return mProcID == PROC_COPY_ROD_REVIVE; } bool checkHorseGetOffMode() const { return mProcID == PROC_HORSE_GETOFF; } @@ -7453,29 +7601,29 @@ public: BOOL checkRideOn() const { return mRideStatus != 0; } - bool checkSwimDashMode() const { return checkNoResetFlg1(FLG1_DASH_MODE); } + BOOL checkSwimDashMode() const { return checkNoResetFlg1(FLG1_DASH_MODE); } - bool talkTrigger() const { return mItemTrigger & BTN_A; } + BOOL talkTrigger() const { return mItemTrigger & BTN_A; } J3DAnmTransform* getNowAnmPackUnder(daAlink_UNDER i_idx) { return mNowAnmPackUnder[i_idx].getAnmTransform(); } BOOL doButton() const { return mItemButton & BTN_A; } - void setGrassCancelStatus(u8 param_0) { setBStatus(param_0); } + void setGrassCancelStatus(u8 i_status) { setBStatus(i_status); } - void seStartSystem(u32 i_seID) { mDoAud_seStart(i_seID, NULL, 0, 0); } + void seStartSystem(u32 i_soundID) { mDoAud_seStart(i_soundID, NULL, 0, 0); } bool checkIronBallEquip() const { return mEquipItem == fpcNm_ITEM_IRONBALL; } BOOL checkFishingRodEquip() const { return checkFishingRodItem(mEquipItem); } f32 getAnmSpeedStickRate(f32 param_0, f32 param_1) const { - return param_0 + (field_0x33a8 * (param_1 - param_0)); + return param_0 + (mStickValue * (param_1 - param_0)); } - bool escapeTrigger() { - field_0x2fae |= 8; + BOOL escapeTrigger() { + mUseButtonFlags |= (u8)BTN_B; return mItemTrigger & (BTN_A | BTN_B); } - void clearComboReserb() { offNoResetFlg2(FLG2_UNK_2); } + void clearComboReserb() { offNoResetFlg2(FLG2_COMBO_RESERB); } void setDamageColorTime() { mDamageColorTime = 32 - (mDamageTimer % 16); } @@ -7495,12 +7643,12 @@ public: // Gets the cardinal direction of the Left Stick relative to player facing angle int getDirectionFromShapeAngle() const { - return getDirectionFromAngle(field_0x2fe2 - shape_angle.y); + return getDirectionFromAngle(mMoveAngle - shape_angle.y); } // Gets the cardinal direction of the Left Stick relative to player angle int getDirectionFromCurrentAngle() const { - return getDirectionFromAngle(field_0x2fe2 - current.angle.y); + return getDirectionFromAngle(mMoveAngle - current.angle.y); } bool checkAnmEnd(daPy_frameCtrl_c* i_frameCtrl) { return i_frameCtrl->checkAnmEnd(); } @@ -7522,11 +7670,11 @@ public: static u16 getBallBtkIdx() { return 0x49; } static u16 getBallBrkIdx() { return 0x41; } - bool checkRootTransClearMode() { return field_0x2f99 & 7; } - bool checkRootTransZClearMode() { return field_0x2f99 & 4; } - bool checkRootTransXClearMode() { return field_0x2f99 & 1; } - bool checkRootTransYClearMode() { return field_0x2f99 & 2; } - bool checkRootTransClearContinueMode() { return field_0x2f99 & 8; } + BOOL checkRootTransClearMode() { return field_0x2f99 & 7; } + BOOL checkRootTransZClearMode() { return field_0x2f99 & 4; } + BOOL checkRootTransXClearMode() { return field_0x2f99 & 1; } + BOOL checkRootTransYClearMode() { return field_0x2f99 & 2; } + BOOL checkRootTransClearContinueMode() { return field_0x2f99 & 8; } s16 checkWindStoneHowl() { return mProcVar4.field_0x3010; } u8 getCorrectCurveID() { return mZ2WolfHowlMgr.getCorrectCurveID(); } u8 getCorrectLineNum() { return mZ2WolfHowlMgr.getCorrectLineNum(); } @@ -7538,19 +7686,19 @@ public: cXyz* getIronBallChainPos() const { return mIronBallChainPos; } csXyz* getIronBallChainAngle() const { return mIronBallChainAngle; } - int getIronBallHandChainNum() const { return mItemMode; } + s16 getIronBallHandChainNum() const { return mItemMode; } const cXyz& getIronBallChainHandRootPos() const { return mHookshotTopPos; } fopAc_ac_c* getAtnActor() { return mTargetedActor; } - void itemHitSE(u32 param_1, u32 param_2, Z2SoundObjBase* param_3) { - mZ2Link.startHitItemSE(param_1, param_2, param_3, -1.0f); + void itemHitSE(u32 i_soundID, u32 i_mapinfo, Z2SoundObjBase* i_other) { + mZ2Link.startHitItemSE(i_soundID, i_mapinfo, i_other, -1.0f); } BOOL checkStartFall() { return getStartMode() == 3; } u8 getBStatus() { return dComIfGp_getAStatus(); } - void setRStatus(u8 param_0, u8 param_1) { dComIfGp_setRStatus(param_0, param_1); } + void setRStatus(u8 i_status, u8 i_flag) { dComIfGp_setRStatus(i_status, i_flag); } BOOL checkWindSpeedMoveXZ() const { return mWindSpeed.abs2XZ() > 1.0f; } @@ -7570,6 +7718,8 @@ public: BOOL boomerangLockTrigger() { return itemActionTrigger(); } + bool checkBoomerangChargeNow() { return FALSE; } + BOOL checkBoomerangLockTrigger() { return boomerangLockTrigger(); } BOOL checkDemoSpinnerKeep() const { @@ -7580,8 +7730,8 @@ public: return mDemo.getDemoMode() == 14 && mDemo.getParam0() == 2; } - bool checkSpinnerRideOwn(const fopAc_ac_c* param_0) { - return checkSpinnerRide() && mRideAcKeep.getActorConst() == param_0; + bool checkSpinnerRideOwn(const fopAc_ac_c* i_actor) { + return checkSpinnerRide() && mRideAcKeep.getActorConst() == i_actor; } BOOL checkSpinnerReady() const { return mProcID == PROC_SPINNER_READY; } @@ -7601,8 +7751,8 @@ public: static daAlink_BckData const m_mainBckShield[20]; static daAlink_BckData const m_mainBckSword[5]; static daAlink_BckData const m_mainBckFishing[28]; - static daAlink_AnmData const m_anmDataTable[414]; - static daAlink_WlAnmData const m_wlAnmDataTable[147]; + static daAlink_AnmData const m_anmDataTable[ANM_MAX]; + static daAlink_WlAnmData const m_wlAnmDataTable[WANM_MAX]; static daAlink_FaceTexData const m_faceTexDataTable[]; static Vec const m_handLeftOutSidePos; static Vec const m_handRightOutSidePos; @@ -7698,10 +7848,10 @@ public: /* 0x007BC */ mDoExt_bckAnm* m_sWindowBck; /* 0x007C0 */ void* mpWarpTexData; /* 0x007C4 */ daPy_actorKeep_c mWolfLockAcKeep[10]; - /* 0x00814 */ dCcD_Stts field_0x814; - /* 0x00850 */ dCcD_Cyl field_0x850[3]; - /* 0x00C04 */ dCcD_Cyl field_0xC04[3]; - /* 0x00FB8 */ dCcD_Sph field_0xFB8; + /* 0x00814 */ dCcD_Stts mCcStts; + /* 0x00850 */ dCcD_Cyl mTgCyls[3]; + /* 0x00C04 */ dCcD_Cyl mWindTgCyls[3]; + /* 0x00FB8 */ dCcD_Sph mAtSph; /* 0x010F0 */ dCcD_Cyl mAtCyl; /* 0x0122C */ dCcD_Cps mAtCps[3]; /* 0x015F8 */ dCcD_Cps mGuardAtCps; @@ -7740,11 +7890,11 @@ public: /* 0x02118 */ daPy_anmHeap_c mFaceBtpHeap; /* 0x0212C */ daPy_anmHeap_c mFaceBtkHeap; /* 0x02140 */ daPy_anmHeap_c mFaceBckHeap; - /* 0x02154 */ J3DAnmTexPattern* field_0x2154; + /* 0x02154 */ J3DAnmTexPattern* mpFaceBtp; /* 0x02158 */ J3DAnmTextureSRTKey* mpFaceBtk; /* 0x0215C */ daPy_frameCtrl_c* field_0x215c; - /* 0x02160 */ u16* field_0x2160; - /* 0x02164 */ mDoExt_bckAnm field_0x2164; + /* 0x02160 */ const s8* field_0x2160; + /* 0x02164 */ mDoExt_bckAnm mFaceBck; /* 0x02180 */ daAlink_matAnm_c* field_0x2180[2]; /* 0x02188 */ dEyeHL_c mEyeHL1; /* 0x0219C */ dEyeHL_c mEyeHL2; @@ -7781,7 +7931,7 @@ public: /* 0x028F4 */ fpc_ProcID mAtnActorID; /* 0x028F8 */ fpc_ProcID field_0x28f8; /* 0x028FC */ fpc_ProcID field_0x28fc; - /* 0x02900 */ fpc_ProcID field_0x2900; + /* 0x02900 */ fpc_ProcID mRideActorID; /* 0x02904 */ daAlink_footData_c mFootData1[2]; /* 0x02A4C */ daAlink_footData_c mFootData2[2]; /* 0x02B94 */ f32 field_0x2b94; @@ -7809,7 +7959,7 @@ public: /* 0x02F50 */ const Vec* field_0x2f50; /* 0x02F54 */ const Vec* field_0x2f54; /* 0x02F58 */ dPath* field_0x2f58; - /* 0x02F5C */ LIGHT_INFLUENCE field_0x2f5c; + /* 0x02F5C */ LIGHT_INFLUENCE mMagneBootsPlight; /* 0x02F7C */ u8 field_0x2f7c[16]; /* 0x02F8C */ u8 field_0x2f8c; /* 0x02F8D */ u8 mItemTrigger; @@ -7817,8 +7967,8 @@ public: /* 0x02F8F */ u8 field_0x2f8f; /* 0x02F90 */ u8 field_0x2f90; /* 0x02F91 */ u8 field_0x2f91; - /* 0x02F92 */ u8 field_0x2f92; - /* 0x02F93 */ u8 field_0x2f93; + /* 0x02F92 */ u8 mLeftHandIndex; + /* 0x02F93 */ u8 mRightHandIndex; /* 0x02F94 */ u8 field_0x2f94; /* 0x02F95 */ u8 field_0x2f95; /* 0x02F96 */ u8 field_0x2f96; @@ -7845,7 +7995,7 @@ public: /* 0x02FAB */ u8 field_0x2fab; /* 0x02FAC */ u8 mExitDirection; /* 0x02FAD */ u8 mPeepExitID; - /* 0x02FAE */ u8 field_0x2fae; + /* 0x02FAE */ u8 mUseButtonFlags; /* 0x02FAF */ u8 field_0x2faf; /* 0x02FB0 */ u8 field_0x2fb0; /* 0x02FB1 */ u8 mWolfLockNum; @@ -7858,9 +8008,9 @@ public: /* 0x02FB8 */ u8 field_0x2fb8; /* 0x02FB9 */ u8 field_0x2fb9; /* 0x02FBA */ u8 mHotspringRecoverTimer; - /* 0x02FBB */ u8 field_0x2fbb; + /* 0x02FBB */ u8 mGndPolyAtt0; /* 0x02FBC */ u8 field_0x2fbc; - /* 0x02FBD */ u8 field_0x2fbd; + /* 0x02FBD */ u8 mGndPolyAtt1; /* 0x02FBE */ u8 field_0x2fbe; /* 0x02FBF */ u8 mClothesChangeWaitTimer; /* 0x02FC0 */ u8 field_0x2fc0; @@ -7892,9 +8042,9 @@ public: /* 0x02FDC */ u16 mEquipItem; /* 0x02FDE */ u16 field_0x2fde; /* 0x02FE0 */ s16 mStickAngle; - /* 0x02FE2 */ s16 field_0x2fe2; // related to current stick angle + /* 0x02FE2 */ s16 mMoveAngle; // related to current stick angle /* 0x02FE4 */ s16 field_0x2fe4; - /* 0x02FE6 */ s16 field_0x2fe6; + /* 0x02FE6 */ s16 mPrevAngleY; /* 0x02FE8 */ u16 mProcID; /* 0x02FEA */ u16 field_0x2fea; /* 0x02FEC */ s16 field_0x2fec; @@ -7938,6 +8088,7 @@ public: } /* 0x03010 */ mProcVar4; union { s16 field_0x3012; + s16 mCutTurnChargeCheckTimer; } /* 0x03012 */ mProcVar5; /* 0x03014 */ s16 mFallVoiceInit; /* 0x03016 */ u8 field_0x3016[2]; @@ -7996,12 +8147,12 @@ public: /* 0x030B2 */ s16 field_0x30b2; /* 0x030B4 */ u16 field_0x30b4; /* 0x030B6 */ u16 field_0x30b6; - /* 0x030B8 */ u16 field_0x30b8; - /* 0x030BA */ u16 field_0x30ba; + /* 0x030B8 */ u16 mLeftHandJntNo; + /* 0x030BA */ u16 mRightHandJntNo; /* 0x030BC */ u16 field_0x30bc; /* 0x030BE */ u16 field_0x30be; - /* 0x030C0 */ u16 field_0x30c0; - /* 0x030C2 */ u16 field_0x30c2; + /* 0x030C0 */ u16 mLeftItemJntNo; + /* 0x030C2 */ u16 mRightItemJntNo; /* 0x030C4 */ u16 field_0x30c4; /* 0x030C6 */ u16 field_0x30c6; /* 0x030C8 */ s16 field_0x30c8; @@ -8014,7 +8165,7 @@ public: /* 0x030D6 */ s16 field_0x30d6; /* 0x030D8 */ u8 field_0x30d8[0x14]; /* 0x030EC */ s16 field_0x30ec; - /* 0x030EE */ s16 field_0x30ee; + /* 0x030EE */ s16 mRollJumpAngle; /* 0x030F0 */ u16 field_0x30f0; /* 0x030F2 */ u8 field_0x30f2[2]; /* 0x030F4 */ s16 mSwordFlourishTimer; @@ -8041,9 +8192,7 @@ public: /* 0x0311E */ s16 field_0x311e; /* 0x03120 */ u16 mMidnaMsgNum; /* 0x03122 */ s16 field_0x3122; - /* 0x03124 */ s16 field_0x3124; - /* 0x03126 */ s16 field_0x3126; - /* 0x03128 */ s16 field_0x3128; + /* 0x03124 */ csXyz field_0x3124; /* 0x0312A */ csXyz field_0x312a[2]; /* 0x03136 */ csXyz field_0x3136[2]; /* 0x03142 */ csXyz field_0x3142[4]; @@ -8052,12 +8201,12 @@ public: /* 0x03166 */ csXyz field_0x3166; /* 0x0316C */ csXyz field_0x316c; /* 0x03172 */ u8 field_0x3172[2]; - /* 0x03174 */ int field_0x3174; + /* 0x03174 */ int mGroundCode; /* 0x03178 */ int field_0x3178; /* 0x0317C */ int field_0x317c; /* 0x03180 */ int field_0x3180; /* 0x03184 */ int mAlinkStaffId; - /* 0x03188 */ int field_0x3188; + /* 0x03188 */ int mStartEventID; /* 0x0318C */ int field_0x318c; /* 0x03190 */ int field_0x3190; /* 0x03194 */ int field_0x3194; @@ -8110,8 +8259,8 @@ public: /* 0x0339C */ f32 mSpeedModifier; /* 0x033A0 */ f32 field_0x33a0; /* 0x033A4 */ f32 field_0x33a4; - /* 0x033A8 */ f32 field_0x33a8; - /* 0x033AC */ f32 field_0x33ac; + /* 0x033A8 */ f32 mStickValue; + /* 0x033AC */ f32 mMoveValue; /* 0x033B0 */ f32 field_0x33b0; /* 0x033B4 */ f32 mWaterY; /* 0x033B8 */ f32 field_0x33b8; @@ -8136,8 +8285,8 @@ public: /* 0x03404 */ f32 field_0x3404; /* 0x03408 */ f32 field_0x3408; /* 0x0340C */ f32 field_0x340c; - /* 0x03410 */ f32 field_0x3410; - /* 0x03414 */ f32 field_0x3414; + /* 0x03410 */ f32 mRollJumpSpeedH; + /* 0x03414 */ f32 mRollJumpSpeedV; /* 0x03418 */ f32 field_0x3418; /* 0x0341C */ f32 field_0x341c; /* 0x03420 */ f32 field_0x3420; @@ -8239,13 +8388,13 @@ public: /* 0x03850 */ daAlink_procFunc mpProcFunc; }; // Size: 0x385C -static bool daAlink_checkLightBallA(fopAc_ac_c* p_actor); -static bool daAlink_checkLightBallB(fopAc_ac_c* p_actor); -static fopAc_ac_c* daAlink_searchCoach(fopAc_ac_c* param_0, void* param_1); +static bool daAlink_checkLightBallA(fopAc_ac_c* i_actor); +static bool daAlink_checkLightBallB(fopAc_ac_c* i_actor); +static fopAc_ac_c* daAlink_searchCoach(fopAc_ac_c* i_actor, void* param_1); struct daAlink_cutParamTbl { /* 0x0 */ daAlink_c::daAlink_ANM m_anmID; - /* 0x4 */ int field_0x4; + /* 0x4 */ daAlink_c::daAlink_ANM m_recoilAnmID; /* 0x8 */ u8 m_cutType; /* 0x9 */ u8 m_atSe; /* 0xA */ u8 field_0xa; @@ -8265,10 +8414,10 @@ struct daAlink_cutHorseParamTbl { inline BOOL dComIfGs_isTransformLV(int i_no); inline BOOL dComIfGs_isEventBit(const u16); -static fopAc_ac_c* daAlink_searchPortal(fopAc_ac_c* param_0, void* param_1); -static fopAc_ac_c* daAlink_searchCanoe(fopAc_ac_c* param_0, void* param_1); -static void* daAlink_searchBoar(fopAc_ac_c* param_0, void* param_1); -static fopAc_ac_c* daAlink_searchLightBall(fopAc_ac_c* p_actor, void* param_1); +static fopAc_ac_c* daAlink_searchPortal(fopAc_ac_c* i_actor, void* i_data); +static fopAc_ac_c* daAlink_searchCanoe(fopAc_ac_c* i_actor, void* i_data); +static void* daAlink_searchBoar(fopAc_ac_c* i_actor, void* i_data); +static fopAc_ac_c* daAlink_searchLightBall(fopAc_ac_c* i_actor, void* i_data); inline daAlink_c* daAlink_getAlinkActorClass() { return (daAlink_c*)dComIfGp_getLinkPlayer(); diff --git a/include/d/actor/d_a_b_dr.h b/include/d/actor/d_a_b_dr.h index 506af4f576..e15a6e7ca5 100644 --- a/include/d/actor/d_a_b_dr.h +++ b/include/d/actor/d_a_b_dr.h @@ -79,8 +79,8 @@ public: MtxP getMtx() { return mpModelMorf->getModel()->getAnmMtx(15); } - void onTarget() { mTarget = true; } - bool isBack() { return arg0; } + u8 onTarget() { return mTarget = true; } + u8 isBack() { return arg0; } private: /* 0x05AC */ request_of_phase_process_class mPhase; diff --git a/include/d/actor/d_a_boomerang.h b/include/d/actor/d_a_boomerang.h index d4a1335fd7..6dcff6ef9f 100644 --- a/include/d/actor/d_a_boomerang.h +++ b/include/d/actor/d_a_boomerang.h @@ -116,7 +116,7 @@ public: void offStateFlg0(daBoomerang_FLG0 flag) { m_stateFlg0 &= ~flag; } u32 getReturnFlg() const { return checkStateFlg0(FLG0_1); } void onWindCatch() { onStateFlg0(WIND_CATCH); } - bool checkForceDelete() const { return m_forceDelete; } + u8 checkForceDelete() const { return m_forceDelete; } void onForceDelete() { m_forceDelete = true; } bool checkCharge() const { return true; } void setThrow() { fopAcM_SetParam(this, 1); } diff --git a/include/d/actor/d_a_canoe.h b/include/d/actor/d_a_canoe.h index 4051a039ab..bf34a5eee7 100644 --- a/include/d/actor/d_a_canoe.h +++ b/include/d/actor/d_a_canoe.h @@ -34,7 +34,7 @@ public: J3DModel* getModel() { return mpModel; } MtxP getModelMtx() { return mpModel->getBaseTRMtx(); } bool checkTandem() { return fopAcM_GetParam(this) == 2; } - bool checkJumpRideFlg() { return mJumpRideFlg; } + u8 checkJumpRideFlg() const { return mJumpRideFlg; } void incShapeOffsetY(f32 offset) { mShapeOffsetY += offset; } void incShapeAngleZ(s16 incZ) { shape_angle.z += incZ; } void onRodID(fpc_ProcID i_rodID) { mRodID = i_rodID; } diff --git a/include/d/actor/d_a_cow.h b/include/d/actor/d_a_cow.h index e7d0f4547c..403dc2aef6 100644 --- a/include/d/actor/d_a_cow.h +++ b/include/d/actor/d_a_cow.h @@ -194,16 +194,16 @@ public: daCow_c* getCowP() { return mCowP; } // cLib_onBit(mFlags, (mask)) - void setCrazyBeforeCatch() { mFlags |= Flag_CrazyBeforeCatch; } - void setCrazyCatch() { mFlags |= Flag_CrazyCatch; } - void setCrazyDash() { mFlags |= Flag_CrazyDash; } - void setCrazyThrowLeft() { mFlags |= Flag_CrazyThrowLeft; } - void setCrazyThrowRight() { mFlags |= Flag_CrazyThrowRight; } - void setCrazyReady() { mFlags |= Flag_CrazyReady; } - void setCrazyGo() { mFlags |= Flag_CrazyGo; } - void setNaderu() { mFlags |= Flag_Naderu; } - void setNaderuFinish() { mFlags |= Flag_NaderuFinish; } - void setCrazyReadyDrawOn() { mFlags |= Flag_CrazyReadyDrawOn; } + void setCrazyBeforeCatch() { mFlags |= (u16)Flag_CrazyBeforeCatch; } + void setCrazyCatch() { mFlags |= (u16)Flag_CrazyCatch; } + void setCrazyDash() { mFlags |= (u16)Flag_CrazyDash; } + void setCrazyThrowLeft() { mFlags |= (u16)Flag_CrazyThrowLeft; } + void setCrazyThrowRight() { mFlags |= (u16)Flag_CrazyThrowRight; } + void setCrazyReady() { mFlags |= (u16)Flag_CrazyReady; } + void setCrazyGo() { mFlags |= (u16)Flag_CrazyGo; } + void setNaderu() { mFlags |= (u16)Flag_Naderu; } + void setNaderuFinish() { mFlags |= (u16)Flag_NaderuFinish; } + void setCrazyReadyDrawOn() { mFlags |= (u16)Flag_CrazyReadyDrawOn; } u8 getCowIn() { return mCowIn; } u8 getNoNearCheckTimer() { return mNoNearCheckTimer; } diff --git a/include/d/actor/d_a_npc_bou.h b/include/d/actor/d_a_npc_bou.h index 391c038457..9a1b460ae4 100644 --- a/include/d/actor/d_a_npc_bou.h +++ b/include/d/actor/d_a_npc_bou.h @@ -152,8 +152,7 @@ public: BOOL speakTo() { if (mType == 4) { if (current.pos.absXZ(daPy_getPlayerActorClass()->current.pos) < 1100.0f && strlen(mpEvtData[5].eventName) != 0) { - u32 len = strlen(mpArcNames[mpEvtData[5].num]); - if (len != 0) { + if (strlen(mpArcNames[mpEvtData[5].num]) != 0) { eventInfo.setArchiveName(mpArcNames[mpEvtData[5].num]); dComIfGp_getEventManager().setObjectArchive(eventInfo.getArchiveName()); } diff --git a/include/d/actor/d_a_npc_kn.h b/include/d/actor/d_a_npc_kn.h index 38061ff17c..fe30a4769f 100644 --- a/include/d/actor/d_a_npc_kn.h +++ b/include/d/actor/d_a_npc_kn.h @@ -217,6 +217,8 @@ public: s8 getActionMode() { return mActionMode; } void setTalkFlag(u8 i_flag) { field_0x15bd = i_flag; } + + bool checkBattleMode() { return true; } int create(); int CreateHeap(); diff --git a/include/d/actor/d_a_npc_kolin.h b/include/d/actor/d_a_npc_kolin.h index a314088bd0..a96d77648a 100644 --- a/include/d/actor/d_a_npc_kolin.h +++ b/include/d/actor/d_a_npc_kolin.h @@ -146,8 +146,7 @@ public: } if (strlen(mpEvtData[var_r29].eventName) != 0) { - u32 len = strlen(mpArcNames[mpEvtData[var_r29].num]); - if (len != 0) { + if (strlen(mpArcNames[mpEvtData[var_r29].num]) != 0) { eventInfo.setArchiveName(mpArcNames[mpEvtData[var_r29].num]); dComIfGp_getEventManager().setObjectArchive(eventInfo.getArchiveName()); } diff --git a/include/d/actor/d_a_obj_gra2.h b/include/d/actor/d_a_obj_gra2.h index 2cbe9e700c..cac3b992e2 100644 --- a/include/d/actor/d_a_obj_gra2.h +++ b/include/d/actor/d_a_obj_gra2.h @@ -228,11 +228,11 @@ public: cXyz getAttentionPos(fopAc_ac_c*); int standWaitJump(void*); - bool checkNpcObjGra() { return mMode == 1; } - void setCrazyDash() { field_0xa48 |= 4; } - void setCrazyCatch() { field_0xa48 |= 2; } - void setCrazyThrowLeft() { field_0xa48 |= 8; } - void setCrazyThrowRight() { field_0xa48 |= 0x10; } + u8 checkNpcObjGra() { return mMode == 1; } + void setCrazyDash() { field_0xa48 |= (u16)4; } + void setCrazyCatch() { field_0xa48 |= (u16)2; } + void setCrazyThrowLeft() { field_0xa48 |= (u16)8; } + void setCrazyThrowRight() { field_0xa48 |= (u16)0x10; } static MotionFunc mBaseMotionList[22]; static MotionFunc mFaceMotionList[14]; diff --git a/include/d/actor/d_a_obj_sekizoa.h b/include/d/actor/d_a_obj_sekizoa.h index 3e3307c468..8f01206e88 100644 --- a/include/d/actor/d_a_obj_sekizoa.h +++ b/include/d/actor/d_a_obj_sekizoa.h @@ -229,45 +229,34 @@ public: } u8 getType() { - int prm = fopAcM_GetParam(this) >> 0x1C; + int prm = (fopAcM_GetParam(this) & 0xF0000000) >> 28; - u8 type; switch (argument) { case 0: switch (prm) { case 1: - type = 2; - break; + return 2; case 2: - type = 4; - break; + return 4; case 3: - type = 6; - break; + return 6; default: - type = 0; - break; + return 0; } break; case 1: switch (prm) { case 1: - type = 3; - break; + return 3; case 2: - type = 5; - break; + return 5; default: - type = 1; - break; + return 1; } break; default: - type = 0; - break; + return 0; } - - return type; } u8 getBitSW() { return fopAcM_GetParam(this) & 0xff; } @@ -304,11 +293,11 @@ public: /* 0x1124 */ daNpcT_Path_c mPath; /* 0x114C */ cXyz mCXyzJump; /* 0x1158 */ int mLatencyTime; - /* 0x115C */ float mJumpHeight; - /* 0x1160 */ float mJumpSpeed; - /* 0x1164 */ float mColsetBlend; - /* 0x1168 */ float mGoalStatueTurnSpeed; - /* 0x116C */ float mGoalStatueAngle; + /* 0x115C */ f32 mJumpHeight; + /* 0x1160 */ f32 mJumpSpeed; + /* 0x1164 */ f32 mColsetBlend; + /* 0x1168 */ f32 mGoalStatueTurnSpeed; + /* 0x116C */ f32 mGoalStatueAngle; /* 0x1170 */ s16 mPlayerDirection; /* 0x1172 */ u8 mReset; /* 0x1173 */ u8 mSetWolfHowling; diff --git a/include/d/actor/d_a_obj_swhang.h b/include/d/actor/d_a_obj_swhang.h index f7efea85cd..097da890b3 100644 --- a/include/d/actor/d_a_obj_swhang.h +++ b/include/d/actor/d_a_obj_swhang.h @@ -65,7 +65,7 @@ public: cXyz getHangPos() { return mHangPos; } void setHangPlayer() { mHangPlayer = 1; } - u8 getType() { return mType; } + int getType() { return mType; } u8 getType_private() { return fopAcM_GetParamBit(this, 28, 4); } u8 checkType() { return fopAcM_GetParamBit(this, 25, 1); } u8 getSwNo() { return fopAcM_GetParamBit(this, 0, 8); } @@ -76,6 +76,7 @@ public: void clrFlag() { mFlags = 0; } void onFlag(u16 flag) { mFlags |= flag; } u16 checkFlag(u16 flag) { return mFlags & flag; } + s16 getAngleY() { return shape_angle.y; } private: /* 0x5B0 */ request_of_phase_process_class mPhase; diff --git a/include/d/actor/d_a_obj_wchain.h b/include/d/actor/d_a_obj_wchain.h index 94df105e88..98300869ab 100644 --- a/include/d/actor/d_a_obj_wchain.h +++ b/include/d/actor/d_a_obj_wchain.h @@ -37,21 +37,25 @@ public: cXyz& getJumpAimPos() { return eyePos; } cXyz& getTopPos() { return mTopPos; } cXyz& getRoofPos() { return mRoofPos; } - f32 getPullLength() { return mPullLength; } + f32 getPullLength() const { return mPullLength; } void setPullLength(f32 i_length) { mPullLength = i_length; } - f32 getInitOutLength() { return mInitOutLength; } + f32 getInitOutLength() const { return mInitOutLength; } f32 getRealRoofY() { return mRealRoofY; } f32 getMoveDisRate() { return mPullLength * 0.01f; } - f32 getLastOffset() { return 6.0f; } - f32 getDownOffset() { return 100.0f; } - f32 getSwitchOffset() { return 94.0f; } + static f32 getLastOffset() { return 6.0f; } + static f32 getDownOffset() { return 100.0f; } + static f32 getSwitchOffset() { return 94.0f; } u8 getSwitchNum() { return mSw; } void onRide() { mRide = true; } void offRide() { mRide = false; } bool checkRideFlg() { return mRide; } void onEndFlg() { mEnd = true; } bool getEndFlg() { return mEnd; } - void onNowSwitchFlg() { mDown = mNowSwitch = true; } + + void onNowSwitchFlg() { + mNowSwitch = true; + mDown = true; + } private: /* 0x568 */ request_of_phase_process_class mPhaseReq; diff --git a/include/d/actor/d_a_obj_wind_stone.h b/include/d/actor/d_a_obj_wind_stone.h index e1f3dac603..f5e52dfc94 100644 --- a/include/d/actor/d_a_obj_wind_stone.h +++ b/include/d/actor/d_a_obj_wind_stone.h @@ -31,7 +31,7 @@ public: u8 getGoldWolfIdx(); s8 getTuneId() { return fopAcM_GetParamBit(this, 4, 4); } - int getNextSceneId() { return fopAcM_GetParamBit(this, 0, 4); } + s8 getNextSceneId() { return fopAcM_GetParamBit(this, 0, 4); } u32 getSwBit1() { return home.angle.x & 0xff; } u32 getSwBit2() { return fopAcM_GetParamBit(this, 8, 8); } u32 getDelEveFlgId() { return fopAcM_GetParamBit(this, 0x10, 0x10); } diff --git a/include/d/actor/d_a_obj_yobikusa.h b/include/d/actor/d_a_obj_yobikusa.h index 5cea7a9029..e74b649006 100644 --- a/include/d/actor/d_a_obj_yobikusa.h +++ b/include/d/actor/d_a_obj_yobikusa.h @@ -82,7 +82,10 @@ public: const attributes* attr() const { return &M_attr; } int getType() { return argument & 0x7F; } u8 getPathID() { return fopAcM_GetParam(this); } - bool isPlayerCorrect() { return (s8)(u8)(fopAcM_GetParam(this) >> 8) > 0; } + bool isPlayerCorrect() { + s8 var_r31 = (fopAcM_GetParam(this) >> 8) & 0xFF; + return var_r31 > 0; + } private: /* 0x568 */ J3DModel* mpActiveModel; diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index 7dc2cacc4c..9131286505 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -14,28 +14,27 @@ public: virtual ~daPy_sightPacket_c() {} void setSight(); - void setSightImage(ResTIMG*); + void setSightImage(ResTIMG* i_img); - bool getDrawFlg() { return mDrawFlag; } + u8 getDrawFlg() { return mDrawFlag; } void onDrawFlg() { mDrawFlag = true; } void offDrawFlg() { mDrawFlag = false; } void setPos(const cXyz* i_pos) { mPos = *i_pos; } cXyz* getPosP() { return &mPos; } - /* 0x04 */ bool mDrawFlag; - /* 0x05 */ u8 field_0x5[3]; + /* 0x04 */ u8 mDrawFlag; /* 0x08 */ cXyz mPos; - /* 0x14 */ Mtx field_0x14; + /* 0x14 */ Mtx mProjMtx; /* 0x44 */ ResTIMG* mpImg; /* 0x48 */ u8* mpData; }; class daPy_boomerangMove_c { public: - void initOffset(cXyz const*); - void initOffset(cXyz const* xyz, dCcD_GObjInf const*) { initOffset(xyz); } - int posMove(cXyz*, s16*, fopAc_ac_c*, s16); - void bgCheckAfterOffset(cXyz const*); + void initOffset(const cXyz* i_pos); + void initOffset(const cXyz* i_pos, const dCcD_GObjInf*) { initOffset(i_pos); } + int posMove(cXyz* o_pos, s16* o_rotY, fopAc_ac_c* i_objActor, s16 i_rotStep); + void bgCheckAfterOffset(const cXyz* i_pos); static void initDropAngleY() { m_dropAngleY = 0x4000; } static void offEventKeepFlg() { m_eventKeepFlg = 0; } @@ -47,8 +46,8 @@ public: private: /* 0x0 */ u8 field_0x0; /* 0x2 */ s16 field_0x2; - /* 0x4 */ f32 field_0x4; - /* 0x8 */ f32 field_0x8; + /* 0x4 */ f32 m_offsetY; + /* 0x8 */ f32 m_offsetXZ; }; // Size: 0xC class daPy_anmHeap_c { @@ -61,24 +60,24 @@ public: HEAP_TYPE_5, }; - daPy_anmHeap_c(u32 param_0 = 0); + daPy_anmHeap_c(u32 i_bufferSize = 0); ~daPy_anmHeap_c(); void initData(); void* mallocBuffer(); - void createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE); - void* loadData(u16); - void* loadDataIdx(u16); - void* loadDataPriIdx(u16); - void* loadDataDemoRID(u16, u16); + void createHeap(daAlinkHEAP_TYPE i_heapType); + void* loadData(u16 i_resId); + void* loadDataIdx(u16 i_resId); + void* loadDataPriIdx(u16 i_resId); + void* loadDataDemoRID(u16 i_resID, u16 i_arcNo); JKRHeap* setAnimeHeap(); u16 getIdx() const { return mIdx; } - void resetIdx() { mIdx = 0xffff; } - void resetPriIdx() { mPriIdx = 0xffff; } - void resetArcNo() { mArcNo = 0xffff; } + void resetIdx() { mIdx = 0xFFFF; } + void resetPriIdx() { mPriIdx = 0xFFFF; } + void resetArcNo() { mArcNo = 0xFFFF; } bool checkNoSetArcNo() const { return mArcNo == 0xFFFF; } - void setBufferSize(u32 size) { mBufferSize = size; } - void setBuffer(u8* buf) { mBuffer = buf; } + void setBufferSize(u32 i_size) { mBufferSize = i_size; } + void setBuffer(u8* i_buffer) { mBuffer = i_buffer; } u32 getBufferSize() { return mBufferSize; } u8* getBuffer() { return mBuffer; } bool checkNoSetIdx() const { return mIdx == 0xFFFF; } @@ -86,11 +85,9 @@ public: u16 getArcNo() const { return mArcNo; } void setIdx(u16 i_idx) { mIdx = i_idx; } -private: /* 0x00 */ u16 mIdx; /* 0x02 */ u16 mPriIdx; /* 0x04 */ u16 mArcNo; - /* 0x06 */ u16 field_0x06; /* 0x08 */ u32 mBufferSize; /* 0x0C */ u8* mBuffer; /* 0x10 */ JKRSolidHeap* mAnimeHeap; @@ -101,11 +98,11 @@ public: daPy_actorKeep_c() { clearData(); } void setActor(); - void setData(fopAc_ac_c*); + void setData(fopAc_ac_c* i_actor); void clearData(); fpc_ProcID getID() const { return mID; } - void setID(fpc_ProcID id) { mID = id; } + void setID(fpc_ProcID i_id) { mID = i_id; } fopAc_ac_c* getActor() const { return mActor; } fopAc_ac_c* getActorConst() const { return mActor; } @@ -120,10 +117,10 @@ public: daPy_frameCtrl_c() {} bool checkAnmEnd(); void updateFrame(); - void setFrameCtrl(u8, short, short, f32, f32); + void setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32 i_rate, f32 i_frame); - u16 getEndFlg() { return mEndFlg; } - u16 getNowSetFlg() { return mNowSetFlg; } + u16 getEndFlg() const { return mEndFlg; } + u16 getNowSetFlg() const { return mNowSetFlg; } void onEndFlg() { mEndFlg = 1; } void onNowSetFlg() { mNowSetFlg = 1; } void offNowSetFlg() { mNowSetFlg = 0; } @@ -300,8 +297,7 @@ class daPy_py_c : public fopAc_ac_c { public: /* 0x0568 */ u8 mCutType; /* 0x0569 */ u8 mComboCutCount; - /* 0x056A */ u8 mSpecialMode; // maybe needs better name - /* 0x056B */ u8 field_0x56b; + /* 0x056A */ u8 mMode; /* 0x056C */ s16 mDamageTimer; /* 0x056E */ u16 mSwordUpTimer; /* 0x0570 */ u32 mNoResetFlg0; @@ -313,8 +309,8 @@ public: /* 0x0588 */ u32 mEndResetFlg0; /* 0x058C */ u32 mEndResetFlg1; /* 0x0590 */ u32 mEndResetFlg2; - /* 0x0594 */ f32 field_0x594; - /* 0x0598 */ f32 field_0x598; + /* 0x0594 */ f32 mMaxSpeed; + /* 0x0598 */ f32 mHeight; /* 0x059C */ csXyz mBodyAngle; /* 0x05A4 */ cXyz mHeadTopPos; /* 0x05B0 */ cXyz mItemPos; @@ -323,23 +319,23 @@ public: /* 0x05D4 */ cXyz mRightHandPos; /* 0x05E0 */ cXyz mLeftFootPos; /* 0x05EC */ cXyz mRightFootPos; - /* 0x05F8 */ cXyz field_0x5f8; + /* 0x05F8 */ cXyz mViewerCurrentPos; /* 0x0604 */ daPy_demo_c mDemo; public: enum daPy_FLG0 { - FLG0_UNK_40000000 = 0x40000000, + FLG0_HEAVY_STATE = 0x40000000, FLG0_EQUIP_HVY_BOOTS = 0x2000000, FLG0_PLAYER_NO_DRAW = 0x8000000, FLG0_UNK_10000000 = 0x10000000, FLG0_UNK_1000000 = 0x1000000, - FLG0_UNDERWATER = 0x800000, + FLG0_WATER_IN_MOVE = 0x800000, FLG0_UNK_400000 = 0x400000, - FLG0_UNK_200000 = 0x200000, + FLG0_GORON_UP_STOP_CANCEL = 0x200000, FLG0_UNK_100000 = 0x100000, - FLG0_UNK_80000 = 0x80000, + FLG0_FAST_SWORD_CUT = 0x80000, FLG0_UNK_40000 = 0x40000, - FLG0_DK_CAUGHT = 0x20000, + FLG0_DK_CAUGHT2 = 0x20000, FLG0_UNK_10000 = 0x10000, FLG0_UNK_8000 = 0x8000, FLG0_UNK_4000 = 0x4000, @@ -349,24 +345,20 @@ public: FLG0_UNK_400 = 0x400, FLG0_SWIM_UP = 0x100, FLG0_UNK_80 = 0x80, - FLG0_UNK_40 = 0x40, + FLG0_CUT_AT_FLG = 0x40, FLG0_UNK_20 = 0x20, FLG0_UNK_10 = 0x10, FLG0_UNK_8 = 0x8, FLG0_MIDNA_RIDE = 4, FLG0_UNK_2 = 2, - - FLG0_HVY_STATE = FLG0_UNK_40000000 | FLG0_EQUIP_HVY_BOOTS | FLG0_DK_CAUGHT, - FLG0_UNK_14000 = 0x14000, - FLG0_UNK_10400 = 0x10400, - FLG0_UNK_18 = FLG0_UNK_10 | FLG0_UNK_8, }; enum daPy_FLG1 { FLG1_UNK_80000000 = 0x80000000, - FLG1_ICE_FREEZE = 0x40000000, + FLG1_FREEZE_DAMAGE = 0x40000000, FLG1_UNK_20000000 = 0x20000000, FLG1_UNK_10000000 = 0x10000000, + FLG1_UNK_8000000 = 0x8000000, FLG1_UNK_4000000 = 0x4000000, FLG1_IS_WOLF = 0x2000000, FLG1_UNK_1000000 = 0x1000000, @@ -378,7 +370,7 @@ public: FLG1_UNK_40000 = 0x40000, FLG1_UNK_20000 = 0x20000, FLG1_UNK_10000 = 0x10000, - FLG1_UNK_8000 = 0x8000, + FLG1_FISHING_ROD_CASTING_END = 0x8000, FLG1_THROW_DAMAGE = 0x4000, FLG1_UNK_2000 = 0x2000, FLG1_UNK_1000 = 0x1000, @@ -393,22 +385,19 @@ public: FLG1_UNK_4 = 4, FLG1_UNK_2 = 2, FLG1_DK_CAUGHT = 1, - - FLG1_UNK_1800 = 0x1800, - FLG1_UNK_10100000 = FLG1_UNK_10000000 | FLG1_UNK_100000, }; enum daPy_FLG2 { FLG2_HORSE_ZELDA = 0x40000000, - FLG2_UNK_20000000 = 0x20000000, - FLG2_UNK_10000000 = 0x10000000, + FLG2_FISHING_CAST_WAIT = 0x20000000, + FLG2_KANDELAAR_LIGHT_OFF = 0x10000000, FLG2_UNK_4080000 = 0x4080000, FLG2_UNK_4000000 = 0x4000000, FLG2_UNK_2080000 = 0x2080000, FLG2_UNK_2000000 = 0x2000000, FLG2_UNK_8000000 = 0x8000000, - FLG2_UNK_1000000 = 0x1000000, - FLG2_BOAR_SINGLE_BATTLE = 0x800000, + FLG2_BOAR_SINGLE_BATTLE_2ND = 0x1000000, + FLG2_BOAR_SINGLE_BATTLE_1ST = 0x800000, FLG2_STATUS_WINDOW_DRAW = 0x400000, FLG2_UNK_280000 = 0x280000, FLG2_UNK_200000 = 0x200000, @@ -417,12 +406,12 @@ public: FLG2_FORCE_GAMEOVER = 0x40000, FLG2_UNK_20000 = 0x20000, FLG2_WOLF_DASH_AUTO_JUMP = 0x10000, - FLG2_SCN_CHG_START = 0x8000, - FLG2_UNK_4000 = 0x4000, + FLG2_SCENE_CHANGE_START = 0x8000, + FLG2_FOG_FADE = 0x4000, FLG2_UNK_2000 = 0x2000, FLG2_PRESSED_DAMAGE = 0x1000, FLG2_UNK_800 = 0x800, - FLG2_PLAYER_SHADOW = 0x400, + FLG2_PLAYER_SHADOW_NO_DRAW = 0x400, FLG2_UNK_200 = 0x200, FLG2_UNK_100 = 0x100, FLG2_UNK_80 = 0x80, @@ -431,11 +420,8 @@ public: FLG2_UNK_10 = 0x10, FLG2_UNK_8 = 8, FLG2_UNK_4 = 4, - FLG2_UNK_2 = 2, + FLG2_COMBO_RESERB = 2, FLG2_UNK_1 = 1, - - FLG2_UNK_58 = FLG2_WOLF_ENEMY_HANG_BITE | FLG2_UNK_10 | FLG2_UNK_8, - FLG2_UNK_10000001 = FLG2_UNK_10000000 | FLG2_UNK_1, }; enum daPy_FLG3 { @@ -460,13 +446,13 @@ public: FLG3_UNK_1000 = 0x1000, FLG3_UNK_800 = 0x800, FLG3_UNK_400 = 0x400, - FLG3_UNK_200 = 0x200, - FLG3_UNK_100 = 0x100, - FLG3_UNK_80 = 0x80, - FLG3_UNK_40 = 0x40, - FL3_TRANING_CUT_BACK = 0x20, - FLG3_UNK_10 = 0x10, - FLG3_UNK_8 = 8, + FLG3_TRANING_CUT_LARGE_JUMP = 0x200, + FLG3_TRANING_CUT_LARGE_TURN = 0x100, + FLG3_TRANING_CUT_FAST = 0x80, + FLG3_TRANING_CUT_HEAD = 0x40, + FLG3_TRANING_CUT_BACK = 0x20, + FLG3_TRANING_CUT_DOWN = 0x10, + FLG3_TRANING_SHIELD_ATTACK = 8, FLG3_UNK_4 = 4, FLG3_UNK_1 = 1, }; @@ -477,21 +463,21 @@ public: ERFLG0_UNK_20000000 = 0x20000000, ERFLG0_WOLF_FCHAIN_PULL = 0x10000000, ERFLG0_UNK_8000000 = 0x8000000, - ERFLG0_UNK_4000000 = 0x4000000, + ERFLG0_FISHING_RELEASE = 0x4000000, ERFLG0_BOSS_ROOM_WAIT = 0x2000000, ERFLG0_ENEMY_DEAD = 0x1000000, ERFLG0_UNK_800000 = 0x800000, ERFLG0_BEE_FOLLOW = 0x400000, - ERFLG0_UNK_200000 = 0x200000, + ERFLG0_LEAF_SE = 0x200000, ERFLG0_UNK_100000 = 0x100000, ERFLG0_SINGLE_BOAR_AVOID = 0x80000, ERFLG0_FISHING_ROD_GET_FISH = 0x40000, - ERFLG0_UNK_20000 = 0x20000, - ERFLG0_UNK_10000 = 0x10000, + ERFLG0_FISHING_ROD_REEL_END = 0x20000, + ERFLG0_FISHING_HIT = 0x10000, ERFLG0_UNK_4000 = 0x4000, ERFLG0_UNK_2000 = 0x2000, ERFLG0_UNK_1000 = 0x1000, - ERFLG0_UNK_400 = 0x400, + ERFLG0_NECK_SEARCH_WIDE = 0x400, ERFLG0_FORCE_AUTO_JUMP = 0x200, ERFLG0_UNK_100 = 0x100, ERFLG0_UNK_80 = 0x80, @@ -500,31 +486,31 @@ public: ERFLG0_NOT_HANG = 0x10, ERFLG0_UNK_8 = 8, ERFLG0_UNK_4 = 4, - ERFLG0_UNK_2 = 2, + ERFLG0_FORCE_WOLF_CHANGE = 2, ERFLG0_UNK_1 = 1, }; enum daPy_ERFLG1 { - ERFLG1_GANON_FINISH = 0x80000000, - ERFLG1_UNK_40000000 = 0x40000000, - ERFLG1_UNK_20000000 = 0x20000000, - ERFLG1_UNK_10000000 = 0x10000000, + ERFLG1_SHIELD_BACKBONE = 0x80000000, + ERFLG1_SWORD_TRIGGER_NON = 0x40000000, + ERFLG1_CANOE_ITEM_CANCEL = 0x20000000, + ERFLG1_DO_PUT_EMPHASYS = 0x10000000, ERFLG1_LARGE_DAMAGE_UP_STOP = 0x8000000, - ERFLG1_UNK_4000000 = 0x4000000, - ERFLG1_UNK_2000000 = 0x2000000, - ERFLG1_UNK_1000000 = 0x1000000, + ERFLG1_DO_EXCHANGE_PUT_IN = 0x4000000, + ERFLG1_CHAIN_PULL_END = 0x2000000, + ERFLG1_CHAIN_FORCE_PULL = 0x1000000, ERFLG1_UNK_400000 = 0x400000, ERFLG1_UNK_200000 = 0x200000, ERFLG1_UNK_100000 = 0x100000, ERFLG1_UNK_80000 = 0x80000, ERFLG1_UNK_40000 = 0x40000, - ERFLG1_UNK_20000 = 0x20000, + ERFLG1_WATER_DROP = 0x20000, ERFLG1_UNK_10000 = 0x10000, ERFLG1_UNK_8000 = 0x8000, ERFLG1_UNK_4000 = 0x4000, ERFLG1_UNK_2000 = 0x2000, ERFLG1_UNK_1000 = 0x1000, - ERFLG1_UNK_800 = 0x800, + ERFLG1_WATERFALL_FRONT_HIT = 0x800, ERFLG1_UNK_400 = 0x400, ERFLG1_WOLF_EYE_KEEP = 0x200, ERFLG1_UNK_100 = 0x100, @@ -535,7 +521,7 @@ public: ERFLG1_UNK_8 = 8, ERFLG1_UNK_4 = 4, ERFLG1_UNK_2 = 2, - ERFLG1_UNK_1 = 1, + ERFLG1_NS_SCREAM = 1, }; enum daPy_ERFLG2 { @@ -543,10 +529,10 @@ public: ERFLG2_PORTAL_WARP_MIDNA_ATN_KEEP = 0x80, ERFLG2_UNK_40 = 0x40, ERFLG2_UNK_20 = 0x20, - ERFLG2_UNK_10 = 0x10, - ERFLG2_UNK_8 = 8, - ERFLG2_UNK_2 = 2, - ERFLG2_UNK_1 = 1, + ERFLG2_LIGHT_SWORD_GET_EFFECT = 0x10, + ERFLG2_FORCE_GRAB_REBOUND = 8, + ERFLG2_FORCE_HORSE_GETOFF = 2, + ERFLG2_FISHING_KEEP = 1, }; enum daPy_RFLG0 { @@ -556,20 +542,20 @@ public: RFLG0_UNK_10000000 = 0x10000000, RFLG0_UNK_8000000 = 0x8000000, RFLG0_UNK_4000000 = 0x4000000, - RFLG0_UNK_2000000 = 0x2000000, + RFLG0_ITEM_SIGHT_BG_HIT = 0x2000000, RFLG0_GRAB_PUT_START = 0x400000, RFLG0_WOLF_GROWL = 0x200000, RFLG0_UNK_80000 = 0x80000, - RFLG0_UNK_40000 = 0x40000, - RFLG0_UNK_20000 = 0x20000, - RFLG0_UNK_10000 = 0x10000, - RFLG0_UNK_8000 = 0x8000, + RFLG0_CLIMB_END_HANG = 0x40000, + RFLG0_WOLF_TAG_LOCK_JUMP_READY = 0x20000, + RFLG0_ATTENTION_LOCK = 0x10000, + RFLG0_GRAB_UP_START = 0x8000, RFLG0_UNK_4000 = 0x4000, RFLG0_FRONT_ROLL_CRASH = 0x2000, RFLG0_ENEMY_ATTN_LOCK = 0x1000, RFLG0_UNK_400 = 0x400, RFLG0_COW_GAME_LEASH = 0x200, - RFLG0_UNK_100 = 0x100, + RFLG0_AUTO_JUMP_START = 0x100, RFLG0_UNK_80 = 0x80, RFLG0_UNK_40 = 0x40, RFLG0_GRAB_UP_END = 0x20, @@ -577,15 +563,15 @@ public: RFLG0_UNK_8 = 0x8, RFLG0_GRAB_THROW = 0x4, RFLG0_UNK_2 = 0x2, - RFLG0_UNK_1 = 0x1, + RFLG0_STICK_ARROW_RESET = 0x1, }; enum daPy_RFLG1 { RFLG1_DAMAGE_IMPACT = 0x400, - RFLG1_UNK_200 = 0x200, - RFLG1_UNK_100 = 0x100, - RFLG1_UNK_80 = 0x80, - RFLG1_UNK_40 = 0x40, + RFLG0_FISHINGROD_USE_ACCEPT = 0x200, + RFLG1_INSECT_RELEASE = 0x100, + RFLG0_FISHINGROD_USE_START = 0x80, + RFLG1_BOARD_NO_FOOT_ANGLE = 0x40, RFLG1_UNK_30 = 0x30, RFLG1_UNK_20 = 0x20, RFLG1_UNK_10 = 0x10, @@ -593,11 +579,9 @@ public: RFLG1_UNK_4 = 0x4, RFLG1_UNK_2 = 0x2, RFLG1_WOLF_ATTACK_REVERSE = 0x1, - - RFLG1_UNK_C = 0xC, }; - enum { + enum daPy_MODE { /* 0x01 */ SMODE_SUMO_READY = 1, /* 0x25 */ SMODE_SUMO_LOSE = 37, /* 0x27 */ SMODE_WOLF_PUZZLE = 39, @@ -606,7 +590,7 @@ public: /* 0x2C */ SMODE_CARGO_CARRY, }; - enum CutType { + enum daPy_CUT_TYPE { /* 0x00 */ CUT_TYPE_NONE, /* 0x01 */ CUT_TYPE_NM_VERTICAL, /* 0x02 */ CUT_TYPE_NM_STAB, @@ -618,13 +602,13 @@ public: /* 0x08 */ CUT_TYPE_TURN_RIGHT, /* 0x09 */ CUT_TYPE_UNK_9, /* 0x0A */ CUT_TYPE_JUMP, - /* 0x0B */ CUT_TYPE_DASH_UNK_B, - /* 0x0C */ CUT_TYPE_DASH_UNK_C, - /* 0x0D */ CUT_TYPE_DASH_UNK_D, + /* 0x0B */ CUT_TYPE_DASH_LEFT_BOARD, + /* 0x0C */ CUT_TYPE_DASH_RIGHT_BOARD, + /* 0x0D */ CUT_TYPE_DASH_CHARGE_BOARD, /* 0x0E */ CUT_TYPE_UNK_E, /* 0x0F */ CUT_TYPE_UNK_F, - /* 0x10 */ CUT_TYPE_AIR, - /* 0x11 */ CUT_TYPE_DASH_UNK_11, + /* 0x10 */ CUT_TYPE_DASH_LEFT_SIDESTEP, + /* 0x11 */ CUT_TYPE_DASH_RIGHT_SIDESTEP, /* 0x12 */ CUT_TYPE_LARGE_JUMP_INIT, /* 0x13 */ CUT_TYPE_LARGE_JUMP, /* 0x14 */ CUT_TYPE_LARGE_JUMP_FINISH, @@ -641,15 +625,15 @@ public: /* 0x1F */ CUT_TYPE_MORTAL_DRAW_B, /* 0x20 */ CUT_TYPE_FINISH_STAB, /* 0x21 */ CUT_TYPE_COMBO_STAB, - /* 0x22 */ CUT_TYPE_HORSE_UNK_22, - /* 0x23 */ CUT_TYPE_HORSE_UNK_23, + /* 0x22 */ CUT_TYPE_HORSE_LEFT_A, + /* 0x23 */ CUT_TYPE_HORSE_LEFT_B, /* 0x24 */ CUT_TYPE_UNK_24, - /* 0x25 */ CUT_TYPE_DASH_UNK_25, - /* 0x26 */ CUT_TYPE_DASH_UNK_26, + /* 0x25 */ CUT_TYPE_DASH_LEFT, + /* 0x26 */ CUT_TYPE_DASH_RIGHT, /* 0x27 */ CUT_TYPE_DOWN, /* 0x28 */ CUT_TYPE_UNK_28, /* 0x29 */ CUT_TYPE_GUARD_ATTACK, - /* 0x2A */ CUT_TYPE_HORSE_UNK_2A, + /* 0x2A */ CUT_TYPE_HORSE_RIGHT_A, /* 0x2B */ CUT_TYPE_HORSE_TURN, /* 0x2C */ CUT_TYPE_WOLF_B_LEFT, /* 0x2D */ CUT_TYPE_WOLF_B_RIGHT, @@ -663,32 +647,32 @@ public: /* 0x35 */ CUT_TYPE_WOLF_UNK_35, /* 0x36 */ CUT_TYPE_WOLF_LOCK, /* 0x37 */ CUT_TYPE_WOLF_UNK_37, - /* 0x38 */ CUT_TYPE_DASH_UNK_38, + /* 0x38 */ CUT_TYPE_DASH_CHARGE, /* 0x39 */ CUT_TYPE_WOLF_JUMP, }; - static u32 setParamData(int, int, int, int); - static BOOL checkFishingRodItem(int); - static BOOL checkBombItem(int); - static BOOL checkBottleItem(int); - static BOOL checkDrinkBottleItem(int); - static BOOL checkOilBottleItem(int); - static BOOL checkOpenBottleItem(int); - static BOOL checkBowItem(int); - static BOOL checkHookshotItem(int); - static BOOL checkTradeItem(int); - static BOOL checkDungeonWarpItem(int); + static u32 setParamData(int i_roomNo, int i_mode, int, int); + static BOOL checkFishingRodItem(int i_itemNo); + static BOOL checkBombItem(int i_itemNo); + static BOOL checkBottleItem(int i_itemNo); + static BOOL checkDrinkBottleItem(int i_itemNo); + static BOOL checkOilBottleItem(int i_itemNo); + static BOOL checkOpenBottleItem(int i_itemNo); + static BOOL checkBowItem(int i_itemNo); + static BOOL checkHookshotItem(int i_itemNo); + static BOOL checkTradeItem(int i_itemNo); + static BOOL checkDungeonWarpItem(int i_itemNo); static BOOL checkMasterSwordEquip(); static BOOL checkWoodShieldEquip(); static f32 getAttentionOffsetY(); static int checkNowWolfEyeUp(); - static void forceRestartRoom(int, u32, int); + static void forceRestartRoom(int i_dmgAmount, u32 i_mode, int); static BOOL setFmChainPos(fopAc_ac_c*, cXyz*, int); static void cancelFmChainGrab(); - static void setLookPos(cXyz*); - static void setPlayerSe(u32); - static bool linkGrabSubjectNoDraw(fopAc_ac_c*); - static bool wolfGrabSubjectNoDraw(fopAc_ac_c*); + static void setLookPos(cXyz* i_pos); + static void setPlayerSe(u32 i_soundID); + static bool linkGrabSubjectNoDraw(fopAc_ac_c* i_actor); + static bool wolfGrabSubjectNoDraw(fopAc_ac_c* i_actor); static bool checkRoomRestartStart(); static u32 checkCarryStartLightBallA(); static u32 checkCarryStartLightBallB(); @@ -697,16 +681,18 @@ public: static bool checkBoomerangCharge(); static bool checkBoomerangChargeTime(); static daBoomerang_c* getThrowBoomerangActor(); - static void cancelBoomerangLockActor(fopAc_ac_c*); - static void setPlayerDamage(int, int); - static void setMidnaMotionNum(int); - static void setMidnaFaceNum(int); + static void cancelBoomerangLockActor(fopAc_ac_c* i_actor); + static void setPlayerDamage(int i_dmgAmount, BOOL i_setDmgTimer); + static BOOL checkAcceptDungeonWarp(); + static void setMidnaMotionNum(int i_motionNum); + static void setMidnaFaceNum(int i_faceNum); + static BOOL checkShieldGet() { return dComIfGs_getSelectEquipShield() != fpcNm_ITEM_NONE; } static BOOL checkSwordGet() { return dComIfGs_getSelectEquipSword() != fpcNm_ITEM_NONE; } cXyz getHeadTopPos() const { return mHeadTopPos; } u32 checkThrowDamage() const { return checkNoResetFlg1(FLG1_THROW_DAMAGE); } - bool checkGoronSideMove() const { return mSpecialMode == 0x2B; } + bool checkGoronSideMove() const { return mMode == 0x2B; } cXyz* getRightFootPosP() { return &mRightFootPos; } cXyz* getLeftFootPosP() { return &mLeftFootPos; } cXyz getLeftFootPos() const { return mLeftFootPos; } @@ -717,7 +703,7 @@ public: const cXyz getLeftHandPos() const { return mLeftHandPos; } const cXyz getItemPos() const { return mItemPos; } BOOL getDkCaught() const { return checkNoResetFlg1(FLG1_DK_CAUGHT); } - BOOL getDkCaught2() const { return checkNoResetFlg0(FLG0_DK_CAUGHT); } + BOOL getDkCaught2() const { return checkNoResetFlg0(FLG0_DK_CAUGHT2); } BOOL getStCaught() const { return checkNoResetFlg1(FLG1_UNK_80000000); } /* vt 0X008 */ virtual cXyz* getMidnaAtnPos() const { return NULL; } @@ -790,7 +776,7 @@ public: /* vt 0X114 */ virtual void voiceStart(u32) {} /* vt 0X118 */ virtual void seStartOnlyReverb(u32) {} /* vt 0X11C */ virtual void seStartOnlyReverbLevel(u32) {} - /* vt 0X120 */ virtual void setOutPower(f32, short, int) {} + /* vt 0X120 */ virtual void setOutPower(f32, s16, int) {} /* vt 0X124 */ virtual void setGrabCollisionOffset(f32, f32, cBgS_PolyInfo*) {} /* vt 0X128 */ virtual void onMagneGrab(f32, f32) {} /* vt 0X12C */ virtual void onFrollCrashFlg(u8, int) {} @@ -803,12 +789,12 @@ public: /* vt 0X148 */ virtual BOOL checkSingleBoarBattleSecondBowReady() const { return FALSE; } /* vt 0X14C */ virtual bool checkPointSubWindowMode() const { return FALSE; } /* vt 0X150 */ virtual void setClothesChange(int) {} - /* vt 0X154 */ virtual void setPlayerPosAndAngle(cXyz const*, short, int) {} + /* vt 0X154 */ virtual void setPlayerPosAndAngle(cXyz const*, s16, int) {} /* vt 0X158 */ virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*) {} /* vt 0X15C */ virtual void setPlayerPosAndAngle(f32 (*)[4]) {} - /* vt 0X160 */ virtual bool setThrowDamage(short, f32, f32, int, int, int) { return FALSE; } + /* vt 0X160 */ virtual bool setThrowDamage(s16, f32, f32, int, int, int) { return FALSE; } /* vt 0X164 */ virtual bool checkSetNpcTks(cXyz*, int, int) { return FALSE; } - /* vt 0X168 */ virtual int setRollJump(f32, f32, short) { return FALSE; } + /* vt 0X168 */ virtual int setRollJump(f32, f32, s16) { return FALSE; } /* vt 0X16C */ virtual void playerStartCollisionSE(u32, u32) {} /* vt 0X170 */ virtual void changeTextureAnime(u16, u16, int) {} /* vt 0X174 */ virtual void cancelChangeTextureAnime() {} @@ -835,13 +821,13 @@ public: /* vt 0X1C8 */ virtual cXyz* getKandelaarFlamePos() { return NULL; } /* vt 0X1CC */ virtual bool checkUseKandelaar(int) { return FALSE; } /* vt 0X1D0 */ virtual void setDkCaught(fopAc_ac_c*) {} - /* vt 0X1D4 */ virtual void onPressedDamage(cXyz const&, short) {} + /* vt 0X1D4 */ virtual void onPressedDamage(cXyz const&, s16) {} /* vt 0X1D8 */ virtual bool checkPriActorOwn(fopAc_ac_c const*) const { return FALSE; } /* vt 0X1DC */ virtual bool onWolfEnemyBiteAll(fopAc_ac_c*, daPy_FLG2) { return FALSE; } /* vt 0X1E0 */ virtual bool checkWolfEnemyBiteAllOwn(fopAc_ac_c const*) const { return FALSE; } - /* vt 0X1E4 */ virtual void setWolfEnemyHangBiteAngle(short) {} + /* vt 0X1E4 */ virtual void setWolfEnemyHangBiteAngle(s16) {} /* vt 0X1E8 */ virtual void setKandelaarMtx(f32 (*)[4], int, int) {} - /* vt 0X1EC */ virtual bool getStickAngleFromPlayerShape(short*) const { return FALSE; } + /* vt 0X1EC */ virtual bool getStickAngleFromPlayerShape(s16*) const { return FALSE; } /* vt 0X1F0 */ virtual bool checkSpinnerPathMove() { return FALSE; } /* vt 0X1F4 */ virtual bool checkSpinnerTriggerAttack() { return FALSE; } /* vt 0X1F8 */ virtual void onSpinnerPathForceRemove() {} @@ -858,7 +844,7 @@ public: /* vt 0X224 */ virtual s16 checkSumouWithstand() const { return 0; } /* vt 0X228 */ virtual void cancelGoronThrowEvent() {} /* vt 0X22C */ virtual void setSumouGraspCancelCount(int) {} - /* vt 0X230 */ virtual void setSumouPushBackDirection(short) {} + /* vt 0X230 */ virtual void setSumouPushBackDirection(s16) {} /* vt 0X234 */ virtual void setSumouLoseHeadUp() {} /* vt 0X238 */ virtual s16 getGiantPuzzleAimAngle() const { return shape_angle.y; } /* vt 0X23C */ virtual void setGoronSideMove(fopAc_ac_c*) {} @@ -894,7 +880,7 @@ public: bool getSumouCameraMode() const { bool sumouCameraMode = false; - if (mSpecialMode != 0 && mSpecialMode < 0x26) { + if (mMode != 0 && mMode < 0x26) { sumouCameraMode = true; } return sumouCameraMode; @@ -903,7 +889,7 @@ public: bool getSumouMode() const { return getSumouCameraMode(); } void cancelOriginalDemo() { mDemo.setSystemDemoType(); - mDemo.setDemoMode(1); + mDemo.setDemoMode(daPy_demo_c::DEMO_UNK_1_e); } u32 getDemoMode() const { return mDemo.getDemoMode(); } @@ -911,80 +897,80 @@ public: u8 getCutCount() const { return mComboCutCount; } BOOL checkStatusWindowDraw() const { return checkNoResetFlg2(FLG2_STATUS_WINDOW_DRAW); } - bool checkCargoCarry() const { return mSpecialMode == SMODE_CARGO_CARRY; } - BOOL getHeavyStateAndBoots() { return checkNoResetFlg0(FLG0_HVY_STATE); } + bool checkCargoCarry() const { return mMode == SMODE_CARGO_CARRY; } + BOOL getHeavyStateAndBoots() { return checkNoResetFlg0(daPy_FLG0(FLG0_HEAVY_STATE | FLG0_EQUIP_HVY_BOOTS | FLG0_DK_CAUGHT2)); } BOOL checkEnemyAttentionLock() const { return checkResetFlg0(RFLG0_ENEMY_ATTN_LOCK); } - BOOL getGrabUpStart() const { return checkResetFlg0(RFLG0_UNK_8000); } - bool checkCanoeSlider() const { return mSpecialMode == 0x2D; } - bool checkGoatStopGame() const { return mSpecialMode == 0x2A; } - void onGoatStopGame() { mSpecialMode = 0x2A; } + BOOL getGrabUpStart() const { return checkResetFlg0(RFLG0_GRAB_UP_START); } + bool checkCanoeSlider() const { return mMode == 0x2D; } + bool checkGoatStopGame() const { return mMode == 0x2A; } + void onGoatStopGame() { mMode = 0x2A; } u8 getCutType() const { return mCutType; } u16 getSwordAtUpTime() const { return mSwordUpTimer; } s16 getDamageWaitTimer() const { return mDamageTimer; } - BOOL checkWaterInMove() const { return checkNoResetFlg0(FLG0_UNDERWATER); } - BOOL checkSceneChangeAreaStart() const { return checkNoResetFlg2(FLG2_SCN_CHG_START); } + BOOL checkWaterInMove() const { return checkNoResetFlg0(FLG0_WATER_IN_MOVE); } + BOOL checkSceneChangeAreaStart() const { return checkNoResetFlg2(FLG2_SCENE_CHANGE_START); } BOOL checkFrontRollCrash() const { return checkResetFlg0(RFLG0_FRONT_ROLL_CRASH); } BOOL checkWolfAttackReverse() const { return checkResetFlg1(RFLG1_WOLF_ATTACK_REVERSE); } - BOOL checkFreezeDamage() const { return checkNoResetFlg1(FLG1_ICE_FREEZE); } - BOOL checkWolfTagLockJumpReady() const { return checkResetFlg0(RFLG0_UNK_20000); } + BOOL checkFreezeDamage() const { return checkNoResetFlg1(FLG1_FREEZE_DAMAGE); } + BOOL checkWolfTagLockJumpReady() const { return checkResetFlg0(RFLG0_WOLF_TAG_LOCK_JUMP_READY); } BOOL checkDamageImpact() const { return checkResetFlg1(RFLG1_DAMAGE_IMPACT); } BOOL getGrabUpEnd() const { return checkResetFlg0(RFLG0_GRAB_UP_END); } BOOL getGrabPutStart() const { return checkResetFlg0(RFLG0_GRAB_PUT_START); } BOOL checkSwimUp() const { return checkNoResetFlg0(FLG0_SWIM_UP); } BOOL checkHorseZelda() const { return checkNoResetFlg2(FLG2_HORSE_ZELDA); } - BOOL checkSpecialHorseRide() { return checkNoResetFlg2(daPy_FLG2(FLG2_HORSE_ZELDA | FLG2_UNK_1000000 | FLG2_BOAR_SINGLE_BATTLE)); } - BOOL checkBoardNoFootAngle() const { return checkResetFlg1(RFLG1_UNK_40); } + BOOL checkSpecialHorseRide() { return checkNoResetFlg2(daPy_FLG2(FLG2_HORSE_ZELDA | FLG2_BOAR_SINGLE_BATTLE_2ND | FLG2_BOAR_SINGLE_BATTLE_1ST)); } + BOOL checkBoardNoFootAngle() const { return checkResetFlg1(RFLG1_BOARD_NO_FOOT_ANGLE); } BOOL checkGrabThrow() const { return checkResetFlg0(RFLG0_GRAB_THROW); } BOOL checkMidnaAtnPos() const { return checkNoResetFlg1(FLG1_MIDNA_ATN_POS); } BOOL checkMidnaHairAtnPos() const { return checkNoResetFlg1(FLG1_MIDNA_HAIR_ATN_POS); } - BOOL checkAttentionLock() const { return checkResetFlg0(RFLG0_UNK_10000); } - BOOL checkFishingRodUseStart() const { return checkResetFlg1(RFLG1_UNK_80); } - BOOL checkFishingRodUseAccept() const { return checkResetFlg1(RFLG1_UNK_200); } + BOOL checkAttentionLock() const { return checkResetFlg0(RFLG0_ATTENTION_LOCK); } + BOOL checkFishingRodUseStart() const { return checkResetFlg1(RFLG0_FISHINGROD_USE_START); } + BOOL checkFishingRodUseAccept() const { return checkResetFlg1(RFLG0_FISHINGROD_USE_ACCEPT); } void onBossRoomWait() { onEndResetFlg0(ERFLG0_BOSS_ROOM_WAIT); } void onBeeFollow() { onEndResetFlg0(ERFLG0_BEE_FOLLOW); } void onForceAutoJump() { onEndResetFlg0(ERFLG0_FORCE_AUTO_JUMP); } void onNotAutoJump() { onEndResetFlg0(ERFLG0_NOT_AUTO_JUMP); } void onNotHang() { onEndResetFlg0(ERFLG0_NOT_HANG); } - void onLeafSe() { onEndResetFlg0(ERFLG0_UNK_200000); } + void onLeafSe() { onEndResetFlg0(ERFLG0_LEAF_SE); } void onWolfFchainPull() { onEndResetFlg0(ERFLG0_WOLF_FCHAIN_PULL); } void onFishingRodGetFish() { onEndResetFlg0(ERFLG0_FISHING_ROD_GET_FISH); } void onSingleBoarAvoid() { onEndResetFlg0(ERFLG0_SINGLE_BOAR_AVOID); } - void onShieldBackBone() { onEndResetFlg1(ERFLG1_GANON_FINISH); } + void onShieldBackBone() { onEndResetFlg1(ERFLG1_SHIELD_BACKBONE); } void onWolfEyeKeep() { onEndResetFlg1(ERFLG1_WOLF_EYE_KEEP); } void onPortalWarpMidnaAtnKeep() { onEndResetFlg2(ERFLG2_PORTAL_WARP_MIDNA_ATN_KEEP); } - void onFogFade() { onNoResetFlg2(FLG2_UNK_4000); } - void onDkCaught2() { onNoResetFlg0(FLG0_DK_CAUGHT); } - void onFishingRodCastingEnd() { onNoResetFlg1(FLG1_UNK_8000); } - void onFishingRodReelEnd() { onEndResetFlg0(ERFLG0_UNK_20000); } - void onFishingHit() { onEndResetFlg0(ERFLG0_UNK_10000); } - void onFishingKeep() { onEndResetFlg2(ERFLG2_UNK_1); } - void onTraningCutHead() { onNoResetFlg3(FLG3_UNK_40); } - void onTraningCutFast() { onNoResetFlg3(FLG3_UNK_80); } - void onTraningCutLargeJump() { onNoResetFlg3(FLG3_UNK_200); } - void onTraningCutLargeTurn() { onNoResetFlg3(FLG3_UNK_100); } - void onTraningCutDown() { onNoResetFlg3(FLG3_UNK_10); } - void onTraningShieldAttack() { onNoResetFlg3(FLG3_UNK_8); } + void onFogFade() { onNoResetFlg2(FLG2_FOG_FADE); } + void onDkCaught2() { onNoResetFlg0(FLG0_DK_CAUGHT2); } + void onFishingRodCastingEnd() { onNoResetFlg1(FLG1_FISHING_ROD_CASTING_END); } + void onFishingRodReelEnd() { onEndResetFlg0(ERFLG0_FISHING_ROD_REEL_END); } + void onFishingHit() { onEndResetFlg0(ERFLG0_FISHING_HIT); } + void onFishingKeep() { onEndResetFlg2(ERFLG2_FISHING_KEEP); } + void onTraningCutHead() { onNoResetFlg3(FLG3_TRANING_CUT_HEAD); } + void onTraningCutFast() { onNoResetFlg3(FLG3_TRANING_CUT_FAST); } + void onTraningCutLargeJump() { onNoResetFlg3(FLG3_TRANING_CUT_LARGE_JUMP); } + void onTraningCutLargeTurn() { onNoResetFlg3(FLG3_TRANING_CUT_LARGE_TURN); } + void onTraningCutDown() { onNoResetFlg3(FLG3_TRANING_CUT_DOWN); } + void onTraningShieldAttack() { onNoResetFlg3(FLG3_TRANING_SHIELD_ATTACK); } - BOOL checkStickArrowReset() const { return checkResetFlg0(RFLG0_UNK_1); } - BOOL getCutAtFlg() const { return checkNoResetFlg0(FLG0_UNK_40); } - BOOL checkBoarSingleBattleFirst() const { return checkNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE); } - BOOL checkBoarSingleBattleSecond() const { return checkNoResetFlg2(FLG2_UNK_1000000); } + BOOL checkStickArrowReset() const { return checkResetFlg0(RFLG0_STICK_ARROW_RESET); } + BOOL getCutAtFlg() const { return checkNoResetFlg0(FLG0_CUT_AT_FLG); } + BOOL checkBoarSingleBattleFirst() const { return checkNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE_1ST); } + BOOL checkBoarSingleBattleSecond() const { return checkNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE_2ND); } BOOL getFootOnGround() const { return checkResetFlg1(daPy_RFLG1(RFLG1_UNK_10 | RFLG1_UNK_20)); } void offWolfEnemyHangBite() { offNoResetFlg2(FLG2_WOLF_ENEMY_HANG_BITE); } - bool onWolfEnemyHangBite(fopAc_ac_c* param_0) { return onWolfEnemyBiteAll(param_0, FLG2_WOLF_ENEMY_HANG_BITE); } + bool onWolfEnemyHangBite(fopAc_ac_c* i_enemy) { return onWolfEnemyBiteAll(i_enemy, FLG2_WOLF_ENEMY_HANG_BITE); } void offHorseZelda() { offNoResetFlg2(FLG2_HORSE_ZELDA); } void onHorseZelda() { onNoResetFlg2(FLG2_HORSE_ZELDA); } - BOOL checkItemSightBgHit() const { return checkResetFlg0(RFLG0_UNK_2000000); } + BOOL checkItemSightBgHit() const { return checkResetFlg0(RFLG0_ITEM_SIGHT_BG_HIT); } - void setCanoeSlider() { mSpecialMode = 0x2D; } + void setCanoeSlider() { mMode = 0x2D; } void offCanoeSlider() { if (checkCanoeSlider()) { - mSpecialMode = 0; + mMode = 0; } } void onMidnaTalkPolySpeed() { onNoResetFlg3(FLG3_MIDNA_TALK_POLY_SPEED); } @@ -992,28 +978,28 @@ public: void offCargoCarry() { if (checkCargoCarry()) { - mSpecialMode = 0; + mMode = 0; } } - bool onWolfEnemyCatch(fopAc_ac_c* i_actor) { return onWolfEnemyBiteAll(i_actor, FLG2_UNK_8); } + bool onWolfEnemyCatch(fopAc_ac_c* i_enemy) { return onWolfEnemyBiteAll(i_enemy, FLG2_UNK_8); } void offGoronSideMove() { if (checkGoronSideMove()) { - mSpecialMode = 0; + mMode = 0; } } void offGoronUpStopCancel() { - offNoResetFlg0(FLG0_UNK_200000); + offNoResetFlg0(FLG0_GORON_UP_STOP_CANCEL); } s16 getBodyAngleX() const { return mBodyAngle.x; } s16 getBodyAngleY() const { return mBodyAngle.y; } - f32 getHeight() const { return field_0x598; } + f32 getHeight() const { return mHeight; } - BOOL checkMidnaWarp() const { return 0; } + BOOL checkMidnaWarp() const { return FALSE; } u32 checkNoResetFlg0(daPy_FLG0 i_flag) const { return mNoResetFlg0 & i_flag; } u32 checkNoResetFlg1(daPy_FLG1 i_flag) const { return mNoResetFlg1 & i_flag; } @@ -1030,10 +1016,10 @@ public: void offNoResetFlg2(daPy_FLG2 i_flag) { mNoResetFlg2 &= ~i_flag; } void offNoResetFlg3(daPy_FLG3 i_flag) { mNoResetFlg3 &= ~i_flag; } - void offResetFlg0(daPy_RFLG0 flag) { mResetFlg0 &= ~flag; } - void offResetFlg1(daPy_RFLG1 flag) { mResetFlg1 &= ~flag; } - void onResetFlg0(daPy_RFLG0 flag) { mResetFlg0 |= flag; } - void onResetFlg1(daPy_RFLG1 flag) { mResetFlg1 |= flag; } + void offResetFlg0(daPy_RFLG0 i_flag) { mResetFlg0 &= ~i_flag; } + void offResetFlg1(daPy_RFLG1 i_flag) { mResetFlg1 &= ~i_flag; } + void onResetFlg0(daPy_RFLG0 i_flag) { mResetFlg0 |= i_flag; } + void onResetFlg1(daPy_RFLG1 i_flag) { mResetFlg1 |= i_flag; } void onEndResetFlg0(daPy_ERFLG0 i_flag) { mEndResetFlg0 |= i_flag; } void onEndResetFlg2(daPy_ERFLG2 i_flag) { mEndResetFlg2 |= i_flag; } @@ -1057,7 +1043,7 @@ public: u32 checkWolf() const { return checkNoResetFlg1(FLG1_IS_WOLF); } u32 checkEquipHeavyBoots() const { return checkNoResetFlg0(FLG0_EQUIP_HVY_BOOTS); } u32 checkMagneBootsOn() const { return checkNoResetFlg0(FLG0_MAGNE_BOOTS_ON); } - BOOL checkFastSwordCut() const { return checkNoResetFlg0(FLG0_UNK_80000); } + BOOL checkFastSwordCut() const { return checkNoResetFlg0(FLG0_FAST_SWORD_CUT); } u32 checkMidnaRide() const { return checkNoResetFlg0(FLG0_MIDNA_RIDE); } BOOL checkWolfGrowl() const { return checkResetFlg0(RFLG0_WOLF_GROWL); } BOOL checkWolfThreat() const { return checkWolfGrowl(); } @@ -1072,28 +1058,28 @@ public: void onMidnaRide() { onNoResetFlg0(FLG0_MIDNA_RIDE); } void offMidnaRide() { offNoResetFlg0(FLG0_MIDNA_RIDE); } void onMidnaRideShock() { onEndResetFlg1(ERFLG1_MIDNA_RIDE_SHOCK); } - void onPlayerShadowNoDraw() { onNoResetFlg2(FLG2_PLAYER_SHADOW); } - void offPlayerShadowNoDraw() { offNoResetFlg2(FLG2_PLAYER_SHADOW); } - void onLightSwordGetEffect() { onEndResetFlg2(ERFLG2_UNK_10); } + void onPlayerShadowNoDraw() { onNoResetFlg2(FLG2_PLAYER_SHADOW_NO_DRAW); } + void offPlayerShadowNoDraw() { offNoResetFlg2(FLG2_PLAYER_SHADOW_NO_DRAW); } + void onLightSwordGetEffect() { onEndResetFlg2(ERFLG2_LIGHT_SWORD_GET_EFFECT); } void onForceGameOver() { onNoResetFlg2(FLG2_FORCE_GAMEOVER); } - void onForceWolfChange() { onEndResetFlg0(ERFLG0_UNK_2); } - void onDoPutEmphasys() { onEndResetFlg1(ERFLG1_UNK_10000000); } - void onDoExchangePutIn() { onEndResetFlg1(ERFLG1_UNK_4000000); } - void onNsScream() { onEndResetFlg1(ERFLG1_UNK_1); } - void onNsScreamAnm() { onEndResetFlg1(daPy_ERFLG1(ERFLG1_UNK_1 | ERFLG1_UNK_2)); } + void onForceWolfChange() { onEndResetFlg0(ERFLG0_FORCE_WOLF_CHANGE); } + void onDoPutEmphasys() { onEndResetFlg1(ERFLG1_DO_PUT_EMPHASYS); } + void onDoExchangePutIn() { onEndResetFlg1(ERFLG1_DO_EXCHANGE_PUT_IN); } + void onNsScream() { onEndResetFlg1(ERFLG1_NS_SCREAM); } + void onNsScreamAnm() { onEndResetFlg1(daPy_ERFLG1(ERFLG1_NS_SCREAM | ERFLG1_UNK_2)); } void onLargeDamageUpStop() { onEndResetFlg1(ERFLG1_LARGE_DAMAGE_UP_STOP); } - void onTraningCutBack() { onNoResetFlg3(FL3_TRANING_CUT_BACK); } - void onNeckSearchWide() { onEndResetFlg0(ERFLG0_UNK_400); } + void onTraningCutBack() { onNoResetFlg3(FLG3_TRANING_CUT_BACK); } + void onNeckSearchWide() { onEndResetFlg0(ERFLG0_NECK_SEARCH_WIDE); } void offPressedDamage() { offNoResetFlg2(FLG2_PRESSED_DAMAGE); } void onForceSubjectCancel() { onEndResetFlg0(ERFLG0_FORCE_SUBJECT_CANCEL); } void onEnemyDead() { onEndResetFlg0(ERFLG0_ENEMY_DEAD); } void offDkCaught() { offNoResetFlg1(FLG1_DK_CAUGHT); } - void offDkCaught2() { offNoResetFlg0(FLG0_DK_CAUGHT); } - void onWaterFallFrontHit() { onEndResetFlg1(ERFLG1_UNK_800); } - void onCanoeItemCancel() { onEndResetFlg1(ERFLG1_UNK_20000000); } - void onSwordTriggerNon() { onEndResetFlg1(ERFLG1_UNK_40000000); } + void offDkCaught2() { offNoResetFlg0(FLG0_DK_CAUGHT2); } + void onWaterFallFrontHit() { onEndResetFlg1(ERFLG1_WATERFALL_FRONT_HIT); } + void onCanoeItemCancel() { onEndResetFlg1(ERFLG1_CANOE_ITEM_CANCEL); } + void onSwordTriggerNon() { onEndResetFlg1(ERFLG1_SWORD_TRIGGER_NON); } - u32 checkBoarSingleBattle() const { return checkNoResetFlg2(daPy_FLG2(FLG2_UNK_1000000 | FLG2_BOAR_SINGLE_BATTLE)); } + u32 checkBoarSingleBattle() const { return checkNoResetFlg2(daPy_FLG2(FLG2_BOAR_SINGLE_BATTLE_2ND | FLG2_BOAR_SINGLE_BATTLE_1ST)); } u32 checkWolfDashAutoJump() const { return checkNoResetFlg2(FLG2_WOLF_DASH_AUTO_JUMP); } void changeOriginalDemo() { @@ -1108,8 +1094,8 @@ public: mDemo.setParam2(i_param2); } - void changeDemoParam0(int i_param1) { - mDemo.setParam0(i_param1); + void changeDemoParam0(int i_param0) { + mDemo.setParam0(i_param0); } void changeDemoParam1(int i_param1) { @@ -1126,7 +1112,7 @@ public: void setItemPos(cXyz* i_itemPos) { mItemPos = *i_itemPos; } - cXyz* getViewerCurrentPosP() { return &field_0x5f8; } + cXyz* getViewerCurrentPosP() { return &mViewerCurrentPos; } static bool checkPeepEndSceneChange() { return getLastSceneMode() == 7; } @@ -1163,8 +1149,17 @@ public: return dComIfGs_getSelectEquipClothes() == fpcNm_ITEM_ARMOR; } - /* dSv_event_flag_c::M_067 - Main Event - Midna riding / not riding (ON == riding) */ - static BOOL checkFirstMidnaDemo() { return dComIfGs_isEventBit(0xc10); } + static bool checkCarvingWoodShieldEquip() { + return dComIfGs_getSelectEquipShield() == fpcNm_ITEM_WOOD_SHIELD; + } + + static bool checkShopWoodShieldEquip() { + return dComIfGs_getSelectEquipShield() == fpcNm_ITEM_SHIELD; + } + + static BOOL checkPowerGloveGet() { return false; } + + static BOOL checkFirstMidnaDemo() { return dComIfGs_isEventBit(dSv_event_flag_c::M_067); } static int checkNowWolfPowerUp() { return checkNowWolfEyeUp(); } static daMidna_c* getMidnaActor() { return m_midnaActor; } @@ -1180,10 +1175,10 @@ public: } BOOL checkCowGameLash() const { return checkResetFlg0(RFLG0_COW_GAME_LEASH); } - BOOL checkClimbEndHang() { return checkResetFlg0(RFLG0_UNK_40000); } + BOOL checkClimbEndHang() { return checkResetFlg0(RFLG0_CLIMB_END_HANG); } void onForceHorseGetOff() { - onEndResetFlg2(ERFLG2_UNK_2); + onEndResetFlg2(ERFLG2_FORCE_HORSE_GETOFF); } s16 getFishingRodAngleY() const { @@ -1191,71 +1186,72 @@ public: } void onFishingRelease() { - onEndResetFlg0(ERFLG0_UNK_4000000); + onEndResetFlg0(ERFLG0_FISHING_RELEASE); } static daMidna_c* m_midnaActor; - void setGiantPuzzle() { mSpecialMode = SMODE_WOLF_PUZZLE; } - void setGiantPuzzleEnd() { mSpecialMode = 0; } + void setGiantPuzzle() { mMode = SMODE_WOLF_PUZZLE; } + void setGiantPuzzleEnd() { mMode = 0; } - BOOL checkAutoJumpStart() const { return checkResetFlg0(RFLG0_UNK_100); } + BOOL checkAutoJumpStart() const { return checkResetFlg0(RFLG0_AUTO_JUMP_START); } void onForceGrabRebound() { - onEndResetFlg2(ERFLG2_UNK_8); + onEndResetFlg2(ERFLG2_FORCE_GRAB_REBOUND); } - void setSumouReadyAcceptButton() { mSpecialMode = 2; } - void setSumouForceStand() { mSpecialMode = 3; } - void setSumouPushFrontStop() { mSpecialMode = 9; } - void setSumouPunchWinEnd() { mSpecialMode = 0xB; } - void setSumouPunchLoseEnd() { mSpecialMode = 0xC; } - void setSumouMoveWinEnd() { mSpecialMode = 0xD; } - void setSumouMoveLoseEnd() { mSpecialMode = 0xE; } + void setSumouReadyAcceptButton() { mMode = 2; } + void setSumouForceStand() { mMode = 3; } + void setSumouPushFrontStop() { mMode = 9; } + void setSumouPunchWinEnd() { mMode = 0xB; } + void setSumouPunchLoseEnd() { mMode = 0xC; } + void setSumouMoveWinEnd() { mMode = 0xD; } + void setSumouMoveLoseEnd() { mMode = 0xE; } void setSumouForcePunch() { - if (mSpecialMode == 0x1F) { - mSpecialMode = 0x21; + if (mMode == 0x1F) { + mMode = 0x21; } else { - mSpecialMode = 0x1C; + mMode = 0x1C; } } - void setSumouForceTackle() { mSpecialMode = 0x1B; } - void setSumouForceGraspCancel() { mSpecialMode = 0x24; } + void setSumouForceTackle() { mMode = 0x1B; } + void setSumouForceGraspCancel() { mMode = 0x24; } - bool checkSumouPushFront() const { return mSpecialMode == 7; } - bool checkSumouPushBack() const { return mSpecialMode == 8; } - bool checkSumouTackleSuccess() const { return mSpecialMode == 0xF; } - bool checkSumouTackleSuccessPunch() const { return mSpecialMode == 0x10; } - bool checkSumouTackleMiss() const { return mSpecialMode == 0x11; } - bool checkSumouTackleDraw() const { return mSpecialMode == 0x12; } - bool checkSumouPunchSuccess() const { return mSpecialMode == 0x13; } - bool checkSumouPunchMiss() const { return mSpecialMode == 0x14; } - bool checkSumouPunchDraw() const { return mSpecialMode == 0x15; } - bool checkSumouWait() const { return mSpecialMode == 0x16; } - bool checkSumouLeftMove() const { return mSpecialMode == 0x17; } - bool checkSumouRightMove() const { return mSpecialMode == 0x18; } - bool checkSumouSlideLeft() const { return mSpecialMode == 0x19; } - bool checkSumouSlideRight() const { return mSpecialMode == 0x1A; } - bool checkSumouPunchStagger() const { return mSpecialMode == 0x1F; } - bool checkSumouTackleStagger() const { return mSpecialMode == 0x20; } - bool checkSumouGraspRelease() const { return mSpecialMode == 0x23; } + bool checkSumouPushFront() const { return mMode == 7; } + bool checkSumouPushBack() const { return mMode == 8; } + bool checkSumouTackleSuccess() const { return mMode == 0xF; } + bool checkSumouTackleSuccessPunch() const { return mMode == 0x10; } + bool checkSumouTackleMiss() const { return mMode == 0x11; } + bool checkSumouTackleDraw() const { return mMode == 0x12; } + bool checkSumouPunchSuccess() const { return mMode == 0x13; } + bool checkSumouPunchMiss() const { return mMode == 0x14; } + bool checkSumouPunchDraw() const { return mMode == 0x15; } + bool checkSumouWait() const { return mMode == 0x16; } + bool checkSumouLeftMove() const { return mMode == 0x17; } + bool checkSumouRightMove() const { return mMode == 0x18; } + bool checkSumouSlideLeft() const { return mMode == 0x19; } + bool checkSumouSlideRight() const { return mMode == 0x1A; } + bool checkSumouPunchStagger() const { return mMode == 0x1F; } + bool checkSumouTackleStagger() const { return mMode == 0x20; } + bool checkSumouGraspRelease() const { return mMode == 0x23; } - void onHeavyState() { onNoResetFlg0(FLG0_UNK_40000000); } + void onHeavyState() { onNoResetFlg0(FLG0_HEAVY_STATE); } void onHeavyStateMidnaPanic() { onHeavyState(); onEndResetFlg1(ERFLG1_UNK_40000); } - BOOL checkInsectRelease() { return checkResetFlg1(RFLG1_UNK_100); } + BOOL checkInsectRelease() { return checkResetFlg1(RFLG1_INSECT_RELEASE); } - void onChainForcePull() { onEndResetFlg1(ERFLG1_UNK_1000000); } - void onChainPullEnd() { onEndResetFlg1(ERFLG1_UNK_2000000); } + void onChainForcePull() { onEndResetFlg1(ERFLG1_CHAIN_FORCE_PULL); } + void onChainPullEnd() { onEndResetFlg1(ERFLG1_CHAIN_PULL_END); } - void onWaterDrop() { onEndResetFlg1(ERFLG1_UNK_20000); } - void forceKandelaarLightOff() { onNoResetFlg2(FLG2_UNK_10000000); } + void onWaterDrop() { onEndResetFlg1(ERFLG1_WATER_DROP); } + void forceKandelaarLightOff() { onNoResetFlg2(FLG2_KANDELAAR_LIGHT_OFF); } }; -int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4); +void daPy_aramBufferCheck(void* i_buffer, u32 i_size); +int daPy_addCalcShort(s16* i_value, s16 i_target, s16 i_scale, s16 i_maxStep, s16 i_minStep); inline daPy_py_c* daPy_getPlayerActorClass() { return (daPy_py_c*)dComIfGp_getPlayer(0); diff --git a/include/d/actor/d_a_spinner.h b/include/d/actor/d_a_spinner.h index 0d4d82fedc..dd5b098e57 100644 --- a/include/d/actor/d_a_spinner.h +++ b/include/d/actor/d_a_spinner.h @@ -48,6 +48,7 @@ public: dPath* checkPathMoveNow() { return mpPathMove; } static u32 getWaitArg() { return 0; } + static int getWaterSinkLimit() { return 50; } BOOL getDeleteFlg() const { return mDeleteFlg; } diff --git a/include/d/actor/d_a_tag_kmsg.h b/include/d/actor/d_a_tag_kmsg.h index 7fe9c21a92..cbd12b4077 100644 --- a/include/d/actor/d_a_tag_kmsg.h +++ b/include/d/actor/d_a_tag_kmsg.h @@ -45,9 +45,9 @@ public: } int getType() { - int param = fopAcM_GetParam(this) >> 0x18; - int type; + u32 param = (fopAcM_GetParam(this) & 0xFF000000) >> 0x18; + int type; if (param == 0xFF) { type = 0; } else { diff --git a/include/d/d_camera.h b/include/d/d_camera.h index 5b7f46ea5e..1a9db62f86 100644 --- a/include/d/d_camera.h +++ b/include/d/d_camera.h @@ -1092,8 +1092,8 @@ public: i_info->field_0x1e = param_1; } - void EventFlag(int i_flag) { - mEventData.field_0x24 = i_flag; + int EventFlag(int i_flag) { + return mEventData.field_0x24 = i_flag; } void Att() { diff --git a/include/d/d_cc_d.h b/include/d/d_cc_d.h index 7511fda358..7c6b438a4d 100644 --- a/include/d/d_cc_d.h +++ b/include/d/d_cc_d.h @@ -146,7 +146,7 @@ public: u32 GetRPrm() const { return mRPrm; } u32 MskSPrm(u32 mask) const { return mGFlag & mask; } u32 MskRPrm(u32 mask) const { return mRPrm & mask; } - bool ChkSPrm(u32 mask) const { return MskSPrm(mask); } + bool ChkSPrm(u32 mask) { return MskSPrm(mask); } void OnSPrm(u32 flag) { mGFlag |= flag; } void OnRPrm(u32 flag) { mRPrm |= flag; } void OffSPrm(u32 flag) { mGFlag &= ~flag; } @@ -169,7 +169,7 @@ public: void SetHitMark(u8 mark) { mHitMark = mark; } void SetSe(u8 se) { mSe = se; } void SetMtrl(u8 mtrl) { mMtrl = mtrl; } - void SetAtSpl(dCcG_At_Spl spl) { mSpl = spl; } + void SetSpl(dCcG_At_Spl spl) { mSpl = spl; } u8 GetSe() { return mSe; } dCcG_At_Spl GetSpl() { return (dCcG_At_Spl)mSpl; } u8 GetMtrl() { return mMtrl; } @@ -311,7 +311,7 @@ public: void SetAtVec(cXyz& vec) { mGObjAt.SetVec(vec); } void SetTgVec(cXyz& vec) { mGObjTg.SetVec(vec); } - bool ChkAtNoMass() const { return mGObjAt.ChkSPrm(8); } + bool ChkAtNoMass() { return mGObjAt.ChkSPrm(8); } void OnAtNoHitMark() { mGObjAt.OnSPrm(2); } void OffAtNoHitMark() { mGObjAt.OffSPrm(2); } void OnTgNoHitMark() { mGObjTg.OnSPrm(4); } @@ -331,7 +331,7 @@ public: bool ChkAtShieldHit() { return mGObjAt.ChkRPrm(1); } cXyz* GetAtVecP() { return mGObjAt.GetVecP(); } cXyz* GetTgVecP() { return mGObjTg.GetVecP(); } - void SetAtSpl(dCcG_At_Spl spl) { mGObjAt.SetAtSpl(spl); } + void SetAtSpl(dCcG_At_Spl spl) { mGObjAt.SetSpl(spl); } void SetAtHitCallback(dCcD_HitCallback callback) { mGObjAt.SetHitCallback(callback); } void SetTgHitCallback(dCcD_HitCallback callback) { mGObjTg.SetHitCallback(callback); } void SetCoHitCallback(dCcD_HitCallback callback) { mGObjCo.SetHitCallback(callback); } @@ -415,7 +415,7 @@ public: void SetTgHitPos(cXyz& pos) { mGObjTg.SetHitPos(pos); } void SetAtHitPos(cXyz& pos) { mGObjAt.SetHitPos(pos); } u8 GetTgSe() { return mGObjTg.GetSe(); } - u32 GetTgHitObjHitSeID(int i_soundID) { return getHitSeID(GetTgHitObjSe(),i_soundID); } + u32 GetTgHitObjHitSeID(BOOL i_isRebound) { return getHitSeID(GetTgHitObjSe(), i_isRebound); } cXyz* GetAtHitPosP() { return mGObjAt.GetHitPosP(); } cXyz* GetTgHitPosP() { return mGObjTg.GetHitPosP(); } cXyz* GetTgRVecP() { return mGObjTg.GetRVecP(); } diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index bf1523042c..72f5c490c1 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -16,6 +16,169 @@ #include "m_Do/m_Do_controller_pad.h" #include "m_Do/m_Do_graphic.h" +enum dComIfG_ButtonStatus { + /* 0x00 */ BUTTON_STATUS_NONE, + /* 0x01 */ BUTTON_STATUS_LET_GO, + /* 0x02 */ BUTTON_STATUS_PEEK, + /* 0x03 */ BUTTON_STATUS_ATTACK, + /* 0x04 */ BUTTON_STATUS_PUT_AWAY, + /* 0x05 */ BUTTON_STATUS_HOWL, + /* 0x06 */ BUTTON_STATUS_OPEN, + /* 0x07 */ BUTTON_STATUS_ENTER, + /* 0x08 */ BUTTON_STATUS_CHECK, + /* 0x09 */ BUTTON_STATUS_DASH, + /* 0x0A */ BUTTON_STATUS_CROUCH, + /* 0x0B */ BUTTON_STATUS_DEFEND, + /* 0x0C */ BUTTON_STATUS_PICK_UP, + /* 0x0D */ BUTTON_STATUS_DIG, + /* 0x0E */ BUTTON_STATUS_EAT, + /* 0x0F */ BUTTON_STATUS_SELECT, + /* 0x10 */ BUTTON_STATUS_LOCK, + /* 0x11 */ BUTTON_STATUS_SWITCH, + /* 0x12 */ BUTTON_STATUS_BACK, + /* 0x13 */ BUTTON_STATUS_THROW, + /* 0x14 */ BUTTON_STATUS_PLACE, + /* 0x15 */ BUTTON_STATUS_GRAB, + /* 0x16 */ BUTTON_STATUS_GET_OFF, + /* 0x17 */ BUTTON_STATUS_GET_ON, + /* 0x18 */ BUTTON_STATUS_PADDLE, + /* 0x19 */ BUTTON_STATUS_JUMP, + /* 0x1A */ BUTTON_STATUS_READ, + /* 0x1B */ BUTTON_STATUS_LOOK, + /* 0x1C */ BUTTON_STATUS_SPEAK, + /* 0x1D */ BUTTON_STATUS_LIFT, + /* 0x1E */ BUTTON_STATUS_SWING, + /* 0x1F */ BUTTON_STATUS_UNK_31, + /* 0x20 */ BUTTON_STATUS_UNK_32, + /* 0x21 */ BUTTON_STATUS_UNK_33, + /* 0x22 */ BUTTON_STATUS_CONFIRM, + /* 0x23 */ BUTTON_STATUS_NEXT, + /* 0x24 */ BUTTON_STATUS_INFO, + /* 0x25 */ BUTTON_STATUS_UNK_37, + /* 0x26 */ BUTTON_STATUS_UNK_38, + /* 0x27 */ BUTTON_STATUS_UNK_39, + /* 0x28 */ BUTTON_STATUS_WHOOP, + /* 0x29 */ BUTTON_STATUS_ZOOM, + /* 0x2A */ BUTTON_STATUS_QUIT, + /* 0x2B */ BUTTON_STATUS_PICK, + /* 0x2C */ BUTTON_STATUS_BLOW, + /* 0x2D */ BUTTON_STATUS_DODGE, + /* 0x2E */ BUTTON_STATUS_CUT, + /* 0x2F */ BUTTON_STATUS_HINT, + /* 0x30 */ BUTTON_STATUS_FINISH, + /* 0x31 */ BUTTON_STATUS_SET_FREE, + /* 0x32 */ BUTTON_STATUS_DISMOUNT, + /* 0x33 */ BUTTON_STATUS_DROP_DOWN, + /* 0x34 */ BUTTON_STATUS_UNK_52, + /* 0x35 */ BUTTON_STATUS_TAKE, + /* 0x36 */ BUTTON_STATUS_HURRY, + /* 0x37 */ BUTTON_STATUS_PULL_DOWN, + /* 0x38 */ BUTTON_STATUS_PET, + /* 0x39 */ BUTTON_STATUS_UNK_57, + /* 0x3A */ BUTTON_STATUS_SHIELD_ATTACK, + /* 0x3B */ BUTTON_STATUS_LISTEN, + /* 0x3C */ BUTTON_STATUS_DRINK, + /* 0x3D */ BUTTON_STATUS_UNK_61, + /* 0x3E */ BUTTON_STATUS_COVER, + /* 0x3F */ BUTTON_STATUS_PUSH, + /* 0x40 */ BUTTON_STATUS_RESIST, + /* 0x41 */ BUTTON_STATUS_DIVE, + /* 0x42 */ BUTTON_STATUS_PUT_TOGETHER, + /* 0x43 */ BUTTON_STATUS_SKIP, + /* 0x44 */ BUTTON_STATUS_SLAP, + /* 0x45 */ BUTTON_STATUS_SNIFF, + /* 0x46 */ BUTTON_STATUS_BITE, + /* 0x47 */ BUTTON_STATUS_ROLL, + /* 0x48 */ BUTTON_STATUS_FASTEN, + /* 0x49 */ BUTTON_STATUS_GET_DOWN, + /* 0x4A */ BUTTON_STATUS_HAWKEYE_OFF, + /* 0x4B */ BUTTON_STATUS_UNK_75, + /* 0x4C */ BUTTON_STATUS_SWIM, + /* 0x4D */ BUTTON_STATUS_CANT_SKIP, + /* 0x4E */ BUTTON_STATUS_SENSE, + /* 0x4F */ BUTTON_STATUS_UNK_79, + /* 0x50 */ BUTTON_STATUS_UNK_80, + /* 0x51 */ BUTTON_STATUS_LAND, + /* 0x52 */ BUTTON_STATUS_HOOK, + /* 0x53 */ BUTTON_STATUS_CHANGE_LOCKS, + /* 0x54 */ BUTTON_STATUS_EQUIP, + /* 0x55 */ BUTTON_STATUS_PULL, + /* 0x56 */ BUTTON_STATUS_REEL, + /* 0x57 */ BUTTON_STATUS_EXTRACT, + /* 0x58 */ BUTTON_STATUS_SPIN, + /* 0x59 */ BUTTON_STATUS_UNK_89, + /* 0x5A */ BUTTON_STATUS_SPIN_ATTACK, + /* 0x5B */ BUTTON_STATUS_REEL_FAST, + /* 0x5C */ BUTTON_STATUS_RAISE, + /* 0x5D */ BUTTON_STATUS_RELEASE, + /* 0x5E */ BUTTON_STATUS_UNK_94, + /* 0x5F */ BUTTON_STATUS_MAP, + /* 0x60 */ BUTTON_STATUS_ITEMS, + /* 0x61 */ BUTTON_STATUS_INSERT, + /* 0x62 */ BUTTON_STATUS_DRAW, + /* 0x63 */ BUTTON_STATUS_STRIKE, + /* 0x64 */ BUTTON_STATUS_BLANK, + /* 0x65 */ BUTTON_STATUS_UNK_101, + /* 0x66 */ BUTTON_STATUS_POINT_WII_REMOTE, + /* 0x67 */ BUTTON_STATUS_FLIP, + /* 0x68 */ BUTTON_STATUS_CHANGE_VIEW, + /* 0x69 */ BUTTON_STATUS_UNK_105, + /* 0x6A */ BUTTON_STATUS_UNK_106, + /* 0x6B */ BUTTON_STATUS_CHANCE, + /* 0x6C */ BUTTON_STATUS_SCOOP, + /* 0x6D */ BUTTON_STATUS_SURVEY, + /* 0x6E */ BUTTON_STATUS_CANCEL, + /* 0x6F */ BUTTON_STATUS_SEIZE, + /* 0x70 */ BUTTON_STATUS_COLLECTION, + /* 0x71 */ BUTTON_STATUS_AREA_MAP, + /* 0x72 */ BUTTON_STATUS_ACTION, + /* 0x73 */ BUTTON_STATUS_SET_HOOK, + /* 0x74 */ BUTTON_STATUS_TILT, + /* 0x75 */ BUTTON_STATUS_THRUST, + /* 0x76 */ BUTTON_STATUS_ROTATE, + /* 0x77 */ BUTTON_STATUS_HELM_SPLITTER, + /* 0x78 */ BUTTON_STATUS_MOVE, + /* 0x79 */ BUTTON_STATUS_UNK_121, + /* 0x7A */ BUTTON_STATUS_HOLD_ON, + /* 0x7B */ BUTTON_STATUS_UNK_123, + /* 0x7C */ BUTTON_STATUS_HELP, + /* 0x7D */ BUTTON_STATUS_ZOOM_IN, + /* 0x7E */ BUTTON_STATUS_ZOOM_OUT, + /* 0x7F */ BUTTON_STATUS_MOVE_CLOSER_TV, + /* 0x80 */ BUTTON_STATUS_UNK_128, + /* 0x81 */ BUTTON_STATUS_UNK_129, + /* 0x82 */ BUTTON_STATUS_UNK_130, + /* 0x83 */ BUTTON_STATUS_UNK_131, + /* 0x84 */ BUTTON_STATUS_UNK_132, + /* 0x85 */ BUTTON_STATUS_UNK_133, + /* 0x86 */ BUTTON_STATUS_UNK_134, + /* 0x87 */ BUTTON_STATUS_UNK_135, + /* 0x88 */ BUTTON_STATUS_UNK_136, + /* 0x89 */ BUTTON_STATUS_UNK_137, + /* 0x8A */ BUTTON_STATUS_UNK_138, + /* 0x8B */ BUTTON_STATUS_UNK_139, + /* 0x8C */ BUTTON_STATUS_UNK_140, + /* 0x8D */ BUTTON_STATUS_UNK_141, + /* 0x8E */ BUTTON_STATUS_UNK_142, + /* 0x8F */ BUTTON_STATUS_UNK_143, + /* 0x90 */ BUTTON_STATUS_UNK_144, + /* 0x91 */ BUTTON_STATUS_UNK_145, + /* 0x92 */ BUTTON_STATUS_UNK_146, + /* 0x93 */ BUTTON_STATUS_UNK_147, + /* 0x94 */ BUTTON_STATUS_UNK_148, + /* 0x95 */ BUTTON_STATUS_UNK_149, + /* 0x96 */ BUTTON_STATUS_UNK_150, + /* 0x97 */ BUTTON_STATUS_UNK_151, + /* 0x98 */ BUTTON_STATUS_UNK_152, + /* 0x99 */ BUTTON_STATUS_UNK_153, +}; + +enum dComIfG_ButtonStatusFlag { + /* 0x0 */ BUTTON_STATUS_FLAG_NONE, + /* 0x2 */ BUTTON_STATUS_FLAG_EMPHASIS = 2, + /* 0x4 */ BUTTON_STATUS_FLAG_CONTINUATION = 4, +}; + class JKRAramArchive; class dSmplMdl_draw_c; class dTimer_c; diff --git a/include/d/d_demo.h b/include/d/d_demo.h index a65f8c60b2..bbcb5d72b6 100644 --- a/include/d/d_demo.h +++ b/include/d/d_demo.h @@ -84,7 +84,7 @@ public: fopAc_ac_c* getActor(); void setActor(fopAc_ac_c*); f32 getPrm_Morf(); - int getDemoIDData(int*, int*, int*, u16*, u8*); + int getDemoIDData(int* o_arg0, int* o_arg1, int* o_arg2, u16* o_resID, u8*); virtual ~dDemo_actor_c(); virtual void JSGSetData(u32, void const*, u32); @@ -381,13 +381,17 @@ public: static s16 getBranchNum() { return m_branchNum; } static jmessage_tControl* getMesgControl() { return m_mesgControl; } + static void setBranchNum(u16 num) { + m_branchNum = num; + } + static dDemo_camera_c* getCamera() { JUT_ASSERT(0, m_object != NULL); return m_object->getActiveCamera(); } static s16 m_branchId; - static s16 m_branchNum; + static u16 m_branchNum; static dDemo_system_c* m_system; static JStudio::TControl* m_control; static JStudio_JStage::TCreateObject* m_stage; diff --git a/include/d/d_jnt_col.h b/include/d/d_jnt_col.h index 46a78f2030..f8107f9440 100644 --- a/include/d/d_jnt_col.h +++ b/include/d/d_jnt_col.h @@ -26,7 +26,7 @@ public: int getHitmarkPosAndAngle(cXyz const*, csXyz const*, cXyz*, csXyz*, int) const; void setArrowPosAndAngle(cXyz const*, cXyz const*, int, cXyz*, csXyz*); - bool checkPassNum(int bit) { return field_0xc & (1 << bit); } + BOOL checkPassNum(int bit) { return field_0xc & (1 << bit); } void onPassNum(int num) { field_0xc |= (1 << num); } void offPassNum(int num) { field_0xc &= ~(1 << num); } bool checkShieldType(int i) { return getType(i) == 3; } diff --git a/include/d/d_meter2_draw.h b/include/d/d_meter2_draw.h index 9a8a15ca48..c11bd680bb 100644 --- a/include/d/d_meter2_draw.h +++ b/include/d/d_meter2_draw.h @@ -10,144 +10,6 @@ class J2DAnmTransformKey; class JKRExpHeap; class JKRHeap; -enum dMeter2Draw_actionFlag { - /* 0x0 */ ACTION_FLG_DEFAULT, - /* 0x2 */ ACTION_FLG_EMPHASIS = 2, - /* 0x4 */ ACTION_FLG_CONTINUATION = 4, -}; - -enum dMeter2Draw_actionID { - /* 0x00 */ ACTION_STR_NONE, - /* 0x01 */ ACTION_STR_LET_GO, - /* 0x02 */ ACTION_STR_PEEK, - /* 0x03 */ ACTION_STR_ATTACK, - /* 0x04 */ ACTION_STR_PUT_AWAY, - /* 0x05 */ ACTION_STR_HOWL, - /* 0x06 */ ACTION_STR_OPEN, - /* 0x07 */ ACTION_STR_ENTER, - /* 0x08 */ ACTION_STR_CHECK, - /* 0x09 */ ACTION_STR_DASH, - /* 0x0A */ ACTION_STR_CROUCH, - /* 0x0B */ ACTION_STR_DEFEND, - /* 0x0C */ ACTION_STR_PICK_UP, - /* 0x0D */ ACTION_STR_DIG, - /* 0x0E */ ACTION_STR_EAT, - /* 0x0F */ ACTION_STR_SELECT, - /* 0x10 */ ACTION_STR_LOCK, - /* 0x11 */ ACTION_STR_SWITCH, - /* 0x12 */ ACTION_STR_BACK, - /* 0x13 */ ACTION_STR_THROW, - /* 0x14 */ ACTION_STR_PLACE, - /* 0x15 */ ACTION_STR_GRAB, - /* 0x16 */ ACTION_STR_GET_OFF, - /* 0x17 */ ACTION_STR_GET_ON, - /* 0x18 */ ACTION_STR_PADDLE, - /* 0x19 */ ACTION_STR_JUMP, - /* 0x1A */ ACTION_STR_READ, - /* 0x1B */ ACTION_STR_LOOK, - /* 0x1C */ ACTION_STR_SPEAK, - /* 0x1D */ ACTION_STR_LIFT, - /* 0x1E */ ACTION_STR_SWING, - /* 0x1F */ ACTION_STR_PICK_UP2, - /* 0x20 */ ACTION_STR_GET_ON2, - /* 0x21 */ ACTION_STR_GET_OFF2, - /* 0x22 */ ACTION_STR_CONFIRM, - /* 0x23 */ ACTION_STR_NEXT, - /* 0x24 */ ACTION_STR_INFO, - /* 0x25 */ ACTION_STR_NONE2, - /* 0x26 */ ACTION_STR_NONE3, - /* 0x27 */ ACTION_STR_NONE4, - /* 0x28 */ ACTION_STR_WHOOP, - /* 0x29 */ ACTION_STR_ZOOM, - /* 0x2A */ ACTION_STR_QUIT, - /* 0x2B */ ACTION_STR_PICK, - /* 0x2C */ ACTION_STR_BLOW, - /* 0x2D */ ACTION_STR_DODGE, - /* 0x2E */ ACTION_STR_CUT, - /* 0x2F */ ACTION_STR_HINT, - /* 0x30 */ ACTION_STR_FINISH, - /* 0x31 */ ACTION_STR_SET_FREE, - /* 0x32 */ ACTION_STR_DISMOUNT, - /* 0x33 */ ACTION_STR_DROP_DOWN, - /* 0x34 */ ACTION_STR_PICK_UP3, - /* 0x35 */ ACTION_STR_TAKE, - /* 0x36 */ ACTION_STR_HURRY, - /* 0x37 */ ACTION_STR_PULL_DOWN, - /* 0x38 */ ACTION_STR_PET, - /* 0x39 */ ACTION_STR_PICK_UP4, - /* 0x3A */ ACTION_STR_SHIELD_ATTACK, - /* 0x3B */ ACTION_STR_LISTEN, - /* 0x3C */ ACTION_STR_DRINK, - /* 0x3D */ ACTION_STR_ZOOM2, - /* 0x3E */ ACTION_STR_COVER, - /* 0x3F */ ACTION_STR_PUSH, - /* 0x40 */ ACTION_STR_RESIST, - /* 0x41 */ ACTION_STR_DIVE, - /* 0x42 */ ACTION_STR_PUT_TOGETHER, - /* 0x43 */ ACTION_STR_SKIP, - /* 0x44 */ ACTION_STR_SLAP, - /* 0x45 */ ACTION_STR_SNIFF, - /* 0x46 */ ACTION_STR_BITE, - /* 0x47 */ ACTION_STR_ROLL, - /* 0x48 */ ACTION_STR_FASTEN, - /* 0x49 */ ACTION_STR_GET_DOWN, - /* 0x4A */ ACTION_STR_HAWKEYE_OFF, - /* 0x4B */ ACTION_STR_DASH2, - /* 0x4C */ ACTION_STR_SWIM, - /* 0x4D */ ACTION_STR_CANT_SKIP, - /* 0x4E */ ACTION_STR_SENSE, - /* 0x4F */ ACTION_STR_NONE5, - /* 0x50 */ ACTION_STR_THROW2, - /* 0x51 */ ACTION_STR_LAND, - /* 0x52 */ ACTION_STR_HOOK, - /* 0x53 */ ACTION_STR_CHANGE_LOCKS, - /* 0x54 */ ACTION_STR_EQUIP, - /* 0x55 */ ACTION_STR_PULL, - /* 0x56 */ ACTION_STR_REEL, - /* 0x57 */ ACTION_STR_EXTRACT, - /* 0x58 */ ACTION_STR_SPIN, - /* 0x59 */ ACTION_STR_SWITCH2, - /* 0x5A */ ACTION_STR_SPIN_ATTACK, - /* 0x5B */ ACTION_STR_REEL_FAST, - /* 0x5C */ ACTION_STR_RAISE, - /* 0x5D */ ACTION_STR_RELEASE, - /* 0x5E */ ACTION_STR_CHECK2, - /* 0x5F */ ACTION_STR_MAP, - /* 0x60 */ ACTION_STR_ITEMS, - /* 0x61 */ ACTION_STR_INSERT, - /* 0x62 */ ACTION_STR_DRAW, - /* 0x63 */ ACTION_STR_STRIKE, - /* 0x64 */ ACTION_STR_BLANK, - /* 0x65 */ ACTION_STR_JUMP2, - /* 0x66 */ ACTION_STR_POINT_WII_REMOTE, - /* 0x67 */ ACTION_STR_FLIP, - /* 0x68 */ ACTION_STR_CHANGE_VIEW, - /* 0x69 */ ACTION_STR_ZOOM3, - /* 0x6A */ ACTION_STR_BACK2, - /* 0x6B */ ACTION_STR_CHANCE, - /* 0x6C */ ACTION_STR_SCOOP, - /* 0x6D */ ACTION_STR_SURVEY, - /* 0x6E */ ACTION_STR_CANCEL, - /* 0x6F */ ACTION_STR_SEIZE, - /* 0x70 */ ACTION_STR_COLLECTION, - /* 0x71 */ ACTION_STR_AREA_MAP, - /* 0x72 */ ACTION_STR_ACTION, - /* 0x73 */ ACTION_STR_SET_HOOK, - /* 0x74 */ ACTION_STR_TILT, - /* 0x75 */ ACTION_STR_THRUST, - /* 0x76 */ ACTION_STR_ROTATE, - /* 0x77 */ ACTION_STR_HELM_SPLITTER, - /* 0x78 */ ACTION_STR_MOVE, - /* 0x79 */ ACTION_STR_ROLL2, - /* 0x7A */ ACTION_STR_HOLD_ON, - /* 0x7B */ ACTION_STR_BITE2, - /* 0x7C */ ACTION_STR_HELP, - /* 0x7D */ ACTION_STR_ZOOM_IN, - /* 0x7E */ ACTION_STR_ZOOM_OUT, - /* 0x7F */ ACTION_STR_MOVE_CLOSER_TV, - /* 0x80 */ ACTION_STR_CHECK3, -}; - class dKantera_icon_c; class dMeter2Draw_c : public dDlst_base_c { diff --git a/include/d/d_meter2_info.h b/include/d/d_meter2_info.h index bd88b02a6f..dd7d204c0e 100644 --- a/include/d/d_meter2_info.h +++ b/include/d/d_meter2_info.h @@ -33,6 +33,18 @@ enum dMeter2Info_warpStatus { /* 0x3 */ WARP_STATUS_DECIDED_e = 3, }; +enum dMeter2Info_UseButton { + METER2_USEBUTTON_A = 0x1, + METER2_USEBUTTON_B = 0x2, + METER2_USEBUTTON_X = 0x4, + METER2_USEBUTTON_Y = 0x8, + METER2_USEBUTTON_C = 0x10, + + METER2_USEBUTTON_R = 0x40, + + METER2_USEBUTTON_Z = 0x800, +}; + class dMeter2Info_c { public: class WarpInfo_c { @@ -169,7 +181,7 @@ public: void resetDirectUseItem() { mDirectUseItem = 0; } u16 getFloatingFlowID() { return mFloatingFlowID; } bool isFloatingMessageWakuVisible() { return mFloatingMessageWakuVisible; } - void onBlinkButton(int i_flag) { mBlinkButton |= i_flag; } + void onBlinkButton(int i_flag) { mBlinkButton |= (u16)i_flag; } bool isBlinkButton(int i_flag) { return (mBlinkButton & (u16)i_flag) != 0 ? true : false; } void resetBlinkButton() { mBlinkButton = 0; } s16 getFloatingMessageTimer() { return mFloatingMessageTimer; } @@ -193,7 +205,7 @@ public: void set2DHeight(f32 i_height) { m2DHeight = i_height; } void set2DPosH(f32 i_posH) { m2DPosH = i_posH; } void set2DPosV(f32 i_posV) { m2DPosV = i_posV; } - void onUseButton(int i_button) { mUseButton |= i_button; } + void onUseButton(int i_button) { mUseButton |= (u16)i_button; } f32 get2DWidth() { return m2DWidth; } f32 get2DHeight() { return m2DHeight; } u8 getTableMapRegionNo() { return mTableMapRegionNo; } diff --git a/include/d/d_msg_object.h b/include/d/d_msg_object.h index 8d91d20b29..2ddb5c410e 100644 --- a/include/d/d_msg_object.h +++ b/include/d/d_msg_object.h @@ -356,7 +356,7 @@ inline void dMsgObject_demoMessageGroup() { } inline bool dMsgObject_isTalkNowCheck() { - return dMsgObject_getMsgObjectClass()->getStatus() != 1 ? true : false; + return dMsgObject_getMsgObjectClass()->getStatus() == 1 ? false : true; } inline bool dMsgObject_isKillMessageFlag() { @@ -449,7 +449,7 @@ inline void dMsgObject_endFlowGroup() { } inline void dMsgObject_setSmellType(u8 type) { - dMsgObject_c::setSmellType(type); + dMsgObject_getMsgObjectClass()->setSmellType(type); } inline u8 dMsgObject_getSelectCursorPos() { @@ -485,7 +485,7 @@ inline void dMsgObject_setEquipBombInfo() { } inline bool dMsgObject_isHowlHearingMode() { - return dMsgObject_c::isHowlHearingMode(); + return dMsgObject_getMsgObjectClass()->isHowlHearingMode(); } inline void dMsgObject_onMsgSend() { diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 501376909c..00e46bb3ad 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -1266,6 +1266,33 @@ struct FuncTable { dStage_Func function; }; +enum dStage_SaveTbl { + dStage_SaveTbl_ORDON, + dStage_SaveTbl_PRISON, + dStage_SaveTbl_FARON, + dStage_SaveTbl_ELDIN, + dStage_SaveTbl_LANAYRU, + dStage_SaveTbl_FIELD = 6, + dStage_SaveTbl_GROVE, + dStage_SaveTbl_SNOWPEAK, + dStage_SaveTbl_CASTLE_TOWN, + dStage_SaveTbl_DESERT, + dStage_SaveTbl_FISHING_POND, + + dStage_SaveTbl_LV1 = 16, + dStage_SaveTbl_LV2, + dStage_SaveTbl_LV3, + dStage_SaveTbl_LV4, + dStage_SaveTbl_LV5, + dStage_SaveTbl_LV6, + dStage_SaveTbl_LV7, + dStage_SaveTbl_LV8, + dStage_SaveTbl_LV9, + dStage_SaveTbl_CAVE1, + dStage_SaveTbl_CAVE2, + dStage_SaveTbl_GROTTO, +}; + const char* dStage_getName2(s16, s8); dStage_objectNameInf* dStage_searchName(const char*); static int dStage_stageKeepTresureInit(dStage_dt_c*, void*, int, void*); @@ -1417,7 +1444,7 @@ inline u32 dStage_stagInfo_ChkKeyDisp(stage_stag_info_class* pstag) { return pstag->field_0x09 & 1; } -inline u8 dStage_stagInfo_GetWolfDashType(stage_stag_info_class* pstag) { +inline int dStage_stagInfo_GetWolfDashType(stage_stag_info_class* pstag) { return (pstag->field_0x09 >> 6) & 3; } diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index a2f5c5c796..d743c143f2 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -164,6 +164,7 @@ enum dEvt_Condition_e { dEvtCnd_CANDEMO_e = 0x0002, dEvtCnd_CANDOOR_e = 0x0004, dEvtCnd_CANGETITEM_e = 0x0008, + dEvtCnd_10_e = 0x0010, dEvtCnd_CANTALKITEM_e = 0x0020, dEvtCnd_40_e = 0x0040, dEvtCnd_DUMMY = 0x8000, @@ -337,10 +338,10 @@ public: cXyz& getDownPos() { return mDownPos; } cXyz& getHeadLockPos() { return mHeadLockPos; } - void onCutDownHitFlg() { mFlags |= fopEn_flag_CutDownHit; } - void onWolfBiteDamage() { mFlags |= fopEn_flag_WolfBiteDamage; } - void onWolfDownStartFlg() { mFlags |= (fopEn_flag_WolfDownPull | fopEn_flag_WolfDownStart); } - void onWolfDownPullEndFlg() { mFlags |= fopEn_flag_WolfDownPullEnd; } + void onCutDownHitFlg() { mFlags |= (u16)fopEn_flag_CutDownHit; } + void onWolfBiteDamage() { mFlags |= (u16)fopEn_flag_WolfBiteDamage; } + void onWolfDownStartFlg() { mFlags |= (u16)(fopEn_flag_WolfDownPull | fopEn_flag_WolfDownStart); } + void onWolfDownPullEndFlg() { mFlags |= (u16)fopEn_flag_WolfDownPullEnd; } void onWolfNoLock() { mFlags |= (u16)fopEn_flag_WolfNoLock; } void onDownFlg() { mFlags |= (u16)fopEn_flag_Down; } void onHeadLockFlg() { mFlags |= (u16)fopEn_flag_HeadLock; } @@ -365,10 +366,10 @@ public: void setMidnaBindMode(u8 i_bindMode) { mMidnaBindMode = i_bindMode; } void setMidnaBindID(u8 i_idx, u32 i_bindID) { mMidnaBindID[i_idx] = i_bindID; } - void setThrowModeCatch() { mThrowMode |= fopEn_throwMode_Catch; } - void setThrowModeDash() { mThrowMode |= fopEn_throwMode_Dash; } - void setThrowModeThrowRight() { mThrowMode |= fopEn_throwMode_ThrowRight; } - void setThrowModeThrowLeft() { mThrowMode |= fopEn_throwMode_ThrowLeft; } + void setThrowModeCatch() { mThrowMode |= (u8)fopEn_throwMode_Catch; } + void setThrowModeDash() { mThrowMode |= (u8)fopEn_throwMode_Dash; } + void setThrowModeThrowRight() { mThrowMode |= (u8)fopEn_throwMode_ThrowRight; } + void setThrowModeThrowLeft() { mThrowMode |= (u8)fopEn_throwMode_ThrowLeft; } void setDownPos(const cXyz* i_pos) { mDownPos = *i_pos; } void setHeadLockPos(const cXyz* i_pos) { mHeadLockPos = *i_pos; } diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index e03eb6e1ca..ac45c8f443 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -297,6 +297,8 @@ struct mDoExt_MtxCalcAnmBlendTbl mDoExt_MtxCalcAnmBlendTbl(int num, mDoExt_AnmRatioPack* anmRatio) { mNum = num; mAnmRatio = anmRatio; + + f32 var_f31 = 0.0f; for (int i = 0; i < mNum; i++) { if (!mAnmRatio[i].getAnmTransform()) { mAnmRatio[i].setRatio(0.0f); diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index 01085fb9a0..aa8e3c7eca 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -91,7 +91,7 @@ inline void cMtx_multVec(const Mtx mtx, const Vec* src, Vec* dst) { mDoMtx_multVec(mtx, src, dst); } -inline void cMtx_multVecSR(Mtx mtx, const Vec* src, Vec* dst) { +inline void cMtx_multVecSR(const Mtx mtx, const Vec* src, Vec* dst) { mDoMtx_multVecSR(mtx, src, dst); } diff --git a/src/d/actor/d_a_alink.cpp b/src/d/actor/d_a_alink.cpp index 650409f04c..e83d187c8f 100644 --- a/src/d/actor/d_a_alink.cpp +++ b/src/d/actor/d_a_alink.cpp @@ -48,7 +48,15 @@ #include "d/actor/d_a_tag_mstop.h" #include "d/actor/d_a_tag_mwait.h" #include "d/actor/d_a_canoe.h" +#include "d/actor/d_a_ni.h" +#include "d/d_s_play.h" +#include "res/Object/Alink.h" + +static int daAlink_Create(fopAc_ac_c* i_this); +static int daAlink_Delete(daAlink_c* i_this); +static int daAlink_Execute(daAlink_c* i_this); +static int daAlink_Draw(daAlink_c* i_this); static fopAc_ac_c* daAlink_searchTagKandelaar(fopAc_ac_c* i_actor, void* i_data); BOOL daAlink_c::getE3Zhint() { @@ -57,6 +65,10 @@ BOOL daAlink_c::getE3Zhint() { #include "d/actor/d_a_alink_HIO.inc" +#if DEBUG +static BOOL l_debugMode; +#endif + static const char l_wArcName[] = "Wmdl"; static const char l_bArcName[] = "Bmdl"; @@ -79,14 +91,15 @@ const char* daAlink_c::getAlinkArcName() { return l_arcName; } -static void daAlink_tgHitCallback(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, fopAc_ac_c* param_2, - dCcD_GObjInf* param_3) { - static_cast(param_0)->tgHitCallback(param_2, param_1, param_3); +static void daAlink_tgHitCallback(fopAc_ac_c* i_tgActor, dCcD_GObjInf* i_tgObjInf, fopAc_ac_c* i_atActor, + dCcD_GObjInf* i_atObjInf) { + static_cast(i_tgActor)->tgHitCallback(i_atActor, i_tgObjInf, i_atObjInf); } -static void daAlink_coHitCallback(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, fopAc_ac_c* param_2, - dCcD_GObjInf* param_3) { - static_cast(param_0)->coHitCallback(param_2, param_1); +static void daAlink_coHitCallback(fopAc_ac_c* i_coActorA, dCcD_GObjInf* i_coObjInfA, fopAc_ac_c* i_coActorB, + dCcD_GObjInf* i_coObjInfB) { + UNUSED(i_coObjInfB); + static_cast(i_coActorA)->coHitCallback(i_coActorB, i_coObjInfA); } static cXyz l_waitBaseAnime(1.24279f, 102.00054f, 5.0f); @@ -647,548 +660,798 @@ f32 l_jumpTop; #endif daAlink_BckData const daAlink_c::m_mainBckShield[20] = { - {0x0025, 0x0025}, {0x0023, 0x0023}, {0x0012, 0x001B}, {0x0010, 0x001B}, {0x0021, 0x0021}, - {0x001E, 0x001E}, {0x003C, 0x003C}, {0x002C, 0x002C}, {0x003E, 0x003E}, {0x002E, 0x002E}, - {0x0030, 0x0030}, {0x0028, 0x0028}, {0x0032, 0x0032}, {0x002A, 0x002A}, {0x0274, 0x001B}, - {0x0020, 0x001B}, {0x001B, 0x001B}, {0x0026, 0x0026}, {0x0277, 0x001B}, {0x00CD, 0x001B}, + {dRes_ID_ALANM_BCK_ATRFWS_e, dRes_ID_ALANM_BCK_ATRFWS_e}, + {dRes_ID_ALANM_BCK_ATRFDS_e, dRes_ID_ALANM_BCK_ATRFDS_e}, + {dRes_ID_ALANM_BCK_ATBW_e, dRes_ID_ALANM_BCK_ATLS_e}, + {dRes_ID_ALANM_BCK_ATBD_e, dRes_ID_ALANM_BCK_ATLS_e}, + {dRes_ID_ALANM_BCK_ATRBWS_e, dRes_ID_ALANM_BCK_ATRBWS_e}, + {dRes_ID_ALANM_BCK_ATRBDS_e, dRes_ID_ALANM_BCK_ATRBDS_e}, + {dRes_ID_ALANM_BCK_ATSWLS_e, dRes_ID_ALANM_BCK_ATSWLS_e}, + {dRes_ID_ALANM_BCK_ATRSWLS_e, dRes_ID_ALANM_BCK_ATRSWLS_e}, + {dRes_ID_ALANM_BCK_ATSWRS_e, dRes_ID_ALANM_BCK_ATSWRS_e}, + {dRes_ID_ALANM_BCK_ATRSWRS_e, dRes_ID_ALANM_BCK_ATRSWRS_e}, + {dRes_ID_ALANM_BCK_ATSDLS_e, dRes_ID_ALANM_BCK_ATSDLS_e}, + {dRes_ID_ALANM_BCK_ATRSDLS_e, dRes_ID_ALANM_BCK_ATRSDLS_e}, + {dRes_ID_ALANM_BCK_ATSDRS_e, dRes_ID_ALANM_BCK_ATSDRS_e}, + {dRes_ID_ALANM_BCK_ATRSDRS_e, dRes_ID_ALANM_BCK_ATRSDRS_e}, + {dRes_ID_ALANM_BCK_WALKH_e, dRes_ID_ALANM_BCK_ATLS_e}, + {dRes_ID_ALANM_BCK_ATRBWH_e, dRes_ID_ALANM_BCK_ATLS_e}, + {dRes_ID_ALANM_BCK_ATLS_e, dRes_ID_ALANM_BCK_ATLS_e}, + {dRes_ID_ALANM_BCK_ATRS_e, dRes_ID_ALANM_BCK_ATRS_e}, + {dRes_ID_ALANM_BCK_WALKS_e, dRes_ID_ALANM_BCK_ATLS_e}, + {dRes_ID_ALANM_BCK_DASHS_e, dRes_ID_ALANM_BCK_ATLS_e}, }; daAlink_BckData const daAlink_c::m_mainBckSword[5] = { - {0x001A, 0x001A}, {0x001C, 0x001C}, {0x0277, 0x0277}, {0x00CD, 0x00CD}, {0x0243, 0x0244}, + {dRes_ID_ALANM_BCK_ATL_e, dRes_ID_ALANM_BCK_ATL_e}, + {dRes_ID_ALANM_BCK_ATR_e, dRes_ID_ALANM_BCK_ATR_e}, + {dRes_ID_ALANM_BCK_WALKS_e, dRes_ID_ALANM_BCK_WALKS_e}, + {dRes_ID_ALANM_BCK_DASHS_e, dRes_ID_ALANM_BCK_DASHS_e}, + {dRes_ID_ALANM_BCK_SWIMWAIT_e, dRes_ID_ALANM_BCK_SWIMWAITS_e}, }; daAlink_BckData const daAlink_c::m_mainBckFishing[28] = { - {0x0025, 0x0273}, {0x0023, 0x00C8}, {0x0012, 0x0273}, {0x0010, 0x00C8}, {0x0021, 0x0273}, - {0x001E, 0x00C8}, {0x003C, 0x0273}, {0x002C, 0x0273}, {0x003E, 0x0273}, {0x002E, 0x0273}, - {0x0030, 0x00C8}, {0x0028, 0x00C8}, {0x0032, 0x00C8}, {0x002A, 0x00C8}, {0x0274, 0x0273}, - {0x0020, 0x0273}, {0x001A, 0x0273}, {0x001C, 0x0273}, {0x0277, 0x0273}, {0x00CD, 0x00C8}, - {0x0243, 0x0244}, {0x0233, 0x0273}, {0x0234, 0x0273}, {0x0233, 0x0273}, {0x0234, 0x0273}, - {0x026A, 0x0273}, {0x0256, 0x0273}, {0x0257, 0x0273}, + {dRes_ID_ALANM_BCK_ATRFWS_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_ATRFDS_e, dRes_ID_ALANM_BCK_DASHFISHR_e}, + {dRes_ID_ALANM_BCK_ATBW_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_ATBD_e, dRes_ID_ALANM_BCK_DASHFISHR_e}, + {dRes_ID_ALANM_BCK_ATRBWS_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_ATRBDS_e, dRes_ID_ALANM_BCK_DASHFISHR_e}, + {dRes_ID_ALANM_BCK_ATSWLS_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_ATRSWLS_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_ATSWRS_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_ATRSWRS_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_ATSDLS_e, dRes_ID_ALANM_BCK_DASHFISHR_e}, + {dRes_ID_ALANM_BCK_ATRSDLS_e, dRes_ID_ALANM_BCK_DASHFISHR_e}, + {dRes_ID_ALANM_BCK_ATSDRS_e, dRes_ID_ALANM_BCK_DASHFISHR_e}, + {dRes_ID_ALANM_BCK_ATRSDRS_e, dRes_ID_ALANM_BCK_DASHFISHR_e}, + {dRes_ID_ALANM_BCK_WALKH_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_ATRBWH_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_ATL_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_ATR_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_WALKS_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_DASHS_e, dRes_ID_ALANM_BCK_DASHFISHR_e}, + {dRes_ID_ALANM_BCK_SWIMWAIT_e, dRes_ID_ALANM_BCK_SWIMWAITS_e}, + {dRes_ID_ALANM_BCK_STEPL_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_STEPR_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_STEPL_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_STEPR_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_WAITS_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_WAITB_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, + {dRes_ID_ALANM_BCK_WAITBTOA_e, dRes_ID_ALANM_BCK_WALKFISHR_e}, }; -daAlink_AnmData const daAlink_c::m_anmDataTable[414] = { - {37, 36, 254, 254, 0, 232, 0}, - {35, 34, 254, 254, 0, 232, 0}, - {18, 18, 254, 254, 0, 232, 0}, - {16, 16, 254, 254, 0, 232, 0}, - {33, 31, 254, 254, 0, 232, 0}, - {30, 29, 254, 254, 0, 232, 0}, - {60, 59, 4, 10, 0, 232, 0}, - {44, 43, 4, 10, 0, 232, 0}, - {62, 61, 4, 10, 0, 232, 0}, - {46, 45, 4, 10, 0, 232, 0}, - {48, 47, 4, 10, 0, 232, 0}, - {40, 39, 4, 10, 0, 232, 0}, - {50, 49, 4, 10, 0, 232, 0}, - {42, 41, 4, 10, 0, 232, 0}, - {628, 628, 254, 254, 0, 232, 0}, - {32, 26, 254, 254, 0, 0, 0}, - {26, 14, 254, 254, 0, 232, 0}, - {28, 14, 254, 254, 0, 232, 0}, - {631, 631, 4, 10, 0, 0, 0}, - {205, 197, 4, 10, 0, 232, 0}, - {579, 579, 254, 254, 0, 345, 0}, - {563, 563, 4, 10, 0, 0, 0}, - {564, 564, 4, 10, 0, 0, 0}, - {563, 604, 4, 10, 0, 0, 0}, - {564, 604, 4, 10, 0, 0, 0}, - {618, 618, 4, 10, 0, 0, 0}, - {598, 598, 1, 6, 0, 232, 0}, - {599, 599, 1, 6, 0, 351, 0}, - {198, 198, 1, 6, 0, 232, 0}, - {54, 54, 254, 254, 0, 328, 0}, - {56, 56, 254, 254, 0, 328, 0}, - {53, 53, 1, 6, 0, 232, 0}, - {55, 55, 1, 6, 0, 232, 0}, - {52, 52, 254, 254, 0, 328, 0}, - {51, 51, 1, 6, 0, 232, 0}, - {519, 519, 254, 254, 0, 328, 0}, - {521, 521, 254, 254, 0, 223, 0}, - {520, 520, 1, 6, 38, 335, 0}, - {518, 518, 4, 10, 0, 328, 0}, - {517, 517, 4, 10, 0, 232, 0}, - {559, 559, 254, 254, 0, 232, 0}, - {123, 123, 254, 254, 0, 0, 0}, - {126, 126, 254, 6, 0, 232, 0}, - {19, 19, 254, 6, 0, 232, 0}, - {21, 21, 254, 6, 0, 232, 0}, - {124, 124, 254, 6, 0, 232, 0}, - {23, 23, 254, 6, 0, 232, 0}, - {24, 24, 254, 6, 0, 232, 0}, - {20, 20, 1, 6, 125, 233, 0}, - {421, 421, 254, 254, 0, 327, 0}, - {419, 419, 254, 254, 0, 327, 0}, - {420, 420, 254, 254, 0, 223, 0}, - {436, 436, 254, 254, 0, 223, 0}, - {437, 437, 254, 254, 0, 223, 0}, - {617, 617, 254, 254, 0, 223, 0}, - {503, 503, 254, 254, 10, 333, 0}, - {502, 502, 254, 254, 4, 232, 0}, - {501, 501, 254, 254, 4, 232, 0}, - {500, 500, 0, 5, 11, 332, 0}, - {499, 499, 254, 254, 0, 232, 0}, - {498, 498, 0, 5, 0, 232, 0}, - {510, 510, 254, 254, 0, 223, 0}, - {511, 511, 254, 254, 0, 223, 0}, - {509, 509, 254, 254, 0, 223, 0}, - {225, 225, 4, 10, 0, 223, 0}, - {226, 226, 4, 10, 0, 223, 0}, - {565, 565, 4, 5, 0, 232, 0}, - {566, 566, 4, 5, 0, 232, 0}, - {562, 562, 4, 5, 0, 232, 0}, - {418, 418, 4, 5, 0, 232, 0}, - {416, 416, 4, 5, 0, 232, 0}, - {417, 417, 4, 5, 0, 232, 0}, - {614, 614, 4, 5, 0, 0, 0}, - {629, 629, 4, 5, 0, 0, 0}, - {630, 630, 4, 5, 0, 0, 0}, - {202, 202, 4, 5, 0, 232, 0}, - {203, 203, 4, 5, 0, 232, 0}, - {781, 614, 4, 5, 0, 0, 0}, - {221, 221, 4, 5, 0, 258, 0}, - {435, 435, 4, 5, 0, 261, 0}, - {149, 149, 100, 5, 36, 272, 0}, - {568, 568, 4, 5, 55, 338, 0}, - {569, 569, 4, 5, 56, 0, 0}, - {214, 214, 4, 10, 88, 300, 0}, - {587, 587, 4, 5, 37, 0, 0}, - {613, 613, 4, 5, 0, 232, 0}, - {560, 560, 4, 5, 109, 336, 0}, - {561, 561, 4, 5, 109, 336, 0}, - {373, 373, 4, 5, 110, 321, 0}, - {374, 374, 4, 5, 110, 321, 0}, - {588, 588, 4, 5, 114, 0, 0}, - {589, 589, 4, 5, 115, 0, 0}, - {512, 512, 254, 254, 0, 223, 0}, - {513, 513, 254, 254, 0, 223, 0}, - {227, 227, 4, 10, 0, 223, 0}, - {228, 228, 4, 10, 0, 223, 0}, - {624, 624, 254, 254, 16, 357, 0}, - {623, 623, 4, 5, 17, 356, 0}, - {127, 127, 100, 6, 46, 259, 0}, - {153, 153, 0, 6, 47, 275, 0}, - {154, 154, 0, 6, 48, 276, 0}, - {143, 143, 100, 6, 49, 267, 0}, - {144, 144, 100, 6, 49, 267, 0}, - {132, 132, 100, 6, 50, 262, 0}, - {133, 133, 100, 6, 51, 263, 0}, - {134, 134, 100, 5, 0, 261, 0}, - {138, 138, 0, 5, 0, 223, 0}, - {137, 137, 100, 5, 0, 223, 0}, - {139, 139, 100, 5, 52, 264, 0}, - {136, 136, 0, 5, 0, 223, 0}, - {135, 135, 100, 5, 0, 223, 0}, - {155, 155, 0, 6, 89, 277, 0}, - {156, 156, 0, 6, 89, 277, 0}, - {152, 152, 100, 6, 60, 274, 0}, - {151, 151, 100, 6, 61, 273, 0}, - {159, 159, 100, 6, 58, 280, 0}, - {158, 158, 100, 6, 59, 279, 0}, - {164, 164, 0, 6, 0, 232, 0}, - {165, 165, 100, 6, 0, 232, 0}, - {166, 166, 100, 6, 0, 232, 0}, - {170, 170, 0, 5, 0, 261, 0}, - {167, 167, 0, 5, 90, 285, 0}, - {168, 168, 0, 5, 0, 286, 0}, - {169, 169, 100, 5, 18, 287, 0}, - {142, 142, 0, 6, 127, 266, 0}, - {140, 140, 0, 6, 128, 265, 0}, - {141, 141, 0, 6, 0, 232, 0}, - {174, 174, 1, 6, 39, 234, 0}, - {172, 172, 1, 6, 39, 234, 0}, - {189, 189, 1, 6, 39, 234, 0}, - {190, 190, 1, 6, 39, 234, 0}, - {178, 178, 254, 254, 40, 248, 0}, - {175, 175, 254, 254, 40, 248, 0}, - {180, 180, 254, 254, 40, 248, 0}, - {182, 182, 254, 254, 40, 248, 0}, - {179, 179, 254, 254, 42, 292, 0}, - {176, 176, 254, 254, 43, 290, 0}, - {181, 181, 254, 254, 44, 293, 0}, - {183, 183, 254, 254, 44, 293, 0}, - {171, 171, 1, 6, 39, 234, 0}, - {431, 431, 1, 6, 39, 234, 0}, - {432, 432, 254, 254, 0, 223, 0}, - {324, 324, 0, 6, 6, 305, 0}, - {325, 325, 0, 10, 7, 306, 0}, - {567, 567, 4, 10, 28, 337, 0}, - {591, 591, 254, 254, 0, 223, 0}, - {592, 592, 254, 254, 0, 223, 0}, - {593, 593, 254, 254, 0, 223, 0}, - {594, 594, 254, 254, 0, 223, 0}, - {372, 372, 254, 254, 0, 223, 0}, - {378, 378, 254, 254, 0, 223, 0}, - {376, 376, 254, 254, 0, 223, 0}, - {377, 377, 254, 254, 0, 223, 0}, - {430, 430, 254, 254, 0, 223, 0}, - {428, 428, 254, 254, 0, 223, 0}, - {429, 429, 254, 254, 0, 223, 0}, - {425, 425, 254, 254, 0, 223, 0}, - {423, 423, 254, 254, 0, 223, 0}, - {424, 424, 254, 254, 0, 223, 0}, - {427, 427, 254, 254, 0, 223, 0}, - {426, 426, 254, 254, 0, 223, 0}, - {106, 106, 3, 9, 0, 232, 0}, - {112, 112, 3, 9, 0, 232, 0}, - {108, 108, 3, 9, 0, 232, 0}, - {109, 109, 3, 9, 0, 232, 0}, - {110, 110, 3, 9, 0, 232, 0}, - {111, 111, 3, 9, 0, 232, 0}, - {107, 107, 3, 9, 92, 254, 0}, - {527, 527, 3, 9, 0, 232, 0}, - {528, 528, 3, 9, 0, 232, 0}, - {522, 522, 3, 9, 0, 232, 0}, - {524, 524, 3, 9, 0, 232, 0}, - {525, 525, 3, 9, 0, 232, 0}, - {526, 526, 3, 9, 0, 232, 0}, - {523, 523, 3, 9, 0, 232, 0}, - {366, 366, 254, 254, 24, 313, 0}, - {369, 369, 254, 254, 25, 316, 0}, - {368, 368, 254, 254, 0, 315, 0}, - {379, 379, 254, 254, 26, 322, 0}, - {365, 365, 254, 254, 27, 312, 0}, - {367, 367, 254, 254, 0, 314, 0}, - {95, 95, 254, 254, 0, 223, 0}, - {604, 604, 4, 10, 1, 352, 0}, - {596, 596, 4, 10, 1, 349, 0}, - {585, 585, 4, 10, 0, 223, 0}, - {620, 620, 1, 6, 12, 355, 0}, - {157, 157, 1, 6, 13, 278, 0}, - {82, 82, 254, 254, 0, 232, 0}, - {632, 632, 1, 6, 0, 223, 0}, - {557, 557, 254, 254, 0, 223, 0}, - {555, 555, 254, 254, 0, 223, 0}, - {558, 558, 254, 254, 0, 223, 0}, - {556, 556, 254, 254, 0, 223, 0}, - {574, 574, 254, 254, 21, 342, 0}, - {578, 578, 254, 254, 22, 344, 0}, - {57, 57, 254, 254, 0, 232, 0}, - {58, 58, 254, 254, 0, 232, 0}, - {17, 17, 254, 254, 0, 232, 0}, - {570, 570, 254, 254, 3, 232, 0}, - {573, 573, 254, 254, 23, 341, 0}, - {577, 577, 254, 254, 0, 232, 0}, - {576, 576, 254, 254, 0, 232, 0}, - {193, 193, 1, 6, 39, 234, 0}, - {192, 192, 1, 6, 39, 234, 0}, - {194, 194, 1, 6, 39, 234, 0}, - {195, 195, 1, 6, 39, 234, 0}, - {196, 196, 1, 6, 39, 234, 0}, - {87, 87, 254, 254, 77, 247, 0}, - {86, 86, 254, 254, 78, 246, 0}, - {85, 85, 254, 254, 79, 245, 0}, - {361, 361, 254, 254, 0, 308, 0}, - {362, 362, 254, 254, 0, 310, 0}, - {362, 618, 254, 254, 0, 307, 0}, - {362, 381, 254, 254, 0, 307, 0}, - {586, 586, 4, 10, 41, 346, 0}, - {595, 595, 254, 254, 0, 348, 0}, - {619, 619, 254, 254, 0, 223, 0}, - {603, 602, 254, 5, 0, 223, 0}, - {603, 603, 0, 254, 0, 223, 0}, - {619, 533, 254, 5, 0, 223, 0}, - {619, 534, 0, 254, 0, 223, 0}, - {619, 531, 254, 5, 0, 223, 0}, - {619, 532, 0, 254, 0, 223, 0}, - {619, 103, 254, 5, 0, 223, 0}, - {90, 90, 2, 254, 0, 304, 0}, - {91, 91, 2, 254, 0, 304, 0}, - {92, 92, 2, 254, 0, 223, 0}, - {94, 94, 2, 5, 120, 249, 0}, - {491, 491, 254, 254, 0, 223, 0}, - {506, 506, 2, 5, 0, 223, 0}, - {508, 508, 2, 5, 0, 223, 0}, - {434, 434, 2, 5, 0, 223, 0}, - {217, 217, 4, 10, 30, 301, 0}, - {218, 218, 4, 10, 31, 302, 0}, - {215, 215, 3, 10, 0, 223, 0}, - {216, 216, 3, 10, 0, 223, 0}, - {219, 219, 254, 254, 0, 223, 0}, - {220, 220, 254, 254, 0, 223, 0}, - {492, 492, 254, 254, 29, 223, 0}, - {529, 529, 1, 6, 0, 223, 0}, - {484, 484, 1, 6, 0, 223, 0}, - {485, 485, 1, 6, 0, 223, 0}, - {552, 552, 254, 254, 0, 223, 0}, - {544, 544, 254, 254, 0, 223, 0}, - {543, 543, 254, 254, 0, 223, 0}, - {549, 549, 254, 254, 0, 223, 0}, - {547, 547, 254, 254, 0, 223, 0}, - {545, 545, 254, 254, 0, 223, 0}, - {546, 546, 254, 254, 0, 223, 0}, - {548, 548, 254, 254, 0, 223, 0}, - {551, 551, 100, 254, 0, 223, 0}, - {550, 550, 100, 254, 0, 223, 0}, - {530, 530, 254, 254, 0, 223, 0}, - {102, 102, 254, 254, 53, 252, 0}, - {105, 105, 254, 254, 54, 253, 0}, - {625, 625, 4, 10, 0, 358, 0}, - {72, 72, 3, 254, 62, 238, 0}, - {70, 70, 3, 254, 63, 236, 0}, - {71, 71, 3, 254, 64, 237, 0}, - {69, 69, 3, 254, 65, 235, 0}, - {75, 75, 3, 254, 66, 241, 0}, - {76, 76, 3, 5, 67, 242, 0}, - {73, 73, 3, 5, 68, 239, 0}, - {78, 78, 3, 254, 69, 243, 0}, - {79, 79, 3, 254, 70, 244, 0}, - {74, 74, 3, 254, 71, 240, 0}, - {77, 77, 3, 254, 0, 223, 0}, - {438, 438, 0, 10, 0, 223, 0}, - {495, 495, 0, 9, 0, 223, 0}, - {493, 493, 0, 9, 0, 223, 0}, - {494, 494, 0, 9, 0, 223, 0}, - {371, 371, 2, 254, 74, 319, 0}, - {370, 370, 2, 254, 76, 318, 0}, - {97, 97, 2, 254, 75, 251, 0}, - {621, 621, 2, 254, 75, 251, 0}, - {605, 605, 1, 6, 14, 355, 0}, - {610, 610, 1, 6, 15, 353, 0}, - {483, 483, 254, 254, 0, 223, 0}, - {212, 212, 4, 10, 80, 298, 0}, - {213, 213, 4, 10, 81, 299, 0}, - {571, 571, 254, 254, 82, 339, 0}, - {572, 572, 254, 254, 83, 340, 0}, - {114, 114, 3, 9, 0, 255, 0}, - {116, 116, 3, 9, 85, 256, 0}, - {115, 115, 3, 9, 0, 232, 0}, - {113, 113, 3, 9, 0, 232, 0}, - {117, 117, 3, 9, 0, 232, 0}, - {119, 119, 3, 9, 86, 257, 0}, - {120, 120, 3, 9, 87, 257, 0}, - {28, 121, 3, 9, 0, 232, 0}, - {122, 122, 3, 9, 0, 232, 0}, - {118, 118, 254, 254, 0, 304, 0}, - {222, 222, 4, 10, 84, 303, 0}, - {224, 224, 254, 254, 40, 248, 0}, - {8, 8, 0, 5, 0, 232, 0}, - {554, 554, 254, 254, 0, 223, 0}, - {553, 553, 254, 254, 0, 223, 0}, - {394, 394, 1, 6, 0, 232, 0}, - {395, 395, 1, 6, 0, 232, 0}, - {396, 396, 254, 254, 0, 232, 0}, - {384, 384, 1, 6, 0, 232, 0}, - {385, 385, 1, 6, 0, 232, 0}, - {386, 386, 1, 6, 0, 232, 0}, - {388, 388, 1, 6, 0, 232, 0}, - {392, 392, 1, 6, 0, 232, 0}, - {393, 393, 1, 6, 0, 232, 0}, - {390, 390, 1, 6, 0, 232, 0}, - {391, 391, 1, 6, 0, 232, 0}, - {387, 387, 1, 6, 0, 232, 0}, - {389, 389, 1, 6, 0, 232, 0}, - {398, 398, 1, 6, 0, 232, 0}, - {399, 399, 1, 6, 0, 232, 0}, - {400, 400, 1, 6, 0, 232, 0}, - {401, 401, 1, 6, 0, 232, 0}, - {404, 404, 1, 6, 0, 232, 0}, - {405, 405, 1, 6, 0, 232, 0}, - {402, 402, 1, 6, 0, 232, 0}, - {403, 403, 1, 6, 0, 232, 0}, - {504, 504, 254, 254, 0, 334, 0}, - {4142, 4142, 0, 5, 0, 223, 0}, - {4141, 4141, 0, 5, 0, 223, 0}, - {4106, 4106, 254, 254, 0, 223, 0}, - {4104, 4104, 254, 254, 0, 223, 0}, - {4105, 4105, 254, 254, 0, 223, 0}, - {4103, 4103, 254, 254, 0, 223, 0}, - {4129, 4129, 254, 254, 0, 223, 0}, - {4131, 4131, 254, 254, 0, 223, 0}, - {4130, 4130, 254, 254, 0, 223, 0}, - {4132, 4132, 254, 254, 0, 223, 0}, - {4133, 4133, 254, 254, 94, 4113, 0}, - {4136, 4136, 254, 254, 0, 223, 0}, - {4137, 4137, 254, 254, 0, 223, 0}, - {4134, 4134, 254, 254, 95, 4114, 0}, - {4135, 4135, 254, 254, 95, 4114, 0}, - {4138, 4138, 254, 254, 99, 4115, 0}, - {4121, 4121, 254, 254, 0, 223, 0}, - {4123, 4123, 254, 254, 97, 4110, 0}, - {4124, 4124, 254, 254, 98, 4111, 0}, - {4122, 4122, 254, 254, 96, 4109, 0}, - {4128, 4128, 254, 254, 95, 4114, 0}, - {4125, 4125, 254, 254, 101, 4112, 0}, - {4119, 4119, 254, 254, 100, 4108, 0}, - {4120, 4120, 254, 254, 100, 4108, 0}, - {4139, 4139, 254, 254, 0, 223, 0}, - {4140, 4140, 254, 254, 0, 223, 0}, - {4117, 4117, 254, 254, 102, 4107, 0}, - {4118, 4118, 254, 254, 102, 4107, 0}, - {4102, 4102, 254, 254, 0, 223, 0}, - {4116, 4116, 254, 254, 0, 223, 0}, - {4126, 4126, 0, 5, 0, 223, 0}, - {4127, 4127, 254, 254, 0, 223, 0}, - {177, 177, 254, 254, 93, 291, 0}, - {412, 412, 254, 5, 0, 232, 0}, - {413, 413, 254, 5, 0, 232, 0}, - {406, 406, 0, 5, 0, 232, 0}, - {411, 411, 0, 5, 0, 232, 0}, - {410, 410, 0, 5, 0, 232, 0}, - {409, 409, 0, 5, 0, 232, 0}, - {407, 407, 254, 5, 0, 232, 0}, - {408, 408, 254, 5, 0, 232, 0}, - {8204, 8204, 3, 9, 0, 232, 0}, - {8205, 8205, 3, 9, 0, 232, 0}, - {8206, 8206, 3, 9, 0, 232, 0}, - {8207, 8207, 100, 254, 0, 232, 0}, - {8201, 8201, 100, 9, 103, 232, 0}, - {8202, 8202, 100, 9, 104, 232, 0}, - {8203, 8203, 100, 10, 105, 8200, 0}, - {8208, 8208, 0, 5, 0, 223, 0}, - {20493, 20493, 1, 6, 0, 232, 0}, - {20494, 20494, 1, 6, 0, 232, 0}, - {20490, 20490, 3, 9, 0, 232, 0}, - {20491, 20491, 3, 9, 0, 232, 0}, - {20492, 20492, 100, 254, 0, 232, 0}, - {20487, 20487, 100, 9, 106, 232, 0}, - {20488, 20488, 100, 9, 107, 232, 0}, - {20489, 20489, 100, 10, 108, 20495, 0}, - {515, 515, 2, 5, 111, 232, 0}, - {516, 516, 2, 5, 112, 232, 0}, - {363, 363, 2, 10, 113, 309, 0}, - {606, 606, 3, 9, 39, 234, 0}, - {486, 486, 3, 9, 40, 248, 0}, - {487, 487, 3, 9, 40, 248, 0}, - {422, 422, 4, 5, 116, 330, 0}, - {614, 362, 254, 254, 0, 310, 0}, - {12292, 12292, 1, 6, 0, 12291, 0}, - {101, 101, 254, 254, 0, 223, 0}, - {98, 98, 3, 9, 0, 232, 0}, - {100, 100, 3, 9, 0, 232, 0}, - {99, 99, 3, 9, 0, 232, 0}, - {615, 615, 4, 10, 121, 354, 0}, - {208, 208, 4, 10, 126, 295, 0}, - {375, 375, 254, 254, 0, 223, 0}, - {633, 633, 4, 10, 0, 359, 0}, - {634, 634, 4, 10, 0, 307, 0}, - {207, 207, 0, 6, 0, 232, 0}, - {162, 162, 100, 6, 129, 283, 0}, - {163, 163, 100, 6, 129, 232, 0}, - {160, 160, 100, 6, 131, 281, 0}, - {161, 161, 100, 6, 132, 282, 0}, - {24587, 24587, 0, 10, 133, 24585, 0}, - {24588, 24588, 0, 5, 0, 232, 0}, - {24586, 24586, 100, 5, 0, 24584, 0}, - {28682, 28682, 0, 6, 0, 232, 0}, - {28683, 28683, 0, 6, 0, 232, 0}, - {28684, 28684, 0, 6, 0, 232, 0}, - {28686, 28686, 0, 6, 0, 232, 0}, - {28685, 28685, 0, 6, 0, 232, 0}, - {28680, 28680, 0, 5, 134, 28688, 0}, - {28681, 28681, 0, 5, 0, 28689, 0}, - {614, 28687, 4, 5, 135, 28690, 0}, - {415, 415, 254, 254, 0, 223, 0}, - {414, 414, 254, 254, 0, 223, 0}, - {490, 490, 254, 254, 136, 331, 0}, - {11, 11, 254, 254, 137, 231, 0}, +daAlink_AnmData const daAlink_c::m_anmDataTable[daAlink_c::ANM_MAX] = { + {dRes_ID_ALANM_BCK_ATRFWS_e, dRes_ID_ALANM_BCK_ATRFW_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATRFDS_e, dRes_ID_ALANM_BCK_ATRFD_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATBW_e, dRes_ID_ALANM_BCK_ATBW_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATBD_e, dRes_ID_ALANM_BCK_ATBD_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATRBWS_e, dRes_ID_ALANM_BCK_ATRBW_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATRBDS_e, dRes_ID_ALANM_BCK_ATRBD_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATSWLS_e, dRes_ID_ALANM_BCK_ATSWL_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATRSWLS_e, dRes_ID_ALANM_BCK_ATRSWL_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATSWRS_e, dRes_ID_ALANM_BCK_ATSWR_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATRSWRS_e, dRes_ID_ALANM_BCK_ATRSWR_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATSDLS_e, dRes_ID_ALANM_BCK_ATSDL_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATRSDLS_e, dRes_ID_ALANM_BCK_ATRSDL_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATSDRS_e, dRes_ID_ALANM_BCK_ATSDR_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATRSDRS_e, dRes_ID_ALANM_BCK_ATRSDR_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_WALKH_e, dRes_ID_ALANM_BCK_WALKH_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATRBWH_e, dRes_ID_ALANM_BCK_ATL_e, 0xFE, 0xFE, FTANM_0, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_ATL_e, dRes_ID_ALANM_BCK_AT_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATR_e, dRes_ID_ALANM_BCK_AT_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_WALKS_e, dRes_ID_ALANM_BCK_WALKS_e, 0x4, 0xA, FTANM_0, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_DASHS_e, dRes_ID_ALANM_BCK_DASHA_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_SWIMWAIT_e, dRes_ID_ALANM_BCK_SWIMWAIT_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FSWIMWAIT_e, 0x0}, + {dRes_ID_ALANM_BCK_STEPL_e, dRes_ID_ALANM_BCK_STEPL_e, 0x4, 0xA, FTANM_0, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_STEPR_e, dRes_ID_ALANM_BCK_STEPR_e, 0x4, 0xA, FTANM_0, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_STEPL_e, dRes_ID_ALANM_BCK_WAITD_e, 0x4, 0xA, FTANM_0, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_STEPR_e, dRes_ID_ALANM_BCK_WAITD_e, 0x4, 0xA, FTANM_0, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_WAITS_e, dRes_ID_ALANM_BCK_WAITS_e, 0x4, 0xA, FTANM_0, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_WAITB_e, dRes_ID_ALANM_BCK_WAITB_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITBTOA_e, dRes_ID_ALANM_BCK_WAITBTOA_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FWAITBTOA_e, 0x0}, + {dRes_ID_ALANM_BCK_DASHB_e, dRes_ID_ALANM_BCK_DASHB_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATSJLST_e, dRes_ID_ALANM_BCK_ATSJLST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FJMPB_e, 0x0}, + {dRes_ID_ALANM_BCK_ATSJRST_e, dRes_ID_ALANM_BCK_ATSJRST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FJMPB_e, 0x0}, + {dRes_ID_ALANM_BCK_ATSJLED_e, dRes_ID_ALANM_BCK_ATSJLED_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATSJRED_e, dRes_ID_ALANM_BCK_ATSJRED_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATSJBST_e, dRes_ID_ALANM_BCK_ATSJBST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FJMPB_e, 0x0}, + {dRes_ID_ALANM_BCK_ATSJBED_e, dRes_ID_ALANM_BCK_ATSJBED_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ROLLF_e, dRes_ID_ALANM_BCK_ROLLF_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FJMPB_e, 0x0}, + {dRes_ID_ALANM_BCK_ROLLFMIS_e, dRes_ID_ALANM_BCK_ROLLFMIS_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_ROLLFGOOD_e, dRes_ID_ALANM_BCK_ROLLFGOOD_e, 0x1, 0x6, FTANM_ROLLFGOOD, dRes_ID_ALANM_BCK_FROLLFGOOD_e, 0x0}, + {dRes_ID_ALANM_BCK_ROLLBST_e, dRes_ID_ALANM_BCK_ROLLBST_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FJMPB_e, 0x0}, + {dRes_ID_ALANM_BCK_ROLLBED_e, dRes_ID_ALANM_BCK_ROLLBED_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_SLIP_e, dRes_ID_ALANM_BCK_SLIP_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CROUCH_e, dRes_ID_ALANM_BCK_CROUCH_e, 0xFE, 0xFE, FTANM_0, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_CROUCHS_e, dRes_ID_ALANM_BCK_CROUCHS_e, 0xFE, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATDEFL_e, dRes_ID_ALANM_BCK_ATDEFL_e, 0xFE, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATDEFR_e, dRes_ID_ALANM_BCK_ATDEFR_e, 0xFE, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CROUCHDEFS_e, dRes_ID_ALANM_BCK_CROUCHDEFS_e, 0xFE, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATGPUSH_e, dRes_ID_ALANM_BCK_ATGPUSH_e, 0xFE, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATGPUSHRE_e, dRes_ID_ALANM_BCK_ATGPUSHRE_e, 0xFE, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATDEFNG_e, dRes_ID_ALANM_BCK_ATDEFNG_e, 0x1, 0x6, FTANM_ATDEFNG, dRes_ID_ALANM_BCK_FATDEFNG_e, 0x0}, + {dRes_ID_ALANM_BCK_JUMPST_e, dRes_ID_ALANM_BCK_JUMPST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FJMPA_e, 0x0}, + {dRes_ID_ALANM_BCK_JUMPS_e, dRes_ID_ALANM_BCK_JUMPS_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FJMPA_e, 0x0}, + {dRes_ID_ALANM_BCK_JUMPSED_e, dRes_ID_ALANM_BCK_JUMPSED_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_LIE_e, dRes_ID_ALANM_BCK_LIE_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_LIEF_e, dRes_ID_ALANM_BCK_LIEF_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITPP_e, dRes_ID_ALANM_BCK_WAITPP_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_PUSHW_e, dRes_ID_ALANM_BCK_PUSHW_e, 0xFE, 0xFE, FTANM_ARELORDTAME, dRes_ID_ALANM_BCK_FPUSHW_e, 0x0}, + {dRes_ID_ALANM_BCK_PUSHTSWST_e, dRes_ID_ALANM_BCK_PUSHTSWST_e, 0xFE, 0xFE, FTANM_MABA01_L, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_PUSHTSW_e, dRes_ID_ALANM_BCK_PUSHTSW_e, 0xFE, 0xFE, FTANM_MABA01_L, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_PULLW_e, dRes_ID_ALANM_BCK_PULLW_e, 0x0, 0x5, FTANM_PUSHW, dRes_ID_ALANM_BCK_FPULLW_e, 0x0}, + {dRes_ID_ALANM_BCK_PULLTSWST_e, dRes_ID_ALANM_BCK_PULLTSWST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_PULLTSW_e, dRes_ID_ALANM_BCK_PULLTSW_e, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_RIDEHL_e, dRes_ID_ALANM_BCK_RIDEHL_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_RIDEHR_e, dRes_ID_ALANM_BCK_RIDEHR_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_RIDEHB_e, dRes_ID_ALANM_BCK_RIDEHB_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_FALLHL_e, dRes_ID_ALANM_BCK_FALLHL_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_FALLHR_e, dRes_ID_ALANM_BCK_FALLHR_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_STOPS_e, dRes_ID_ALANM_BCK_STOPS_e, 0x4, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_STOPSTOSTANDS_e, dRes_ID_ALANM_BCK_STOPSTOSTANDS_e, 0x4, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_STANDS_e, dRes_ID_ALANM_BCK_STANDS_e, 0x4, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_JUMPHSST_e, dRes_ID_ALANM_BCK_JUMPHSST_e, 0x4, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_JUMPHS_e, dRes_ID_ALANM_BCK_JUMPHS_e, 0x4, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_JUMPHSED_e, dRes_ID_ALANM_BCK_JUMPHSED_e, 0x4, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITHS_e, dRes_ID_ALANM_BCK_WAITHS_e, 0x4, 0x5, FTANM_0, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_WALKHAS_e, dRes_ID_ALANM_BCK_WALKHAS_e, 0x4, 0x5, FTANM_0, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_WALKHBS_e, dRes_ID_ALANM_BCK_WALKHBS_e, 0x4, 0x5, FTANM_0, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_DASHHAS_e, dRes_ID_ALANM_BCK_DASHHAS_e, 0x4, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_DASHHBS_e, dRes_ID_ALANM_BCK_DASHHBS_e, 0x4, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_WSTARTH_e, dRes_ID_ALANM_BCK_WAITHS_e, 0x4, 0x5, FTANM_0, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_DSTARTHS_e, dRes_ID_ALANM_BCK_DSTARTHS_e, 0x4, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FCUT_e, 0x0}, + {dRes_ID_ALANM_BCK_LASHS_e, dRes_ID_ALANM_BCK_LASHS_e, 0x4, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FCUTE_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTHTB_e, dRes_ID_ALANM_BCK_CUTHTB_e, 0x64, 0x5, FTANM_CUTHTB, dRes_ID_ALANM_BCK_FCUTHTB_e, 0x0}, + {dRes_ID_ALANM_BCK_SWAITHA_e, dRes_ID_ALANM_BCK_SWAITHA_e, 0x4, 0x5, FTANM_SWAITHA, dRes_ID_ALANM_BCK_FSWAITHA_e, 0x0}, + {dRes_ID_ALANM_BCK_SWAITHB_e, dRes_ID_ALANM_BCK_SWAITHB_e, 0x4, 0x5, FTANM_SWIATHB, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_DIEHUP_e, dRes_ID_ALANM_BCK_DIEHUP_e, 0x4, 0xA, FTANM_DIEHUP, dRes_ID_ALANM_BCK_FDIEHUP_e, 0x0}, + {dRes_ID_ALANM_BCK_TURNBS_e, dRes_ID_ALANM_BCK_TURNBS_e, 0x4, 0x5, FTANM_TURNBS, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_WAITHLIE_e, dRes_ID_ALANM_BCK_WAITHLIE_e, 0x4, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_SPILLHL_e, dRes_ID_ALANM_BCK_SPILLHL_e, 0x4, 0x5, FTANM_SPILLH, dRes_ID_ALANM_BCK_FSPILLH_e, 0x0}, + {dRes_ID_ALANM_BCK_SPILLHR_e, dRes_ID_ALANM_BCK_SPILLHR_e, 0x4, 0x5, FTANM_SPILLH, dRes_ID_ALANM_BCK_FSPILLH_e, 0x0}, + {dRes_ID_ALANM_BCK_HANGHL_e, dRes_ID_ALANM_BCK_HANGHL_e, 0x4, 0x5, FTANM_HANGH, dRes_ID_ALANM_BCK_FHANGH_e, 0x0}, + {dRes_ID_ALANM_BCK_HANGHR_e, dRes_ID_ALANM_BCK_HANGHR_e, 0x4, 0x5, FTANM_HANGH, dRes_ID_ALANM_BCK_FHANGH_e, 0x0}, + {dRes_ID_ALANM_BCK_TURNLS_e, dRes_ID_ALANM_BCK_TURNLS_e, 0x4, 0x5, FTANM_TURNLS, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_TURNRS_e, dRes_ID_ALANM_BCK_TURNRS_e, 0x4, 0x5, FTANM_TURNRS, 0x0, 0x0}, + {dRes_ID_ALANM_BCK_RIDEWL_e, dRes_ID_ALANM_BCK_RIDEWL_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_RIDEWR_e, dRes_ID_ALANM_BCK_RIDEWR_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_FALLWL_e, dRes_ID_ALANM_BCK_FALLWL_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_FALLWR_e, dRes_ID_ALANM_BCK_FALLWR_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITWB_e, dRes_ID_ALANM_BCK_WAITWB_e, 0xFE, 0xFE, FTANM_WAITHDB, dRes_ID_ALANM_BCK_FWAITWB_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITWATOWB_e, dRes_ID_ALANM_BCK_WAITWATOWB_e, 0x4, 0x5, FTANM_WAITWATOWB, dRes_ID_ALANM_BCK_FWAITWATOWB_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTA_e, dRes_ID_ALANM_BCK_CUTA_e, 0x64, 0x6, FTANM_CUTA, dRes_ID_ALANM_BCK_FCUTA_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTL_e, dRes_ID_ALANM_BCK_CUTL_e, 0x0, 0x6, FTANM_CUTL, dRes_ID_ALANM_BCK_FCUTL_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTR_e, dRes_ID_ALANM_BCK_CUTR_e, 0x0, 0x6, FTANM_CUTR, dRes_ID_ALANM_BCK_FCUTR_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTFL_e, dRes_ID_ALANM_BCK_CUTFL_e, 0x64, 0x6, FTANM_CUTF, dRes_ID_ALANM_BCK_FCUTF_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTFR_e, dRes_ID_ALANM_BCK_CUTFR_e, 0x64, 0x6, FTANM_CUTF, dRes_ID_ALANM_BCK_FCUTF_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTEA_e, dRes_ID_ALANM_BCK_CUTEA_e, 0x64, 0x6, FTANM_CUTEA, dRes_ID_ALANM_BCK_FCUTEA_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTEB_e, dRes_ID_ALANM_BCK_CUTEB_e, 0x64, 0x6, FTANM_CUTEB, dRes_ID_ALANM_BCK_FCUTEB_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTEC_e, dRes_ID_ALANM_BCK_CUTEC_e, 0x64, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FCUTE_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTEF_e, dRes_ID_ALANM_BCK_CUTEF_e, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTEE_e, dRes_ID_ALANM_BCK_CUTEE_e, 0x64, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTEG_e, dRes_ID_ALANM_BCK_CUTEG_e, 0x64, 0x5, FTANM_CUTEG, dRes_ID_ALANM_BCK_FCUTEG_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTEDST_e, dRes_ID_ALANM_BCK_CUTEDST_e, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTEDED_e, dRes_ID_ALANM_BCK_CUTEDED_e, 0x64, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTREL_e, dRes_ID_ALANM_BCK_CUTREL_e, 0x0, 0x6, FTANM_CUTRE, dRes_ID_ALANM_BCK_FCUTRE_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTRER_e, dRes_ID_ALANM_BCK_CUTRER_e, 0x0, 0x6, FTANM_CUTRE, dRes_ID_ALANM_BCK_FCUTRE_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTJST_e, dRes_ID_ALANM_BCK_CUTJST_e, 0x64, 0x6, FTANM_CUTJST, dRes_ID_ALANM_BCK_FCUTJST_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTJED_e, dRes_ID_ALANM_BCK_CUTJED_e, 0x64, 0x6, FTANM_CUTJED, dRes_ID_ALANM_BCK_FCUTJED_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTTB_e, dRes_ID_ALANM_BCK_CUTTB_e, 0x64, 0x6, FTANM_CUTTB, dRes_ID_ALANM_BCK_FCUTTB_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTT_e, dRes_ID_ALANM_BCK_CUTT_e, 0x64, 0x6, FTANM_CUTT, dRes_ID_ALANM_BCK_FCUTT_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTTP_e, dRes_ID_ALANM_BCK_CUTTP_e, 0x0, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTTPWFB_e, dRes_ID_ALANM_BCK_CUTTPWFB_e, 0x64, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTTPWLR_e, dRes_ID_ALANM_BCK_CUTTPWLR_e, 0x64, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTUST_e, dRes_ID_ALANM_BCK_CUTUST_e, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FCUTE_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTU_e, dRes_ID_ALANM_BCK_CUTU_e, 0x0, 0x5, FTANM_CUTU, dRes_ID_ALANM_BCK_FCUTU_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTUED_e, dRes_ID_ALANM_BCK_CUTUED_e, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FCUTUED_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTUNG_e, dRes_ID_ALANM_BCK_CUTUNG_e, 0x64, 0x5, FTANM_CUTUNG, dRes_ID_ALANM_BCK_FCUTUNG_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTEHST_e, dRes_ID_ALANM_BCK_CUTEHST_e, 0x0, 0x6, FTANM_CUTEHST, dRes_ID_ALANM_BCK_FCUTEHST_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTEH_e, dRes_ID_ALANM_BCK_CUTEH_e, 0x0, 0x6, FTANM_CUTEH, dRes_ID_ALANM_BCK_FCUTEH_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTEHED_e, dRes_ID_ALANM_BCK_CUTEHED_e, 0x0, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMF_e, dRes_ID_ALANM_BCK_DAMF_e, 0x1, 0x6, FTANM_B_A, dRes_ID_ALANM_BCK_FB_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMB_e, dRes_ID_ALANM_BCK_DAMB_e, 0x1, 0x6, FTANM_B_A, dRes_ID_ALANM_BCK_FB_e, 0x0}, + {dRes_ID_ALANM_BCK_DAML_e, dRes_ID_ALANM_BCK_DAML_e, 0x1, 0x6, FTANM_B_A, dRes_ID_ALANM_BCK_FB_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMR_e, dRes_ID_ALANM_BCK_DAMR_e, 0x1, 0x6, FTANM_B_A, dRes_ID_ALANM_BCK_FB_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMFF_e, dRes_ID_ALANM_BCK_DAMFF_e, 0xFE, 0xFE, FTANM_C_A, dRes_ID_ALANM_BCK_FC_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMFB_e, dRes_ID_ALANM_BCK_DAMFB_e, 0xFE, 0xFE, FTANM_C_A, dRes_ID_ALANM_BCK_FC_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMFL_e, dRes_ID_ALANM_BCK_DAMFL_e, 0xFE, 0xFE, FTANM_C_A, dRes_ID_ALANM_BCK_FC_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMFR_e, dRes_ID_ALANM_BCK_DAMFR_e, 0xFE, 0xFE, FTANM_C_A, dRes_ID_ALANM_BCK_FC_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMFFUP_e, dRes_ID_ALANM_BCK_DAMFFUP_e, 0xFE, 0xFE, FTANM_DAMFFUP, dRes_ID_ALANM_BCK_FDAMFFUP_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMFBUP_e, dRes_ID_ALANM_BCK_DAMFBUP_e, 0xFE, 0xFE, FTANM_DAMFBUP, dRes_ID_ALANM_BCK_FDAMFBUP_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMFLUP_e, dRes_ID_ALANM_BCK_DAMFLUP_e, 0xFE, 0xFE, FTANM_DAMFRLUP, dRes_ID_ALANM_BCK_FDAMFRLUP_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMFRUP_e, dRes_ID_ALANM_BCK_DAMFRUP_e, 0xFE, 0xFE, FTANM_DAMFRLUP, dRes_ID_ALANM_BCK_FDAMFRLUP_e, 0x0}, + {dRes_ID_ALANM_BCK_DAM_e, dRes_ID_ALANM_BCK_DAM_e, 0x1, 0x6, FTANM_B_A, dRes_ID_ALANM_BCK_FB_e, 0x0}, + {dRes_ID_ALANM_BCK_LANDDAMA_e, dRes_ID_ALANM_BCK_LANDDAMA_e, 0x1, 0x6, FTANM_B_A, dRes_ID_ALANM_BCK_FB_e, 0x0}, + {dRes_ID_ALANM_BCK_LANDDAMAST_e, dRes_ID_ALANM_BCK_LANDDAMAST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_FINISHA_e, dRes_ID_ALANM_BCK_FINISHA_e, 0x0, 0x6, FTANM_MABAGOMA, dRes_ID_ALANM_BCK_FFINISHA_e, 0x0}, + {dRes_ID_ALANM_BCK_FINISHED_e, dRes_ID_ALANM_BCK_FINISHED_e, 0x0, 0xA, FTANM_DAM01, dRes_ID_ALANM_BCK_FFINISHED_e, 0x0}, + {dRes_ID_ALANM_BCK_SWAITA_e, dRes_ID_ALANM_BCK_SWAITA_e, 0x4, 0xA, FTANM_SWAITA, dRes_ID_ALANM_BCK_FSWAITA_e, 0x0}, + {dRes_ID_ALANM_BCK_VJMP_e, dRes_ID_ALANM_BCK_VJMP_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_VJMPCHA_e, dRes_ID_ALANM_BCK_VJMPCHA_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_VJMPCHB_e, dRes_ID_ALANM_BCK_VJMPCHB_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_VJMPCL_e, dRes_ID_ALANM_BCK_VJMPCL_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_HANG_e, dRes_ID_ALANM_BCK_HANG_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_HANGUP_e, dRes_ID_ALANM_BCK_HANGUP_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_HANGL_e, dRes_ID_ALANM_BCK_HANGL_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_HANGR_e, dRes_ID_ALANM_BCK_HANGR_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_LADUPST_e, dRes_ID_ALANM_BCK_LADUPST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_LADUPEDL_e, dRes_ID_ALANM_BCK_LADUPEDL_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_LADUPEDR_e, dRes_ID_ALANM_BCK_LADUPEDR_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_LADDWST_e, dRes_ID_ALANM_BCK_LADDWST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_LADDWEDL_e, dRes_ID_ALANM_BCK_LADDWEDL_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_LADDWEDR_e, dRes_ID_ALANM_BCK_LADDWEDR_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_LADRTOL_e, dRes_ID_ALANM_BCK_LADRTOL_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_LADLTOR_e, dRes_ID_ALANM_BCK_LADLTOR_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_CLIMBHANG_e, dRes_ID_ALANM_BCK_CLIMBHANG_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CLIMBST_e, dRes_ID_ALANM_BCK_CLIMBST_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CLIMBL_e, dRes_ID_ALANM_BCK_CLIMBL_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CLIMBR_e, dRes_ID_ALANM_BCK_CLIMBR_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CLIMBSLIDEL_e, dRes_ID_ALANM_BCK_CLIMBSLIDEL_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CLIMBSLIDER_e, dRes_ID_ALANM_BCK_CLIMBSLIDER_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CLIMBHANGMISS_e, dRes_ID_ALANM_BCK_CLIMBHANGMISS_e, 0x3, 0x9, FTANM_CLIMBHANGMISS, dRes_ID_ALANM_BCK_FCLIMBHANGMISS_e, 0x0}, + {dRes_ID_ALANM_BCK_ROOFUP_e, dRes_ID_ALANM_BCK_ROOFUP_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ROOFWAIT_e, dRes_ID_ALANM_BCK_ROOFWAIT_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ROOFF_e, dRes_ID_ALANM_BCK_ROOFF_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ROOFL_e, dRes_ID_ALANM_BCK_ROOFL_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ROOFR_e, dRes_ID_ALANM_BCK_ROOFR_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ROOFTURN_e, dRes_ID_ALANM_BCK_ROOFTURN_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ROOFHANG_e, dRes_ID_ALANM_BCK_ROOFHANG_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_GRABP_e, dRes_ID_ALANM_BCK_GRABP_e, 0xFE, 0xFE, FTANM_GRABP, dRes_ID_ALANM_BCK_FGRABP_e, 0x0}, + {dRes_ID_ALANM_BCK_GRABUP_e, dRes_ID_ALANM_BCK_GRABUP_e, 0xFE, 0xFE, FTANM_GRABUP, dRes_ID_ALANM_BCK_FGRABUP_e, 0x0}, + {dRes_ID_ALANM_BCK_GRABTHROW_e, dRes_ID_ALANM_BCK_GRABTHROW_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FGRABTHROW_e, 0x0}, + {dRes_ID_ALANM_BCK_HEAVYTHROW_e, dRes_ID_ALANM_BCK_HEAVYTHROW_e, 0xFE, 0xFE, FTANM_HEAVYTHROW, dRes_ID_ALANM_BCK_FHEAVYTHROW_e, 0x0}, + {dRes_ID_ALANM_BCK_GRABNG_e, dRes_ID_ALANM_BCK_GRABNG_e, 0xFE, 0xFE, FTANM_GRABNG, dRes_ID_ALANM_BCK_FGRABNG_e, 0x0}, + {dRes_ID_ALANM_BCK_GRABRE_e, dRes_ID_ALANM_BCK_GRABRE_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FGRABRE_e, 0x0}, + {dRes_ID_ALANM_BCK_CARRY_e, dRes_ID_ALANM_BCK_CARRY_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITD_e, dRes_ID_ALANM_BCK_WAITD_e, 0x4, 0xA, FTANM_MABA01, dRes_ID_ALANM_BCK_FWAITD_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITATOD_e, dRes_ID_ALANM_BCK_WAITATOD_e, 0x4, 0xA, FTANM_MABA01, dRes_ID_ALANM_BCK_FWAITATOD_e, 0x0}, + {dRes_ID_ALANM_BCK_TALKA_e, dRes_ID_ALANM_BCK_TALKA_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITST_e, dRes_ID_ALANM_BCK_WAITST_e, 0x1, 0x6, FTANM_PULLW, dRes_ID_ALANM_BCK_FWAITST_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTST_e, dRes_ID_ALANM_BCK_CUTST_e, 0x1, 0x6, FTANM_WAITST, dRes_ID_ALANM_BCK_FCUTST_e, 0x0}, + {dRes_ID_ALANM_BCK_BOOMCATCH_e, dRes_ID_ALANM_BCK_BOOMCATCH_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_WALKSLOPEW_e, dRes_ID_ALANM_BCK_WALKSLOPEW_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SLIDEF_e, dRes_ID_ALANM_BCK_SLIDEF_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SLIDEB_e, dRes_ID_ALANM_BCK_SLIDEB_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SLIDEFED_e, dRes_ID_ALANM_BCK_SLIDEFED_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SLIDEBED_e, dRes_ID_ALANM_BCK_SLIDEBED_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SWIMINGA_e, dRes_ID_ALANM_BCK_SWIMINGA_e, 0xFE, 0xFE, FTANM_SWIMINGA, dRes_ID_ALANM_BCK_FSWIMINGA_e, 0x0}, + {dRes_ID_ALANM_BCK_SWIMP_e, dRes_ID_ALANM_BCK_SWIMP_e, 0xFE, 0xFE, FTANM_SWIMP, dRes_ID_ALANM_BCK_FSWIMP_e, 0x0}, + {dRes_ID_ALANM_BCK_ATSSWL_e, dRes_ID_ALANM_BCK_ATSSWL_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATSSWR_e, dRes_ID_ALANM_BCK_ATSSWR_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_ATBSW_e, dRes_ID_ALANM_BCK_ATBSW_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_SWIMDASH_e, dRes_ID_ALANM_BCK_SWIMDASH_e, 0xFE, 0xFE, FTANM_MABA03, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_SWIMDIVE_e, dRes_ID_ALANM_BCK_SWIMDIVE_e, 0xFE, 0xFE, FTANM_SWIMDIVE, dRes_ID_ALANM_BCK_FSWIMDIVE_e, 0x0}, + {dRes_ID_ALANM_BCK_SWIMINGST_e, dRes_ID_ALANM_BCK_SWIMINGST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_SWIMINGC_e, dRes_ID_ALANM_BCK_SWIMINGC_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMSWF_e, dRes_ID_ALANM_BCK_DAMSWF_e, 0x1, 0x6, FTANM_B_A, dRes_ID_ALANM_BCK_FB_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMSWB_e, dRes_ID_ALANM_BCK_DAMSWB_e, 0x1, 0x6, FTANM_B_A, dRes_ID_ALANM_BCK_FB_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMSWL_e, dRes_ID_ALANM_BCK_DAMSWL_e, 0x1, 0x6, FTANM_B_A, dRes_ID_ALANM_BCK_FB_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMSWR_e, dRes_ID_ALANM_BCK_DAMSWR_e, 0x1, 0x6, FTANM_B_A, dRes_ID_ALANM_BCK_FB_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMSWW_e, dRes_ID_ALANM_BCK_DAMSWW_e, 0x1, 0x6, FTANM_B_A, dRes_ID_ALANM_BCK_FB_e, 0x0}, + {dRes_ID_ALANM_BCK_BOXOPSHORT_e, dRes_ID_ALANM_BCK_BOXOPSHORT_e, 0xFE, 0xFE, FTANM_BOXOPSHORT, dRes_ID_ALANM_BCK_FBOXOPSHORT_e, 0x0}, + {dRes_ID_ALANM_BCK_BOXOPKICK_e, dRes_ID_ALANM_BCK_BOXOPKICK_e, 0xFE, 0xFE, FTANM_BOXOPKICK, dRes_ID_ALANM_BCK_FBOXOPKICK_e, 0x0}, + {dRes_ID_ALANM_BCK_BOXOP_e, dRes_ID_ALANM_BCK_BOXOP_e, 0xFE, 0xFE, FTANM_BOXOP, dRes_ID_ALANM_BCK_FBOXOP_e, 0x0}, + {dRes_ID_ALANM_BCK_GETA_e, dRes_ID_ALANM_BCK_GETA_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FGET_e, 0x0}, + {dRes_ID_ALANM_BCK_GETAWAIT_e, dRes_ID_ALANM_BCK_GETAWAIT_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FGETWAIT_e, 0x0}, + {dRes_ID_ALANM_BCK_GETAWAIT_e, dRes_ID_ALANM_BCK_WAITS_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FG_e, 0x0}, + {dRes_ID_ALANM_BCK_GETAWAIT_e, dRes_ID_ALANM_BCK_HOLDOUT_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FG_e, 0x0}, + {dRes_ID_ALANM_BCK_TURNBACK_e, dRes_ID_ALANM_BCK_TURNBACK_e, 0x4, 0xA, FTANM_TURNBACK, dRes_ID_ALANM_BCK_FTURNBACK_e, 0x0}, + {dRes_ID_ALANM_BCK_VJMPST_e, dRes_ID_ALANM_BCK_VJMPST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FVJMPST_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITSIT_e, dRes_ID_ALANM_BCK_WAITSIT_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITCANOER_e, dRes_ID_ALANM_BCK_WAITCANOEL_e, 0xFE, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITCANOER_e, dRes_ID_ALANM_BCK_WAITCANOER_e, 0x0, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITSIT_e, dRes_ID_ALANM_BCK_ROWL_e, 0xFE, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITSIT_e, dRes_ID_ALANM_BCK_ROWR_e, 0x0, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITSIT_e, dRes_ID_ALANM_BCK_ROWBL_e, 0xFE, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITSIT_e, dRes_ID_ALANM_BCK_ROWBR_e, 0x0, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITSIT_e, dRes_ID_ALANM_BCK_CHANGEHAND_e, 0xFE, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_CANOEFISHL_e, dRes_ID_ALANM_BCK_CANOEFISHL_e, 0x2, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FF_e, 0x0}, + {dRes_ID_ALANM_BCK_CANOEFISHR_e, dRes_ID_ALANM_BCK_CANOEFISHR_e, 0x2, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FF_e, 0x0}, + {dRes_ID_ALANM_BCK_CANOEREELING_e, dRes_ID_ALANM_BCK_CANOEREELING_e, 0x2, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_CANORELEASE_e, dRes_ID_ALANM_BCK_CANORELEASE_e, 0x2, 0x5, FTANM_CANORELEASE, dRes_ID_ALANM_BCK_FCANORELEASE_e, 0x0}, + {dRes_ID_ALANM_BCK_PADORUTOROD_e, dRes_ID_ALANM_BCK_PADORUTOROD_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_REELING_e, dRes_ID_ALANM_BCK_REELING_e, 0x2, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_REELINGLR_e, dRes_ID_ALANM_BCK_REELINGLR_e, 0x2, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_LANDINGUP_e, dRes_ID_ALANM_BCK_LANDINGUP_e, 0x2, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_DOOROPA_e, dRes_ID_ALANM_BCK_DOOROPA_e, 0x4, 0xA, FTANM_DOOROPA, dRes_ID_ALANM_BCK_FDOOROPA_e, 0x0}, + {dRes_ID_ALANM_BCK_DOOROPB_e, dRes_ID_ALANM_BCK_DOOROPB_e, 0x4, 0xA, FTANM_DOOROPB, dRes_ID_ALANM_BCK_FDOOROPB_e, 0x0}, + {dRes_ID_ALANM_BCK_DOORLOCKA_e, dRes_ID_ALANM_BCK_DOORLOCKA_e, 0x3, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_DOORLOCKB_e, dRes_ID_ALANM_BCK_DOORLOCKB_e, 0x3, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_DOOROPC_e, dRes_ID_ALANM_BCK_DOOROPC_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_DOOROPD_e, dRes_ID_ALANM_BCK_DOOROPD_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_PICKUP_e, dRes_ID_ALANM_BCK_PICKUP_e, 0xFE, 0xFE, FTANM_PICKUP, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_ROOLJMP_e, dRes_ID_ALANM_BCK_ROOLJMP_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_MROLLL_e, dRes_ID_ALANM_BCK_MROLLL_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_MROLLR_e, dRes_ID_ALANM_BCK_MROLLR_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SHWAIT_e, dRes_ID_ALANM_BCK_SHWAIT_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SHFRONT_e, dRes_ID_ALANM_BCK_SHFRONT_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SHCROUCH_e, dRes_ID_ALANM_BCK_SHCROUCH_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SHSTOP_e, dRes_ID_ALANM_BCK_SHSTOP_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SHJUMPST_e, dRes_ID_ALANM_BCK_SHJUMPST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SHJUMP_e, dRes_ID_ALANM_BCK_SHJUMP_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SHJUMPED_e, dRes_ID_ALANM_BCK_SHJUMPED_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SHKICK_e, dRes_ID_ALANM_BCK_SHKICK_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SHTP_e, dRes_ID_ALANM_BCK_SHTP_e, 0x64, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SHT_e, dRes_ID_ALANM_BCK_SHT_e, 0x64, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_ROPESWING_e, dRes_ID_ALANM_BCK_ROPESWING_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_CHANGEATOW_e, dRes_ID_ALANM_BCK_CHANGEATOW_e, 0xFE, 0xFE, FTANM_CHANGEATOW, dRes_ID_ALANM_BCK_FCHANGEATOW_e, 0x0}, + {dRes_ID_ALANM_BCK_CHANGEWTOA_e, dRes_ID_ALANM_BCK_CHANGEWTOA_e, 0xFE, 0xFE, FTANM_CHANGEWTOA, dRes_ID_ALANM_BCK_FCHANGEWTOA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITWIND_e, dRes_ID_ALANM_BCK_WAITWIND_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FWAITWIND_e, 0x0}, + {dRes_ID_ALANM_BCK_BINDRINKST_e, dRes_ID_ALANM_BCK_BINDRINKST_e, 0x3, 0xFE, FTANM_BINDRINKST, dRes_ID_ALANM_BCK_FBINDRINKST_e, 0x0}, + {dRes_ID_ALANM_BCK_BINDRINK_e, dRes_ID_ALANM_BCK_BINDRINK_e, 0x3, 0xFE, FTANM_BINDRINK, dRes_ID_ALANM_BCK_FBINDRINK_e, 0x0}, + {dRes_ID_ALANM_BCK_BINDRINKED_e, dRes_ID_ALANM_BCK_BINDRINKED_e, 0x3, 0xFE, FTANM_BINDRINKED, dRes_ID_ALANM_BCK_FBINDRINKED_e, 0x0}, + {dRes_ID_ALANM_BCK_BINBAD_e, dRes_ID_ALANM_BCK_BINBAD_e, 0x3, 0xFE, FTANM_BINBAD, dRes_ID_ALANM_BCK_FBINBAD_e, 0x0}, + {dRes_ID_ALANM_BCK_BINOP_e, dRes_ID_ALANM_BCK_BINOP_e, 0x3, 0xFE, FTANM_BINOP, dRes_ID_ALANM_BCK_FBINOP_e, 0x0}, + {dRes_ID_ALANM_BCK_BINOUT_e, dRes_ID_ALANM_BCK_BINOUT_e, 0x3, 0x5, FTANM_BINOUT, dRes_ID_ALANM_BCK_FBINOUT_e, 0x0}, + {dRes_ID_ALANM_BCK_BINFAIRY_e, dRes_ID_ALANM_BCK_BINFAIRY_e, 0x3, 0x5, FTANM_BINFAIRY, dRes_ID_ALANM_BCK_FBINFAIRY_e, 0x0}, + {dRes_ID_ALANM_BCK_BINSWINGS_e, dRes_ID_ALANM_BCK_BINSWINGS_e, 0x3, 0xFE, FTANM_BINSWINGS, dRes_ID_ALANM_BCK_FBINSWINGS_e, 0x0}, + {dRes_ID_ALANM_BCK_BINSWINGU_e, dRes_ID_ALANM_BCK_BINSWINGU_e, 0x3, 0xFE, FTANM_BINSWINGU, dRes_ID_ALANM_BCK_FBINSWINGU_e, 0x0}, + {dRes_ID_ALANM_BCK_BINGET_e, dRes_ID_ALANM_BCK_BINGET_e, 0x3, 0xFE, FTANM_BINGET, dRes_ID_ALANM_BCK_FBINGET_e, 0x0}, + {dRes_ID_ALANM_BCK_BINSCOOP_e, dRes_ID_ALANM_BCK_BINSCOOP_e, 0x3, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_LIGHTING_e, dRes_ID_ALANM_BCK_LIGHTING_e, 0x0, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_POURST_e, dRes_ID_ALANM_BCK_POURST_e, 0x0, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_POUR_e, dRes_ID_ALANM_BCK_POUR_e, 0x0, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_POURED_e, dRes_ID_ALANM_BCK_POURED_e, 0x0, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_GRASSAST_e, dRes_ID_ALANM_BCK_GRASSAST_e, 0x2, 0xFE, FTANM_GRASSAST, dRes_ID_ALANM_BCK_FGRASSAST_e, 0x0}, + {dRes_ID_ALANM_BCK_GRASSAPLAY_e, dRes_ID_ALANM_BCK_GRASSAPLAY_e, 0x2, 0xFE, FTANM_E_A, dRes_ID_ALANM_BCK_FGRASSAPLAY_e, 0x0}, + {dRes_ID_ALANM_BCK_CATCHTAKA_e, dRes_ID_ALANM_BCK_CATCHTAKA_e, 0x2, 0xFE, FTANM_CATCHTAKA, dRes_ID_ALANM_BCK_FCATCHTAKA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITTAKA_e, dRes_ID_ALANM_BCK_WAITTAKA_e, 0x2, 0xFE, FTANM_CATCHTAKA, dRes_ID_ALANM_BCK_FCATCHTAKA_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITDB_e, dRes_ID_ALANM_BCK_WAITDB_e, 0x1, 0x6, FTANM_CUTST, dRes_ID_ALANM_BCK_FWAITST_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITHDB_e, dRes_ID_ALANM_BCK_WAITHDB_e, 0x1, 0x6, FTANM_A_WAITST, dRes_ID_ALANM_BCK_FWAITHDB_e, 0x0}, + {dRes_ID_ALANM_BCK_MGKICK_e, dRes_ID_ALANM_BCK_MGKICK_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_DIE_e, dRes_ID_ALANM_BCK_DIE_e, 0x4, 0xA, FTANM_DIE, dRes_ID_ALANM_BCK_FDIE_e, 0x0}, + {dRes_ID_ALANM_BCK_DIEH_e, dRes_ID_ALANM_BCK_DIEH_e, 0x4, 0xA, FTANM_DIEH, dRes_ID_ALANM_BCK_FDIEH_e, 0x0}, + {dRes_ID_ALANM_BCK_SWIMDIEA_e, dRes_ID_ALANM_BCK_SWIMDIEA_e, 0xFE, 0xFE, FTANM_SWIMDIEA, dRes_ID_ALANM_BCK_FSWIMDIEA_e, 0x0}, + {dRes_ID_ALANM_BCK_SWIMDIEP_e, dRes_ID_ALANM_BCK_SWIMDIEP_e, 0xFE, 0xFE, FTANM_SWIMDIEP, dRes_ID_ALANM_BCK_FSWIMDIEP_e, 0x0}, + {dRes_ID_ALANM_BCK_COWAT_e, dRes_ID_ALANM_BCK_COWAT_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FCOWAT_e, 0x0}, + {dRes_ID_ALANM_BCK_COWCATCHST_e, dRes_ID_ALANM_BCK_COWCATCHST_e, 0x3, 0x9, FTANM_COWCATCHST, dRes_ID_ALANM_BCK_FCOWCATCHST_e, 0x0}, + {dRes_ID_ALANM_BCK_COWCATCH_e, dRes_ID_ALANM_BCK_COWCATCH_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_COWAD_e, dRes_ID_ALANM_BCK_COWAD_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_COWPRESS_e, dRes_ID_ALANM_BCK_COWPRESS_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_COWTHROWL_e, dRes_ID_ALANM_BCK_COWTHROWL_e, 0x3, 0x9, FTANM_COWTHROW_L, dRes_ID_ALANM_BCK_FCOWTHROW_e, 0x0}, + {dRes_ID_ALANM_BCK_COWTHROWR_e, dRes_ID_ALANM_BCK_COWTHROWR_e, 0x3, 0x9, FTANM_COWTHROW_R, dRes_ID_ALANM_BCK_FCOWTHROW_e, 0x0}, + {dRes_ID_ALANM_BCK_ATR_e, dRes_ID_ALANM_BCK_COWWAIT_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_COWWLR_e, dRes_ID_ALANM_BCK_COWWLR_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_COWSTROKE_e, dRes_ID_ALANM_BCK_COWSTROKE_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FF_e, 0x0}, + {dRes_ID_ALANM_BCK_ENTRANCE_e, dRes_ID_ALANM_BCK_ENTRANCE_e, 0x4, 0xA, FTANM_ENTRANCE, dRes_ID_ALANM_BCK_FENTRANCE_e, 0x0}, + {dRes_ID_ALANM_BCK_FALL_e, dRes_ID_ALANM_BCK_FALL_e, 0xFE, 0xFE, FTANM_C_A, dRes_ID_ALANM_BCK_FC_e, 0x0}, + {dRes_ID_ALANM_BCK_APPEARANCE_e, dRes_ID_ALANM_BCK_APPEARANCE_e, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_SJMPST_e, dRes_ID_ALANM_BCK_SJMPST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_SJMPED_e, dRes_ID_ALANM_BCK_SJMPED_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_HSJMPL_e, dRes_ID_ALANM_BCK_HSJMPL_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSJMPR_e, dRes_ID_ALANM_BCK_HSJMPR_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSSHOOT_e, dRes_ID_ALANM_BCK_HSSHOOT_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSHANGEDL_e, dRes_ID_ALANM_BCK_HSHANGEDL_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSHANGEDR_e, dRes_ID_ALANM_BCK_HSHANGEDR_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSHANGL_e, dRes_ID_ALANM_BCK_HSHANGL_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSHANGR_e, dRes_ID_ALANM_BCK_HSHANGR_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSHANGWAITL_e, dRes_ID_ALANM_BCK_HSHANGWAITL_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSHANGWAITR_e, dRes_ID_ALANM_BCK_HSHANGWAITR_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSHANGSHOOTL_e, dRes_ID_ALANM_BCK_HSHANGSHOOTL_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSHANGSHOOTR_e, dRes_ID_ALANM_BCK_HSHANGSHOOTR_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSHANGLH_e, dRes_ID_ALANM_BCK_HSHANGLH_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSHANGRH_e, dRes_ID_ALANM_BCK_HSHANGRH_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSWALLEDL_e, dRes_ID_ALANM_BCK_HSWALLEDL_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSWALLEDR_e, dRes_ID_ALANM_BCK_HSWALLEDR_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSWALLL_e, dRes_ID_ALANM_BCK_HSWALLL_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSWALLR_e, dRes_ID_ALANM_BCK_HSWALLR_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSWALLWAITL_e, dRes_ID_ALANM_BCK_HSWALLWAITL_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSWALLWAITR_e, dRes_ID_ALANM_BCK_HSWALLWAITR_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSWALLSHOOTL_e, dRes_ID_ALANM_BCK_HSWALLSHOOTL_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_HSWALLSHOOTR_e, dRes_ID_ALANM_BCK_HSWALLSHOOTR_e, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_PUTONH_e, dRes_ID_ALANM_BCK_PUTONH_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FPUTONH_e, 0x0}, + {0x102E, 0x102E, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x102D, 0x102D, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x100A, 0x100A, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x1008, 0x1008, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x1009, 0x1009, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x1007, 0x1007, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x1021, 0x1021, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x1023, 0x1023, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x1022, 0x1022, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x1024, 0x1024, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x1025, 0x1025, 0xFE, 0xFE, FTANM_UNK_94, 0x1011, 0x0}, + {0x1028, 0x1028, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x1029, 0x1029, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x1026, 0x1026, 0xFE, 0xFE, FTANM_UNK_95, 0x1012, 0x0}, + {0x1027, 0x1027, 0xFE, 0xFE, FTANM_UNK_95, 0x1012, 0x0}, + {0x102A, 0x102A, 0xFE, 0xFE, FTANM_UNK_99, 0x1013, 0x0}, + {0x1019, 0x1019, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x101B, 0x101B, 0xFE, 0xFE, FTANM_UNK_97, 0x100E, 0x0}, + {0x101C, 0x101C, 0xFE, 0xFE, FTANM_UNK_98, 0x100F, 0x0}, + {0x101A, 0x101A, 0xFE, 0xFE, FTANM_UNK_96, 0x100D, 0x0}, + {0x1020, 0x1020, 0xFE, 0xFE, FTANM_UNK_95, 0x1012, 0x0}, + {0x101D, 0x101D, 0xFE, 0xFE, FTANM_UNK_101, 0x1010, 0x0}, + {0x1017, 0x1017, 0xFE, 0xFE, FTANM_UNK_100, 0x100C, 0x0}, + {0x1018, 0x1018, 0xFE, 0xFE, FTANM_UNK_100, 0x100C, 0x0}, + {0x102B, 0x102B, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x102C, 0x102C, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x1015, 0x1015, 0xFE, 0xFE, FTANM_UNK_102, 0x100B, 0x0}, + {0x1016, 0x1016, 0xFE, 0xFE, FTANM_UNK_102, 0x100B, 0x0}, + {0x1006, 0x1006, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x1014, 0x1014, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x101E, 0x101E, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x101F, 0x101F, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_DAMFBW_e, dRes_ID_ALANM_BCK_DAMFBW_e, 0xFE, 0xFE, FTANM_DAMFBW, dRes_ID_ALANM_BCK_FDAMFBW_e, 0x0}, + {dRes_ID_ALANM_BCK_IBWAIT_e, dRes_ID_ALANM_BCK_IBWAIT_e, 0xFE, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_IBWALK_e, dRes_ID_ALANM_BCK_IBWALK_e, 0xFE, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_IBATTACK_e, dRes_ID_ALANM_BCK_IBATTACK_e, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_IBTURN_e, dRes_ID_ALANM_BCK_IBTURN_e, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_IBTHROW_e, dRes_ID_ALANM_BCK_IBTHROW_e, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_IBPULL_e, dRes_ID_ALANM_BCK_IBPULL_e, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_IBCATCH_e, dRes_ID_ALANM_BCK_IBCATCH_e, 0xFE, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_IBDEF_e, dRes_ID_ALANM_BCK_IBDEF_e, 0xFE, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x200C, 0x200C, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x200D, 0x200D, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x200E, 0x200E, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x200F, 0x200F, 0x64, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x2009, 0x2009, 0x64, 0x9, FTANM_UNK_103, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x200A, 0x200A, 0x64, 0x9, FTANM_UNK_104, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x200B, 0x200B, 0x64, 0xA, FTANM_UNK_105, 0x2008, 0x0}, + {0x2010, 0x2010, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {0x500D, 0x500D, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x500E, 0x500E, 0x1, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x500A, 0x500A, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x500B, 0x500B, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x500C, 0x500C, 0x64, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x5007, 0x5007, 0x64, 0x9, FTANM_UNK_106, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x5008, 0x5008, 0x64, 0x9, FTANM_UNK_107, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x5009, 0x5009, 0x64, 0xA, FTANM_UNK_108, 0x500F, 0x0}, + {dRes_ID_ALANM_BCK_RODSWING_e, dRes_ID_ALANM_BCK_RODSWING_e, 0x2, 0x5, FTANM_RODSWING, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_RODSWINGL_e, dRes_ID_ALANM_BCK_RODSWINGL_e, 0x2, 0x5, FTANM_RODSWINGL, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_GETSWL_e, dRes_ID_ALANM_BCK_GETSWL_e, 0x2, 0xA, FTANM_GETSWL, dRes_ID_ALANM_BCK_FGETSWL_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITF_e, dRes_ID_ALANM_BCK_WAITF_e, 0x3, 0x9, FTANM_B_A, dRes_ID_ALANM_BCK_FB_e, 0x0}, + {dRes_ID_ALANM_BCK_NUMBA_e, dRes_ID_ALANM_BCK_NUMBA_e, 0x3, 0x9, FTANM_C_A, dRes_ID_ALANM_BCK_FC_e, 0x0}, + {dRes_ID_ALANM_BCK_NUMBB_e, dRes_ID_ALANM_BCK_NUMBB_e, 0x3, 0x9, FTANM_C_A, dRes_ID_ALANM_BCK_FC_e, 0x0}, + {dRes_ID_ALANM_BCK_KEYCATCHH_e, dRes_ID_ALANM_BCK_KEYCATCHH_e, 0x4, 0x5, FTANM_KEYCATCHH, dRes_ID_ALANM_BCK_FKEYCATCHH_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITHS_e, dRes_ID_ALANM_BCK_GETAWAIT_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FGETWAIT_e, 0x0}, + {0x3004, 0x3004, 0x1, 0x6, FTANM_0, 0x3003, 0x0}, + {dRes_ID_ALANM_BCK_CHAINPICKUP_e, dRes_ID_ALANM_BCK_CHAINPICKUP_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_CHAIN_e, dRes_ID_ALANM_BCK_CHAIN_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CHAINFM_e, dRes_ID_ALANM_BCK_CHAINFM_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CHAINED_e, dRes_ID_ALANM_BCK_CHAINED_e, 0x3, 0x9, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_WAITINSECT_e, dRes_ID_ALANM_BCK_WAITINSECT_e, 0x4, 0xA, FTANM_WAITINSECT, dRes_ID_ALANM_BCK_FWAITINSECT_e, 0x0}, + {dRes_ID_ALANM_BCK_DEMOMHOP_e, dRes_ID_ALANM_BCK_DEMOMHOP_e, 0x4, 0xA, FTANM_DEMOMHOP, dRes_ID_ALANM_BCK_FDEMOMHOP_e, 0x0}, + {dRes_ID_ALANM_BCK_HANGIBT_e, dRes_ID_ALANM_BCK_HANGIBT_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_WARASHIBE_e, dRes_ID_ALANM_BCK_WARASHIBE_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FWARASHIBE_e, 0x0}, + {dRes_ID_ALANM_BCK_WARASHIBE_WAIT_e, dRes_ID_ALANM_BCK_WARASHIBE_WAIT_e, 0x4, 0xA, FTANM_0, dRes_ID_ALANM_BCK_FG_e, 0x0}, + {dRes_ID_ALANM_BCK_DEMO_KAMAE_e, dRes_ID_ALANM_BCK_DEMO_KAMAE_e, 0x0, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTTJP_e, dRes_ID_ALANM_BCK_CUTTJP_e, 0x64, 0x6, FTANM_CUTTJP, dRes_ID_ALANM_BCK_FCUTTJP_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTTJST_e, dRes_ID_ALANM_BCK_CUTTJST_e, 0x64, 0x6, FTANM_CUTTJP, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTTJ_e, dRes_ID_ALANM_BCK_CUTTJ_e, 0x64, 0x6, FTANM_CUTTJ, dRes_ID_ALANM_BCK_FCUTTJ_e, 0x0}, + {dRes_ID_ALANM_BCK_CUTTJED_e, dRes_ID_ALANM_BCK_CUTTJED_e, 0x64, 0x6, FTANM_CUTTJED, dRes_ID_ALANM_BCK_FCUTTJED_e, 0x0}, + {0x600B, 0x600B, 0x0, 0xA, FTANM_UNK_133, 0x6009, 0x0}, + {0x600C, 0x600C, 0x0, 0x5, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x600A, 0x600A, 0x64, 0x5, FTANM_0, 0x6008, 0x0}, + {0x700A, 0x700A, 0x0, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x700B, 0x700B, 0x0, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x700C, 0x700C, 0x0, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x700E, 0x700E, 0x0, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x700D, 0x700D, 0x0, 0x6, FTANM_0, dRes_ID_ALANM_BCK_FAT_e, 0x0}, + {0x7008, 0x7008, 0x0, 0x5, FTANM_UNK_134, 0x7010, 0x0}, + {0x7009, 0x7009, 0x0, 0x5, FTANM_0, 0x7011, 0x0}, + {dRes_ID_ALANM_BCK_WAITHS_e, 0x700F, 0x4, 0x5, FTANM_UNK_135, 0x7012, 0x0}, + {dRes_ID_ALANM_BCK_JUMPBST_e, dRes_ID_ALANM_BCK_JUMPBST_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_JUMPB_e, dRes_ID_ALANM_BCK_JUMPB_e, 0xFE, 0xFE, FTANM_0, dRes_ID_ALANM_BCK_FA_e, 0x0}, + {dRes_ID_ALANM_BCK_ODOROKU_e, dRes_ID_ALANM_BCK_ODOROKU_e, 0xFE, 0xFE, FTANM_ODOROKU, dRes_ID_ALANM_BCK_FODOROKU_e, 0x0}, + {dRes_ID_ALANM_BCK_ASHIMOTO_e, dRes_ID_ALANM_BCK_ASHIMOTO_e, 0xFE, 0xFE, FTANM_ASHIMOTO, dRes_ID_ALANM_BCK_FASHIMOTO_e, 0x0}, }; -daAlink_WlAnmData const daAlink_c::m_wlAnmDataTable[147] = { - {767, 0, 1, 2600, 255, 255}, {778, 0, 2, 270, 255, 255}, - {779, 0, 2, 270, 255, 255}, {692, 0, 12, 65535, 255, 255}, - {716, 1, 12, 65535, 255, 255}, {714, 1, 12, 65535, 255, 255}, - {715, 1, 12, 65535, 255, 255}, {773, 0, 1, 4095, 255, 255}, - {736, 0, 7, 767, 255, 255}, {735, 0, 7, 1568, 255, 255}, - {734, 0, 12, 65535, 255, 255}, {745, 1, 0, 2047, 255, 255}, - {724, 1, 12, 65535, 255, 255}, {725, 2, 12, 65535, 255, 255}, - {774, 1, 0, 511, 255, 255}, {666, 1, 7, 2559, 255, 255}, - {766, 1, 5, 2559, 255, 255}, {668, 1, 5, 1023, 255, 255}, - {667, 1, 12, 65535, 255, 255}, {765, 1, 6, 6655, 255, 255}, - {764, 1, 12, 65535, 255, 255}, {763, 0, 8, 1023, 255, 255}, - {679, 0, 12, 65535, 255, 255}, {771, 0, 3, 2590, 50, 255}, - {768, 0, 3, 1791, 255, 255}, {706, 1, 5, 1791, 255, 255}, - {750, 1, 12, 65535, 255, 255}, {762, 1, 12, 65535, 255, 255}, - {638, 0, 12, 65535, 255, 255}, {780, 1, 2, 274, 255, 255}, - {746, 1, 12, 65535, 255, 255}, {747, 1, 12, 65535, 255, 255}, - {748, 2, 12, 65535, 255, 255}, {743, 0, 2, 270, 255, 255}, - {739, 1, 5, 5375, 255, 255}, {740, 1, 5, 6911, 255, 255}, - {742, 0, 12, 65535, 255, 255}, {744, 8, 1, 6450, 255, 255}, - {741, 9, 2, 270, 30, 45}, {693, 1, 12, 65535, 255, 255}, - {684, 2, 12, 65535, 255, 255}, {682, 2, 12, 65535, 255, 255}, - {686, 2, 12, 65535, 255, 255}, {688, 2, 12, 65535, 255, 255}, - {685, 2, 10, 8447, 255, 255}, {683, 2, 11, 5375, 255, 255}, - {687, 2, 12, 65535, 255, 255}, {689, 2, 12, 65535, 255, 255}, - {752, 0, 12, 65535, 255, 255}, {770, 0, 1, 2600, 255, 255}, - {719, 0, 12, 65535, 255, 255}, {720, 0, 12, 65535, 255, 255}, - {717, 0, 12, 65535, 255, 255}, {718, 0, 12, 65535, 255, 255}, - {759, 1, 12, 65535, 255, 255}, {760, 0, 1, 3583, 255, 255}, - {758, 0, 2, 511, 255, 255}, {755, 0, 4, 1023, 255, 255}, - {753, 1, 12, 65535, 255, 255}, {775, 0, 12, 65535, 255, 255}, - {681, 1, 12, 65535, 255, 255}, {680, 1, 12, 65535, 255, 255}, - {690, 1, 12, 65535, 255, 255}, {691, 1, 12, 65535, 255, 255}, - {653, 1, 12, 65535, 255, 255}, {654, 1, 12, 65535, 255, 255}, - {655, 0, 12, 65535, 255, 255}, {656, 1, 12, 65535, 255, 255}, - {639, 0, 12, 65535, 255, 255}, {641, 0, 12, 65535, 255, 255}, - {640, 0, 12, 65535, 255, 255}, {730, 0, 12, 65535, 255, 255}, - {645, 1, 12, 65535, 255, 255}, {644, 1, 12, 65535, 255, 255}, - {647, 1, 12, 65535, 255, 255}, {646, 1, 12, 65535, 255, 255}, - {643, 1, 12, 65535, 255, 255}, {642, 1, 12, 65535, 255, 255}, - {731, 0, 12, 65535, 255, 255}, {732, 0, 9, 2047, 255, 255}, - {652, 1, 12, 65535, 255, 255}, {648, 1, 12, 65535, 255, 255}, - {649, 1, 12, 65535, 255, 255}, {651, 1, 12, 65535, 255, 255}, - {650, 1, 12, 65535, 255, 255}, {661, 2, 12, 65535, 255, 255}, - {660, 2, 12, 65535, 255, 255}, {707, 1, 12, 65535, 255, 255}, - {709, 1, 12, 65535, 255, 255}, {708, 1, 12, 65535, 255, 255}, - {676, 0, 12, 65535, 255, 255}, {678, 0, 12, 65535, 255, 255}, - {710, 0, 12, 65535, 255, 255}, {711, 1, 12, 65535, 255, 255}, - {712, 1, 12, 65535, 255, 255}, {713, 0, 1, 7935, 255, 255}, - {722, 1, 12, 65535, 255, 255}, {723, 1, 10, 1279, 255, 255}, - {665, 0, 12, 65535, 255, 255}, {662, 1, 12, 65535, 255, 255}, - {663, 1, 12, 65535, 255, 255}, {664, 1, 11, 10495, 255, 255}, - {738, 1, 12, 65535, 255, 255}, {737, 1, 12, 65535, 255, 255}, - {697, 0, 11, 16895, 255, 255}, {698, 13, 12, 65535, 255, 255}, - {761, 0, 5, 14662, 85, 255}, {749, 1, 6, 511, 255, 255}, - {721, 1, 12, 65535, 255, 255}, {733, 0, 12, 65535, 255, 255}, - {677, 0, 12, 65535, 255, 255}, {674, 0, 12, 65535, 255, 255}, - {675, 0, 12, 65535, 255, 255}, {776, 1, 12, 65535, 255, 255}, - {751, 0, 12, 65535, 255, 255}, {694, 2, 4, 511, 255, 255}, - {659, 1, 12, 65535, 255, 255}, {657, 1, 12, 65535, 255, 255}, - {700, 0, 12, 65535, 255, 255}, {703, 0, 12, 65535, 255, 255}, - {670, 2, 12, 65535, 255, 255}, {669, 2, 12, 65535, 255, 255}, - {658, 1, 5, 4351, 255, 255}, {696, 6, 12, 65535, 255, 255}, - {756, 7, 12, 65535, 255, 255}, {757, 7, 12, 65535, 255, 255}, - {772, 2, 12, 65535, 255, 255}, {769, 0, 1, 4095, 255, 255}, - {754, 0, 1, 3885, 255, 255}, {727, 0, 12, 65535, 255, 255}, - {699, 3, 12, 65535, 255, 255}, {705, 1, 12, 65535, 255, 255}, - {704, 1, 0, 1535, 255, 255}, {777, 0, 1, 511, 255, 255}, - {671, 5, 12, 65535, 255, 255}, {728, 0, 12, 65535, 255, 255}, - {729, 2, 12, 65535, 255, 255}, {16387, 0, 12, 65535, 255, 255}, - {672, 0, 12, 65535, 255, 255}, {673, 0, 12, 65535, 255, 255}, - {726, 1, 0, 5178, 255, 255}, {32808, 10, 12, 65535, 255, 255}, - {32807, 10, 12, 65535, 255, 255}, {32810, 11, 12, 65535, 255, 255}, - {32809, 11, 12, 65535, 255, 255}, {32812, 12, 12, 65535, 255, 255}, - {32811, 12, 12, 65535, 255, 255}, +daAlink_WlAnmData const daAlink_c::m_wlAnmDataTable[daAlink_c::WANM_MAX] = { + {dRes_ID_ALANM_BCK_WL_WAITA_e, 0x0, 0x1, 10, 40, -1, -1}, + {dRes_ID_ALANM_BCK_WL_WALKA_e, 0x0, 0x2, 1, 14, -1, -1}, + {dRes_ID_ALANM_BCK_WL_WALKB_e, 0x0, 0x2, 1, 14, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DASHA_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_JUMPAST_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_JUMPA_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_JUMPAED_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_WAITPP_e, 0x0, 0x1, 15, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_PUSHW_e, 0x0, 0x7, 2, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_PUSHTSWST_e, 0x0, 0x7, 6, 32, -1, -1}, + {dRes_ID_ALANM_BCK_WL_PUSHTSW_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SIT_e, 0x1, 0x0, 7, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_LIE_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_LIEF_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_WAITSIT_e, 0x1, 0x0, 1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_BOXOP_e, 0x1, 0x7, 9, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_VJMPST_e, 0x1, 0x5, 9, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_BUMPST_e, 0x1, 0x5, 3, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_BUMPED_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_VJMPCL_e, 0x1, 0x6, 25, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_VJMPCH_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_TURNBACK_e, 0x0, 0x8, 3, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAM_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_WAITD_e, 0x0, 0x3, 10, 30, 50, -1}, + {dRes_ID_ALANM_BCK_WL_WAITATOD_e, 0x0, 0x3, 6, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_HANG_e, 0x1, 0x5, 6, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SLIP_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_TURN_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_AT_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_WALKSLOPEW_e, 0x1, 0x2, 1, 18, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SLIDEB_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SLIDEBED_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SLIDEFST_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ROPEW_e, 0x0, 0x2, 1, 14, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ROPECLL_e, 0x1, 0x5, 20, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ROPECLR_e, 0x1, 0x5, 26, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ROPETURN_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ROPEWAIT_e, 0x8, 0x1, 25, 50, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ROPEFALTER_e, 0x9, 0x2, 1, 14, 30, 45}, + {dRes_ID_ALANM_BCK_WL_DASHB_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAMFF_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAMFB_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAMFL_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAMFR_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAMFFUP_e, 0x2, 0xA, 32, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAMFBUP_e, 0x2, 0xB, 20, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAMFLUP_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAMFRUP_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SWAITA_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_WAITB_e, 0x0, 0x1, 10, 40, -1, -1}, + {dRes_ID_ALANM_BCK_WL_JUMPBST_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_JUMPBTURNST_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_JUMPB_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_JUMPBED_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SWIMP_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SWIMWAIT_e, 0x0, 0x1, 13, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SWIMING_e, 0x0, 0x2, 1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SWIMDASH_e, 0x0, 0x4, 3, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SWAITB_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_WAITST_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAMF_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAMB_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAML_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DAMR_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKBL_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKBR_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKBS_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKBT_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATRBW_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATRW_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATRD_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_PICKUPA_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATSJLST_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATSJLED_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATSJRST_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATSJRED_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATSJBST_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATSJBED_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_PICKUPB_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_PICKUPTHROW_e, 0x0, 0x9, 7, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKAST_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKA_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKAED_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKAEDF_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKAEDB_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKTST_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKT_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_HDHANG_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_HDHANGWAIT_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_HDHANGSW_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_CUTSTL_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_CUTSTR_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_HOWLA_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_HOWLB_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_HOWLC_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_HOWLED_e, 0x0, 0x1, 30, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_LANDDAMA_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_LANDDAMAST_e, 0x1, 0xA, 4, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKUST_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKU_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKUED_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKUNG_e, 0x1, 0xB, 40, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ROLLBST_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ROLLBED_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DIG_e, 0x0, 0xB, 65, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DIGIN_e, 0xD, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_THROUGH_e, 0x0, 0x5, 57, 70, 85, -1}, + {dRes_ID_ALANM_BCK_WL_SLIDEW_e, 0x1, 0x6, 1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_JUMPKICK_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_PULLOUT_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_CUTSTP_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_CHANGEATOW_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_CHANGEWTOA_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_WAITWIND_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SMELL_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DASHST_e, 0x2, 0x4, 1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKREST_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKREED_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_FLINGL_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_FLINGR_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_CATCHAST_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_CATCHA_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ATTACKREGD_e, 0x1, 0x5, 16, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_DIE_e, 0x6, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SWIMDIEA_e, 0x7, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SWIMDIEP_e, 0x7, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_WAITF_e, 0x2, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_WAITATOSD_e, 0x0, 0x1, 15, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_SWAITD_e, 0x0, 0x1, 15, 45, -1, -1}, + {dRes_ID_ALANM_BCK_WL_MDSHOCK_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_ENTRANCE_e, 0x3, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_GETA_e, 0x1, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_GET_e, 0x1, 0x0, 5, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_WAITYC_e, 0x0, 0x1, 1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_CATCHYC_e, 0x5, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_NUMBA_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_NUMBB_e, 0x2, 0xC, -1, -1, -1, -1}, + {0x4003, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_CHAIN_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_CHAINED_e, 0x0, 0xC, -1, -1, -1, -1}, + {dRes_ID_ALANM_BCK_WL_LISTEN_e, 0x1, 0x0, 20, 58, -1, -1}, + {0x8028, 0xA, 0xC, -1, -1, -1, -1}, + {0x8027, 0xA, 0xC, -1, -1, -1, -1}, + {0x802A, 0xB, 0xC, -1, -1, -1, -1}, + {0x8029, 0xB, 0xC, -1, -1, -1, -1}, + {0x802C, 0xC, 0xC, -1, -1, -1, -1}, + {0x802B, 0xC, 0xC, -1, -1, -1, -1}, }; daAlink_FaceTexData const daAlink_c::m_faceTexDataTable[] = { - 0x03DF, 0x0379, 0x03E0, 0x037A, 0x03E1, 0x037B, 0x03DF, 0x0378, 0x03DF, 0x0383, 0x03E2, 0x032C, - 0x03C6, 0x036A, 0x03D5, 0x036B, 0x03B0, 0x032D, 0x03B1, 0x032E, 0x03E6, 0x0382, 0x03E5, 0x0381, - 0x03F2, 0x0398, 0x03C3, 0x0353, 0x03AF, 0x0398, 0x03F0, 0x0396, 0x03F4, 0x032C, 0x03F3, 0x032C, - 0x03C5, 0x035C, 0x03AF, 0x0342, 0x03AF, 0x0343, 0x03EE, 0x038E, 0x03EF, 0x038F, 0x03ED, 0x038D, - 0x03D8, 0x036E, 0x03D9, 0x036F, 0x03DB, 0x0373, 0x03D7, 0x036D, 0x03E9, 0x0388, 0x03E4, 0x037D, - 0x03D1, 0x0367, 0x03D2, 0x0368, 0x03AF, 0x034A, 0x03AF, 0x034B, 0x03AF, 0x034C, 0x03AF, 0x034D, - 0x03AF, 0x034E, 0x03AF, 0x0391, 0x03E7, 0x0386, 0x03B4, 0x032C, 0x03BC, 0x032C, 0x03AF, 0x0390, - 0x03C9, 0x035E, 0x03C7, 0x035D, 0x03CA, 0x035F, 0x03AF, 0x0395, 0x03AF, 0x0341, 0x03AF, 0x0351, - 0x03AF, 0x0352, 0x03AF, 0x0349, 0x03AF, 0x0344, 0x03AF, 0x0345, 0x03AF, 0x0346, 0x03BD, 0x032C, - 0x03BE, 0x032C, 0x03EA, 0x0389, 0x03AF, 0x038A, 0x03CB, 0x032C, 0x03AF, 0x0355, 0x03AF, 0x0354, - 0x03AF, 0x0350, 0x03AF, 0x034F, 0x03B8, 0x0334, 0x03B6, 0x0332, 0x03B7, 0x0333, 0x03B5, 0x0331, - 0x03AF, 0x0336, 0x03AF, 0x0337, 0x03B9, 0x032C, 0x03AF, 0x0338, 0x03AF, 0x0339, 0x03AF, 0x0335, - 0x03DC, 0x0335, 0x03DE, 0x0335, 0x03DA, 0x0370, 0x03AF, 0x033E, 0x03D3, 0x032C, 0x03BB, 0x033C, - 0x03AF, 0x033B, 0x03BA, 0x033A, 0x03CE, 0x0364, 0x03CF, 0x0365, 0x03EB, 0x038B, 0x03EC, 0x038C, - 0x03D4, 0x0369, 0x03C0, 0x032C, 0x03C1, 0x033F, 0x03C1, 0x0340, 0x03D0, 0x0366, 0x03C2, 0x032C, - 0x03AF, 0x035A, 0x03C4, 0x035B, 0x03BF, 0x032C, 0x03C8, 0x032C, 0x1045, 0x103B, 0x1046, 0x032C, - 0x1041, 0x1037, 0x1042, 0x1038, 0x1043, 0x1039, 0x1047, 0x103C, 0x1040, 0x1036, 0x1044, 0x103A, - 0x103F, 0x032C, 0x03AF, 0x2032, 0x03AF, 0x2033, 0x2039, 0x2034, 0x03AF, 0x5054, 0x03AF, 0x5055, - 0x5059, 0x5056, 0x03E8, 0x0387, 0x03AF, 0x0372, 0x03AF, 0x0384, 0x03AF, 0x0385, 0x03D6, 0x036C, - 0x03AF, 0x0392, 0x03AF, 0x0393, 0x03AF, 0x0377, 0x03AF, 0x0361, 0x03AF, 0x0362, 0x03CD, 0x0363, - 0x03AF, 0x033D, 0x03F1, 0x0397, 0x03DC, 0x032C, 0x03DD, 0x032C, 0x03DE, 0x032C, 0x03B3, 0x0330, - 0x03CC, 0x0360, 0x03AF, 0x0348, 0x03AF, 0x0347, 0x03AF, 0x0358, 0x03AF, 0x0359, 0x03AF, 0x0356, - 0x03AF, 0x0357, 0x6018, 0x6015, 0x03AF, 0x7070, 0x03AF, 0x7071, 0x03E3, 0x037C, 0x03B2, 0x032F, - 0x03AF, 0x0394, 0x0417, 0x03A9, 0x0418, 0x03AA, 0x041A, 0x03A7, 0x041E, 0x03A7, 0x041B, 0x03A7, - 0x040E, 0x03A7, 0x040C, 0x03A7, 0x040F, 0x03A7, 0x0410, 0x03A7, 0x0420, 0x03A7, 0x0415, 0x03A7, - 0x0416, 0x03A7, 0x040B, 0x03A7, 0x0411, 0x03A7, 0x041F, 0x03A7, 0x040A, 0x03A7, 0x0409, 0x03A7, - 0x0412, 0x03A7, 0x041C, 0x03A7, 0x041D, 0x03A7, 0x0419, 0x03AB, 0x0413, 0x03A8, 0x0414, 0x03A7, - 0x040D, 0x03A7, + {dRes_ID_ALANM_BTP_FMABA01_e, dRes_ID_ALANM_BTK_FMABA01_e}, + {dRes_ID_ALANM_BTP_FMABA02_e, dRes_ID_ALANM_BTK_FMABA02_e}, + {dRes_ID_ALANM_BTP_FMABA03_e, dRes_ID_ALANM_BTK_FMABA03_e}, + {dRes_ID_ALANM_BTP_FMABA01_e, dRes_ID_ALANM_BTK_FL_e}, + {dRes_ID_ALANM_BTP_FMABA01_e, dRes_ID_ALANM_BTK_FR_e}, + {dRes_ID_ALANM_BTP_FMABAGOMA_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FDAM01_e, dRes_ID_ALANM_BTK_FFINISHA_e}, + {dRes_ID_ALANM_BTP_FFINISHA_e, dRes_ID_ALANM_BTK_FFINISHED_e}, + {dRes_ID_ALANM_BTP_FARELORD_e, dRes_ID_ALANM_BTK_FARELORD_e}, + {dRes_ID_ALANM_BTP_FARELORDTAME_e, dRes_ID_ALANM_BTK_FARELORDTAME_e}, + {dRes_ID_ALANM_BTP_FPUSHW_e, dRes_ID_ALANM_BTK_FPUSHW_e}, + {dRes_ID_ALANM_BTP_FPULLW_e, dRes_ID_ALANM_BTK_FPULLW_e}, + {dRes_ID_ALANM_BTP_FWAITST_e, dRes_ID_ALANM_BTK_FWAITST_e}, + {dRes_ID_ALANM_BTP_FCUTST_e, dRes_ID_ALANM_BTK_FCUTST_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FWAITST_e}, + {dRes_ID_ALANM_BTP_FWAITHDB_e, dRes_ID_ALANM_BTK_FWAITHDB_e}, + {dRes_ID_ALANM_BTP_FWAITWB_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FWAITWATOWB_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FCUTUNG_e, dRes_ID_ALANM_BTK_FCUTUNG_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTDL_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTDR_e}, + {dRes_ID_ALANM_BTP_FSWIMINGA_e, dRes_ID_ALANM_BTK_FSWIMINGA_e}, + {dRes_ID_ALANM_BTP_FSWIMP_e, dRes_ID_ALANM_BTK_FSWIMP_e}, + {dRes_ID_ALANM_BTP_FSWIMDIVE_e, dRes_ID_ALANM_BTK_FSWIMDIVE_e}, + {dRes_ID_ALANM_BTP_FGRABP_e, dRes_ID_ALANM_BTK_FGRABP_e}, + {dRes_ID_ALANM_BTP_FGRABUP_e, dRes_ID_ALANM_BTK_FGRABUP_e}, + {dRes_ID_ALANM_BTP_FHEAVYTHROW_e, dRes_ID_ALANM_BTK_FHEAVYTHROW_e}, + {dRes_ID_ALANM_BTP_FGRABNG_e, dRes_ID_ALANM_BTK_FGRABNG_e}, + {dRes_ID_ALANM_BTP_FSWAITA_e, dRes_ID_ALANM_BTK_FSWAITA_e}, + {dRes_ID_ALANM_BTP_FPICKUP_e, dRes_ID_ALANM_BTK_FPICKUP_e}, + {dRes_ID_ALANM_BTP_FDOOROPA_e, dRes_ID_ALANM_BTK_FDOOROPA_e}, + {dRes_ID_ALANM_BTP_FDOOROPB_e, dRes_ID_ALANM_BTK_FDOOROPB_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTHLA_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTHLB_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTHRA_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTHRB_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTHTB_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FTURNBS_e}, + {dRes_ID_ALANM_BTP_FROLLFGOOD_e, dRes_ID_ALANM_BTK_FROLLFGOOD_e}, + {dRes_ID_ALANM_BTP_FB_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FC_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FTURNBACK_e}, + {dRes_ID_ALANM_BTP_FDAMFFUP_e, dRes_ID_ALANM_BTK_FDAMFFUP_e}, + {dRes_ID_ALANM_BTP_FDAMFBUP_e, dRes_ID_ALANM_BTK_FDAMFBUP_e}, + {dRes_ID_ALANM_BTP_FDAMFRLUP_e, dRes_ID_ALANM_BTK_FDAMFRLUP_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FWAITATOS_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTA_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTL_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTR_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTF_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTEA_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTEB_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTEG_e}, + {dRes_ID_ALANM_BTP_FCHANGEATOW_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FCHANGEWTOA_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FSWAITHA_e, dRes_ID_ALANM_BTK_FSWAITHA_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FSWIATHB_e}, + {dRes_ID_ALANM_BTP_FDASHWIND_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTTB_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTT_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTJST_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTJED_e}, + {dRes_ID_ALANM_BTP_FBINDRINKST_e, dRes_ID_ALANM_BTK_FBINDRINKST_e}, + {dRes_ID_ALANM_BTP_FBINDRINK_e, dRes_ID_ALANM_BTK_FBINDRINK_e}, + {dRes_ID_ALANM_BTP_FBINDRINKED_e, dRes_ID_ALANM_BTK_FBINDRINKED_e}, + {dRes_ID_ALANM_BTP_FBINBAD_e, dRes_ID_ALANM_BTK_FBINBAD_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FBINOP_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FBINOUT_e}, + {dRes_ID_ALANM_BTP_FBINFAIRY_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FBINSWINGS_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FBINSWINGU_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FBINGET_e}, + {dRes_ID_ALANM_BTP_FI_e, dRes_ID_ALANM_BTK_FBINGET_e}, + {dRes_ID_ALANM_BTP_FK_e, dRes_ID_ALANM_BTK_FBINGET_e}, + {dRes_ID_ALANM_BTP_FGRASSAST_e, dRes_ID_ALANM_BTK_FGRASSAST_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCATCHTAKA_e}, + {dRes_ID_ALANM_BTP_FE_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FBOXOPSHORT_e, dRes_ID_ALANM_BTK_FBOXOPSHORT_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FBOXOPKICK_e}, + {dRes_ID_ALANM_BTP_FBOXOP_e, dRes_ID_ALANM_BTK_FBOXOP_e}, + {dRes_ID_ALANM_BTP_FDIE_e, dRes_ID_ALANM_BTK_FDIE_e}, + {dRes_ID_ALANM_BTP_FDIEH_e, dRes_ID_ALANM_BTK_FDIEH_e}, + {dRes_ID_ALANM_BTP_FSWIMDIEA_e, dRes_ID_ALANM_BTK_FSWIMDIEA_e}, + {dRes_ID_ALANM_BTP_FSWIMDIEP_e, dRes_ID_ALANM_BTK_FSWIMDIEP_e}, + {dRes_ID_ALANM_BTP_FENTRANCE_e, dRes_ID_ALANM_BTK_FENTRANCE_e}, + {dRes_ID_ALANM_BTP_FCOWCATCHST_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FCOWTHROW_e, dRes_ID_ALANM_BTK_FCOWTHROWL_e}, + {dRes_ID_ALANM_BTP_FCOWTHROW_e, dRes_ID_ALANM_BTK_FCOWTHROWR_e}, + {dRes_ID_ALANM_BTP_FDIEHUP_e, dRes_ID_ALANM_BTK_FDIEHUP_e}, + {dRes_ID_ALANM_BTP_FCUTRE_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTU_e}, + {dRes_ID_ALANM_BTP_FCUTUED_e, dRes_ID_ALANM_BTK_FCUTUED_e}, + {dRes_ID_ALANM_BTP_FCLIMBHANGMISS_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FDAMFBW_e, dRes_ID_ALANM_BTK_FA_e}, + {0x45 | (1 << 12), 0x3B | (1 << 12)}, + {0x46 | (1 << 12), dRes_ID_ALANM_BTK_FA_e}, + {0x41 | (1 << 12), 0x37 | (1 << 12)}, + {0x42 | (1 << 12), 0x38 | (1 << 12)}, + {0x43 | (1 << 12), 0x39 | (1 << 12)}, + {0x47 | (1 << 12), 0x3C | (1 << 12)}, + {0x40 | (1 << 12), 0x36 | (1 << 12)}, + {0x44 | (1 << 12), 0x3A | (1 << 12)}, + {0x3F | (1 << 12), dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FA_e, 0x32 | (2 << 12)}, + {dRes_ID_ALANM_BTP_FA_e, 0x33 | (2 << 12)}, + {0x39 | (2 << 12), 0x34 | (2 << 12)}, + {dRes_ID_ALANM_BTP_FA_e, 0x54 | (5 << 12)}, + {dRes_ID_ALANM_BTP_FA_e, 0x55 | (5 << 12)}, + {0x59 | (5 << 12), 0x56 | (5 << 12)}, + {dRes_ID_ALANM_BTP_FSPILLH_e, dRes_ID_ALANM_BTK_FSPILLH_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FHANGH_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FRODSWING_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FRODSWINGL_e}, + {dRes_ID_ALANM_BTP_FGETSWL_e, dRes_ID_ALANM_BTK_FGETSWL_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FTURNLS_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FTURNRS_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FKEYCATCHH_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FDEMOTALKA_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FDEMOTALKB_e}, + {dRes_ID_ALANM_BTP_FDEMOTALKC_e, dRes_ID_ALANM_BTK_FDEMOTALKC_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCANORELEASE_e}, + {dRes_ID_ALANM_BTP_FWAITINSECT_e, dRes_ID_ALANM_BTK_FWAITINSECT_e}, + {dRes_ID_ALANM_BTP_FI_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FJ_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FK_e, dRes_ID_ALANM_BTK_FA_e}, + {dRes_ID_ALANM_BTP_FATDEFNG_e, dRes_ID_ALANM_BTK_FATDEFNG_e}, + {dRes_ID_ALANM_BTP_FDEMOMHOP_e, dRes_ID_ALANM_BTK_FDEMOMHOP_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTEHST_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTEH_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTTJP_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTTJST_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTTJ_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FCUTTJED_e}, + {0x18 | (6 << 12), 0x15 | (6 << 12)}, + {dRes_ID_ALANM_BTP_FA_e, 0x70 | (7 << 12)}, + {dRes_ID_ALANM_BTP_FA_e, 0x71 | (7 << 12)}, + {dRes_ID_ALANM_BTP_FODOROKU_e, dRes_ID_ALANM_BTK_FODOROKU_e}, + {dRes_ID_ALANM_BTP_FASHIMOTO_e, dRes_ID_ALANM_BTK_FASHIMOTO_e}, + {dRes_ID_ALANM_BTP_FA_e, dRes_ID_ALANM_BTK_FUNAZUKU_e}, + {dRes_ID_ALANM_BTP_WL_FMABA01_e, dRes_ID_ALANM_BTK_WL_FMABA01_e}, + {dRes_ID_ALANM_BTP_WL_FMABA02_e, dRes_ID_ALANM_BTK_WL_FMABA02_e}, + {dRes_ID_ALANM_BTP_WL_FSWAITA_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FSWIMP_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FSWAITB_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FDAM_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FB_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FDAMFFBUP_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FDAMFLRUP_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FWAITST_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FLANDDAMA_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FLANDDAMAST_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FATTACKUNG_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FDASHWIND_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FTHROUGH_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FATTACKREST_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FATTACKREED_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FDIE_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FSWIMDIEA_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FSWIMDIEP_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FMDSHOCK_e, dRes_ID_ALANM_BTK_WL_FMDSHOCK_e}, + {dRes_ID_ALANM_BTP_WL_FENTRANCE_e, dRes_ID_ALANM_BTK_WL_FENTRANCE_e}, + {dRes_ID_ALANM_BTP_WL_FHOWLC_e, dRes_ID_ALANM_BTK_WL_FA_e}, + {dRes_ID_ALANM_BTP_WL_FC_e, dRes_ID_ALANM_BTK_WL_FA_e}, }; #include "d/actor/d_a_alink_link.inc" @@ -1743,19 +2006,19 @@ void daAlink_matAnm_c::init() { mSetFlag = 0; } -void daAlink_matAnm_c::calc(J3DMaterial* param_0) const { - J3DMaterialAnm::calc(param_0); +void daAlink_matAnm_c::calc(J3DMaterial* i_material) const { + J3DMaterialAnm::calc(i_material); if (!daAlink_getAlinkActorClass()->checkStatusWindowDraw()) { for (u32 i = 0; i < 8; i++) { if (getTexMtxAnm(i).getAnmFlag()) { - J3DTexMtxInfo* info = ¶m_0->getTexGenBlock()->getTexMtx(i)->getTexMtxInfo(); + J3DTexMtxInfo* info = &i_material->getTexGenBlock()->getTexMtx(i)->getTexMtxInfo(); if (m_morf_frame != 0) { if (!mSetFlag) { f32 var_f31 = 1.0f / (m_morf_frame + 1); info->mSRT.mTranslationX = field_0xf4 * (1.0f - var_f31) + info->mSRT.mTranslationX * var_f31; info->mSRT.mTranslationY = field_0xf8 * (1.0f - var_f31) + info->mSRT.mTranslationY * var_f31; - const_cast(mSetFlag) = 1; + mSetFlag = 1; } else { info->mSRT.mTranslationX = field_0xf4; info->mSRT.mTranslationY = field_0xf8; @@ -1765,30 +2028,31 @@ void daAlink_matAnm_c::calc(J3DMaterial* param_0) const { info->mSRT.mTranslationY = mNowOffsetY; } - const_cast(field_0xf4) = info->mSRT.mTranslationX; - const_cast(field_0xf8) = info->mSRT.mTranslationY; + field_0xf4 = info->mSRT.mTranslationX; + field_0xf8 = info->mSRT.mTranslationY; } } } } -bool daAlink_c::checkStageName(const char* stage) { - return strcmp(dComIfGp_getStartStageName(), stage) == 0; +bool daAlink_c::checkStageName(const char* i_stageName) { + return strcmp(dComIfGp_getStartStageName(), i_stageName) == 0; } void daAlink_c::tgHitCallback(fopAc_ac_c* i_atActor, dCcD_GObjInf* i_tgObjInf, dCcD_GObjInf* i_atObjInf) { + int i; if (i_atObjInf->ChkAtType(AT_TYPE_40000)) { field_0x369c = *i_atObjInf->GetAtVecP(); - for (int i = 0; i < 3; i++) { - if (i_tgObjInf == &field_0x850[i]) { + for (i = 0; i < 3; i++) { + if (i_tgObjInf == &mTgCyls[i]) { field_0x2fb8 |= (1 << i); field_0x36b4 = i_atActor->current.pos; return; } } } else { - for (int i = 0; i < 3; i++) { - if (i_tgObjInf == &field_0x850[i]) { + for (i = 0; i < 3; i++) { + if (i_tgObjInf == &mTgCyls[i]) { field_0x2fb8 &= ~(1 << i); return; } @@ -1798,8 +2062,10 @@ void daAlink_c::tgHitCallback(fopAc_ac_c* i_atActor, dCcD_GObjInf* i_tgObjInf, d void daAlink_c::coHitCallback(fopAc_ac_c* i_coHitActor, dCcD_GObjInf* i_coHitObj) { if (!checkWolf() && !checkNoResetFlg3(FLG3_UNK_20000000)) { - if (((mProcID != PROC_CUT_HEAD && mProcID != PROC_CUT_DOWN) || i_coHitActor != field_0x280c.getActor()) && (!checkModeFlg(0x10040) || fopAcM_GetName(i_coHitActor) == PROC_CSTAF)) { - field_0x372c += *field_0x814.GetCCMoveP(); + if (((mProcID != PROC_CUT_HEAD && mProcID != PROC_CUT_DOWN) || i_coHitActor != field_0x280c.getActor()) + && (!checkModeFlg(0x10040) || fopAcM_GetName(i_coHitActor) == PROC_CSTAF)) + { + field_0x372c += *mCcStts.GetCCMoveP(); } field_0x30fe++; @@ -1807,21 +2073,21 @@ void daAlink_c::coHitCallback(fopAc_ac_c* i_coHitActor, dCcD_GObjInf* i_coHitObj if (fopAcM_GetName(i_coHitActor) == PROC_Obj_WaterFall) { if (checkWolf()) { - if (i_coHitObj == &field_0x850[0]) { - onEndResetFlg1(ERFLG1_UNK_800); - } else if (i_coHitObj == &field_0x850[2]) { + if (i_coHitObj == &mTgCyls[0]) { + onEndResetFlg1(ERFLG1_WATERFALL_FRONT_HIT); + } else if (i_coHitObj == &mTgCyls[2]) { onEndResetFlg1(ERFLG1_UNK_1000); } } else { - onEndResetFlg1(ERFLG1_UNK_800); + onEndResetFlg1(ERFLG1_WATERFALL_FRONT_HIT); } } } -void daAlink_c::setMatrixWorldAxisRot(MtxP param_0, s16 param_1, s16 param_2, s16 param_3, - int param_4, cXyz const* param_5) { +void daAlink_c::setMatrixWorldAxisRot(MtxP i_mtx, s16 i_rotX, s16 i_rotY, s16 i_rotZ, + BOOL param_4, const cXyz* param_5) { cXyz tmp; - mDoMtx_multVecZero(param_0, &tmp); + mDoMtx_multVecZero(i_mtx, &tmp); if (param_5 != NULL) { mDoMtx_stack_c::transS(*param_5); } else { @@ -1830,34 +2096,35 @@ void daAlink_c::setMatrixWorldAxisRot(MtxP param_0, s16 param_1, s16 param_2, s1 concatMagneBootMtx(); mDoMtx_stack_c::YrotM(shape_angle.y); - mDoMtx_stack_c::ZXYrotM(param_1, param_2, param_3); + mDoMtx_stack_c::ZXYrotM(i_rotX, i_rotY, i_rotZ); mDoMtx_stack_c::YrotM(-shape_angle.y); concatMagneBootInvMtx(); mDoMtx_stack_c::transM(-tmp.x, -tmp.y, -tmp.z); - MTXConcat(mDoMtx_stack_c::get(), param_0, mDoMtx_stack_c::get()); - MTXCopy(mDoMtx_stack_c::get(), param_0); - if (param_4 != 0) { - MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + mDoMtx_stack_c::concat(i_mtx); + mDoMtx_copy(mDoMtx_stack_c::get(), i_mtx); + + if (param_4) { + mDoMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); } } -int daAlink_c::jointControll(int param_0) { +int daAlink_c::jointControll(int i_jointNo) { csXyz sp18(0, 0, 0); int var_r27 = 0; J3DTransformInfo jointTrans; - J3DTransformInfo rootTrans = *field_0x2060->getOldFrameTransInfo(param_0); + J3DTransformInfo rootTrans = *field_0x2060->getOldFrameTransInfo(i_jointNo); Quaternion sp50; Quaternion sp40; Quaternion sp30; - Quaternion sp20 = *field_0x2060->getOldFrameQuaternion(param_0); + Quaternion sp20 = *field_0x2060->getOldFrameQuaternion(i_jointNo); csXyz sp10(0, 1, 2); J3DTransformInfo* oldTransInfo; if (checkWolf()) { - if (param_0 == 0) { + if (i_jointNo == 0) { if (mProcID == PROC_TOOL_DEMO) { oldTransInfo = field_0x2060->getOldFrameTransInfo(0); oldTransInfo->mTranslate.x = 0.0f; @@ -1882,29 +2149,29 @@ int daAlink_c::jointControll(int param_0) { sp10.set(2, 1, 0); jointTrans = *field_0x2060->getOldFrameTransInfo(0); var_r27 |= 2; - } else if (param_0 == 3) { + } else if (i_jointNo == 3) { sp18.set((field_0x30d6 + field_0x30b2), 0, field_0x30b0); sp10.set(2, 0, 1); - } else if (param_0 == 0x1A) { + } else if (i_jointNo == 26) { sp18.set(0, -field_0x2fec, 0); sp10.set(2, 1, 0); - } else if (param_0 >= 0x25 && param_0 <= 0x27) { - sp18.set(0, field_0x3094[param_0 - 0x25], 0); + } else if (i_jointNo >= 37 && i_jointNo <= 39) { + sp18.set(0, field_0x3094[i_jointNo - 37], 0); sp10.set(2, 1, 0); - } else if (param_0 == 2) { + } else if (i_jointNo == 2) { sp18.set(0, -field_0x2fec, 0); sp10.set(2, 1, 0); - } else if (param_0 == 4) { - sp18.set(field_0x3124, -field_0x3126, field_0x3128); + } else if (i_jointNo == 4) { + sp18.set(field_0x3124.x, -field_0x3124.y, field_0x3124.z); sp10.set(2, 1, 0); } - } else if (param_0 == 4) { - sp18.set(field_0x3124, -field_0x3126, field_0x3128); + } else if (i_jointNo == 4) { + sp18.set(field_0x3124.x, -field_0x3124.y, field_0x3124.z); sp10.set(2, 1, 0); - } else if (param_0 == 0x10) { + } else if (i_jointNo == 16) { sp18.set(field_0x3088, 0, -field_0x308a); sp10.set(2, 0, 1); - } else if (param_0 == 1) { + } else if (i_jointNo == 1) { s16 sp8; if (checkReinRide() && !checkHorseLieAnime() && mProcID != PROC_HORSE_RUN && mProcID != PROC_BOAR_RUN) { sp8 = (s16)(mBodyAngle.x - shape_angle.x); @@ -1915,11 +2182,11 @@ int daAlink_c::jointControll(int param_0) { if (sp8 || field_0x30c8 != 0 || mBodyAngle.z != 0) { setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(1), sp8, field_0x30c8, mBodyAngle.z, 1, NULL); } - } else if (param_0 == 2) { + } else if (i_jointNo == 2) { if (field_0x30c8 != 0) { setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(2), 0, field_0x30c8, 0, 1, NULL); } - } else if (param_0 == 0) { + } else if (i_jointNo == 0) { if (mProcID == PROC_TOOL_DEMO || mProcID == PROC_GANON_FINISH) { oldTransInfo = field_0x2060->getOldFrameTransInfo(0); oldTransInfo->mTranslate.x = 0.0f; @@ -1947,19 +2214,19 @@ int daAlink_c::jointControll(int param_0) { jointTrans.mTranslate.y -= field_0x384c->y; jointTrans.mTranslate.z -= field_0x384c->z; } - } else if (param_0 == 0x1B) { - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(param_0), mFootData1[0].field_0x6, 0, 0, 1, NULL); - } else if (param_0 == 0x1D) { - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(param_0), mFootData1[1].field_0x6, 0, 0, 1, NULL); - } else if (param_0 == 5) { + } else if (i_jointNo == 27) { + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(i_jointNo), mFootData1[0].field_0x6, 0, 0, 1, NULL); + } else if (i_jointNo == 29) { + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(i_jointNo), mFootData1[1].field_0x6, 0, 0, 1, NULL); + } else if (i_jointNo == 5) { if (checkReinRide() && checkBowAnime()) { var_r27 = 1; - sp50 = *field_0x2060->getOldFrameQuaternion(param_0); + sp50 = *field_0x2060->getOldFrameQuaternion(i_jointNo); JMAEulerToQuat(0, 0, 5000, &sp40); mDoMtx_QuatConcat(&sp50, &sp40, &sp30); } - } else if ((param_0 == 0xD || param_0 == 0xC) && (checkCanoeFishingWaitAnime() || checkUnderMove0BckNoArc(ANM_CANOE_FISH_LEFT) || checkUnderMove0BckNoArc(ANM_CANOE_FISH_RIGHT))) { - if (param_0 == 0xD) { + } else if ((i_jointNo == 13 || i_jointNo == 12) && (checkCanoeFishingWaitAnime() || checkUnderMove0BckNoArc(ANM_CANOE_FISH_LEFT) || checkUnderMove0BckNoArc(ANM_CANOE_FISH_RIGHT))) { + if (i_jointNo == 13) { sp18 = field_0x3160; } else { sp18 = mFishingArm1Angle; @@ -1969,7 +2236,7 @@ int daAlink_c::jointControll(int param_0) { if (sp18.x != 0 || sp18.y != 0 || sp18.z != 0) { var_r27 |= 1; if (sp18.y != 0) { - sp50 = *field_0x2060->getOldFrameQuaternion(param_0); + sp50 = *field_0x2060->getOldFrameQuaternion(i_jointNo); if (sp10.y == 0) { JMAEulerToQuat(sp18.y, 0, 0, &sp40); @@ -1981,7 +2248,7 @@ int daAlink_c::jointControll(int param_0) { mDoMtx_QuatConcat(&sp50, &sp40, &sp30); } else { - sp30 = *field_0x2060->getOldFrameQuaternion(param_0); + sp30 = *field_0x2060->getOldFrameQuaternion(i_jointNo); } if (sp18.x != 0) { @@ -2014,20 +2281,20 @@ int daAlink_c::jointControll(int param_0) { } if (var_r27 != 0) { - MtxP temp_r26 = mpLinkModel->getAnmMtx(param_0); + MtxP temp_r26 = mpLinkModel->getAnmMtx(i_jointNo); J3DTransformInfo* var_r25; if ((var_r27 & 2)) { var_r25 = &jointTrans; } else { - var_r25 = field_0x2060->getOldFrameTransInfo(param_0); + var_r25 = field_0x2060->getOldFrameTransInfo(i_jointNo); } Quaternion* spC; if ((var_r27 & 1)) { spC = &sp30; } else { - spC = field_0x2060->getOldFrameQuaternion(param_0); + spC = field_0x2060->getOldFrameQuaternion(i_jointNo); } mDoMtx_stack_c::transS(rootTrans.mTranslate.x, rootTrans.mTranslate.y, rootTrans.mTranslate.z); @@ -2068,7 +2335,7 @@ void daAlink_c::setUpperFront() { J3DSys::mCurrentMtx[1][3] = mRootMtx[1][3]; J3DSys::mCurrentMtx[2][3] = mRootMtx[2][3]; } else { - mDoMtx_stack_c::quatS(field_0x2060->getOldFrameQuaternion( 0)); + mDoMtx_stack_c::quatS(field_0x2060->getOldFrameQuaternion(0)); mDoMtx_stack_c::inverse(); cMtx_concat(J3DSys::mCurrentMtx, mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); } @@ -2077,70 +2344,70 @@ void daAlink_c::setUpperFront() { } } -void daAlink_c::changeBlendRate(int param_0) { +void daAlink_c::changeBlendRate(int i_jointNo) { if (field_0x2fb6 == 5) { - if (param_0 == 0) { + if (i_jointNo == 0) { mNowAnmPackUpper[2].setRatio(0.0f); - } else if (param_0 == 5) { + } else if (i_jointNo == 5) { mNowAnmPackUpper[2].setRatio(field_0x3444); - } else if (param_0 == 0xA) { + } else if (i_jointNo == 10) { mNowAnmPackUpper[2].setRatio(0.0f); - } else if (param_0 == 0xF) { + } else if (i_jointNo == 15) { mNowAnmPackUpper[2].setRatio(field_0x3444); } } else if (field_0x2fb6 == 1) { - if (param_0 == 0) { + if (i_jointNo == 0) { mNowAnmPackUpper[2].setRatio(0.0f); - } else if (param_0 == 5) { + } else if (i_jointNo == 5) { mNowAnmPackUpper[2].setRatio(field_0x3444); } } else if (field_0x2fb6 == 2) { - if (param_0 == 0xA) { + if (i_jointNo == 10) { mNowAnmPackUpper[2].setRatio(0.0f); - } else if (param_0 == 0xF) { + } else if (i_jointNo == 15) { mNowAnmPackUpper[2].setRatio(field_0x3444); } } else if (field_0x2fb6 == 3) { - if (param_0 == 4) { + if (i_jointNo == 4) { mNowAnmPackUpper[2].setRatio(0.0f); - } else if (param_0 == 5) { + } else if (i_jointNo == 5) { mNowAnmPackUpper[2].setRatio(field_0x3444); } } else if (field_0x2fb6 == 7) { - if (param_0 == 0) { + if (i_jointNo == 0) { mNowAnmPackUpper[2].setRatio(0.0f); - } else if (param_0 == 4) { + } else if (i_jointNo == 4) { mNowAnmPackUpper[2].setRatio(1.0f); - } else if (param_0 == 5) { + } else if (i_jointNo == 5) { mNowAnmPackUpper[2].setRatio(0.0f); - } else if (param_0 == 0xF) { + } else if (i_jointNo == 15) { mNowAnmPackUpper[2].setRatio(1.0f); } } else if (field_0x2fb6 == 6) { - if (param_0 == 4) { + if (i_jointNo == 4) { setDoubleAnimeBlendRatio(1.0f); - } else if (param_0 == 5) { + } else if (i_jointNo == 5) { setDoubleAnimeBlendRatio(0.0f); } } else if (field_0x2fb6 == 8) { - if (param_0 == 4) { + if (i_jointNo == 4) { mNowAnmPackUpper[2].setRatio(0.0f); mNowAnmPackUpper[1].setRatio(1.0f); - } else if (param_0 == 5) { + } else if (i_jointNo == 5) { mNowAnmPackUpper[2].setRatio(field_0x3444); mNowAnmPackUpper[1].setRatio(0.0f); } } else if (field_0x2fb6 == 4) { - if (param_0 == 0) { + if (i_jointNo == 0) { mNowAnmPackUpper[2].setRatio(0.0f); - } else if (param_0 == 0xD) { + } else if (i_jointNo == 13) { mNowAnmPackUpper[2].setRatio(field_0x3444); } } } void daAlink_c::resetRootMtx() { - MTXCopy(mRootMtx, J3DSys::mCurrentMtx); + cMtx_copy(mRootMtx, J3DSys::mCurrentMtx); field_0x2f90 = 0; } @@ -2161,40 +2428,41 @@ bool daAlink_c::modelCallBack(int i_jointNo) { { changeBlendRate(i_jointNo); } + return true; } -static int daAlink_modelCallBack(J3DJoint* p_joint, int param_1) { - int jntNo = p_joint->getJntNo(); - daAlink_c* alink = (daAlink_c*)j3dSys.getModel()->getUserArea(); +static int daAlink_modelCallBack(J3DJoint* i_joint, int param_1) { + int jntNo = i_joint->getJntNo(); + daAlink_c* i_this = (daAlink_c*)j3dSys.getModel()->getUserArea(); if (param_1 == 0) { - alink->modelCallBack(jntNo); - } else if (param_1 == 1 && alink->checkResetRootMtx(jntNo)) { - alink->resetRootMtx(); + i_this->modelCallBack(jntNo); + } else if (param_1 == 1 && i_this->checkResetRootMtx(jntNo)) { + i_this->resetRootMtx(); } return 1; } -int daAlink_c::headModelCallBack(int param_0) { - if (mpDemoHDTmpBck == NULL || !mpDemoHDTmpBck->getBckAnm() || (checkEndResetFlg1(ERFLG1_UNK_400000) && param_0 < 6)) { +int daAlink_c::headModelCallBack(int i_jointNo) { + if (mpDemoHDTmpBck == NULL || !mpDemoHDTmpBck->getBckAnm() || (checkEndResetFlg1(ERFLG1_UNK_400000) && i_jointNo < 6)) { if (checkNoResetFlg2(FLG2_STATUS_WINDOW_DRAW)) { mDoMtx_stack_c::copy(J3DSys::mCurrentMtx); mDoMtx_stack_c::ZrotM(-6500); - mpLinkHatModel->setAnmMtx(param_0, mDoMtx_stack_c::get()); + mpLinkHatModel->setAnmMtx(i_jointNo, mDoMtx_stack_c::get()); cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); - } else if (param_0 >= 6) { + } else if (i_jointNo >= 6) { mDoMtx_stack_c::copy(J3DSys::mCurrentMtx); - if (param_0 == 6) { + if (i_jointNo == 6) { mDoMtx_stack_c::XYZrotM(0, (field_0x3040[7] >> 1), (field_0x302c[7] >> 1)); } else { - int temp_r28 = param_0 - 7; + int temp_r28 = i_jointNo - 7; if (temp_r28 == 0) { mDoMtx_stack_c::XYZrotM(0, (field_0x3040[7] >> 1), ((field_0x302c[7] >> 1) + field_0x3066[0])); } else { - mDoMtx_stack_c::XYZrotM(0, field_0x3040[param_0], (field_0x302c[param_0] + field_0x3066[temp_r28])); + mDoMtx_stack_c::XYZrotM(0, field_0x3040[i_jointNo], (field_0x302c[i_jointNo] + field_0x3066[temp_r28])); } } @@ -2202,20 +2470,20 @@ int daAlink_c::headModelCallBack(int param_0) { mDoMtx_stack_c::scaleM(field_0x347c, 1.0f, 1.0f); } - mpLinkHatModel->setAnmMtx(param_0, mDoMtx_stack_c::get()); + mpLinkHatModel->setAnmMtx(i_jointNo, mDoMtx_stack_c::get()); cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); } else { s16 temp_r27 = shape_angle.y; shape_angle.y = field_0x3062; - setMatrixWorldAxisRot(mpLinkHatModel->getAnmMtx(param_0), field_0x302c[param_0], 0, field_0x3040[param_0], 0, NULL); + setMatrixWorldAxisRot(mpLinkHatModel->getAnmMtx(i_jointNo), field_0x302c[i_jointNo], 0, field_0x3040[i_jointNo], 0, NULL); shape_angle.y = temp_r27; } } - if (checkZoraWearAbility() && param_0 == 6) { + if (checkZoraWearAbility() && i_jointNo == 6) { mDoMtx_stack_c::copy(J3DSys::mCurrentMtx); mDoMtx_stack_c::scaleM(1.2f, 1.0f, 1.0f); - mpLinkHatModel->setAnmMtx(param_0, mDoMtx_stack_c::get()); + mpLinkHatModel->setAnmMtx(i_jointNo, mDoMtx_stack_c::get()); cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); } @@ -2224,10 +2492,10 @@ int daAlink_c::headModelCallBack(int param_0) { static int daAlink_headModelCallBack(J3DJoint* i_joint, int param_1) { int joint_no = i_joint->getJntNo(); - daAlink_c* this_ = (daAlink_c*)j3dSys.getModel()->getUserArea(); + daAlink_c* i_this = (daAlink_c*)j3dSys.getModel()->getUserArea(); if (param_1 == 0) { - this_->headModelCallBack(joint_no); + i_this->headModelCallBack(joint_no); } return 1; @@ -2247,10 +2515,10 @@ int daAlink_c::wolfModelCallBack(int i_jointNo) { static int daAlink_wolfModelCallBack(J3DJoint* i_joint, int param_1) { int joint_no = i_joint->getJntNo(); - daAlink_c* this_ = (daAlink_c*)j3dSys.getModel()->getUserArea(); + daAlink_c* i_this = (daAlink_c*)j3dSys.getModel()->getUserArea(); if (param_1 == 0) { - this_->wolfModelCallBack(joint_no); + i_this->wolfModelCallBack(joint_no); } return 1; @@ -2280,10 +2548,12 @@ void daAlink_c::setHatAngle() { mDoMtx_multVecZero(mpLinkHatModel->getAnmMtx(sp38), &spA8); BOOL sp34; - if (!checkEndResetFlg1(ERFLG1_UNK_80000) && (field_0x35b8.abs2() > 100.0f || (checkEndResetFlg0(ERFLG0_UNK_8) && (field_0x3400 * field_0x3400) + (field_0x3404 * field_0x3404) > 100.0f))) { - sp34 = 1; + if (!checkEndResetFlg1(ERFLG1_UNK_80000) + && (field_0x35b8.abs2() > SQUARE(10.0f) || (checkEndResetFlg0(ERFLG0_UNK_8) && SQUARE(field_0x3400) + SQUARE(field_0x3404) > SQUARE(10.0f)))) + { + sp34 = TRUE; } else { - sp34 = 0; + sp34 = FALSE; } f32 sp40; @@ -2439,7 +2709,7 @@ void daAlink_c::setHatAngle() { } *temp_r29 = cLib_minMaxLimit((*temp_r29 + *sp2C), -0x3800, 0x3800); - sp10 = cLib_minMaxLimit(cM_atan2s(-((sp9C.x * var_f28) - (sp9C.z * var_f29)), JMAFastSqrt((temp_f27 * temp_f27) + (sp9C.y * sp9C.y))), -0x2800, 0x2800); + sp10 = cLib_minMaxLimit(cM_atan2s(-((sp9C.x * var_f28) - (sp9C.z * var_f29)), JMAFastSqrt(SQUARE(temp_f27) + SQUARE(sp9C.y))), -0x2800, 0x2800); if (checkEndResetFlg0(ERFLG0_UNK_800000)) { *temp_r28 = sp10; @@ -2586,15 +2856,15 @@ void daAlink_c::setHairAngle(cXyz* param_0, f32 param_1, f32 param_2) { field_0x302c[5] = -7000.0f * sp8 * temp_f29; } -void daAlink_c::setLookPosFromOut(cXyz* p_pos) { +void daAlink_c::setLookPosFromOut(cXyz* i_pos) { if (checkEndResetFlg0(ERFLG0_UNK_4)) { - if (current.pos.abs2(mLookPosFromOut) < current.pos.abs2(*p_pos)) { + if (current.pos.abs2(mLookPosFromOut) < current.pos.abs2(*i_pos)) { return; } } onEndResetFlg0(ERFLG0_UNK_4); - mLookPosFromOut = *p_pos; + mLookPosFromOut = *i_pos; } bool daAlink_c::checkAttentionPosAngle(cXyz* param_0) { @@ -2602,32 +2872,31 @@ bool daAlink_c::checkAttentionPosAngle(cXyz* param_0) { return true; } - int tmp; - if (checkModeFlg(MODE_RIDING) || checkEndResetFlg0(ERFLG0_UNK_400)) { - tmp = mpHIO->mHorse.m.mSearchRangeAngle; + int search_range_angle; + if (checkModeFlg(MODE_RIDING) || checkEndResetFlg0(ERFLG0_NECK_SEARCH_WIDE)) { + search_range_angle = mpHIO->mHorse.m.mSearchRangeAngle; } else { - tmp = 0x6000; + search_range_angle = 0x6000; } - s16 targetY = cLib_targetAngleY(&field_0x34e0, param_0); - return cLib_distanceAngleS(targetY, field_0x2fe6) <= tmp; + return cLib_distanceAngleS(cLib_targetAngleY(&field_0x34e0, param_0), mPrevAngleY) <= search_range_angle; } -bool daAlink_c::checkActorPosAngle(fopAc_ac_c* param_0, cXyz** param_1) { - if (param_0 != NULL && checkAttentionPosAngle(¶m_0->eyePos)) { - s16 temp_r3 = fopAcM_GetName(param_0); +bool daAlink_c::checkActorPosAngle(fopAc_ac_c* i_actor, cXyz** o_ppos) { + if (i_actor != NULL && checkAttentionPosAngle(&i_actor->eyePos)) { + s16 actor_name = fopAcM_GetName(i_actor); - if (checkEnemyGroup(param_0)) { - field_0x3504 = param_0->eyePos; + if (checkEnemyGroup(i_actor)) { + field_0x3504 = i_actor->eyePos; field_0x311c = 0x50; } - if (temp_r3 == PROC_Obj_Wchain || (temp_r3 == PROC_B_MGN && !((daB_MGN_c*)param_0)->isDown())) { + if (actor_name == PROC_Obj_Wchain || (actor_name == PROC_B_MGN && !((daB_MGN_c*)i_actor)->isDown())) { onNoResetFlg1(FLG1_MIDNA_HAIR_ATN_POS); - mMidnaHairAtnPos = param_0->eyePos; + mMidnaHairAtnPos = i_actor->eyePos; } - *param_1 = ¶m_0->eyePos; + *o_ppos = &i_actor->eyePos; return 1; } @@ -2635,59 +2904,70 @@ bool daAlink_c::checkActorPosAngle(fopAc_ac_c* param_0, cXyz** param_1) { } cXyz* daAlink_c::getNeckAimPos(cXyz* param_0, int* param_1, int param_2) { - fopAc_ac_c* var_r29 = NULL; + fopAc_ac_c* look_actor = NULL; s16 spA = field_0x311c; field_0x311c = 0; - if (mProcID == PROC_GOAT_CATCH || mProcID == PROC_GET_ITEM || mProcID == PROC_WOLF_GANON_CATCH || mProcID == PROC_NOT_USE_ITEM || mProcID == PROC_DUNGEON_WARP_READY || mProcID == PROC_GOAT_STROKE) { - var_r29 = field_0x280c.getActor(); + if (mProcID == PROC_GOAT_CATCH + || mProcID == PROC_GET_ITEM + || mProcID == PROC_WOLF_GANON_CATCH + || mProcID == PROC_NOT_USE_ITEM + || mProcID == PROC_DUNGEON_WARP_READY + || mProcID == PROC_GOAT_STROKE) + { + look_actor = field_0x280c.getActor(); } else if (dComIfGp_checkPlayerStatus0(0, 0x10)) { if (mProcID != PROC_NOD && mProcID != PROC_EYE_AWAY && mProcID != PROC_GLARE) { - var_r29 = fopAcM_getTalkEventPartner(this); - if (var_r29 != NULL) { - daMidna_c* sp18 = (daMidna_c*)getMidnaActor(); - s16 temp_r3_3 = fopAcM_GetName(var_r29); + look_actor = fopAcM_getTalkEventPartner(this); + if (look_actor != NULL) { + daMidna_c* midna = (daMidna_c*)getMidnaActor(); + s16 actor_name = fopAcM_GetName(look_actor); - if (temp_r3_3 == PROC_MIDNA || temp_r3_3 == PROC_Tag_Wljump || (temp_r3_3 == PROC_Tag_Mhint && ((daTagMhint_c*)var_r29)->checkNoAttention()) || (temp_r3_3 == PROC_Tag_Mstop && ((daTagMstop_c*)var_r29)->checkNoAttention()) || (temp_r3_3 == PROC_Tag_Mwait && ((daTagMwait_c*)var_r29)->checkEndMessage())) { + if (actor_name == PROC_MIDNA + || actor_name == PROC_Tag_Wljump + || (actor_name == PROC_Tag_Mhint && ((daTagMhint_c*)look_actor)->checkNoAttention()) + || (actor_name == PROC_Tag_Mstop && ((daTagMstop_c*)look_actor)->checkNoAttention()) + || (actor_name == PROC_Tag_Mwait && ((daTagMwait_c*)look_actor)->checkEndMessage())) + { *param_1 = 1; - return &sp18->eyePos; + return &midna->eyePos; } - if (temp_r3_3 == PROC_Tag_Mhint || temp_r3_3 == PROC_Tag_Mstop) { - sp18->setForceNeckAimPos(var_r29->eyePos); + if (actor_name == PROC_Tag_Mhint || actor_name == PROC_Tag_Mstop) { + midna->setForceNeckAimPos(look_actor->eyePos); } } } } else if (mProcID == PROC_BOTTLE_OPEN && mEquipItem == fpcNm_ITEM_FAIRY) { - var_r29 = field_0x285c.getActor(); + look_actor = field_0x285c.getActor(); } else if (mProcID == PROC_FISHING_CAST || mProcID == PROC_CANOE_FISHING_WAIT || mProcID == PROC_CANOE_FISHING_REEL || mProcID == PROC_CANOE_FISHING_GET) { - var_r29 = mItemAcKeep.getActor(); + look_actor = mItemAcKeep.getActor(); } else { - var_r29 = mTargetedActor; + look_actor = mTargetedActor; if (checkEnemyGroup(mTargetedActor)) { - fopAc_ac_c* sp14; + fopAc_ac_c* lock_actor; if (mAttention->GetLockonList(1) != NULL) { - sp14 = mAttention->GetLockonList(1)->getActor(); + lock_actor = mAttention->GetLockonList(1)->getActor(); } else { - sp14 = NULL; + lock_actor = NULL; } if (field_0x28fc != fpcM_ERROR_PROCESS_ID_e) { fopAc_ac_c* sp10 = fopAcM_SearchByID(field_0x28fc); field_0x30f8--; - if (field_0x30f8 != 0 && sp10 != NULL && sp10 == sp14) { - var_r29 = sp10; + if (field_0x30f8 != 0 && sp10 != NULL && sp10 == lock_actor) { + look_actor = sp10; } else { field_0x30f8 = 0; field_0x28fc = fpcM_ERROR_PROCESS_ID_e; } - } else if (checkEnemyGroup(sp14)) { + } else if (checkEnemyGroup(lock_actor)) { if (field_0x30f8 == -30) { if (cM_rnd() < 0.02f) { field_0x30f8 = 30.0f + cM_rndF(30.0f); - var_r29 = sp14; - field_0x28fc = fopAcM_GetID(sp14); + look_actor = lock_actor; + field_0x28fc = fopAcM_GetID(lock_actor); } } else { field_0x30f8 -= 1; @@ -2700,12 +2980,12 @@ cXyz* daAlink_c::getNeckAimPos(cXyz* param_0, int* param_1, int param_2) { } fopAc_ac_c* spC = mAttention->LockonTarget(0); - if (var_r29 == NULL) { - var_r29 = dCam_getBody()->GetForceLockOnActor(); + if (look_actor == NULL) { + look_actor = dCam_getBody()->GetForceLockOnActor(); } cXyz* sp1C; - if (checkActorPosAngle(var_r29, &sp1C)) { + if (checkActorPosAngle(look_actor, &sp1C)) { return sp1C; } @@ -2732,7 +3012,10 @@ cXyz* daAlink_c::getNeckAimPos(cXyz* param_0, int* param_1, int param_2) { return &dComIfGp_att_getLookTarget()->eyePos; } - if ((checkActorPosAngle(field_0x27f0, &sp1C) && (field_0x27f0 == NULL || fopAcM_GetName(field_0x27f0) != PROC_Tag_WaraHowl)) || checkActorPosAngle(spC, &sp1C) || checkActorPosAngle(field_0x27f8, &sp1C)) { + if ((checkActorPosAngle(field_0x27f0, &sp1C) && (field_0x27f0 == NULL || fopAcM_GetName(field_0x27f0) != PROC_Tag_WaraHowl)) + || checkActorPosAngle(spC, &sp1C) + || checkActorPosAngle(field_0x27f8, &sp1C)) + { return sp1C; } @@ -2811,7 +3094,7 @@ cXyz* daAlink_c::getNeckAimPos(cXyz* param_0, int* param_1, int param_2) { } } } else { - u32 temp_r26 = mDemo.getDemoMode(); + u32 demoMode = mDemo.getDemoMode(); spA = 0; if (checkEndResetFlg2(ERFLG2_PORTAL_WARP_MIDNA_ATN_KEEP) && daMidna_c::checkMidnaRealBody()) { @@ -2821,7 +3104,17 @@ cXyz* daAlink_c::getNeckAimPos(cXyz* param_0, int* param_1, int param_2) { } } - if (mProcID == PROC_LOOK_WAIT || temp_r26 == 0x17 || checkDemoMoveMode(temp_r26) || temp_r26 == 1 || temp_r26 == 4 || temp_r26 == 0x2C || temp_r26 == 0x2F || temp_r26 == 0x30 || temp_r26 == 0x31 || temp_r26 == 0xC) { + if (mProcID == PROC_LOOK_WAIT + || demoMode == daPy_demo_c::DEMO_UNK_23_e + || checkDemoMoveMode(demoMode) + || demoMode == daPy_demo_c::DEMO_UNK_1_e + || demoMode == daPy_demo_c::DEMO_UNK_4_e + || demoMode == daPy_demo_c::DEMO_UNK_44_e + || demoMode == daPy_demo_c::DEMO_LOOK_UP_e + || demoMode == daPy_demo_c::DEMO_LOOK_UP_TO_GET_ITEM_e + || demoMode == daPy_demo_c::DEMO_HAND_PAT_e + || demoMode == daPy_demo_c::DEMO_UNEQUIP_e) + { spC = getDemoLookActor(); if (spC != NULL && fopAcM_GetName(spC) == PROC_MIDNA) { return &spC->eyePos; @@ -2850,10 +3143,10 @@ cXyz* daAlink_c::getNeckAimPos(cXyz* param_0, int* param_1, int param_2) { } s16 daAlink_c::getNeckAimAngle(cXyz* param_0, s16* param_1, s16* param_2, s16* param_3, - s16* param_4) { + s16* param_4) { s16 sp1A; s16 sp18; - s16 sp16 = field_0x2fe6 + mBodyAngle.y; + s16 sp16 = mPrevAngleY + mBodyAngle.y; if ((mProcID == PROC_GOAT_CATCH && mProcVar1.field_0x300a == 0) || (mProcID == PROC_HAND_PAT && mProcVar2.field_0x300c == 0)) { ADD_ANGLE_2(sp16, 0x8000); } @@ -2863,8 +3156,8 @@ s16 daAlink_c::getNeckAimAngle(cXyz* param_0, s16* param_1, s16* param_2, s16* p s16 sp14 = sp28.atan2sY_XZ(); s16 sp12 = sp28.atan2sX_Z(); - sp1A = sp14 - field_0x3124; - sp18 = (sp12 - sp16) - field_0x3126; + sp1A = sp14 - field_0x3124.x; + sp18 = (sp12 - sp16) - field_0x3124.y; if (checkModeFlg(0x08000100) && param_0 != NULL && !checkWolfHeadDamageAnime() && !checkDashDamageAnime()) { cXyz sp1C = *param_0 - field_0x34e0; @@ -2872,14 +3165,14 @@ s16 daAlink_c::getNeckAimAngle(cXyz* param_0, s16* param_1, s16* param_2, s16* p s16 temp_r24 = sp1C.atan2sY_XZ(); s16 var_r28 = sp1C.atan2sX_Z() - sp16; - if (((var_r28 > 0x7000) && (field_0x3126 < 0)) || ((var_r28 < -0x7000) && (field_0x3126 > 0))) { + if (((var_r28 > 0x7000) && (field_0x3124.y < 0)) || ((var_r28 < -0x7000) && (field_0x3124.y > 0))) { var_r28 *= -1; } s16 sp10 = temp_r24; s16 spE = var_r28; if (sp1C.absXZ() < 30.0f) { - var_r28 = field_0x3126; + var_r28 = field_0x3124.y; } if (checkWolf()) { @@ -2990,9 +3283,9 @@ void daAlink_c::setEyeMove(cXyz* param_0, s16 param_1, s16 param_2) { var_f31 = 0.00024414062f * -field_0x2fee; field_0x33f8 = var_f31; } else if (checkSwimNeckUpDown()) { - if (field_0x3124 > 0) { + if (field_0x3124.x > 0) { var_f30 = 0.5f; - } else if (field_0x3124 < 0) { + } else if (field_0x3124.x < 0) { var_f30 = -0.5f; } else { var_f30 = 0.0f; @@ -3102,14 +3395,14 @@ void daAlink_c::setNeckAngle() { } s16 sp8 = getNeckAimAngle(var_r30, &sp10, &spE, &spC, &spA); - daPy_addCalcShort(&field_0x3124, sp10, 3, 0x1000, 0x100); - daPy_addCalcShort(&field_0x3126, spE, 3, 0x1000, 0x100); + daPy_addCalcShort(&field_0x3124.x, sp10, 3, 0x1000, 0x100); + daPy_addCalcShort(&field_0x3124.y, spE, 3, 0x1000, 0x100); setEyeMove(var_r30, spC, spA); } bool daAlink_c::getStickAngleFromPlayerShape(s16* o_angle) const { if (checkInputOnR()) { - *o_angle = field_0x2fe2 - shape_angle.y; + *o_angle = mMoveAngle - shape_angle.y; return true; } @@ -3148,7 +3441,7 @@ fopAc_ac_c* daAlink_c::checkGoronRide() { } void daAlink_c::setMoveSlantAngle() { - f32 temp_f31 = fabsf(speedF / field_0x594); + f32 temp_f31 = fabsf(speedF / mMaxSpeed); if (checkModeFlg(0x02020400) || mProcID == PROC_WOLF_CARGO_CARRY) { if (!checkBoardRide()) { @@ -3171,7 +3464,7 @@ void daAlink_c::setMoveSlantAngle() { s16 var_r28; if ((mProcID == PROC_MOVE && temp_f31 > mpHIO->mMove.m.mRunChangeRate) || (mProcID == PROC_WOLF_MOVE && temp_f31 > mpHIO->mWolf.mWlMove.m.mIdleToWalkRate)) { - var_r28 = cLib_minMaxLimit((s16)(field_0x2fe6 - shape_angle.y) * 2, -0xC00, 0xC00); + var_r28 = cLib_minMaxLimit((s16)(mPrevAngleY - shape_angle.y) * 2, -0xC00, 0xC00); if (abs(var_r28) > 0x800) { int var_r27; if (var_r28 > 0) { @@ -3188,9 +3481,9 @@ void daAlink_c::setMoveSlantAngle() { if ((mProcID == PROC_WOLF_MOVE && checkAttentionState()) || temp_f31 < mpHIO->mWolf.mWlMove.m.mStandbyRunToRunRate) { var_r28 = 0; } - } else if ((mProcID == PROC_WOLF_WAIT || mProcID == PROC_WOLF_SWIM_MOVE) && shape_angle.y != field_0x2fe6) { + } else if ((mProcID == PROC_WOLF_WAIT || mProcID == PROC_WOLF_SWIM_MOVE) && shape_angle.y != mPrevAngleY) { var_r28 = 0; - var_r29 = (s16)(shape_angle.y - field_0x2fe6); + var_r29 = (s16)(shape_angle.y - mPrevAngleY); if (mProcID == PROC_WOLF_SWIM_MOVE) { if (var_r29 >= 0) { @@ -3227,7 +3520,7 @@ void daAlink_c::setMoveSlantAngle() { mBodyAngle.z = shape_angle.z; if (mProcID == PROC_MOVE || mProcID == PROC_WAIT) { - var_r29 = (s16)(shape_angle.y - field_0x2fe6) * 2; + var_r29 = (s16)(shape_angle.y - mPrevAngleY) * 2; if (mProcID == PROC_WAIT) { var_r29 *= 2; } @@ -3381,7 +3674,7 @@ void daAlink_c::setMatrixOffset(f32* param_0, f32 param_1) { } int daAlink_c::setLegAngle(f32 param_0, daAlink_footData_c* param_1, s16* param_2, - s16* param_3, int param_4) { + s16* param_3, int param_4) { cXyz spA4; cXyz sp98; cXyz sp8C; @@ -3646,7 +3939,7 @@ void daAlink_c::footBgCheck() { cLib_addCalcAngleS(&var_r29->field_0x4, spE, 2, 0x1800, 0x10); s16 spC = 0; - if (sp2C != 2 && var_r29->field_0x0 != 0 && sp28 != 0 && field_0x3174 != 8) { + if (sp2C != 2 && var_r29->field_0x0 != 0 && sp28 != 0 && mGroundCode != 8) { spC += sp20[i]; } @@ -3755,10 +4048,10 @@ JKRHeap* daAlink_c::setItemHeap() { * The left most digit is the arcNo if not 0 * The latter 3 digits are the resource ID */ -void daAlink_c::setIdxMask(u16* o_arcNo, u16* o_resID) { +void daAlink_c::setIdxMask(u16* o_arcNo, u16* o_resIdx) { if (*o_arcNo == 0xFFFF) { - u16 arc_id = (*o_resID >> 12) & 0xF; - *o_resID &= 0xFFF; + u16 arc_id = (*o_resIdx >> 12) & 0xF; + *o_resIdx &= 0xFFF; if (arc_id != 0) { *o_arcNo = arc_id; @@ -3766,23 +4059,24 @@ void daAlink_c::setIdxMask(u16* o_arcNo, u16* o_resID) { } } -J3DAnmTransform* daAlink_c::getAnimeResource(daPy_anmHeap_c* p_anmHeap, u16 i_anmID, u32 buf_size) { +J3DAnmTransform* daAlink_c::getAnimeResource(daPy_anmHeap_c* i_anmHeap, u16 i_resIdx, u32 i_bufSize) { u16 arcNo; - u16 resID = i_anmID; - p_anmHeap->setBufferSize(buf_size); + i_anmHeap->setBufferSize(i_bufSize); arcNo = 0xFFFF; - setIdxMask(&arcNo, &resID); + setIdxMask(&arcNo, &i_resIdx); if (arcNo == 0xFFFF) { - return (J3DAnmTransform*)p_anmHeap->loadDataIdx(resID); + return (J3DAnmTransform*)i_anmHeap->loadDataIdx(i_resIdx); } - return (J3DAnmTransform*)p_anmHeap->loadDataDemoRID(resID, arcNo); + return (J3DAnmTransform*)i_anmHeap->loadDataDemoRID(i_resIdx, arcNo); } -J3DModel* daAlink_c::initModel(J3DModelData* i_modelData, u32 mdlFlags, u32 diffFlags) { +J3DModel* daAlink_c::initModel(J3DModelData* i_modelData, u32 i_mdlFlags, u32 i_diffFlags) { + JUT_ASSERT(4091, i_modelData != NULL); + J3DTexture* tex = i_modelData->getTexture(); int texNo = tex->getNum() - 1; @@ -3797,10 +4091,10 @@ J3DModel* daAlink_c::initModel(J3DModelData* i_modelData, u32 mdlFlags, u32 diff if (warpMaterial) { dRes_info_c::onWarpMaterial(i_modelData); - diffFlags |= 0x2000400; + i_diffFlags |= 0x2000400; } - J3DModel* model = mDoExt_J3DModel__create(i_modelData, mdlFlags, diffFlags | 0x11000084); + J3DModel* model = mDoExt_J3DModel__create(i_modelData, i_mdlFlags, i_diffFlags | 0x11000084); if (warpMaterial) { dRes_info_c::offWarpMaterial(i_modelData); @@ -3809,22 +4103,20 @@ J3DModel* daAlink_c::initModel(J3DModelData* i_modelData, u32 mdlFlags, u32 diff return model; } -J3DModel* daAlink_c::initModel(u16 i_resNo, u32 i_flags) { - return initModel((J3DModelData*)dComIfG_getObjectRes(l_arcName, i_resNo), i_flags); +J3DModel* daAlink_c::initModel(u16 i_resIdx, u32 i_diffFlags) { + return initModel((J3DModelData*)dComIfG_getObjectRes(l_arcName, i_resIdx), i_diffFlags); } -J3DModel* daAlink_c::initModelEnv(u16 i_resNo, u32 i_flags) { - return initModelEnv((J3DModelData*)dComIfG_getObjectRes(l_arcName, i_resNo), i_flags); +J3DModel* daAlink_c::initModelEnv(u16 i_resIdx, u32 i_diffFlags) { + return initModelEnv((J3DModelData*)dComIfG_getObjectRes(l_arcName, i_resIdx), i_diffFlags); } -int daAlink_c::initDemoModel(J3DModel** i_ppmodel, char const* i_resname, u32 i_flags) { +int daAlink_c::initDemoModel(J3DModel** i_ppmodel, char const* i_resName, u32 i_diffFlags) { *i_ppmodel = NULL; - J3DModelData* modelData = - (J3DModelData*)dComIfG_getObjectRes(dStage_roomControl_c::getDemoArcName(), i_resname); + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(dStage_roomControl_c::getDemoArcName(), i_resName); if (modelData != NULL) { - *i_ppmodel = initModel(modelData, i_flags); - + *i_ppmodel = initModel(modelData, i_diffFlags); if (*i_ppmodel == NULL) { return 0; } @@ -3833,18 +4125,16 @@ int daAlink_c::initDemoModel(J3DModel** i_ppmodel, char const* i_resname, u32 i_ return 1; } -int daAlink_c::initDemoBck(mDoExt_bckAnm** p_bck, char const* resName) { - J3DAnmTransform* res = - (J3DAnmTransform*)dComIfG_getObjectRes(dStage_roomControl_c::getDemoArcName(), resName); +int daAlink_c::initDemoBck(mDoExt_bckAnm** i_ppbck, char const* i_resName) { + J3DAnmTransform* bck = (J3DAnmTransform*)dComIfG_getObjectRes(dStage_roomControl_c::getDemoArcName(), i_resName); + if (bck != NULL) { + *i_ppbck = new mDoExt_bckAnm(); - if (res != NULL) { - *p_bck = new mDoExt_bckAnm(); - - if (*p_bck == NULL) { + if (*i_ppbck == NULL) { return 0; } - if (!(*p_bck)->init(res, 1, 2, 1.0f, 0, -1, false)) { + if (!(*i_ppbck)->init(bck, TRUE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false)) { return 0; } } @@ -3852,15 +4142,13 @@ int daAlink_c::initDemoBck(mDoExt_bckAnm** p_bck, char const* resName) { return 1; } -// move these later -static int daAlink_Create(fopAc_ac_c* i_this); -static int daAlink_Delete(daAlink_c* i_this); -static int daAlink_Execute(daAlink_c* i_this); -static int daAlink_Draw(daAlink_c* i_this); - int daAlink_c::createHeap() { - ResTIMG* sp14 = (ResTIMG*)dComIfG_getObjectRes("Always", 0x5D); - mpWarpTexData = (void*)((uintptr_t)sp14 + sp14->imageOffset); + #if DEBUG + l_HIO_before = NULL; + #endif + + ResTIMG* warpTex = (ResTIMG*)dComIfG_getObjectRes("Always", dRes_ID_ALWAYS_BTI_WARP_TEX_e); + mpWarpTexData = (void*)((uintptr_t)warpTex + warpTex->imageOffset); if (*dStage_roomControl_c::getDemoArcName() != 0) { if (!initDemoModel(&mpDemoHLTmpModel, "demo00_Link_cut00_HL_tmp.bmd", 0x1000000)) { @@ -3910,32 +4198,33 @@ int daAlink_c::createHeap() { return 0; } - if (!(mpWlChangeModel = initModel(0x2F, 0))) { + if (!(mpWlChangeModel = initModel(dRes_ID_ALINK_BMD_WL_CHANGE_e, 0))) { return 0; } - if (!(mpSwAModel = initModel(0x3C, 0x200))) { + if (!(mpSwAModel = initModel(dRes_ID_ALINK_BMD_AL_SWA_e, 0x200))) { return 0; } - if (!(mpSwMModel = initModelEnv(0x38, 0x1000200))) { + if (!(mpSwMModel = initModelEnv(dRes_ID_ALINK_BMD_AL_SWM_e, 0x1000200))) { return 0; } - if (!(mpSwASheathModel = initModel(0x3B, 0))) { + if (!(mpSwASheathModel = initModel(dRes_ID_ALINK_BMD_AL_PODA_e, 0))) { return 0; } - if (!(mpSwMSheathModel = initModelEnv(0x37, 0))) { + if (!(mpSwMSheathModel = initModelEnv(dRes_ID_ALINK_BMD_AL_PODM_e, 0))) { return 0; } - J3DTransformInfo* sp1C = new J3DTransformInfo[40]; + int sp38 = 40; + J3DTransformInfo* sp1C = new J3DTransformInfo[sp38]; if (sp1C == NULL) { return 0; } - Quaternion* sp30 = new Quaternion[40]; + Quaternion* sp30 = new Quaternion[sp38]; if (sp30 == NULL) { return 0; } @@ -3984,9 +4273,9 @@ int daAlink_c::createHeap() { return 0; } - JKRReadIdxResource(mFaceBckHeap.getBuffer(), 0xC00, 0xE8, dComIfGp_getAnmArchive()); + JKRReadIdxResource(mFaceBckHeap.getBuffer(), 0xC00, dRes_ID_ALANM_BCK_FAT_e, dComIfGp_getAnmArchive()); J3DAnmTransform* bck = (J3DAnmTransform*)J3DAnmLoaderDataBase::load(mFaceBckHeap.getBuffer()); - if (!field_0x2164.init(bck, FALSE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false)) { + if (!mFaceBck.init(bck, FALSE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false)) { return 0; } @@ -4001,8 +4290,11 @@ int daAlink_c::createHeap() { } mpDemoFCTmpBls = (J3DDeformData*)dComIfG_getObjectRes(dStage_roomControl_c::getDemoArcName(), "demo00_Link_cut00_FC_tmp.bls"); - if (mpDemoFCTmpBls != NULL && mpDemoFCBlendModel->setDeformData(mpDemoFCTmpBls, 1)) { - return 0; + if (mpDemoFCTmpBls != NULL) { + s32 sp28 = mpDemoFCBlendModel->setDeformData(mpDemoFCTmpBls, 1); + if (sp28 != 0) { + return 0; + } } } @@ -4013,9 +4305,11 @@ static int daAlink_createHeap(fopAc_ac_c* i_this) { return ((daAlink_c*)i_this)->createHeap(); } -void daAlink_c::setSelectEquipItem(int param_0) { +void daAlink_c::setSelectEquipItem(BOOL param_0) { + J3DModel* prev_model; + if (!checkWolf()) { - J3DModel* temp = mSwordModel; + prev_model = mSwordModel; if (checkWoodSwordEquip()) { mSwordModel = mWoodSwordModel; @@ -4042,19 +4336,19 @@ void daAlink_c::setSelectEquipItem(int param_0) { } if (mClothesChangeWaitTimer == 0 && - (temp != mSwordModel || checkNoResetFlg2(FLG2_STATUS_WINDOW_DRAW))) + (prev_model != mSwordModel || checkNoResetFlg2(FLG2_STATUS_WINDOW_DRAW))) { - if (temp != mSwordModel) { + if (prev_model != mSwordModel) { mSwordChangeWaitTimer = 5; } if (checkWoodSwordEquip()) { - if (mEquipItem == 0x103 || param_0 != 0) { + if (mEquipItem == 0x103 || param_0) { mSwordModel->getModelData()->getMaterialNodePointer(1)->getShape()->hide(); } else { mSwordModel->getModelData()->getMaterialNodePointer(1)->getShape()->show(); } - } else if (mEquipItem == 0x103 || param_0 != 0) { + } else if (mEquipItem == 0x103 || param_0) { mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->show(); } else { mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->hide(); @@ -4104,29 +4398,31 @@ void daAlink_c::playerInit() { } u16 i; - dCcD_Cyl* cyl1 = field_0x850; - dCcD_Cyl* cyl2 = field_0xC04; - for (i = 0; i < 3; i++, cyl1++, cyl2++) { - cyl1->Set(l_cylSrc); - cyl1->SetStts(&field_0x814); - cyl1->OnTgNoConHit(); - cyl1->SetTgShieldFrontRangeYAngle(&field_0x306c); - cyl1->SetTgHitCallback(daAlink_tgHitCallback); - cyl1->SetCoHitCallback(daAlink_coHitCallback); + dCcD_Cyl* tgCyl = mTgCyls; + dCcD_Cyl* windTgCyl = mWindTgCyls; + for (i = 0; i < 3; i++, tgCyl++, windTgCyl++) { + tgCyl->Set(l_cylSrc); + tgCyl->SetStts(&mCcStts); + tgCyl->OnTgNoConHit(); + tgCyl->SetTgShieldFrontRangeYAngle(&field_0x306c); + tgCyl->SetTgHitCallback(daAlink_tgHitCallback); + tgCyl->SetCoHitCallback(daAlink_coHitCallback); - cyl2->Set(l_cylSrc); - cyl2->SetStts(&field_0x814); - cyl2->OffCoSetBit(); - cyl2->SetTgMtrl(3); - cyl2->OnTgNoHitMark(); - cyl2->SetTgType(0xD8FBFFFF); - cyl2->OnTgSPrmBit(0x20); + windTgCyl->Set(l_cylSrc); + windTgCyl->SetStts(&mCcStts); + windTgCyl->OffCoSetBit(); + windTgCyl->SetTgMtrl(dCcD_MTRL_WIND); + windTgCyl->OnTgNoHitMark(); + windTgCyl->SetTgType(0xD8FBFFFF); + windTgCyl->OnTgSPrmBit(0x20); } - field_0x850[2].SetH(90.0f); - field_0x850[1].SetH(90.0f); - field_0xFB8.Set(l_sphSrc); - field_0xFB8.SetStts(&field_0x814); - field_0xFB8.StartCAt(current.pos); + + mTgCyls[2].SetH(90.0f); + mTgCyls[1].SetH(90.0f); + + mAtSph.Set(l_sphSrc); + mAtSph.SetStts(&mCcStts); + mAtSph.StartCAt(current.pos); mAnmHeap3.setBufferSize(0x20000); mAnmHeap3.createHeap(daPy_anmHeap_c::HEAP_TYPE_4); @@ -4141,49 +4437,54 @@ void daAlink_c::playerInit() { mAnmHeap4.createHeap(daPy_anmHeap_c::HEAP_TYPE_4); setShieldModel(); + #if DEBUG + l_debugMode = FALSE; + #endif + mSwordModel = mpSwAModel; mSheathModel = mpSwASheathModel; - field_0x814.Init(120, 0xFF, this); + mCcStts.Init(120, 0xFF, this); field_0x306c = shape_angle.y + mBodyAngle.y; - for (u16 i = 0; i < 3; i++) { + for (i = 0; i < 3; i++) { mAtCps[i].Set(l_atCpsSrc); - mAtCps[i].SetStts(&field_0x814); + mAtCps[i].SetStts(&mCcStts); } + mGuardAtCps.Set(l_atCpsSrc); - mGuardAtCps.SetStts(&field_0x814); + mGuardAtCps.SetStts(&mCcStts); mGuardAtCps.SetAtType(AT_TYPE_SHIELD_ATTACK); mGuardAtCps.OnAtNoHitMark(); mGuardAtCps.SetAtHitMark(0); mGuardAtCps.SetAtAtp(0); + mAtCyl.Set(l_atCylSrc); - mAtCyl.SetStts(&field_0x814); + mAtCyl.SetStts(&mCcStts); mLinkAcch.Set(this, 3, mAcchCir); mLinkAcch.ClrWaterNone(); mLinkAcch.SetWaterCheckOffset(10000.0f); mLinkAcch.OnLineCheck(); mLinkAcch.ClrRoofNone(); - mLinkAcch.SetRoofCrrHeight(field_0x598); + mLinkAcch.SetRoofCrrHeight(mHeight); mLinkAcch.SetGndThinCellingOff(); mLinkAcch.SetWtrChkMode(2); mLinkAcch.OnWallSort(); + mAcchCir[0].SetWall(l_autoUpHeight, 35.0f); mAcchCir[1].SetWall(129.99000549316406f, 35.0f); - mAcchCir[2].SetWall(field_0x598, 35.0f); - field_0x2fe6 = shape_angle.y; + mAcchCir[2].SetWall(mHeight, 35.0f); + mPrevAngleY = shape_angle.y; - for (u16 i = 0; i < 3; i++) { - u8* underBuf = mUnderAnmHeap[0].getBuffer(); - mUnderAnmHeap[i].setBuffer(underBuf + (i * 0x2C00)); + for (i = 0; i < 3; i++) { + mUnderAnmHeap[i].setBuffer(mUnderAnmHeap[0].getBuffer() + (i * 0x2C00)); mUnderAnmHeap[i].createHeap(daPy_anmHeap_c::HEAP_TYPE_3); } mUpperAnmHeap[0].setBuffer(mUnderAnmHeap[0].getBuffer() + 0x8400); - for (u16 i = 0; i < 3; i++) { - u8* upperBuf = mUpperAnmHeap[0].getBuffer(); - mUpperAnmHeap[i].setBuffer(upperBuf + (i * 0x2C00)); + for (i = 0; i < 3; i++) { + mUpperAnmHeap[i].setBuffer(mUpperAnmHeap[0].getBuffer() + (i * 0x2C00)); mUpperAnmHeap[i].createHeap(daPy_anmHeap_c::HEAP_TYPE_3); } @@ -4191,7 +4492,7 @@ void daAlink_c::playerInit() { mFaceBtkHeap.createHeap(daPy_anmHeap_c::HEAP_TYPE_2); mFaceBckHeap.createHeap(daPy_anmHeap_c::HEAP_TYPE_3); - for (u16 i = 0; i < 2; i++) { + for (i = 0; i < 2; i++) { mItemHeap[i].setBufferSize(0x13200); mItemHeap[i].createHeap(daPy_anmHeap_c::HEAP_TYPE_4); } @@ -4201,28 +4502,31 @@ void daAlink_c::playerInit() { mZ2Link.init(¤t.pos, &eyePos, &field_0x3720); mZ2Link.initKantera(&mKandelaarFlamePos); mZ2Link.setKanteraState(0); - mProcID = 0x160; + mProcID = PROC_MAX; - m_swordBlur.m_blurTex = (ResTIMG*)dComIfG_getObjectRes(l_arcName, 0x59); // blur.bti + m_swordBlur.m_blurTex = (ResTIMG*)dComIfG_getObjectRes(l_arcName, dRes_ID_ALINK_BTI_BLUR_e); + JUT_ASSERT(4753, m_swordBlur.m_blurTex != NULL); J3DModelData* modelData = mpSwAModel->getModelData(); - m_nSwordBtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 0x44); // al_swa.btk + m_nSwordBtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, dRes_ID_ALINK_BTK_AL_SWA_e); + JUT_ASSERT(4759, m_nSwordBtk); m_nSwordBtk->searchUpdateMaterialID(modelData); modelData->entryTexMtxAnimator(m_nSwordBtk); J3DModelData* modelData2 = mpSwMModel->getModelData(); - m_mSwordBtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 0x45); // al_swm.btk + m_mSwordBtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, dRes_ID_ALINK_BTK_AL_SWM_e); + JUT_ASSERT(4767, m_mSwordBtk); m_mSwordBtk->searchUpdateMaterialID(modelData2); modelData2->entryTexMtxAnimator(m_mSwordBtk); - m_mSwordBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 0x3F); // al_swm.brk + m_mSwordBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, dRes_ID_ALINK_BRK_AL_SWM_e); + JUT_ASSERT(4774, m_mSwordBrk != NULL); m_mSwordBrk->searchUpdateMaterialID(modelData2); modelData2->entryTevRegAnimator(m_mSwordBrk); - f32 tmp = -G_CM3D_F_INF; - mWaterY = tmp; - field_0x33b8 = tmp; - field_0x33bc = tmp; + mWaterY = -G_CM3D_F_INF; + field_0x33b8 = -G_CM3D_F_INF; + field_0x33bc = -G_CM3D_F_INF; mEquipItem = fpcNm_ITEM_NONE; offSwordModel(); @@ -4236,42 +4540,42 @@ void daAlink_c::playerInit() { int startEvent = getStartEvent(); if (dComIfGp_getStartStagePoint() == -2 || dComIfGp_getStartStagePoint() == -3) { - field_0x3188 = dComIfGp_evmng_startDemo(-1); + mStartEventID = dComIfGp_evmng_startDemo(-1); } else if (dComIfGp_getStartStagePoint() == -4) { - field_0x3188 = dComIfGp_evmng_startDemo(0xD5); + mStartEventID = dComIfGp_evmng_startDemo(0xD5); } else { if (getLastSceneMode() == 9) { - field_0x3188 = dComIfGp_evmng_startDemo(0xD3); + mStartEventID = dComIfGp_evmng_startDemo(0xD3); } else if (startMode == 10) { if (startEvent != 0xFF) { - field_0x3188 = dComIfGp_evmng_startDemo(startEvent); + mStartEventID = dComIfGp_evmng_startDemo(startEvent); } else { - field_0x3188 = dComIfGp_evmng_startDemo(0xCF); + mStartEventID = dComIfGp_evmng_startDemo(0xCF); } } else if (startMode == 11) { if (startEvent != 0xFF) { - field_0x3188 = dComIfGp_evmng_startDemo(startEvent); + mStartEventID = dComIfGp_evmng_startDemo(startEvent); } else { - field_0x3188 = dComIfGp_evmng_startDemo(0xD0); + mStartEventID = dComIfGp_evmng_startDemo(0xD0); } } else if (startMode == 6) { - field_0x3188 = dComIfGp_evmng_startDemo(0xCD); + mStartEventID = dComIfGp_evmng_startDemo(0xCD); } else if (startMode == 7) { - field_0x3188 = dComIfGp_evmng_startDemo(0xCE); + mStartEventID = dComIfGp_evmng_startDemo(0xCE); } else if (startMode == 8) { if (startEvent != 0xFF) { - field_0x3188 = dComIfGp_evmng_startDemo(startEvent); + mStartEventID = dComIfGp_evmng_startDemo(startEvent); } else { - field_0x3188 = dComIfGp_evmng_startDemo(0xD4); + mStartEventID = dComIfGp_evmng_startDemo(0xD4); } } else if (startMode == 12) { - field_0x3188 = dComIfGp_evmng_startDemo(0xC9); + mStartEventID = dComIfGp_evmng_startDemo(0xC9); } else if (getLastSceneMode() == 11) { - field_0x3188 = dComIfGp_evmng_startDemo(0xFF); + mStartEventID = dComIfGp_evmng_startDemo(0xFF); } else if (getLastSceneMode() == 12) { - field_0x3188 = dComIfGp_evmng_startDemo(0xD1); + mStartEventID = dComIfGp_evmng_startDemo(0xD1); } else { - field_0x3188 = dComIfGp_evmng_startDemo(startEvent); + mStartEventID = dComIfGp_evmng_startDemo(startEvent); } } @@ -4281,49 +4585,49 @@ void daAlink_c::playerInit() { field_0x2f96 = -1; field_0x2f97 = -1; - for (int i = 0; i < 0x10; i++) { + for (int i = 0; i < 16; i++) { mShieldArrowIDs[i] = fpcM_ERROR_PROCESS_ID_e; } + mAtnActorID = fpcM_ERROR_PROCESS_ID_e; mMsgClassID = fpcM_ERROR_PROCESS_ID_e; field_0x28f8 = fpcM_ERROR_PROCESS_ID_e; field_0x28fc = fpcM_ERROR_PROCESS_ID_e; - field_0x2e54.init(&mLinkAcch, mpHIO->mBasic.m.mWaterSurfaceEffectHeight, field_0x598); + field_0x2e54.init(&mLinkAcch, mpHIO->mBasic.m.mWaterSurfaceEffectHeight, mHeight); field_0x3108 = shape_angle.y; field_0x2f20.setOldPosP(&field_0x3624, &field_0x3630); field_0x2fc3 = 10; - field_0x2f5c.mPosition = current.pos; - field_0x2f5c.mColor.r = 80; - field_0x2f5c.mColor.g = 80; - field_0x2f5c.mColor.b = 200; + mMagneBootsPlight.mPosition = current.pos; + mMagneBootsPlight.mColor.r = 80; + mMagneBootsPlight.mColor.g = 80; + mMagneBootsPlight.mColor.b = 200; - f32 tmp_0 = 0.0f; - field_0x2f5c.mPow = tmp_0; - field_0x2f5c.mFluctuation = tmp_0; - dKy_plight_set(&field_0x2f5c); + mMagneBootsPlight.mPow = 0.0f; + mMagneBootsPlight.mFluctuation = 0.0f; + dKy_plight_set(&mMagneBootsPlight); - setSelectEquipItem(0); + setSelectEquipItem(FALSE); if (checkStageName("D_MN08") || checkStageName("D_MN08B") || checkStageName("D_MN08C")) { onNoResetFlg3(FLG3_UNK_40000000); } } -BOOL daAlink_c::checkHorseStart(u32 pLastMode, int pStartMode) { - return pLastMode == 1 || pStartMode == 2 || pLastMode == 8; +BOOL daAlink_c::checkHorseStart(u32 i_lastMode, int i_startMode) { + return i_lastMode == 1 || i_startMode == 2 || i_lastMode == 8; } int daAlink_c::setStartProcInit() { - BOOL sp10 = 0; + BOOL sp10 = FALSE; int start_mode = getStartMode(); u32 last_mode = getLastSceneMode(); daHorse_c* horsep = (daHorse_c*)dComIfGp_getHorseActor(); - BOOL horse_start = checkHorseStart(last_mode, start_mode); + BOOL isHorseStart = checkHorseStart(last_mode, start_mode); - setDamagePoint(getLastSceneDamage(), last_mode == 4, 0, 1); + setDamagePoint(getLastSceneDamage(), last_mode == 4, FALSE, 1); mSwordUpTimer = getLastSceneSwordAtUpTime() * 2; if (checkWolf()) { @@ -4336,13 +4640,24 @@ int daAlink_c::setStartProcInit() { mEquipItem = 0x103; } - if (mEquipItem == 0 || !checkCastleTownUseItem(mEquipItem) || (checkCloudSea() && mEquipItem != 0x103) || checkCanoeStart() || (horse_start && mEquipItem != 0x103 && !checkBowAndSlingItem(mEquipItem) && mEquipItem != fpcNm_ITEM_BOOMERANG && mEquipItem != fpcNm_ITEM_KANTERA && !checkHookshotItem(mEquipItem))) { + if (mEquipItem == 0 + || !checkCastleTownUseItem(mEquipItem) + || (checkCloudSea() && mEquipItem != 0x103) + || checkCanoeStart() + || (isHorseStart + && mEquipItem != 0x103 + && !checkBowAndSlingItem(mEquipItem) + && mEquipItem != fpcNm_ITEM_BOOMERANG + && mEquipItem != fpcNm_ITEM_KANTERA + && !checkHookshotItem(mEquipItem)) + ) + { mEquipItem = fpcNm_ITEM_NONE; } else { setItemModel(); } - if (horse_start) { + if (isHorseStart) { horsep->setHorsePosAndAngle(¤t.pos, shape_angle.y); horsep->initHorseMtx(); initForceRideHorse(); @@ -4353,20 +4668,20 @@ int daAlink_c::setStartProcInit() { procCoPeepSubjectivityInit(); } else if (last_mode == 11) { mLinkAcch.SetGroundHit(); - procBoardWaitInit(fopAcM_SearchByID(field_0x2900)); + procBoardWaitInit(fopAcM_SearchByID(mRideActorID)); } else if (last_mode == 12) { procDungeonWarpSceneStartInit(); } else if (dComIfGp_getStartStagePoint() == -4) { procCoWarpInit(1, 1); - } else if (start_mode == 8 && field_0x3188 == 0xFF) { + } else if (start_mode == 8 && mStartEventID == 0xFF) { procCoWarpInit(1, 0); } else if (last_mode == 4 || start_mode == 12 || last_mode == 5) { if (checkHorseRide()) { procHorseComebackInit(); } else { - commonLargeDamageUpInit(-2, 1, 0, 0); + commonLargeDamageUpInit(-2, TRUE, 0, 0); if (checkWolf()) { - sp10 = 1; + sp10 = TRUE; } } } else if (last_mode == 9) { @@ -4402,34 +4717,34 @@ int daAlink_c::setStartProcInit() { if (start_mode == 3) { shape_angle.y = dComIfGs_getLastSceneAngleY(); current.angle.y = shape_angle.y; - field_0x2fe6 = shape_angle.y; + mPrevAngleY = shape_angle.y; } - if (field_0x3188 == 0xFF) { + if (mStartEventID == 0xFF) { if (!checkModeFlg(0x400) && start_mode != 0) { mNormalSpeed = dComIfGs_getLastSceneSpeedF(); } mDemo.setStartDemoType(); - mDemo.setDemoMode(14); + mDemo.setDemoMode(daPy_demo_c::DEMO_UNK_14_e); mDemo.setMoveAngle(current.angle.y); mDemo.setTimer(35); if (checkModeFlg(0x400)) { - daHorse_c* var_r27 = dComIfGp_getHorseActor(); - var_r27->changeOriginalDemo(); - var_r27->changeDemoMode(6, 0); + daHorse_c* horse = dComIfGp_getHorseActor(); + horse->changeOriginalDemo(); + horse->changeDemoMode(6, 0); if (start_mode == 2) { if (checkStageName("F_SP109") && fopAcM_GetRoomNo(this) == 0 && dComIfGs_getStartPoint() == 35) { - var_r27->setSpeedF(var_r27->getNormalMaxSpeedF()); + horse->setSpeedF(horse->getNormalMaxSpeedF()); } else { - var_r27->setSpeedF(0.0f); + horse->setSpeedF(0.0f); } } else if (start_mode == 1) { - var_r27->setWalkSpeedF(); + horse->setWalkSpeedF(); } else { - var_r27->setSpeedF(dComIfGs_getLastSceneSpeedF()); + horse->setSpeedF(dComIfGs_getLastSceneSpeedF()); } procHorseWaitInit(); @@ -4467,12 +4782,12 @@ int daAlink_c::setStartProcInit() { checkWaitAction(); } else if (last_mode == 2 || last_mode == 3) { mDemo.setStick(dComIfGs_getLastSceneSpeedF()); - field_0x2fe2 = shape_angle.y; + mMoveAngle = shape_angle.y; if (last_mode == 3) { shape_angle.y += 0x8000; current.angle.y = shape_angle.y; - field_0x2fe6 = shape_angle.y; + mPrevAngleY = shape_angle.y; } if (checkWolf()) { @@ -4506,24 +4821,37 @@ int daAlink_c::setStartProcInit() { int daAlink_c::create() { fopAcM_ct(this, daAlink_c); - static int bgWaitFlg = 0; + static BOOL bgWaitFlg = FALSE; u32 sceneMode = getLastSceneMode(); s32 startMode = getStartMode(); s16 startPoint = dComIfGp_getStartStagePoint(); - BOOL horseStart = checkHorseStart(sceneMode, startMode); + BOOL isHorseStart = checkHorseStart(sceneMode, startMode); // Stage: City Room: Entrance Layer: 0 - BOOL enteringCity = checkStageName("D_MN07") && dComIfGp_roomControl_getStayNo() == 0 && - dComIfG_play_c::getLayerNo(0) == 0 && current.pos.y > 7500.0f; + BOOL isEnteringLV7 = checkStageName("D_MN07") + && dComIfGp_roomControl_getStayNo() == 0 + && dComIfG_play_c::getLayerNo(0) == 0 + && current.pos.y > 7500.0f; if (!bgWaitFlg) { + #if DEBUG + if (g_playerKind == 2) { + dComIfGs_setSelectEquipClothes(fpcNm_ITEM_WEAR_CASUAL); + } else if (g_playerKind == 3) { + dComIfGs_setSelectEquipClothes(fpcNm_ITEM_WEAR_KOKIRI); + } else if (g_playerKind == 4) { + dComIfGs_setSelectEquipClothes(fpcNm_ITEM_WEAR_ZORA); + } else if (g_playerKind == 5) { + dComIfGs_setSelectEquipClothes(fpcNm_ITEM_ARMOR); + } else + #endif // Event Flag: Finished Sewers if (checkCasualWearFlg() && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[47])) { dComIfGs_setSelectEquipClothes(fpcNm_ITEM_WEAR_KOKIRI); } - if (enteringCity && checkMagicArmorHeavy()) { + if (isEnteringLV7 && checkMagicArmorHeavy()) { dComIfGs_setSelectEquipClothes(fpcNm_ITEM_WEAR_KOKIRI); } @@ -4537,14 +4865,30 @@ int daAlink_c::create() { current.angle.y = shape_angle.y; } - if ((!checkBossOctaIealRoom() && dComIfGs_Wolf_Change_Check() == 1) || startPoint == -4 || - sceneMode == 9) + if (( + ( + !checkBossOctaIealRoom() + #if DEBUG + && g_playerKind == 0 + #endif + ) + && dComIfGs_Wolf_Change_Check() == TRUE + ) + || + ( + #if DEBUG + g_playerKind == 1 || + #endif + startPoint == -4 + ) + || sceneMode == 9 + ) { attention_info.position.set(current.pos.x + cM_ssin(shape_angle.y) * 70.0f, current.pos.y + 80.0f, current.pos.z + cM_scos(shape_angle.y) * 70.0f); onNoResetFlg1(FLG1_IS_WOLF); - } else if (horseStart) { + } else if (isHorseStart) { attention_info.position.y = current.pos.y + 275.0f; } else { attention_info.position.y = current.pos.y + 150.0f; @@ -4566,8 +4910,12 @@ int daAlink_c::create() { if (dComIfG_resLoad(&mShieldPhaseReq, mShieldArcName, mpShieldArcHeap) != cPhs_COMPLEATE_e) { return cPhs_INIT_e; } + + u32 heapSize = 0x3E930; + heapSize |= 0x80000000; + heapSize |= 0x40000000; - if (!fopAcM_entrySolidHeap(this, daAlink_createHeap, 0xC003E930)) { + if (!fopAcM_entrySolidHeap(this, daAlink_createHeap, heapSize)) { return cPhs_ERROR_e; } @@ -4575,74 +4923,74 @@ int daAlink_c::create() { field_0x317c = dComIfGp_getPlayerCameraID(0); playerInit(); - bgWaitFlg = 1; + bgWaitFlg = TRUE; if (checkCanoeStart()) { - field_0x2900 = fopAcM_create(PROC_CANOE, 0, ¤t.pos, fopAcM_GetRoomNo(this), + mRideActorID = fopAcM_create(PROC_CANOE, 0, ¤t.pos, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1); } else if (sceneMode == 11) { - field_0x2900 = fopAcM_create(PROC_Obj_IceLeaf, 0x1FFFF, ¤t.pos, + mRideActorID = fopAcM_create(PROC_Obj_IceLeaf, 0x1FFFF, ¤t.pos, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1); } else { - field_0x2900 = fpcM_ERROR_PROCESS_ID_e; + mRideActorID = fpcM_ERROR_PROCESS_ID_e; } } mLinkAcch.CrrPos(dComIfG_Bgsp()); - void* var_r24 = NULL; + void* portalActor = NULL; - if (mLinkAcch.GetGroundH() == -G_CM3D_F_INF || - (startMode == 14 && !dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) || - (startPoint == -4 && - !(var_r24 = fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchPortal, ¤t.pos))) || - (field_0x2900 != fpcM_ERROR_PROCESS_ID_e && !fopAcM_SearchByID(field_0x2900)) || - (checkCanoeStart() && !fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchCanoe, NULL)) || - (checkBoarStart() && !fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchBoar, NULL)) || - (startMode == 13 && - (!mLinkAcch.ChkWaterHit() || mLinkAcch.m_wtr.GetHeight() < current.pos.y)) || - ((checkCarryStartLightBallA() || checkCarryStartLightBallB()) && - !fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchLightBall, NULL)) || - (horseStart && dComIfGp_getHorseActor() == NULL)) + if (mLinkAcch.GetGroundH() == -G_CM3D_F_INF + || (startMode == 14 && !dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) + || (startPoint == -4 && !(portalActor = fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchPortal, ¤t.pos))) + || (mRideActorID != fpcM_ERROR_PROCESS_ID_e && !fopAcM_SearchByID(mRideActorID)) + || (checkCanoeStart() && !fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchCanoe, NULL)) + || (checkBoarStart() && !fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchBoar, NULL)) + || (startMode == 13 && (!mLinkAcch.ChkWaterHit() || mLinkAcch.m_wtr.GetHeight() < current.pos.y)) + || ((checkCarryStartLightBallA() || checkCarryStartLightBallB()) && !fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchLightBall, NULL)) + || (isHorseStart && dComIfGp_getHorseActor() == NULL) + ) { return cPhs_INIT_e; } - if (var_r24 != NULL) { - dComIfGp_getEvent()->setPtD(var_r24); + if (portalActor != NULL) { + dComIfGp_getEvent()->setPtD(portalActor); } - bgWaitFlg = 0; + bgWaitFlg = FALSE; dComIfGs_setRestartRoom(current.pos, shape_angle.y, getStartRoomNo()); field_0x3780 = current.pos; mLinkAcch.ClrGndThinCellingOff(); - fopAcM_SetRoomNo(this, dComIfG_Bgsp().GetRoomId(mLinkAcch.m_gnd) + 1); + + int bg_roomId = dComIfG_Bgsp().GetRoomId(mLinkAcch.m_gnd); + fopAcM_SetRoomNo(this, bg_roomId + 1); setRoomInfo(); setWaterY(); if (checkStageName("F_SP102") && fopAcM_GetRoomNo(this) == 0 && dComIfG_play_c::getLayerNo(0) == 4) { - onNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE); + onNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE_1ST); } else if (checkStageName("F_SP123") && fopAcM_GetRoomNo(this) == 13 && dComIfG_play_c::getLayerNo(0) == 0) { - onNoResetFlg2(FLG2_UNK_1000000); + onNoResetFlg2(FLG2_BOAR_SINGLE_BATTLE_2ND); } - J3DAnmTransform* at1; - J3DAnmTransform* at2; - getUnderUpperAnime(ANM_WAIT, &at1, &at2, 0, 0x2C00); - mNowAnmPackUnder[0].setAnmTransform(at1); + J3DAnmTransform* underBck; + J3DAnmTransform* upperBck; + getUnderUpperAnime(ANM_WAIT, &underBck, &upperBck, 0, 0x2C00); + mNowAnmPackUnder[0].setAnmTransform(underBck); - if (at2 != NULL) { - mNowAnmPackUpper[0].setAnmTransform(at2); + if (upperBck != NULL) { + mNowAnmPackUpper[0].setAnmTransform(upperBck); } else { - mNowAnmPackUpper[0].setAnmTransform(at1); + mNowAnmPackUpper[0].setAnmTransform(underBck); } - int prm = setStartProcInit(); - setSelectEquipItem(0); + int midna_prm = setStartProcInit(); + setSelectEquipItem(FALSE); setMatrix(); allAnimePlay(); mpLinkModel->calc(); @@ -4657,13 +5005,13 @@ int daAlink_c::create() { setBodyPartPos(); setHangWaterY(); - field_0x850[0].SetC(current.pos); + mTgCyls[0].SetC(current.pos); field_0x3454 = field_0x3834.y; setAttentionPos(); setItemActor(); if ((dComIfGs_getLastSceneMode() & 0x400000) && !checkWolf() && !checkNotHeavyBootsStage() && - !horseStart && !enteringCity) + !isHorseStart && !isEnteringLV7) { setHeavyBoots(1); } @@ -4678,14 +5026,20 @@ int daAlink_c::create() { 1, 1); } - fopAcM_create(PROC_MIDNA, prm, ¤t.pos, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1); + #if DEBUG + // "Link" + mpHIO->entryHIO("リンク"); + l_jumpTop = 0.0f; + #endif + + fopAcM_create(PROC_MIDNA, midna_prm, ¤t.pos, fopAcM_GetRoomNo(this), &shape_angle, NULL, -1); checkSetNpcTks(¤t.pos, fopAcM_GetRoomNo(this), 1); if (startPoint == -4 && dComIfGp_TargetWarpPt_get() != 0xFF && !dComIfGp_TransportWarp_check()) { daTagMhint_c::createPortalWarpMissTag(0xBBE, fopAcM_GetID(this)); } - if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) == 0x11) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) == dStage_SaveTbl_LV2) { if (!dComIfGs_isItemFirstBit(fpcNm_ITEM_HYLIA_SHIELD) && !dComIfGs_isItemFirstBit(fpcNm_ITEM_SHIELD) && !dComIfGs_isItemFirstBit(fpcNm_ITEM_WOOD_SHIELD)) { @@ -4698,8 +5052,10 @@ int daAlink_c::create() { return cPhs_COMPLEATE_e; } -static int daAlink_Create(fopAc_ac_c* i_this) { - return static_cast(i_this)->create(); +static int daAlink_Create(fopAc_ac_c* actor) { + daAlink_c* i_this = (daAlink_c*)actor; + fpc_ProcID id = fopAcM_GetID(actor); + return i_this->create(); } int daAlink_c::setRoomInfo() { @@ -4711,7 +5067,7 @@ int daAlink_c::setRoomInfo() { if (roomID != fopAcM_GetRoomNo(this)) { tevStr.room_no = roomID; mVoiceReverbIntensity = dComIfGp_getReverb(roomID); - field_0x814.SetRoomId(roomID); + mCcStts.SetRoomId(roomID); fopAcM_SetRoomNo(this, roomID); } @@ -4721,29 +5077,29 @@ int daAlink_c::setRoomInfo() { } tevStr.YukaCol = dComIfG_Bgsp().GetPolyColor(mLinkAcch.m_gnd); - field_0x3174 = dComIfG_Bgsp().GetGroundCode(mLinkAcch.m_gnd); - field_0x2fbb = dComIfG_Bgsp().GetPolyAtt0(mLinkAcch.m_gnd); + mGroundCode = dComIfG_Bgsp().GetGroundCode(mLinkAcch.m_gnd); + mGndPolyAtt0 = dComIfG_Bgsp().GetPolyAtt0(mLinkAcch.m_gnd); mGndPolySpecialCode = dComIfG_Bgsp().GetSpecialCode(mLinkAcch.m_gnd); if (mGndPolySpecialCode == dBgW_SPCODE_HEAVY_SNOW && checkWolf()) { mGndPolySpecialCode = dBgW_SPCODE_LIGHT_SNOW; } - if (field_0x2fbd != 0xFF) { - if (field_0x2fbb == 3) { - field_0x2fbd = dComIfG_Bgsp().GetPolyAtt1(mLinkAcch.m_gnd); + if (mGndPolyAtt1 != 0xFF) { + if (mGndPolyAtt0 == 3) { + mGndPolyAtt1 = dComIfG_Bgsp().GetPolyAtt1(mLinkAcch.m_gnd); - if (field_0x2fbd == 4 && checkWolf()) { - field_0x2fbd = 0; + if (mGndPolyAtt1 == 4 && checkWolf()) { + mGndPolyAtt1 = 0; } - if (!checkEventRun() && (field_0x2fbd == 1 || field_0x2fbd == 3) && + if (!checkEventRun() && (mGndPolyAtt1 == 1 || mGndPolyAtt1 == 3) && (checkBootsOrArmorHeavy() || mSinkShapeOffset < 1.0f + field_0x3458)) { - field_0x2fbd = 2; + mGndPolyAtt1 = 2; } } else { - field_0x2fbd = 0; + mGndPolyAtt1 = 0; } } @@ -4875,7 +5231,13 @@ void daAlink_c::iceSlipBgCheck() { void daAlink_c::setIceSlipSpeed() { field_0x35d0 = field_0x35c4; - if (!checkModeFlg(0x1210C52) && !checkEventRun() && !checkHeavyStateOn(1, 1) && mGndPolySpecialCode == dBgW_SPCODE_ICE && !mLinkAcch.ChkWallHit() && mLinkAcch.ChkGroundHit()) { + if (!checkModeFlg(0x1210C52) + && !checkEventRun() + && !checkHeavyStateOn(TRUE, TRUE) + && mGndPolySpecialCode == dBgW_SPCODE_ICE + && !mLinkAcch.ChkWallHit() + && mLinkAcch.ChkGroundHit()) + { f32 var_f31, var_f30, var_f29; if (checkWolf()) { var_f31 = 0.1f; @@ -4913,15 +5275,15 @@ void daAlink_c::setIceSlipSpeed() { void daAlink_c::setPolygonSpeed() { offNoResetFlg3(daPy_FLG3(FLG3_UNK_1000 | FLG3_UNK_2000)); - if ((!checkEventRun() || checkNoResetFlg0(FLG0_UNK_14000)) && !checkMagneBootsOn()) { - cM3dGPla sp24; + if ((!checkEventRun() || checkNoResetFlg0(daPy_FLG0(FLG0_UNK_10000 | FLG0_UNK_4000))) && !checkMagneBootsOn()) { + cM3dGPla tripla; if (checkNoResetFlg3(FLG3_MIDNA_TALK_POLY_SPEED)) { offNoResetFlg3(FLG3_MIDNA_TALK_POLY_SPEED); field_0x3594 = field_0x35a0; field_0x35a0 = cXyz::Zero; } - if ((mLinkAcch.ChkGroundHit() && !checkHeavyStateOn(1, 1) && mWaterY > 30.0f + current.pos.y) || checkModeFlg(0x40000)) { + if ((mLinkAcch.ChkGroundHit() && !checkHeavyStateOn(TRUE, TRUE) && mWaterY > 30.0f + current.pos.y) || checkModeFlg(0x40000)) { cXyz sp18; int sp8; if (fopAcM_getWaterStream(¤t.pos, mLinkAcch.m_gnd, &sp18, &sp8, 0)) { @@ -4930,7 +5292,7 @@ void daAlink_c::setPolygonSpeed() { f32 var_f31; f32 var_f30; - if (checkHeavyStateOn(1, 1)) { + if (checkHeavyStateOn(TRUE, TRUE)) { sp18 = cXyz::Zero; var_f30 = 0.5f; } else if (!checkModeFlg(0x40000)) { @@ -4969,24 +5331,29 @@ void daAlink_c::setPolygonSpeed() { } cLib_addCalcPos(&field_0x3594, sp18, 0.5f, var_f30, 0.5f); - } else if (field_0x2fbd == 4 && mLinkAcch.ChkGroundHit() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &sp24) && sp24.mNormal.y <= cM_scos(cM_deg2s(29.9f))) { - f32 temp_f26 = sp24.mNormal.y; - f32 temp_f27 = cM_sht2d(cM_atan2s(sp24.mNormal.absXZ(), sp24.mNormal.y)) - 29.9f; - sp24.mNormal.y = 0.0f; - sp24.mNormal.normalizeZP(); + } else if (mGndPolyAtt1 == 4 + && mLinkAcch.ChkGroundHit() + && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) + && dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &tripla) + && tripla.mNormal.y <= cM_scos(cM_deg2s(29.9f))) + { + f32 temp_f26 = tripla.mNormal.y; + f32 temp_f27 = cM_sht2d(cM_atan2s(tripla.mNormal.absXZ(), tripla.mNormal.y)) - 29.9f; + tripla.mNormal.y = 0.0f; + tripla.mNormal.normalizeZP(); f32 sp3C = cM_deg2s(field_0x3122); - f32 var_f29; + f32 maxSpeed; if (temp_f27 < sp3C - 29.9f) { if (checkWolf()) { - var_f29 = mpHIO->mWolf.mWlMoveNoP.m.mMaxSpeed; + maxSpeed = mpHIO->mWolf.mWlMoveNoP.m.mMaxSpeed; } else { - var_f29 = mpHIO->mMove.m.mMaxSpeed; + maxSpeed = mpHIO->mMove.m.mMaxSpeed; } } else if (checkWolf()) { - var_f29 = mpHIO->mWolf.mWlSlide.m.mClimbingMaxSpeedWeak; + maxSpeed = mpHIO->mWolf.mWlSlide.m.mClimbingMaxSpeedWeak; } else { - var_f29 = mpHIO->mSlide.m.mMaxClimbSpeed; + maxSpeed = mpHIO->mSlide.m.mMaxClimbSpeed; } f32 var_f28 = 0.016887419f * (temp_f27 * temp_f26); @@ -4994,8 +5361,8 @@ void daAlink_c::setPolygonSpeed() { var_f28 = 1.0f; } - sp24.mNormal *= 0.5f + (var_f29 * var_f28); - cLib_addCalcPos(&field_0x3594, sp24.mNormal, 0.5f, 1.0f, 0.2f); + tripla.mNormal *= 0.5f + (maxSpeed * var_f28); + cLib_addCalcPos(&field_0x3594, tripla.mNormal, 0.5f, 1.0f, 0.2f); } else { field_0x3594 = cXyz::Zero; } @@ -5009,8 +5376,8 @@ bool daAlink_c::checkWindSpeedOnAngle() const { return false; } - int tmp = cLib_distanceAngleS(field_0x30cc, shape_angle.y); - return tmp >= 0x6000 || (tmp >= 0x4000 && checkWindDashAnime()); + int angle = cLib_distanceAngleS(field_0x30cc, shape_angle.y); + return angle >= 0x6000 || (angle >= 0x4000 && checkWindDashAnime()); } bool daAlink_c::checkWindSpeedOnAngleAnime(int param_0) const { @@ -5023,7 +5390,7 @@ bool daAlink_c::checkDashAnime() const { } f32 daAlink_c::checkWindWallRate(cXyz const& param_0) { - cXyz sp24(current.pos.x, current.pos.y + (0.5f * field_0x598), current.pos.z); + cXyz sp24(current.pos.x, current.pos.y + (0.5f * mHeight), current.pos.z); cXyz sp18 = sp24 - (param_0 * mpHIO->mBasic.m.mMaxWindInfluenceDist); f32 var_f31; @@ -5040,32 +5407,32 @@ f32 daAlink_c::checkWindWallRate(cXyz const& param_0) { } void daAlink_c::setWindSpeed() { - if (!checkModeFlg(0x40000) && !checkNoResetFlg0(FLG0_UNDERWATER)) { + if (!checkModeFlg(0x40000) && !checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { cXyz sp3C; f32 var_f31; f32 sp8; - if (field_0xC04[0].ChkTgHit() || field_0xC04[1].ChkTgHit() || field_0xC04[2].ChkTgHit()) { + if (mWindTgCyls[0].ChkTgHit() || mWindTgCyls[1].ChkTgHit() || mWindTgCyls[2].ChkTgHit()) { int i = 0; for (; i < 3; i++) { - if (field_0xC04[i].ChkTgHit()) { + if (mWindTgCyls[i].ChkTgHit()) { break; } } - sp3C = *field_0xC04[i].GetTgRVecP(); + sp3C = *mWindTgCyls[i].GetTgRVecP(); f32 temp_f1 = sp3C.absXZ(); if (temp_f1 < 1.0f && !checkGrabGlide()) { - if (field_0xC04[i].GetTgHitAc() != NULL) { - sp3C = current.pos - field_0xC04[i].GetTgHitAc()->current.pos; + if (mWindTgCyls[i].GetTgHitAc() != NULL) { + sp3C = current.pos - mWindTgCyls[i].GetTgHitAc()->current.pos; } else { - sp3C = current.pos - *field_0xC04[i].GetTgHitPosP(); + sp3C = current.pos - *mWindTgCyls[i].GetTgHitPosP(); } sp3C.y = 0.0f; sp3C.normalizeZP(); - sp3C *= field_0xC04[i].GetTgRVecP()->abs(); + sp3C *= mWindTgCyls[i].GetTgRVecP()->abs(); } sp8 = sp3C.abs(); @@ -5103,7 +5470,7 @@ void daAlink_c::setWindSpeed() { cLib_addCalcPos(&field_0x35b8, sp3C, 0.5f, var_f31, 0.5f); field_0x30cc = field_0x35b8.atan2sX_Z(); - if (!checkHeavyStateOn(1, 1) && !checkNoCollisionCorret() && !checkEventRun() && !checkModeFlg(0x10)) { + if (!checkHeavyStateOn(TRUE, TRUE) && !checkNoCollisionCorret() && !checkEventRun() && !checkModeFlg(0x10)) { cLib_addCalcPos(&mWindSpeed, sp3C, 0.5f, var_f31, 0.5f); } else { mWindSpeed = cXyz::Zero; @@ -5159,15 +5526,15 @@ void daAlink_c::setBodyPartPos() { cMtx_multVec(mpLinkModel->getAnmMtx(field_0x30b4), &localHeadCenter, &field_0x34e0); cMtx_multVec(mpLinkModel->getAnmMtx(field_0x30b4), &localHeadTop, &mHeadTopPos); - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(field_0x30b8), &mLeftHandPos); - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(field_0x30ba), &mRightHandPos); + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(mLeftHandJntNo), &mLeftHandPos); + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(mRightHandJntNo), &mRightHandPos); mDoMtx_multVecZero(mpLinkModel->getAnmMtx(field_0x30bc), &mLeftFootPos); mDoMtx_multVecZero(mpLinkModel->getAnmMtx(field_0x30be), &mRightFootPos); } mDoMtx_multVecZero(mpLinkModel->getAnmMtx(0), &field_0x3834); mItemPos = mHeadTopPos; - field_0x5f8 = current.pos; + mViewerCurrentPos = current.pos; if (checkRootTransClearMode()) { Vec sp8; @@ -5190,14 +5557,14 @@ void daAlink_c::setBodyPartPos() { sp8.y = 0.0f; } - field_0x5f8.set((current.pos.x - (sp8.z * cM_ssin(shape_angle.y))) - sp8.x * cM_scos(shape_angle.y), current.pos.y - sp8.y, (current.pos.z - (sp8.z * cM_scos(shape_angle.y))) + sp8.x * cM_ssin(shape_angle.y)); + mViewerCurrentPos.set((current.pos.x - (sp8.z * cM_ssin(shape_angle.y))) - sp8.x * cM_scos(shape_angle.y), current.pos.y - sp8.y, (current.pos.z - (sp8.z * cM_scos(shape_angle.y))) + sp8.x * cM_ssin(shape_angle.y)); } } -int daAlink_c::setRollJump(f32 param_0, f32 param_1, s16 param_2) { - field_0x3410 = param_0; - field_0x3414 = param_1; - field_0x30ee = param_2; +int daAlink_c::setRollJump(f32 i_speedH, f32 i_speedV, s16 i_angle) { + mRollJumpSpeedH = i_speedH; + mRollJumpSpeedV = i_speedV; + mRollJumpAngle = i_angle; onEndResetFlg0(ERFLG0_UNK_100); return 1; } @@ -5212,22 +5579,22 @@ void daAlink_c::setAttentionPos() { if (mProcID == PROC_METAMORPHOSE) { attention_info.position = field_0x34e0; } else if (checkModeFlg(0x400)) { - fopAc_ac_c* temp_r29 = mRideAcKeep.getActor(); + fopAc_ac_c* rideActor = mRideAcKeep.getActor(); if (mProcID == PROC_CANOE_RIDE || mProcID == PROC_CANOE_GETOFF || (mProcID == PROC_CANOE_WAIT && mProcVar0.field_0x3008 != 0)) { attention_info.position = field_0x34e0; } else if (checkSpinnerRide() || checkBoardRide()) { attention_info.position.set(current.pos.x, 150.0f + current.pos.y, current.pos.z); - } else if (temp_r29 != NULL) { + } else if (rideActor != NULL) { if (checkCanoeRide()) { f32 var_f31 = l_canoeBaseAnime.z; - if (((daCanoe_c*)temp_r29)->checkTandem()) { + if (((daCanoe_c*)rideActor)->checkTandem()) { var_f31 += 175.0f; } - attention_info.position.set(temp_r29->current.pos.x + (var_f31 * cM_ssin(shape_angle.y)), 50.0f + (temp_r29->current.pos.y + l_canoeBaseAnime.y), temp_r29->current.pos.z + (var_f31 * cM_scos(shape_angle.y))); + attention_info.position.set(rideActor->current.pos.x + (var_f31 * cM_ssin(shape_angle.y)), 50.0f + (rideActor->current.pos.y + l_canoeBaseAnime.y), rideActor->current.pos.z + (var_f31 * cM_scos(shape_angle.y))); } else { - attention_info.position.set(temp_r29->current.pos.x, 275.0f + temp_r29->current.pos.y, temp_r29->current.pos.z); + attention_info.position.set(rideActor->current.pos.x, 275.0f + rideActor->current.pos.y, rideActor->current.pos.z); } } else { attention_info.position.set(current.pos.x, 50.0f + current.pos.y, current.pos.z); @@ -5268,29 +5635,29 @@ void daAlink_c::setAttentionPos() { mDoMtx_multVecZero(mpLinkModel->getBaseTRMtx(), &attention_info.position); attention_info.position.y += 150.0f; } else { - const Vec* var_r28; - f32 var_f30; + const Vec* offset; + f32 pos_y; if (checkModeFlg(0x800000)) { - var_r28 = &crouchOffset; - var_f30 = current.pos.y; + offset = &crouchOffset; + pos_y = current.pos.y; } else if (checkModeFlg(0x40000)) { - var_r28 = &swimOffset; - var_f30 = current.pos.y; + offset = &swimOffset; + pos_y = current.pos.y; } else { if (mProcID == PROC_LAVA_RETURN) { - var_r28 = &swimOffset; + offset = &swimOffset; } else if (checkModeFlg(0x01000000)) { - var_r28 = &crawlOffset; + offset = &crawlOffset; } else { - var_r28 = &normalOffset; + offset = &normalOffset; } - var_f30 = mpLinkModel->getBaseTRMtx()[1][3]; + pos_y = mpLinkModel->getBaseTRMtx()[1][3]; } - cMtx_multVecSR(mpLinkModel->getBaseTRMtx(), var_r28, &attention_info.position); + cMtx_multVecSR(mpLinkModel->getBaseTRMtx(), offset, &attention_info.position); attention_info.position.x += current.pos.x; - attention_info.position.y += var_f30; + attention_info.position.y += pos_y; attention_info.position.z += current.pos.z; if (mProcID == PROC_CLIMB_MOVE_SIDE) { @@ -5307,7 +5674,7 @@ void daAlink_c::setAttentionPos() { void daAlink_c::setMatrix() { f32 var_f31; - if (field_0x3174 == 8 && mLinkAcch.ChkGroundHit() && !checkModeFlg(0x70C52)) { + if (mGroundCode == 8 && mLinkAcch.ChkGroundHit() && !checkModeFlg(0x70C52)) { var_f31 = 20.0f; } else { var_f31 = 0.0f; @@ -5351,7 +5718,15 @@ void daAlink_c::setMatrix() { field_0x2fb6 = 0; if (!checkWolf()) { - if (checkKandelaarEquipAnime() || checkSwordTwirlAnime() || checkNoResetFlg0(FLG0_UNK_1000000) || (checkModeFlg(0x10000) && checkEquipAnime()) || (checkBoardRide() && checkSwordEquipAnime()) || (checkUpperGuardAnime() && checkEquipAnime())) { + if (checkKandelaarEquipAnime() + || checkSwordTwirlAnime() + || checkNoResetFlg0(FLG0_UNK_1000000) + || (checkModeFlg(0x10000) && checkEquipAnime()) + || (checkBoardRide() && checkSwordEquipAnime()) + || (checkUpperGuardAnime() && checkEquipAnime()) + || (checkKandelaarSwingAnime() && mProcID != PROC_KANDELAAR_SWING && mTargetedActor == NULL && !checkModeFlg(0x400)) + ) + { field_0x2fb6 = 5; } else if (checkReelAnime()) { field_0x2fb6 = 4; @@ -5367,7 +5742,7 @@ void daAlink_c::setMatrix() { field_0x2fb6 = 8; } else if ((mProcID == PROC_SLIDE && field_0x3198 != 0) || (checkWindDashAnime() && checkUnderMove1BckNoArc(ANM_WALK_HEAVY) && (checkModeFlg(1) || checkZeroSpeedF()))) { field_0x2fb6 = 7; - } else if (checkUpperAnime(0x96) || checkCutDashChargeAnime() || (checkReinRide() && (checkUpperReadyThrowAnime() || checkGrabAnime()))) { + } else if (checkUpperAnime(dRes_ID_ALANM_BCK_CUTHTP_e) || checkCutDashChargeAnime() || (checkReinRide() && (checkUpperReadyThrowAnime() || checkGrabAnime()))) { field_0x2fb6 = 3; } else if (checkSwordEquipAnime() && !checkShieldGet()) { field_0x2fb6 = 2; @@ -5390,7 +5765,7 @@ int daAlink_c::simpleAnmPlay(J3DAnmBase* i_anm) { return 0; } - int ret = 0; + BOOL ret = FALSE; f32 frame = i_anm->getFrame() + 1.0f; if (frame >= i_anm->getFrameMax()) { @@ -5398,12 +5773,11 @@ int daAlink_c::simpleAnmPlay(J3DAnmBase* i_anm) { frame -= i_anm->getFrameMax(); } else { frame = i_anm->getFrameMax(); - ret = 1; + ret = TRUE; } } i_anm->setFrame(frame); - return ret; } @@ -5444,7 +5818,7 @@ void daAlink_c::setItemMatrix(int param_0) { int var_r26; if (!checkNoResetFlg3(FLG3_UNK_4000000)) { if (mEquipItem == 0x103 || param_0 != 0) { - mSwordModel->setBaseTRMtx(mpLinkModel->getAnmMtx(field_0x30c0)); + mSwordModel->setBaseTRMtx(mpLinkModel->getAnmMtx(mLeftItemJntNo)); var_r26 = 1; } else { mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(field_0x30b6)); @@ -5471,8 +5845,16 @@ void daAlink_c::setItemMatrix(int param_0) { mZ2Link.setLinkSwordType(var_r28, var_r26); if (mShieldChangeWaitTimer == 0) { - if (param_0 != 0 || (checkPlayerGuardAndAttack() && mEquipItem != fpcNm_ITEM_IRONBALL && !checkModeFlg(0x400)) || checkNoResetFlg0(FLG0_UNK_2) || (mProcID == PROC_TOOL_DEMO && mProcVar4.field_0x3010 != 0) || (mProcID == PROC_CUT_REVERSE && mProcVar2.field_0x300c != 0) || mProcID == PROC_GUARD_BREAK || (mEquipItem == 0x103 && !checkEndResetFlg1(ERFLG1_GANON_FINISH) && !checkModeFlg(0x400))) { - mShieldModel->setBaseTRMtx(mpLinkModel->getAnmMtx(field_0x30c2)); + if (param_0 != 0 + || (checkPlayerGuardAndAttack() && mEquipItem != fpcNm_ITEM_IRONBALL && !checkModeFlg(0x400)) + || checkNoResetFlg0(FLG0_UNK_2) + || (mProcID == PROC_TOOL_DEMO && mProcVar4.field_0x3010 != 0) + || (mProcID == PROC_CUT_REVERSE && mProcVar2.field_0x300c != 0) + || mProcID == PROC_GUARD_BREAK + || (mEquipItem == 0x103 && !checkEndResetFlg1(ERFLG1_SHIELD_BACKBONE) && !checkModeFlg(0x400)) + ) + { + mShieldModel->setBaseTRMtx(mpLinkModel->getAnmMtx(mRightItemJntNo)); if (checkShieldGet()) { field_0x2e44.offPassNum(0xF); @@ -5557,12 +5939,12 @@ void daAlink_c::setItemMatrix(int param_0) { if (mEquipItem == 0x106) { mHeldItemModel->setBaseTRMtx(mpLinkModel->getAnmMtx(4)); } else if (checkOilBottleItemNotGet(mEquipItem)) { - mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(field_0x30c2)); + mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(mRightItemJntNo)); mDoMtx_stack_c::transM(1.5f, -7.5f, -1.0f); mDoMtx_stack_c::XYZrotM(cM_deg2s(183.0f), cM_deg2s(176.0f), cM_deg2s(167.0f)); mHeldItemModel->setBaseTRMtx(mDoMtx_stack_c::get()); } else if (checkBottleItem(mEquipItem)) { - mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(field_0x30c0)); + mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(mLeftItemJntNo)); mDoMtx_stack_c::transM(-10.0f,-0.5f, -5.5f); mDoMtx_stack_c::XYZrotM(cM_deg2s(174.0f), cM_deg2s(-47.0f), cM_deg2s(94.0f)); mHeldItemModel->setBaseTRMtx(mDoMtx_stack_c::get()); @@ -5574,12 +5956,12 @@ void daAlink_c::setItemMatrix(int param_0) { } } else if (checkBowAndSlingItem(mEquipItem)) { if (checkBowGrabLeftHand()) { - mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(field_0x30c0)); + mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(mLeftItemJntNo)); mDoMtx_stack_c::transM(-1.3f, 0.0f, -3.0f); mDoMtx_stack_c::XYZrotM(cM_deg2s(-74.0f), cM_deg2s(43.6), cM_deg2s(1.9f)); mHeldItemModel->setBaseTRMtx(mDoMtx_stack_c::get()); } else { - mHeldItemModel->setBaseTRMtx(mpLinkModel->getAnmMtx(field_0x30c2)); + mHeldItemModel->setBaseTRMtx(mpLinkModel->getAnmMtx(mRightItemJntNo)); } } else if (checkHookshotItem(mEquipItem)) { setHookshotPos(); @@ -5594,7 +5976,7 @@ void daAlink_c::setItemMatrix(int param_0) { } } - mHeldItemModel->setBaseTRMtx(mpLinkModel->getAnmMtx(field_0x30c0)); + mHeldItemModel->setBaseTRMtx(mpLinkModel->getAnmMtx(mLeftItemJntNo)); } if (mItemBck.getBckAnm() != NULL) { @@ -5613,7 +5995,7 @@ void daAlink_c::setItemMatrix(int param_0) { if (mProcID != PROC_OPEN_TREASURE && !checkEndResetFlg1(ERFLG1_UNK_4) && (mProcID != PROC_GET_ITEM || mProcVar4.field_0x3010 == 0)) { if (mEquipItem == fpcNm_ITEM_KANTERA || checkOilBottleItemNotGet(mEquipItem)) { - mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(field_0x30c0)); + mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(mLeftItemJntNo)); mDoMtx_stack_c::transM(-2.0f, -0.1f, -0.7f); mDoMtx_stack_c::XYZrotM(cM_deg2s(100.0f), cM_deg2s(9.3f), cM_deg2s(183.0f)); mpKanteraModel->setBaseTRMtx(mDoMtx_stack_c::get()); @@ -5688,7 +6070,7 @@ void daAlink_c::setWolfItemMatrix() { mpHookSound->framework(0, mVoiceReverbIntensity); if (mProcID != PROC_WOLF_DOWN_AT_LAND) { - field_0x32d4 = dComIfGp_particle_set(field_0x32d4, 0x86CD, &mHeldItemRootPos, &tevStr, NULL, NULL, 0xFF, &field_0x2f38, -1, NULL, NULL, NULL); + field_0x32d4 = dComIfGp_particle_set(field_0x32d4, dPa_RM(ID_ZI_S_ID_SETB_D), &mHeldItemRootPos, &tevStr, NULL, NULL, 0xFF, &field_0x2f38, -1, NULL, NULL, NULL); } } @@ -5700,12 +6082,12 @@ void daAlink_c::setWolfItemMatrix() { } void daAlink_c::setHandIndex(daAlink_c::daAlink_ANM i_anmID) { - field_0x2f92 = getAnmData(i_anmID)->field_0x4; - field_0x2f93 = getAnmData(i_anmID)->field_0x5; + mLeftHandIndex = getAnmData(i_anmID)->m_handIndexL; + mRightHandIndex = getAnmData(i_anmID)->m_handIndexR; } void daAlink_c::setSwordAtCollision(int param_0) { - cXyz sp74; + cXyz work; if (checkCutDashAnime() && (checkCutDashEnemyHit(mAtCps[0]) || checkCutDashEnemyHit(mAtCps[1]) || checkCutDashEnemyHit(mAtCps[2]))) @@ -5714,7 +6096,7 @@ void daAlink_c::setSwordAtCollision(int param_0) { } if (mProcID == PROC_CUT_FINISH_JUMP_UP) { - sp74.set(current.pos.x + mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackOffset * cM_ssin(shape_angle.y), + work.set(current.pos.x + mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackOffset * cM_ssin(shape_angle.y), field_0x3478, current.pos.z + mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackOffset * cM_scos(shape_angle.y)); f32 height = mSwordTopPos.y - field_0x3478; @@ -5726,9 +6108,9 @@ void daAlink_c::setSwordAtCollision(int param_0) { mAtCyl.SetH(height); if (param_0 != 0) { - mAtCyl.StartCAt(sp74); + mAtCyl.StartCAt(work); } else { - mAtCyl.MoveCAt(sp74); + mAtCyl.MoveCAt(work); } dComIfG_Ccsp()->Set(&mAtCyl); @@ -5736,15 +6118,16 @@ void daAlink_c::setSwordAtCollision(int param_0) { return; } - sp74 = ((mSwordTopPos - field_0x3498) * field_0x33d0) + field_0x3498; + work = ((mSwordTopPos - field_0x3498) * field_0x33d0) + field_0x3498; cXyz sp68 = ((field_0x34b0 - field_0x34bc) * field_0x33d0) + field_0x34bc; - mAtCps[0].SetStartEnd(field_0x3498, sp74); - mAtCps[1].SetStartEnd(sp68, sp74); + mAtCps[0].SetStartEnd(field_0x3498, work); + mAtCps[1].SetStartEnd(sp68, work); mAtCps[2].SetStartEnd(field_0x3498, sp68); - mAtCps[0].OnAtSetBit(); cXyz sp5C; + mAtCps[0].OnAtSetBit(); + if (param_0 != 0) { sp5C = cXyz::Zero; } else { @@ -5764,12 +6147,15 @@ void daAlink_c::setSwordAtCollision(int param_0) { } BOOL daAlink_c::checkNoCollisionCorret() { - if (checkModeFlg(0x12800) || mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_TOOL_e || mProcID == PROC_DOOR_OPEN || - (checkEventRun() && - (!strcmp(dComIfGp_getEventManager().getRunEventName(), "SCENE_EXIT") || - (fopAcM_getTalkEventPartner(this) && - fopAcM_getTalkEventPartner(this) == getMidnaActor()))) || - eventInfo.checkCommandDoor()) + if (checkModeFlg(0x12800) + || mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_TOOL_e + || mProcID == PROC_DOOR_OPEN + || (checkEventRun() && + (strcmp(dComIfGp_getEventManager().getRunEventName(), "SCENE_EXIT") == 0 + || (fopAcM_getTalkEventPartner(this) && fopAcM_getTalkEventPartner(this) == getMidnaActor()) + ) + ) + || eventInfo.checkCommandDoor()) { return true; } @@ -5782,40 +6168,39 @@ void daAlink_c::decSwordBlur() { m_swordBlur.field_0x14 = 0; } else { m_swordBlur.field_0x14 -= 10; - m_swordBlur.traceBlur(¤t.pos, &old.pos, shape_angle.y - field_0x2fe6); + m_swordBlur.traceBlur(¤t.pos, &old.pos, shape_angle.y - mPrevAngleY); } } void daAlink_c::resetWolfAtCollision() { - if (checkNoResetFlg0(FLG0_UNK_40)) { - if (!setSwordHitVibration(&mAtCyl) && !setSwordHitVibration(&field_0x850[0]) && - !setSwordHitVibration(&field_0x850[1])) + if (checkNoResetFlg0(FLG0_CUT_AT_FLG)) { + if (!setSwordHitVibration(&mAtCyl) && !setSwordHitVibration(&mTgCyls[0]) && + !setSwordHitVibration(&mTgCyls[1])) { - setSwordHitVibration(&field_0x850[2]); + setSwordHitVibration(&mTgCyls[2]); } - field_0xFB8.OffTgWolfSpNoDamage(); + mAtSph.OffTgWolfSpNoDamage(); mAtCyl.ResetAtHit(); - offNoResetFlg0(FLG0_UNK_40); + offNoResetFlg0(FLG0_CUT_AT_FLG); - dCcD_Cyl* cyl = field_0x850; - for (int i = 0; i < 3; i++) { + dCcD_Cyl* cyl = mTgCyls; + for (int i = 0; i < 3; i++, cyl++) { cyl->OffAtSetBit(); cyl->ResetAtHit(); cyl->OffTgWolfSpNoDamage(); - cyl++; } } } void daAlink_c::setWolfAtCollision() { - cXyz sp8; + int i; if (checkResetFlg0(RFLG0_UNK_2)) { - if (!setSwordHitVibration(&mAtCyl) && !setSwordHitVibration(&field_0x850[0]) && - !setSwordHitVibration(&field_0x850[1])) + if (!setSwordHitVibration(&mAtCyl) && !setSwordHitVibration(&mTgCyls[0]) && + !setSwordHitVibration(&mTgCyls[1])) { - setSwordHitVibration(&field_0x850[2]); + setSwordHitVibration(&mTgCyls[2]); } if (mProcID == PROC_WOLF_ROLL_ATTACK) { @@ -5824,23 +6209,23 @@ void daAlink_c::setWolfAtCollision() { dComIfG_Ccsp()->Set(&mAtCyl); dComIfG_Ccsp()->SetMass(&mAtCyl, 1); } else { - sp8.set(current.pos.x + field_0x3438 * cM_ssin(shape_angle.y), current.pos.y, - current.pos.z + field_0x3438 * cM_scos(shape_angle.y)); + cXyz sp8(current.pos.x + field_0x3438 * cM_ssin(shape_angle.y), current.pos.y, + current.pos.z + field_0x3438 * cM_scos(shape_angle.y)); - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { mAtCyl.StartCAt(sp8); if (mProcID == PROC_WOLF_LOCK_ATTACK || mProcID == PROC_WOLF_JUMP_ATTACK) { - field_0xFB8.OnTgWolfSpNoDamage(); + mAtSph.OnTgWolfSpNoDamage(); - for (int i = 0; i < 3; i++) { - field_0x850[i].OnTgWolfSpNoDamage(); + for (i = 0; i < 3; i++) { + mTgCyls[i].OnTgWolfSpNoDamage(); } } - if (mCutType == 0x32 || mProcID == PROC_WOLF_LOCK_ATTACK) { - for (int i = 0; i < 3; i++) { - field_0x850[i].OnAtSetBit(); + if (mCutType == CUT_TYPE_WOLF_JUMP_S_FINISH || mProcID == PROC_WOLF_LOCK_ATTACK) { + for (i = 0; i < 3; i++) { + mTgCyls[i].OnAtSetBit(); } } } else { @@ -5851,28 +6236,31 @@ void daAlink_c::setWolfAtCollision() { dComIfG_Ccsp()->SetMass(&mAtCyl, 1); } - onNoResetFlg0(FLG0_UNK_40); + onNoResetFlg0(FLG0_CUT_AT_FLG); } else { resetWolfAtCollision(); } } -void daAlink_c::resetAtCollision(int param_0) { - if (checkNoResetFlg0(FLG0_UNK_40)) { - if (param_0 && !setSwordHitVibration(&mAtCps[0]) && !setSwordHitVibration(&mAtCps[1]) && - !setSwordHitVibration(&mAtCps[2]) && !setSwordHitVibration(&mAtCyl)) +void daAlink_c::resetAtCollision(BOOL param_0) { + if (checkNoResetFlg0(FLG0_CUT_AT_FLG)) { + if (param_0 + && !setSwordHitVibration(&mAtCps[0]) + && !setSwordHitVibration(&mAtCps[1]) + && !setSwordHitVibration(&mAtCps[2]) + && !setSwordHitVibration(&mAtCyl)) { - setSwordHitVibration(&field_0xFB8); + setSwordHitVibration(&mAtSph); } - offNoResetFlg0(FLG0_UNK_40); + offNoResetFlg0(FLG0_CUT_AT_FLG); for (int i = 0; i < 3; i++) { mAtCps[i].ResetAtHit(); mAtCps[i].OffAtSetBit(); } - field_0xFB8.ResetAtHit(); + mAtSph.ResetAtHit(); } } @@ -5885,7 +6273,7 @@ void daAlink_c::setAtCollision() { 0.0f, daCrod_c::getFlyInitY(), 0.0f }; - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; cXyz spC8; cXyz spBC; @@ -5954,36 +6342,42 @@ void daAlink_c::setAtCollision() { mGuardAtCps.ResetAtHit(); } } else if (mProcID == PROC_FRONT_ROLL) { - if (checkEquipHeavyBoots() && temp_r29->getFrame() >= mpHIO->mFrontRoll.m.mBootsAttackInitF && temp_r29->getFrame() < mpHIO->mFrontRoll.m.mBootsAttackEndF) { + if (checkEquipHeavyBoots() && framectrl->getFrame() >= mpHIO->mFrontRoll.m.mBootsAttackInitF && framectrl->getFrame() < mpHIO->mFrontRoll.m.mBootsAttackEndF) { cXyz sp98 = (mLeftFootPos + mRightFootPos) * 0.5f; - field_0xFB8.SetC(sp98); + mAtSph.SetC(sp98); sp98.set(mNormalSpeed * cM_ssin(shape_angle.y), 0.0f, mNormalSpeed * cM_scos(shape_angle.y)); - field_0xFB8.SetAtVec(sp98); + mAtSph.SetAtVec(sp98); - dComIfG_Ccsp()->Set(&field_0xFB8); + dComIfG_Ccsp()->Set(&mAtSph); } else { - field_0xFB8.ResetAtHit(); + mAtSph.ResetAtHit(); } } else if (checkHookshotItem(mEquipItem)) { - if (mItemMode == 3 || mItemMode == 1) { - f32 var_f30; - f32 var_f29; + if (mItemMode == 3 + #if !PLATFORM_GCN + || (mItemMode == 0 && mSight.getDrawFlg()) + #endif + || mItemMode == 1 + ) + { + f32 maxLength; + f32 shootSpeed; if (checkLv7BossRoom()) { - var_f29 = mpHIO->mItem.mHookshot.m.mBossShootSpeed; - var_f30 = mpHIO->mItem.mHookshot.m.mBossMaxLength; + shootSpeed = mpHIO->mItem.mHookshot.m.mBossShootSpeed; + maxLength = mpHIO->mItem.mHookshot.m.mBossMaxLength; } else { - var_f29 = mpHIO->mItem.mHookshot.m.mShootSpeed; - var_f30 = mpHIO->mItem.mHookshot.m.mMaxLength; + shootSpeed = mpHIO->mItem.mHookshot.m.mShootSpeed; + maxLength = mpHIO->mItem.mHookshot.m.mMaxLength; } f32 var_f31; if (mItemMode == 3) { spC8 = mHookshotTopPos - mHeldItemRootPos; - f32 temp_f1 = spC8.abs(); - var_f31 = 15.0f + var_f29; - if (var_f31 + temp_f1 > var_f30) { - var_f31 = var_f30 - temp_f1; + f32 len = spC8.abs(); + var_f31 = 15.0f + shootSpeed; + if (var_f31 + len > maxLength) { + var_f31 = maxLength - len; } if (cLib_distanceAngleS(spC8.atan2sX_Z(), field_0x301e) > 0x4000) { @@ -5994,7 +6388,7 @@ void daAlink_c::setAtCollision() { if (dComIfG_Bgsp().LineCross(&mRopeLinChk)) { var_f31 = -1.0f; } else { - var_f31 = var_f30; + var_f31 = maxLength; } } @@ -6019,44 +6413,52 @@ void daAlink_c::setAtCollision() { } } else if (checkKandelaarSwing(1)) { if (dComIfGs_getOil() != 0 && mUnderFrameCtrl[0].getFrame() >= field_0x347c && mUnderFrameCtrl[0].getFrame() <= field_0x3480) { - if (field_0xFB8.ChkAtSet()) { - field_0xFB8.MoveCAt(mKandelaarFlamePos); + if (mAtSph.ChkAtSet()) { + mAtSph.MoveCAt(mKandelaarFlamePos); } else { - field_0xFB8.OnAtSetBit(); - field_0xFB8.StartCAt(mKandelaarFlamePos); + mAtSph.OnAtSetBit(); + mAtSph.StartCAt(mKandelaarFlamePos); } - dComIfG_Ccsp()->Set(&field_0xFB8); - dComIfG_Ccsp()->SetMass(&field_0xFB8, 1); + dComIfG_Ccsp()->Set(&mAtSph); + dComIfG_Ccsp()->SetMass(&mAtSph, 1); } else { - field_0xFB8.ResetAtHit(); + mAtSph.ResetAtHit(); } } else if (mEquipItem == fpcNm_ITEM_IRONBALL) { if (mItemVar0.field_0x3018 == 2 || mItemVar0.field_0x3018 == 3 || mItemVar0.field_0x3018 == 4 || mItemVar0.field_0x3018 == 5 || mItemVar0.field_0x3018 == 7 || mItemVar0.field_0x3018 == 6) { - if (field_0xFB8.ChkAtSet()) { - field_0xFB8.MoveCAt(mIronBallCenterPos); + #if DEBUG + mAtSph.SetR(mpHIO->mItem.mIronBall.m.mAttackRadius); + #endif + + if (mAtSph.ChkAtSet()) { + mAtSph.MoveCAt(mIronBallCenterPos); } else { - field_0xFB8.StartCAt(mIronBallCenterPos); - field_0xFB8.OnAtSetBit(); + mAtSph.StartCAt(mIronBallCenterPos); + mAtSph.OnAtSetBit(); } - dComIfG_Ccsp()->Set(&field_0xFB8); - dComIfG_Ccsp()->SetMass(&field_0xFB8, 1); + dComIfG_Ccsp()->Set(&mAtSph); + dComIfG_Ccsp()->SetMass(&mAtSph, 1); if (mItemVar0.field_0x3018 == 5 || mItemVar0.field_0x3018 == 7 || mItemVar0.field_0x3018 == 6) { field_0x1778.SetC(mIronBallCenterPos); dComIfG_Ccsp()->Set(&field_0x1778); } } else { - field_0xFB8.ResetAtHit(); + mAtSph.ResetAtHit(); field_0x1778.ResetAtHit(); } } if (checkResetFlg0(RFLG0_UNK_2)) { - if (!setSwordHitVibration(&mAtCps[0]) && !setSwordHitVibration(&mAtCps[1]) && !setSwordHitVibration(&mAtCps[2]) && !setSwordHitVibration(&mAtCyl)) { - setSwordHitVibration(&field_0xFB8); + if (!setSwordHitVibration(&mAtCps[0]) + && !setSwordHitVibration(&mAtCps[1]) + && !setSwordHitVibration(&mAtCps[2]) + && !setSwordHitVibration(&mAtCyl)) + { + setSwordHitVibration(&mAtSph); } if (checkCutDashAnime()) { @@ -6068,25 +6470,25 @@ void daAlink_c::setAtCollision() { } if (mProcID == PROC_CUT_TURN || (mProcID == PROC_CUT_LARGE_JUMP_LAND && mProcVar2.field_0x300c != 0) || mProcID == PROC_BOARD_CUT_TURN) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { - onNoResetFlg0(FLG0_UNK_40); + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { + onNoResetFlg0(FLG0_CUT_AT_FLG); } spC8 = current.pos + (mMagneBootsTopVec * 50.0f); - field_0xFB8.SetC(spC8); + mAtSph.SetC(spC8); spC8 = cXyz::Zero; - field_0xFB8.SetAtVec(spC8); - dComIfG_Ccsp()->Set(&field_0xFB8); - dComIfG_Ccsp()->SetMass(&field_0xFB8, 1); + mAtSph.SetAtVec(spC8); + dComIfG_Ccsp()->Set(&mAtSph); + dComIfG_Ccsp()->SetMass(&mAtSph, 1); decSwordBlur(); if (mProcID == PROC_BOARD_CUT_TURN) { mProcVar5.field_0x3012 = cM_atan2s(mRightFootPos.x - mLeftFootPos.x, mRightFootPos.z - mLeftFootPos.z) - shape_angle.y; } } else if (mProcID == PROC_HORSE_CUT_TURN) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { - onNoResetFlg0(FLG0_UNK_40); + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { + onNoResetFlg0(FLG0_CUT_AT_FLG); } spC8.set(current.pos.x, current.pos.y - 80.0f, current.pos.z); @@ -6094,9 +6496,9 @@ void daAlink_c::setAtCollision() { dComIfG_Ccsp()->Set(&mAtCyl); dComIfG_Ccsp()->SetMass(&mAtCyl, 1); decSwordBlur(); - } else if (!checkNoResetFlg0(FLG0_UNK_40)) { + } else if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { setSwordAtCollision(1); - onNoResetFlg0(FLG0_UNK_40); + onNoResetFlg0(FLG0_CUT_AT_FLG); if (checkCutDashAnime()) { mAtCyl.StartCAt(spC8); @@ -6136,7 +6538,7 @@ void daAlink_c::setWolfCollisionPos() { cXyz sp44; mDoMtx_multVec(mpLinkModel->getAnmMtx(4), &localHead, &sp44); - field_0xFB8.MoveCAt(sp44); + mAtSph.MoveCAt(sp44); cXyz sp38; cXyz sp2C; @@ -6147,16 +6549,17 @@ void daAlink_c::setWolfCollisionPos() { sp44.x = 0.5f * (sp38.x + sp2C.x); sp44.z = 0.5f * (sp38.z + sp2C.z); - sp20[0] = field_0xFB8.GetC().y; + sp20[0] = mAtSph.GetC().y; sp44.y = mLeftHandPos.y > mRightHandPos.y ? mRightHandPos.y : mLeftHandPos.y; + f32 temp_f31; if (sp20[0] < sp44.y) { - f32 temp_f31 = sp20[0]; + temp_f31 = sp20[0]; sp20[0] = sp44.y; sp44.y = temp_f31; } - field_0x850[0].SetC(sp44); + mTgCyls[0].SetC(sp44); mDoMtx_multVecZero(mpLinkModel->getAnmMtx(0x1C), &sp38); mDoMtx_multVecZero(mpLinkModel->getAnmMtx(0x21), &sp2C); @@ -6167,23 +6570,24 @@ void daAlink_c::setWolfCollisionPos() { sp44.y = mLeftFootPos.y > mRightFootPos.y ? mRightFootPos.y : mLeftFootPos.y; if (sp20[2] < sp44.y) { - f32 temp_f31_2 = sp20[2]; + temp_f31 = sp20[2]; sp20[2] = sp44.y; - sp44.y = temp_f31_2; + sp44.y = temp_f31; } - field_0x850[2].SetC(sp44); - sp44 = (field_0x850[0].GetC() + field_0x850[2].GetC()) * 0.5f; + mTgCyls[2].SetC(sp44); + sp44 = (mTgCyls[0].GetC() + mTgCyls[2].GetC()) * 0.5f; sp20[1] = 0.5f * (sp20[0] + sp20[2]); - field_0x850[1].SetC(sp44); + mTgCyls[1].SetC(sp44); for (int i = 0; i < 3; i++) { - field_0x850[i].SetH(20.0f + (sp20[i] - field_0x850[i].GetC().y)); + f32 var_f30 = 20.0f + (sp20[i] - mTgCyls[i].GetC().y); + mTgCyls[i].SetH(var_f30); } - field_0x3454 = field_0x850[0].GetC().y + (field_0x850[0].GetH() * 0.5f); + field_0x3454 = mTgCyls[0].GetC().y + (mTgCyls[0].GetH() * 0.5f); } void daAlink_c::initLockAt() { @@ -6198,7 +6602,7 @@ void daAlink_c::cancelLockAt() { mAtCps[0].OffAtNoHitMark(); mAtCps[0].OnAtNoConHit(); mAtCps[0].ResetAtHit(); - field_0x814.SetAtApid(0xFFFFFFFF); + mCcStts.SetAtApid(fpcM_ERROR_PROCESS_ID_e); } void daAlink_c::setCollisionPos() { @@ -6220,8 +6624,8 @@ void daAlink_c::setCollisionPos() { var_f31 = 60.0f; } - field_0x850[2].SetC(sp68); - field_0x850[2].SetH(var_f31); + mTgCyls[2].SetC(sp68); + mTgCyls[2].SetH(var_f31); sp68 = (((mLeftFootPos + mRightFootPos) * 0.5f) + sp74) * 0.5f; f32 var_f0 = mLeftFootPos.y > mRightFootPos.y ? mRightFootPos.y : mLeftFootPos.y; @@ -6240,27 +6644,27 @@ void daAlink_c::setCollisionPos() { var_f31_2 = 60.0f; } - field_0x850[0].SetC(sp68); - field_0x850[0].SetH(var_f31_2); + mTgCyls[0].SetC(sp68); + mTgCyls[0].SetH(var_f31_2); - sp68 = (field_0x850[0].GetC() + field_0x850[2].GetC()) * 0.5f; - f32 temp_f31 = 0.5f * (field_0x850[0].GetH() + field_0x850[2].GetH()); + sp68 = (mTgCyls[0].GetC() + mTgCyls[2].GetC()) * 0.5f; + f32 temp_f31 = 0.5f * (mTgCyls[0].GetH() + mTgCyls[2].GetH()); - field_0x850[1].SetC(sp68); - field_0x850[1].SetH(temp_f31); + mTgCyls[1].SetC(sp68); + mTgCyls[1].SetH(temp_f31); field_0x3454 = field_0x3834.y; } void daAlink_c::setCollision() { - field_0x814.Move(); + mCcStts.Move(); field_0x173c.Move(); - dCcD_Cyl* var_r26 = field_0x850; - CcG_Tg_HitMark var_r3; + dCcD_Cyl* tgCyl = mTgCyls; + CcG_Tg_HitMark hitmark; if (checkMagicArmorNoDamage()) { - var_r3 = CcG_Tg_UNK_MARK_8; + hitmark = CcG_Tg_UNK_MARK_8; } else { - var_r3 = CcG_Tg_UNK_MARK_6; + hitmark = CcG_Tg_UNK_MARK_6; } if (checkIronBallWaitAnime()) { @@ -6270,45 +6674,45 @@ void daAlink_c::setCollision() { } int i; - for (i = 0; i < 3; i++, var_r26++) { - var_r26->SetTgHitMark(var_r3); + for (i = 0; i < 3; i++, tgCyl++) { + tgCyl->SetTgHitMark(hitmark); } - var_r26 = field_0x850; + tgCyl = mTgCyls; if (checkIronBallWaitAnime() || (checkPlayerGuardAndAttack() && !checkEndResetFlg1(ERFLG1_UNK_20))) { - BOOL var_r27; + BOOL isSpShield; if (field_0x3114 >= 0x3000 && field_0x3114 <= 0x5000) { - var_r27 = 1; + isSpShield = TRUE; } else { - var_r27 = 0; + isSpShield = FALSE; } - for (i = 0; i < 3; i++, var_r26++) { - if (var_r27) { - var_r26->OnTgSpShield(); - var_r26->OffTgShield(); + for (i = 0; i < 3; i++, tgCyl++) { + if (isSpShield) { + tgCyl->OnTgSpShield(); + tgCyl->OffTgShield(); } else { - var_r26->OffTgSpShield(); - var_r26->OnTgShield(); + tgCyl->OffTgSpShield(); + tgCyl->OnTgShield(); } if (checkHorseRide()) { - var_r26->OffTgShieldFrontRange(); + tgCyl->OffTgShieldFrontRange(); } else { - var_r26->OnTgShieldFrontRange(); + tgCyl->OnTgShieldFrontRange(); } } } else { - for (i = 0; i < 3; i++, var_r26++) { - var_r26->OffTgShield(); - var_r26->OffTgSpShield(); + for (i = 0; i < 3; i++, tgCyl++) { + tgCyl->OffTgShield(); + tgCyl->OffTgSpShield(); if (checkWolf()) { - var_r26->OffTgShieldFrontRange(); + tgCyl->OffTgShieldFrontRange(); } else { - var_r26->OnTgShieldFrontRange(); + tgCyl->OnTgShieldFrontRange(); } } } @@ -6325,21 +6729,21 @@ void daAlink_c::setCollision() { if (mDamageTimer != 0 || checkModeFlg(8)) { for (i = 0; i < 3; i++) { - field_0x850[i].OffTgSetBit(); - field_0x850[i].ResetTgHit(); + mTgCyls[i].OffTgSetBit(); + mTgCyls[i].ResetTgHit(); } if (checkWolf()) { - field_0xFB8.OffTgSetBit(); - field_0xFB8.ResetTgHit(); + mAtSph.OffTgSetBit(); + mAtSph.ResetTgHit(); } } else { for (i = 0; i < 3; i++) { - field_0x850[i].OnTgSetBit(); + mTgCyls[i].OnTgSetBit(); } if (checkWolf()) { - field_0xFB8.OnTgSetBit(); + mAtSph.OnTgSetBit(); } } @@ -6351,42 +6755,42 @@ void daAlink_c::setCollision() { field_0x306c = shape_angle.y + mBodyAngle.y; } - dComIfG_Ccsp()->Set(&field_0x850[0]); - dComIfG_Ccsp()->SetMass(&field_0x850[0], 1); + dComIfG_Ccsp()->Set(&mTgCyls[0]); + dComIfG_Ccsp()->SetMass(&mTgCyls[0], 1); if (checkWolf()) { setWolfAtCollision(); for (i = 1; i < 3; i++) { - dComIfG_Ccsp()->Set(&field_0x850[i]); - dComIfG_Ccsp()->SetMass(&field_0x850[i], 1); + dComIfG_Ccsp()->Set(&mTgCyls[i]); + dComIfG_Ccsp()->SetMass(&mTgCyls[i], 1); } if (checkModeFlg(0x100000)) { - field_0xFB8.OffCoSetBit(); - field_0xFB8.ResetCoHit(); + mAtSph.OffCoSetBit(); + mAtSph.ResetCoHit(); } else { - field_0xFB8.OnCoSetBit(); + mAtSph.OnCoSetBit(); } - dComIfG_Ccsp()->Set(&field_0xFB8); - dComIfG_Ccsp()->SetMass(&field_0xFB8, 1); + dComIfG_Ccsp()->Set(&mAtSph); + dComIfG_Ccsp()->SetMass(&mAtSph, 1); } else { for (i = 1; i < 3; i++) { - dComIfG_Ccsp()->Set(&field_0x850[i]); - dComIfG_Ccsp()->SetMass(&field_0x850[i], 1); + dComIfG_Ccsp()->Set(&mTgCyls[i]); + dComIfG_Ccsp()->SetMass(&mTgCyls[i], 1); } setAtCollision(); } - var_r26 = field_0x850; - dCcD_Cyl* var_r26_6 = field_0xC04; - for (i = 0; i < 3; i++, var_r26++, var_r26_6++) { - var_r26_6->SetC(var_r26->GetC()); - var_r26_6->SetR(var_r26->GetR()); - var_r26_6->SetH(var_r26->GetH()); - dComIfG_Ccsp()->Set(var_r26_6); + tgCyl = mTgCyls; + dCcD_Cyl* windTgCyl = mWindTgCyls; + for (i = 0; i < 3; i++, tgCyl++, windTgCyl++) { + windTgCyl->SetC(tgCyl->GetC()); + windTgCyl->SetR(tgCyl->GetR()); + windTgCyl->SetH(tgCyl->GetH()); + dComIfG_Ccsp()->Set(windTgCyl); } } @@ -6398,19 +6802,19 @@ f32 daAlink_c::getBaseAnimeFrame() const { return mUnderFrameCtrl[0].getFrame(); } -void daAlink_c::setAnimeFrame(f32 frame) { - mUnderFrameCtrl[0].setFrame(frame); - mUnderFrameCtrl[1].setFrame(frame); - mUnderFrameCtrl[2].setFrame(frame); +void daAlink_c::setAnimeFrame(f32 i_frame) { + mUnderFrameCtrl[0].setFrame(i_frame); + mUnderFrameCtrl[1].setFrame(i_frame); + mUnderFrameCtrl[2].setFrame(i_frame); - mUpperFrameCtrl[0].setFrame(frame); - mUpperFrameCtrl[1].setFrame(frame); - mUpperFrameCtrl[2].setFrame(frame); + mUpperFrameCtrl[0].setFrame(i_frame); + mUpperFrameCtrl[1].setFrame(i_frame); + mUpperFrameCtrl[2].setFrame(i_frame); } -void daAlink_c::setFrameCtrl(daPy_frameCtrl_c* i_ctrl, u8 i_attr, s16 i_start, s16 i_end, +void daAlink_c::setFrameCtrl(daPy_frameCtrl_c* i_framectrl, u8 i_attr, s16 i_start, s16 i_end, f32 i_rate, f32 i_frame) { - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { if (checkZoraWearAbility()) { i_rate *= mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed; } else { @@ -6418,13 +6822,13 @@ void daAlink_c::setFrameCtrl(daPy_frameCtrl_c* i_ctrl, u8 i_attr, s16 i_start, s } } - i_ctrl->setFrameCtrl(i_attr, i_start, i_end, i_rate, i_frame); + i_framectrl->setFrameCtrl(i_attr, i_start, i_end, i_rate, i_frame); } const daAlink_BckData* daAlink_c::getMainBckData(daAlink_c::daAlink_ANM i_anmID) const { static const daAlink_BckData kandelaarAnm[2] = { - {0x026A, 0x0268}, // waits, waitk - {0x0266, 0x0264}, // waiths, waithk + {dRes_ID_ALANM_BCK_WAITS_e, dRes_ID_ALANM_BCK_WAITK_e}, + {dRes_ID_ALANM_BCK_WAITHS_e, dRes_ID_ALANM_BCK_WAITHK_e}, }; if (mEquipItem == fpcNm_ITEM_KANTERA) { @@ -6437,21 +6841,21 @@ const daAlink_BckData* daAlink_c::getMainBckData(daAlink_c::daAlink_ANM i_anmID) } } - if (checkUpperGuardAnime() && i_anmID < 0x14) { + if (checkUpperGuardAnime() && i_anmID < ANM_SWIM_WAIT) { return &m_mainBckShield[i_anmID]; } - if ((mEquipItem == 0x103 && i_anmID < 0x15 && i_anmID >= 0x10) || + if ((mEquipItem == 0x103 && i_anmID < ANM_STEP_TURN && i_anmID >= ANM_ATN_WAIT_LEFT) || (i_anmID == ANM_SWIM_WAIT && mEquipItem != fpcNm_ITEM_NONE)) { - return &m_mainBckSword[i_anmID - 0x10]; + return &m_mainBckSword[i_anmID - ANM_ATN_WAIT_LEFT]; } - if (checkFishingRodAndLureItem() && i_anmID < 0x1C) { + if (checkFishingRodAndLureItem() && i_anmID < ANM_RUN_B) { return &m_mainBckFishing[i_anmID]; } - return &m_anmDataTable[i_anmID].field_0x0; + return &m_anmDataTable[i_anmID].m_bckData; } BOOL daAlink_c::checkUnderMove0BckNoArc(daAlink_c::daAlink_ANM i_anmID) const { @@ -6505,61 +6909,61 @@ int daAlink_c::getUnderUpperAnime(daAlink_c::daAlink_ANM i_anmID, J3DAnmTransfor return var_r31; } -void daAlink_c::setDoubleAnimeBlendRatio(f32 param_0) { - mNowAnmPackUnder[0].setRatio(1.0f - param_0); - mNowAnmPackUnder[1].setRatio(param_0); - mNowAnmPackUpper[0].setRatio(1.0f - param_0); - mNowAnmPackUpper[1].setRatio(param_0); +void daAlink_c::setDoubleAnimeBlendRatio(f32 i_ratio) { + mNowAnmPackUnder[0].setRatio(1.0f - i_ratio); + mNowAnmPackUnder[1].setRatio(i_ratio); + mNowAnmPackUpper[0].setRatio(1.0f - i_ratio); + mNowAnmPackUpper[1].setRatio(i_ratio); } -void daAlink_c::commonDoubleAnime(J3DAnmTransform* param_0, J3DAnmTransform* param_1, - J3DAnmTransform* param_2, J3DAnmTransform* param_3, - f32 param_4, f32 param_5, f32 param_6, int param_7) { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; - daPy_frameCtrl_c* temp_r24 = &mUnderFrameCtrl[1]; +void daAlink_c::commonDoubleAnime(J3DAnmTransform* i_underBck1, J3DAnmTransform* i_upperBck1, + J3DAnmTransform* i_underBck2, J3DAnmTransform* i_upperBck2, + f32 i_blendRatio, f32 i_anmSpeed1, f32 i_anmSpeed2, int param_7) { + daPy_frameCtrl_c* framectrl0 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl1 = &mUnderFrameCtrl[1]; f32 var_f31; if (field_0x2f8c == 0) { var_f31 = 0.0f; } else { - var_f31 = temp_r29->getFrame() / temp_r29->getEnd(); + var_f31 = framectrl0->getFrame() / framectrl0->getEnd(); } - setDoubleAnimeBlendRatio(param_4); + setDoubleAnimeBlendRatio(i_blendRatio); f32 temp_f30; - f32 temp_f29 = param_0->getFrameMax(); - f32 temp_f28 = param_2->getFrameMax(); + f32 temp_f29 = i_underBck1->getFrameMax(); + f32 temp_f28 = i_underBck2->getFrameMax(); f32 temp_f27 = 1.0f / temp_f29; - temp_f30 = param_5 + (param_4 * (((param_6 * temp_f29) / temp_f28) - param_5)); + temp_f30 = i_anmSpeed1 + (i_blendRatio * (((i_anmSpeed2 * temp_f29) / temp_f28) - i_anmSpeed1)); - setFrameCtrl(temp_r29, param_0->getAttribute(), 0, temp_f29, temp_f30, var_f31 * temp_f29); - param_0->setFrame(temp_r29->getFrame()); + setFrameCtrl(framectrl0, i_underBck1->getAttribute(), 0, temp_f29, temp_f30, var_f31 * temp_f29); + i_underBck1->setFrame(framectrl0->getFrame()); - setFrameCtrl(temp_r24, param_2->getAttribute(), 0, temp_f28, temp_f27 * (temp_f30 * temp_f28), var_f31 * temp_f28); - param_2->setFrame(temp_r24->getFrame()); + setFrameCtrl(framectrl1, i_underBck2->getAttribute(), 0, temp_f28, temp_f27 * (temp_f30 * temp_f28), var_f31 * temp_f28); + i_underBck2->setFrame(framectrl1->getFrame()); - mNowAnmPackUnder[0].setAnmTransform(param_0); - mNowAnmPackUnder[1].setAnmTransform(param_2); + mNowAnmPackUnder[0].setAnmTransform(i_underBck1); + mNowAnmPackUnder[1].setAnmTransform(i_underBck2); - if (param_1 != NULL) { - f32 temp_f26 = param_1->getFrameMax(); - mNowAnmPackUpper[0].setAnmTransform(param_1); + if (i_upperBck1 != NULL) { + f32 temp_f26 = i_upperBck1->getFrameMax(); + mNowAnmPackUpper[0].setAnmTransform(i_upperBck1); - setFrameCtrl(&mUpperFrameCtrl[0], param_1->getAttribute(), 0, temp_f26, temp_f27 * (temp_f30 * temp_f26), var_f31 * temp_f26); - param_1->setFrame(mUpperFrameCtrl[0].getFrame()); + setFrameCtrl(&mUpperFrameCtrl[0], i_upperBck1->getAttribute(), 0, temp_f26, temp_f27 * (temp_f30 * temp_f26), var_f31 * temp_f26); + i_upperBck1->setFrame(mUpperFrameCtrl[0].getFrame()); } else { - mNowAnmPackUpper[0].setAnmTransform(param_0); + mNowAnmPackUpper[0].setAnmTransform(i_underBck1); } - if (param_3 != NULL) { - f32 temp_f25 = param_3->getFrameMax(); - mNowAnmPackUpper[1].setAnmTransform(param_3); + if (i_upperBck2 != NULL) { + f32 temp_f25 = i_upperBck2->getFrameMax(); + mNowAnmPackUpper[1].setAnmTransform(i_upperBck2); - setFrameCtrl(&mUpperFrameCtrl[1], param_3->getAttribute(), 0, temp_f25, temp_f27 * (temp_f30 * temp_f25), var_f31 * temp_f25); - param_3->setFrame(mUpperFrameCtrl[1].getFrame()); + setFrameCtrl(&mUpperFrameCtrl[1], i_upperBck2->getAttribute(), 0, temp_f25, temp_f27 * (temp_f30 * temp_f25), var_f31 * temp_f25); + i_upperBck2->setFrame(mUpperFrameCtrl[1].getFrame()); } else { - mNowAnmPackUpper[1].setAnmTransform(param_2); + mNowAnmPackUpper[1].setAnmTransform(i_underBck2); } if (param_7 == 4 || param_7 == 2) { @@ -6582,22 +6986,22 @@ int daAlink_c::setDoubleAnime(f32 i_blendRate, f32 i_anmSpeedA, f32 i_anmSpeedB, } #endif - J3DAnmTransform* under_bckA; - J3DAnmTransform* upper_bckA; - J3DAnmTransform* under_bckB; - J3DAnmTransform* upper_bckB; + J3DAnmTransform* under_bck1; + J3DAnmTransform* upper_bck1; + J3DAnmTransform* under_bck2; + J3DAnmTransform* upper_bck2; - int temp_r3 = getUnderUpperAnime(i_anmA, &under_bckA, &upper_bckA, 0, 0x2C00); - int temp_r0 = getUnderUpperAnime(i_anmB, &under_bckB, &upper_bckB, 1, 0x2C00); + int temp_r3 = getUnderUpperAnime(i_anmA, &under_bck1, &upper_bck1, 0, 0x2C00); + temp_r3 |= getUnderUpperAnime(i_anmB, &under_bck2, &upper_bck2, 1, 0x2C00); - if ((temp_r3 | temp_r0) != 0 && i_morf < 0.0f) { + if (temp_r3 != 0 && i_morf < 0.0f) { if (i_anmA == ANM_WAIT_B && checkModeFlg(1)) { i_morf = mpHIO->mMove.m.mWaitBInterpolation; } else { i_morf = mpHIO->mBasic.m.mBasicInterpolation; } - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { if (checkZoraWearAbility()) { i_morf *= (1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed); } else { @@ -6607,7 +7011,7 @@ int daAlink_c::setDoubleAnime(f32 i_blendRate, f32 i_anmSpeedA, f32 i_anmSpeedB, } else if (i_anmA == ANM_WAIT_B && checkModeFlg(1) && i_morf > 0.0f) { i_morf = mpHIO->mMove.m.mWaitBInterpolation; - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { if (checkZoraWearAbility()) { i_morf *= (1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed); } else { @@ -6616,7 +7020,7 @@ int daAlink_c::setDoubleAnime(f32 i_blendRate, f32 i_anmSpeedA, f32 i_anmSpeedB, } } - commonDoubleAnime(under_bckA, upper_bckA, under_bckB, upper_bckB, i_blendRate, i_anmSpeedA, + commonDoubleAnime(under_bck1, upper_bck1, under_bck2, upper_bck2, i_blendRate, i_anmSpeedA, i_anmSpeedB, param_5); if (i_morf >= 0.0f) { field_0x2060->initOldFrameMorf(i_morf, 0, 35); @@ -6630,7 +7034,8 @@ int daAlink_c::setDoubleAnime(f32 i_blendRate, f32 i_anmSpeedA, f32 i_anmSpeedB, checkUnderMove0BckNoArc(ANM_HORSE_WALK_B))) { if (checkNoUpperAnime()) { - setUpperAnimeBaseMorf(0x263, mpHIO->mHorse.m.mTiredWaitInterpolation); + u16 resIdx = dRes_ID_ALANM_BCK_WAITHDS_e; + setUpperAnimeBaseMorf(resIdx, mpHIO->mHorse.m.mTiredWaitInterpolation); } setFaceBasicAnime(ANM_WAIT_TIRED); @@ -6651,59 +7056,59 @@ int daAlink_c::setDoubleAnime(f32 i_blendRate, f32 i_anmSpeedA, f32 i_anmSpeedB, return 1; } -void daAlink_c::commonSingleAnime(J3DAnmTransform* param_0, J3DAnmTransform* param_1, - f32 param_2, f32 param_3, s16 param_4) { +void daAlink_c::commonSingleAnime(J3DAnmTransform* i_underBck, J3DAnmTransform* i_upperBck, + f32 i_speed, f32 i_startF, s16 i_endF) { mUnderAnmHeap[1].resetIdx(); mUpperAnmHeap[1].resetIdx(); setDoubleAnimeBlendRatio(0.0f); - mNowAnmPackUnder[0].setAnmTransform(param_0); + mNowAnmPackUnder[0].setAnmTransform(i_underBck); mNowAnmPackUnder[1].setAnmTransform(NULL); - s16 var_r30; - if (param_4 < 0) { - var_r30 = param_0->getFrameMax(); + s16 end_frame; + if (i_endF < 0) { + end_frame = i_underBck->getFrameMax(); } else { - var_r30 = param_4; + end_frame = i_endF; } - f32 var_f31; - if (param_2 < 0.0f) { - var_f31 = var_r30; + f32 frame; + if (i_speed < 0.0f) { + frame = end_frame; } else { - var_f31 = param_3; + frame = i_startF; } - if (checkNoResetFlg0(FLG0_UNDERWATER) && checkModeFlg(0x200)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE) && checkModeFlg(0x200)) { if (checkZoraWearAbility() && mProcID != PROC_FRONT_ROLL && mEquipItem == 0x103) { - param_2 *= mpHIO->mItem.mIronBoots.m.mWaterVelRateSword * (1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed); + i_speed *= mpHIO->mItem.mIronBoots.m.mWaterVelRateSword * (1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed); } else if (!checkZoraWearAbility()) { - param_2 *= mpHIO->mItem.mIronBoots.m.mWaterWalkAnmRate * (1.0f / mpHIO->mItem.mIronBoots.m.mWaterStartWalkAnmRate); + i_speed *= mpHIO->mItem.mIronBoots.m.mWaterWalkAnmRate * (1.0f / mpHIO->mItem.mIronBoots.m.mWaterStartWalkAnmRate); } } - setFrameCtrl(&mUnderFrameCtrl[0], param_0->getAttribute(), param_3, var_r30, param_2, var_f31); - param_0->setFrame(var_f31); + setFrameCtrl(&mUnderFrameCtrl[0], i_underBck->getAttribute(), i_startF, end_frame, i_speed, frame); + i_underBck->setFrame(frame); - if (param_1 != NULL) { - mNowAnmPackUpper[0].setAnmTransform(param_1); + if (i_upperBck != NULL) { + mNowAnmPackUpper[0].setAnmTransform(i_upperBck); - if (param_4 < 0) { - var_r30 = param_1->getFrameMax(); + if (i_endF < 0) { + end_frame = i_upperBck->getFrameMax(); } else { - var_r30 = param_4; + end_frame = i_endF; } - if (param_2 < 0.0f) { - var_f31 = var_r30; + if (i_speed < 0.0f) { + frame = end_frame; } else { - var_f31 = param_3; + frame = i_startF; } - setFrameCtrl(&mUpperFrameCtrl[0], param_1->getAttribute(), param_3, var_r30, param_2, var_f31); - param_1->setFrame(var_f31); + setFrameCtrl(&mUpperFrameCtrl[0], i_upperBck->getAttribute(), i_startF, end_frame, i_speed, frame); + i_upperBck->setFrame(frame); } else { - mNowAnmPackUpper[0].setAnmTransform(param_0); + mNowAnmPackUpper[0].setAnmTransform(i_underBck); } mNowAnmPackUpper[1].setAnmTransform(NULL); @@ -6711,25 +7116,32 @@ void daAlink_c::commonSingleAnime(J3DAnmTransform* param_0, J3DAnmTransform* par field_0x2f8c = 0; } -void daAlink_c::setSingleAnimeBase(daAlink_c::daAlink_ANM i_anmID) { - setSingleAnime(i_anmID, 1.0f, 0.0f, -1, 3.0f); +int daAlink_c::setSingleAnimeBase(daAlink_c::daAlink_ANM i_anmID) { + return setSingleAnime(i_anmID, 1.0f, 0.0f, -1, 3.0f); } -void daAlink_c::setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM i_anmID, f32 param_1) { - setSingleAnime(i_anmID, 1.0f, 0.0f, -1, param_1); +int daAlink_c::setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM i_anmID, f32 i_morf) { + return setSingleAnime(i_anmID, 1.0f, 0.0f, -1, i_morf); } -void daAlink_c::setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM i_anmID, f32 param_1, f32 param_2) { - setSingleAnime(i_anmID, param_1, 0.0f, -1, param_2); +int daAlink_c::setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM i_anmID, f32 i_speed, f32 i_morf) { + return setSingleAnime(i_anmID, i_speed, 0.0f, -1, i_morf); } -int daAlink_c::setSingleAnime(daAlink_c::daAlink_ANM i_anmID, f32 i_rate, f32 i_start, s16 i_end, +int daAlink_c::setSingleAnime(daAlink_c::daAlink_ANM i_anmID, f32 i_speed, f32 i_start, s16 i_end, f32 i_morf) { J3DAnmTransform* under_bck; J3DAnmTransform* upper_bck; + #if DEBUG + if (checkWolf()) { + OS_REPORT("狼なのにリンクアニメ設定\n"); + JUT_ASSERT(8861, FALSE); + } + #endif + getUnderUpperAnime(i_anmID, &under_bck, &upper_bck, 0, 0x10800); - commonSingleAnime(under_bck, upper_bck, i_rate, i_start, i_end); + commonSingleAnime(under_bck, upper_bck, i_speed, i_start, i_end); if (i_morf >= 0.0f) { field_0x2060->initOldFrameMorf(i_morf, 0, 35); @@ -6741,10 +7153,9 @@ int daAlink_c::setSingleAnime(daAlink_c::daAlink_ANM i_anmID, f32 i_rate, f32 i_ return 1; } -int daAlink_c::setSingleAnimeParam(daAlink_c::daAlink_ANM i_anmID, - daAlinkHIO_anm_c const* i_anmData) { - return setSingleAnime(i_anmID, i_anmData->mSpeed, i_anmData->mStartFrame, i_anmData->mEndFrame, - i_anmData->mInterpolation); +int daAlink_c::setSingleAnimeParam(daAlink_c::daAlink_ANM i_anmID, const daAlinkHIO_anm_c* i_anmParams) { + return setSingleAnime(i_anmID, i_anmParams->mSpeed, i_anmParams->mStartFrame, i_anmParams->mEndFrame, + i_anmParams->mInterpolation); } void daAlink_c::animePlay(J3DAnmTransform* i_anm, daPy_frameCtrl_c* i_frameCtrl) { @@ -6776,13 +7187,15 @@ void daAlink_c::allAnimePlay() { animePlay(upper1_bck, &mUpperFrameCtrl[1]); } - animePlay(getNowAnmPackUpper((daAlink_UPPER)2), &mUpperFrameCtrl[2]); + for (int i = 2; i < 3; i++) { + animePlay(getNowAnmPackUpper((daAlink_UPPER)i), &mUpperFrameCtrl[i]); + } - if (field_0x2f92 == 0xFB && mpDemoHLTmpBck != NULL) { + if (mLeftHandIndex == 0xFB && mpDemoHLTmpBck != NULL) { mpDemoHLTmpBck->play(); } - if (field_0x2f93 == 0xFB && mpDemoHRTmpBck != NULL) { + if (mRightHandIndex == 0xFB && mpDemoHRTmpBck != NULL) { mpDemoHRTmpBck->play(); } @@ -6808,14 +7221,12 @@ void daAlink_c::allAnimePlay() { simpleAnmPlay(field_0x06f8); } -void daAlink_c::setUpperAnimeMorf(f32 param_0) { - if (param_0 >= 0.0f) { +void daAlink_c::setUpperAnimeMorf(f32 i_morf) { + if (i_morf >= 0.0f) { u16 temp_r29; u16 temp_r28; - if (field_0x2060->getOldFrameRate() > 0.1f && - field_0x2060->getOldFrameStartJoint() == 0) - { + if (field_0x2060->getOldFrameRate() > 0.1f && field_0x2060->getOldFrameStartJoint() == 0) { temp_r29 = 0; temp_r28 = field_0x30c6; } else { @@ -6823,66 +7234,66 @@ void daAlink_c::setUpperAnimeMorf(f32 param_0) { temp_r28 = field_0x30aa; } - field_0x2060->initOldFrameMorf(param_0, temp_r29, temp_r28); + field_0x2060->initOldFrameMorf(i_morf, temp_r29, temp_r28); } } -void daAlink_c::setUpperAnimeBase(u16 i_anmResID) { - setUpperAnime(i_anmResID, UPPER_2, 1.0f, 0.0f, -1, 3.0f); +void daAlink_c::setUpperAnimeBase(u16 i_anmResIdx) { + setUpperAnime(i_anmResIdx, UPPER_2, 1.0f, 0.0f, -1, 3.0f); } -void daAlink_c::setUpperAnimeBaseMorf(u16 i_anmResID, f32 i_morf) { - setUpperAnime(i_anmResID, UPPER_2, 1.0f, 0.0f, -1, i_morf); +void daAlink_c::setUpperAnimeBaseMorf(u16 i_anmResIdx, f32 i_morf) { + setUpperAnime(i_anmResIdx, UPPER_2, 1.0f, 0.0f, -1, i_morf); } -void daAlink_c::setUpperAnimeBaseSpeed(u16 i_anmResID, f32 i_speed, f32 i_morf) { - setUpperAnime(i_anmResID, UPPER_2, i_speed, 0.0f, -1, i_morf); +void daAlink_c::setUpperAnimeBaseSpeed(u16 i_anmResIdx, f32 i_speed, f32 i_morf) { + setUpperAnime(i_anmResIdx, UPPER_2, i_speed, 0.0f, -1, i_morf); } -int daAlink_c::setUpperAnime(u16 i_anmResID, daAlink_c::daAlink_UPPER param_1, f32 i_speed, - f32 i_startFrame, s16 i_endFrame, f32 i_morf) { - BOOL var_r28 = 0; +int daAlink_c::setUpperAnime(u16 i_anmResIdx, daAlink_c::daAlink_UPPER i_upperIdx, f32 i_speed, + f32 i_startFrame, s16 i_endFrame, f32 i_morf) { + BOOL var_r28 = FALSE; - if (param_1 == 2) { + if (i_upperIdx == UPPER_2) { resetFacePriAnime(); offNoResetFlg1(daPy_FLG1(FLG1_UNK_10000000 | FLG1_UNK_4000000 | FLG1_UNK_100000 | FLG1_UNK_40000 | FLG1_UNK_20000 | FLG1_UNK_10000 | FLG1_UNK_40 | FLG1_UNK_8 | FLG1_UNK_2)); cancelItemUseQuake(0); if (checkFmChainGrabAnime()) { - var_r28 = 1; + var_r28 = TRUE; } } if (checkDkCaught2Anime()) { - offNoResetFlg0(FLG0_DK_CAUGHT); + offNoResetFlg0(FLG0_DK_CAUGHT2); } - J3DAnmTransform* var_r30 = getAnimeResource(&mUpperAnmHeap[param_1], i_anmResID, 0x2C00); - if (var_r30 == NULL) { - var_r30 = getNowAnmPackUpper(param_1); + J3DAnmTransform* bck = getAnimeResource(&mUpperAnmHeap[i_upperIdx], i_anmResIdx, 0x2C00); + if (bck == NULL) { + bck = getNowAnmPackUpper(i_upperIdx); } - mNowAnmPackUpper[param_1].setAnmTransform(var_r30); - mNowAnmPackUpper[param_1].setRatio(1.0f); - mUpperAnmHeap[param_1].setIdx(i_anmResID); + mNowAnmPackUpper[i_upperIdx].setAnmTransform(bck); + mNowAnmPackUpper[i_upperIdx].setRatio(1.0f); + mUpperAnmHeap[i_upperIdx].setIdx(i_anmResIdx); if (i_endFrame < 0) { - i_endFrame = var_r30->getFrameMax(); + i_endFrame = bck->getFrameMax(); } - f32 var_f31; + f32 frame; if (i_speed < 0.0f) { - var_f31 = i_endFrame; + frame = i_endFrame; } else { - var_f31 = i_startFrame; + frame = i_startFrame; } - if (!checkZoraWearAbility() && (checkEquipAnime() || checkCutDashAnime()) && (checkNoResetFlg0(FLG0_UNDERWATER) || !checkNoResetFlg0(FLG0_SWIM_UP))) { + if (!checkZoraWearAbility() && (checkEquipAnime() || checkCutDashAnime()) && (checkNoResetFlg0(FLG0_WATER_IN_MOVE) || !checkNoResetFlg0(FLG0_SWIM_UP))) { i_speed *= mpHIO->mItem.mIronBoots.m.mWaterWalkAnmRate * (1.0f / mpHIO->mItem.mIronBoots.m.mWaterStartWalkAnmRate); } - setFrameCtrl(&mUpperFrameCtrl[param_1], var_r30->getAttribute(), i_startFrame, i_endFrame, i_speed, var_f31); - var_r30->setFrame(var_f31); + setFrameCtrl(&mUpperFrameCtrl[i_upperIdx], bck->getAttribute(), i_startFrame, i_endFrame, i_speed, frame); + bck->setFrame(frame); setUpperAnimeMorf(i_morf); if (!checkBowAnime()) { @@ -6898,7 +7309,7 @@ int daAlink_c::setUpperAnime(u16 i_anmResID, daAlink_c::daAlink_UPPER param_1, f resetWolfEnemyBiteAll(); } - if (var_r28 != 0 && !checkFmChainGrabAnime()) { + if (var_r28 && !checkFmChainGrabAnime()) { cancelFmChainGrabFromOut(); } @@ -6906,34 +7317,34 @@ int daAlink_c::setUpperAnime(u16 i_anmResID, daAlink_c::daAlink_UPPER param_1, f return 1; } -void daAlink_c::setUpperAnimeParam(u16 i_anmResID, daAlink_c::daAlink_UPPER param_1, - daAlinkHIO_anm_c const* i_anmParam) { - setUpperAnime(i_anmResID, param_1, i_anmParam->mSpeed, i_anmParam->mStartFrame, +void daAlink_c::setUpperAnimeParam(u16 i_anmResIdx, daAlink_c::daAlink_UPPER i_upperIdx, + const daAlinkHIO_anm_c* i_anmParam) { + setUpperAnime(i_anmResIdx, i_upperIdx, i_anmParam->mSpeed, i_anmParam->mStartFrame, i_anmParam->mEndFrame, i_anmParam->mInterpolation); } -int daAlink_c::resetUpperAnime(daAlink_c::daAlink_UPPER param_0, f32 param_1) { - BOOL var_r29 = 0; +int daAlink_c::resetUpperAnime(daAlink_c::daAlink_UPPER i_upperIdx, f32 i_morf) { + BOOL var_r29 = FALSE; if (checkFmChainGrabAnime()) { cancelFmChainGrabFromOut(); } else if (!checkModeFlg(0x100000) && (checkGrabAnime() || checkWolfGrabAnime())) { - var_r29 = 1; + var_r29 = TRUE; } if (checkDkCaught2Anime()) { - offNoResetFlg0(FLG0_DK_CAUGHT); + offNoResetFlg0(FLG0_DK_CAUGHT2); } else if (checkWolfEnemyThrowAnime()) { resetWolfEnemyBiteAll(); } - mNowAnmPackUpper[param_0].setAnmTransform(NULL); - mNowAnmPackUpper[param_0].setRatio(0.0f); - mUpperAnmHeap[param_0].resetIdx(); - mUpperFrameCtrl[param_0].init(0); + mNowAnmPackUpper[i_upperIdx].setAnmTransform(NULL); + mNowAnmPackUpper[i_upperIdx].setRatio(0.0f); + mUpperAnmHeap[i_upperIdx].resetIdx(); + mUpperFrameCtrl[i_upperIdx].init(0); - setUpperAnimeMorf(param_1); + setUpperAnimeMorf(i_morf); - if (param_0 == 2) { + if (i_upperIdx == UPPER_2) { resetFacePriAnime(); } @@ -6952,58 +7363,58 @@ int daAlink_c::resetUpperAnime(daAlink_c::daAlink_UPPER param_0, f32 param_1) { return 1; } -void daAlink_c::setUnderAnimeMorf(f32 param_0) { - if (param_0 >= 0.0f) { +void daAlink_c::setUnderAnimeMorf(f32 i_morf) { + if (i_morf >= 0.0f) { if (field_0x2060->getOldFrameRate() > 0.1f && (field_0x2060->getOldFrameStartJoint() == 0 || field_0x2060->getOldFrameStartJoint() == 1)) { - field_0x2060->initOldFrameMorf(param_0, 0, 35); + field_0x2060->initOldFrameMorf(i_morf, 0, 35); } else { - field_0x2060->initOldFrameMorf(param_0, 16, 35); + field_0x2060->initOldFrameMorf(i_morf, 16, 35); } } } -int daAlink_c::setUnderAnime(u16 i_resID, daAlink_c::daAlink_UNDER i_packIdx, f32 i_speed, - f32 i_startF, s16 i_endF, f32 i_morf) { - J3DAnmTransform* var_r30 = getAnimeResource(&mUnderAnmHeap[i_packIdx], i_resID, 0x2C00); - if (var_r30 == NULL) { - var_r30 = getNowAnmPackUnder(i_packIdx); +int daAlink_c::setUnderAnime(u16 i_resIdx, daAlink_c::daAlink_UNDER i_underIdx, f32 i_speed, + f32 i_startF, s16 i_endF, f32 i_morf) { + J3DAnmTransform* bck = getAnimeResource(&mUnderAnmHeap[i_underIdx], i_resIdx, 0x2C00); + if (bck == NULL) { + bck = getNowAnmPackUnder(i_underIdx); } - mNowAnmPackUnder[i_packIdx].setAnmTransform(var_r30); - mNowAnmPackUnder[i_packIdx].setRatio(1.0f); - mUnderAnmHeap[i_packIdx].setIdx(i_resID); + mNowAnmPackUnder[i_underIdx].setAnmTransform(bck); + mNowAnmPackUnder[i_underIdx].setRatio(1.0f); + mUnderAnmHeap[i_underIdx].setIdx(i_resIdx); if (i_endF < 0) { - i_endF = var_r30->getFrameMax(); + i_endF = bck->getFrameMax(); } - f32 var_f31; + f32 frame; if (i_speed < 0.0f) { - var_f31 = i_endF; + frame = i_endF; } else { - var_f31 = i_startF; + frame = i_startF; } - setFrameCtrl(&mUnderFrameCtrl[i_packIdx], var_r30->getAttribute(), i_startF, i_endF, i_speed, var_f31); - var_r30->setFrame(var_f31); + setFrameCtrl(&mUnderFrameCtrl[i_underIdx], bck->getAttribute(), i_startF, i_endF, i_speed, frame); + bck->setFrame(frame); setUnderAnimeMorf(i_morf); return 1; } -int daAlink_c::setUnderAnimeParam(u16 i_resID, daAlink_c::daAlink_UNDER i_packIdx, - daAlinkHIO_anm_c const* i_anmData) { - return setUnderAnime(i_resID, i_packIdx, i_anmData->mSpeed, i_anmData->mStartFrame, - i_anmData->mEndFrame, i_anmData->mInterpolation); +int daAlink_c::setUnderAnimeParam(u16 i_resIdx, daAlink_c::daAlink_UNDER i_underIdx, + const daAlinkHIO_anm_c* i_anmParam) { + return setUnderAnime(i_resIdx, i_underIdx, i_anmParam->mSpeed, i_anmParam->mStartFrame, + i_anmParam->mEndFrame, i_anmParam->mInterpolation); } -int daAlink_c::resetUnderAnime(daAlink_c::daAlink_UNDER param_0, f32 i_morf) { - mNowAnmPackUnder[param_0].setAnmTransform(NULL); - mNowAnmPackUnder[param_0].setRatio(0.0f); - mUnderAnmHeap[param_0].resetIdx(); - mUnderFrameCtrl[param_0].init(0); +int daAlink_c::resetUnderAnime(daAlink_c::daAlink_UNDER i_underIdx, f32 i_morf) { + mNowAnmPackUnder[i_underIdx].setAnmTransform(NULL); + mNowAnmPackUnder[i_underIdx].setRatio(0.0f); + mUnderAnmHeap[i_underIdx].resetIdx(); + mUnderFrameCtrl[i_underIdx].init(0); setUnderAnimeMorf(i_morf); return 1; } @@ -7045,18 +7456,18 @@ BOOL daAlink_c::checkAtnRightAnime() { f32 daAlink_c::getMoveGroundAngleSpeedRate() { s16 gnd_angle; - if (field_0x3174 == 8 || checkMagneBootsOn() || !mLinkAcch.ChkGroundHit()) { + if (mGroundCode == 8 || checkMagneBootsOn() || !mLinkAcch.ChkGroundHit()) { gnd_angle = 0; } else { gnd_angle = getGroundAngle(&mLinkAcch.m_gnd, current.angle.y); } - return fabsf((mNormalSpeed * cM_scos(gnd_angle)) / field_0x594); + return fabsf((mNormalSpeed * cM_scos(gnd_angle)) / mMaxSpeed); } -void daAlink_c::setBlendMoveAnime(f32 param_0) { - daPy_frameCtrl_c* sp34 = &mUnderFrameCtrl[0]; - daPy_frameCtrl_c* sp30 = &mUnderFrameCtrl[1]; +void daAlink_c::setBlendMoveAnime(f32 i_morf) { + daPy_frameCtrl_c* framectrl0 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl1 = &mUnderFrameCtrl[1]; f32 var_f31 = getMoveGroundAngleSpeedRate(); f32 sp2C; @@ -7078,15 +7489,15 @@ void daAlink_c::setBlendMoveAnime(f32 param_0) { field_0x2fb3--; } - fopAc_ac_c* sp1C = mAttention->LockonTarget(0); + fopAc_ac_c* lockon_actor = mAttention->LockonTarget(0); daAlink_ANM var_r29; if (checkDkCaught2Anime()) { var_r29 = ANM_HORSE_WAIT_D_B; - } else if ((!sp24 && ((sp1C != NULL && (checkEnemyGroup(sp1C) || checkGoatCatchActor(sp1C))) || field_0x311c != 0)) || checkEndResetFlg0(ERFLG0_BOSS_ROOM_WAIT) || checkBootsOrArmorHeavy()) { + } else if ((!sp24 && ((lockon_actor != NULL && (checkEnemyGroup(lockon_actor) || checkGoatCatchActor(lockon_actor))) || field_0x311c != 0)) || checkEndResetFlg0(ERFLG0_BOSS_ROOM_WAIT) || checkBootsOrArmorHeavy()) { var_r29 = ANM_WAIT_B; field_0x2fb3 = 0x2D; - } else if (!sp24 && (field_0x2fb3 != 0 || checkNoResetFlg3(FLG3_UNK_2000) || field_0x35c4.absXZ() > 1.0f || (checkUnderMove0BckNoArc(ANM_WAIT_B) && !sp34->checkPass(0.0f)))) { + } else if (!sp24 && (field_0x2fb3 != 0 || checkNoResetFlg3(FLG3_UNK_2000) || field_0x35c4.absXZ() > 1.0f || (checkUnderMove0BckNoArc(ANM_WAIT_B) && !framectrl0->checkPass(0.0f)))) { var_r29 = ANM_WAIT_B; } else { if (checkRestHPAnime() && !checkUpperGuardAnime()) { @@ -7099,7 +7510,7 @@ void daAlink_c::setBlendMoveAnime(f32 param_0) { daAlink_ANM var_r28 = ANM_WALK; daAlink_ANM sp18; - if (mDemo.getDemoMode() == 0x26) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_38_e) { sp18 = ANM_RUN_B; } else { sp18 = ANM_RUN; @@ -7115,7 +7526,7 @@ void daAlink_c::setBlendMoveAnime(f32 param_0) { var_f31 *= 1.0f / (mHeavySpeedMultiplier * mHeavySpeedMultiplier); f32 sp14; - if (checkHeavyStateOn(1, 0) && mSinkShapeOffset < -30.0f) { + if (checkHeavyStateOn(TRUE, FALSE) && mSinkShapeOffset < -30.0f) { sp14 = 0.5f * mpHIO->mItem.mIronBoots.m.mWalkAnmSpeedMax; } else { sp14 = mpHIO->mItem.mIronBoots.m.mWalkAnmSpeedMax; @@ -7184,14 +7595,14 @@ void daAlink_c::setBlendMoveAnime(f32 param_0) { var_f30 = mpHIO->mItem.mIronBall.m.mWaitAnmSpeed; } - setDoubleAnime(0.0f, var_f30, var_f29, var_r29, var_r28, 2, param_0); + setDoubleAnime(0.0f, var_f30, var_f29, var_r29, var_r28, 2, i_morf); return; } sp10 = 2; - s16 sp8 = (shape_angle.y - field_0x2fe6); + s16 sp8 = (shape_angle.y - mPrevAngleY); - if (abs(sp8) > 100 && field_0x33a8 < 0.3f && checkInputOnR() && field_0x33a4 > 0.05f && field_0x33a4 < 0.3f && !checkAttentionLock()) { + if (abs(sp8) > 100 && mStickValue < 0.3f && checkInputOnR() && field_0x33a4 > 0.05f && field_0x33a4 < 0.3f && !checkAttentionLock()) { if (var_r29 == ANM_WAIT_TIRED) { if (sp8 > 0) { var_r28 = ANM_STEP_TURN_TIRED; @@ -7240,10 +7651,10 @@ void daAlink_c::setBlendMoveAnime(f32 param_0) { if (var_r29 == ANM_WAIT_TIRED) { if (checkUnderMove1BckNoArc(ANM_STEP_TURN)) { var_r28 = ANM_STEP_TURN_TIRED; - param_0 = 3.0f; + i_morf = 3.0f; } else if (checkUnderMove1BckNoArc(ANM_SMALL_GUARD)) { var_r28 = ANM_SMALL_GUARD_TIRED; - param_0 = 3.0f; + i_morf = 3.0f; } } } @@ -7267,36 +7678,36 @@ void daAlink_c::setBlendMoveAnime(f32 param_0) { var_f30 = 1.0f; } - setDoubleAnime(var_f28, var_f30, var_f29,var_r29, var_r28, sp10, param_0); + setDoubleAnime(var_f28, var_f30, var_f29,var_r29, var_r28, sp10, i_morf); if (var_r28 == ANM_WALK_HEAVY && ((field_0x2f8c == 2 && checkWindSpeedOnXZ()) || checkWindSpeedOnAngle())) { onEndResetFlg0(ERFLG0_UNK_2000); if (checkNoSetUpperAnime()) { - setUpperAnimeBase(0xCE); + setUpperAnimeBase(dRes_ID_ALANM_BCK_DASHWIND_e); field_0x2f96 = 1; field_0x2f97 = 6; } } } else if (var_f31 < mpHIO->mMove.m.mRunChangeRate) { var_f28 = (var_f31 - mpHIO->mMove.m.mWalkChangeRate) / (mpHIO->mMove.m.mRunChangeRate - mpHIO->mMove.m.mWalkChangeRate); - setDoubleAnime(var_f28, var_f29, sp2C, var_r28, sp18, 1, param_0); + setDoubleAnime(var_f28, var_f29, sp2C, var_r28, sp18, 1, i_morf); mSpeedModifier = sp28 * (1.0f - var_f28); - if (checkNoResetFlg0(FLG0_UNDERWATER) && var_f28 > 0.5f) { - if (sp30->checkPass(var_f27)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE) && var_f28 > 0.5f) { + if (framectrl1->checkPass(var_f27)) { field_0x2f9d = 0x20; - } else if (sp30->checkPass(var_f26)) { + } else if (framectrl1->checkPass(var_f26)) { field_0x2f9d = 0x40; } } } else { - setDoubleAnime(1.0f, sp2C, sp2C, sp18, sp18, 1, param_0); + setDoubleAnime(1.0f, sp2C, sp2C, sp18, sp18, 1, i_morf); mSpeedModifier = 0.0f; - if (sp30->checkPass(var_f27)) { + if (framectrl1->checkPass(var_f27)) { field_0x2f9d = 0x20; - } else if (sp30->checkPass(var_f26)) { + } else if (framectrl1->checkPass(var_f26)) { field_0x2f9d = 0x40; } @@ -7304,7 +7715,7 @@ void daAlink_c::setBlendMoveAnime(f32 param_0) { onEndResetFlg0(ERFLG0_UNK_2000); if (checkNoSetUpperAnime()) { - setUpperAnimeBase(0xCE); + setUpperAnimeBase(dRes_ID_ALANM_BCK_DASHWIND_e); field_0x2f96 = 1; field_0x2f97 = 6; } @@ -7312,13 +7723,13 @@ void daAlink_c::setBlendMoveAnime(f32 param_0) { } if (field_0x2f8c != 2) { - if (sp30->checkPass(var_f27)) { + if (framectrl1->checkPass(var_f27)) { onResetFlg1(RFLG1_UNK_10); if (checkBootsOrArmorHeavy()) { dComIfGp_getVibration().StartShock(1, 0xF, cXyz(0.0f, 1.0f, 0.0f)); } - } else if (sp30->checkPass(var_f26)) { + } else if (framectrl1->checkPass(var_f26)) { onResetFlg1(RFLG1_UNK_20); if (checkBootsOrArmorHeavy()) { @@ -7334,14 +7745,14 @@ void daAlink_c::setBlendMoveAnime(f32 param_0) { } } -void daAlink_c::setBlendAtnMoveAnime(f32 param_0) { +void daAlink_c::setBlendAtnMoveAnime(f32 i_morf) { s16 spA = (current.angle.y - shape_angle.y); f32 sp44 = cM_ssin(spA); f32 sp40 = cM_scos(spA); u8 sp8 = field_0x2f98; BOOL sp3C = 0; - if (mDemo.getDemoMode() == 0x17) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_23_e) { if (mDemo.getParam1() & 1) { field_0x2f98 = 2; } else { @@ -7361,11 +7772,11 @@ void daAlink_c::setBlendAtnMoveAnime(f32 param_0) { } } else { if (checkFmChainGrabAnime()) { - field_0x594 = 13.0f; - } else if (mTargetedActor != 0) { - field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed; + mMaxSpeed = 13.0f; + } else if (mTargetedActor != NULL) { + mMaxSpeed = mpHIO->mAtnMove.m.mMaxSpeed; } else { - field_0x594 = mpHIO->mNoActAtnMove.m.mMaxSpeed; + mMaxSpeed = mpHIO->mNoActAtnMove.m.mMaxSpeed; } if (mTargetedActor != NULL && sp40 >= 0.866f) { @@ -7387,7 +7798,7 @@ void daAlink_c::setBlendAtnMoveAnime(f32 param_0) { if (checkSetChainPullAnime(shape_angle.y)) { daAlink_ANM var_r27; - if (checkEndResetFlg1(ERFLG1_UNK_2000000)) { + if (checkEndResetFlg1(ERFLG1_CHAIN_PULL_END)) { var_r27 = ANM_CHAIN_PULL_END; } else { var_r27 = ANM_CHAIN_PULL; @@ -7409,13 +7820,13 @@ void daAlink_c::setBlendAtnMoveAnime(f32 param_0) { } if (field_0x2f98 == 1) { - setBlendAtnBackMoveAnime(param_0); + setBlendAtnBackMoveAnime(i_morf); return; } if (sp3C) { - field_0x594 = mpHIO->mMove.m.mMaxSpeed; - setBlendMoveAnime(param_0); + mMaxSpeed = mpHIO->mMove.m.mMaxSpeed; + setBlendMoveAnime(i_morf); return; } @@ -7478,7 +7889,7 @@ void daAlink_c::setBlendAtnMoveAnime(f32 param_0) { mSpeedModifier = 1.0f; } - setDoubleAnime(var_f31, sp24, sp20, var_r28, var_r29, sp1C, param_0); + setDoubleAnime(var_f31, sp24, sp20, var_r28, var_r29, sp1C, i_morf); } else if (sp34 < sp28) { var_f31 = (sp34 - sp2C) / (sp28 - sp2C); @@ -7503,7 +7914,7 @@ void daAlink_c::setBlendAtnMoveAnime(f32 param_0) { var_r29 = ANM_ATN_RUN_RIGHT; } - setDoubleAnime(var_f31, sp20, var_f30, var_r28, var_r29, 3, param_0); + setDoubleAnime(var_f31, sp20, var_f30, var_r28, var_r29, 3, i_morf); mSpeedModifier = 1.0f - var_f31; } else { if (field_0x2f98 == 0) { @@ -7521,12 +7932,12 @@ void daAlink_c::setBlendAtnMoveAnime(f32 param_0) { var_r29 = ANM_ATN_RUN_RIGHT; } - setDoubleAnime(1.0f, var_f30, var_f30, var_r29, var_r29, 3, param_0); + setDoubleAnime(1.0f, var_f30, var_f30, var_r29, var_r29, 3, i_morf); mSpeedModifier = 0.0f; } if (field_0x2f8c != 2) { - daPy_frameCtrl_c* sp18 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; f32 sp14; f32 sp10; @@ -7550,9 +7961,9 @@ void daAlink_c::setBlendAtnMoveAnime(f32 param_0) { } } - if (sp18->checkPass(sp14)) { + if (framectrl->checkPass(sp14)) { onResetFlg1(RFLG1_UNK_10); - } else if (sp18->checkPass(sp10)) { + } else if (framectrl->checkPass(sp10)) { onResetFlg1(RFLG1_UNK_20); } @@ -7562,7 +7973,7 @@ void daAlink_c::setBlendAtnMoveAnime(f32 param_0) { } } -void daAlink_c::setBlendAtnBackMoveAnime(f32 param_0) { +void daAlink_c::setBlendAtnBackMoveAnime(f32 i_morf) { f32 var_f27; f32 var_f31; f32 var_f26; @@ -7574,7 +7985,7 @@ void daAlink_c::setBlendAtnBackMoveAnime(f32 param_0) { daAlink_ANM var_r29; if (checkBootsMoveAnime(1)) { - field_0x594 = mpHIO->mAtnMove.m.mMaxBackwardsSpeed; + mMaxSpeed = mpHIO->mAtnMove.m.mMaxBackwardsSpeed; var_f27 = mpHIO->mAtnMove.m.mMinBackWalkFrame; var_f31 = mpHIO->mAtnMove.m.mBackWalkChangeRate; var_f26 = mpHIO->mAtnMove.m.mBackRunChangeRate; @@ -7585,7 +7996,7 @@ void daAlink_c::setBlendAtnBackMoveAnime(f32 param_0) { var_r27 = ANM_ATN_BACK_WALK_HEAVY; var_r29 = ANM_ATN_BACK_WALK_HEAVY; } else if (mTargetedActor != NULL) { - field_0x594 = mpHIO->mAtnMove.m.mMaxBackwardsSpeed; + mMaxSpeed = mpHIO->mAtnMove.m.mMaxBackwardsSpeed; var_f27 = mpHIO->mAtnMove.m.mMinBackWalkFrame; var_f31 = mpHIO->mAtnMove.m.mBackWalkChangeRate; var_f26 = mpHIO->mAtnMove.m.mBackRunChangeRate; @@ -7596,7 +8007,7 @@ void daAlink_c::setBlendAtnBackMoveAnime(f32 param_0) { var_r27 = ANM_ATN_LOCK_BACK_WALK; var_r29 = ANM_ATN_LOCK_BACK_RUN; } else { - field_0x594 = mpHIO->mNoActAtnMove.m.mMaxBackwardsSpeed; + mMaxSpeed = mpHIO->mNoActAtnMove.m.mMaxBackwardsSpeed; var_f27 = mpHIO->mNoActAtnMove.m.mMinBackWalkFrame; var_f31 = mpHIO->mNoActAtnMove.m.mBackWalkChangeRate; var_f26 = mpHIO->mNoActAtnMove.m.mBackRunChangeRate; @@ -7624,28 +8035,28 @@ void daAlink_c::setBlendAtnBackMoveAnime(f32 param_0) { var_f30 = var_f27 + (var_f30 * (1.0f - var_f27)); } - setDoubleAnime(var_f30, var_f24, var_f25, var_r26, var_r27, var_r25, param_0); + setDoubleAnime(var_f30, var_f24, var_f25, var_r26, var_r27, var_r25, i_morf); } else if (temp_f1 < var_f26) { var_f30 = (temp_f1 - var_f31) / (var_f26 - var_f31); - setDoubleAnime(var_f30, var_f25, var_f29, var_r27, var_r29, 3, param_0); + setDoubleAnime(var_f30, var_f25, var_f29, var_r27, var_r29, 3, i_morf); mSpeedModifier = 1.0f - var_f30; } else { - setDoubleAnime(1.0f, var_f29, var_f29, var_r29, var_r29, 3, param_0); + setDoubleAnime(1.0f, var_f29, var_f29, var_r29, var_r29, 3, i_morf); mSpeedModifier = 0.0f; } if (field_0x2f8c != 2) { - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; if (var_r29 == ANM_ATN_LOCK_BACK_RUN) { - if (temp_r28->checkPass(11.0f)) { + if (framectrl->checkPass(11.0f)) { onResetFlg1(RFLG1_UNK_10); - } else if (temp_r28->checkPass(8.0f)) { + } else if (framectrl->checkPass(8.0f)) { onResetFlg1(RFLG1_UNK_20); } - } else if (temp_r28->checkPass(0.0f)) { + } else if (framectrl->checkPass(0.0f)) { onResetFlg1(RFLG1_UNK_10); - } else if (temp_r28->checkPass(0.5f * temp_r28->getEnd())) { + } else if (framectrl->checkPass(0.5f * framectrl->getEnd())) { onResetFlg1(RFLG1_UNK_20); } } @@ -7655,57 +8066,62 @@ void daAlink_c::setBlendAtnBackMoveAnime(f32 param_0) { } } -void daAlink_c::setFaceBck(u16 param_0, int param_1, u16 param_2) { +void daAlink_c::setFaceBck(u16 i_resIdx, BOOL i_isPriIdx, u16 i_arcNo) { if (!checkNoResetFlg0(FLG0_SWIM_UP) && mProcID != PROC_GET_ITEM) { - param_0 = 0x157; - } else if (param_0 == 0) { - fopAc_ac_c* temp_r28 = mAttention->LockonTarget(0); - if (checkAttentionState() || (checkHorseRide() && checkEnemyGroup(temp_r28)) || checkEndResetFlg0(ERFLG0_UNK_400)) { - param_0 = 0xE8; + i_resIdx = dRes_ID_ALANM_BCK_FSWIMINGB_e; + } else if (i_resIdx == 0) { + fopAc_ac_c* lockon_actor = mAttention->LockonTarget(0); + if (checkAttentionState() || (checkHorseRide() && checkEnemyGroup(lockon_actor)) || checkEndResetFlg0(ERFLG0_NECK_SEARCH_WIDE)) { + i_resIdx = dRes_ID_ALANM_BCK_FAT_e; } else { - param_0 = 0xDF; + i_resIdx = dRes_ID_ALANM_BCK_FA_e; } } else { - setIdxMask(¶m_2, ¶m_0); + setIdxMask(&i_arcNo, &i_resIdx); } - J3DAnmTransform* var_r29; - if (param_2 != 0xFFFF) { - var_r29 = (J3DAnmTransform*)mFaceBckHeap.loadDataDemoRID(param_0, param_2); - } else if (param_1 != 0) { - var_r29 = (J3DAnmTransform*)mFaceBckHeap.loadDataPriIdx(param_0); + J3DAnmTransform* bck; + if (i_arcNo != 0xFFFF) { + bck = (J3DAnmTransform*)mFaceBckHeap.loadDataDemoRID(i_resIdx, i_arcNo); + } else if (i_isPriIdx) { + bck = (J3DAnmTransform*)mFaceBckHeap.loadDataPriIdx(i_resIdx); } else { - var_r29 = (J3DAnmTransform*)mFaceBckHeap.loadDataIdx(param_0); + bck = (J3DAnmTransform*)mFaceBckHeap.loadDataIdx(i_resIdx); } - if (var_r29 != NULL) { - field_0x2164.init(var_r29, 0, var_r29->getAttribute(), 1.0f, 0, -1, 1); - var_r29->setFrame(0.0f); + if (bck != NULL) { + mFaceBck.init(bck, FALSE, bck->getAttribute(), 1.0f, 0, -1, 1); + bck->setFrame(0.0f); } } -void daAlink_c::setFaceBtp(u16 param_0, int param_1, u16 param_2) { - setIdxMask(¶m_2, ¶m_0); +void daAlink_c::setFaceBtp(u16 i_resIdx, BOOL i_isPriIdx, u16 i_arcNo) { + setIdxMask(&i_arcNo, &i_resIdx); - J3DAnmTexPattern* var_r30; - if (param_2 != 0xFFFF) { - var_r30 = (J3DAnmTexPattern*)mFaceBtpHeap.loadDataDemoRID(param_0, param_2); - } else if (param_1 != 0) { - var_r30 = (J3DAnmTexPattern*)mFaceBtpHeap.loadDataPriIdx(param_0); + J3DAnmTexPattern* btp; + if (i_arcNo != 0xFFFF) { + btp = (J3DAnmTexPattern*)mFaceBtpHeap.loadDataDemoRID(i_resIdx, i_arcNo); + } else if (i_isPriIdx) { + btp = (J3DAnmTexPattern*)mFaceBtpHeap.loadDataPriIdx(i_resIdx); } else { - var_r30 = (J3DAnmTexPattern*)mFaceBtpHeap.loadDataIdx(param_0); + btp = (J3DAnmTexPattern*)mFaceBtpHeap.loadDataIdx(i_resIdx); } - if (var_r30 != NULL) { - field_0x2154 = var_r30; - field_0x2154->searchUpdateMaterialID(field_0x06c0); - field_0x06c0->entryTexNoAnimator(field_0x2154); + if (btp != NULL) { + mpFaceBtp = btp; + mpFaceBtp->searchUpdateMaterialID(field_0x06c0); + field_0x06c0->entryTexNoAnimator(mpFaceBtp); - if (param_2 == 0xFFFF) { - if (param_0 == 0x3E1 || (param_0 == 0x417 && checkUnderMove0BckNoArcWolf(WANM_WAIT_WIND))) { + if (i_arcNo == 0xFFFF) { + if (i_resIdx == dRes_ID_ALANM_BTP_FMABA03_e || (i_resIdx == dRes_ID_ALANM_BTP_WL_FMABA01_e && checkUnderMove0BckNoArcWolf(WANM_WAIT_WIND))) { field_0x3440 = 0.02f; onNoResetFlg1(FLG1_UNK_2000); - } else if (param_0 == 0x417 || param_0 == 0x418 || param_0 == 0x3E2 || param_0 == 0x3DF || param_0 == 0x3E0) { + } else if (i_resIdx == dRes_ID_ALANM_BTP_WL_FMABA01_e + || i_resIdx == dRes_ID_ALANM_BTP_WL_FMABA02_e + || i_resIdx == dRes_ID_ALANM_BTP_FMABAGOMA_e + || i_resIdx == dRes_ID_ALANM_BTP_FMABA01_e + || i_resIdx == dRes_ID_ALANM_BTP_FMABA02_e) + { onNoResetFlg1(FLG1_UNK_2000); field_0x3440 = 0.012f; } else { @@ -7716,8 +8132,8 @@ void daAlink_c::setFaceBtp(u16 param_0, int param_1, u16 param_2) { } field_0x2fea = 0; - field_0x2154->setFrame(0.0f); - } else if (param_2 == 0xFFFF && param_0 == 0x417) { + mpFaceBtp->setFrame(0.0f); + } else if (i_arcNo == 0xFFFF && i_resIdx == dRes_ID_ALANM_BTP_WL_FMABA01_e) { if (checkUnderMove0BckNoArcWolf(WANM_WAIT_WIND)) { field_0x3440 = 0.02f; } else { @@ -7726,17 +8142,17 @@ void daAlink_c::setFaceBtp(u16 param_0, int param_1, u16 param_2) { } } -void daAlink_c::setFaceBtk(u16 i_resID, int param_1, u16 i_arcNo) { - setIdxMask(&i_arcNo, &i_resID); +void daAlink_c::setFaceBtk(u16 i_resIdx, BOOL i_isPriIdx, u16 i_arcNo) { + setIdxMask(&i_arcNo, &i_resIdx); J3DAnmTextureSRTKey* btk; if (i_arcNo != 0xFFFF) { - btk = (J3DAnmTextureSRTKey*)mFaceBtkHeap.loadDataDemoRID(i_resID, i_arcNo); + btk = (J3DAnmTextureSRTKey*)mFaceBtkHeap.loadDataDemoRID(i_resIdx, i_arcNo); offNoResetFlg1(FLG1_UNK_2000); - } else if (param_1 != 0) { - btk = (J3DAnmTextureSRTKey*)mFaceBtkHeap.loadDataPriIdx(i_resID); + } else if (i_isPriIdx) { + btk = (J3DAnmTextureSRTKey*)mFaceBtkHeap.loadDataPriIdx(i_resIdx); } else { - btk = (J3DAnmTextureSRTKey*)mFaceBtkHeap.loadDataIdx(i_resID); + btk = (J3DAnmTextureSRTKey*)mFaceBtkHeap.loadDataIdx(i_resIdx); } if (btk != NULL) { @@ -7748,56 +8164,56 @@ void daAlink_c::setFaceBtk(u16 i_resID, int param_1, u16 i_arcNo) { } } -daAlink_c::daAlink_FTANM daAlink_c::setFaceBasicTexture(daAlink_c::daAlink_FTANM param_0) { +daAlink_c::daAlink_FTANM daAlink_c::setFaceBasicTexture(daAlink_c::daAlink_FTANM i_ftanm) { if (checkWindSpeedOnAngleAnime(0)) { - if (param_0 == FTANM_UNK_0) { - param_0 = FTANM_UNK_39; - } else if (param_0 == FTANM_UNK_8B) { - param_0 = FTANM_UNK_98; + if (i_ftanm == FTANM_0) { + i_ftanm = FTANM_DASHWIND; + } else if (i_ftanm == FTANM_WL_MABA01) { + i_ftanm = FTANM_WL_DASHWIND; } - } else if ((!checkPlayerDemoMode() && dComIfGs_getLife() <= 4) || mDemo.getDemoMode() == 0x12) { - if (param_0 == FTANM_UNK_0) { - param_0 = FTANM_UNK_1; - } else if (param_0 == FTANM_UNK_8B) { - param_0 = FTANM_UNK_8C; + } else if ((!checkPlayerDemoMode() && dComIfGs_getLife() <= 4) || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_18_e) { + if (i_ftanm == FTANM_0) { + i_ftanm = FTANM_MABA01; + } else if (i_ftanm == FTANM_WL_MABA01) { + i_ftanm = FTANM_WL_MABA02; } } - if (checkWolf() && param_0 == FTANM_UNK_0) { - param_0 = FTANM_UNK_8B; + if (checkWolf() && i_ftanm == FTANM_0) { + i_ftanm = FTANM_WL_MABA01; } - setFaceBasicBtp(getFaceTexData(param_0)->m_btpID); - setFaceBasicBtk(getFaceTexData(param_0)->m_btkID); - return param_0; + setFaceBasicBtp(getFaceTexData(i_ftanm)->m_btpID); + setFaceBasicBtk(getFaceTexData(i_ftanm)->m_btkID); + return i_ftanm; } -void daAlink_c::setFaceBasicAnime(daAlink_c::daAlink_ANM param_0) { - const daAlink_AnmData* temp_r3 = getAnmData(param_0); +void daAlink_c::setFaceBasicAnime(daAlink_c::daAlink_ANM i_anm) { + const daAlink_AnmData* anmData = getAnmData(i_anm); - daAlink_FTANM temp_r3_2 = setFaceBasicTexture((daAlink_c::daAlink_FTANM)temp_r3->m_faceTexID); - if ((temp_r3_2 != temp_r3->m_faceTexID) && !checkWolf()) { - if (temp_r3_2 == FTANM_UNK_39) { - setFaceBasicBck(0x126); - } else if (temp_r3_2 == FTANM_UNK_1) { - setFaceBasicBck(0x120); - } else if (temp_r3_2 == FTANM_UNK_5) { - setFaceBasicBck(0x137); + daAlink_FTANM ftanm = setFaceBasicTexture((daAlink_c::daAlink_FTANM)anmData->m_faceTexID); + if ((ftanm != anmData->m_faceTexID) && !checkWolf()) { + if (ftanm == FTANM_DASHWIND) { + setFaceBasicBck(dRes_ID_ALANM_BCK_FDASHWIND_e); + } else if (ftanm == FTANM_MABA01) { + setFaceBasicBck(dRes_ID_ALANM_BCK_FD_e); + } else if (ftanm == FTANM_MABA01_R) { + setFaceBasicBck(dRes_ID_ALANM_BCK_FGOMA_e); } else { - setFaceBasicBck(temp_r3->m_faceBckID); + setFaceBasicBck(anmData->m_faceBckID); } } else { - setFaceBasicBck(temp_r3->m_faceBckID); + setFaceBasicBck(anmData->m_faceBckID); } } -void daAlink_c::setFacePriTexture(daAlink_c::daAlink_FTANM i_anmID) { - setFacePriBtp(getFaceTexData(i_anmID)->m_btpID); - setFacePriBtk(getFaceTexData(i_anmID)->m_btkID); +void daAlink_c::setFacePriTexture(daAlink_c::daAlink_FTANM i_ftanm) { + setFacePriBtp(getFaceTexData(i_ftanm)->m_btpID); + setFacePriBtk(getFaceTexData(i_ftanm)->m_btkID); } -void daAlink_c::setFacePriAnime(daAlink_c::daAlink_ANM i_anmID) { - const daAlink_AnmData* anm_data = getAnmData(i_anmID); +void daAlink_c::setFacePriAnime(daAlink_c::daAlink_ANM i_anm) { + const daAlink_AnmData* anm_data = getAnmData(i_anm); setFacePriTexture((daAlink_FTANM)anm_data->m_faceTexID); setFacePriBck(anm_data->m_faceBckID); @@ -7806,42 +8222,42 @@ void daAlink_c::setFacePriAnime(daAlink_c::daAlink_ANM i_anmID) { void daAlink_c::resetFacePriBck() { if (!mFaceBckHeap.checkNoSetPriIdx()) { mFaceBckHeap.resetPriIdx(); - u16 bck_idx = mFaceBckHeap.getIdx(); - if (bck_idx == 0xFFFF) { - bck_idx = 0xDF; + u16 resIdx = mFaceBckHeap.getIdx(); + if (resIdx == 0xFFFF) { + resIdx = dRes_ID_ALANM_BCK_FA_e; } mFaceBckHeap.resetIdx(); - setFaceBasicBck(bck_idx); + setFaceBasicBck(resIdx); } } void daAlink_c::resetFacePriBtp() { if (!mFaceBtpHeap.checkNoSetPriIdx()) { mFaceBtpHeap.resetPriIdx(); - u16 btp_idx = mFaceBtpHeap.getIdx(); - if (btp_idx == 0xFFFF) { - btp_idx = 0x3DF; + u16 resIdx = mFaceBtpHeap.getIdx(); + if (resIdx == 0xFFFF) { + resIdx = dRes_ID_ALANM_BTP_FMABA01_e; } mFaceBtpHeap.resetIdx(); - setFaceBasicBtp(btp_idx); + setFaceBasicBtp(resIdx); } } void daAlink_c::resetFacePriBtk() { if (!mFaceBtkHeap.checkNoSetPriIdx()) { mFaceBtkHeap.resetPriIdx(); - u16 btk_idx = mFaceBtkHeap.getIdx(); - if (btk_idx == 0xFFFF) { - btk_idx = 0x379; + u16 resIdx = mFaceBtkHeap.getIdx(); + if (resIdx == 0xFFFF) { + resIdx = dRes_ID_ALANM_BTK_FMABA01_e; } mFaceBtkHeap.resetIdx(); - setFaceBasicBtk(btk_idx); + setFaceBasicBtk(resIdx); } } @@ -7857,22 +8273,22 @@ void daAlink_c::resetFacePriAnime() { void daAlink_c::playFaceTextureAnime() { if (checkNoResetFlg1(FLG1_UNK_200) && !mFaceBtpHeap.checkNoSetPriIdx()) { - simpleAnmPlay(field_0x2154); + simpleAnmPlay(mpFaceBtp); simpleAnmPlay(mpFaceBtk); } else { - u16 var_r29; + u16 btp_frame; if (!mFaceBtpHeap.checkNoSetPriIdx()) { - var_r29 = mUpperFrameCtrl[2].getFrame(); + btp_frame = mUpperFrameCtrl[2].getFrame(); } else if (checkUnderMove0BckNoArc(ANM_HAWK_WAIT)) { - var_r29 = mpFaceBtk->getFrameMax(); + btp_frame = mpFaceBtk->getFrameMax(); } else if (!checkNoResetFlg1(FLG1_UNK_2000)) { if (getNowAnmPackUnder(UNDER_0) != getNowAnmPackUpper(UPPER_0)) { - var_r29 = mUpperFrameCtrl[0].getFrame(); + btp_frame = mUpperFrameCtrl[0].getFrame(); } else { - var_r29 = mUnderFrameCtrl[0].getFrame(); + btp_frame = mUnderFrameCtrl[0].getFrame(); } } else { - int var_r24 = field_0x2154->getFrameMax() > mpFaceBtk->getFrameMax() ? field_0x2154->getFrameMax() : mpFaceBtk->getFrameMax(); + int var_r24 = mpFaceBtp->getFrameMax() > mpFaceBtk->getFrameMax() ? mpFaceBtp->getFrameMax() : mpFaceBtk->getFrameMax(); if (field_0x2fea != 0) { field_0x2fea++; @@ -7883,100 +8299,105 @@ void daAlink_c::playFaceTextureAnime() { field_0x2fea++; } - var_r29 = field_0x2fea; + btp_frame = field_0x2fea; } - u16 var_r26 = var_r29; + u16 btk_frame = btp_frame; - if (var_r29 > field_0x2154->getFrameMax()) { - var_r29 = field_0x2154->getFrameMax(); + if (btp_frame > mpFaceBtp->getFrameMax()) { + btp_frame = mpFaceBtp->getFrameMax(); } - if (var_r26 > mpFaceBtk->getFrameMax()) { - var_r26 = mpFaceBtk->getFrameMax(); + if (btk_frame > mpFaceBtk->getFrameMax()) { + btk_frame = mpFaceBtk->getFrameMax(); } - field_0x2154->setFrame(var_r29); - mpFaceBtk->setFrame(var_r26); + mpFaceBtp->setFrame(btp_frame); + mpFaceBtk->setFrame(btk_frame); } if (!checkWolf()) { - J3DAnmTransform* temp_r28 = field_0x2164.getBckAnm(); + J3DAnmTransform* bck = mFaceBck.getBckAnm(); if (checkNoResetFlg1(FLG1_UNK_200)) { if (!mFaceBckHeap.checkNoSetPriIdx()) { - simpleAnmPlay(temp_r28); + simpleAnmPlay(bck); return; } } - f32 var_f31; + f32 frame; if (checkUnderMove0BckNoArc(ANM_HAWK_WAIT)) { - var_f31 = temp_r28->getFrameMax(); + frame = bck->getFrameMax(); } else if (mFaceBckHeap.checkNoSetPriIdx()) { - u16 temp_r27 = mFaceBckHeap.getIdx(); + u16 resIdx = mFaceBckHeap.getIdx(); if (mFaceBckHeap.checkNoSetArcNo()) { - if (temp_r27 == 0xE8) { - var_f31 = 1.0f; - } else if (temp_r27 == 0x157 || temp_r27 == 0x120 || (checkModeFlg(0x400) && temp_r27 == 0x160)) { - var_f31 = 1.0f + temp_r28->getFrame(); - if (var_f31 >= temp_r28->getFrameMax()) { - var_f31 -= temp_r28->getFrameMax(); + if (resIdx == dRes_ID_ALANM_BCK_FAT_e) { + frame = 1.0f; + } else if (resIdx == dRes_ID_ALANM_BCK_FSWIMINGB_e + || resIdx == dRes_ID_ALANM_BCK_FD_e + || (checkModeFlg(0x400) && resIdx == dRes_ID_ALANM_BCK_FWAITD_e)) + { + frame = 1.0f + bck->getFrame(); + if (frame >= bck->getFrameMax()) { + frame -= bck->getFrameMax(); } } else { if (getNowAnmPackUnder(UNDER_0) != getNowAnmPackUpper(UPPER_0)) { - var_f31 = mUpperFrameCtrl[0].getFrame(); + frame = mUpperFrameCtrl[0].getFrame(); } else { - var_f31 = mUnderFrameCtrl[0].getFrame(); + frame = mUnderFrameCtrl[0].getFrame(); } } } else { if (getNowAnmPackUnder(UNDER_0) != getNowAnmPackUpper(UPPER_0)) { - var_f31 = mUpperFrameCtrl[0].getFrame(); + frame = mUpperFrameCtrl[0].getFrame(); } else { - var_f31 = mUnderFrameCtrl[0].getFrame(); + frame = mUnderFrameCtrl[0].getFrame(); } } } else { - var_f31 = mUpperFrameCtrl[2].getFrame(); + frame = mUpperFrameCtrl[2].getFrame(); } - if (var_f31 > temp_r28->getFrameMax()) { - var_f31 = temp_r28->getFrameMax(); + if (frame > bck->getFrameMax()) { + frame = bck->getFrameMax(); } if (mClothesChangeWaitTimer == 0 && !checkZoraWearMaskDraw()) { - field_0x2164.entry(mpLinkFaceModel->getModelData(), var_f31); + mFaceBck.entry(mpLinkFaceModel->getModelData(), frame); } } } -s16 daAlink_c::getGroundAngle(cBgS_PolyInfo* i_poly, s16 i_angle) { - if (!dComIfG_Bgsp().ChkPolySafe(*i_poly)) { +s16 daAlink_c::getGroundAngle(cBgS_PolyInfo* i_polyinfo, s16 i_angle) { + if (!dComIfG_Bgsp().ChkPolySafe(*i_polyinfo)) { return 0; } - cM3dGPla plane; - if (!dComIfG_Bgsp().GetTriPla(*i_poly, &plane) || !cBgW_CheckBGround(plane.mNormal.y)) { + cM3dGPla tripla; + if (!dComIfG_Bgsp().GetTriPla(*i_polyinfo, &tripla) || !cBgW_CheckBGround(tripla.mNormal.y)) { return 0; } - return fopAcM_getPolygonAngle(&plane, i_angle); + return fopAcM_getPolygonAngle(&tripla, i_angle); } -s16 daAlink_c::getRoofAngle(cBgS_PolyInfo* param_0, s16 param_1) { - cM3dGPla plane; +s16 daAlink_c::getRoofAngle(cBgS_PolyInfo* i_polyinfo, s16 i_angle) { + cM3dGPla tripla; - if (!dComIfG_Bgsp().GetTriPla(*param_0, &plane) || !dComIfG_Bgsp().ChkPolySafe(*param_0)) { + if (!dComIfG_Bgsp().GetTriPla(*i_polyinfo, &tripla) || !dComIfG_Bgsp().ChkPolySafe(*i_polyinfo)) { return 0; } - return fopAcM_getPolygonAngle(&plane, param_1) + 0x8000; + return fopAcM_getPolygonAngle(&tripla, i_angle) + 0x8000; } BOOL daAlink_c::getWallEdgePos(cXyz const& param_0, cM3dGPla* i_planeA, cM3dGPla* i_planeB, cXyz* o_outVec, int unused) { + UNUSED(unused); + cXyz normal(i_planeA->mNormal.z, 0.0f, -i_planeA->mNormal.x); normal.normalizeZP(); @@ -8000,15 +8421,15 @@ void daAlink_c::setFrontWallType() { if (field_0x2f91 == 0) { field_0x2f91 = 1; if (!checkMagneBootsOn()) { - cXyz chk_start_pos; - cXyz chk_end_pos; + cXyz line_start_pos; + cXyz line_end_pos; f32 sp64 = cM_ssin(shape_angle.y); f32 sp60 = cM_scos(shape_angle.y); - int var_r27; + int wall_code; int i; - BOOL sp5C = 0; - BOOL sp58 = 0; + BOOL sp5C = FALSE; + BOOL sp58 = FALSE; f32 sp54; f32 sp50; @@ -8027,63 +8448,63 @@ void daAlink_c::setFrontWallType() { } } - chk_start_pos.x = mHookshotTopPos.x - (sp64 * var_f31); - chk_start_pos.z = mHookshotTopPos.z - (sp60 * var_f31); - chk_end_pos.x = (2.0f * mHookshotTopPos.x) - chk_start_pos.x; - chk_end_pos.z = (2.0f * mHookshotTopPos.z) - chk_start_pos.z; + line_start_pos.x = mHookshotTopPos.x - (sp64 * var_f31); + line_start_pos.z = mHookshotTopPos.z - (sp60 * var_f31); + line_end_pos.x = (2.0f * mHookshotTopPos.x) - line_start_pos.x; + line_end_pos.z = (2.0f * mHookshotTopPos.z) - line_start_pos.z; sp50 = mHookshotTopPos.y; sp54 = 10.0f + mHookshotTopPos.y; } else { - chk_start_pos.x = current.pos.x; - chk_start_pos.z = current.pos.z; - chk_end_pos.x = chk_start_pos.x + (sp64 * (25.0f + var_f31)); - chk_end_pos.z = chk_start_pos.z + (sp60 * (25.0f + var_f31)); + line_start_pos.x = current.pos.x; + line_start_pos.z = current.pos.z; + line_end_pos.x = line_start_pos.x + (sp64 * (25.0f + var_f31)); + line_end_pos.z = line_start_pos.z + (sp60 * (25.0f + var_f31)); sp50 = current.pos.y; sp54 = 100.0f + current.pos.y; } - BOOL sp4C = 0; + BOOL sp4C = FALSE; for (i = 0; i < 3; i++) { - chk_start_pos.y = sp50 + mAcchCir[i].GetWallH(); - chk_end_pos.y = chk_start_pos.y; + line_start_pos.y = sp50 + mAcchCir[i].GetWallH(); + line_end_pos.y = line_start_pos.y; - if (commonLineCheck(&chk_start_pos, &chk_end_pos)) { - var_r27 = dComIfG_Bgsp().GetWallCode(mLinkLinChk); + if (commonLineCheck(&line_start_pos, &line_end_pos)) { + wall_code = dComIfG_Bgsp().GetWallCode(mLinkLinChk); - if (i == 0 && var_r27 == 3 && checkStageName("D_MN10") != 0 && fopAcM_GetRoomNo(this) == 6) { - sp4C = 1; - } else if (!checkWolf() && sp5C == 0 && ((i == 0 && mLinkAcch.ChkGroundHit() && !checkModeFlg(0x70C52)) || mProcID == PROC_HOOKSHOT_FLY) && var_r27 == 0) { - sp5C = 1; - chk_start_pos.y = sp54; - chk_end_pos.y = chk_start_pos.y; + if (i == 0 && wall_code == 3 && checkStageName("D_MN10") && fopAcM_GetRoomNo(this) == 6) { + sp4C = TRUE; + } else if (!checkWolf() && !sp5C && ((i == 0 && mLinkAcch.ChkGroundHit() && !checkModeFlg(0x70C52)) || mProcID == PROC_HOOKSHOT_FLY) && wall_code == 0) { + sp5C = TRUE; + line_start_pos.y = sp54; + line_end_pos.y = line_start_pos.y; - if (commonLineCheck(&chk_start_pos, &chk_end_pos) && checkClimbCode(mLinkLinChk)) { - sp58 = 1; + if (commonLineCheck(&line_start_pos, &line_end_pos) && checkClimbCode(mLinkLinChk)) { + sp58 = TRUE; break; } i = -1; - } else if (!checkWolf() || ((i != 0 && i != 1) || var_r27 != 7)) { + } else if (!checkWolf() || ((i != 0 && i != 1) || wall_code != 7)) { break; } } } if (i == 3) { - if (sp4C == 0) { + if (!sp4C) { offNoResetFlg3(FLG3_UNK_400000); return; } - chk_start_pos.y = sp50 + mAcchCir[0].GetWallH(); - chk_end_pos.y = chk_start_pos.y; + line_start_pos.y = sp50 + mAcchCir[0].GetWallH(); + line_end_pos.y = line_start_pos.y; - if (!commonLineCheck(&chk_start_pos, &chk_end_pos)) { + if (!commonLineCheck(&line_start_pos, &line_end_pos)) { return; } } else { - sp4C = 0; + sp4C = FALSE; } cM3dGPla linchk_tri; @@ -8099,7 +8520,7 @@ void daAlink_c::setFrontWallType() { s16 spA; if (mProcID == PROC_HOOKSHOT_FLY) { spA = 0x7FFF; - } else if (mProcID == PROC_WOLF_JUMP_ATTACK || (checkWolf() && var_r27 == 3)) { + } else if (mProcID == PROC_WOLF_JUMP_ATTACK || (checkWolf() && wall_code == 3)) { if (mProcID != PROC_WOLF_JUMP_ATTACK) { sp48 = 1; } @@ -8124,21 +8545,21 @@ void daAlink_c::setFrontWallType() { int temp_r3 = dComIfG_Bgsp().GetWallCode(mLinkLinChk); if (temp_r3 != 4 && temp_r3 != 5) { - chk_start_pos.x = current.pos.x; - chk_start_pos.z = current.pos.z; - chk_end_pos.x = chk_start_pos.x - (2.0f * sp40 * linchk_tri.mNormal.x); - chk_end_pos.z = chk_start_pos.z - (2.0f * sp40 * linchk_tri.mNormal.z); + line_start_pos.x = current.pos.x; + line_start_pos.z = current.pos.z; + line_end_pos.x = line_start_pos.x - (2.0f * sp40 * linchk_tri.mNormal.x); + line_end_pos.z = line_start_pos.z - (2.0f * sp40 * linchk_tri.mNormal.z); for (i = 0; i < 3; i++) { if (i == 0 && sp58 != 0) { - chk_start_pos.y = sp54; + line_start_pos.y = sp54; } else { - chk_start_pos.y = current.pos.y + mAcchCir[i].GetWallH(); + line_start_pos.y = current.pos.y + mAcchCir[i].GetWallH(); } - chk_end_pos.y = chk_start_pos.y; + line_end_pos.y = line_start_pos.y; - if (commonLineCheck(&chk_start_pos, &chk_end_pos)) { + if (commonLineCheck(&line_start_pos, &line_end_pos)) { dComIfG_Bgsp().GetTriPla(mLinkLinChk, &spCC); cXyz sp80 = linchk_tri.mNormal - spCC.mNormal; @@ -8158,13 +8579,13 @@ void daAlink_c::setFrontWallType() { int var_r29 = dComIfG_Bgsp().GetWallCode(mLinkLinChk); dBgW_Base* sp3C = dComIfG_Bgsp().GetBgWBasePointer(mLinkLinChk); - if ((var_r29 == 3 || var_r29 == 1) && (sp4C != 0 || (sp3C != NULL && !sp3C->ChkPushPullOk()))) { + if ((var_r29 == 3 || var_r29 == 1) && (sp4C || (sp3C != NULL && !sp3C->ChkPushPullOk()))) { var_r29 = 0; - } else if (var_r29 == 1 && mSpecialMode == 0x2B) { + } else if (var_r29 == 1 && mMode == 0x2B) { var_r29 = 0; } - if (sp48 != 0 && var_r29 != 3 && sp44 > field_0x30ae) { + if (sp48 && var_r29 != 3 && sp44 > field_0x30ae) { return; } @@ -8186,9 +8607,9 @@ void daAlink_c::setFrontWallType() { field_0x27fc = dComIfG_Bgsp().GetActorPointer(mLinkLinChk); } - if (checkNoResetFlg0(daPy_FLG0(FLG0_UNDERWATER | FLG0_SWIM_UP))) { + if (checkNoResetFlg0(daPy_FLG0(FLG0_WATER_IN_MOVE | FLG0_SWIM_UP))) { if (var_r29 == 6 && !checkModeFlg(0x40002)) { - setDoStatus(7); + setDoStatus(BUTTON_STATUS_ENTER); setLadderPosInit(); return; } @@ -8208,7 +8629,7 @@ void daAlink_c::setFrontWallType() { if (var_r29 == 1) { if (checkModeFlg(0x40002)) { if (checkModeFlg(2) && mProcID != PROC_HOOKSHOT_FLY) { - setDoStatus(0x8E); + setDoStatus(BUTTON_STATUS_UNK_142); } f32 sp34; @@ -8218,8 +8639,8 @@ void daAlink_c::setFrontWallType() { sp34 = current.pos.y; } - chk_start_pos.set(field_0x34ec.x - (15.0f * linchk_tri.mNormal.x), 150.0f + sp34, field_0x34ec.z - (15.0f * linchk_tri.mNormal.z)); - mLinkGndChk.SetPos(&chk_start_pos); + line_start_pos.set(field_0x34ec.x - (15.0f * linchk_tri.mNormal.x), 150.0f + sp34, field_0x34ec.z - (15.0f * linchk_tri.mNormal.z)); + mLinkGndChk.SetPos(&line_start_pos); f32 sp38 = dComIfG_Bgsp().GroundCross(&mLinkGndChk); if (sp38 >= current.pos.y && dBgS_CheckBGroundPoly(mLinkGndChk)) { @@ -8252,7 +8673,7 @@ void daAlink_c::setFrontWallType() { if (var_r29 == 4) { field_0x2f91 = 4; if (checkModeFlg(2)) { - setDoStatus(0x8E); + setDoStatus(BUTTON_STATUS_UNK_142); } } else { field_0x2f91 = 5; @@ -8291,31 +8712,31 @@ void daAlink_c::setFrontWallType() { } body_height = current.pos.y + mSinkShapeOffset; - chk_start_pos.set(current.pos.x, body_height + (0.01f + hang_height), current.pos.z); - chk_end_pos.set(chk_start_pos.x + (sp64 * (50.0f + var_f31)), chk_start_pos.y, chk_start_pos.z + (sp60 * (50.0f + var_f31))); + line_start_pos.set(current.pos.x, body_height + (0.01f + hang_height), current.pos.z); + line_end_pos.set(line_start_pos.x + (sp64 * (50.0f + var_f31)), line_start_pos.y, line_start_pos.z + (sp60 * (50.0f + var_f31))); - BOOL sp24 = commonLineCheck(&chk_start_pos, &chk_end_pos); + BOOL sp24 = commonLineCheck(&line_start_pos, &line_end_pos); if (sp24) { - chk_start_pos = mLinkLinChk.GetCross(); + line_start_pos = mLinkLinChk.GetCross(); dComIfG_Bgsp().GetTriPla(mLinkLinChk, &spCC); - chk_start_pos.x = (chk_start_pos.x + (25.0f * spCC.mNormal.x)); - chk_start_pos.z = (chk_start_pos.z + (25.0f * spCC.mNormal.z)); - mLinkGndChk.SetPos(&chk_start_pos); + line_start_pos.x = (line_start_pos.x + (25.0f * spCC.mNormal.x)); + line_start_pos.z = (line_start_pos.z + (25.0f * spCC.mNormal.z)); + mLinkGndChk.SetPos(&line_start_pos); if (dComIfG_Bgsp().GroundCross(&mLinkGndChk) > current.pos.y + l_autoUpHeight) { dComIfG_Bgsp().GetTriPla(mLinkGndChk, &spCC); if (cBgW_CheckBGround(spCC.mNormal.y)) { - sp24 = 0; + sp24 = FALSE; } } } - if (sp24 == 0) { + if (!sp24) { mLinkRoofChk.SetPos(current.pos); - sp24 = dComIfG_Bgsp().RoofChk(&mLinkRoofChk) - body_height > 10.0f + hang_height ? 0 : 1; + sp24 = dComIfG_Bgsp().RoofChk(&mLinkRoofChk) - body_height > 10.0f + hang_height ? FALSE : TRUE; } - if (sp24 != 0) { + if (sp24) { return; } @@ -8323,12 +8744,12 @@ void daAlink_c::setFrontWallType() { bool found_gnd_tri = false; int sp20 = 0; - chk_start_pos.set(field_0x34ec.x - (7.5f * linchk_tri.mNormal.x), body_height + (0.01f + hang_height), field_0x34ec.z - (7.5f * linchk_tri.mNormal.z)); - mLinkGndChk.SetPos(&chk_start_pos); + line_start_pos.set(field_0x34ec.x - (7.5f * linchk_tri.mNormal.x), body_height + (0.01f + hang_height), field_0x34ec.z - (7.5f * linchk_tri.mNormal.z)); + mLinkGndChk.SetPos(&line_start_pos); f32 sp1C = dComIfG_Bgsp().GroundCross(&mLinkGndChk); - chk_start_pos.set(field_0x34ec.x - (1.5f * linchk_tri.mNormal.x), body_height + (0.01f + hang_height), field_0x34ec.z - (1.5f * linchk_tri.mNormal.z)); - mLinkGndChk.SetPos(&chk_start_pos); + line_start_pos.set(field_0x34ec.x - (1.5f * linchk_tri.mNormal.x), body_height + (0.01f + hang_height), field_0x34ec.z - (1.5f * linchk_tri.mNormal.z)); + mLinkGndChk.SetPos(&line_start_pos); f32 sp38 = dComIfG_Bgsp().GroundCross(&mLinkGndChk); if (-G_CM3D_F_INF != sp38 && fabsf(sp1C - sp38) < l_autoUpHeight) { @@ -8347,10 +8768,10 @@ void daAlink_c::setFrontWallType() { if (dComIfG_Bgsp().GetGroundCode(mLinkGndChk) != 6) { f32 sp18 = 36.5f; - chk_start_pos.set(wall_edge_pos.x + (10.0f * linchk_tri.mNormal.x), wall_edge_pos.y + l_autoUpHeight, wall_edge_pos.z + (10.0f * linchk_tri.mNormal.z)); - chk_end_pos.set(wall_edge_pos.x - (linchk_tri.mNormal.x * sp18), chk_start_pos.y, wall_edge_pos.z - (linchk_tri.mNormal.z * sp18)); + line_start_pos.set(wall_edge_pos.x + (10.0f * linchk_tri.mNormal.x), wall_edge_pos.y + l_autoUpHeight, wall_edge_pos.z + (10.0f * linchk_tri.mNormal.z)); + line_end_pos.set(wall_edge_pos.x - (linchk_tri.mNormal.x * sp18), line_start_pos.y, wall_edge_pos.z - (linchk_tri.mNormal.z * sp18)); - if (commonLineCheck(&chk_start_pos, &chk_end_pos)) { + if (commonLineCheck(&line_start_pos, &line_end_pos)) { return; } } @@ -8359,25 +8780,25 @@ void daAlink_c::setFrontWallType() { f32 temp_f29 = field_0x34ec.y - body_height; if (checkModeFlg(0x40000)) { - f32 sp14; - f32 sp10; + f32 climb_height; + f32 climb_water_surface; if (checkWolf()) { - sp14 = 0.01f + mpHIO->mWolf.mWlSwim.m.mClimbHeight; - sp10 = mpHIO->mWolf.mWlSwim.m.mClimbBelowWaterSurface; + climb_height = 0.01f + mpHIO->mWolf.mWlSwim.m.mClimbHeight; + climb_water_surface = mpHIO->mWolf.mWlSwim.m.mClimbBelowWaterSurface; } else { - sp14 = 0.01f + mpHIO->mSwim.m.mClimbHeight; - sp10 = mpHIO->mSwim.m.mClimbWaterSurfaceUnder; + climb_height = 0.01f + mpHIO->mSwim.m.mClimbHeight; + climb_water_surface = mpHIO->mSwim.m.mClimbWaterSurfaceUnder; } if (checkNoResetFlg0(FLG0_SWIM_UP)) { - if (temp_f29 <= sp14) { - if (temp_f29 >= sp10) { + if (temp_f29 <= climb_height) { + if (temp_f29 >= climb_water_surface) { field_0x2f91 = 7; } } } } else if (checkModeFlg(2)) { - if (sp38 - mLinkAcch.GetGroundH() > field_0x598 && temp_f29 < hang_height) { + if (sp38 - mLinkAcch.GetGroundH() > mHeight && temp_f29 < hang_height) { if (!checkWolf() && mProcID != PROC_HOOKSHOT_FLY && temp_f29 < mpHIO->mAutoJump.m.mGrabHeightLimit) { field_0x2f91 = 0xB; } else { @@ -8469,7 +8890,6 @@ void daAlink_c::setHangWaterY() { } field_0x33bc = sp14.y; - } void daAlink_c::setSandDownBgCheckWallH() { @@ -8483,12 +8903,12 @@ void daAlink_c::setSandDownBgCheckWallH() { void daAlink_c::setBgCheckParam() { mAcchCir[0].SetWallH(l_autoUpHeight); mAcchCir[1].SetWallH(129.99f); - mAcchCir[2].SetWallH(field_0x598); + mAcchCir[2].SetWallH(mHeight); if (checkSpinnerRide()) { mLinkAcch.SetRoofCrrHeight(80.0f); } else { - mLinkAcch.SetRoofCrrHeight(field_0x598); + mLinkAcch.SetRoofCrrHeight(mHeight); } if (checkWolf()) { @@ -8508,11 +8928,11 @@ void daAlink_c::setBgCheckParam() { mAcchCir[1].SetWallH(75.0f); mAcchCir[2].SetWallH(75.0f); } else if (mProcID == PROC_WOLF_TAG_JUMP) { - mAcchCir[0].SetWallH(0.5f * (field_0x598 + l_autoUpHeight)); - mAcchCir[1].SetWallH(0.75f * (field_0x598 + l_autoUpHeight)); + mAcchCir[0].SetWallH(0.5f * (mHeight + l_autoUpHeight)); + mAcchCir[1].SetWallH(0.75f * (mHeight + l_autoUpHeight)); mAcchCir[0].SetWallR(35.0f); } else { - mAcchCir[1].SetWallH(0.5f * (field_0x598 + l_autoUpHeight)); + mAcchCir[1].SetWallH(0.5f * (mHeight + l_autoUpHeight)); mAcchCir[0].SetWallR(35.0f); } } else if (checkModeFlg(0x200000)) { @@ -8559,7 +8979,7 @@ void daAlink_c::setBgCheckParam() { } else if (checkModeFlg(0x400) && !checkSpinnerRide() && !checkBoardRide() && mProcID != PROC_SPINNER_WAIT && mProcID != PROC_BOARD_WAIT) { mAcchCir[0].SetWallH(l_autoUpHeight - 80.0f); mAcchCir[1].SetWallH(49.990005f); - mAcchCir[2].SetWallH(field_0x598 - 80.0f); + mAcchCir[2].SetWallH(mHeight - 80.0f); } mAcchCir[0].SetWallR(35.0f); @@ -8576,91 +8996,91 @@ void daAlink_c::setBgCheckParam() { } BOOL daAlink_c::checkNotJumpSinkLimit() { - return mSinkShapeOffset < -30.0f || field_0x2fbd == 3 || - (field_0x2fbd == 4 && mSinkShapeOffset < -15.0f); + return mSinkShapeOffset < -30.0f || mGndPolyAtt1 == 3 || + (mGndPolyAtt1 == 4 && mSinkShapeOffset < -15.0f); } BOOL daAlink_c::checkNotItemSinkLimit() { return mSinkShapeOffset < -34.0f && - (field_0x2fbd == 1 || field_0x2fbd == 2 || field_0x2fbd == 3 || field_0x2fbd == 4); + (mGndPolyAtt1 == 1 || mGndPolyAtt1 == 2 || mGndPolyAtt1 == 3 || mGndPolyAtt1 == 4); } void daAlink_c::setSandShapeOffset() { f32 var_f30 = 0.0f; - f32 var_f31 = 0.0f; + f32 sink_speed = 0.0f; f32 temp_f29 = mSinkShapeOffset; - BOOL temp_r29 = checkEventRun(); + BOOL isEventRun = checkEventRun(); - if (mLinkAcch.ChkGroundHit() && (field_0x2fbb == 3 || checkSnowCode()) && !checkModeFlg(0x440)) { - if (!temp_r29 && !checkModeFlg(0x02000000)) { + if (mLinkAcch.ChkGroundHit() && (mGndPolyAtt0 == 3 || checkSnowCode()) && !checkModeFlg(0x440)) { + if (!isEventRun && !checkModeFlg(0x02000000)) { if (checkSnowCode()) { if (!checkZeroSpeedF() || mProcID == PROC_TURN_MOVE) { - var_f31 = 1.0f; + sink_speed = 1.0f; if (mGndPolySpecialCode == dBgW_SPCODE_LIGHT_SNOW) { var_f30 = -15.0f; } else { if (mSinkShapeOffset > -15.0f) { - var_f31 = 10.0f; + sink_speed = 10.0f; } var_f30 = -35.0f; } } - } else if (field_0x2fbd == 4) { + } else if (mGndPolyAtt1 == 4) { var_f30 = -25.0f; if (mSinkShapeOffset > -15.0f) { - var_f31 = 10.0f; + sink_speed = 10.0f; } else { - var_f31 = mpHIO->mBasic.m.mSandSinkSpeed; + sink_speed = mpHIO->mBasic.m.mSandSinkSpeed; } - } else if (field_0x2fbd == 2) { + } else if (mGndPolyAtt1 == 2) { var_f30 = field_0x345c; - var_f31 = 6.0f; - } else if (field_0x2fbd == 3) { + sink_speed = 6.0f; + } else if (mGndPolyAtt1 == 3) { var_f30 = field_0x3458; if (mSinkShapeOffset > -15.0f) { - var_f31 = 10.0f; + sink_speed = 10.0f; } else { - var_f31 = mpHIO->mBasic.m.mSandSinkSpeed; + sink_speed = mpHIO->mBasic.m.mSandSinkSpeed; if (checkWolf()) { - var_f31 *= 0.42857143f; + sink_speed *= 0.42857143f; } } - } else if (field_0x2fbd == 1) { + } else if (mGndPolyAtt1 == 1) { if (mNormalSpeed < 2.0f) { var_f30 = field_0x3458; if (mSinkShapeOffset > -15.0f) { - var_f31 = 10.0f; + sink_speed = 10.0f; } else { - var_f31 = mpHIO->mBasic.m.mSandSinkSpeed; + sink_speed = mpHIO->mBasic.m.mSandSinkSpeed; } if (checkWolf()) { - var_f31 *= 0.42857143f; + sink_speed *= 0.42857143f; } } else { var_f30 = -15.0f; - var_f31 = mpHIO->mBasic.m.mSandSurfaceSpeed; + sink_speed = mpHIO->mBasic.m.mSandSurfaceSpeed; } } else if (!(mNormalSpeed < 2.0f) || !(mSinkShapeOffset < -15.0f)) { var_f30 = -15.0f; if (mSinkShapeOffset < -15.0f) { - var_f31 = mpHIO->mBasic.m.mSandSurfaceSpeed; + sink_speed = mpHIO->mBasic.m.mSandSurfaceSpeed; } else { - var_f31 = mpHIO->mBasic.m.mSandSinkSpeed; + sink_speed = mpHIO->mBasic.m.mSandSinkSpeed; } } } } else { var_f30 = 0.0f; - var_f31 = 10.0f; + sink_speed = 10.0f; } - if (var_f31 > 0.0f) { - cLib_chaseF(&mSinkShapeOffset, var_f30, var_f31); + if (sink_speed > 0.0f) { + cLib_chaseF(&mSinkShapeOffset, var_f30, sink_speed); } if (mSinkShapeOffset < -15.0f) { - field_0x2fc9 = field_0x2fbb; + field_0x2fc9 = mGndPolyAtt0; int var_r28; if (mProcID == PROC_LAVA_RETURN) { @@ -8672,7 +9092,7 @@ void daAlink_c::setSandShapeOffset() { mZ2Link.setSinkDepth(var_r28); if (fabsf(temp_f29 - mSinkShapeOffset) > 0.01f) { - if (field_0x2fbb == 0xD) { + if (mGndPolyAtt0 == 0xD) { seStartOnlyReverbLevel(Z2SE_AL_SINK_SNOW_LEVEL); } else { seStartOnlyReverbLevel(Z2SE_AL_SINK_SAND_LEVEL); @@ -8688,7 +9108,7 @@ void daAlink_c::setSandShapeOffset() { field_0x2fc9 = 0x10; } - if (checkWolf() && !temp_r29 && mSinkShapeOffset < -30.0f) { + if (checkWolf() && !isEventRun && mSinkShapeOffset < -30.0f) { getMidnaActor()->onForcePanic(); } } @@ -8697,47 +9117,57 @@ bool daAlink_c::checkLv2MiddleBossBgRide(s16 i_procName) { return i_procName == PROC_OBJ_MSIMA || i_procName == PROC_B_ZANTS; } -bool daAlink_c::getSlidePolygon(cM3dGPla* param_0) { - if (!checkMagneBootsOn() && mLinkAcch.ChkGroundHit() && !checkModeFlg(0x40000) && (mGndPolySpecialCode != 6) && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) { +bool daAlink_c::getSlidePolygon(cM3dGPla* o_tripla) { + if (!checkMagneBootsOn() + && mLinkAcch.ChkGroundHit() + && !checkModeFlg(0x40000) + && mGndPolySpecialCode != 6 + && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) + { if ((checkEquipHeavyBoots() && daTagMagne_c::checkMagnetCode(mLinkAcch.m_gnd)) || mProcID == PROC_GORON_MOVE) { return 0; } - s16 temp_r28 = getMoveBGActorName(mLinkAcch.m_gnd, 1); - if (dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, param_0) && - (!checkBootsOrArmorHeavy() || (temp_r28 != PROC_Obj_RotStair && temp_r28 != PROC_Obj_Lv3R10Saka)) && - ((field_0x3174 != 8 && (mGndPolySpecialCode == 1 || (param_0->mNormal.y < field_0x3470 && mGndPolySpecialCode != 2))) || - (mGndPolySpecialCode == 5 && !checkWolf() && (!checkInputOnR() || mProcID == PROC_SLIDE) && (param_0->mNormal.y < cM_scos(field_0x3122))) || - (!checkEquipHeavyBoots() && !dComIfGp_checkPlayerStatus0(0, 0x100) && checkLv2MiddleBossBgRide(temp_r28) && - (param_0->mNormal.y < cM_scos(cM_deg2s(mpHIO->mSlide.m.mLV2MinibossFloorSlideAngle)))))) + s16 movebg_actorName = getMoveBGActorName(mLinkAcch.m_gnd, TRUE); + if (dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, o_tripla) + && (!checkBootsOrArmorHeavy() || (movebg_actorName != PROC_Obj_RotStair && movebg_actorName != PROC_Obj_Lv3R10Saka)) + && ((mGroundCode != 8 && (mGndPolySpecialCode == 1 || (o_tripla->mNormal.y < field_0x3470 && mGndPolySpecialCode != 2))) + || (mGndPolySpecialCode == 5 && !checkWolf() && (!checkInputOnR() || mProcID == PROC_SLIDE) && (o_tripla->mNormal.y < cM_scos(field_0x3122))) + || (!checkEquipHeavyBoots() + && !dComIfGp_checkPlayerStatus0(0, 0x100) + && checkLv2MiddleBossBgRide(movebg_actorName) + && (o_tripla->mNormal.y < cM_scos(cM_deg2s(mpHIO->mSlide.m.mLV2MinibossFloorSlideAngle))) + ) + ) + ) { - return 1; + return true; } } - return 0; + return false; } BOOL daAlink_c::checkSlope() const { - return field_0x3174 != 8 && field_0x2ff0 < -field_0x3122; + return mGroundCode != 8 && field_0x2ff0 < -field_0x3122; } -void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 i_angle, int param_2) { - if (checkEventRun() || param_2 != 0 || mSpecialMode != 0) { - if (p_pos != NULL) { - current.pos = *p_pos; +void daAlink_c::setPlayerPosAndAngle(const cXyz* i_pos, s16 i_angle, BOOL param_2) { + if (checkEventRun() || param_2 || mMode != 0) { + if (i_pos != NULL) { + current.pos = *i_pos; old.pos = current.pos; field_0x3798 = current.pos; onEndResetFlg0(ERFLG0_UNK_800000); onEndResetFlg2(ERFLG2_UNK_100); - if (mDemo.getDemoMode() != 0x59) { + if (mDemo.getDemoMode() != daPy_demo_c::DEMO_SWORD_PUSH_e) { speed.y = 0.0f; } } shape_angle.y = i_angle; current.angle.y = i_angle; - field_0x2fe6 = shape_angle.y; + mPrevAngleY = shape_angle.y; if ((mProcID == PROC_TALK || mProcID == PROC_TRADE_ITEM_OUT) && !checkWolf()) { if (field_0x3198 != 0) { field_0x37c8.x = current.pos.x; @@ -8750,23 +9180,24 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, s16 i_angle, int param_2 } if (checkHorseRide()) { - dComIfGp_getHorseActor()->setHorsePosAndAngle(¤t.pos, shape_angle.y); + daHorse_c* horse = dComIfGp_getHorseActor(); + horse->setHorsePosAndAngle(¤t.pos, shape_angle.y); } else if (checkSpinnerRide()) { - fopAc_ac_c* rideAc = mRideAcKeep.getActor(); - rideAc->current.pos = current.pos; - rideAc->shape_angle.y = shape_angle.y; - rideAc->current.angle.y = shape_angle.y; - rideAc->speed.y = 0.0f; + fopAc_ac_c* rideActor = mRideAcKeep.getActor(); + rideActor->current.pos = current.pos; + rideActor->shape_angle.y = shape_angle.y; + rideActor->current.angle.y = shape_angle.y; + rideActor->speed.y = 0.0f; } - field_0x814.ClrCcMove(); + mCcStts.ClrCcMove(); } } -void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, csXyz const* p_angle) { - if (checkEventRun() || mSpecialMode != 0) { - if (p_pos != NULL) { - current.pos = *p_pos; +void daAlink_c::setPlayerPosAndAngle(const cXyz* i_pos, const csXyz* i_angle) { + if (checkEventRun() || mMode != 0) { + if (i_pos != NULL) { + current.pos = *i_pos; old.pos = current.pos; field_0x3798 = current.pos; onEndResetFlg0(ERFLG0_UNK_800000); @@ -8774,41 +9205,51 @@ void daAlink_c::setPlayerPosAndAngle(cXyz const* p_pos, csXyz const* p_angle) { speed.y = 0.0f; } - if (p_angle != NULL) { - shape_angle = *p_angle; + if (i_angle != NULL) { + shape_angle = *i_angle; current.angle.y = shape_angle.y; - field_0x2fe6 = shape_angle.y; + mPrevAngleY = shape_angle.y; } - field_0x814.ClrCcMove(); + mCcStts.ClrCcMove(); } } -void daAlink_c::setPlayerPosAndAngle(Mtx param_0) { - if (checkEventRun() || mSpecialMode != 0) { - current.pos.x = param_0[0][3]; - current.pos.y = param_0[1][3]; - current.pos.z = param_0[2][3]; +void daAlink_c::setPlayerPosAndAngle(Mtx i_mtx) { + if (checkEventRun() || mMode != 0) { + mDoMtx_multVecZero(i_mtx, ¤t.pos); old.pos = current.pos; field_0x3798 = current.pos; onEndResetFlg0(ERFLG0_UNK_800000); onEndResetFlg2(ERFLG2_UNK_100); - mDoMtx_MtxToRot(param_0, &shape_angle); + mDoMtx_MtxToRot(i_mtx, &shape_angle); current.angle.y = shape_angle.y; - field_0x2fe6 = shape_angle.y; + mPrevAngleY = shape_angle.y; speed.y = 0.0f; - field_0x814.ClrCcMove(); + mCcStts.ClrCcMove(); } } -BOOL daAlink_c::itemTriggerCheck(u8 btnFlag) { - field_0x2fae |= btnFlag; - return mItemTrigger & btnFlag; +#if DEBUG +BOOL daAlink_c::checkDebugMoveInput() { + if (mDoCPd_c::isConnect(PAD_3)) { + return mDoCPd_c::getHoldB(PAD_1) + && mDoCPd_c::getAnalogR(PAD_1) > 0.8f + && mDoCPd_c::getTrigA(PAD_1); + } + + return FALSE; +} +#endif + +BOOL daAlink_c::itemTriggerCheck(u8 i_btnFlag) { + mUseButtonFlags |= i_btnFlag; + return mItemTrigger & i_btnFlag; } -BOOL daAlink_c::itemButtonCheck(u8 btnFlag) { - field_0x2fae |= btnFlag; - return mItemButton & btnFlag; +BOOL daAlink_c::itemButtonCheck(u8 i_btnFlag) { + mUseButtonFlags |= i_btnFlag; + return mItemButton & i_btnFlag; } BOOL daAlink_c::itemButton() { @@ -8832,11 +9273,11 @@ BOOL daAlink_c::midnaTalkTrigger() const { } BOOL daAlink_c::swordSwingTrigger() { - return itemTriggerCheck(BTN_B); + return swordTrigger(); } -void daAlink_c::setItemActionButtonStatus(u8 param_0) { - setRStatusEmphasys(param_0); +void daAlink_c::setItemActionButtonStatus(u8 i_status) { + setRStatusEmphasys(i_status); } BOOL daAlink_c::itemActionTrigger() { @@ -8850,21 +9291,26 @@ void daAlink_c::setStickData() { mItemButton = 0; mHeavySpeedMultiplier = 1.0f; - if (checkEventRun() && mProcID != PROC_GRASS_WHISTLE_WAIT && mProcID != PROC_WOLF_DIG_THROUGH && - mProcID != PROC_GOAT_CATCH && mProcID != PROC_WOLF_GANON_CATCH && - mProcID != PROC_TOOL_DEMO && (mProcID != PROC_METAMORPHOSE || mFallVoiceInit == 0)) + if (checkEventRun() + && mProcID != PROC_GRASS_WHISTLE_WAIT + && mProcID != PROC_WOLF_DIG_THROUGH + && mProcID != PROC_GOAT_CATCH + && mProcID != PROC_WOLF_GANON_CATCH + && mProcID != PROC_TOOL_DEMO + && (mProcID != PROC_METAMORPHOSE || mFallVoiceInit == 0) + ) { u32 demoMode = mDemo.getDemoMode(); - if (checkDemoMoveMode(demoMode)) { - if (dDemo_c::m_object->getActor(demoActorID) != NULL) { - field_0x33a8 = 1.0f; + if (checkDemoMoveMode(mDemo.getDemoMode())) { + if (dDemo_c::getActor(demoActorID) != NULL) { + mStickValue = 1.0f; } else { - field_0x33a8 = mDemo.getStick(); + mStickValue = mDemo.getStick(); } - } else if (demoMode == 14 || demoMode == 0x1A || demoMode == 0x41) { - if (demoMode == 0x1A) { - field_0x33a8 = mDemo.getStick(); + } else if (demoMode == daPy_demo_c::DEMO_UNK_14_e || demoMode == daPy_demo_c::DEMO_UNK_26_e || demoMode == daPy_demo_c::DEMO_UNK_65_e) { + if (demoMode == daPy_demo_c::DEMO_UNK_26_e) { + mStickValue = mDemo.getStick(); mDemo.setMoveAngle(getSceneExitMoveAngle()); if (checkHorseRide()) { @@ -8872,52 +9318,47 @@ void daAlink_c::setStickData() { dComIfGp_getHorseActor()->changeDemoMoveAngle(angle); } } else { - field_0x33a8 = 0.0f; + mStickValue = 0.0f; } mItemButton = field_0x2f8f; } else { - field_0x33a8 = 0.0f; + mStickValue = 0.0f; } - field_0x2fe2 = mDemo.getMoveAngle(); - field_0x33ac = field_0x33a8; + mMoveAngle = mDemo.getMoveAngle(); + mMoveValue = mStickValue; } else if (checkDeadHP() || dMeter2Info_getPauseStatus() == 1) { - field_0x33a8 = 0.0f; - field_0x33ac = 0.0f; + mStickValue = 0.0f; + mMoveValue = 0.0f; mStickAngle = 0; - field_0x2fe2 = 0; + mMoveAngle = 0; } else if (checkMidnaLockJumpPoint() && getMidnaActor()->checkNoInput()) { - field_0x33a8 = 0.0f; - field_0x33ac = 0.0f; + mStickValue = 0.0f; + mMoveValue = 0.0f; mStickAngle = 0; dComIfGp_2dShowOff(); onNoResetFlg2(FLG2_UNK_80); - var_r31 = 1; + var_r31 = TRUE; field_0x2fe4 = shape_angle.y; } else { - if (!(field_0x33ac > 0.05f)) { + if (!checkInputOnR()) { field_0x2fb9 = 0; } - bool usingFishRod = false; - if (checkFishingRodAndLureItem() && mItemAcKeep.getActor() != NULL && - (checkCanoeRide() || mProcID == PROC_FISHING_CAST)) - { - usingFishRod = true; - } + BOOL usingFishRod = checkFishingRodAndLureItem() + && mItemAcKeep.getActor() != NULL + && (checkCanoeRide() || mProcID == PROC_FISHING_CAST); if (usingFishRod) { dmg_rod_class* mg_rod = (dmg_rod_class*)mItemAcKeep.getActor(); - f32 stick_x = mg_rod->getRodStickX() * mg_rod->getRodStickX(); - f32 stick_y = mg_rod->getRodStickY() * mg_rod->getRodStickY(); - field_0x33a8 = JMAFastSqrt(stick_x + stick_y); + mStickValue = JMAFastSqrt(SQUARE(mg_rod->getRodStickX()) + SQUARE(mg_rod->getRodStickY())); mStickAngle = cM_atan2s(-mg_rod->getRodStickX(), mg_rod->getRodStickY()); } else { - field_0x33a8 = mDoCPd_c::getStickValue(PAD_1); + mStickValue = mDoCPd_c::getStickValue(PAD_1); mStickAngle = mDoCPd_c::getStickAngle3D(PAD_1) - -0x8000; } - field_0x33ac = field_0x33a8; - field_0x2fe2 = mStickAngle + dCam_getControledAngleY(dComIfGp_getCamera(field_0x317c)); + mMoveValue = mStickValue; + mMoveAngle = mStickAngle + dCam_getControledAngleY(dComIfGp_getCamera(field_0x317c)); if (checkMagneBootsOn()) { if (field_0x2fb9 == 1 || @@ -8931,9 +9372,9 @@ void daAlink_c::setStickData() { if ((field_0x2fb9 == 1 && (field_0x3114 > 0x6000 || field_0x3114 == -0x8000)) || (field_0x2fb9 == 2 && field_0x3114 != -0x8000 && field_0x3114 < 0x4000)) { - field_0x2fe2 = getMagneBootsLocalAngleY(field_0x2fe2, 0) + 0x8000; + mMoveAngle = getMagneBootsLocalAngleY(mMoveAngle, 0) + 0x8000; } else { - field_0x2fe2 = getMagneBootsLocalAngleY(field_0x2fe2, field_0x2fb9); + mMoveAngle = getMagneBootsLocalAngleY(mMoveAngle, field_0x2fb9); } } else { field_0x2fb9 = 1; @@ -8983,27 +9424,27 @@ void daAlink_c::setStickData() { mItemButton |= BTN_R; } - if (checkHeavyStateOn(1, 1) && - (!checkBootsOrArmorHeavy() || !checkNoResetFlg0(FLG0_UNDERWATER))) + if (checkHeavyStateOn(TRUE, TRUE) && + (!checkBootsOrArmorHeavy() || !checkNoResetFlg0(FLG0_WATER_IN_MOVE))) { - if (checkWolf() && checkHeavyStateOn(1, 0) && mSinkShapeOffset < -30.0f) { + if (checkWolf() && checkHeavyStateOn(TRUE, FALSE) && mSinkShapeOffset < -30.0f) { mHeavySpeedMultiplier = mpHIO->mItem.mIronBoots.m.mInputFactor * 0.7f; } else { mHeavySpeedMultiplier = mpHIO->mItem.mIronBoots.m.mInputFactor; } - field_0x33a8 *= mHeavySpeedMultiplier; + mStickValue *= mHeavySpeedMultiplier; } else if (checkBootsOrArmorHeavy()) { if (checkZoraWearAbility()) { mHeavySpeedMultiplier = mpHIO->mItem.mIronBoots.m.mZoraWaterInputFactor; } else { mHeavySpeedMultiplier = mpHIO->mItem.mIronBoots.m.mWaterInputFactor; } - field_0x33a8 *= mHeavySpeedMultiplier; + mStickValue *= mHeavySpeedMultiplier; } else if ((checkWolf() && field_0x2fbc == 11 && checkWaterPolygonUnder()) || - field_0x2fbb == 11) + mGndPolyAtt0 == 11) { - onNoResetFlg0(FLG0_UNK_40000000); - field_0x33a8 *= mpHIO->mWolf.m.mUnderwaterInputRate; + onNoResetFlg0(FLG0_HEAVY_STATE); + mStickValue *= mpHIO->mWolf.m.mUnderwaterInputRate; mHeavySpeedMultiplier = mpHIO->mWolf.m.mUnderwaterInputRate; } } @@ -9076,7 +9517,7 @@ void daAlink_c::setAtnList() { if (mAttList != NULL && mAttention->LockonTruth()) { mTargetedActor = mAttList->getActor(); field_0x27f4 = mTargetedActor; - onResetFlg0(RFLG0_UNK_10000); + onResetFlg0(RFLG0_ATTENTION_LOCK); if (checkEnemyGroup(mTargetedActor)) { onResetFlg0(RFLG0_ENEMY_ATTN_LOCK); @@ -9108,7 +9549,7 @@ void daAlink_c::setAtnList() { u8 var_r30; if (mTargetedActor != NULL) { - if (fopAcM_GetGroup(mTargetedActor) == 2) { + if (fopAcM_GetGroup(mTargetedActor) == fopAc_ENEMY_e) { var_r30 = 3; } else { var_r30 = 2; @@ -9126,37 +9567,44 @@ void daAlink_c::setAtnList() { mZ2Link.setMarkState(var_r30); } -void daAlink_c::setRStatus(u8 status) { - dComIfGp_setRStatus(status, 0); +void daAlink_c::setRStatus(u8 i_status) { + dComIfGp_setRStatus(i_status, BUTTON_STATUS_FLAG_NONE); } -void daAlink_c::setRStatusEmphasys(u8 status) { - dComIfGp_setRStatus(status, 2); +void daAlink_c::setRStatusEmphasys(u8 i_status) { + dComIfGp_setRStatus(i_status, BUTTON_STATUS_FLAG_EMPHASIS); } -void daAlink_c::setDoStatus(u8 status) { - dComIfGp_setDoStatus(status, 0); +void daAlink_c::setDoStatus(u8 i_status) { + dComIfGp_setDoStatus(i_status, BUTTON_STATUS_FLAG_NONE); } -void daAlink_c::setDoStatusEmphasys(u8 status) { - dComIfGp_setDoStatus(status, 2); +void daAlink_c::setDoStatusEmphasys(u8 i_status) { + dComIfGp_setDoStatus(i_status, BUTTON_STATUS_FLAG_EMPHASIS); } -void daAlink_c::setDoStatusContinuation(u8 status) { - dComIfGp_setDoStatus(status, 4); +void daAlink_c::setDoStatusContinuation(u8 i_status) { + dComIfGp_setDoStatus(i_status, BUTTON_STATUS_FLAG_CONTINUATION); } -void daAlink_c::setBStatus(u8 status) { - dComIfGp_setAStatus(status, 0); +void daAlink_c::setBStatus(u8 i_status) { + dComIfGp_setAStatus(i_status, BUTTON_STATUS_FLAG_NONE); } BOOL daAlink_c::checkAtnWaitAnime() { - if ((mTargetedActor != NULL && - (checkEnemyGroup(mTargetedActor) || checkGoatCatchActor(mTargetedActor) || - fopAcM_GetName(mTargetedActor) == PROC_CROD || - fopAcM_GetName(mTargetedActor) == PROC_BOOMERANG)) || - (checkGrabAnimeUp() || checkGrabAnimeSide() || mDemo.getDemoMode() == 0x17 || - checkGoatStopGame())) + if ((mTargetedActor != NULL + && (checkEnemyGroup(mTargetedActor) + || checkGoatCatchActor(mTargetedActor) + || fopAcM_GetName(mTargetedActor) == PROC_CROD + || fopAcM_GetName(mTargetedActor) == PROC_BOOMERANG + ) + ) + || (checkGrabAnimeUp() + || checkGrabAnimeSide() + || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_23_e + || checkGoatStopGame() + ) + ) { return true; } @@ -9175,9 +9623,12 @@ void daAlink_c::setTiredVoice(daPy_frameCtrl_c* i_frameCtrl) { } BOOL daAlink_c::checkRestHPAnime() { - if (!checkPlayerGuard() && (checkNoUpperAnime() || checkHorseTiredAnime()) && - mTargetedActor == NULL && !checkWindSpeedOnAngle() && - ((!checkPlayerDemoMode() && dComIfGs_getLife() <= 4) || mDemo.getDemoMode() == 0x12)) + if (!checkPlayerGuard() + && (checkNoUpperAnime() || checkHorseTiredAnime()) + && mTargetedActor == NULL + && !checkWindSpeedOnAngle() + && ((!checkPlayerDemoMode() && dComIfGs_getLife() <= 4) || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_18_e) + ) { return true; } @@ -9185,16 +9636,16 @@ BOOL daAlink_c::checkRestHPAnime() { return false; } -int daAlink_c::getDirectionFromAngle(s16 angle) { - if (abs(angle) > 0x6000) { +int daAlink_c::getDirectionFromAngle(s16 i_angle) { + if (abs(i_angle) > 0x6000) { return DIR_BACKWARD; } - if (angle >= 0x2000) { + if (i_angle >= 0x2000) { return DIR_LEFT; } - if (angle <= -0x2000) { + if (i_angle <= -0x2000) { return DIR_RIGHT; } @@ -9202,10 +9653,10 @@ int daAlink_c::getDirectionFromAngle(s16 angle) { } bool daAlink_c::checkAttentionState() { - return (checkAttentionLock() || checkFmChainGrabAnime()) || - (mTargetedActor != NULL && (mTargetedActor == mThrowBoomerangAcKeep.getActor() || mTargetedActor == mCopyRodAcKeep.getActor())) || - (checkUpperReadyThrowAnime() && mEquipItem != 0x102) || - mDemo.getDemoMode() == 0x17; + return (checkAttentionLock() || checkFmChainGrabAnime()) + || (mTargetedActor != NULL && (mTargetedActor == mThrowBoomerangAcKeep.getActor() || mTargetedActor == mCopyRodAcKeep.getActor())) + || (checkUpperReadyThrowAnime() && mEquipItem != 0x102) + || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_23_e; } s16 daAlink_c::getShapeAngleYAtnActor() { @@ -9240,7 +9691,7 @@ s16 daAlink_c::getShapeAngleYAtnActor() { return var_r29; } -bool daAlink_c::setShapeAngleToAtnActor(int param_0) { +bool daAlink_c::setShapeAngleToAtnActor(BOOL param_0) { if (mTargetedActor != NULL) { if ((mTargetedActor == mThrowBoomerangAcKeep.getActor() && (checkBoomerangThrowAnime() || !checkInputOnR())) || (mTargetedActor == mCopyRodAcKeep.getActor() && (checkCopyRodThrowAnime() || !checkInputOnR()))) @@ -9271,32 +9722,49 @@ void daAlink_c::initServiceWaitTime() { } bool daAlink_c::checkZeroSpeedF() const { - return fabsf(mNormalSpeed) < 0.0010000000474974513f; + return fabsf(mNormalSpeed) < 0.001f; } -void daAlink_c::setNormalSpeedF(f32 i_incSpeed, f32 param_1) { - f32 var_f31; +void daAlink_c::setNormalSpeedF(f32 i_speed, f32 i_deceleration) { + f32 max_speed; if (getSumouMode()) { - var_f31 = field_0x33ac * (field_0x594 * field_0x33ac); + max_speed = mMoveValue * (mMaxSpeed * mMoveValue); } else { - var_f31 = field_0x33a8 * (field_0x594 * field_0x33a8); + max_speed = mStickValue * (mMaxSpeed * mStickValue); } if (checkWolfSwimDashAnime() || checkUnderMove0BckNoArc(ANM_SWIM_DASH) || getZoraSwim()) { - var_f31 = field_0x594; + max_speed = mMaxSpeed; } - if ((checkUpperReadyThrowAnime() && mLinkAcch.ChkGroundHit() && field_0x2f8c == 1) || ((checkRoomOnly() || checkCopyRodControllAnime() || checkGrabSlowMoveActor() || (checkUpperGuardAnime() && field_0x2f8c == 1) || (field_0x2fbd == 4 && mSinkShapeOffset < -15.0f)) && (mProcID == PROC_MOVE || mProcID == PROC_ATN_MOVE || mProcID == PROC_ATN_ACTOR_MOVE || mProcID == PROC_WOLF_MOVE || mProcID == PROC_WOLF_ATN_AC_MOVE || mProcID == PROC_MOVE_TURN))) { - f32 temp_f30 = field_0x594 * mpHIO->mBasic.m.mIndoorSpeedFactor; - if (var_f31 > temp_f30) { - var_f31 = temp_f30; + f32 temp_f30; + if ((checkUpperReadyThrowAnime() && mLinkAcch.ChkGroundHit() && field_0x2f8c == 1) + || ((checkRoomOnly() + || checkCopyRodControllAnime() + || checkGrabSlowMoveActor() + || (checkUpperGuardAnime() && field_0x2f8c == 1) + || (mGndPolyAtt1 == 4 && mSinkShapeOffset < -15.0f) + ) + && (mProcID == PROC_MOVE + || mProcID == PROC_ATN_MOVE + || mProcID == PROC_ATN_ACTOR_MOVE + || mProcID == PROC_WOLF_MOVE + || mProcID == PROC_WOLF_ATN_AC_MOVE + || mProcID == PROC_MOVE_TURN + ) + ) + ) + { + temp_f30 = mMaxSpeed * mpHIO->mBasic.m.mIndoorSpeedFactor; + if (max_speed > temp_f30) { + max_speed = temp_f30; } } - if (field_0x2fbd == 3 && mSinkShapeOffset < -15.0f) { - f32 temp_f30_2 = 0.5f * field_0x594; - if (var_f31 > temp_f30_2) { - var_f31 = temp_f30_2; + if (mGndPolyAtt1 == 3 && mSinkShapeOffset < -15.0f) { + temp_f30 = 0.5f * mMaxSpeed; + if (max_speed > temp_f30) { + max_speed = temp_f30; } } @@ -9309,27 +9777,34 @@ void daAlink_c::setNormalSpeedF(f32 i_incSpeed, f32 param_1) { } f32 sp14 = cLib_minMaxLimit((mWaterY - (30.0f + current.pos.y)) / (sp18 - 30.0f), 0.0f, 1.0f); - f32 temp_f30_3 = field_0x594 * (1.0f - (0.5f * sp14)); - if (var_f31 > temp_f30_3) { - var_f31 = temp_f30_3; + temp_f30 = mMaxSpeed * (1.0f - (0.5f * sp14)); + if (max_speed > temp_f30) { + max_speed = temp_f30; } } cM3dGPla slide_poly; - if ((mDemo.getDemoMode() == 0xE && mDemo.getParam1() == 0) || mDemo.getDemoMode() == 0x41 || getSlidePolygon(&slide_poly)) { + if ((mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_14_e && mDemo.getParam1() == 0) + || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_65_e + || getSlidePolygon(&slide_poly) + ) + { return; } s16 var_r29 = (current.angle.y + 0x8000) - field_0x30fa; - if ((mLinkAcch.ChkWallHit() || fabsf(field_0x342c) > 1.0f || fabsf(field_0x3430) > 1.0f || (field_0x30fc != 0 && abs(var_r29) < 0x4000)) && !checkMagneBootsOn() && (!getZoraSwim() || abs(field_0x3080) <= 0x2000)) { + if ((mLinkAcch.ChkWallHit() || fabsf(field_0x342c) > 1.0f || fabsf(field_0x3430) > 1.0f || (field_0x30fc != 0 && abs(var_r29) < 0x4000)) + && !checkMagneBootsOn() + && (!getZoraSwim() || abs(field_0x3080) <= 0x2000) + ) + { dBgS_AcchCir* acch_cir = mAcchCir; if (mLinkAcch.ChkWallHit()) { - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 3; i++, acch_cir++) { if (acch_cir->ChkWallHit()) { var_r29 = (current.angle.y + 0x8000) - acch_cir->GetWallAngleY(); break; } - acch_cir++; } } else if (fabsf(field_0x342c) > 1.0f || fabsf(field_0x3430) > 1.0f) { field_0x30fc = 3; @@ -9341,9 +9816,9 @@ void daAlink_c::setNormalSpeedF(f32 i_incSpeed, f32 param_1) { int temp_r3 = abs(var_r29); if (temp_r3 < 0x400) { - var_f31 = 0.0f; + max_speed = 0.0f; } else if (temp_r3 < 0x4000) { - var_f31 *= 1.0f - cM_scos(var_r29); + max_speed *= 1.0f - cM_scos(var_r29); } } @@ -9353,11 +9828,11 @@ void daAlink_c::setNormalSpeedF(f32 i_incSpeed, f32 param_1) { int temp_r3_2 = abs(temp_r29); if (temp_r3_2 < 0x4000) { if (checkModeFlg(0x40000)) { - var_f31 *= 1.0f - (0.8f * cM_scos(temp_r29)); + max_speed *= 1.0f - (0.8f * cM_scos(temp_r29)); } else if (temp_r3_2 < 0x600) { - var_f31 = 0.0f; + max_speed = 0.0f; } else { - var_f31 *= 1.0f - cM_scos(temp_r29); + max_speed *= 1.0f - cM_scos(temp_r29); } if (!checkWolf() && !checkMagneBootsOn()) { @@ -9368,20 +9843,20 @@ void daAlink_c::setNormalSpeedF(f32 i_incSpeed, f32 param_1) { f32 move_speed; f32 target_speed; - if (var_f31 < mNormalSpeed || 0.0f == var_f31) { - f32 temp_f29 = mNormalSpeed - var_f31; - move_speed = temp_f29 > param_1 ? param_1 : temp_f29; - i_incSpeed = 0.0f; - target_speed = var_f31; + if (max_speed < mNormalSpeed || 0.0f == max_speed) { + move_speed = mNormalSpeed - max_speed; + move_speed = move_speed > i_deceleration ? i_deceleration : move_speed; + i_speed = 0.0f; + target_speed = max_speed; } else { - move_speed = param_1; + move_speed = i_deceleration; target_speed = 0.0f; } - if (!cM3d_IsZero(i_incSpeed)) { - mNormalSpeed += i_incSpeed; - if (mNormalSpeed > var_f31) { - mNormalSpeed = var_f31; + if (!cM3d_IsZero(i_speed)) { + mNormalSpeed += i_speed; + if (mNormalSpeed > max_speed) { + mNormalSpeed = max_speed; } } else { cLib_chaseF(&mNormalSpeed, target_speed, move_speed); @@ -9392,9 +9867,9 @@ f32 daAlink_c::getStickAngleDistanceRate() { f32 rate; if (abs((s16)(mPrevStickAngle - mStickAngle)) > 0x1000) { - rate = cM_scos(field_0x2fe2 - current.angle.y); + rate = cM_scos(mMoveAngle - current.angle.y); - if (mNormalSpeed > 0.5f * field_0x594) { + if (mNormalSpeed > 0.5f * mMaxSpeed) { if (rate < 0.69999999f) { rate = 0.69999999f; } @@ -9413,13 +9888,12 @@ void daAlink_c::setSpeedAndAngleNormal() { if ((mLinkAcch.ChkWallHit() || field_0x30fc != 0) && !checkMagneBootsOn()) { if (mLinkAcch.ChkWallHit()) { - dBgS_AcchCir* var_r29 = mAcchCir; - for (int i = 0; i < 3; i++) { - if (var_r29->ChkWallHit()) { - abs((s16)((current.angle.y + 0x8000) - var_r29->GetWallAngleY())); + dBgS_AcchCir* acchCir = mAcchCir; + for (int i = 0; i < 3; i++, acchCir++) { + if (acchCir->ChkWallHit()) { + abs((s16)((current.angle.y + 0x8000) - acchCir->GetWallAngleY())); break; } - var_r29++; } } @@ -9434,79 +9908,79 @@ void daAlink_c::setSpeedAndAngleNormal() { var_r26 = true; } - f32 var_f31; + f32 speed; if (checkInputOnR()) { BOOL var_r24 = false; - f32 temp_f30 = field_0x33ac * field_0x33ac; + f32 temp_f30 = mMoveValue * mMoveValue; - if (!checkAttentionLock() && cLib_distanceAngleS(field_0x2fe2, current.angle.y) > 0x7800 && mProcID != PROC_MOVE_TURN) { + if (!checkAttentionLock() && cLib_distanceAngleS(mMoveAngle, current.angle.y) > 0x7800 && mProcID != PROC_MOVE_TURN) { if (checkModeFlg(1) || speedF < 0.001f) { return; } if (mProcID == PROC_MOVE) { - if ((speedF / field_0x594) > mpHIO->mMove.m.mSlideThresholdSpeed) { + if ((speedF / mMaxSpeed) > mpHIO->mMove.m.mSlideThresholdSpeed) { if (getDirectionFromAngle(mPrevStickAngle - mStickAngle) == DIR_BACKWARD) { return; } } - if ((speedF / field_0x594) <= mpHIO->mMove.m.mSlideThresholdSpeed) { - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mMove.m.mTurnAngleRate, mpHIO->mMove.m.mMaxTurnAngle, mpHIO->mMove.m.mMinTurnAngle); + if ((speedF / mMaxSpeed) <= mpHIO->mMove.m.mSlideThresholdSpeed) { + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, mpHIO->mMove.m.mTurnAngleRate, mpHIO->mMove.m.mMaxTurnAngle, mpHIO->mMove.m.mMinTurnAngle); return; } var_r24 = true; } else { - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mMove.m.mTurnAngleRate, mpHIO->mMove.m.mMaxTurnAngle, mpHIO->mMove.m.mMinTurnAngle); + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, mpHIO->mMove.m.mTurnAngleRate, mpHIO->mMove.m.mMaxTurnAngle, mpHIO->mMove.m.mMinTurnAngle); } } else { - s16 var_r28; - s16 var_r27; + s16 maxStep; + s16 minStep; if (checkEventRun()) { - var_r28 = mpHIO->mMove.m.mMaxTurnAngle; - var_r27 = mpHIO->mMove.m.mMinTurnAngle; + maxStep = mpHIO->mMove.m.mMaxTurnAngle; + minStep = mpHIO->mMove.m.mMinTurnAngle; } else { - var_r28 = mpHIO->mMove.m.mMaxTurnAngle * temp_f30; - if (var_r28 < 10) { - var_r28 = 10; + maxStep = mpHIO->mMove.m.mMaxTurnAngle * temp_f30; + if (maxStep < 10) { + maxStep = 10; } - var_r27 = mpHIO->mMove.m.mMinTurnAngle * temp_f30; - if (var_r27 < 1) { - var_r27 = 1; + minStep = mpHIO->mMove.m.mMinTurnAngle * temp_f30; + if (minStep < 1) { + minStep = 1; } } - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mMove.m.mTurnAngleRate, var_r28, var_r27); + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, mpHIO->mMove.m.mTurnAngleRate, maxStep, minStep); } if (!var_r24) { f32 temp_f28 = getStickAngleDistanceRate(); if (checkEventRun()) { - var_f31 = temp_f28 * (mpHIO->mMove.m.mAcceleration * field_0x33a8); + speed = temp_f28 * (mpHIO->mMove.m.mAcceleration * mStickValue); } else { - f32 var_f29 = 0.3f * (1.0f - fabsf(mNormalSpeed / field_0x594)); - if (checkHeavyStateOn(1, 1)) { + f32 var_f29 = 0.3f * (1.0f - fabsf(mNormalSpeed / mMaxSpeed)); + if (checkHeavyStateOn(TRUE, TRUE)) { var_f29 *= mHeavySpeedMultiplier; } - if (field_0x33a8 > var_f29) { - var_f31 = temp_f28 * (mpHIO->mMove.m.mAcceleration * temp_f30); + if (mStickValue > var_f29) { + speed = temp_f28 * (mpHIO->mMove.m.mAcceleration * temp_f30); } else { - var_f31 = 0.0f; + speed = 0.0f; } } } else { - var_f31 = 0.0f; + speed = 0.0f; } } else { - var_f31 = 0.0f; + speed = 0.0f; } if (!checkAttentionLock() && mProcID != PROC_MOVE_TURN && checkInputOnR()) { s16 sp8 = shape_angle.y; - cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mMove.m.mTurnAngleRate, mpHIO->mMove.m.mMaxTurnAngle * 2, mpHIO->mMove.m.mMinTurnAngle * 2); + cLib_addCalcAngleS(&shape_angle.y, mMoveAngle, mpHIO->mMove.m.mTurnAngleRate, mpHIO->mMove.m.mMaxTurnAngle * 2, mpHIO->mMove.m.mMinTurnAngle * 2); int temp_r23 = (s16)(sp8 - current.angle.y) * (s16)(shape_angle.y - current.angle.y); if (temp_r23 <= 0 && temp_r23 >= -0x1000000) { @@ -9514,14 +9988,14 @@ void daAlink_c::setSpeedAndAngleNormal() { } } - setNormalSpeedF(var_f31, mpHIO->mMove.m.mDeceleration); + setNormalSpeedF(speed, mpHIO->mMove.m.mDeceleration); } void daAlink_c::setSpeedAndAngleAtn() { int var_r29 = field_0x2f98; if (checkInputOnR()) { - s16 temp_r0 = field_0x2fe2 - shape_angle.y; + s16 temp_r0 = mMoveAngle - shape_angle.y; f32 temp_f27 = cM_ssin(temp_r0); f32 temp_f29 = cM_scos(temp_r0); @@ -9540,25 +10014,25 @@ void daAlink_c::setSpeedAndAngleAtn() { } } - s16 var_r27; - s16 var_r26; - s16 var_r25; + s16 angleRate; + s16 angleMaxStep; + s16 angleMinStep; - f32 var_f31; - f32 var_f30; - f32 var_f28; + f32 acceleration; + f32 deceleration; + f32 speed; if (mTargetedActor != NULL) { - var_r27 = mpHIO->mAtnMove.m.mTurnAngleRate; - var_r26 = mpHIO->mAtnMove.m.mMaxTurnAngle; - var_r25 = mpHIO->mAtnMove.m.mMinTurnAngle; + angleRate = mpHIO->mAtnMove.m.mTurnAngleRate; + angleMaxStep = mpHIO->mAtnMove.m.mMaxTurnAngle; + angleMinStep = mpHIO->mAtnMove.m.mMinTurnAngle; if (var_r29 == 1) { - var_f31 = mpHIO->mAtnMove.m.mBackAcceleration; - var_f30 = mpHIO->mAtnMove.m.mBackDeceleration; + acceleration = mpHIO->mAtnMove.m.mBackAcceleration; + deceleration = mpHIO->mAtnMove.m.mBackDeceleration; } else { - var_f31 = mpHIO->mAtnMove.m.mAcceleration; - var_f30 = mpHIO->mAtnMove.m.mDeceleration; + acceleration = mpHIO->mAtnMove.m.mAcceleration; + deceleration = mpHIO->mAtnMove.m.mDeceleration; } } else { if (var_r29 == 0) { @@ -9568,7 +10042,7 @@ void daAlink_c::setSpeedAndAngleAtn() { mNormalSpeed *= -1.0f; } if (checkZeroSpeedF()) { - current.angle.y = field_0x2fe2; + current.angle.y = mMoveAngle; } } @@ -9576,16 +10050,16 @@ void daAlink_c::setSpeedAndAngleAtn() { return; } - var_r27 = mpHIO->mNoActAtnMove.m.mTurnAngleRate; - var_r26 = mpHIO->mNoActAtnMove.m.mMaxTurnAngle; - var_r25 = mpHIO->mNoActAtnMove.m.mMinTurnAngle; + angleRate = mpHIO->mNoActAtnMove.m.mTurnAngleRate; + angleMaxStep = mpHIO->mNoActAtnMove.m.mMaxTurnAngle; + angleMinStep = mpHIO->mNoActAtnMove.m.mMinTurnAngle; if (var_r29 == 1) { - var_f31 = mpHIO->mNoActAtnMove.m.mBackAcceleration; - var_f30 = mpHIO->mNoActAtnMove.m.mBackDeceleration; + acceleration = mpHIO->mNoActAtnMove.m.mBackAcceleration; + deceleration = mpHIO->mNoActAtnMove.m.mBackDeceleration; } else { - var_f31 = mpHIO->mNoActAtnMove.m.mAcceleration; - var_f30 = mpHIO->mNoActAtnMove.m.mDeceleration; + acceleration = mpHIO->mNoActAtnMove.m.mAcceleration; + deceleration = mpHIO->mNoActAtnMove.m.mDeceleration; } } @@ -9595,27 +10069,27 @@ void daAlink_c::setSpeedAndAngleAtn() { mNormalSpeed *= -1.0f; } - s16 var_r28; + s16 targetAngle; if (checkUnderMove0BckNoArc(ANM_CHAIN_PULL_END)) { - var_r28 = getChainStickAngleY(shape_angle.y); + targetAngle = getChainStickAngleY(shape_angle.y); } else { - var_r28 = field_0x2fe2; + targetAngle = mMoveAngle; } if (checkZeroSpeedF()) { - current.angle.y = var_r28; + current.angle.y = targetAngle; } s16 temp_r23 = current.angle.y; - cLib_addCalcAngleS(¤t.angle.y, var_r28, var_r27, var_r26, var_r25); + cLib_addCalcAngleS(¤t.angle.y, targetAngle, angleRate, angleMaxStep, angleMinStep); - if (field_0x33a8 > (0.3f * (1.0f - fabsf(mNormalSpeed / field_0x594)))) { - var_f28 = var_f31 * field_0x33a8 * cM_scos((current.angle.y - temp_r23)); + if (mStickValue > (0.3f * (1.0f - fabsf(mNormalSpeed / mMaxSpeed)))) { + speed = acceleration * mStickValue * cM_scos((current.angle.y - temp_r23)); } else { - var_f28 = 0.0f; + speed = 0.0f; } } else { - var_f28 = 0.0f; + speed = 0.0f; } if (mTargetedActor != NULL) { @@ -9624,12 +10098,12 @@ void daAlink_c::setSpeedAndAngleAtn() { shape_angle.y = field_0x2fe4; } - setNormalSpeedF(var_f28, var_f30); + setNormalSpeedF(speed, deceleration); } -int daAlink_c::checkRequestTalkActor(dAttList_c* param_0, fopAc_ac_c* param_1) { - if (param_0 != NULL && - (param_0->mType == fopAc_attn_SPEAK_e || (param_0->mType == fopAc_attn_TALK_e && mTargetedActor == param_1))) +int daAlink_c::checkRequestTalkActor(dAttList_c* i_attList, fopAc_ac_c* i_actor) { + if (i_attList != NULL && + (i_attList->mType == fopAc_attn_SPEAK_e || (i_attList->mType == fopAc_attn_TALK_e && mTargetedActor == i_actor))) { return true; } @@ -9642,9 +10116,9 @@ bool daAlink_c::checkServiceWaitMode() { !checkEndResetFlg0(ERFLG0_BOSS_ROOM_WAIT) && checkNoUpperAnime() && !checkWindSpeedOnXZ() && - field_0x3126 == 0 && - field_0x3128 == 0 && - field_0x3124 == 0 && + field_0x3124.y == 0 && + field_0x3124.z == 0 && + field_0x3124.x == 0 && !checkFishingRodAndLureItem() && mSinkShapeOffset >= -30.0f; } @@ -9675,21 +10149,22 @@ void daAlink_c::setMidnaMsg() { } BOOL daAlink_c::notTalk() { - BOOL safe_poly; + BOOL isSafePoly; if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && dBgS_CheckBGroundPoly(mLinkAcch.m_gnd)) { - safe_poly = true; + isSafePoly = true; } else { - safe_poly = false; + isSafePoly = false; } - if ((mMidnaTalkDelayTimer != 0 || - (checkMagneBootsOn() && !cBgW_CheckBGround(mMagneBootsTopVec.y))) || - !checkModeFlg(MODE_SWIMMING | MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | - MODE_RIDING | MODE_NO_COLLISION | MODE_CLIMB | MODE_JUMP) && - !safe_poly) + if ((mMidnaTalkDelayTimer != 0 || (checkMagneBootsOn() && !cBgW_CheckBGround(mMagneBootsTopVec.y))) + || (!checkModeFlg(MODE_SWIMMING | MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_RIDING | MODE_NO_COLLISION | MODE_CLIMB | MODE_JUMP) + && !isSafePoly + ) + ) { return true; } + return false; } @@ -9700,26 +10175,26 @@ BOOL daAlink_c::setTalkStatus() { if (checkRequestTalkActor(mAttList, field_0x27f4)) { if (notTalk()) { - setDoStatus(0x90); + setDoStatus(BUTTON_STATUS_UNK_144); } else { if (field_0x27f4->attention_info.flags & fopAc_AttnFlag_NOTALK_e) { return 0; } if (field_0x27f4->attention_info.flags & fopAc_AttnFlag_UNK_0x800000) { - setDoStatus(0x3B); + setDoStatus(BUTTON_STATUS_LISTEN); } else if (field_0x27f4->attention_info.flags & fopAc_AttnFlag_TALKCHECK_e) { if (fopAcM_GetName(field_0x27f4) == PROC_OBJ_SSDRINK) { - setDoStatus(0x3C); + setDoStatus(BUTTON_STATUS_DRINK); } else { - setDoStatus(8); + setDoStatus(BUTTON_STATUS_CHECK); } } else if (field_0x27f4->attention_info.flags & fopAc_AttnFlag_TALKREAD_e) { - setDoStatus(0x80); + setDoStatus(BUTTON_STATUS_UNK_128); } else if (field_0x27f4->attention_info.flags & fopAc_AttnFlag_UNK_0x8000000) { - setDoStatus(0x1B); + setDoStatus(BUTTON_STATUS_LOOK); } else { - setDoStatus(0x1C); + setDoStatus(BUTTON_STATUS_SPEAK); } } @@ -9730,7 +10205,7 @@ BOOL daAlink_c::setTalkStatus() { } f32 daAlink_c::getFrontRollRate() { - if (checkHeavyStateOn(1, 1)) { + if (checkHeavyStateOn(TRUE, TRUE)) { return 0.75f * mHeavySpeedMultiplier; } else { return 0.75f; @@ -9738,62 +10213,66 @@ f32 daAlink_c::getFrontRollRate() { } void daAlink_c::decideCommonDoStatus() { - if (!checkFmChainGrabAnime() && dComIfGp_getDoStatus() == 0) { - bool temp_r3 = checkStageName("R_SP127"); + if (!checkFmChainGrabAnime() && dComIfGp_getDoStatus() == BUTTON_STATUS_NONE) { + bool isFshopStage = checkStageName("R_SP127"); - if (checkRoomOnly() && !checkWolf() && !temp_r3) { + if (checkRoomOnly() && !checkWolf() && !isFshopStage) { if ((checkNoUpperAnime() || checkIronBallWaitAnime()) && (mEquipItem != fpcNm_ITEM_NONE && checkModeFlg(4) && mEquipItem != 0x102)) { if (checkCopyRodControllAnime()) { - setDoStatus(0x2A); + setDoStatus(BUTTON_STATUS_QUIT); } else { - setDoStatus(4); + setDoStatus(BUTTON_STATUS_PUT_AWAY); } } else if (mFastShotTime != 0) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } } else if (checkWolf()) { if (checkDownAttackState()) { - setDoStatusEmphasys(0x30); + setDoStatusEmphasys(BUTTON_STATUS_FINISH); } else if (checkCutHeadState()) { - setDoStatusEmphasys(0x77); + setDoStatusEmphasys(BUTTON_STATUS_HELM_SPLITTER); } else if (checkWolfSideStep()) { - setDoStatusEmphasys(0x19); + setDoStatusEmphasys(BUTTON_STATUS_JUMP); } else { if (mTargetedActor != NULL) { if (fopAcM_GetName(mTargetedActor) == PROC_Tag_Wljump) { if (static_cast(mTargetedActor)->getLockPos() != NULL) { if (!getMidnaActor()->checkNoInput()) { - setDoStatus(0x93); + setDoStatus(BUTTON_STATUS_UNK_147); } - onResetFlg0(RFLG0_UNK_20000); - field_0x3738 = - *static_cast(mTargetedActor)->getLockPos(); + onResetFlg0(RFLG0_WOLF_TAG_LOCK_JUMP_READY); + field_0x3738 = *static_cast(mTargetedActor)->getLockPos(); } } else { - setDoStatus(0x8B); + setDoStatus(BUTTON_STATUS_UNK_139); } } else if (checkAttentionLock()) { - setDoStatus(0x8B); + setDoStatus(BUTTON_STATUS_UNK_139); } else if (field_0x30d2 == 0 && - (field_0x33a8 > getFrontRollRate() || checkAttentionLock())) + (mStickValue > getFrontRollRate() || checkAttentionLock())) { - setDoStatus(9); + setDoStatus(BUTTON_STATUS_DASH); } } if (checkNotJumpSinkLimit() && - (dComIfGp_getDoStatus() == 0x8B || dComIfGp_getDoStatus() == 0x30 || - dComIfGp_getDoStatus() == 0x77 || dComIfGp_getDoStatus() == 0x19 || - dComIfGp_getDoStatus() == 9 || dComIfGp_getDoStatus() == 0x93)) + (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_139 + || dComIfGp_getDoStatus() == BUTTON_STATUS_FINISH + || dComIfGp_getDoStatus() == BUTTON_STATUS_HELM_SPLITTER + || dComIfGp_getDoStatus() == BUTTON_STATUS_JUMP + || dComIfGp_getDoStatus() == BUTTON_STATUS_DASH + || dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_147 + ) + ) { - setDoStatus(0); + setDoStatus(BUTTON_STATUS_NONE); } } else { int direction = getDirectionFromShapeAngle(); - f32 temp_f31 = getFrontRollRate(); + f32 frontRollRate = getFrontRollRate(); if (checkAttentionLock() || (mTargetedActor != NULL && (mTargetedActor == mThrowBoomerangAcKeep.getActor() || @@ -9801,73 +10280,78 @@ void daAlink_c::decideCommonDoStatus() { { if (checkInputOnR() && direction != DIR_FORWARD) { if (mEquipItem == 0x103 && checkDownAttackState()) { - setDoStatusEmphasys(0x30); + setDoStatusEmphasys(BUTTON_STATUS_FINISH); } else if (mEquipItem == 0x103 && checkCutHeadState()) { - setDoStatusEmphasys(0x77); + setDoStatusEmphasys(BUTTON_STATUS_HELM_SPLITTER); } else { - setDoStatusEmphasys(0x19); + setDoStatusEmphasys(BUTTON_STATUS_JUMP); } - } else if (!checkSmallUpperGuardAnime() && - (mEquipItem == 0x103 || mEquipItem == 0x102)) - { + } else if (!checkSmallUpperGuardAnime() && (mEquipItem == 0x103 || mEquipItem == 0x102)) { if (mEquipItem == 0x102) { - setDoStatus(0x13); + setDoStatus(BUTTON_STATUS_THROW); } else if (mEquipItem == 0x103 && checkDownAttackState()) { - setDoStatusEmphasys(0x30); + setDoStatusEmphasys(BUTTON_STATUS_FINISH); } else if (mEquipItem == 0x103 && checkCutHeadState()) { - setDoStatusEmphasys(0x77); + setDoStatusEmphasys(BUTTON_STATUS_HELM_SPLITTER); } else { - setDoStatus(0x86); + setDoStatus(BUTTON_STATUS_UNK_134); } } else { - setDoStatus(0x79); + setDoStatus(BUTTON_STATUS_UNK_121); } } else if (((checkNoUpperAnime()) || checkIronBallWaitAnime() || checkCopyRodControllAnime()) && - mEquipItem != fpcNm_ITEM_NONE && checkModeFlg(4) && field_0x33a8 <= temp_f31) + mEquipItem != fpcNm_ITEM_NONE && checkModeFlg(4) && mStickValue <= frontRollRate) { if (mEquipItem == 0x102) { if (checkAttentionState()) { - setDoStatus(0x13); + setDoStatus(BUTTON_STATUS_THROW); } else { - setDoStatus(0x14); + setDoStatus(BUTTON_STATUS_PLACE); } } else { - setDoStatus(4); + setDoStatus(BUTTON_STATUS_PUT_AWAY); } - } else if (field_0x33a8 > temp_f31) { + } else if (mStickValue > frontRollRate) { if (mEquipItem == 0x102) { - setDoStatus(0x13); + setDoStatus(BUTTON_STATUS_THROW); } else { - setDoStatus(0x79); + setDoStatus(BUTTON_STATUS_UNK_121); } } else if (mFastShotTime != 0) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } - if ((((checkMagneBootsOn() || checkIronBallWaitAnime() || checkNotJumpSinkLimit()) && - (dComIfGp_getDoStatus() == 0x79 || dComIfGp_getDoStatus() == 0x86 || - dComIfGp_getDoStatus() == 0x30 || dComIfGp_getDoStatus() == 0x77 || - dComIfGp_getDoStatus() == 0x19)) || - (dComIfGp_getDoStatus() == 0x79 && - (checkKandelaarSwingAnime() || mGndPolySpecialCode == dBgW_SPCODE_HEAVY_SNOW || checkCopyRodThrowAnime() || - checkBoomerangThrowAnime()))) && - (!checkMagneBootsOn() || dComIfGp_getDoStatus() != 0x79 || - !cBgW_CheckBGround(mMagneBootsTopVec.y))) + if ((((checkMagneBootsOn() || checkIronBallWaitAnime() || checkNotJumpSinkLimit()) + && (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_121 + || dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_134 + || dComIfGp_getDoStatus() == BUTTON_STATUS_FINISH + || dComIfGp_getDoStatus() == BUTTON_STATUS_HELM_SPLITTER + || dComIfGp_getDoStatus() == BUTTON_STATUS_JUMP + ) + ) || (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_121 + && (checkKandelaarSwingAnime() + || mGndPolySpecialCode == dBgW_SPCODE_HEAVY_SNOW + || checkCopyRodThrowAnime() + || checkBoomerangThrowAnime() + ) + ) + ) && (!checkMagneBootsOn() || dComIfGp_getDoStatus() != BUTTON_STATUS_UNK_121 || !cBgW_CheckBGround(mMagneBootsTopVec.y)) + ) { if (mEquipItem == 0x42 && checkModeFlg(4)) { - setDoStatus(4); + setDoStatus(BUTTON_STATUS_PUT_AWAY); } else { - setDoStatus(0); + setDoStatus(BUTTON_STATUS_NONE); } } - if (temp_r3 && dComIfGp_getDoStatus() == 0x19) { - setDoStatus(0); + if (isFshopStage && dComIfGp_getDoStatus() == BUTTON_STATUS_JUMP) { + setDoStatus(BUTTON_STATUS_NONE); } - if (dComIfGp_getDoStatus() == 4 && checkCopyRodControllAnime()) { - setDoStatus(0x2A); + if (dComIfGp_getDoStatus() == BUTTON_STATUS_PUT_AWAY && checkCopyRodControllAnime()) { + setDoStatus(BUTTON_STATUS_QUIT); } } } @@ -9876,18 +10360,18 @@ void daAlink_c::decideCommonDoStatus() { void daAlink_c::decideDoStatus() { if (!checkFmChainGrabAnime()) { if (checkNoResetFlg0(FLG0_UNK_1000000)) { - setDoStatusEmphasys(0x62); + setDoStatusEmphasys(BUTTON_STATUS_DRAW); } if (mTargetedActor == NULL && mAttList == NULL && checkResetFlg0(RFLG0_UNK_8)) { - setWallGrabStatus(0x15, 2); + setWallGrabStatus(BUTTON_STATUS_GRAB, BUTTON_STATUS_FLAG_EMPHASIS); if (field_0x2f91 == 7 || field_0x2f91 == 8 || field_0x2f91 == 6 || field_0x2f91 == 9) { - setDoStatus(0x20); + setDoStatus(BUTTON_STATUS_UNK_32); } } else { if (searchFmChainPos()) { - setChainGrabStatus(0x96); + setChainGrabStatus(BUTTON_STATUS_UNK_150); } else if (mAttList != NULL) { s16 actor_name = fopAcM_GetName(field_0x27f4); @@ -9895,25 +10379,25 @@ void daAlink_c::decideDoStatus() { (mAttList->mType == fopAc_attn_JUEL_e && (!checkWolf() || static_cast(field_0x27f4)->checkSmallTbox()))) { - setDoStatus(6); + setDoStatus(BUTTON_STATUS_OPEN); } else if (mAttList->mType == fopAc_attn_ETC_e && actor_name == PROC_KYTAG05) { - setDoStatus(0x89); + setDoStatus(BUTTON_STATUS_UNK_137); } else if (checkWolf()) { if (mAttList->mType == fopAc_attn_CARRY_e && !fopAcM_checkCarryNow(field_0x27f4) && fopAcM_CheckCarryType(field_0x27f4, fopAcM_CARRY_LIGHT)) { if (actor_name == PROC_B_MGN) { - setDoStatus(0x91); + setDoStatus(BUTTON_STATUS_UNK_145); } else if (actor_name == PROC_Obj_Yobikusa) { - setDoStatusEmphasys(5); + setDoStatusEmphasys(BUTTON_STATUS_HOWL); } else if (actor_name == PROC_Obj_Stone) { - setDoStatus(0x47); + setDoStatus(BUTTON_STATUS_ROLL); } else if (actor_name == PROC_Obj_Drop || actor_name == PROC_Obj_Sword || actor_name == PROC_Obj_SmallKey) { - setDoStatusEmphasys(0x39); + setDoStatusEmphasys(BUTTON_STATUS_UNK_57); } else if (!checkGoatCatchActor(field_0x27f4) && !checkGrabLineCheck()) { - setDoStatusEmphasys(0xC); + setDoStatusEmphasys(BUTTON_STATUS_PICK_UP); } } else if (mTargetedActor != NULL && fopAcM_GetName(mTargetedActor) == PROC_B_MGN && @@ -9921,7 +10405,7 @@ void daAlink_c::decideDoStatus() { mAttention->getActionBtnB()->mType == fopAc_attn_CARRY_e && mAttention->getActionBtnB()->getActor() == mTargetedActor) { - setDoStatus(0x91); + setDoStatus(BUTTON_STATUS_UNK_145); } else if (mTargetedActor != NULL && fopAcM_GetName(mTargetedActor) == PROC_E_YM && mAttention->getActionBtnB() != NULL && @@ -9930,7 +10414,7 @@ void daAlink_c::decideDoStatus() { { onEndResetFlg1(ERFLG1_UNK_100000); if (mWolfEyeUp != 0) { - setWolfDigStatus(2); + setWolfDigStatus(BUTTON_STATUS_FLAG_EMPHASIS); } } else if (mAttList->mType == fopAc_attn_ETC_e && field_0x27f4 != NULL) { if (actor_name == PROC_Obj_Digpl || actor_name == PROC_Obj_Digholl || @@ -9939,21 +10423,21 @@ void daAlink_c::decideDoStatus() { { onEndResetFlg1(ERFLG1_UNK_100000); if (mWolfEyeUp != 0) { - setWolfDigStatus(2); + setWolfDigStatus(BUTTON_STATUS_FLAG_EMPHASIS); } } else if (actor_name == PROC_TAG_HOWL || actor_name == PROC_Obj_WindStone || actor_name == PROC_Obj_SmWStone || actor_name == PROC_Tag_WaraHowl) { - setDoStatusEmphasys(5); + setDoStatusEmphasys(BUTTON_STATUS_HOWL); } else if (actor_name == PROC_KYTAG03) { - setDoStatusEmphasys(0x45); + setDoStatusEmphasys(BUTTON_STATUS_SNIFF); } } else if (mTargetedActor != NULL && field_0x27f4 == mTargetedActor && actor_name == PROC_Obj_Wchain) { - setDoStatusEmphasys(0x7B); + setDoStatusEmphasys(BUTTON_STATUS_UNK_123); } else { setTalkStatus(); } @@ -9963,17 +10447,17 @@ void daAlink_c::decideDoStatus() { checkReinRideBgCheck()) || actor_name == PROC_CANOE || actor_name == PROC_Obj_IceLeaf) { - setDoStatus(0x17); + setDoStatus(BUTTON_STATUS_GET_ON); } else if (actor_name == PROC_COW) { - setDoStatus(0x38); + setDoStatus(BUTTON_STATUS_PET); } else if (actor_name == PROC_Obj_YIblltray) { - setDoStatusEmphasys(0x99); + setDoStatusEmphasys(BUTTON_STATUS_UNK_153); } else if (actor_name == PROC_Tag_Lv6Gate || (actor_name == PROC_TAG_KMSG && static_cast(field_0x27f4)->getType() == 3)) { if (!checkEquipAnime() && checkMasterSwordEquip()) { - setDoStatus(0x63); + setDoStatus(BUTTON_STATUS_STRIKE); } } } else if (mTargetedActor != NULL && checkGoatCatchActor(mTargetedActor) && @@ -9981,24 +10465,24 @@ void daAlink_c::decideDoStatus() { mAttention->getActionBtnB()->mType == fopAc_attn_CARRY_e && mAttention->getActionBtnB()->getActor() == mTargetedActor) { - setDoStatus(0x91); + setDoStatus(BUTTON_STATUS_UNK_145); } else if (mAttList->mType == fopAc_attn_CARRY_e) { if (!fopAcM_checkCarryNow(field_0x27f4)) { if (checkGoatCatchActor(field_0x27f4)) { - setDoStatus(0x91); + setDoStatus(BUTTON_STATUS_UNK_145); } else if (!checkMagneBootsOn()) { if (checkInsectActorName(field_0x27f4)) { - setDoStatusEmphasys(0x98); + setDoStatusEmphasys(BUTTON_STATUS_UNK_152); } else if (actor_name == PROC_Obj_SmallKey) { - setDoStatusEmphasys(0x39); + setDoStatusEmphasys(BUTTON_STATUS_UNK_57); } else if (!checkGrabLineCheck()) { if (actor_name == PROC_Obj_Yobikusa) { - setDoStatus(0x2B); + setDoStatus(BUTTON_STATUS_PICK); } else if (fopAcM_CheckCarryType(field_0x27f4, fopAcM_CARRY_TYPE_8)) { - setDoStatusEmphasys(0x34); + setDoStatusEmphasys(BUTTON_STATUS_UNK_52); } else if (actor_name != PROC_B_MGN) { - setDoStatusEmphasys(0x1F); + setDoStatusEmphasys(BUTTON_STATUS_UNK_31); } } } @@ -10021,7 +10505,7 @@ BOOL daAlink_c::checkWaitAction() { return procWolfWaitInit(); } - if (checkNoUpperAnime() && checkRestHPAnime() && shape_angle.y == field_0x2fe6 && (!checkAttentionState() || shape_angle.y == field_0x2fe4)) { + if (checkNoUpperAnime() && checkRestHPAnime() && shape_angle.y == mPrevAngleY && (!checkAttentionState() || shape_angle.y == field_0x2fe4)) { return procWolfTiredWaitInit(); } @@ -10063,7 +10547,7 @@ BOOL daAlink_c::checkWaitAction() { return procSwimWaitInit(0); } - if (mSpecialMode == 1) { + if (mMode == 1) { return procSumouReadyInit(); } @@ -10075,7 +10559,13 @@ BOOL daAlink_c::checkWaitAction() { return 0; } - if (checkRestHPAnime() && !checkPlayerGuardAndAttack() && shape_angle.y == field_0x2fe6 && !checkEndResetFlg0(ERFLG0_UNK_8000000) && !checkUnderMove0BckNoArc(ANM_WAIT_B) && !checkUnderMove0BckNoArc(ANM_WAIT_B_TO_A)) { + if (checkRestHPAnime() + && !checkPlayerGuardAndAttack() + && shape_angle.y == mPrevAngleY + && !checkEndResetFlg0(ERFLG0_UNK_8000000) + && !checkUnderMove0BckNoArc(ANM_WAIT_B) + && !checkUnderMove0BckNoArc(ANM_WAIT_B_TO_A)) + { return procTiredWaitInit(); } @@ -10100,43 +10590,43 @@ void daAlink_c::setLandPassiveData() { } void daAlink_c::setStepLandVibration() { - int shock; + int shockMode; if (checkBootsOrArmorHeavy()) { - shock = 3; + shockMode = VIBMODE_S_POWER3; } else { - shock = 1; + shockMode = VIBMODE_S_POWER1; } - dComIfGp_getVibration().StartShock(shock, 15, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(shockMode, 15, cXyz(0.0f, 1.0f, 0.0f)); } BOOL daAlink_c::checkLandAction(int param_0) { f32 temp_f31 = 0.0099999998f * (mFallHeight - current.pos.y); - int temp_r3 = getDirectionFromCurrentAngle(); - int temp_r27 = getDirectionFromAngle(current.angle.y - shape_angle.y); - BOOL var_r29 = field_0x33a8 > 0.8f && temp_r27 != 1 && !checkGrabAnime() && - mProcID != PROC_CUT_HEAD && temp_r3 == DIR_FORWARD; + int face_direction = getDirectionFromCurrentAngle(); + int move_direction = getDirectionFromAngle(current.angle.y - shape_angle.y); + BOOL isRollLand = mStickValue > 0.8f && move_direction != DIR_BACKWARD && !checkGrabAnime() && + mProcID != PROC_CUT_HEAD && face_direction == DIR_FORWARD; if ((param_0 || temp_f31 >= mpHIO->mDamage.mDamFall.m.mMinRollHeight) && - temp_f31 < mpHIO->mDamage.mDamFall.m.mMaxRollHeight && var_r29) + temp_f31 < mpHIO->mDamage.mDamFall.m.mMaxRollHeight && isRollLand) { - if (temp_r27 == DIR_FORWARD) { + if (move_direction == DIR_FORWARD) { procFrontRollInit(); } else { - procSideRollInit(temp_r27); + procSideRollInit(move_direction); } } else if (checkNoLandDamageSlidePolygon() || temp_f31 < mpHIO->mDamage.mDamFall.m.mSmallDmgHeight) { if (param_0) { procLandDamageInit(0); - } else if (var_r29 && field_0x30f0 > 0x32) { - if (temp_r27 == DIR_FORWARD) { + } else if (isRollLand && field_0x30f0 > 50) { + if (move_direction == DIR_FORWARD) { procFrontRollInit(); } else { - procSideRollInit(temp_r27); + procSideRollInit(move_direction); } - } else if (checkInputOnR() && temp_r27 == DIR_FORWARD && temp_r3 == DIR_FORWARD && + } else if (checkInputOnR() && move_direction == DIR_FORWARD && face_direction == DIR_FORWARD && mNormalSpeed > 5.0f) { if (mNormalSpeed > mpHIO->mMove.m.mMaxSpeed) { @@ -10148,31 +10638,23 @@ BOOL daAlink_c::checkLandAction(int param_0) { setFootEffectProcType(2); field_0x2f9d = 4; resetBasAnime(); - seStartMapInfo(0x30001); + seStartMapInfo(Z2SE_FN_JUMP_DUMMY); - f32 tmp_0 = 0.0f; - dComIfGp_getVibration().StartShock(1, 15, cXyz(tmp_0, 1.0f, tmp_0)); + dComIfGp_getVibration().StartShock(1, 15, cXyz(0.0f, 1.0f, 0.0f)); } else { procLandInit(temp_f31); } } else { - int var_r4; - if (temp_f31 < mpHIO->mDamage.mDamFall.m.mBigDmgHeight) { - var_r4 = 1; - } else { - var_r4 = 2; - } - - procLandDamageInit(var_r4); + procLandDamageInit(temp_f31 < mpHIO->mDamage.mDamFall.m.mBigDmgHeight ? 1 : 2); } return 1; } BOOL daAlink_c::checkSlideAction() { - cM3dGPla sp28; - if (getSlidePolygon(&sp28)) { - s16 var_r29 = sp28.mNormal.atan2sX_Z(); + cM3dGPla tripla; + if (getSlidePolygon(&tripla)) { + s16 angle = tripla.mNormal.atan2sX_Z(); if (field_0x2f8c != 0) { cLib_chaseF(&mNormalSpeed, 0.0f, field_0x3424); field_0x3090--; @@ -10183,14 +10665,15 @@ BOOL daAlink_c::checkSlideAction() { } if (checkWolf()) { - return procWolfSlideInit(var_r29, 0); + return procWolfSlideInit(angle, 0); } else { - return procSlideInit(var_r29); + return procSlideInit(angle); } } else { field_0x3090 = 8; - return false; } + + return false; } BOOL daAlink_c::checkAutoJumpAction() { @@ -10198,7 +10681,7 @@ BOOL daAlink_c::checkAutoJumpAction() { return 1; } - if (field_0x2fbd == 0xFF || checkFlyAtnWait()) { + if (mGndPolyAtt1 == 0xFF || checkFlyAtnWait()) { return 1; } @@ -10206,8 +10689,15 @@ BOOL daAlink_c::checkAutoJumpAction() { return 0; } - if (!checkModeFlg(0x70C12) && mProcID != PROC_DOOR_OPEN && mProcID != PROC_WARP && !getSumouMode() && mDemo.getDemoType() != daPy_demo_c::DEMO_TYPE_SPECIAL_e && !checkMagneBootsOn() && !mLinkAcch.ChkGroundHit()) { - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (!checkModeFlg(0x70C12) + && mProcID != PROC_DOOR_OPEN + && mProcID != PROC_WARP + && !getSumouMode() + && mDemo.getDemoType() != daPy_demo_c::DEMO_TYPE_SPECIAL_e + && !checkMagneBootsOn() + && !mLinkAcch.ChkGroundHit()) + { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { speed.y = 0.0f; return procSwimWaitInit(0); } @@ -10222,12 +10712,12 @@ BOOL daAlink_c::checkAutoJumpAction() { f32 var_f30 = field_0x35c4.z + (mWindSpeed.z + (speed.z + field_0x3594.z)); BOOL var_r28 = true; - f32 var_f29 = JMAFastSqrt((var_f31 * var_f31) + (var_f30 * var_f30)); + f32 var_f29 = JMAFastSqrt(SQUARE(var_f31) + SQUARE(var_f30)); if (var_f29 < 0.001f) { var_f31 = current.pos.x - field_0x3540.x; var_f30 = current.pos.z - field_0x3540.z; - var_f29 = JMAFastSqrt((var_f31 * var_f31) + (var_f30 * var_f30)); + var_f29 = JMAFastSqrt(SQUARE(var_f31) + SQUARE(var_f30)); if (var_f29 < 0.001f) { var_r28 = false; } @@ -10236,9 +10726,9 @@ BOOL daAlink_c::checkAutoJumpAction() { f32 sp24; if (var_r28) { s16 temp_r26 = cM_atan2s(var_f31, var_f30); - f32 temp_f29 = 1.0f / var_f29; - f32 sp20 = var_f31 * temp_f29; - f32 sp1C = var_f30 * temp_f29; + var_f29 = 1.0f / var_f29; + f32 sp20 = var_f31 * var_f29; + f32 sp1C = var_f30 * var_f29; current.pos.y -= speed.y; @@ -10299,7 +10789,15 @@ BOOL daAlink_c::checkAutoJumpAction() { if (dComIfGs_getLife() != 0 || dComIfGs_checkBottle(fpcNm_ITEM_FAIRY)) { if (!checkGoronSideMove() && (!checkNotAutoJumpStage() || checkWolf())) { if (field_0x3178 != 3 && !checkEndResetFlg0(ERFLG0_NOT_AUTO_JUMP)) { - if (sp14 >= sp10 && (!checkBootsOrArmorHeavy() || checkIronBallWaitAnime()) && (field_0x33a8 > 0.85f || (checkIronBallWaitAnime() && field_0x33ac > 0.85f) || mProcID == PROC_WOLF_GIANT_PUZZLE || checkEndResetFlg0(ERFLG0_FORCE_AUTO_JUMP)) && cLib_distanceAngleS(temp_r26, shape_angle.y) < 0x800) { + if (sp14 >= sp10 + && (!checkBootsOrArmorHeavy() || checkIronBallWaitAnime()) + && (mStickValue > 0.85f + || (checkIronBallWaitAnime() && mMoveValue > 0.85f) + || mProcID == PROC_WOLF_GIANT_PUZZLE + || checkEndResetFlg0(ERFLG0_FORCE_AUTO_JUMP) + ) + && cLib_distanceAngleS(temp_r26, shape_angle.y) < 0x800) + { if (var_r29) { current.pos.x = mLinkLinChk.GetCross().x; current.pos.z = mLinkLinChk.GetCross().z; @@ -10317,7 +10815,17 @@ BOOL daAlink_c::checkAutoJumpAction() { } } - if (!checkEndResetFlg0(ERFLG0_NOT_HANG) && mSpecialMode != 0x2B && var_r29 && dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 2 && sp28 < -mpHIO->mWallHang.m.hang_foot_pos_height && current.pos.y - mWaterY > sp18 && (fabsf(sp44.mNormal.y) <= 0.05f || (sp44.mNormal.y < 0.05f && var_r27 && getWallEdgePos(mLinkLinChk.GetCross(), &sp44, &sp58, mLinkLinChk.GetCrossP(), 0)))) { + if (!checkEndResetFlg0(ERFLG0_NOT_HANG) + && mMode != 0x2B + && var_r29 + && dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 2 + && sp28 < -mpHIO->mWallHang.m.hang_foot_pos_height + && current.pos.y - mWaterY > sp18 + && (fabsf(sp44.mNormal.y) <= 0.05f + || (sp44.mNormal.y < 0.05f && var_r27 && getWallEdgePos(mLinkLinChk.GetCross(), &sp44, &sp58, mLinkLinChk.GetCrossP(), 0)) + ) + ) + { current.pos.x = mLinkLinChk.GetCross().x; current.pos.z = mLinkLinChk.GetCross().z; @@ -10351,9 +10859,12 @@ BOOL daAlink_c::checkAutoJumpAction() { current.pos.x += field_0x3428 * spC; current.pos.z += field_0x3428 * sp8; - if (checkWolf() && cLib_distanceAngleS(cM_atan2s(spC, sp8), shape_angle.y) >= 0x4000) { - current.pos.x -= 75.0f * cM_ssin(shape_angle.y); - current.pos.z -= 75.0f * cM_scos(shape_angle.y); + if (checkWolf()) { + int var_r25 = cLib_distanceAngleS(cM_atan2s(spC, sp8), shape_angle.y); + if (var_r25 >= 0x4000) { + current.pos.x -= 75.0f * cM_ssin(shape_angle.y); + current.pos.z -= 75.0f * cM_scos(shape_angle.y); + } } } else { sp24 = mpHIO->mAutoJump.m.mFallInterpolation; @@ -10379,7 +10890,7 @@ BOOL daAlink_c::checkAutoJumpAction() { BOOL daAlink_c::checkCutJumpInFly() { if ((mEquipItem == 0x103 && checkResetFlg0(RFLG0_UNK_80)) || checkForceSwordSwing()) { - return procCutJumpInit(1); + return procCutJumpInit(TRUE); } return false; } @@ -10439,7 +10950,7 @@ BOOL daAlink_c::checkFrontWallTypeAction() { } } else if (!checkResetFlg0(RFLG0_UNK_8)) { if (!checkWolf()) { - if (checkNoResetFlg3(FLG3_UNK_400000) && abs((s16)(field_0x2fe2 - field_0x306e)) < 0x7800) { + if (checkNoResetFlg3(FLG3_UNK_400000) && abs((s16)(mMoveAngle - field_0x306e)) < 0x7800) { return 0; } @@ -10518,7 +11029,7 @@ int daAlink_c::checkItemActionInitStart() { return procCopyRodSwingInit(); } } else if (checkFishingRodItem(mEquipItem)) { - onResetFlg1(RFLG1_UNK_80); + onResetFlg1(RFLG0_FISHINGROD_USE_START); return 1; } else if (mEquipItem == fpcNm_ITEM_IRONBALL) { if (!checkIronBallAnime()) { @@ -10577,13 +11088,14 @@ void daAlink_c::cancelItemUseQuake(int param_0) { } } -int daAlink_c::cancelUpperItemReadyAnime(int param_0) { - if ((dComIfGp_getDoStatus() == 0x12 || param_0 != 0) && - ((param_0 == 0 && doTrigger()) || - (checkCanoeSlider() && - (subjectCancelTrigger() || checkEndResetFlg1(ERFLG1_UNK_20000000))))) +int daAlink_c::cancelUpperItemReadyAnime(BOOL param_0) { + if ((dComIfGp_getDoStatus() == BUTTON_STATUS_BACK || param_0) + && ((param_0 == 0 && doTrigger()) + || (checkCanoeSlider() && (subjectCancelTrigger() || checkEndResetFlg1(ERFLG1_CANOE_ITEM_CANCEL))) + ) + ) { - seStartSystem(0x6F); + seStartSystem(Z2SE_SY_ITEM_USE_CANCEL); if (mEquipItem == fpcNm_ITEM_IRONBALL) { mItemVar0.field_0x3018 = 8; @@ -10692,7 +11204,7 @@ BOOL daAlink_c::checkUpperItemAction() { if (field_0x2fa3 == 0) { resetUpperAnime(UPPER_2, 3.0f); } else { - if (checkEndResetFlg1(ERFLG1_UNK_1000000) && !checkWolf()) { + if (checkEndResetFlg1(ERFLG1_CHAIN_FORCE_PULL) && !checkWolf()) { return procFmChainStrongPullInit(); } @@ -10706,9 +11218,11 @@ BOOL daAlink_c::checkUpperItemAction() { } } - setChainGrabStatus(0x96); + setChainGrabStatus(BUTTON_STATUS_UNK_150); - if ((!checkWolf() && (checkUnderMove0BckNoArc(ANM_CHAIN_PULL) || checkUnderMove0BckNoArc(ANM_CHAIN_PULL_END))) || (checkWolf() && (checkUnderMove0BckNoArcWolf(WANM_CHAIN_PULL) || checkUnderMove0BckNoArcWolf(WANM_CHAIN_PULL_END)))) { + if ((!checkWolf() && (checkUnderMove0BckNoArc(ANM_CHAIN_PULL) || checkUnderMove0BckNoArc(ANM_CHAIN_PULL_END))) + || (checkWolf() && (checkUnderMove0BckNoArcWolf(WANM_CHAIN_PULL) || checkUnderMove0BckNoArcWolf(WANM_CHAIN_PULL_END)))) + { mNowAnmPackUpper[2].setRatio(0.0f); } else { mNowAnmPackUpper[2].setRatio(1.0f); @@ -10725,17 +11239,17 @@ BOOL daAlink_c::checkUpperItemAction() { } u8 btn_status; - if (field_0x33a8 > getGrabThrowRate() || checkAttentionLock()) { - btn_status = 0x13; + if (mStickValue > getGrabThrowRate() || checkAttentionLock()) { + btn_status = BUTTON_STATUS_THROW; } else { - btn_status = 0x14; + btn_status = BUTTON_STATUS_PLACE; } setBStatus(btn_status); setDoStatus(btn_status); if ((btn_status == dComIfGp_getDoStatus() && doTrigger()) || (btn_status == getBStatus() && swordTrigger())) { - if (btn_status == 0x13) { + if (btn_status == BUTTON_STATUS_THROW) { return procWolfGrabThrowInit(); } return procWolfGrabPutInit(); @@ -10756,7 +11270,7 @@ BOOL daAlink_c::checkUpperItemAction() { field_0x30f6 -= mpHIO->mDamage.mDamCaught.m.mInputFadeTime; } - if (field_0x30f6 < 0 || !checkNoResetFlg0(FLG0_DK_CAUGHT)) { + if (field_0x30f6 < 0 || !checkNoResetFlg0(FLG0_DK_CAUGHT2)) { voiceStart(Z2SE_AL_V_ZENTEN_FAIL_2); if (mLinkAcch.ChkGroundHit()) { @@ -10801,8 +11315,10 @@ BOOL daAlink_c::checkUpperItemAction() { void daAlink_c::orderPeep() { mPeepExitID = ((kytag05_class*)field_0x27f4)->getSceneListID(); - field_0x2ff2 = 20; + field_0x2ff2 = AREG_S(4) + 20; + fopAcM_orderOtherEvent(this, field_0x27f4, l_peepEventName, 0xFFFF, 1, 0); + if (checkWolf()) { procWolfWaitInit(); } else { @@ -10817,10 +11333,14 @@ int daAlink_c::orderTalk(int i_checkZTalk) { return 0; } - if ((dComIfGp_getDoStatus() == 0x1C || dComIfGp_getDoStatus() == 0x1B || - dComIfGp_getDoStatus() == 0x80 || dComIfGp_getDoStatus() == 0x3B || - dComIfGp_getDoStatus() == 0x3C || dComIfGp_getDoStatus() == 0x8) && - talkTrigger()) + if ((dComIfGp_getDoStatus() == BUTTON_STATUS_SPEAK + || dComIfGp_getDoStatus() == BUTTON_STATUS_LOOK + || dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_128 + || dComIfGp_getDoStatus() == BUTTON_STATUS_LISTEN + || dComIfGp_getDoStatus() == BUTTON_STATUS_DRINK + || dComIfGp_getDoStatus() == BUTTON_STATUS_CHECK + ) + && talkTrigger()) { fopAcM_orderTalkEvent(this, field_0x27f4, 0, 0); return 1; @@ -10828,10 +11348,8 @@ int daAlink_c::orderTalk(int i_checkZTalk) { if (!checkWolf() && checkRequestTalkActor(mAttList2, field_0x27f8)) { for (int i = 0; i < 2; i++) { - u8 item = dComIfGp_getSelectItem(i); - // check if pressed X or Y and if item on button is a trade item - if (checkTradeItem(item) && itemTriggerCheck(1 << i)) { + if (checkTradeItem(dComIfGp_getSelectItem(i)) && itemTriggerCheck(1 << i)) { fopAcM_orderTalkItemBtnEvent(itemTalkType[i], this, field_0x27f8, 0, 0); return 1; } @@ -10846,6 +11364,8 @@ int daAlink_c::orderTalk(int i_checkZTalk) { } static void* daAlink_searchBouDoor(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); + if (fopAcM_GetName(i_actor) == PROC_NPC_BOU && ((daNpc_Bou_c*)i_actor)->speakTo()) { return i_actor; } @@ -10854,6 +11374,8 @@ static void* daAlink_searchBouDoor(fopAc_ac_c* i_actor, void* i_data) { } static void* daAlink_searchKolin(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); + if (fopAcM_GetName(i_actor) == PROC_NPC_KOLIN && ((daNpc_Kolin_c*)i_actor)->orderNoRideEvt()) { return i_actor; } @@ -10862,26 +11384,27 @@ static void* daAlink_searchKolin(fopAc_ac_c* i_actor, void* i_data) { } int daAlink_c::orderZTalk() { - if ((!checkReinRide() && !checkModeFlg(0x40000) && !checkMagneBootsOn() - && (!mLinkAcch.ChkGroundHit() || checkModeFlg(0x70C52))) || mThrowBoomerangAcKeep.getActor() != NULL - || dComIfGp_checkPlayerStatus0(0, 0x8000000) || mProcID == PROC_CRAWL_END || checkHorseZelda() - || checkCloudSea() || checkStageName("D_MN08A") || (checkStageName("D_MN09A") - && ((fopAcM_GetRoomNo(this) == 50 && dComIfG_play_c::getLayerNo(0) == 0) - || fopAcM_GetRoomNo(this) == 51)) || (checkMagneBootsOn() && (!checkStageName("D_MN04B") - || !cBgW_CheckBGround(mMagneBootsTopVec.y))) - /* dSv_event_flag_c::F_0800 - Cutscene - After returning to Ordon Woods, until Midna comes out of the shadows - (If 800 is ON, Midna can't be called) */ - || dComIfGs_isEventBit(0x6140)) { + if ((!checkReinRide() && !checkModeFlg(0x40000) && !checkMagneBootsOn() && (!mLinkAcch.ChkGroundHit() || checkModeFlg(0x70C52))) + || mThrowBoomerangAcKeep.getActor() != NULL + || dComIfGp_checkPlayerStatus0(0, 0x8000000) + || mProcID == PROC_CRAWL_END + || checkHorseZelda() + || checkCloudSea() + || checkStageName("D_MN08A") + || (checkStageName("D_MN09A") && ((fopAcM_GetRoomNo(this) == 50 && dComIfG_play_c::getLayerNo(0) == 0) || fopAcM_GetRoomNo(this) == 51)) + || (checkMagneBootsOn() && (!checkStageName("D_MN04B") || !cBgW_CheckBGround(mMagneBootsTopVec.y))) + || dComIfGs_isEventBit(dSv_event_flag_c::F_0800)) + { return 0; } if (checkMidnaRide()) { fopAc_ac_c* zhint = dComIfGp_att_getZHint(); if (zhint != NULL) { - setMidnaTalkStatus(8); + setMidnaTalkStatus(BUTTON_STATUS_CHECK); } - dMeter2Info_onUseButton(0x800); + dMeter2Info_onUseButton(METER2_USEBUTTON_Z); if (midnaTalkTrigger() #if DEBUG @@ -10915,11 +11438,11 @@ int daAlink_c::checkNormalAction() { int wall_grab_status = getWallGrabStatus(); if (wallGrabTrigger()) { - if (wall_grab_status == 0x15) { + if (wall_grab_status == BUTTON_STATUS_GRAB) { return procCoPushPullWaitInit(1); } - if (wall_grab_status == 0x96 && searchFmChainPos()) { + if (wall_grab_status == BUTTON_STATUS_UNK_150 && searchFmChainPos()) { if (checkWolf()) { return procWolfChainUpInit(); } else { @@ -10928,17 +11451,17 @@ int daAlink_c::checkNormalAction() { } } - if (orderTalk(1)) { + if (orderTalk(TRUE)) { return 1; } if (doTrigger()) { - if (dComIfGp_getDoStatus() == 0x89) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_137) { orderPeep(); return 1; } - if (dComIfGp_getDoStatus() == 7) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_ENTER) { if (checkWolf()) { return procWolfLieStartInit(1); } else { @@ -10946,19 +11469,19 @@ int daAlink_c::checkNormalAction() { } } - if (dComIfGp_getDoStatus() == 12) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_PICK_UP) { return procWolfGrabUpInit(); } - if (dComIfGp_getDoStatus() == 0x7B) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_123) { return procWolfChainReadyInit(); } - if (dComIfGp_getDoStatus() == 0x47) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_ROLL) { return procWolfPushInit(); } - if (dComIfGp_getDoStatus() == 0x17) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_GET_ON) { if (fopAcM_GetName(field_0x27f4) == PROC_Obj_IceLeaf) { return procBoardRideInit(); } @@ -10980,7 +11503,7 @@ int daAlink_c::checkNormalAction() { } } - if (dComIfGp_getDoStatus() == 0x20) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_32) { if (checkWolf()) { return procWolfHangReadyInit(); } else { @@ -10992,7 +11515,7 @@ int daAlink_c::checkNormalAction() { } } - if (dComIfGp_getDoStatus() == 6) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_OPEN) { if (mAttList->mType == fopAc_attn_DOOR_e) { if (!checkStageName("F_SP103") || !fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchBouDoor, NULL)) @@ -11007,15 +11530,15 @@ int daAlink_c::checkNormalAction() { return 1; } - if (dComIfGp_getDoStatus() == 0x2B) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_PICK) { return procGrassWhistleGetInit(); } - if (dComIfGp_getDoStatus() == 0x38) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_PET) { return procGoatStrokeInit(); } - if (dComIfGp_getDoStatus() == 0x63) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_STRIKE) { if (fopAcM_GetName(field_0x27f4) == PROC_Tag_Lv6Gate) { static_cast(field_0x27f4)->stabMasterSword(); } else { @@ -11026,7 +11549,7 @@ int daAlink_c::checkNormalAction() { return 1; } - if (dComIfGp_getDoStatus() == 0x91) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_145) { onNoResetFlg0(FLG0_UNK_10000000); if (field_0x27f4->current.pos.abs2XZ(current.pos) < getGoatCatchDistance2()) { @@ -11036,10 +11559,10 @@ int daAlink_c::checkNormalAction() { return procGoatCatchInit(field_0x27f4, 0.0f); } } - } else if (dComIfGp_getDoStatus() == 0x98) { + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_152) { return procInsectCatchInit(); - } else if (dComIfGp_getDoStatus() == 0x1F || dComIfGp_getDoStatus() == 0x39 || - dComIfGp_getDoStatus() == 0x34) + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_31 || dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_57 || + dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_52) { if (checkWolf()) { return procWolfGrabUpInit(); @@ -11050,35 +11573,35 @@ int daAlink_c::checkNormalAction() { return procGrabReadyInit(); } } - } else if (dComIfGp_getDoStatus() == 0x99) { + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_153) { return procHangLeverDownInit(); - } else if (dComIfGp_getDoStatus() == 0x30) { + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_FINISH) { if (checkWolf()) { return procWolfDownAttackInit(); } else { return checkDoCutAction(); } - } else if (dComIfGp_getDoStatus() == 0x77) { + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_HELM_SPLITTER) { if (checkWolf()) { return procWolfJumpAttackInit(1); } else { return checkDoCutAction(); } - } else if (dComIfGp_getDoStatus() == 0x8B) { + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_139) { return procWolfJumpAttackInit(1); - } else if (dComIfGp_getDoStatus() == 0x62) { + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_DRAW) { changeCutFast(); return 1; - } else if (dComIfGp_getDoStatus() == 0x86) { + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_134) { return checkDoCutAction(); - } else if (dComIfGp_getDoStatus() == 5) { + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_HOWL) { return procWolfHowlDemoInit(); - } else if (dComIfGp_getDoStatus() == 0x45) { + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_SNIFF) { return procWolfGetSmellInit(); - } else if (dComIfGp_getDoStatus() == 0x93) { + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_147) { return procWolfTagJumpInit(field_0x27f4); } - } else if (checkNoResetFlg0(FLG0_UNK_10000000) && dComIfGp_getDoStatus() == 0x91) { + } else if (checkNoResetFlg0(FLG0_UNK_10000000) && dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_145) { if (field_0x27f4->current.pos.abs2XZ(current.pos) < getGoatCatchDistance2()) { if (checkWolf()) { return procWolfGanonCatchInit(); @@ -11092,9 +11615,11 @@ int daAlink_c::checkNormalAction() { } bool daAlink_c::checkReadyItem() { + #if PLATFORM_GCN if (mEquipItem == fpcNm_ITEM_NONE) { return false; } + #endif return getReadyItem() == mEquipItem; } @@ -11132,9 +11657,9 @@ BOOL daAlink_c::checkItemAction() { if (mEquipItem == 0x103) { daPy_frameCtrl_c* frame_ctrl = &mUpperFrameCtrl[2]; - if ((checkUpperAnime(0x80) && frame_ctrl->getFrame() <= mpHIO->mCut.mCutDashLeft.m.mCutAnm.mCancelFrame) || - (checkUpperAnime(0x81) && frame_ctrl->getFrame() <= mpHIO->mCut.mCutDashRight.m.mCutAnm.mCancelFrame) || - (checkUpperAnime(0x82) && frame_ctrl->getFrame() <= mpHIO->mCut.mCutDashCharge.m.mCutAnm.mCancelFrame) || + if ((checkUpperAnime(dRes_ID_ALANM_BCK_CUTDL_e) && frame_ctrl->getFrame() <= mpHIO->mCut.mCutDashLeft.m.mCutAnm.mCancelFrame) || + (checkUpperAnime(dRes_ID_ALANM_BCK_CUTDR_e) && frame_ctrl->getFrame() <= mpHIO->mCut.mCutDashRight.m.mCutAnm.mCancelFrame) || + (checkUpperAnime(dRes_ID_ALANM_BCK_CUTDT_e) && frame_ctrl->getFrame() <= mpHIO->mCut.mCutDashCharge.m.mCutAnm.mCancelFrame) || checkModeFlg(0x40000)) { return false; @@ -11160,7 +11685,7 @@ BOOL daAlink_c::checkItemAction() { if (checkNoResetFlg2(FLG2_UNK_4)) { offNoResetFlg2(FLG2_UNK_4); - setUpperAnimeBase(0x83); + setUpperAnimeBase(dRes_ID_ALANM_BCK_CUTDTP_e); return true; } @@ -11177,7 +11702,7 @@ BOOL daAlink_c::checkItemAction() { } if (swordSwingTrigger() || checkComboReserb()) { - if (checkNoResetFlg2(FLG2_UNK_2)) { + if (checkNoResetFlg2(FLG2_COMBO_RESERB)) { clearComboReserb(); if (checkBoardRide()) { @@ -11207,28 +11732,28 @@ BOOL daAlink_c::checkItemAction() { return checkCutAction(); } } else if (checkFishingRodItem(mEquipItem) && mLinkAcch.ChkGroundHit()) { - if (checkNoResetFlg2(FLG2_UNK_20000000)) { + if (checkNoResetFlg2(FLG2_FISHING_CAST_WAIT)) { return procFishingCastInit(); } } else if (mEquipItem == 0x102) { if (doTrigger()) { - if (dComIfGp_getDoStatus() == 0x13) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_THROW) { setThrowBoomerangAnime(); return true; } - if (dComIfGp_getDoStatus() == 0x14) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_PLACE) { return procPickPutInit(0); } } - } else if (doTrigger() && dComIfGp_getDoStatus() == 0x2A && mCopyRodAcKeep.getActor() != NULL) { + } else if (doTrigger() && dComIfGp_getDoStatus() == BUTTON_STATUS_QUIT && mCopyRodAcKeep.getActor() != NULL) { ((daCrod_c*)mCopyRodAcKeep.getActor())->offControll(); resetUpperAnime(UPPER_2, 3.0f); return true; } if (!checkFishingRodItem(mEquipItem) || !(mWaterY - current.pos.y > 70.0f)) { - onResetFlg1(RFLG1_UNK_200); + onResetFlg1(RFLG0_FISHINGROD_USE_ACCEPT); if (checkReadyItem() && (itemTrigger() || (checkBoomerangCatchAnime() && itemButton()))) { int var_r28 = checkItemActionInitStart(); @@ -11238,12 +11763,16 @@ BOOL daAlink_c::checkItemAction() { } } - /* dSv_event_flag_c::F_0338 - Secret techniques - Obtained 1 secret techinques - Shield attack */ - if (((dComIfGs_isEventBit(0x2908) - || checkNoResetFlg3(FLG3_UNK_8)) && checkGuardActionChange() && !checkUpperReadyThrowAnime() - && !checkModeFlg(0x70C52) && checkShieldGet() && !checkNotBattleStage()) - && ((mLinkAcch.ChkGroundHit() || checkMagneBootsOn()) && dComIfGp_getRStatus() == 0)) { - setRStatus(0x3A); + if (((dComIfGs_isEventBit(dSv_event_flag_c::F_0338) || checkNoResetFlg3(FLG3_TRANING_SHIELD_ATTACK)) + && checkGuardActionChange() + && !checkUpperReadyThrowAnime() + && !checkModeFlg(0x70C52) + && checkShieldGet() + && !checkNotBattleStage() + ) && ((mLinkAcch.ChkGroundHit() || checkMagneBootsOn()) && dComIfGp_getRStatus() == 0) + ) + { + setRStatus(BUTTON_STATUS_SHIELD_ATTACK); if (spActionTrigger()) { return procGuardAttackInit(); @@ -11260,7 +11789,7 @@ BOOL daAlink_c::checkRAction() { BOOL daAlink_c::checkMoveDoAction() { if (doTrigger()) { - if (dComIfGp_getDoStatus() == 0x19) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_JUMP) { if (checkWolf()) { return procWolfSideStepInit(0); } @@ -11273,15 +11802,15 @@ BOOL daAlink_c::checkMoveDoAction() { return procSideStepInit(direction); } - if (dComIfGp_getDoStatus() == 0x79) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_121) { if (!checkAttentionLock() && checkInputOnR()) { - shape_angle.y = field_0x2fe2; + shape_angle.y = mMoveAngle; } return procFrontRollInit(); } - if (dComIfGp_getDoStatus() == 0x9) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_DASH) { return procWolfDashInit(); } } @@ -11290,8 +11819,10 @@ BOOL daAlink_c::checkMoveDoAction() { } BOOL daAlink_c::checkSideRollAction(int param_0) { - if (checkNotJumpSinkLimit() || checkHeavyStateOn(1, 1) || !checkInputOnR() || - !checkCutBackState()) + if (checkNotJumpSinkLimit() + || checkHeavyStateOn(TRUE, TRUE) + || !checkInputOnR() + || !checkCutBackState()) { return false; } @@ -11300,9 +11831,7 @@ BOOL daAlink_c::checkSideRollAction(int param_0) { return procSideRollInit(param_0); } - if (checkEnemyGroup(mTargetedActor) && - mTargetedActor->current.pos.abs2XZ(current.pos) < 250000.0f) - { + if (checkEnemyGroup(mTargetedActor) && mTargetedActor->current.pos.abs2XZ(current.pos) < SQUARE(500.0f)) { return procTurnMoveInit(param_0); } @@ -11310,12 +11839,15 @@ BOOL daAlink_c::checkSideRollAction(int param_0) { } BOOL daAlink_c::checkNoUpperAnime() const { - return checkNoSetUpperAnime() || checkSwimMoveHandAnime() || checkWindDashAnime() || - checkSwordTwirlAnime() || checkKandelaarEquipAnime(); + return checkNoSetUpperAnime() + || checkSwimMoveHandAnime() + || checkWindDashAnime() + || checkSwordTwirlAnime() + || checkKandelaarEquipAnime(); } BOOL daAlink_c::checkOneHandItemEquipAnime() const { - return checkUpperAnime(0x247) || checkUpperAnime(0x248); + return checkUpperAnime(dRes_ID_ALANM_BCK_TAKEL_e) || checkUpperAnime(dRes_ID_ALANM_BCK_TAKER_e); } BOOL daAlink_c::checkItemEquipAnime() const { @@ -11327,23 +11859,23 @@ BOOL daAlink_c::checkEquipAnime() const { } BOOL daAlink_c::checkWindDashAnime() const { - return checkUpperAnime(0x2B7) || (checkUpperAnime(0xCE) && mProcID != PROC_SLIDE); + return checkUpperAnime(dRes_ID_ALANM_BCK_WL_DASHWIND_e) || (checkUpperAnime(dRes_ID_ALANM_BCK_DASHWIND_e) && mProcID != PROC_SLIDE); } BOOL daAlink_c::checkSwordTwirlAnime() const { - return checkUpperAnime(0x40) || checkUpperAnime(0x3F); + return checkUpperAnime(dRes_ID_ALANM_BCK_ATTWIRLR_e) || checkUpperAnime(dRes_ID_ALANM_BCK_ATTWIRLL_e); } -void daAlink_c::swordEquip(int param_0) { +void daAlink_c::swordEquip(BOOL param_0) { if (checkSwordGet()) { field_0x2fde = 0x103; if (checkReinRide()) { - setUpperAnimeParam(0x261, UPPER_2, &mpHIO->mCut.m.mEquipAnm); + setUpperAnimeParam(dRes_ID_ALANM_BCK_WAITHATOHS_e, UPPER_2, &mpHIO->mCut.m.mEquipAnm); offNoResetFlg3(FLG3_UNK_8000); } else { u32 var_r29 = checkNoResetFlg0(FLG0_UNK_1000000); - setUpperAnimeParam(0x255, UPPER_2, &mpHIO->mCut.m.mEquipAnm); + setUpperAnimeParam(dRes_ID_ALANM_BCK_WAITATOS_e, UPPER_2, &mpHIO->mCut.m.mEquipAnm); if (var_r29) { mUpperFrameCtrl[2].setFrame(12); @@ -11356,8 +11888,8 @@ void daAlink_c::swordEquip(int param_0) { } } - setFacePriTexture(FTANM_UNK_2D); - setFacePriBck(0x15E); + setFacePriTexture(FTANM_WAITATOS); + setFacePriBck(dRes_ID_ALANM_BCK_FWAITATOS_e); if (checkEventRun() && checkStageName("F_SP102") && fopAcM_GetRoomNo(this) == 0 && dComIfGp_getStartStageLayer() == 0) { mUpperFrameCtrl[2].setRate(-0.8f); @@ -11381,13 +11913,13 @@ void daAlink_c::swordUnequip() { anm_speed = mpHIO->mCut.m.mUnequipAnm.mSpeed; } - u16 anm_id = checkReinRide() ? (u16)0x261 : (u16)0x255; + u16 anm_id = checkReinRide() ? (u16)dRes_ID_ALANM_BCK_WAITHATOHS_e : (u16)dRes_ID_ALANM_BCK_WAITATOS_e; setUpperAnime(anm_id, UPPER_2, anm_speed, mpHIO->mCut.m.mUnequipAnm.mStartFrame, mpHIO->mCut.m.mUnequipAnm.mEndFrame, mpHIO->mCut.m.mUnequipAnm.mInterpolation); - setFacePriTexture(FTANM_UNK_2D); - setFaceBck(0x15E, 1, 0xFFFF); + setFacePriTexture(FTANM_WAITATOS); + setFacePriBck(dRes_ID_ALANM_BCK_FWAITATOS_e); } void daAlink_c::itemEquip(u16 i_itemID) { @@ -11401,8 +11933,8 @@ void daAlink_c::itemEquip(u16 i_itemID) { /** * This handles setting the animation for both equipping and unequipping items - * When `param_1` is positive, it will play the unequip animation - * When `param_1` is negative, it will play the equip animation + * When `i_playSpeed` is positive, it will play the unequip animation + * When `i_playSpeed` is negative, it will play the equip animation * */ void daAlink_c::itemUnequip(u16 i_itemID, f32 i_playSpeed) { @@ -11412,19 +11944,23 @@ void daAlink_c::itemUnequip(u16 i_itemID, f32 i_playSpeed) { if (i_itemID == fpcNm_ITEM_BOOMERANG || i_itemID == fpcNm_ITEM_COPY_ROD || i_itemID == fpcNm_ITEM_KANTERA || i_itemID == fpcNm_ITEM_HOOKSHOT || checkBottleItem(i_itemID)) { - anm_id = 0x247; + anm_id = dRes_ID_ALANM_BCK_TAKEL_e; anm_data = &mpHIO->mItem.m.mOneHandEquipAnm; } else if (checkBowAndSlingItem(i_itemID)) { - anm_id = checkBowGrabLeftHand() ? (u16)0x247 : (u16)0x248; + if (checkBowGrabLeftHand()) { + anm_id = (u16)dRes_ID_ALANM_BCK_TAKEL_e; + } else { + anm_id = (u16)dRes_ID_ALANM_BCK_TAKER_e; + } anm_data = &mpHIO->mItem.m.mOneHandEquipAnm; } else { - anm_id = 0x245; + anm_id = dRes_ID_ALANM_BCK_TAKE_e; anm_data = &mpHIO->mItem.m.mTwoHandEquipAnm; } f32 anm_speed; if (i_playSpeed > 0.0f && checkFastUnequip()) { - if (anm_id == 0x245) { + if (anm_id == dRes_ID_ALANM_BCK_TAKE_e) { anm_speed = mpHIO->mItem.m.mTwoHandReleaseAnmSpeed; } else { anm_speed = mpHIO->mItem.m.mOneHandReleaseAnmSpeed; @@ -11441,8 +11977,8 @@ bool daAlink_c::checkFastUnequip() { return mProcID == PROC_PREACTION_UNEQUIP || mProcID == PROC_HORSE_GETOFF || checkEventRun(); } -void daAlink_c::allUnequip(int param_0) { - if (checkNoResetFlg2(FLG2_UNK_1) && param_0 != 0 && !checkCanoeRide() && +void daAlink_c::allUnequip(BOOL param_0) { + if (checkNoResetFlg2(FLG2_UNK_1) && param_0 && !checkCanoeRide() && mEquipItem != fpcNm_ITEM_KANTERA) { for (u8 i = 0; i < 2; i++) { @@ -11456,7 +11992,7 @@ void daAlink_c::allUnequip(int param_0) { } else if (mEquipItem == 0x103) { swordUnequip(); } else if (mEquipItem == 0x102) { - deleteEquipItem(0, 0); + deleteEquipItem(FALSE, FALSE); field_0x2060->initOldFrameMorf(5.0f, 0, 35); } else { itemUnequip(mEquipItem, 1.0f); @@ -11466,20 +12002,33 @@ void daAlink_c::allUnequip(int param_0) { } BOOL daAlink_c::checkItemChangeFromButton() { - if (checkModeFlg(4) && !checkEquipAnime() && !checkBoomerangThrowAnime() && - !checkCopyRodThrowAnime() && !checkKandelaarSwingAnime() && !checkKandelaarSwingAnime()) + if (checkModeFlg(4) + && !checkEquipAnime() + && !checkBoomerangThrowAnime() + && !checkCopyRodThrowAnime() + && !checkKandelaarSwingAnime() + && !checkKandelaarSwingAnime()) { - if (dComIfGs_getSelectEquipSword() != fpcNm_ITEM_NONE && !checkNotBattleStage() && - !checkCanoeRide() && (!checkModeFlg(0x40000) || checkEquipHeavyBoots()) && - mEquipItem != 0x103 && swordTrigger()) + if ( + #if PLATFORM_GCN + dComIfGs_getSelectEquipSword() != fpcNm_ITEM_NONE && + #endif + !checkNotBattleStage() + && !checkCanoeRide() + && (!checkModeFlg(0x40000) || checkEquipHeavyBoots()) + && mEquipItem != 0x103 + && swordTrigger()) { - if (checkEndResetFlg1(ERFLG1_UNK_40000000)) { + if (checkEndResetFlg1(ERFLG1_SWORD_TRIGGER_NON)) { return 0; } - swordEquip(1); - } else if (checkCanoeRide() && !checkStageName("F_SP103") && !checkCanoeSlider() && - !checkFisingRodLure() && swordTrigger()) + swordEquip(TRUE); + } else if (checkCanoeRide() + && !checkStageName("F_SP103") + && !checkCanoeSlider() + && !checkFisingRodLure() + && swordTrigger()) { itemEquip(0x105); } else { @@ -11487,11 +12036,12 @@ BOOL daAlink_c::checkItemChangeFromButton() { for (i = 0; i < 2; i++) { int proc_type = checkNewItemChange(i); if (proc_type != 0 && itemTriggerCheck(1 << i)) { - return changeItemTriggerKeepProc(i, proc_type); + BOOL var_r27 = changeItemTriggerKeepProc(i, proc_type); + return var_r27; } } - if (doTrigger() && dComIfGp_getDoStatus() == 4) { + if (doTrigger() && dComIfGp_getDoStatus() == BUTTON_STATUS_PUT_AWAY) { if (mEquipItem != fpcNm_ITEM_KANTERA && checkNoResetFlg2(FLG2_UNK_1)) { offKandelaarModel(); } else if (mSwordFlourishTimer != 0 && mEquipItem == 0x103 && @@ -11499,7 +12049,7 @@ BOOL daAlink_c::checkItemChangeFromButton() { { return procSwordUnequipSpInit(); } else { - allUnequip(1); + allUnequip(TRUE); } } else if (mEquipItem == fpcNm_ITEM_NONE && mThrowBoomerangAcKeep.getActor() == NULL && !checkCanoeRide() && checkNoUpperAnime() && checkNoResetFlg2(FLG2_UNK_1)) @@ -11515,12 +12065,8 @@ BOOL daAlink_c::checkItemChangeFromButton() { } else if (mEquipItem != 0x103 && mEquipItem != fpcNm_ITEM_NONE && mEquipItem != 0x10B && mEquipItem != 0x102 && (!checkCanoeRide() || !checkFisingRodLure())) { - if (!checkEventRun() || - strcmp(dComIfGp_getEventManager().getRunEventName(), "ANGER")) - { - if (strcmp(dComIfGp_getEventManager().getRunEventName(), "ANGER2") && - checkItemSetButton(mEquipItem) == 2) - { + if (!checkEventRun() || strcmp(dComIfGp_getEventManager().getRunEventName(), "ANGER") != 0) { + if (strcmp(dComIfGp_getEventManager().getRunEventName(), "ANGER2") != 0 && checkItemSetButton(mEquipItem) == 2) { allUnequip(1); } } @@ -11545,14 +12091,16 @@ BOOL daAlink_c::checkNextActionFromButton() { } if (checkModeFlg(0x400)) { - if (dComIfGp_getDoStatus() == 0 && checkCanoeRide() && checkFisingRodLure()) { - setDoStatus(4); + if (dComIfGp_getDoStatus() == BUTTON_STATUS_NONE && checkCanoeRide() && checkFisingRodLure()) { + setDoStatus(BUTTON_STATUS_PUT_AWAY); } } else if (!checkModeFlg(0x40000)) { - if ((checkWolf() && !checkWolfGrabAnime()) || - (!checkWolf() && getCopyRodControllActor() == NULL && - (checkEquipAnime() || checkNoResetFlg0(FLG0_UNK_1000000) || checkUpperGuardAnime() || - checkIronBallWaitAnime() || checkNoUpperAnime()))) + if ((checkWolf() && !checkWolfGrabAnime()) + || (!checkWolf() + && getCopyRodControllActor() == NULL + && (checkEquipAnime() || checkNoResetFlg0(FLG0_UNK_1000000) || checkUpperGuardAnime() || checkIronBallWaitAnime() || checkNoUpperAnime()) + ) + ) { decideDoStatus(); @@ -11591,7 +12139,7 @@ BOOL daAlink_c::checkNextActionFromButton() { BOOL daAlink_c::checkGroundSpecialMode() { if (mLinkAcch.ChkGroundHit() && !checkModeFlg(MODE_PLAYER_FLY) && !checkMagneBootsOn() && - checkEndResetFlg0(ERFLG0_UNK_2)) + checkEndResetFlg0(ERFLG0_FORCE_WOLF_CHANGE)) { return procCoMetamorphoseInit(); } @@ -11604,7 +12152,7 @@ BOOL daAlink_c::checkGroundSpecialMode() { return procGoatMoveInit(); } - if (mSpecialMode == 1) { + if (mMode == 1) { return procSumouReadyInit(); } @@ -11620,12 +12168,12 @@ BOOL daAlink_c::checkGroundSpecialMode() { return 1; } - fopAc_ac_c* actor = checkGoronRide(); - if (actor != NULL) { - return procGoronRideWaitInit(actor); + fopAc_ac_c* goronActor = checkGoronRide(); + if (goronActor != NULL) { + return procGoronRideWaitInit(goronActor); } - if (checkEndResetFlg1(ERFLG1_UNK_1)) { + if (checkEndResetFlg1(ERFLG1_NS_SCREAM)) { return procScreamWaitInit(); } @@ -11641,7 +12189,7 @@ int daAlink_c::commonCheckNextAction(int param_0) { } int daAlink_c::checkNextAction(int param_0) { - f32 temp_f31 = field_0x594; + f32 prev_maxSpeed = mMaxSpeed; if (checkDeadAction(1)) { return 1; @@ -11651,18 +12199,16 @@ int daAlink_c::checkNextAction(int param_0) { return 1; } - u32 procID = mProcID; - if (procID != PROC_MOVE_TURN && (param_0 == 0 || checkInputOnR()) && - (procID != PROC_HOOKSHOT_MOVE || checkHookshotWait())) + if (mProcID != PROC_MOVE_TURN && (param_0 == 0 || checkInputOnR()) && + (mProcID != PROC_HOOKSHOT_MOVE || checkHookshotWait())) { if (mTargetedActor != NULL || checkAttentionLock()) { setSpeedAndAngleAtn(); - } else if (((!checkUpperReadyThrowAnime() || mFastShotTime != 0) || - (checkBoomerangThrowAnime() && - (mThrowBoomerangAcKeep.getActor() != NULL || mEquipItem == 0x102 || - checkNoResetFlg1(FLG1_UNK_2)))) || - (checkCopyRodThrowAnime() && - (mCopyRodAcKeep.getActor() != NULL || checkNoResetFlg1(FLG1_UNK_10000)))) + } else if (((!checkUpperReadyThrowAnime() || mFastShotTime != 0) + || (checkBoomerangThrowAnime() + && (mThrowBoomerangAcKeep.getActor() != NULL || mEquipItem == 0x102 || checkNoResetFlg1(FLG1_UNK_2)) + ) + ) || (checkCopyRodThrowAnime() && (mCopyRodAcKeep.getActor() != NULL || checkNoResetFlg1(FLG1_UNK_10000)))) { setSpeedAndAngleNormal(); } @@ -11670,19 +12216,19 @@ int daAlink_c::checkNextAction(int param_0) { setFrontWallType(); - bool attention_state = checkAttentionState(); - if (attention_state) { + bool isAttention = checkAttentionState(); + if (isAttention) { if (checkFmChainGrabAnime()) { - field_0x594 = 13.0f; + mMaxSpeed = 13.0f; } else if (mTargetedActor != NULL) { - field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed; + mMaxSpeed = mpHIO->mAtnMove.m.mMaxSpeed; } else { - field_0x594 = mpHIO->mNoActAtnMove.m.mMaxSpeed; + mMaxSpeed = mpHIO->mNoActAtnMove.m.mMaxSpeed; } } else if (checkSlope()) { - field_0x594 = mpHIO->mSlide.m.mMaxClimbSpeed; + mMaxSpeed = mpHIO->mSlide.m.mMaxClimbSpeed; } else { - field_0x594 = mpHIO->mMove.m.mMaxSpeed; + mMaxSpeed = mpHIO->mMove.m.mMaxSpeed; } if (checkEndResetFlg0(ERFLG0_UNK_100000) && mLinkAcch.ChkGroundHit() && @@ -11700,12 +12246,12 @@ int daAlink_c::checkNextAction(int param_0) { } if (param_0 != 0 && !checkInputOnR() && !checkEquipAnime()) { - field_0x594 = temp_f31; + mMaxSpeed = prev_maxSpeed; return 0; } int ret; - if (attention_state) { + if (isAttention) { if (checkBowAnime()) { ret = checkNextActionBow(); } else if (checkBoomerangAnimeAndReturnWait() && mEquipItem != 0x102) { @@ -11716,7 +12262,7 @@ int daAlink_c::checkNextAction(int param_0) { ret = checkNextActionHookshot(); } else if (checkIronBallAnime()) { ret = checkNextActionIronBall(); - } else if (mTargetedActor != NULL || mDemo.getDemoMode() == 0x17) { + } else if (mTargetedActor != NULL || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_23_e) { if (checkZeroSpeedF()) { ret = procAtnActorWaitInit(); } else { @@ -11731,7 +12277,7 @@ int daAlink_c::checkNextAction(int param_0) { field_0x2f98 = 4; if (checkZeroSpeedF()) { - if (cLib_distanceAngleS(field_0x2fe2, current.angle.y) > 0x7800 && checkInputOnR()) { + if (cLib_distanceAngleS(mMoveAngle, current.angle.y) > 0x7800 && checkInputOnR()) { ret = procWaitTurnInit(); if (!ret && !checkEventRun()) { ret = checkWaitAction(); @@ -11741,8 +12287,8 @@ int daAlink_c::checkNextAction(int param_0) { } } else if (mProcID == PROC_MOVE_TURN && current.angle.y != shape_angle.y) { ret = procMoveTurnInit(0); - } else if (checkInputOnR() && cLib_distanceAngleS(field_0x2fe2, current.angle.y) > 0x7800) { - if (speedF / field_0x594 > mpHIO->mMove.m.mSlideThresholdSpeed && + } else if (checkInputOnR() && cLib_distanceAngleS(mMoveAngle, current.angle.y) > 0x7800) { + if (speedF / mMaxSpeed > mpHIO->mMove.m.mSlideThresholdSpeed && mGndPolySpecialCode != dBgW_SPCODE_ICE && !checkGrabAnime() && getDirectionFromAngle(mPrevStickAngle - mStickAngle) == DIR_BACKWARD) { @@ -11750,9 +12296,7 @@ int daAlink_c::checkNextAction(int param_0) { } else { ret = procMoveTurnInit(1); } - } else if (checkInputOnR() && - getDirectionFromAngle(field_0x2fe2 - current.angle.y) == DIR_BACKWARD) - { + } else if (checkInputOnR() && getDirectionFromCurrentAngle() == DIR_BACKWARD) { ret = procMoveTurnInit(1); } else { ret = procMoveInit(); @@ -11801,7 +12345,12 @@ void daAlink_c::commonChangeItem() { onNoResetFlg1(FLG1_UNK_40000); - if (!checkEventRun() && !checkNoResetFlg1(FLG1_UNK_40) && (mEquipItem != 0x103 || !checkNoResetFlg3(FLG3_UNK_8000)) && !checkFishingRodAndLureItem() && (checkAttentionLock() || mEquipItem != 0x103 || var_r30)) { + if (!checkEventRun() + && !checkNoResetFlg1(FLG1_UNK_40) + && (mEquipItem != 0x103 || !checkNoResetFlg3(FLG3_UNK_8000)) + && !checkFishingRodAndLureItem() + && (checkAttentionLock() || mEquipItem != 0x103 || var_r30)) + { onResetFlg0(RFLG0_UNK_80); } @@ -11914,16 +12463,16 @@ void daAlink_c::setItemAction() { } else { const daAlinkHIO_cutDash_c1* cut_hio; - if (checkUpperAnime(0x80)) { + if (checkUpperAnime(dRes_ID_ALANM_BCK_CUTDL_e)) { cut_hio = &mpHIO->mCut.mCutDashLeft.m; - } else if (checkUpperAnime(0x81)) { + } else if (checkUpperAnime(dRes_ID_ALANM_BCK_CUTDR_e)) { cut_hio = &mpHIO->mCut.mCutDashRight.m; } else { cut_hio = &mpHIO->mCut.mCutDashCharge.m; } if (frame_ctrl->getFrame() >= cut_hio->mAttackStartFrame && frame_ctrl->getFrame() < cut_hio->mAttackEndFrame) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(Z2SE_AL_SWORD_SWING_S); } @@ -11933,7 +12482,7 @@ void daAlink_c::setItemAction() { if (!checkDashAnime() && mProcID != PROC_BOARD_CUT) { clearComboReserb(); } else if (field_0x2fce == 0 && swordSwingTrigger()) { - onNoResetFlg2(FLG2_UNK_2); + onNoResetFlg2(FLG2_COMBO_RESERB); } offNoResetFlg2(FLG2_UNK_4); @@ -11966,24 +12515,27 @@ BOOL daAlink_c::checkNextActionFromCrouch(int param_0) { } int daAlink_c::checkUpperReadyThrowAnime() const { - return checkBoomerangAnime() || checkCopyRodAnime() || checkHookshotAnime() || - checkIronBallAnime() || checkBowAnime(); + return checkBoomerangAnime() + || checkCopyRodAnime() + || checkHookshotAnime() + || checkIronBallAnime() + || checkBowAnime(); } void daAlink_c::getBodyAngleXBasePos(cXyz* o_pos) { - int mtx_id; + int jointNo; if (mProcID == PROC_HOOKSHOT_WALL_SHOOT || mProcID == PROC_HOOKSHOT_ROOF_SHOOT) { if (field_0x3020 == 0) { - mtx_id = 7; + jointNo = 7; } else { - mtx_id = 12; + jointNo = 12; } } else { - mtx_id = 1; + jointNo = 1; } - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(mtx_id), o_pos); + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(jointNo), o_pos); } s16 daAlink_c::getBodyAngleXAtnActor(int param_0) { @@ -12023,14 +12575,14 @@ void daAlink_c::setBodyAngleXReadyAnime(int param_0) { s16 angle_x = getBodyAngleXAtnActor(param_0); if (checkUpperGuardAnime()) { - angle_x >>= 1; // divide by 2 adds extra addze? + angle_x >>= 1; } cLib_addCalcAngleS(&mBodyAngle.x, angle_x, 4, 0x0C00, 0x0180); field_0x310a = mBodyAngle.x; } -void daAlink_c::setMagicArmorBrk(int param_0) { +void daAlink_c::setMagicArmorBrk(int i_status) { static const char* bodyBrkName[3] = { "ml_body_power_down.brk", "ml_body_power_up_a.brk", @@ -12043,19 +12595,19 @@ void daAlink_c::setMagicArmorBrk(int param_0) { "ml_head_power_up_b.brk", }; - J3DModelData* model_data = mpLinkModel->getModelData(); - mMagicArmorBodyBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_mArcName, bodyBrkName[param_0]); - mMagicArmorBodyBrk->searchUpdateMaterialID(model_data); - model_data->entryTevRegAnimator(mMagicArmorBodyBrk); + J3DModelData* modelData = mpLinkModel->getModelData(); + mMagicArmorBodyBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_mArcName, bodyBrkName[i_status]); + mMagicArmorBodyBrk->searchUpdateMaterialID(modelData); + modelData->entryTevRegAnimator(mMagicArmorBodyBrk); mMagicArmorBodyBrk->setFrame(0.0f); - J3DModelData* head_model_data = mpLinkHatModel->getModelData(); - mMagicArmorHeadBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_mArcName, headBrkName[param_0]); - mMagicArmorHeadBrk->searchUpdateMaterialID(head_model_data); - head_model_data->entryTevRegAnimator(mMagicArmorHeadBrk); + modelData = mpLinkHatModel->getModelData(); + mMagicArmorHeadBrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_mArcName, headBrkName[i_status]); + mMagicArmorHeadBrk->searchUpdateMaterialID(modelData); + modelData->entryTevRegAnimator(mMagicArmorHeadBrk); mMagicArmorHeadBrk->setFrame(0.0f); - field_0x2fd7 = param_0; + field_0x2fd7 = i_status; } BOOL daAlink_c::checkMagicArmorHeavy() const { @@ -12067,15 +12619,18 @@ BOOL daAlink_c::checkBootsOrArmorHeavy() const { } // param_0 something related to boots -BOOL daAlink_c::checkHeavyStateOn(int param_0, int param_1) { +BOOL daAlink_c::checkHeavyStateOn(BOOL param_0, BOOL param_1) { if (!checkEventRun()) { - if ((param_1 != 0 && mSinkShapeOffset < -30.0f) || - (param_0 != 0 && checkIronBallWaitAnime()) || checkIronBallAnime() || - checkMagicArmorHeavy() || getHeavyStateAndBoots()) + if ((param_1 && mSinkShapeOffset < -30.0f) + || (param_0 && checkIronBallWaitAnime()) + || checkIronBallAnime() + || checkMagicArmorHeavy() + || getHeavyStateAndBoots()) { return true; } } + return false; } @@ -12098,7 +12653,7 @@ void daAlink_c::initGravity() { if (checkWolf()) { if (checkModeFlg(MODE_SWIMMING)) { - if (checkHeavyStateOn(1, 1)) { + if (checkHeavyStateOn(TRUE, TRUE)) { gravity = -mpHIO->mWolf.mWlSwim.m.mHeavyBuoyancy; max_fall_speed = mpHIO->mWolf.mWlSwim.m.mHeavyMaxFallSpeed; } else { @@ -12109,9 +12664,9 @@ void daAlink_c::initGravity() { gravity = mpHIO->mWolf.mWlAutoJump.m.mGravity; max_fall_speed = mpHIO->mWolf.mWlAutoJump.m.mMaxFallSpeed; } - } else if (checkModeFlg(MODE_SWIMMING) || checkNoResetFlg0(FLG0_UNDERWATER)) { + } else if (checkModeFlg(MODE_SWIMMING) || checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { max_fall_speed = getSwimMaxFallSpeed(); - if (checkHeavyStateOn(1, 1) && mProcID != PROC_OCTAIEAL_SPIT) { + if (checkHeavyStateOn(TRUE, TRUE) && mProcID != PROC_OCTAIEAL_SPIT) { gravity = mpHIO->mSwim.m.mBootsGravity; } else { gravity = -mpHIO->mSwim.m.mBuoyancy; @@ -12121,11 +12676,11 @@ void daAlink_c::initGravity() { max_fall_speed = mpHIO->mAutoJump.m.mMaxFallSpeed; } - setSpecialGravity(gravity, max_fall_speed, 1); + setSpecialGravity(gravity, max_fall_speed, TRUE); } -void daAlink_c::setSpecialGravity(f32 i_gravity, f32 i_speed, int i_offFlag) { - if (i_offFlag) { +void daAlink_c::setSpecialGravity(f32 i_gravity, f32 i_speed, BOOL i_isOffFlag) { + if (i_isOffFlag) { offNoResetFlg3(FLG3_UNK_4000); } else { onNoResetFlg3(FLG3_UNK_4000); @@ -12285,7 +12840,7 @@ void daAlink_c::setFootSpeed() { s16 temp_r0 = current.angle.y - shape_angle.y; var_f31 = fabsf(sp8.z * cM_scos(temp_r0)) + fabsf(sp8.x * cM_ssin(temp_r0)); - if (fabsf(mSpeedModifier) < 1.0f && checkInputOnR() && fabsf(field_0x33a4 - field_0x33a8) < 0.2f) { + if (fabsf(mSpeedModifier) < 1.0f && checkInputOnR() && fabsf(field_0x33a4 - mStickValue) < 0.2f) { var_f31 = (0.3f * var_f31) + (0.7f * field_0x33a0); } } else { @@ -12304,10 +12859,9 @@ void daAlink_c::setFootSpeed() { } void daAlink_c::posMove() { - cXyz sp108; - f32 temp_f30 = cM_ssin(shape_angle.y); f32 temp_f29 = cM_scos(shape_angle.y); + cXyz sp108; if (!checkNoResetFlg3(FLG3_UNK_4000)) { initGravity(); @@ -12319,7 +12873,7 @@ void daAlink_c::posMove() { if (checkModeFlg(MODE_SWIMMING)) { var_r26 = field_0x3080; } else if (!mLinkAcch.ChkGroundHit() || checkMagneBootsOn() || - (checkModeFlg(MODE_PLAYER_FLY) && !checkBoardRide()) || field_0x3174 == 8) + (checkModeFlg(MODE_PLAYER_FLY) && !checkBoardRide()) || mGroundCode == 8) { var_r26 = 0; } else { @@ -12353,7 +12907,7 @@ void daAlink_c::posMove() { } if (mProcID == PROC_AUTO_JUMP && checkGrabGlide() && - (field_0xC04[0].ChkTgHit() || field_0xC04[1].ChkTgHit() || field_0xC04[2].ChkTgHit())) + (mWindTgCyls[0].ChkTgHit() || mWindTgCyls[1].ChkTgHit() || mWindTgCyls[2].ChkTgHit())) { speedF *= 0.5f; } @@ -12403,7 +12957,7 @@ void daAlink_c::posMove() { { speed.y = 0.0f; } else if (checkWolf()) { - if (checkHeavyStateOn(1, 1)) { + if (checkHeavyStateOn(TRUE, TRUE)) { speed.y += mpHIO->mWolf.mWlSwim.m.mHeavyBuoyancy; if (speed.y > mpHIO->mWolf.mWlSwim.m.mHeavyMaxSurfacingSpeed) { @@ -12447,8 +13001,8 @@ void daAlink_c::posMove() { } } } else if (!checkModeFlg(0x400)) { - if (checkHeavyStateOn(1, 1) && mProcID != PROC_SPINNER_READY && - !checkNoResetFlg0(FLG0_UNDERWATER)) + if (checkHeavyStateOn(TRUE, TRUE) && mProcID != PROC_SPINNER_READY && + !checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { speed.y += gravity * 2.25f; @@ -12490,7 +13044,7 @@ void daAlink_c::posMove() { current.pos.x += field_0x342c; current.pos.z += field_0x3430; - if (checkEndResetFlg1(ERFLG1_UNK_800) && checkStageName("F_SP113")) { + if (checkEndResetFlg1(ERFLG1_WATERFALL_FRONT_HIT) && checkStageName("F_SP113")) { current.pos.y -= 50.0f; } } @@ -12514,11 +13068,11 @@ void daAlink_c::posMove() { if (!checkNoCollisionCorret() && !checkModeFlg(0x40)) { if (!checkNoResetFlg3(FLG3_UNK_20000000)) { - current.pos += *field_0x814.GetCCMoveP(); + current.pos += *mCcStts.GetCCMoveP(); } if (!eventRunning) { - if (!checkEndResetFlg0(ERFLG0_UNK_8) || !checkHeavyStateOn(1, 1)) { + if (!checkEndResetFlg0(ERFLG0_UNK_8) || !checkHeavyStateOn(TRUE, TRUE)) { current.pos.x += field_0x3400; current.pos.z += field_0x3404; } @@ -12530,7 +13084,7 @@ void daAlink_c::posMove() { s16 angle2 = getGroundAngle(&mLinkAcch.m_gnd, 0x4000); current.pos.x += field_0x35c4.x * cM_scos(angle2); - if (checkZeroSpeedF() && field_0x35c4.abs2() > 9.0f) { + if (checkZeroSpeedF() && field_0x35c4.abs2() > SQUARE(3.0f)) { seStartOnlyReverbLevel(Z2SE_AL_ICE_SLIP); } } @@ -12543,13 +13097,13 @@ void daAlink_c::posMove() { current.pos.x += mWindSpeed.x; current.pos.z += mWindSpeed.z; } - } else if (checkNoResetFlg0(FLG0_UNK_14000)) { + } else if (checkNoResetFlg0(daPy_FLG0(FLG0_UNK_10000 | FLG0_UNK_4000))) { current.pos += field_0x3594; } } else if (checkOctaIealSpecialCollect()) { f32 temp_f1 = getHookshotTopPos()->abs(current.pos); - current.pos += *field_0x814.GetCCMoveP(); + current.pos += *mCcStts.GetCCMoveP(); f32 temp_f31 = getHookshotTopPos()->abs(current.pos); if (temp_f31 > temp_f1) { @@ -12559,11 +13113,12 @@ void daAlink_c::posMove() { mProcID == PROC_CLIMB_MOVE_UPDOWN || mProcID == PROC_CLIMB_WAIT || mProcID == PROC_HANG_WAIT)) { - f32 temp_f31 = field_0x814.GetCCMoveP()->absXZ(); + f32 temp_f31 = mCcStts.GetCCMoveP()->absXZ(); var_r27 = TRUE; if (temp_f31 > 1.0f) { - if ((s16)(field_0x814.GetCCMoveP()->atan2sX_Z() - shape_angle.y) >= 0) { + s16 var_r23 = (s16)(mCcStts.GetCCMoveP()->atan2sX_Z() - shape_angle.y); + if (var_r23 >= 0) { current.pos.x += temp_f31 * temp_f29; current.pos.z -= temp_f31 * temp_f30; } else { @@ -12576,10 +13131,7 @@ void daAlink_c::posMove() { if (checkModeFlg(MODE_SWIMMING) && checkNoResetFlg0(FLG0_SWIM_UP)) { cXyz sp84 = current.pos - field_0x3798; - f32 temp_f3 = sp84.absXZ(); - s16 gnd_angle = getGroundAngle(&mLinkAcch.m_wtr, sp84.atan2sX_Z()); - temp_f3 *= cM_ssin(gnd_angle); - + f32 temp_f3 = sp84.absXZ() * cM_ssin(getGroundAngle(&mLinkAcch.m_wtr, sp84.atan2sX_Z())); if (temp_f3 < 0.0f) { temp_f3 = 0.0f; } @@ -12591,7 +13143,7 @@ void daAlink_c::posMove() { field_0x3400 = 0.0f; field_0x3404 = 0.0f; - field_0x814.ClrCcMove(); + mCcStts.ClrCcMove(); offNoResetFlg3(FLG3_UNK_20000000); field_0x3464 = 0.0f; field_0x3468 = 0.0f; @@ -12692,6 +13244,7 @@ void daAlink_c::autoGroundHit() { offNoResetFlg0(FLG0_UNK_2000); if (checkMagneBootsOn()) { + BOOL var_r27 = FALSE; cXyz sp68; cXyz sp5C; cXyz sp50; @@ -12781,7 +13334,7 @@ void daAlink_c::autoGroundHit() { if (checkReinRide() || checkSpinnerRide()) { if ((current.pos.y - mLinkAcch.GetGroundH() > 1500.0f) || (checkSpinnerRide() && mRideAcKeep.getActor() != NULL && ((daSpinner_c*)mRideAcKeep.getActor())->getJumpFlg())) { - if (checkNoResetFlg3(FLG3_UNK_80000) == 0) { + if (!checkNoResetFlg3(FLG3_UNK_80000)) { onNoResetFlg3(FLG3_UNK_80000); mLastJumpPos = current.pos; mFallHeight = mLastJumpPos.y; @@ -12817,15 +13370,23 @@ bool daAlink_c::startPeepChange() { } void daAlink_c::setLastSceneDamage(int i_dmgAmount, u32* o_mode) { - if (i_dmgAmount <= 0) { - return; - } + if ( + #if DEBUG + !mpHIO->mDamage.m.mInvincible && + #endif + i_dmgAmount > 0 + ) + { + if (i_dmgAmount >= 128) { + JUT_ASSERT(19795, FALSE); - if (0x80 <= i_dmgAmount) { - i_dmgAmount = 0x7F; - } + #if !DEBUG + i_dmgAmount = 127; + #endif + } - *o_mode |= i_dmgAmount << 4; + *o_mode |= i_dmgAmount << 4; + } } void daAlink_c::setLastSceneMode(u32* o_mode) { @@ -12862,16 +13423,16 @@ void daAlink_c::setLastSceneMode(u32* o_mode) { } } -int daAlink_c::startRestartRoom(u32 i_mode, int param_1, int i_dmgAmount, int i_eventRun) { +int daAlink_c::startRestartRoom(u32 i_mode, int param_1, int i_dmgAmount, BOOL i_isEventRun) { if (!checkNoResetFlg0(FLG0_UNK_4000) && - (i_eventRun != 0 || dComIfGp_event_compulsory(this, NULL, 0xFFFF))) + (i_isEventRun || dComIfGp_event_compulsory(this, NULL, 0xFFFF))) { if (!checkRestartDead(i_dmgAmount, i_mode == 4)) { onNoResetFlg0(FLG0_UNK_4000); - if (i_eventRun == 0) { + if (!i_isEventRun) { mDemo.setOriginalDemoType(); - mDemo.setDemoMode(1); + mDemo.setDemoMode(daPy_demo_c::DEMO_UNK_1_e); } int start_mode = getStartMode(); @@ -12881,8 +13442,7 @@ int daAlink_c::startRestartRoom(u32 i_mode, int param_1, int i_dmgAmount, int i_ start_mode = 0; } - // event flag 0x2008 = cleared snowpeak ruins - if (!dComIfGs_isEventBit(0x2008) && (checkBoardRide() || checkBoardRestart())) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0266) && (checkBoardRide() || checkBoardRestart())) { i_mode = 11; } else if (checkBoarSingleBattle() || (start_mode == 2 && !checkFinalBattle() && i_mode == 5)) @@ -12891,8 +13451,7 @@ int daAlink_c::startRestartRoom(u32 i_mode, int param_1, int i_dmgAmount, int i_ } setLastSceneDamage(i_dmgAmount, &i_mode); - u32 params = setParamData(dComIfGs_getRestartRoomNo(), start_mode, param_1, 0); - dStage_restartRoom(params, i_mode, 0); + dStage_restartRoom(setParamData(dComIfGs_getRestartRoomNo(), start_mode, param_1, 0), i_mode, 0); if (mProcID != PROC_DEAD) { seStartSystem(Z2SE_FORCE_BACK); @@ -12919,28 +13478,25 @@ void daAlink_c::checkRoofRestart() { spinner = NULL; } - if (mLinkAcch.ChkRoofHit() && - (mLinkAcch.ChkGroundHit() || - (spinner != NULL && spinner->checkGroundHit() && spinner->getJumpFlg() == 0)) && - !checkMagneBootsOn() && - (mProcID != PROC_CRAWL_START && mProcID != PROC_CRAWL_END && !checkCoachGuardGame())) + if (mLinkAcch.ChkRoofHit() + && (mLinkAcch.ChkGroundHit() || (spinner != NULL && spinner->checkGroundHit() && spinner->getJumpFlg() == 0)) + && !checkMagneBootsOn() + && (mProcID != PROC_CRAWL_START && mProcID != PROC_CRAWL_END && !checkCoachGuardGame())) { - s16 ac_name = getMoveBGActorName(mLinkAcch.m_roof, TRUE); - if (ac_name == PROC_OBJ_SO || ac_name == PROC_Obj_SCannon) { + s16 bg_actorName = getMoveBGActorName(mLinkAcch.m_roof, TRUE); + if (bg_actorName == PROC_OBJ_SO || bg_actorName == PROC_Obj_SCannon) { return; } f32 roof_height = mLinkAcch.GetRoofHeight(); if (roof_height > mLinkAcch.GetGroundH()) { f32 head_pos = mHeadTopPos.y - 10.0f; - f32 temp_f0 = 10.0f + current.pos.y; - - if (head_pos < temp_f0) { - head_pos = temp_f0; + if (head_pos < 10.0f + current.pos.y) { + head_pos = 10.0f + current.pos.y; } if (roof_height < head_pos) { - startRestartRoom(5, 0xC9, 4, 0); + startRestartRoom(5, 0xC9, 4, FALSE); } } } @@ -12949,18 +13505,21 @@ void daAlink_c::checkRoofRestart() { BOOL daAlink_c::checkRestartRoom() { if (checkMagneBootsOn()) { if (checkNoResetFlg0(FLG0_UNK_2000) && (dKy_pol_argument_get(&mMagneLineChk) & 0x80)) { - startRestartRoom(5, 0xC9, 4, 0); + startRestartRoom(5, 0xC9, 4, FALSE); return true; } - } else if (mLinkAcch.ChkGroundHit() && field_0x2fbd == 2) { - return procCoLavaReturnInit(1); - } else if ((checkModeFlg(0x40000) || (checkNoResetFlg0(FLG0_UNK_80) && mWaterY - current.pos.y > mpHIO->mSwim.m.mStartHeight)) && fopAcM_GetRoomNo(this) == 0 && checkStageName("F_SP114")) { + } else if (mLinkAcch.ChkGroundHit() && mGndPolyAtt1 == 2) { + return procCoLavaReturnInit(TRUE); + } else if ((checkModeFlg(0x40000) || (checkNoResetFlg0(FLG0_UNK_80) && mWaterY - current.pos.y > mpHIO->mSwim.m.mStartHeight)) + && fopAcM_GetRoomNo(this) == 0 + && checkStageName("F_SP114")) + { return procCoSwimFreezeReturnInit(); - } else if (!checkCargoCarry() && (field_0x3174 == 4 || field_0x3174 == 10 || (-G_CM3D_F_INF == mLinkAcch.GetGroundH() && !checkModeFlg(0x40000)))) { + } else if (!checkCargoCarry() && (mGroundCode == 4 || mGroundCode == 10 || (-G_CM3D_F_INF == mLinkAcch.GetGroundH() && !checkModeFlg(0x40000)))) { BOOL temp_r28 = mWaterY > mLinkAcch.GetGroundH(); f32 var_f31; - if (field_0x3174 == 10) { + if (mGroundCode == 10) { var_f31 = current.pos.y - mLinkAcch.GetGroundH(); } else { var_f31 = field_0x33c8 - current.pos.y; @@ -12975,24 +13534,28 @@ BOOL daAlink_c::checkRestartRoom() { var_f30 = 2000.0f; } - if ((field_0x3174 != 10 && ((temp_r28 && checkModeFlg(0x40000)) || (!temp_r28 && (checkModeFlg(2) || checkNoResetFlg3(FLG3_UNK_80000)) && mProcID != PROC_HOOKSHOT_FLY && !checkModeFlg(0x800) && var_f31 > var_f30))) || (field_0x3174 == 10 && var_f31 <= 3000.0f) || (checkSpinnerRide() && mRideAcKeep.getActor() != NULL && ((daSpinner_c*)mRideAcKeep.getActor())->checkGroundHit()) || (mLinkAcch.ChkGroundHit() && mProcID != PROC_HOOKSHOT_FLY)) { - int var_r29; - s8 var_r27; + if ((mGroundCode != 10 && ((temp_r28 && checkModeFlg(0x40000)) || (!temp_r28 && (checkModeFlg(2) || checkNoResetFlg3(FLG3_UNK_80000)) && mProcID != PROC_HOOKSHOT_FLY && !checkModeFlg(0x800) && var_f31 > var_f30))) + || (mGroundCode == 10 && var_f31 <= 3000.0f) + || (checkSpinnerRide() && mRideAcKeep.getActor() != NULL && ((daSpinner_c*)mRideAcKeep.getActor())->checkGroundHit()) + || (mLinkAcch.ChkGroundHit() && mProcID != PROC_HOOKSHOT_FLY)) + { + int exitID; + s8 roomNo; - if (field_0x3174 == 4 || field_0x3174 == 10) { + if (mGroundCode == 4 || mGroundCode == 10) { if (checkCoachGuardGame()) { - var_r29 = 0; - var_r27 = -1; + exitID = 0; + roomNo = -1; } else { - var_r29 = dComIfG_Bgsp().GetExitId(mLinkAcch.m_gnd); - var_r27 = (s8)current.roomNo; + exitID = dComIfG_Bgsp().GetExitId(mLinkAcch.m_gnd); + roomNo = fopAcM_GetRoomNo(this); } if (checkModeFlg(2)) { mLinkAcch.ClrGroundHit(); } } else { - var_r29 = 0x3F; + exitID = 0x3F; } if (!checkNoResetFlg0(FLG0_UNK_40000) && checkWolf()) { @@ -13000,11 +13563,11 @@ BOOL daAlink_c::checkRestartRoom() { onNoResetFlg0(FLG0_UNK_40000); } - if (var_r29 != 0x3F) { - if (!checkNoResetFlg0(FLG0_UNK_4000) && dComIfGp_event_compulsory(this, NULL, 0xFFFF) && !checkRestartDead(4, 0)) { + if (exitID != 0x3F) { + if (!checkNoResetFlg0(FLG0_UNK_4000) && dComIfGp_event_compulsory(this, NULL, 0xFFFF) && !checkRestartDead(4, FALSE)) { mDemo.setOriginalDemoType(); if (checkSpinnerRide()) { - mDemo.setDemoMode(0xE); + mDemo.setDemoMode(daPy_demo_c::DEMO_UNK_14_e); mDemo.setParam0(2); } else { mDemo.setDemoMode(1); @@ -13012,24 +13575,30 @@ BOOL daAlink_c::checkRestartRoom() { onNoResetFlg0(FLG0_UNK_4000); - u32 sp8 = 5; - setLastSceneDamage(4, &sp8); - seStartSystem(0x33); - dStage_changeScene(var_r29, 0.0f, sp8, var_r27, shape_angle.y, -1); + u32 mode = 5; + setLastSceneDamage(4, &mode); + seStartSystem(Z2SE_FORCE_BACK); + dStage_changeScene(exitID, 0.0f, mode, roomNo, shape_angle.y, -1); } - } else if (startRestartRoom(5, 0xC9, 4, 0) && checkSpinnerRide()) { - mDemo.setDemoMode(0xE); + } else if (startRestartRoom(5, 0xC9, 4, FALSE) && checkSpinnerRide()) { + mDemo.setDemoMode(daPy_demo_c::DEMO_UNK_14_e); mDemo.setParam0(2); } return true; } - } else if ((mLinkAcch.ChkGroundHit() && (dKy_pol_argument_get(&mLinkAcch.m_gnd) & 0x80)) || (checkWaterPolygonUnder() && checkNoResetFlg0(FLG0_UNK_80) && (dKy_pol_argument_get(&mLinkAcch.m_wtr) & 0x80)) || (checkModeFlg(0x40) && field_0x33bc < field_0x33b8 && -G_CM3D_F_INF != field_0x33b8 && (field_0x2fc6 & 0x80)) || (field_0x2fbc == 6 && checkNoResetFlg0(FLG0_UNK_80) && checkWaterPolygonUnder() && mWaterY > (mpHIO->mBasic.m.mLavaDeathDepth + mLinkAcch.GetGroundH())) || (field_0x2fc5 == 6 && -G_CM3D_F_INF != field_0x33b8 && field_0x33bc < field_0x33b8 && checkModeFlg(0x40) && field_0x33b8 > (field_0x33d8 + mpHIO->mBasic.m.mLavaDeathDepth))) { + } else if ((mLinkAcch.ChkGroundHit() && (dKy_pol_argument_get(&mLinkAcch.m_gnd) & 0x80)) + || (checkWaterPolygonUnder() && checkNoResetFlg0(FLG0_UNK_80) && (dKy_pol_argument_get(&mLinkAcch.m_wtr) & 0x80)) + || (checkModeFlg(0x40) && field_0x33bc < field_0x33b8 && -G_CM3D_F_INF != field_0x33b8 && (field_0x2fc6 & 0x80)) + || (field_0x2fbc == 6 && checkNoResetFlg0(FLG0_UNK_80) && checkWaterPolygonUnder() && mWaterY > (mpHIO->mBasic.m.mLavaDeathDepth + mLinkAcch.GetGroundH())) + || (field_0x2fc5 == 6 && -G_CM3D_F_INF != field_0x33b8 && field_0x33bc < field_0x33b8 && checkModeFlg(0x40) && field_0x33b8 > (field_0x33d8 + mpHIO->mBasic.m.mLavaDeathDepth)) + ) + { if (field_0x2fbc == 6 || (checkModeFlg(0x40) && field_0x2fc5 == 6)) { - return procCoLavaReturnInit(0); + return procCoLavaReturnInit(FALSE); } - startRestartRoom(5, 0xC9, 4, 0); + startRestartRoom(5, 0xC9, 4, FALSE); return true; } @@ -13049,40 +13618,47 @@ s16 daAlink_c::getSceneExitMoveAngle() { f32 var_f29; if (checkHorseRide()) { - var_f29 = 10000.0f; + var_f29 = SQUARE(100.0f); } else { - var_f29 = 2500.0f; + var_f29 = SQUARE(50.0f); } - if (dx * dx + dz * dz < var_f29) { + if (SQUARE(dx) + SQUARE(dz) < var_f29) { field_0x2fc2++; if (field_0x2f58->m_num == field_0x2fc2) { return mDemo.getMoveAngle(); } - dx = var_r30[1].m_position.x - current.pos.x; - dz = var_r30[1].m_position.z - current.pos.z; + var_r30++; + dx = var_r30->m_position.x - current.pos.x; + dz = var_r30->m_position.z - current.pos.z; } return cM_atan2s(dx, dz); } -int daAlink_c::checkSceneChange(int exitID) { - BOOL var_r3 = mProcID != PROC_FOG_DEAD && (field_0x3174 == 9 || checkNoResetFlg2(FLG2_UNK_4000)); +int daAlink_c::checkSceneChange(int i_exitID) { + BOOL var_r3 = mProcID != PROC_FOG_DEAD && (mGroundCode == 9 || checkNoResetFlg2(FLG2_FOG_FADE)); - if (field_0x3174 == 4 || field_0x3174 == 10) { - exitID = 0x3F; + if (mGroundCode == 4 || mGroundCode == 10) { + i_exitID = 0x3F; } if (var_r3 || - ((exitID != 0x3F || mExitID != 0x3F) && - (checkModeFlg(0x40000) || checkModeFlg(0x400) || mLinkAcch.ChkGroundHit() || - mProcID == PROC_DOOR_OPEN || mProcID == PROC_WARP || mProcID == PROC_WOLF_DIG_THROUGH || - (field_0x3174 == 5 && field_0x33c8 - current.pos.y > 500.0f))) || - (mExitID & 0x8000 && checkModeFlg(2))) + ((i_exitID != 0x3F || mExitID != 0x3F) + && (checkModeFlg(0x40000) + || checkModeFlg(0x400) + || mLinkAcch.ChkGroundHit() + || mProcID == PROC_DOOR_OPEN + || mProcID == PROC_WARP + || mProcID == PROC_WOLF_DIG_THROUGH + || (mGroundCode == 5 && field_0x33c8 - current.pos.y > 500.0f) + ) + ) || ((mExitID & 0x8000) && checkModeFlg(2)) + ) { - if (field_0x3174 == 5 || (mExitID & 0x8000 && mExitDirection == 0xFF)) { + if (mGroundCode == 5 || ((mExitID & 0x8000) && mExitDirection == 0xFF)) { mLinkAcch.ClrGroundHit(); } @@ -13144,7 +13720,7 @@ int daAlink_c::checkSceneChange(int exitID) { if (is_horse_ride) { exit_mode = 1; } else if (checkModeFlg(0x1000000)) { - exit_speed = field_0x33a8; + exit_speed = mStickValue; if (mUnderFrameCtrl[0].getRate() >= 0.0f) { exit_mode = 2; } else { @@ -13156,21 +13732,24 @@ int daAlink_c::checkSceneChange(int exitID) { exit_mode = 0; } - if (eventInfo.checkCommandDoor() || mProcID == PROC_WARP || mProcID == PROC_WOLF_DIG || - mProcID == PROC_WOLF_DIG_THROUGH || field_0x3106 != 0 || - dComIfGp_event_compulsory(this, NULL, -1)) + if (eventInfo.checkCommandDoor() + || mProcID == PROC_WARP + || mProcID == PROC_WOLF_DIG + || mProcID == PROC_WOLF_DIG_THROUGH + || field_0x3106 != 0 + || dComIfGp_event_compulsory(this, NULL, -1)) { - BOOL scn_changed = false; + BOOL isScnChange = false; if (var_r3) { mDemo.setOriginalDemoType(); - mDemo.setDemoMode(0x34); + mDemo.setDemoMode(daPy_demo_c::DEMO_FOG_DEAD_e); } else { if (mExitID != 0x3F) { - scn_changed = dStage_changeScene(mExitID & 0xFF, exit_speed, exit_mode, + isScnChange = dStage_changeScene(mExitID & 0xFF, exit_speed, exit_mode, fopAcM_GetRoomNo(this), shape_angle.y, -1); - if (scn_changed) { - onNoResetFlg2(FLG2_SCN_CHG_START); + if (isScnChange) { + onNoResetFlg2(FLG2_SCENE_CHANGE_START); if (mpScnChg != NULL && fopAcM_GetName(mpScnChg) == PROC_SCENE_EXIT) { mpScnChg->setSceneChangeOK(); } @@ -13180,14 +13759,14 @@ int daAlink_c::checkSceneChange(int exitID) { field_0x2f58 = dPath_GetRoomPath(mExitDirection, fopAcM_GetRoomNo(this)); } } else { - scn_changed = dStage_changeSceneExitId(mLinkAcch.m_gnd, exit_speed, exit_mode, + isScnChange = dStage_changeSceneExitId(mLinkAcch.m_gnd, exit_speed, exit_mode, fopAcM_GetRoomNo(this), shape_angle.y); field_0x2f58 = dPath_GetRoomPath(dComIfG_Bgsp().GetRoomPathId(mLinkAcch.m_gnd), fopAcM_GetRoomNo(this)); } } - if (scn_changed) { + if (isScnChange) { onNoResetFlg0(FLG0_UNK_4000); if (!eventInfo.checkCommandDoor()) { @@ -13197,10 +13776,10 @@ int daAlink_c::checkSceneChange(int exitID) { resetUpperAnime(UPPER_2, 3.0f); } - if (field_0x3174 == 5) { - mDemo.setDemoMode(0x11); + if (mGroundCode == 5) { + mDemo.setDemoMode(daPy_demo_c::DEMO_UNK_17_e); } else { - mDemo.setDemoMode(0x1A); + mDemo.setDemoMode(daPy_demo_c::DEMO_UNK_26_e); mDemo.setStick(demo_stick); } @@ -13221,67 +13800,67 @@ int daAlink_c::checkSceneChange(int exitID) { return 0; } -void daAlink_c::voiceStart(u32 i_seID) { - mZ2Link.startLinkVoice(i_seID, mVoiceReverbIntensity); +void daAlink_c::voiceStart(u32 i_soundID) { + mZ2Link.startLinkVoice(i_soundID, mVoiceReverbIntensity); } -void daAlink_c::voiceStartLevel(u32 i_seID) { - mZ2Link.startLinkVoiceLevel(i_seID, mVoiceReverbIntensity); +void daAlink_c::voiceStartLevel(u32 i_soundID) { + mZ2Link.startLinkVoiceLevel(i_soundID, mVoiceReverbIntensity); } -void daAlink_c::seStartSwordCut(u32 i_seID) { - mZ2Link.startLinkSwordSound(i_seID, 0, mVoiceReverbIntensity); +void daAlink_c::seStartSwordCut(u32 i_soundID) { + mZ2Link.startLinkSwordSound(i_soundID, 0, mVoiceReverbIntensity); } -void daAlink_c::seStartOnlyReverb(u32 i_seID) { - mZ2Link.startLinkSound(i_seID, 0, mVoiceReverbIntensity); +void daAlink_c::seStartOnlyReverb(u32 i_soundID) { + mZ2Link.startLinkSound(i_soundID, 0, mVoiceReverbIntensity); } -void daAlink_c::seStartOnlyReverbLevel(u32 i_seID) { - mZ2Link.startLinkSoundLevel(i_seID, 0, mVoiceReverbIntensity); +void daAlink_c::seStartOnlyReverbLevel(u32 i_soundID) { + mZ2Link.startLinkSoundLevel(i_soundID, 0, mVoiceReverbIntensity); } -void daAlink_c::seStartMapInfo(u32 i_seID) { - mZ2Link.startLinkSound(i_seID, mPolySound, mVoiceReverbIntensity); +void daAlink_c::seStartMapInfo(u32 i_soundID) { + mZ2Link.startLinkSound(i_soundID, mPolySound, mVoiceReverbIntensity); } -void daAlink_c::seStartMapInfoLevel(u32 i_seID) { - mZ2Link.startLinkSoundLevel(i_seID, mPolySound, mVoiceReverbIntensity); +void daAlink_c::seStartMapInfoLevel(u32 i_soundID) { + mZ2Link.startLinkSoundLevel(i_soundID, mPolySound, mVoiceReverbIntensity); } -void daAlink_c::setBasAnime(daAlink_c::daAlink_UNDER param_0) { - daPy_anmHeap_c* temp_r29 = &mUnderAnmHeap[param_0]; - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[param_0]; +void daAlink_c::setBasAnime(daAlink_c::daAlink_UNDER i_underIdx) { + daPy_anmHeap_c* anmHeap = &mUnderAnmHeap[i_underIdx]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[i_underIdx]; - if (!temp_r29->checkNoSetArcNo()) { - void* temp_r3 = ((mDoExt_transAnmBas*)getNowAnmPackUnder(UNDER_0))->getBas(); - if (temp_r3 == NULL) { + if (!anmHeap->checkNoSetArcNo()) { + void* bas = ((mDoExt_transAnmBas*)getNowAnmPackUnder(UNDER_0))->getBas(); + if (bas == NULL) { resetBasAnime(); } else { - if (field_0x3084 == temp_r29->getIdx() && field_0x3086 == temp_r29->getArcNo()) { - if (field_0x33d4 * temp_r28->getRate() >= 0.0f) { - field_0x2d7c = temp_r28; + if (field_0x3084 == anmHeap->getIdx() && field_0x3086 == anmHeap->getArcNo()) { + if (field_0x33d4 * framectrl->getRate() >= 0.0f) { + field_0x2d7c = framectrl; return; } } - field_0x2d80 = temp_r3; - field_0x2d7c = temp_r28; - field_0x3084 = temp_r29->getIdx(); - field_0x3086 = temp_r29->getArcNo(); - field_0x33d4 = temp_r28->getRate(); + field_0x2d80 = bas; + field_0x2d7c = framectrl; + field_0x3084 = anmHeap->getIdx(); + field_0x3086 = anmHeap->getArcNo(); + field_0x33d4 = framectrl->getRate(); initBasAnime(); } } else { - u8* temp_r3_2 = temp_r29->getBuffer(); + u8* temp_r3_2 = anmHeap->getBuffer(); if (*(u32*)(temp_r3_2 + 0x1C) == 0xFFFFFFFF) { resetBasAnime(); return; } - if (field_0x3084 == temp_r29->getIdx() && field_0x3086 == temp_r29->getArcNo()) { - if (field_0x33d4 * temp_r28->getRate() >= 0.0f) { - field_0x2d7c = temp_r28; + if (field_0x3084 == anmHeap->getIdx() && field_0x3086 == anmHeap->getArcNo()) { + if (field_0x33d4 * framectrl->getRate() >= 0.0f) { + field_0x2d7c = framectrl; return; } } @@ -13291,11 +13870,11 @@ void daAlink_c::setBasAnime(daAlink_c::daAlink_UNDER param_0) { const u32 l_basAnmBufferSize = 0x800; JUT_ASSERT(20661, dataSize < l_basAnmBufferSize); - cLib_memCpy(field_0x2d78, temp_r29->getBuffer() + *(u32*)(temp_r3_2 + 0x1C), dataSize); - field_0x2d7c = temp_r28; - field_0x3084 = temp_r29->getIdx(); - field_0x3086 = temp_r29->getArcNo(); - field_0x33d4 = temp_r28->getRate(); + cLib_memCpy(field_0x2d78, anmHeap->getBuffer() + *(u32*)(temp_r3_2 + 0x1C), dataSize); + field_0x2d7c = framectrl; + field_0x3084 = anmHeap->getIdx(); + field_0x3086 = anmHeap->getArcNo(); + field_0x33d4 = framectrl->getRate(); field_0x2d80 = 0; initBasAnime(); } @@ -13306,7 +13885,6 @@ void daAlink_c::initBasAnime() { f32 var_f31; if (field_0x2d7c->getAttribute() == J3DFrameCtrl::EMode_LOOP) { var_f31 = field_0x2d7c->getFrame() - field_0x2d7c->getRate(); - if (var_f31 <= field_0x2d7c->getStart()) { var_f31 = field_0x2d7c->getEnd() - var_f31; } else if (var_f31 >= field_0x2d7c->getEnd()) { @@ -13331,16 +13909,16 @@ void daAlink_c::resetBasAnime() { field_0x2d80 = NULL; } -BOOL daAlink_c::checkSightLine(f32 param_0, cXyz* param_1) { +BOOL daAlink_c::checkSightLine(f32 i_maxDist, cXyz* o_sightPos) { camera_class* camera = dComIfGp_getCamera(field_0x317c); - cXyz* var_r29 = fopCamM_GetEye_p(camera); + cXyz* line_start_pos = fopCamM_GetEye_p(camera); cXyz sp3C; cXyz sp30(mHeldItemRootPos); if (checkHookshotItem(mEquipItem) || mEquipItem == fpcNm_ITEM_PACHINKO) { - var_r29 = &sp30; + line_start_pos = &sp30; } else if (checkBowItem(mEquipItem) && mItemAcKeep.getActor() != NULL) { - var_r29 = &mItemAcKeep.getActor()->current.pos; + line_start_pos = &mItemAcKeep.getActor()->current.pos; } s16 temp_r27 = shape_angle.y + mBodyAngle.y; @@ -13351,14 +13929,14 @@ BOOL daAlink_c::checkSightLine(f32 param_0, cXyz* param_1) { mDoMtx_multVecSR(mMagneBootMtx, &sp3C, &sp3C); } - *param_1 = (sp3C * param_0) + *var_r29; + *o_sightPos = (sp3C * i_maxDist) + *line_start_pos; if (checkHookshotItem(mEquipItem)) { mRopeLinChk.Set(&field_0x3834, &mHeldItemRootPos, this); if (dComIfG_Bgsp().LineCross(&mRopeLinChk)) { - *param_1 = mRopeLinChk.GetCross(); - onResetFlg0(RFLG0_UNK_2000000); + *o_sightPos = mRopeLinChk.GetCross(); + onResetFlg0(RFLG0_ITEM_SIGHT_BG_HIT); return 1; } @@ -13367,36 +13945,37 @@ BOOL daAlink_c::checkSightLine(f32 param_0, cXyz* param_1) { return 0; } - dBgS_LinChk* var_r30; + dBgS_LinChk* linechk; if (mEquipItem == fpcNm_ITEM_BOOMERANG) { - var_r30 = &mBoomerangLinChk; + linechk = &mBoomerangLinChk; } else if (mProcID == PROC_HAWK_SUBJECT) { - var_r30 = &mLinkLinChk; + linechk = &mLinkLinChk; } else if (checkBowAndSlingItem(mEquipItem)) { - var_r30 = &mArrowLinChk; + linechk = &mArrowLinChk; } else { - var_r30 = &mRopeLinChk; + linechk = &mRopeLinChk; } - var_r30->Set(var_r29, param_1, this); + linechk->Set(line_start_pos, o_sightPos, this); - BOOL temp_r3 = dComIfG_Bgsp().LineCross(var_r30); - if (temp_r3) { - *param_1 = var_r30->GetCross(); - onResetFlg0(RFLG0_UNK_2000000); + BOOL isLineCross = dComIfG_Bgsp().LineCross(linechk); + if (isLineCross) { + *o_sightPos = linechk->GetCross(); + onResetFlg0(RFLG0_ITEM_SIGHT_BG_HIT); } - return temp_r3; + return isLineCross; } -void daAlink_c::setMetamorphoseModel(int param_0) { - J3DAnmTransform* bck = - (J3DAnmTransform*)mAnmHeap9.loadDataIdx(param_0 != 0 ? (u16)0x27C : (u16)0x27D); +void daAlink_c::setMetamorphoseModel(BOOL i_isChangeToWolf) { + J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(i_isChangeToWolf ? (u16)dRes_ID_ALANM_BCK_WFCHANGEATOW_e : (u16)dRes_ID_ALANM_BCK_WFCHANGEWTOA_e); JKRHeap* heap = setItemHeap(); - J3DModelData* model_data = loadAramBmd(0x31B, 0x6000); - mHeldItemModel = initModel(model_data, 0); - mItemBck.init(bck, 0, 2, 1.0f, 0, -1, false); + mHeldItemModel = initModel(loadAramBmd(dRes_ID_ALANM_BMD_AL_WF_e, 0x6000), 0); + + if (!mItemBck.init(bck, FALSE, 2, 1.0f, 0, -1, false)) { + JUT_ASSERT(20842, FALSE); + } mDoExt_setCurrentHeap(heap); mEquipItem = 0x106; @@ -13428,7 +14007,11 @@ BOOL daAlink_c::setItemModel() { if (mEquipItem == fpcNm_ITEM_COPY_ROD) { setCopyRodModel(); - return mCopyRodAcKeep.getActor() != NULL ? 1 : 0; + if (mCopyRodAcKeep.getActor() == NULL) { + return FALSE; + } else { + return TRUE; + } } if (mEquipItem == fpcNm_ITEM_KANTERA) { @@ -13454,16 +14037,21 @@ BOOL daAlink_c::setItemModel() { if (mEquipItem == fpcNm_ITEM_IRONBALL) { setIronBallModel(); setIronBallWaitUpperAnime(1); - return mItemAcKeep.getActor() != NULL ? 1 : 0; + if (mItemAcKeep.getActor() == NULL) { + return FALSE; + } else { + return TRUE; + } } return 0; } BOOL daAlink_c::setItemActor() { + fopAc_ac_c* actor; if (mEquipItem == fpcNm_ITEM_BOOMERANG) { - fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(PROC_BOOMERANG, 0, ¤t.pos, -1, - NULL, NULL, -1, NULL, NULL); + actor = (fopAc_ac_c*)fopAcM_fastCreate(PROC_BOOMERANG, 0, ¤t.pos, -1, + NULL, NULL, -1, NULL, NULL); if (actor == NULL) { deleteEquipItem(FALSE, FALSE); return 0; @@ -13475,8 +14063,8 @@ BOOL daAlink_c::setItemActor() { } if (mEquipItem == fpcNm_ITEM_COPY_ROD) { - fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(PROC_CROD, 0, ¤t.pos, -1, NULL, - NULL, -1, NULL, NULL); + actor = (fopAc_ac_c*)fopAcM_fastCreate(PROC_CROD, 0, ¤t.pos, -1, NULL, + NULL, -1, NULL, NULL); if (actor == NULL) { deleteEquipItem(FALSE, FALSE); return 0; @@ -13488,12 +14076,13 @@ BOOL daAlink_c::setItemActor() { } if (mEquipItem == fpcNm_ITEM_IRONBALL) { - fopAc_ac_c* actor = daCrod_c::makeIronBallDummy(this); + actor = daCrod_c::makeIronBallDummy(this); if (actor == NULL) { if (checkIronBallWaitAnime()) { resetUpperAnime(UPPER_2, -1.0f); } + deleteEquipItem(FALSE, FALSE); return 0; } @@ -13504,8 +14093,7 @@ BOOL daAlink_c::setItemActor() { } if (checkFisingRodLure()) { - u32 id = fopAcM_create(PROC_MG_ROD, 0x10D, &mLeftHandPos, -1, NULL, NULL, 0xFF); - mItemAcKeep.setID(id); + mItemAcKeep.setID(fopAcM_create(PROC_MG_ROD, 0x10D, &mLeftHandPos, -1, NULL, NULL, 0xFF)); initFishingRodHand(); return 1; } @@ -13517,8 +14105,11 @@ BOOL daAlink_c::setItemActor() { if (checkBombItem(mEquipItem)) { if (checkHorseRide()) { - if (dComIfGp_getHorseActor()->checkNoBombProc() && - (mProcID != PROC_HORSE_TURN || !checkModeFlg(MODE_DISABLE_ITEMS))) + if (dComIfGp_getHorseActor()->checkNoBombProc() + #if PLATFORM_GCN + && (mProcID != PROC_HORSE_TURN || !checkModeFlg(MODE_DISABLE_ITEMS)) + #endif + ) { mEquipItem = fpcNm_ITEM_NONE; return 1; @@ -13563,35 +14154,41 @@ BOOL daAlink_c::checkMagicArmorWearAbility() const { return (!checkWolf() && checkMagicArmorWearFlg()) && !checkNoResetFlg2(FLG2_UNK_80000); } -J3DModelData* daAlink_c::loadAramBmd(u16 i_resID, u32 i_bufSize) { - JKRArchive* anm_arc = dComIfGp_getAnmArchive(); +J3DModelData* daAlink_c::loadAramBmd(u16 i_resIdx, u32 i_bufSize) { + JKRArchive* anmArchive = dComIfGp_getAnmArchive(); u8* tmpBuffer = new (0x20) u8[i_bufSize]; - anm_arc->readIdxResource(tmpBuffer, i_bufSize, i_resID); + JKRReadIdxResource(tmpBuffer, i_bufSize, i_resIdx, anmArchive); + #if DEBUG + daPy_aramBufferCheck(tmpBuffer, i_bufSize); + #endif u32 type = 'BMWR'; - JKRArchive::SDIDirEntry* dir = anm_arc->mNodes; - for (int i = 0; i < anm_arc->countDirectory(); i++) { - if (i_resID >= dir->first_file_index && i_resID < dir->first_file_index + dir->num_entries) + JKRArchive::SDIDirEntry* dir = anmArchive->mNodes; + for (int i = 0; i < anmArchive->countDirectory(); i++, dir++) { + if (i_resIdx >= dir->first_file_index && i_resIdx < dir->first_file_index + dir->num_entries) { type = dir->type; break; } - dir++; } return dRes_info_c::loaderBasicBmd(type, tmpBuffer); } -void* daAlink_c::loadAram(u16 i_resID, u32 i_bufSize) { +void* daAlink_c::loadAram(u16 i_resIdx, u32 i_bufSize) { u8* tmpBuffer = new (0x20) u8[i_bufSize]; - dComIfGp_getAnmArchive()->readIdxResource(tmpBuffer, i_bufSize, i_resID); - return J3DAnmLoaderDataBase::load(tmpBuffer, J3DLOADER_UNK_FLAG0); + JKRReadIdxResource(tmpBuffer, i_bufSize, i_resIdx, dComIfGp_getAnmArchive()); + #if DEBUG + daPy_aramBufferCheck(tmpBuffer, i_bufSize); + #endif + + return J3DAnmLoaderDataBase::load(tmpBuffer); } -J3DAnmTevRegKey* daAlink_c::loadAramItemBrk(u16 i_resID, J3DModel* i_model) { +J3DAnmTevRegKey* daAlink_c::loadAramItemBrk(u16 i_resIdx, J3DModel* i_model) { J3DModelData* model_data = i_model->getModelData(); - J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)loadAram(i_resID, 0x400); + J3DAnmTevRegKey* brk = (J3DAnmTevRegKey*)loadAram(i_resIdx, 0x400); brk->setFrame(0.0f); brk->searchUpdateMaterialID(model_data); @@ -13600,9 +14197,9 @@ J3DAnmTevRegKey* daAlink_c::loadAramItemBrk(u16 i_resID, J3DModel* i_model) { return brk; } -J3DAnmTextureSRTKey* daAlink_c::loadAramItemBtk(u16 i_resID, J3DModel* i_model) { +J3DAnmTextureSRTKey* daAlink_c::loadAramItemBtk(u16 i_resIdx, J3DModel* i_model) { J3DModelData* model_data = i_model->getModelData(); - J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)loadAram(i_resID, 0x400); + J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)loadAram(i_resIdx, 0x400); btk->setFrame(0.0f); btk->searchUpdateMaterialID(model_data); @@ -13611,9 +14208,9 @@ J3DAnmTextureSRTKey* daAlink_c::loadAramItemBtk(u16 i_resID, J3DModel* i_model) return btk; } -J3DAnmTexPattern* daAlink_c::loadAramItemBtp(u16 i_resID, J3DModel* i_model) { +J3DAnmTexPattern* daAlink_c::loadAramItemBtp(u16 i_resIdx, J3DModel* i_model) { J3DModelData* model_data = i_model->getModelData(); - J3DAnmTexPattern* btp = (J3DAnmTexPattern*)loadAram(i_resID, 0x400); + J3DAnmTexPattern* btp = (J3DAnmTexPattern*)loadAram(i_resIdx, 0x400); btp->setFrame(0.0f); btp->searchUpdateMaterialID(model_data); @@ -13622,8 +14219,8 @@ J3DAnmTexPattern* daAlink_c::loadAramItemBtp(u16 i_resID, J3DModel* i_model) { return btp; } -void daAlink_c::changeItemBck(u16 i_resID, f32 param_1) { - J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(i_resID); +void daAlink_c::changeItemBck(u16 i_resIdx, f32 param_1) { + J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(i_resIdx); if (bck != NULL) { mItemBck.changeBckOnly(bck); } @@ -13635,7 +14232,7 @@ void daAlink_c::changeItemBck(u16 i_resID, f32 param_1) { } } -int daAlink_c::checkGroupItem(int i_itemNo, int i_selItem) const { +BOOL daAlink_c::checkGroupItem(int i_itemNo, int i_selItem) const { if (i_itemNo == 0x107) { return checkDrinkBottleItem(i_selItem); } else if (i_itemNo == 0x108) { @@ -13707,7 +14304,7 @@ bool daAlink_c::checkRoomSpecial() { bool daAlink_c::checkRoom() { return checkRoomOnly() || checkRoomSpecial() || - checkStageName("R_SP161") && !dComIfGs_isOneZoneSwitch(14, -1); + (checkStageName("R_SP161") && !dComIfGs_isOneZoneSwitch(14, -1)); } bool daAlink_c::checkNotBattleStage() { @@ -13724,18 +14321,20 @@ bool daAlink_c::checkNotAutoJumpStage() { bool daAlink_c::checkCastleTownUseItem(u16 i_itemNo) { if (checkNotBattleStage()) { - if (i_itemNo == fpcNm_ITEM_KANTERA || checkTradeItem(i_itemNo) || - (i_itemNo == fpcNm_ITEM_DUNGEON_BACK && checkLv7DungeonShop()) || - (checkRoomSpecial() && (i_itemNo == fpcNm_ITEM_EMPTY_BOTTLE || checkDungeonWarpItem(i_itemNo))) || - (checkStageName("R_SP128") && i_itemNo == fpcNm_ITEM_COPY_ROD) || - (checkLv2DungeonRoomSpecial() && i_itemNo == fpcNm_ITEM_HVY_BOOTS) || - (checkBottleItem(i_itemNo) && i_itemNo != fpcNm_ITEM_EMPTY_BOTTLE)) + if (i_itemNo == fpcNm_ITEM_KANTERA + || checkTradeItem(i_itemNo) + || (i_itemNo == fpcNm_ITEM_DUNGEON_BACK && checkLv7DungeonShop()) + || (checkRoomSpecial() && (i_itemNo == fpcNm_ITEM_EMPTY_BOTTLE || checkDungeonWarpItem(i_itemNo))) + || (checkStageName("R_SP128") && i_itemNo == fpcNm_ITEM_COPY_ROD) + || (checkLv2DungeonRoomSpecial() && i_itemNo == fpcNm_ITEM_HVY_BOOTS) + || (checkBottleItem(i_itemNo) && i_itemNo != fpcNm_ITEM_EMPTY_BOTTLE)) { return true; } else { return false; } } + return true; } @@ -13795,7 +14394,7 @@ int daAlink_c::changeItemTriggerKeepProc(u8 i_selItemIdx, int i_procType) { } else if (i_procType == ITEM_PROC_BOTTLE_SWING) { procBottleSwingInit(NULL, 0); } else if (i_procType == ITEM_PROC_NOT_USE_ITEM) { - procNotUseItemInit(sel_item); + procNotUseItemInit((u16)sel_item); } else if (i_procType == ITEM_PROC_SUBJECTIVITY) { procCoSubjectivityInit(); dComIfGp_setPlayerStatus0(0, 0x200000); @@ -13828,45 +14427,42 @@ int daAlink_c::changeItemTriggerKeepProc(u8 i_selItemIdx, int i_procType) { * @return a `daAlink_ItemProc` value corresponding to the `PROC` function to run in * `changeItemTriggerKeepProc` */ -int daAlink_c::checkNewItemChange(u8 param_0) { - u32 sel_item = dComIfGp_getSelectItem(param_0); +int daAlink_c::checkNewItemChange(u8 i_selItemIdx) { + u16 sel_item = dComIfGp_getSelectItem(i_selItemIdx); - if (checkSpinnerRide() || sel_item == fpcNm_ITEM_BOMB_BAG_LV1 || - ((sel_item == fpcNm_ITEM_KANTERA || checkOilBottleItem(sel_item)) && - checkWaterInKandelaarOffset(mWaterY)) || - (checkCanoeRide() && checkStageName("F_SP127")) || checkCloudSea() || - ((checkModeFlg(0x40000) || checkNoResetFlg0(FLG0_UNDERWATER)) && - !checkAcceptUseItemInWater(sel_item)) || - (checkModeFlg(0x40000) && sel_item == fpcNm_ITEM_WATER_BOMB) || !checkCastleTownUseItem(sel_item) || - (checkBoardRide() && sel_item != 0x103) || - (checkModeFlg(0x400) && - (sel_item == fpcNm_ITEM_EMPTY_BOTTLE || sel_item == fpcNm_ITEM_POKE_BOMB || sel_item == fpcNm_ITEM_IRONBALL || - sel_item == fpcNm_ITEM_COPY_ROD || checkFishingRodItem(sel_item))) || - ((mGndPolySpecialCode == dBgW_SPCODE_HEAVY_SNOW || field_0x2fbd == 1 || field_0x2fbd == 2 || - mWaterY - current.pos.y > 45.0f || - (field_0x2fbc == 6 && mWaterY - current.pos.y >= 0.0f) || field_0x2fbd == 3) && - sel_item == fpcNm_ITEM_SPINNER) || - (checkBossRoom() && checkDungeonWarpItem(sel_item)) || - (sel_item == fpcNm_ITEM_DUNGEON_EXIT && - (checkLv7DungeonShop() || - (checkStageName("D_MN07") && fopAcM_isSwitch(this, 0x4D) && - !fopAcM_isSwitch(this, 0x18)) || - (checkStageName("D_MN10") && fopAcM_GetRoomNo(this) == 15))) || - (checkMagneBootsOn() && sel_item != 0x103 && !checkDrinkBottleItem(sel_item) && - sel_item != fpcNm_ITEM_HVY_BOOTS && !checkBowItem(sel_item))) + if (checkSpinnerRide() + || sel_item == fpcNm_ITEM_BOMB_BAG_LV1 + || ((sel_item == fpcNm_ITEM_KANTERA || checkOilBottleItem(sel_item)) && checkWaterInKandelaarOffset(mWaterY)) + || (checkCanoeRide() && checkStageName("F_SP127")) + || checkCloudSea() + || ((checkModeFlg(0x40000) || checkNoResetFlg0(FLG0_WATER_IN_MOVE)) && !checkAcceptUseItemInWater(sel_item)) + || (checkModeFlg(0x40000) && sel_item == fpcNm_ITEM_WATER_BOMB) + || !checkCastleTownUseItem(sel_item) + || (checkBoardRide() && sel_item != 0x103) + || (checkModeFlg(0x400) && (sel_item == fpcNm_ITEM_EMPTY_BOTTLE || sel_item == fpcNm_ITEM_POKE_BOMB || sel_item == fpcNm_ITEM_IRONBALL || sel_item == fpcNm_ITEM_COPY_ROD || checkFishingRodItem(sel_item))) + || ((mGndPolySpecialCode == dBgW_SPCODE_HEAVY_SNOW || mGndPolyAtt1 == 1 || mGndPolyAtt1 == 2 || mWaterY - current.pos.y > (daSpinner_c::getWaterSinkLimit() - 5.0f) || (field_0x2fbc == 6 && mWaterY - current.pos.y >= 0.0f) || mGndPolyAtt1 == 3) && sel_item == fpcNm_ITEM_SPINNER) + || (checkBossRoom() && checkDungeonWarpItem(sel_item)) + || (sel_item == fpcNm_ITEM_DUNGEON_EXIT && (checkLv7DungeonShop() || (checkStageName("D_MN07") && fopAcM_isSwitch(this, 0x4D) && !fopAcM_isSwitch(this, 0x18)) || (checkStageName("D_MN10") && fopAcM_GetRoomNo(this) == 15))) + || (checkMagneBootsOn() && sel_item != 0x103 && !checkDrinkBottleItem(sel_item) && sel_item != fpcNm_ITEM_HVY_BOOTS && !checkBowItem(sel_item)) + ) { return ITEM_PROC_NONE; - } else if (sel_item == fpcNm_ITEM_HVY_BOOTS || checkDungeonWarpItem(sel_item) || - checkTradeItem(sel_item) || - (checkBottleItem(sel_item) && sel_item != fpcNm_ITEM_EMPTY_BOTTLE) || sel_item == fpcNm_ITEM_SPINNER || - sel_item == fpcNm_ITEM_POKE_BOMB || sel_item == fpcNm_ITEM_HORSE_FLUTE || sel_item == fpcNm_ITEM_HAWK_EYE) + } else if (sel_item == fpcNm_ITEM_HVY_BOOTS + || checkDungeonWarpItem(sel_item) + || checkTradeItem(sel_item) + || (checkBottleItem(sel_item) && sel_item != fpcNm_ITEM_EMPTY_BOTTLE) + || sel_item == fpcNm_ITEM_SPINNER + || sel_item == fpcNm_ITEM_POKE_BOMB + || sel_item == fpcNm_ITEM_HORSE_FLUTE + || sel_item == fpcNm_ITEM_HAWK_EYE + ) { if (checkReinRide() || checkCanoeRide()) { if (checkDrinkBottleItem(sel_item)) { return ITEM_PROC_BOTTLE_DRINK; } - if (checkOilBottleItem(sel_item) && checkItemSetButton(0x48) != 2) { + if (checkOilBottleItem(sel_item) && checkItemSetButton(fpcNm_ITEM_KANTERA) != 2) { return ITEM_PROC_KANDELAAR_POUR; } } else if (sel_item == fpcNm_ITEM_HVY_BOOTS) { @@ -13914,15 +14510,15 @@ int daAlink_c::checkNewItemChange(u8 param_0) { } else if (checkItemSetButton(0x108) != 2 && (sel_item == fpcNm_ITEM_WORM || sel_item == fpcNm_ITEM_BEE_CHILD)) { - int temp_r3_8 = dComIfGp_getSelectItem(checkItemSetButton(0x108)); - if (temp_r3_8 == fpcNm_ITEM_WORM_ROD || temp_r3_8 == fpcNm_ITEM_JEWEL_WORM_ROD) { + int itemNo = dComIfGp_getSelectItem(checkItemSetButton(0x108)); + if (itemNo == fpcNm_ITEM_WORM_ROD || itemNo == fpcNm_ITEM_JEWEL_WORM_ROD) { if (sel_item == fpcNm_ITEM_BEE_CHILD) { return ITEM_PROC_BOTTLE_DRINK; } return ITEM_PROC_NONE; } if (sel_item == fpcNm_ITEM_BEE_CHILD && - (temp_r3_8 == fpcNm_ITEM_BEE_ROD || temp_r3_8 == fpcNm_ITEM_JEWEL_BEE_ROD)) + (itemNo == fpcNm_ITEM_BEE_ROD || itemNo == fpcNm_ITEM_JEWEL_BEE_ROD)) { return ITEM_PROC_BOTTLE_DRINK; } @@ -13941,7 +14537,7 @@ int daAlink_c::checkNewItemChange(u8 param_0) { if (acceptSubjectModeChange()) { return ITEM_PROC_SUBJECTIVITY; } - } else if (sel_item == fpcNm_ITEM_POKE_BOMB && dComIfGp_getSelectItemNum(param_0) && + } else if (sel_item == fpcNm_ITEM_POKE_BOMB && dComIfGp_getSelectItemNum(i_selItemIdx) && field_0x2fcf < 2) { return ITEM_PROC_PICK_PUT; @@ -13949,26 +14545,25 @@ int daAlink_c::checkNewItemChange(u8 param_0) { } } } else if (sel_item != fpcNm_ITEM_NONE && mEquipItem != sel_item) { - if ((checkBombItem(sel_item) && !dComIfGp_getSelectItemNum(param_0)) || - ((sel_item == fpcNm_ITEM_NORMAL_BOMB || sel_item == fpcNm_ITEM_WATER_BOMB) && mActiveBombNum >= 3) || - (sel_item == fpcNm_ITEM_IRONBALL && (!mLinkAcch.ChkGroundHit() || checkModeFlg(0x70C52))) || - (sel_item == fpcNm_ITEM_KANTERA && (checkNoResetFlg0(FLG0_UNDERWATER) || - checkEndResetFlg1(ERFLG1_UNK_4) || checkModeFlg(0x40000)))) + if ((checkBombItem(sel_item) && !dComIfGp_getSelectItemNum(i_selItemIdx)) + || ((sel_item == fpcNm_ITEM_NORMAL_BOMB || sel_item == fpcNm_ITEM_WATER_BOMB) && mActiveBombNum >= 3) + || (sel_item == fpcNm_ITEM_IRONBALL && (!mLinkAcch.ChkGroundHit() || checkModeFlg(0x70C52))) + || (sel_item == fpcNm_ITEM_KANTERA && (checkNoResetFlg0(FLG0_WATER_IN_MOVE) || checkEndResetFlg1(ERFLG1_UNK_4) || checkModeFlg(0x40000)))) { return ITEM_PROC_NONE; } return ITEM_PROC_COMMON_CHANGE_ITEM; } - if (mEquipItem == sel_item && mSelectItemId != param_0 && mEquipItem == fpcNm_ITEM_EMPTY_BOTTLE) { + if (mEquipItem == sel_item && mSelectItemId != i_selItemIdx && mEquipItem == fpcNm_ITEM_EMPTY_BOTTLE) { return ITEM_PROC_BOTTLE_SWING; } return ITEM_PROC_NONE; } -void daAlink_c::deleteEquipItem(BOOL i_playSound, BOOL i_deleteKantera) { - if (i_deleteKantera || mProcID == PROC_UNEQUIP) { +void daAlink_c::deleteEquipItem(BOOL i_isPlaySound, BOOL i_isDeleteKantera) { + if (i_isDeleteKantera || mProcID == PROC_UNEQUIP) { offKandelaarModel(); } else if (mEquipItem == fpcNm_ITEM_KANTERA && checkNoResetFlg2(FLG2_UNK_1)) { mZ2Link.setKanteraState(2); @@ -13980,7 +14575,7 @@ void daAlink_c::deleteEquipItem(BOOL i_playSound, BOOL i_deleteKantera) { fopAc_ac_c* item_actor = mItemAcKeep.getActor(); - if (i_playSound) { + if (i_isPlaySound) { if (mEquipItem == 0x103) { if (checkWoodSwordEquip()) { seStartOnlyReverb(Z2SE_AL_ITEM_TAKEOUT_FAST); @@ -14074,8 +14669,8 @@ void daAlink_c::deleteEquipItem(BOOL i_playSound, BOOL i_deleteKantera) { field_0x2f94 = 0xFF; field_0x2f95 = 0xFF; - offNoResetFlg2(FLG2_UNK_20000000); - offNoResetFlg1(FLG1_UNK_8000); + offNoResetFlg2(FLG2_FISHING_CAST_WAIT); + offNoResetFlg1(FLG1_FISHING_ROD_CASTING_END); if (mpHookSound != NULL) { mpHookSound->deleteObject(); @@ -14084,24 +14679,24 @@ void daAlink_c::deleteEquipItem(BOOL i_playSound, BOOL i_deleteKantera) { } void daAlink_c::setLight() { - const daAlinkHIO_huLight_c1* light_m = &daAlinkHIO_huLight_c0::m; + const daAlinkHIO_huLight_c1* light_m = &mpHIO->mItem.mLanternPL.m; BOOL var_r28 = false; if (checkWolf()) { offNoResetFlg1(FLG1_UNK_80); } else { if (checkNoResetFlg2(FLG2_UNK_1) || checkEndResetFlg1(ERFLG1_UNK_4)) { - if (dComIfGs_getOil() != 0 && !checkNoResetFlg2(FLG2_UNK_10000000) && ((checkNoResetFlg2(FLG2_UNK_1) && !checkFreezeDamage()) || checkEndResetFlg1(ERFLG1_UNK_10))) { + if (dComIfGs_getOil() != 0 && !checkNoResetFlg2(FLG2_KANDELAAR_LIGHT_OFF) && ((checkNoResetFlg2(FLG2_UNK_1) && !checkFreezeDamage()) || checkEndResetFlg1(ERFLG1_UNK_10))) { onNoResetFlg1(FLG1_UNK_80); if (!checkEventRun() && !checkEndResetFlg1(ERFLG1_UNK_4)) { dComIfGp_setItemOilCount(-mpHIO->mItem.mLantern.m.mNormalOilLoss); } - u16 ptcl_id; + u16 effName; dPa_levelEcallBack* callbackp; if (checkKandelaarSwingAnime() || mProcID == PROC_KANDELAAR_SWING) { - ptcl_id = 0x362; + effName = ID_ZI_J_KANTERA_SWINGFIRE; callbackp = &field_0x2f20; JPABaseEmitter* emitterp = dComIfGp_particle_getEmitter(field_0x31c4); @@ -14109,11 +14704,11 @@ void daAlink_c::setLight() { emitterp->stopDrawParticle(); } } else { - ptcl_id = 0x2BC; + effName = ID_ZI_J_KANTERA_FIRE; callbackp = NULL; } - field_0x31c4 = dComIfGp_particle_set(field_0x31c4, ptcl_id, &mKandelaarFlamePos, &tevStr, &shape_angle, NULL, 0xFF, callbackp, -1, NULL, NULL, NULL); + field_0x31c4 = dComIfGp_particle_set(field_0x31c4, effName, &mKandelaarFlamePos, &tevStr, &shape_angle, NULL, 0xFF, callbackp, -1, NULL, NULL, NULL); mZ2Link.getKantera().startLevelSound(Z2SE_AL_KANTERA_BURNING, 0, mVoiceReverbIntensity); } else if (checkNoResetFlg1(FLG1_UNK_80)) { mZ2Link.getKantera().startSound(Z2SE_AL_KANTERA_OFF, 0, mVoiceReverbIntensity); @@ -14130,10 +14725,7 @@ void daAlink_c::setLight() { cLib_addCalc(&field_0x3448, scale_targ, 0.5f, 0.3f, 0.1f); - Vec glow_scale = {0.0f, 0.0f, 0.0f}; - glow_scale.x = field_0x3448; - glow_scale.y = field_0x3448; - glow_scale.z = field_0x3448; + Vec glow_scale = {field_0x3448, field_0x3448, field_0x3448}; mpKanteraGlowModel->setBaseScale(glow_scale); } else { offNoResetFlg1(FLG1_UNK_80); @@ -14165,7 +14757,7 @@ void daAlink_c::setLight() { f32 var_f29; if (mProcID == PROC_METAMORPHOSE && mProcVar5.field_0x3012 != 0) { var_f29 = 0.05f; - } else if (checkEndResetFlg2(ERFLG2_UNK_10)) { + } else if (checkEndResetFlg2(ERFLG2_LIGHT_SWORD_GET_EFFECT)) { var_f30 = 0.28f; var_f29 = 0.01f; var_f31 = 1.5f; @@ -14188,7 +14780,7 @@ void daAlink_c::setLight() { spC4.z = light_m->mZOffset; f32 var_f26; - if ((uintptr_t)light_m == (uintptr_t)&daAlinkHIO_wlLight_c0::m) { + if ((uintptr_t)light_m == (uintptr_t)&mpHIO->mWolf.mLight.m) { cXyz spD0 = eyePos - field_0x34e0; s16 sp104 = spD0.atan2sY_XZ(); s16 sp106 = spD0.atan2sX_Z(); @@ -14225,21 +14817,26 @@ void daAlink_c::setFrontRollCrashShock(u8 param_0) { dKy_Sound_set(current.pos, 100, fopAcM_GetID(this), 5); } -MtxP daAlink_c::getModelJointMtx(u16 param_0) { - if (param_0 >= field_0x30c6) { +MtxP daAlink_c::getModelJointMtx(u16 i_jointNo) { + if (i_jointNo >= field_0x30c6) { + JUT_ASSERT(22489, 0); + + #if !DEBUG return mpLinkModel->mBaseTransformMtx; + #endif } - return mpLinkModel->getAnmMtx(param_0); + + return mpLinkModel->getAnmMtx(i_jointNo); } -void daAlink_c::onFrollCrashFlg(u8 param_0, BOOL param_1) { +void daAlink_c::onFrollCrashFlg(u8 i_flg, BOOL param_1) { if (param_1) { onNoResetFlg0(FLG0_UNK_10); } else { onNoResetFlg0(FLG0_UNK_8); } - mRollCrashFlg = param_0; + mRollCrashFlg = i_flg; } void daAlink_c::changeWarpMaterial(daAlink_c::daAlink_WARP_MAT_MODE i_matMode) { @@ -14308,7 +14905,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { field_0x280c.clearData(); if (mProcID == PROC_BOTTLE_SWING) { - offNoResetFlg2(FLG2_UNK_10000000); + offNoResetFlg2(FLG2_KANDELAAR_LIGHT_OFF); } } else if (mProcID == PROC_HOOKSHOT_FLY) { cancelHookshotCarry(); @@ -14330,7 +14927,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { shape_angle.y += 0x8000; field_0x2fe4 = shape_angle.y; shape_angle.x = -shape_angle.x; - field_0x2fe6 = shape_angle.y; + mPrevAngleY = shape_angle.y; if (mProcID != PROC_WOLF_SLIDE_READY) { current.angle.y = shape_angle.y; } @@ -14345,7 +14942,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { { dComIfGp_getVibration().StopQuake(0x1F); } else if (mProcID == PROC_GUARD_BREAK) { - field_0x814.SetTgApid(fpcM_ERROR_PROCESS_ID_e); + mCcStts.SetTgApid(fpcM_ERROR_PROCESS_ID_e); } if (mProcID == PROC_CHAIN_UP || mProcID == PROC_WOLF_CHAIN_UP) { @@ -14429,7 +15026,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { !mItemAcKeep.getActor()->eventInfo.checkCommandDemoAccrpt()) && !checkEndResetFlg0(ERFLG0_UNK_1000)) { - deleteEquipItem(0, 0); + deleteEquipItem(FALSE, FALSE); resetUpperAnime(UPPER_2, -1.0f); } @@ -14526,10 +15123,10 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { offNoResetFlg2(FLG2_UNK_200); } - offNoResetFlg2(daPy_FLG2(0x11102)); + offNoResetFlg2(daPy_FLG2(FLG2_WOLF_DASH_AUTO_JUMP | FLG2_PRESSED_DAMAGE | FLG2_UNK_100 | FLG2_COMBO_RESERB)); offResetFlg0(RFLG0_UNK_2); - offNoResetFlg1(daPy_FLG1(0x48004001)); - offNoResetFlg0(daPy_FLG0(0x80018)); + offNoResetFlg1(daPy_FLG1(FLG1_FREEZE_DAMAGE | FLG1_UNK_8000000 | FLG1_THROW_DAMAGE | FLG1_DK_CAUGHT)); + offNoResetFlg0(daPy_FLG0(FLG0_FAST_SWORD_CUT | FLG0_UNK_10 | FLG0_UNK_8)); field_0x28f8 = -1; mSight.offDrawFlg(); @@ -14544,7 +15141,11 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { field_0x3078 = 0; - if (((!checkEquipAnime() || !checkModeFlg(4)) && (!checkModeFlg(0x40000) || !checkWolfEnemyThrowAnime()) && !checkModeFlg(0x1000)) || (checkSwordTwirlAnime() && mProcID != PROC_ATN_ACTOR_WAIT && mProcID != PROC_ATN_ACTOR_MOVE) || (checkWolf() && checkFmChainGrabAnime() && checkModeFlg(0x40)) || checkNoResetFlg1(FLG1_UNK_10000000)) { + if (((!checkEquipAnime() || !checkModeFlg(4)) && (!checkModeFlg(0x40000) || !checkWolfEnemyThrowAnime()) && !checkModeFlg(0x1000)) + || (checkSwordTwirlAnime() && mProcID != PROC_ATN_ACTOR_WAIT && mProcID != PROC_ATN_ACTOR_MOVE) + || (checkWolf() && checkFmChainGrabAnime() && checkModeFlg(0x40)) + || checkNoResetFlg1(FLG1_UNK_10000000)) + { if ((!checkDkCaught2Anime() || mProcID != PROC_DAMAGE) && !checkNoSetUpperAnime()) { resetUpperAnime(UPPER_2, mpHIO->mBasic.m.mBasicInterpolation); } @@ -14564,7 +15165,8 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { } if ((dComIfGp_checkPlayerStatus0(0, 8) && !checkModeFlg(MODE_VINE_CLIMB) && mProcID != PROC_HANG_CLIMB) || - ((dComIfGp_checkPlayerStatus1(0, 0x2000000) && mProcID != PROC_HOOKSHOT_WALL_SHOOT && mProcID != PROC_HOOKSHOT_WALL_WAIT))) { + ((dComIfGp_checkPlayerStatus1(0, 0x2000000) && mProcID != PROC_HOOKSHOT_WALL_SHOOT && mProcID != PROC_HOOKSHOT_WALL_WAIT))) + { if (mProcID == PROC_CLIMB_TO_ROOF) { current.pos.x += 10.0f * cM_ssin(shape_angle.y); current.pos.z += 10.0f * cM_scos(shape_angle.y); @@ -14613,12 +15215,12 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { if (checkModeFlg(MODE_VINE_CLIMB | MODE_NO_COLLISION)) { if (checkWolf()) { - field_0x814.SetWeight(0xFF); + mCcStts.SetWeight(0xFF); } else { - field_0x814.SetWeight(0xFE); + mCcStts.SetWeight(0xFE); } } else { - field_0x814.SetWeight(0x78); + mCcStts.SetWeight(0x78); } dComIfGp_setAdvanceDirection(0); @@ -14629,7 +15231,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { if (prev_flg_40000 && !checkModeFlg(MODE_SWIMMING)) { if (mProcID != PROC_CAUGHT && mProcID != PROC_HOOKSHOT_FLY && - !checkNoResetFlg0(FLG0_UNDERWATER)) + !checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { swimOutAfter(0); } @@ -14638,7 +15240,8 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { setBgCheckParam(); if ((checkNoResetFlg2(FLG2_WOLF_ENEMY_HANG_BITE) && mProcID != PROC_WOLF_ENEMY_HANG_BITE) || - (checkNoResetFlg2(FLG2_UNK_8) && mProcID != PROC_WOLF_ENEMY_THROW && !checkWolfEnemyThrowAnime())) { + (checkNoResetFlg2(FLG2_UNK_8) && mProcID != PROC_WOLF_ENEMY_THROW && !checkWolfEnemyThrowAnime())) + { resetWolfEnemyBiteAll(); } @@ -14654,11 +15257,11 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { } } -BOOL daAlink_c::commonProcInitNotSameProc(daAlink_PROC procID) { - if (mProcID == procID) { +BOOL daAlink_c::commonProcInitNotSameProc(daAlink_PROC i_procID) { + if (mProcID == i_procID) { return false; } else { - commonProcInit(procID); + commonProcInit(i_procID); return true; } } @@ -14750,7 +15353,7 @@ int daAlink_c::procServiceWaitInit() { int daAlink_c::procServiceWait() { J3DFrameCtrl* frameCtrl_p = mUnderFrameCtrl; if ((!checkNextAction(0) && !checkFrontWallTypeAction()) && - (checkEventRun() || checkGuardActionChange() || shape_angle.y != field_0x2fe6)) + (checkEventRun() || checkGuardActionChange() || shape_angle.y != mPrevAngleY)) { frameCtrl_p->setRate(0.0f); procWaitInit(); @@ -14780,16 +15383,16 @@ int daAlink_c::procTiredWaitInit() { ((tired_anm && mNowAnmPackUnder[0].getRatio() < 0.75f) || checkUnderMove1BckNoArc(ANM_STEP_TURN) || checkUnderMove1BckNoArc(ANM_SMALL_GUARD))) { - f32 var_f31; + f32 frame; if (tired_anm) { - var_f31 = mUnderFrameCtrl[0].getFrame(); + frame = mUnderFrameCtrl[0].getFrame(); } else { - var_f31 = mUpperFrameCtrl[1].getFrame(); + frame = mUpperFrameCtrl[1].getFrame(); } setSingleAnimeBase(ANM_WAIT_TIRED); - mUnderFrameCtrl[0].setFrame(var_f31); - getNowAnmPackUnder(UNDER_0)->setFrame(var_f31); + mUnderFrameCtrl[0].setFrame(frame); + getNowAnmPackUnder(UNDER_0)->setFrame(frame); } else { setSingleAnimeBase(ANM_WAIT_TO_TIRED); } @@ -14801,7 +15404,7 @@ int daAlink_c::procTiredWait() { daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; if (!checkNextAction(0)) { - if (frameCtrl_p->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl_p)) { setSingleAnimeBase(ANM_WAIT_TIRED); } else if (frameCtrl_p->getAttribute() == 2) { setTiredVoice(frameCtrl_p); @@ -14820,7 +15423,7 @@ int daAlink_c::procWaitInit() { return 0; } - if (!checkEventRun() && mProcID == PROC_SERVICE_WAIT && !mUnderFrameCtrl[0].checkAnmEnd() && + if (!checkEventRun() && mProcID == PROC_SERVICE_WAIT && !checkAnmEnd(mUnderFrameCtrl) && checkNoUpperAnime()) { return 0; @@ -14854,26 +15457,26 @@ int daAlink_c::procWaitInit() { } int daAlink_c::procWait() { - BOOL anm_wait_b = checkUnderMove0BckNoArc(ANM_WAIT_B); + BOOL isPrevAnmWaitB = checkUnderMove0BckNoArc(ANM_WAIT_B); if (!checkNextAction(0) && !checkFrontWallTypeAction()) { daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - field_0x33f0 = (s16)(shape_angle.y - field_0x2fe6) * 0.005f; + field_0x33f0 = (s16)(shape_angle.y - mPrevAngleY) * 0.005f; - if (frameCtrl_p->checkAnmEnd() || checkUpperGuardAnime() || + if (checkAnmEnd(frameCtrl_p) || checkUpperGuardAnime() || !checkUnderMove0BckNoArc(ANM_WAIT_B_TO_A)) { - if (checkRestHPAnime() && shape_angle.y == field_0x2fe6) { + if (checkRestHPAnime() && shape_angle.y == mPrevAngleY) { return procTiredWaitInit(); } setBlendMoveAnime(-1.0f); - if (anm_wait_b && !checkUnderMove0BckNoArc(ANM_WAIT_B)) { + if (isPrevAnmWaitB && !checkUnderMove0BckNoArc(ANM_WAIT_B)) { setSingleAnimeBase(ANM_WAIT_B_TO_A); } } else if (frameCtrl_p->checkPass(30.0f)) { - field_0x2f92 = 4; - field_0x2f93 = 10; + mLeftHandIndex = 4; + mRightHandIndex = 10; } if (checkServiceWaitMode() && checkUnderMove0BckNoArc(ANM_WAIT)) { @@ -14905,14 +15508,14 @@ int daAlink_c::procMoveInit() { int daAlink_c::procMove() { setFootEffectProcType(3); if (!checkNextAction(0) && !checkFrontWallTypeAction()) { - if (mDemo.getDemoMode() == 2 && - mNormalSpeed > field_0x594 * mpHIO->mMove.m.mWalkChangeRate) + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_2_e && + mNormalSpeed > mMaxSpeed * mpHIO->mMove.m.mWalkChangeRate) { - mNormalSpeed = field_0x594 * mpHIO->mMove.m.mWalkChangeRate; + mNormalSpeed = mMaxSpeed * mpHIO->mMove.m.mWalkChangeRate; } setBlendMoveAnime(-1.0f); - if (field_0x3174 != 8) { + if (mGroundCode != 8) { field_0x30a0 = cLib_minMaxLimit((s16)(field_0x2ff0 >> 1), mpHIO->mBasic.m.mHeadMaxTurnUp, mpHIO->mBasic.m.mHeadMaxTurnDown); @@ -14946,8 +15549,11 @@ int daAlink_c::procAtnActorWaitInit() { return 0; } + s16 var_r30; if (mTargetedActor != NULL) { - fopAcM_searchActorAngleY(this, mTargetedActor); + var_r30 = fopAcM_searchActorAngleY(this, mTargetedActor); + } else { + var_r30 = 0; } mNormalSpeed = 0.0f; @@ -15006,7 +15612,7 @@ int daAlink_c::procWaitTurnInit() { mNormalSpeed = 0.0f; } - mProcVar3.field_0x300e = field_0x2fe2; + mProcVar3.field_0x300e = mMoveAngle; current.angle.y = shape_angle.y; return 1; } @@ -15018,22 +15624,22 @@ int daAlink_c::procWaitTurn() { return 1; } else if (checkEndResetFlg0(ERFLG0_UNK_100000)) { return procFloorDownReboundInit(); - } else { - s16 angle = cLib_addCalcAngleS(&shape_angle.y, mProcVar3.field_0x300e, 30, 0x3CDF, 8000); - current.angle.y = shape_angle.y; + } - if (checkNextActionFromButton()) { - return 1; - } else if (angle == 0) { - if (checkEventRun()) { - if (mDemo.getDemoMode() == 5) { - dComIfGp_evmng_cutEnd(mAlinkStaffId); - } else if (!checkNextAction(0)) { - checkWaitAction(); - } - } else { - checkNextAction(0); + s16 angle = cLib_addCalcAngleS(&shape_angle.y, mProcVar3.field_0x300e, 30, 0x3CDF, 8000); + current.angle.y = shape_angle.y; + + if (checkNextActionFromButton()) { + return 1; + } else if (angle == 0) { + if (checkEventRun()) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_WAIT_TURN_e) { + dComIfGp_evmng_cutEnd(mAlinkStaffId); + } else if (!checkNextAction(0)) { + checkWaitAction(); } + } else { + checkNextAction(0); } } @@ -15052,7 +15658,7 @@ int daAlink_c::procMoveTurnInit(int param_0) { mProcVar3.field_0x300e = (mpHIO->mMove.m.mMaxTurnAngle * 4) + 19030; mProcVar4.field_0x3010 = mpHIO->mMove.m.mMaxTurnAngle * 2; mProcVar1.field_0x300a = 2; - current.angle.y = field_0x2fe2; + current.angle.y = mMoveAngle; mNormalSpeed *= 0.5f; } else { mProcVar3.field_0x300e = mpHIO->mMove.m.mMaxTurnAngle * 2; @@ -15076,25 +15682,25 @@ int daAlink_c::procMoveTurn() { return 1; } -int daAlink_c::procSideStepInit(int jump_type) { - if (jump_type == 1 && !checkHeavyStateOn(1, 1) && - (checkNoUpperAnime() || checkEquipAnime() || field_0x2fcc != 0 && checkUpperGuardAnime())) +int daAlink_c::procSideStepInit(int i_jumpDirection) { + if (i_jumpDirection == DIR_BACKWARD && !checkHeavyStateOn(TRUE, TRUE) && + (checkNoUpperAnime() || checkEquipAnime() || (field_0x2fcc != 0 && checkUpperGuardAnime()))) { return procBackJumpInit(0); } commonProcInit(PROC_SIDESTEP); - field_0x2f98 = jump_type; + field_0x2f98 = i_jumpDirection; - if (field_0x2f98 == 1) { + daAlink_ANM anm_id; + if (field_0x2f98 == DIR_BACKWARD) { current.angle.y = shape_angle.y + 0x8000; setSingleAnimeParam(ANM_BACK_JUMP, &mpHIO->mSideStep.m.mBackJumpAnm); mNormalSpeed = mpHIO->mSideStep.m.mBackJumpSpeedH; speed.y = mpHIO->mSideStep.m.mBackJumpSpeedV; mProcVar1.field_0x300a = 0; } else { - daAlink_ANM anm_id; - if (field_0x2f98 == 2) { + if (field_0x2f98 == DIR_LEFT) { anm_id = ANM_SIDE_JUMP_LEFT; current.angle.y = shape_angle.y + 0x4000; } else { @@ -15108,7 +15714,7 @@ int daAlink_c::procSideStepInit(int jump_type) { mProcVar1.field_0x300a = 1; } - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX; speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY; } @@ -15121,8 +15727,7 @@ int daAlink_c::procSideStepInit(int jump_type) { int daAlink_c::procSideStep() { if (mTargetedActor != NULL && mProcVar1.field_0x300a != 0) { - s16 actor_angle = fopAcM_searchActorAngleY(this, mTargetedActor); - cLib_addCalcAngleS(&shape_angle.y, actor_angle, 5, 0x5E8, 0x13C); + cLib_addCalcAngleS(&shape_angle.y, fopAcM_searchActorAngleY(this, mTargetedActor), 5, 0x5E8, 0x13C); if (field_0x2f98 == 2) { current.angle.y = shape_angle.y + 0x4000; @@ -15145,7 +15750,7 @@ int daAlink_c::procSideStep() { } } else if (checkNoUpperAnime() && checkForceSwordSwing()) { setCutDash(1, 0); - } else if (mDemo.getDemoMode() != 16 && + } else if (mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_16_e && current.pos.y < mLastJumpPos.y - mpHIO->mSideStep.m.mFallHeight) { return procFallInit(2, mpHIO->mSideStep.m.mFallInterpolation); @@ -15169,13 +15774,13 @@ int daAlink_c::procSideStepLandInit() { field_0x2fcc = 10; } else { daAlink_ANM anm_id; - u16 uvar3; + u16 anmResIdx; if (field_0x2f98 == 2) { anm_id = ANM_SIDE_JUMP_LEFT_LAND; - uvar3 = 0x3F; + anmResIdx = dRes_ID_ALANM_BCK_ATTWIRLL_e; } else { anm_id = ANM_SIDE_JUMP_RIGHT_LAND; - uvar3 = 0x40; + anmResIdx = dRes_ID_ALANM_BCK_ATTWIRLR_e; } setSingleAnimeParam(anm_id, &mpHIO->mSideStep.m.mSideLandAnm); @@ -15185,7 +15790,7 @@ int daAlink_c::procSideStepLandInit() { field_0x2fcc = 0; if (checkEnemyGroup(mTargetedActor) && mEquipItem == 0x103 && checkNoUpperAnime()) { - setUpperAnimeBaseSpeed(uvar3, mpHIO->mAtnMove.m.mWaitAnmSpeed, -1.0f); + setUpperAnimeBaseSpeed(anmResIdx, mpHIO->mAtnMove.m.mWaitAnmSpeed, -1.0f); seStartSwordCut(Z2SE_AL_WAIT_SWORD_SWING); } } @@ -15212,8 +15817,8 @@ int daAlink_c::procSideStepLand() { mProcVar2.field_0x300c = 1; } - if (frameCtrl_p->checkAnmEnd()) { - if (mDemo.getDemoMode() == 16) { + if (checkAnmEnd(frameCtrl_p)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_16_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextAction(0); @@ -15231,7 +15836,7 @@ int daAlink_c::procSideStepLand() { int daAlink_c::procSlideInit(s16 param_0) { commonProcInit(PROC_SLIDE); - field_0x814.SetWeight(255); + mCcStts.SetWeight(255); field_0x3090 = 8; current.angle.y = param_0; @@ -15250,7 +15855,7 @@ int daAlink_c::procSlideInit(s16 param_0) { onModeFlg(MODE_UNK_20000000); mNormalSpeed = 0.0f; field_0x2f9d = 4; - setUpperAnimeBaseMorf(0xCE, -1.0f); + setUpperAnimeBaseMorf(dRes_ID_ALANM_BCK_DASHWIND_e, -1.0f); onNoResetFlg1(FLG1_UNK_10000000); setFootEffectProcType(0); } else { @@ -15261,7 +15866,7 @@ int daAlink_c::procSlideInit(s16 param_0) { setFootEffectProcType(1); } - field_0x594 = mpHIO->mSlide.m.mMaxSpeed; + mMaxSpeed = mpHIO->mSlide.m.mMaxSpeed; field_0x33cc = 0.0f; mProcVar2.field_0x300c = 0; mProcVar4.field_0x3010 = 0; @@ -15274,7 +15879,7 @@ int daAlink_c::procSlide() { if (getSlidePolygon(&slide_poly)) { s16 angleY = slide_poly.mNormal.atan2sX_Z(); if (field_0x3198 != 0) { - f32 sin = field_0x33a8 * cM_ssin(field_0x2fe2 - shape_angle.y); + f32 sin = mStickValue * cM_ssin(mMoveAngle - shape_angle.y); if (checkInputOnR()) { mProcVar2.field_0x300c = @@ -15302,17 +15907,16 @@ int daAlink_c::procSlide() { if (field_0x3198 == 0 || mUnderFrameCtrl[0].getFrame() > 6.0f) { f32 accel = mpHIO->mSlide.m.mAcceleration; - f32 var_f6 = field_0x594; + f32 max_speed = mMaxSpeed; - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { accel *= 0.3f; - var_f6 *= 0.3f; + max_speed *= 0.3f; } - mNormalSpeed += accel * ((1.0f - slide_poly.mNormal.y) * 0.5f + 1.0f) * - cM_scos(current.angle.y - angleY); - if (mNormalSpeed > var_f6) { - mNormalSpeed = var_f6; + mNormalSpeed += accel * ((1.0f - slide_poly.mNormal.y) * 0.5f + 1.0f) * cM_scos(current.angle.y - angleY); + if (mNormalSpeed > max_speed) { + mNormalSpeed = max_speed; } if (field_0x3198 != 0) { @@ -15344,7 +15948,7 @@ int daAlink_c::procSlideLandInit(int param_0) { field_0x3198 = 0; } - field_0x814.SetWeight(255); + mCcStts.SetWeight(255); mNormalSpeed *= 0.5f; return 1; } @@ -15357,15 +15961,15 @@ int daAlink_c::procSlideLand() { field_0x2f99 = 4; } - if (frameCtrl_p->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl_p)) { current.angle.y = shape_angle.y; checkNextAction(0); } else if (frameCtrl_p->getFrame() > field_0x3478) { - s16 tmp_angle = current.angle.y; + s16 prev_angle = current.angle.y; current.angle.y = shape_angle.y; if (!checkNextAction(1)) { - current.angle.y = tmp_angle; + current.angle.y = prev_angle; } } @@ -15375,7 +15979,7 @@ int daAlink_c::procSlideLand() { int daAlink_c::procFrontRollInit() { BOOL is_guard_anime = checkUpperGuardAnime(); - if (mProcID == PROC_FRONT_ROLL && mDemo.getDemoMode() == 0x28) { + if (mProcID == PROC_FRONT_ROLL && mDemo.getDemoMode() == daPy_demo_c::DEMO_FRONT_ROLL_e) { return 0; } @@ -15388,21 +15992,20 @@ int daAlink_c::procFrontRollInit() { mpHIO->mFrontRoll.m.mRollAnm.mEndFrame, mpHIO->mFrontRoll.m.mRollAnm.mInterpolation); - mNormalSpeed = - speedF * mpHIO->mFrontRoll.m.mSpeedRate + mpHIO->mFrontRoll.m.mInitSpeed; + mNormalSpeed = speedF * mpHIO->mFrontRoll.m.mSpeedRate + mpHIO->mFrontRoll.m.mInitSpeed; - f32 var_f30 = mpHIO->mFrontRoll.m.mInitSpeed + mpHIO->mMove.m.mMaxSpeed * mpHIO->mFrontRoll.m.mSpeedRate; - if (mNormalSpeed > var_f30) { - mNormalSpeed = var_f30; + f32 max_speed = mpHIO->mFrontRoll.m.mInitSpeed + mpHIO->mMove.m.mMaxSpeed * mpHIO->mFrontRoll.m.mSpeedRate; + if (mNormalSpeed > max_speed) { + mNormalSpeed = max_speed; } if (mNormalSpeed < mpHIO->mFrontRoll.m.mMinSpeed) { mNormalSpeed = mpHIO->mFrontRoll.m.mMinSpeed; } - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX; - } else if (checkHeavyStateOn(1, 1)) { + } else if (checkHeavyStateOn(TRUE, TRUE)) { mNormalSpeed *= mHeavySpeedMultiplier; } @@ -15416,14 +16019,14 @@ int daAlink_c::procFrontRollInit() { } if (checkEquipHeavyBoots()) { - field_0xFB8.SetAtType(AT_TYPE_HEAVY_BOOTS); - field_0xFB8.SetAtHitMark(1); - field_0xFB8.SetAtSe(9); - field_0xFB8.SetAtAtp(2); - field_0xFB8.SetAtMtrl(dCcD_MTRL_NONE); - field_0xFB8.ResetAtHit(); - field_0xFB8.SetR(mpHIO->mFrontRoll.m.mBootsAttackRadius); - field_0xFB8.OnAtSetBit(); + mAtSph.SetAtType(AT_TYPE_HEAVY_BOOTS); + mAtSph.SetAtHitMark(1); + mAtSph.SetAtSe(dCcD_SE_METAL); + mAtSph.SetAtAtp(2); + mAtSph.SetAtMtrl(dCcD_MTRL_NONE); + mAtSph.ResetAtHit(); + mAtSph.SetR(mpHIO->mFrontRoll.m.mBootsAttackRadius); + mAtSph.OnAtSetBit(); } return 1; @@ -15439,7 +16042,7 @@ int daAlink_c::procFrontRoll() { } if (checkInputOnR()) { - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mFrontRoll.m.mTurnRate, + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, mpHIO->mFrontRoll.m.mTurnRate, mpHIO->mFrontRoll.m.mMaxTurnAngle, mpHIO->mFrontRoll.m.mTurnMinAngle); shape_angle.y = current.angle.y; @@ -15449,8 +16052,8 @@ int daAlink_c::procFrontRoll() { setUpperGuardAnime(-1.0f); } - if (frameCtrl_p->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x28) { + if (checkAnmEnd(frameCtrl_p)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_FRONT_ROLL_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { if (!checkInputOnR()) { @@ -15475,19 +16078,20 @@ int daAlink_c::procFrontRoll() { } else if (!checkNextAction(1)) { cLib_chaseF(&mNormalSpeed, 0.0f, 2.5f); } - } else if (mDemo.getDemoMode() != 0x28 && - speedF >= mpHIO->mFrontRoll.m.mCrashSpeedThreshold && - (checkNoResetFlg0(FLG0_UNK_18) || - (mAcchCir[0].ChkWallHit() && - !dComIfG_Bgsp().GetPolyAttackThrough(mAcchCir[0])) && - dComIfG_Bgsp().GetWallCode(mAcchCir[0]) != 7 && - cLib_distanceAngleS(current.angle.y + 0x8000, - mAcchCir[0].GetWallAngleY()) <= - mpHIO->mFrontRoll.m.mCrashAngleThreshold && - frameCtrl_p->getFrame() >= mpHIO->mFrontRoll.m.mCrashInitF && - frameCtrl_p->getFrame() <= mpHIO->mFrontRoll.m.mCrashEndF)) + } else if (mDemo.getDemoMode() != daPy_demo_c::DEMO_FRONT_ROLL_e + && speedF >= mpHIO->mFrontRoll.m.mCrashSpeedThreshold + && + (checkNoResetFlg0(daPy_FLG0(FLG0_UNK_10 | FLG0_UNK_8)) + || ((mAcchCir[0].ChkWallHit() && !dComIfG_Bgsp().GetPolyAttackThrough(mAcchCir[0])) + && dComIfG_Bgsp().GetWallCode(mAcchCir[0]) != 7 + && cLib_distanceAngleS(current.angle.y + 0x8000, mAcchCir[0].GetWallAngleY()) <= mpHIO->mFrontRoll.m.mCrashAngleThreshold + && frameCtrl_p->getFrame() >= mpHIO->mFrontRoll.m.mCrashInitF + && frameCtrl_p->getFrame() <= mpHIO->mFrontRoll.m.mCrashEndF + ) + ) + ) { - if (!checkNoResetFlg0(FLG0_UNK_18)) { + if (!checkNoResetFlg0(daPy_FLG0(FLG0_UNK_10 | FLG0_UNK_8))) { mRollCrashFlg = dKy_pol_sound_get(&mAcchCir[0]); } @@ -15511,8 +16115,8 @@ int daAlink_c::procFrontRoll() { if (frameCtrl_p->getFrame() > 16.0f) { if (frameCtrl_p->getFrame() >= 18.0f) { - field_0x2f92 = 1; - field_0x2f93 = 6; + mLeftHandIndex = 1; + mRightHandIndex = 6; } cLib_chaseF(&mNormalSpeed, 0.0f, 1.0f); @@ -15534,7 +16138,7 @@ int daAlink_c::procFrontRollCrashInit() { mNormalSpeed = mpHIO->mFrontRoll.m.mCrashSpeedH; speed.y = mpHIO->mFrontRoll.m.mCrashSpeedV; - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX; speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY; } @@ -15551,15 +16155,15 @@ int daAlink_c::procFrontRollCrash() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; if (!checkModeFlg(2)) { - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextAction(0); } else if (frameCtrl->getFrame() > mpHIO->mFrontRoll.m.mCrashAnm.mCancelFrame) { onModeFlg(4); checkNextAction(1); } else if (frameCtrl->getFrame() >= 18.0f) { - field_0x2f92 = 4; + mLeftHandIndex = 4; } else if (frameCtrl->getFrame() >= 14.0f) { - field_0x2f93 = 10; + mRightHandIndex = 10; } } else if ((mLinkAcch.ChkGroundHit() || checkEndResetFlg2(ERFLG2_UNK_100) || checkMagneBootsOn()) && @@ -15568,6 +16172,11 @@ int daAlink_c::procFrontRollCrash() { mNormalSpeed = 0.0f; setWaterInAnmRate(frameCtrl, mpHIO->mFrontRoll.m.mCrashAnm.mSpeed); frameCtrl->offEndFlg(); + + #if DEBUG + mpHIO->jumpStateUpdate(&mLastJumpPos, ¤t.pos, l_jumpTop); + #endif + current.angle.y = shape_angle.y; voiceStart(Z2SE_AL_V_ZENTEN_FAIL_2); offModeFlg(2); @@ -15578,13 +16187,13 @@ int daAlink_c::procFrontRollCrash() { } int daAlink_c::procFrontRollSuccessInit() { - BOOL dk_caught = mProcID == PROC_DK_CAUGHT; + BOOL is_prev_dkCaught = mProcID == PROC_DK_CAUGHT; commonProcInit(PROC_FRONT_ROLL_SUCCESS); setSingleAnimeParam(ANM_BARRIER_RECOIL, &mpHIO->mFrontRoll.m.mCrashHitAnm); mNormalSpeed = 0.0f; - if (!dk_caught) { + if (!is_prev_dkCaught) { setFrontRollCrashShock(mRollCrashFlg); onResetFlg0(RFLG0_FRONT_ROLL_CRASH); } else { @@ -15606,7 +16215,7 @@ int daAlink_c::procFrontRollSuccess() { field_0x2f99 = 4; onEndResetFlg0(ERFLG0_UNK_8000000); - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { current.angle.y = shape_angle.y; checkNextAction(0); } else if (frameCtrl->getFrame() > mpHIO->mFrontRoll.m.mCrashHitAnm.mCancelFrame) { @@ -15614,8 +16223,8 @@ int daAlink_c::procFrontRollSuccess() { current.angle.y = shape_angle.y; checkNextAction(1); } else if (frameCtrl->getFrame() >= 14.0f) { - field_0x2f92 = 1; - field_0x2f93 = 6; + mLeftHandIndex = 1; + mRightHandIndex = 6; } else if (frameCtrl->getFrame() > 9.0f) { field_0x2f9d = 0x60; } @@ -15624,7 +16233,7 @@ int daAlink_c::procFrontRollSuccess() { } int daAlink_c::procSideRollInit(int param_0) { - BOOL guard_anime = checkUpperGuardAnime(); + BOOL is_prev_guardAnm = checkUpperGuardAnime(); if (!commonProcInitNotSameProc(PROC_SIDE_ROLL)) { return 0; @@ -15647,9 +16256,9 @@ int daAlink_c::procSideRollInit(int param_0) { mpHIO->mGuard.mTurnMove.m.mTurnAnm.mInterpolation); mNormalSpeed = mpHIO->mGuard.mTurnMove.m.mSideRollSpeed; - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX; - } else if (checkHeavyStateOn(1, 1)) { + } else if (checkHeavyStateOn(TRUE, TRUE)) { mNormalSpeed *= mHeavySpeedMultiplier; } @@ -15657,19 +16266,18 @@ int daAlink_c::procSideRollInit(int param_0) { field_0x2f9d = 4; voiceStart(Z2SE_AL_V_SOTOMO_ROLL); - if (guard_anime) { + if (is_prev_guardAnm) { onNoResetFlg0(FLG0_UNK_2); } - mProcVar2.field_0x300c = 0; + mProcVar2.field_0x300c = 0; return 1; } int daAlink_c::procSideRoll() { onEndResetFlg0(ERFLG0_UNK_8000000); if (mTargetedActor != NULL) { - s16 actor_angle = fopAcM_searchActorAngleY(this, mTargetedActor); - cLib_addCalcAngleS(&shape_angle.y, actor_angle, 5, 0x5E8, 0x13C); + cLib_addCalcAngleS(&shape_angle.y, fopAcM_searchActorAngleY(this, mTargetedActor), 5, 0x5E8, 0x13C); if (field_0x2f98 == 2) { current.angle.y = shape_angle.y + 0x4000; @@ -15691,8 +16299,8 @@ int daAlink_c::procSideRoll() { setUpperGuardAnime(-1.0f); } - if (frameCtrl_p->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x49) { + if (checkAnmEnd(frameCtrl_p)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_73_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { if (!checkAttentionLock()) { @@ -15728,7 +16336,7 @@ int daAlink_c::procSideRoll() { void daAlink_c::backJumpSpeedDec() { if (mLinkAcch.ChkGroundHit()) { if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) { - f32 jump_speed; + f32 jump_speed = mNormalSpeed; if (dBgS_CheckBWallPoly(mLinkAcch.m_gnd)) { jump_speed = 0.0f; } else { @@ -15746,9 +16354,9 @@ void daAlink_c::backJumpSpeedDec() { } int daAlink_c::procBackJumpInit(int param_0) { - u32 horse_ride = checkHorseRide(); - BOOL guard_anime = checkUpperGuardAnime(); - BOOL ganon_finish = mProcID == PROC_GANON_FINISH; + u32 isHorseRide = checkHorseRide(); + BOOL is_prev_guardAnm = checkUpperGuardAnime(); + BOOL is_prev_ganonFinish = mProcID == PROC_GANON_FINISH; commonProcInit(PROC_BACK_JUMP); @@ -15766,14 +16374,14 @@ int daAlink_c::procBackJumpInit(int param_0) { field_0x3478 = mNormalSpeed; - if (horse_ride) { + if (isHorseRide) { onModeFlg(0x2000); mProcVar0.field_0x3008 = 5; } else { mProcVar0.field_0x3008 = 0; } - if (ganon_finish) { + if (is_prev_ganonFinish) { shape_angle.y -= -0x8000; setOldRootQuaternion(0, -0x8000, 0); field_0x2060->getOldFrameTransInfo(0)->mTranslate.z += 55.0f; @@ -15783,7 +16391,7 @@ int daAlink_c::procBackJumpInit(int param_0) { current.angle.y = shape_angle.y - -0x8000; field_0x3198 = 2; - if (guard_anime) { + if (is_prev_guardAnm) { onNoResetFlg0(FLG0_UNK_2); } @@ -15803,7 +16411,7 @@ int daAlink_c::procBackJump() { backJumpSpeedDec(); - if (mLinkAcch.ChkGroundHit() && mUnderFrameCtrl[0].checkAnmEnd()) { + if (mLinkAcch.ChkGroundHit() && checkAnmEnd(mUnderFrameCtrl)) { procBackJumpLandInit(field_0x3198); } else if (mDemo.getDemoMode() != 0x10 && current.pos.y < mLastJumpPos.y - mpHIO->mBackJump.m.mFallHeight) @@ -15841,9 +16449,9 @@ int daAlink_c::procBackJumpLand() { onEndResetFlg0(ERFLG0_UNK_8000000); - if (frameCtrl->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x10) { - dComIfGp_getPEvtManager()->cutEnd(mAlinkStaffId); + if (checkAnmEnd(frameCtrl)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_16_e) { + dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { if (!checkAttentionLock()) { offNoResetFlg2(FLG2_UNK_8000000); @@ -15880,7 +16488,7 @@ int daAlink_c::procSlip() { if (checkInputOnR()) { current.angle.y = shape_angle.y + 0x8000; shape_angle.y += 0x100; - mNormalSpeed = field_0x594 * 0.5f; + mNormalSpeed = mMaxSpeed * 0.5f; procMoveTurnInit(0); } else { checkNextAction(0); @@ -15890,7 +16498,7 @@ int daAlink_c::procSlip() { cXyz sp8; mProcVar0.field_0x3008--; - if (mLinkAcch.ChkWallHit() || (field_0x3174 == 8 && mProcVar0.field_0x3008 == 0)) { + if (mLinkAcch.ChkWallHit() || (mGroundCode == 8 && mProcVar0.field_0x3008 == 0)) { mNormalSpeed = 0.0f; checkNextAction(0); return 1; @@ -15916,18 +16524,14 @@ int daAlink_c::procSlip() { return 1; } -// TODO: Move / setup later -class ni_class : public fopAc_ac_c { -public: - bool checkGold() { return mType == 3; } - - /* 0x568 */ u8 field_0x568[0x5F0 - 0x568]; - /* 0x5F0 */ s8 mType; -}; - int daAlink_c::procAutoJumpInit(int param_0) { u32 chk_mode_400 = checkModeFlg(0x400); - BOOL not_front_roll = mProcID != PROC_FRONT_ROLL ? TRUE : FALSE; + BOOL not_front_roll; + if (mProcID == PROC_FRONT_ROLL) { + not_front_roll = FALSE; + } else { + not_front_roll = TRUE; + } if (checkIronBallWaitAnime()) { resetUpperAnime(UPPER_2, -1.0f); @@ -15944,7 +16548,7 @@ int daAlink_c::procAutoJumpInit(int param_0) { mProcVar0.field_0x3008 = 0; - if (chk_mode_400 || (mDemo.getDemoMode() == 0x18 && mDemo.getParam0() == 1)) { + if (chk_mode_400 || (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_24_e && mDemo.getParam0() == 1)) { if (chk_mode_400) { onModeFlg(0x2000); mProcVar0.field_0x3008 = 5; @@ -15972,27 +16576,27 @@ int daAlink_c::procAutoJumpInit(int param_0) { } s16 angle = mpHIO->mAutoJump.m.mJumpAngle; - BOOL cucco_jump = false; + BOOL isCuccoJump = false; field_0x3478 = -10.0f; if (grab_actor_name == PROC_NI || grab_actor_name == PROC_NPC_TKJ2) { if (grab_actor_name == PROC_NI && ((ni_class*)mGrabItemAcKeep.getActor())->checkGold() == true) { - field_0x594 = 30.0f; + mMaxSpeed = 30.0f; } else { if (checkStageName("F_SP115")) { - field_0x594 = 27.0f; + mMaxSpeed = 27.0f; field_0x3478 = -10.0f; } else { - field_0x594 = mpHIO->mAutoJump.m.mCuccoJumpMaxSpeed; + mMaxSpeed = mpHIO->mAutoJump.m.mCuccoJumpMaxSpeed; field_0x3478 = mpHIO->mAutoJump.m.mCuccoFallMaxSpeed; } angle = mpHIO->mAutoJump.m.mCuccoJumpAngle; - cucco_jump = true; + isCuccoJump = true; } } else { - field_0x594 = mpHIO->mAutoJump.m.mMaxJumpSpeed; + mMaxSpeed = mpHIO->mAutoJump.m.mMaxJumpSpeed; } if (checkGrabGlide()) { @@ -16000,12 +16604,12 @@ int daAlink_c::procAutoJumpInit(int param_0) { } if (chk_mode_400) { - speedF = field_0x594 * 0.75f; + speedF = mMaxSpeed * 0.75f; } else { - if (speedF > field_0x594 || param_0 || + if (speedF > mMaxSpeed || param_0 || mpHIO->mAutoJump.m.mAlwaysMaxSpeedJump == true) { - speedF = field_0x594; + speedF = mMaxSpeed; } else if (speedF < mpHIO->mAutoJump.m.mMinJumpSpeed) { speedF = mpHIO->mAutoJump.m.mMinJumpSpeed; } @@ -16015,7 +16619,7 @@ int daAlink_c::procAutoJumpInit(int param_0) { speed.y = mNormalSpeed * cM_ssin(angle); mNormalSpeed *= cM_scos(angle); - if (cucco_jump) { + if (isCuccoJump) { mNormalSpeed = mpHIO->mAutoJump.m.mCuccoStartSpeed; } @@ -16024,7 +16628,7 @@ int daAlink_c::procAutoJumpInit(int param_0) { offNoResetFlg0(FLG0_UNK_40000); mProcVar2.field_0x300c = 0; - onResetFlg0(RFLG0_UNK_100); + onResetFlg0(RFLG0_AUTO_JUMP_START); mFallVoiceInit = false; return 1; } @@ -16032,10 +16636,21 @@ int daAlink_c::procAutoJumpInit(int param_0) { int daAlink_c::procAutoJump() { int direction = getDirectionFromCurrentAngle(); + #if VERSION == VERSION_SHIELD_DEBUG + if (!checkStageName("F_SP115") && mGrabItemAcKeep.getActor() != NULL) { + if ((fopAcM_GetName(mGrabItemAcKeep.getActor()) == PROC_NI && ((ni_class*)mGrabItemAcKeep.getActor())->checkGold() != TRUE) || + (fopAcM_GetName(mGrabItemAcKeep.getActor()) == PROC_NPC_TKJ2)) + { + mMaxSpeed = mpHIO->mAutoJump.m.mCuccoJumpMaxSpeed; + field_0x3478 = mpHIO->mAutoJump.m.mCuccoFallMaxSpeed; + } + } + #endif + if (checkInputOnR() && direction == DIR_BACKWARD) { - cLib_chaseF(&mNormalSpeed, 0.0f, field_0x33a8 * 0.2f); + cLib_chaseF(&mNormalSpeed, 0.0f, mStickValue * 0.2f); } else if (checkGrabGlide()) { - cLib_chaseF(&mNormalSpeed, field_0x594, 0.1f); + cLib_chaseF(&mNormalSpeed, mMaxSpeed, 0.1f); } else if (!checkInputOnR()) { cLib_chaseF(&mNormalSpeed, 0.0f, 0.1f); } @@ -16061,16 +16676,15 @@ int daAlink_c::procAutoJump() { } if (!checkGrabAnime()) { - dCcD_Cyl* cyl_p = field_0x850; - for (int i = 0; i < 3; i++) { - fopAc_ac_c* hit_ac = cyl_p->GetCoHitAc(); + dCcD_Cyl* cyl_p = mTgCyls; + fopAc_ac_c* hit_ac; + for (int i = 0; i < 3; i++, cyl_p++) { + hit_ac = cyl_p->GetCoHitAc(); if (cyl_p->ChkCoHit() && hit_ac != NULL) { if (fopAcM_GetName(hit_ac) == PROC_Obj_SwHang) { return procRoofSwitchHangInit(hit_ac); } } - - cyl_p++; } if (checkFrontWallTypeAction() || checkCutJumpInFly()) { @@ -16083,7 +16697,7 @@ int daAlink_c::procAutoJump() { } if (mProcVar2.field_0x300c != 0) { - setDoStatus(1); + setDoStatus(BUTTON_STATUS_LET_GO); if (doTrigger()) { freeGrabItem(); @@ -16092,7 +16706,7 @@ int daAlink_c::procAutoJump() { if (!checkGrabGlide()) { setSpecialGravity(mpHIO->mAutoJump.m.mGravity, - mpHIO->mAutoJump.m.mMaxFallSpeed, 1); + mpHIO->mAutoJump.m.mMaxFallSpeed, TRUE); mProcVar2.field_0x300c = 0; resetUpperAnime(UPPER_1, 3.0f); field_0x30a0 = 0; @@ -16102,15 +16716,15 @@ int daAlink_c::procAutoJump() { if (!checkBootsOrArmorHeavy()) { mFallHeight = current.pos.y; - setSpecialGravity(-1.0f, field_0x3478, 0); + setSpecialGravity(-1.0f, field_0x3478, FALSE); } else { setSpecialGravity(mpHIO->mAutoJump.m.mGravity, - mpHIO->mAutoJump.m.mMaxFallSpeed * 0.6666667f, 0); + mpHIO->mAutoJump.m.mMaxFallSpeed * 0.6666667f, FALSE); } s16 diff; if (checkInputOnR() && direction != DIR_BACKWARD) { - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, 5, 200, 50); + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, 5, 200, 50); diff = current.angle.y - shape_angle.y; shape_angle.y = current.angle.y; } else { @@ -16130,7 +16744,7 @@ int daAlink_c::procAutoJump() { field_0x3198 = 0x8C; } else if (speed.y < -gravity && field_0x2f99 == 4) { if (checkGrabGlide()) { - setSpecialGravity(-1.0f, field_0x3478, 0); + setSpecialGravity(-1.0f, field_0x3478, FALSE); mProcVar2.field_0x300c = 1; } @@ -16138,12 +16752,12 @@ int daAlink_c::procAutoJump() { mpHIO->mAutoJump.m.mJumpFallInterpolation); if (mProcVar2.field_0x300c != 0) { - setUpperAnime(0x276, UPPER_1, 1.0f, 0.0f, -1, 3.0f); + setUpperAnime(dRes_ID_ALANM_BCK_WALKHBS_e, UPPER_1, 1.0f, 0.0f, -1, 3.0f); } field_0x2f99 = 0x20; field_0x3198 = 0x33; - } else if (field_0x3198 == 0x31 && mUnderFrameCtrl[0].checkAnmEnd()) { + } else if (field_0x3198 == 0x31 && checkAnmEnd(mUnderFrameCtrl)) { setSingleAnimeBaseSpeed(ANM_JUMP, 0.0f, mpHIO->mAutoJump.m.mAirborneInterpolation); field_0x3198 = 0x32; } @@ -16183,7 +16797,7 @@ int daAlink_c::procDiveJump() { } if (mProcVar2.field_0x300c == 0) { - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { setSingleAnimeParam(ANM_DIVE, &mpHIO->mAutoJump.m.mDiveConnectAnm); mProcVar2.field_0x300c = 1; field_0x2f99 = 2; @@ -16204,12 +16818,12 @@ int daAlink_c::procRollJumpInit() { setSingleAnimeBaseSpeed(ANM_ROLL_JUMP, 0.0f, mpHIO->mAutoJump.m.mSpinJumpInterpolation); - field_0x3478 = field_0x3410; - mNormalSpeed = field_0x3410; - speed.y = field_0x3414; + field_0x3478 = mRollJumpSpeedH; + mNormalSpeed = mRollJumpSpeedH; + speed.y = mRollJumpSpeedV; - field_0x2fe6 = field_0x30ee; - shape_angle.y = field_0x30ee; + mPrevAngleY = mRollJumpAngle; + shape_angle.y = mRollJumpAngle; current.angle.y = shape_angle.y; mLinkAcch.ClrGroundHit(); @@ -16244,8 +16858,7 @@ int daAlink_c::procRollJump() { } cLib_chaseF(&field_0x347c, - field_0x33a8 * cM_scos(field_0x2fe2 - shape_angle.y) * - mpHIO->mAutoJump.m.mSpinJumpAddSpeed, + mStickValue * cM_scos(mMoveAngle - shape_angle.y) * mpHIO->mAutoJump.m.mSpinJumpAddSpeed, mpHIO->mAutoJump.m.mSpinJumpAccel); mNormalSpeed = field_0x3478 + field_0x347c; } @@ -16253,16 +16866,14 @@ int daAlink_c::procRollJump() { return 1; } -#include "d/d_com_inf_game.h" - -int daAlink_c::procFallInit(int param_0, f32 param_1) { - if (mDemo.getDemoMode() == 0x11) { +int daAlink_c::procFallInit(int param_0, f32 i_morf) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_17_e) { mLinkAcch.SetGrndNone(); mLinkAcch.OnLineCheckNone(); } u32 var_r3 = checkModeFlg(0x10000) && !dComIfGp_checkPlayerStatus0(0, 8); - u8 temp_r30 = mProcID != PROC_CANOE_GETOFF; + BOOL temp_r30 = mProcID != PROC_CANOE_GETOFF; BOOL temp_r29 = mProcID == PROC_ROOF_HANG_FRONT_MOVE; if (mProcID == PROC_HORSE_GETOFF) { @@ -16273,8 +16884,8 @@ int daAlink_c::procFallInit(int param_0, f32 param_1) { return 0; } - if (checkNoResetFlg0(FLG0_UNDERWATER)) { - offNoResetFlg0(FLG0_UNDERWATER); + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { + offNoResetFlg0(FLG0_WATER_IN_MOVE); } mProcVar5.field_0x3012 = 0; @@ -16304,7 +16915,7 @@ int daAlink_c::procFallInit(int param_0, f32 param_1) { } mProcVar4.field_0x3010 = temp_r30; - setSingleAnimeBaseSpeed(ANM_JUMP_LAND, 0.0f, param_1); + setSingleAnimeBaseSpeed(ANM_JUMP_LAND, 0.0f, i_morf); resetBasAnime(); if (param_0 != 4 && current.angle.y == shape_angle.y && !checkGrabAnime()) { @@ -16357,7 +16968,7 @@ int daAlink_c::procFall() { setFrontWallType(); if ((field_0x32cc != 0 || - ((checkInputOnR() && getDirectionFromShapeAngle() == 0) || doTrigger())) && + ((checkInputOnR() && getDirectionFromShapeAngle() == DIR_FORWARD) || doTrigger())) && checkFrontWallTypeAction()) { return 1; @@ -16396,9 +17007,8 @@ int daAlink_c::procLandInit(f32 param_0) { if (checkGrabGlide()) { mUnderFrameCtrl[0].setRate(0.5f); - } else if (checkNoResetFlg0(FLG0_UNDERWATER)) { - f32 rate = mUnderFrameCtrl[0].getRate() * 0.34999999f; - mUnderFrameCtrl[0].setRate(rate); + } else if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { + mUnderFrameCtrl[0].setRate(mUnderFrameCtrl[0].getRate() * 0.34999999f); } field_0x2f9d = 4; @@ -16414,24 +17024,23 @@ int daAlink_c::procLandInit(f32 param_0) { int daAlink_c::procLand() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextAction(0); } else if (frameCtrl->getFrame() > mpHIO->mAutoJump.m.mLandAnm.mCancelFrame) { checkNextAction(1); } else if (frameCtrl->checkPass(4.0f)) { - int var_r4; + int vibmode; if (checkBootsOrArmorHeavy()) { - var_r4 = 3; - } else if (checkNoResetFlg0(FLG0_UNDERWATER) || + vibmode = VIBMODE_S_POWER3; + } else if (checkNoResetFlg0(FLG0_WATER_IN_MOVE) || field_0x3478 < mpHIO->mDamage.mDamFall.m.mMinRollHeight) { - var_r4 = 1; + vibmode = VIBMODE_S_POWER1; } else { - var_r4 = 2; + vibmode = VIBMODE_S_POWER2; } - f32 tmp_0 = 0.0f; - dComIfGp_getVibration().StartShock(var_r4, 15, cXyz(tmp_0, 1.0f, tmp_0)); + dComIfGp_getVibration().StartShock(vibmode, 15, cXyz(0.0f, 1.0f, 0.0f)); } return 1; @@ -16498,9 +17107,8 @@ int daAlink_c::procSmallJump() { setJumpMode(); mNormalSpeed = mpHIO->mWallHang.mSmallJump.m.mSpeedH; - if (checkHeavyStateOn(1, 1) && !checkNoResetFlg0(FLG0_UNDERWATER)) { - f32 temp = mpHIO->mWallHang.mSmallJump.m.mTargetHeightOffset + - (field_0x3478 - current.pos.y); + if (checkHeavyStateOn(TRUE, TRUE) && !checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { + f32 temp = mpHIO->mWallHang.mSmallJump.m.mTargetHeightOffset + (field_0x3478 - current.pos.y); // fakematch speed.y = JMAFastSqrt(2.0f * (temp * -(gravity * 2.25f))); } else { speed.y = @@ -16531,7 +17139,6 @@ int daAlink_c::procStepMoveInit() { mProcVar2.field_0x300c = 0; field_0x3588 = l_waitBaseAnime; - return 1; } @@ -16541,7 +17148,7 @@ int daAlink_c::procStepMove() { if (mProcVar2.field_0x300c != 0) { field_0x2f99 = 4; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { return checkNextAction(0); } @@ -16554,7 +17161,7 @@ int daAlink_c::procStepMove() { mNormalSpeed = 0.0f; } - } else if (frameCtrl->checkAnmEnd()) { + } else if (checkAnmEnd(frameCtrl)) { setSingleAnimeParam(ANM_S_JUMP_END, &mpHIO->mWallHang.mSmallJump.m.mStepLandAnm); current.pos.set(field_0x34ec.x + cM_ssin(shape_angle.y) * 2.0f, field_0x34ec.y, field_0x34ec.z + cM_scos(shape_angle.y) * 2.0f); @@ -16580,12 +17187,12 @@ int daAlink_c::procCrouch() { cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration); if (checkAttentionState()) { - setFaceBasicBck(0xE8); + setFaceBasicBck(dRes_ID_ALANM_BCK_FAT_e); } else { setFaceBasicBck(0); } - if (mDemo.getDemoMode() != 0x29 && + if (mDemo.getDemoMode() != daPy_demo_c::DEMO_CROUCH_e && (mSinkShapeOffset <= -80.0f || (checkAttentionLock() && checkGuardAccept()))) { checkNextActionFromCrouch(0); @@ -16617,8 +17224,8 @@ int daAlink_c::procCoMetamorphoseInit() { field_0x347c = 1.0f; mFallVoiceInit = 0; - if ((checkWolf() && mDemo.getDemoMode() == 0x39) || - (!checkWolf() && mDemo.getDemoMode() == 0x3A)) + if ((checkWolf() && mDemo.getDemoMode() == daPy_demo_c::DEMO_METAMORPHOSE_UNK1_e) || + (!checkWolf() && mDemo.getDemoMode() == daPy_demo_c::DEMO_METAMORPHOSE_UNK2_e)) { mProcVar1.field_0x300a = 1; speed.y = 0.0f; @@ -16630,7 +17237,7 @@ int daAlink_c::procCoMetamorphoseInit() { } else { deleteEquipItem(FALSE, TRUE); - if (checkEndResetFlg0(ERFLG0_UNK_2) && checkStageName("D_MN08")) { + if (checkEndResetFlg0(ERFLG0_FORCE_WOLF_CHANGE) && checkStageName("D_MN08")) { mProcVar4.field_0x3010 = 1; } mProcVar1.field_0x300a = 0; @@ -16647,16 +17254,16 @@ int daAlink_c::procCoMetamorphoseInit() { if (checkMidnaRide() && daMidna_c::checkMidnaRealBody() && midna->checkDemoTypeNone()) { midna->changeOriginalDemo(); - midna->changeDemoMode(15); + midna->changeDemoMode(daPy_demo_c::DEMO_UNK_15_e); } } else { // Transform Human -> Wolf - if (mDemo.getDemoMode() == 0x39 && mDemo.getParam1() == 1) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_METAMORPHOSE_UNK1_e && mDemo.getParam1() == 1) { voiceStart(Z2SE_AL_V_TRANSFORM); } setSingleAnimeBase(ANM_TRANSFORM_TO_WOLF); - setMetamorphoseModel(1); + setMetamorphoseModel(TRUE); field_0x3588 = l_waitBaseAnime; field_0x3480 = mpHIO->mBasic.m.mLinkToWolfCancelFrame; @@ -16721,7 +17328,7 @@ int daAlink_c::procCoMetamorphose() { return 1; } - daPy_frameCtrl_c* temp_r29 = mUnderFrameCtrl; + daPy_frameCtrl_c* framectrl = mUnderFrameCtrl; if (!mLinkAcch.ChkGroundHit()) { current.pos.y = field_0x3484; speed.y = 0.0f; @@ -16735,7 +17342,7 @@ int daAlink_c::procCoMetamorphose() { if (mClothesChangeWaitTimer == 0) { mProcVar5.field_0x3012 = 1; - if (mDemo.getParam0() == 1 && (mDemo.getDemoMode() == 0x39 || mDemo.getDemoMode() == 0x3A)) { + if (mDemo.getParam0() == 1 && (mDemo.getDemoMode() == daPy_demo_c::DEMO_METAMORPHOSE_UNK1_e || mDemo.getDemoMode() == daPy_demo_c::DEMO_METAMORPHOSE_UNK2_e)) { dComIfGp_evmng_cutEnd(mAlinkStaffId); if (checkWolf()) { @@ -16750,7 +17357,8 @@ int daAlink_c::procCoMetamorphose() { } Vec sp8 = {0.0f, 0.0f, 0.0f}; - sp8.z = l_wolfBaseAnime.z - l_waitBaseAnime.z; + f32 var_f29 = l_wolfBaseAnime.z - l_waitBaseAnime.z; + sp8.z = var_f29; if (!checkWolf()) { setSingleAnimeBaseMorf(ANM_TRANSFORM_TO_HUMAN, -1.0f); @@ -16773,9 +17381,12 @@ int daAlink_c::procCoMetamorphose() { } } - } else if (checkAnmEnd(temp_r29) || ((mDemo.getParam0() == 1) && (mDemo.getDemoMode() == 0x39 || mDemo.getDemoMode() == 0x3A)) || (mProcVar5.field_0x3012 != 0 && temp_r29->getFrame() > field_0x3480 && (checkInputOnR() || doTrigger() || grassCancelTrigger()))) { + } else if (checkAnmEnd(framectrl) + || ((mDemo.getParam0() == 1) && (mDemo.getDemoMode() == daPy_demo_c::DEMO_METAMORPHOSE_UNK1_e || mDemo.getDemoMode() == daPy_demo_c::DEMO_METAMORPHOSE_UNK2_e)) + || (mProcVar5.field_0x3012 != 0 && framectrl->getFrame() > field_0x3480 && (checkInputOnR() || doTrigger() || grassCancelTrigger()))) + { if (mProcVar5.field_0x3012 != 0) { - deleteEquipItem(0, 0); + deleteEquipItem(FALSE, FALSE); if (field_0x3198 != 0) { resetSpecialEvent(); @@ -16800,16 +17411,16 @@ int daAlink_c::procCoMetamorphose() { mProcVar0.field_0x3008 = 1; if (mProcVar4.field_0x3010 != 0) { - /* dSv_event_flag_c::F_0776 - Palace of Twilight - Link first turned to wolf due to fog in Palace of Twilight */ - dComIfGs_onEventBit(0x5E40); + dComIfGs_onEventBit(dSv_event_flag_c::F_0776); } } - field_0x33dc = temp_r29->getFrame(); + field_0x33dc = framectrl->getFrame(); + f32 var_f31; if (mProcVar5.field_0x3012 != 0) { if (checkWolf()) { - f32 var_f31 = 1.0f - (0.03846154f * field_0x33dc); + var_f31 = 1.0f - (0.03846154f * field_0x33dc); if (var_f31 < 0.0f) { var_f31 = 0.0f; } @@ -16818,24 +17429,24 @@ int daAlink_c::procCoMetamorphose() { } else if (field_0x33dc < 14.0f) { mProcVar3.field_0x300e = 15.0 + (49.0 * (1.0 - (0.07142857142857142 * field_0x33dc))); } else { - f32 var_f31_2 = 1.0f - (0.2f * (field_0x33dc - 14.0f)); - if (var_f31_2 < 0.0f) { - var_f31_2 = 0.0f; + var_f31 = 1.0f - (0.2f * (field_0x33dc - 14.0f)); + if (var_f31 < 0.0f) { + var_f31 = 0.0f; } - mProcVar3.field_0x300e = 15.0f * var_f31_2; + mProcVar3.field_0x300e = 15.0f * var_f31; } } else if (checkWolf() != 0) { mProcVar3.field_0x300e = -64.0 * (0.07142857142857142 * field_0x33dc); } else if (field_0x33dc < 9.0f) { mProcVar3.field_0x300e = -15.0 * (0.1111111111111111 * field_0x33dc); } else { - f32 var_f31_3 = 0.2f * (field_0x33dc - 9.0f); - if (var_f31_3 > 1.0f) { - var_f31_3 = 1.0f; + var_f31 = 0.2f * (field_0x33dc - 9.0f); + if (var_f31 > 1.0f) { + var_f31 = 1.0f; } - mProcVar3.field_0x300e = -(15.0f + (49.0f * var_f31_3)); + mProcVar3.field_0x300e = -(15.0f + (49.0f * var_f31)); } if (!checkWolf()) { @@ -16873,9 +17484,9 @@ int daAlink_c::procCoMetamorphoseOnlyInit() { return 1; } - deleteEquipItem(0, 1); - if ((checkWolf() && mDemo.getDemoMode() == 0x46) || - (!checkWolf() && mDemo.getDemoMode() == 0x47)) + deleteEquipItem(FALSE, TRUE); + if ((checkWolf() && mDemo.getDemoMode() == daPy_demo_c::DEMO_METAMORPHOSE_ONLY_UNK1_e) || + (!checkWolf() && mDemo.getDemoMode() == daPy_demo_c::DEMO_METAMORPHOSE_ONLY_UNK2_e)) { mProcVar2.field_0x300c = 1; mProcVar3.field_0x300e = 1; @@ -16886,7 +17497,7 @@ int daAlink_c::procCoMetamorphoseOnlyInit() { mNormalSpeed = 0.0f; speed.y = 0.0f; - setSpecialGravity(0.0f, maxFallSpeed, 0); + setSpecialGravity(0.0f, maxFallSpeed, FALSE); return 1; } @@ -16927,7 +17538,7 @@ int daAlink_c::procFloorDownReboundInit() { int daAlink_c::procFloorDownRebound() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextAction(0); } else if (frameCtrl->getFrame() > mpHIO->mAutoJump.m.mLandAnm.mCancelFrame) { checkNextAction(1); @@ -16936,14 +17547,14 @@ int daAlink_c::procFloorDownRebound() { return 1; } -int daAlink_c::procGoronRideWaitInit(fopAc_ac_c* param_0) { +int daAlink_c::procGoronRideWaitInit(fopAc_ac_c* i_goronActor) { if (!commonProcInitNotSameProc(PROC_GORON_RIDE_WAIT)) { return 0; } mNormalSpeed = 0.0f; - current.pos.x = param_0->current.pos.x; - current.pos.z = param_0->current.pos.z; + current.pos.x = i_goronActor->current.pos.x; + current.pos.z = i_goronActor->current.pos.z; field_0x2f99 = 0x50; current.angle.y = shape_angle.y; setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation); @@ -16956,27 +17567,27 @@ int daAlink_c::procGoronRideWait() { checkNextAction(0); } else { if (checkInputOnR()) { - cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, 2, 500, 100); + cLib_addCalcAngleS(&shape_angle.y, mMoveAngle, 2, 500, 100); } s16 temp_r0 = shape_angle.y - current.angle.y; - daAlink_ANM var_r28; + daAlink_ANM anm; if (temp_r0 > 0) { - var_r28 = ANM_STEP_TURN; + anm = ANM_STEP_TURN; } else if (temp_r0 < 0) { - var_r28 = ANM_SMALL_GUARD; + anm = ANM_SMALL_GUARD; } else { - var_r28 = ANM_WAIT; + anm = ANM_WAIT; } - f32 var_f31 = 0.8f + (0.002f * abs(temp_r0)); - if (var_f31 > 1.0f) { - var_f31 = 1.0f; + f32 blendRate = 0.8f + (0.002f * abs(temp_r0)); + if (blendRate > 1.0f) { + blendRate = 1.0f; } - var_f31 = 1.0f - var_f31; + blendRate = 1.0f - blendRate; - setDoubleAnime(var_f31, mpHIO->mBasic.m.mRotationASpeed, mpHIO->mMove.m.mWaitAnmSpeed, var_r28, ANM_WAIT, 2, -1.0f); + setDoubleAnime(blendRate, mpHIO->mBasic.m.mRotationASpeed, mpHIO->mMove.m.mWaitAnmSpeed, anm, ANM_WAIT, 2, -1.0f); current.angle.y = shape_angle.y; } @@ -16991,7 +17602,8 @@ int daAlink_c::execute() { } if (field_0x30fe != 0) { - *field_0x814.GetCCMoveP() = field_0x372c * (1.0f / (f32)field_0x30fe); + f32 var_f26 = 1.0f / (f32)field_0x30fe; + *mCcStts.GetCCMoveP() = field_0x372c * var_f26; } if (checkHorseRide() && checkBoarSingleBattle() && dComIfGp_getHorseActor() != NULL) { @@ -17003,12 +17615,30 @@ int daAlink_c::execute() { shape_angle.y = field_0x3108; } + #if VERSION == VERSION_SHIELD_DEBUG + if (checkWolf()) { + l_autoUpHeight = mpHIO->mWolf.mWlWallHang.m.mAutoWalkHeight + 0.1f; + field_0x3470 = cM_scos(cM_deg2s(mpHIO->mWolf.mWlSlide.m.mSlidingAngle)); + field_0x3122 = cM_deg2s(mpHIO->mWolf.mWlSlide.m.mClimbingAngle); + } else { + l_autoUpHeight = mpHIO->mWallHang.m.auto_walk_height + 0.1f; + field_0x3470 = cM_scos(cM_deg2s(mpHIO->mSlide.m.mSlideAngle)); + field_0x3122 = cM_deg2s(mpHIO->mSlide.m.mClimbAngle); + + if (checkBoardRide()) { + mMaxSpeed = mpHIO->mItem.mBoard.m.mMaxSpeed; + } + } + + l_autoDownHeight = -l_autoUpHeight; + #endif + if (checkNoResetFlg2(FLG2_UNK_1) && mEquipItem != fpcNm_ITEM_KANTERA && checkItemSetButton(fpcNm_ITEM_KANTERA) == 2) { offKandelaarModel(); } mSwordChangeWaitTimer = 0; - setSelectEquipItem(0); + setSelectEquipItem(FALSE); if (dComIfGp_event_runCheck()) { mAlinkStaffId = dComIfGp_evmng_getMyStaffId("Alink", this, 0); @@ -17051,10 +17681,13 @@ int daAlink_c::execute() { field_0x34c8.y += (current.pos.y - pos_y) * 0.1f; } } - } else if (mProcID != PROC_HOOKSHOT_FLY && !checkModeFlg(MODE_VINE_CLIMB | MODE_UNK_800) && - mProcID != PROC_TOOL_DEMO && mLinkAcch.GetGroundH() != -G_CM3D_F_INF && - dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && - dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) + } else if (mProcID != PROC_HOOKSHOT_FLY + && !checkModeFlg(MODE_VINE_CLIMB | MODE_UNK_800) + && mProcID != PROC_TOOL_DEMO + && mLinkAcch.GetGroundH() != -G_CM3D_F_INF + && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) + && dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd) + ) { bool uvar23; if (mProcID == PROC_SPINNER_READY) { @@ -17071,9 +17704,9 @@ int daAlink_c::execute() { } field_0x3798 = old.pos; - field_0x2fe6 = shape_angle.y; + mPrevAngleY = shape_angle.y; mPrevStickAngle = mStickAngle; - field_0x33a4 = field_0x33ac; + field_0x33a4 = mMoveValue; if (checkResetFlg0(RFLG0_UNK_8000000) && !checkCutDashAnime()) { mCutType = 0; @@ -17094,30 +17727,29 @@ int daAlink_c::execute() { deleteEquipItem(FALSE, FALSE); } - field_0x2fae = 0; + mUseButtonFlags = 0; - setDoStatus(0); - setRStatus(0); - set3DStatus(0, 0); - setMidnaTalkStatus(0); + setDoStatus(BUTTON_STATUS_NONE); + setRStatus(BUTTON_STATUS_NONE); + set3DStatus(BUTTON_STATUS_NONE, 0); + setMidnaTalkStatus(BUTTON_STATUS_NONE); if (checkWolf()) { - setBStatus(ACTION_STR_ATTACK); - setWolfDigStatus(ACTION_STR_NONE); + setBStatus(BUTTON_STATUS_ATTACK); + setWolfDigStatus(BUTTON_STATUS_NONE); - // Have wolf sense ability - if (dComIfGs_isEventBit(0x4308)) { - setWolfSenceStatus(ACTION_STR_SENSE); + if (dComIfGs_isEventBit(dSv_event_flag_c::F_0550)) { + setWolfSenceStatus(BUTTON_STATUS_SENSE); } else { - setWolfSenceStatus(ACTION_STR_NONE); + setWolfSenceStatus(BUTTON_STATUS_NONE); } } else { if (checkCanoeRide() && checkStageName("F_SP127")) { - setBStatus(ACTION_STR_NONE5); + setBStatus(BUTTON_STATUS_UNK_79); } else if (checkSwordGet()) { - setBStatus(ACTION_STR_NONE3); + setBStatus(BUTTON_STATUS_UNK_38); } else { - setBStatus(ACTION_STR_NONE); + setBStatus(BUTTON_STATUS_NONE); } } @@ -17130,10 +17762,10 @@ int daAlink_c::execute() { field_0x280c.setActor(); mRideAcKeep.setActor(); - if (checkNoResetFlg2(FLG2_UNK_58)) { + if (checkNoResetFlg2(daPy_FLG2(FLG2_WOLF_ENEMY_HANG_BITE | FLG2_UNK_10 | FLG2_UNK_8))) { field_0x281c.setActor(); if (field_0x281c.getActor() == NULL) { - offNoResetFlg2(FLG2_UNK_58); + offNoResetFlg2(daPy_FLG2(FLG2_WOLF_ENEMY_HANG_BITE | FLG2_UNK_10 | FLG2_UNK_8)); } } else { field_0x281c.clearData(); @@ -17256,21 +17888,30 @@ int daAlink_c::execute() { event_name = NULL; } - if (event_name != NULL && (!strcmp(event_name, "kiko_yami") || !strcmp(event_name, "fire_insect") || - (checkStageName("F_SP108") && - (!strcmp(event_name, "MapToolCamera19") || !strcmp(event_name, "yami_mog"))) || - (checkStageName("R_SP109") && - (!strcmp(event_name, "MapToolCamera1") || !strcmp(event_name, "MapToolCamera2") || - !strcmp(event_name, "MapToolCamera19") || !strcmp(event_name, "fire_insect"))) || - (checkStageName("F_SP115") && !strcmp(event_name, "MapToolCamera23")))) + if (event_name != NULL && + (strcmp(event_name, "kiko_yami") == 0 + || strcmp(event_name, "fire_insect") == 0 + || (checkStageName("F_SP108") && (strcmp(event_name, "MapToolCamera19") == 0 || strcmp(event_name, "yami_mog") == 0)) + || (checkStageName("R_SP109") && (strcmp(event_name, "MapToolCamera1") == 0 + || strcmp(event_name, "MapToolCamera2") == 0 + || strcmp(event_name, "MapToolCamera19") == 0 + || strcmp(event_name, "fire_insect") == 0 + ) + ) + || (checkStageName("F_SP115") && strcmp(event_name, "MapToolCamera23") == 0) + ) + ) { - mWolfEyeUp = mpHIO->mWolf.m.mSensesLingerTime + 1; - } else if (checkEndResetFlg1(ERFLG1_WOLF_EYE_KEEP) || (checkDungeon() && eventInfo.checkCommandDoor()) || - mProcID == PROC_WOLF_GET_SMELL || mProcID == PROC_WOLF_DIG || - mProcID == PROC_WOLF_DIG_THROUGH || checkNoResetFlg0(FLG0_UNK_4000) || - dComIfGp_checkPlayerStatus1(0, 0x1000000) || - (checkEventRun() && partner != NULL && (partner->attention_info.flags & fopAc_AttnFlag_UNK_0x400000)) || - !strcmp(dComIfGp_getEventManager().getRunEventName(), l_defaultGetEventName)) + mWolfEyeUp = mpHIO->mWolf.m.mSensesLingerTime + 1; + } else if (checkEndResetFlg1(ERFLG1_WOLF_EYE_KEEP) + || (checkDungeon() && eventInfo.checkCommandDoor()) + || mProcID == PROC_WOLF_GET_SMELL + || mProcID == PROC_WOLF_DIG + || mProcID == PROC_WOLF_DIG_THROUGH + || checkNoResetFlg0(FLG0_UNK_4000) + || dComIfGp_checkPlayerStatus1(0, 0x1000000) + || (checkEventRun() && partner != NULL && (partner->attention_info.flags & fopAc_AttnFlag_UNK_0x400000)) + || strcmp(dComIfGp_getEventManager().getRunEventName(), l_defaultGetEventName) == 0) { mWolfEyeUp = mpHIO->mWolf.m.mSensesLingerTime; } else if (mTargetedActor != NULL || dComIfGp_checkPlayerStatus0(0, 0x2000)) { @@ -17288,647 +17929,719 @@ int daAlink_c::execute() { mSwordFlourishTimer = mpHIO->mCut.m.mFlourishTime; } - if ((checkWolf() && field_0x2fbc == 11 && checkWaterPolygonUnder()) || field_0x2fbb == 11) { - onNoResetFlg0(FLG0_UNK_40000000); + if ((checkWolf() && field_0x2fbc == 11 && checkWaterPolygonUnder()) || mGndPolyAtt0 == 11) { + onNoResetFlg0(FLG0_HEAVY_STATE); } fopAc_ac_c* item_actor = mGrabItemAcKeep.getActor(); if (item_actor != NULL && (!fopAcM_checkCarryNow(item_actor) || - (checkNoResetFlg0(FLG0_UNDERWATER) && + (checkNoResetFlg0(FLG0_WATER_IN_MOVE) && (checkGrabRooster() || fopAcM_GetName(item_actor) == PROC_E_NEST || checkGrabCarryActor())))) { freeGrabItem(); + item_actor = NULL; } - allAnimePlay(); - - if (mDamageTimer != 0) { - damageTimerCount(); + BOOL isTrigDebugMoveInput = FALSE; + #if DEBUG + if (daPy_getPlayerActorClass() == this && checkDebugMoveInput()) { + isTrigDebugMoveInput = TRUE; + if (l_debugMode) { + l_debugMode = FALSE; + } else { + l_debugMode = TRUE; + } } - if (checkEquipHeavyBoots()) { - int temp_r3_22 = checkItemSetButton(fpcNm_ITEM_HVY_BOOTS); - if (temp_r3_22 == 2 || checkNotHeavyBootsStage()) { - if (!dComIfGp_checkPlayerStatus1(0, 0x10000) || !checkHookshotRoofLv7Boss()) { - setHeavyBoots(0); + if (l_debugMode) { + if (checkModeFlg(0x400) && !checkBoardRide() && !checkSpinnerRide()) { + if (checkCanoeRide()) { + setSyncCanoePos(); + } else { + setSyncRide(0); } } else { - dMeter2Info_onDirectUseItem(temp_r3_22); - } - } - - checkWarpStart(); - - if (!checkSpecialDemoMode() && mClothesChangeWaitTimer == 0) { - if (!checkDemoAction() && !checkDeadAction(0) && !checkNoResetFlg0(FLG0_UNK_100000) && - !checkAutoJumpAction()) - { - checkSwimAction(0); - } - - if (checkDamageAction() && mProcID == PROC_LARGE_DAMAGE && checkMagneBootsOn()) { - cancelMagneBootsOn(); - } - - checkBoomerangCatchAction(); - } - - offNoResetFlg1(FLG1_UNK_20); - - if (checkWolf()) { - checkWolfComboCnt(); - - if (checkWolfEnemyThrowAnime()) { - checkWolfEnemyThrowAction(); - } - } else { - checkItemButtonChange(); - setItemAction(); - checkComboCnt(); - setShieldGuard(); - - if (checkCutFastReady()) { - if (checkNoUpperAnime()) { - setUpperAnime(0x255, UPPER_2, mpHIO->mCut.m.mEquipAnm.mSpeed, 12.0f, - mpHIO->mCut.m.mEquipAnm.mEndFrame, - mpHIO->mCut.m.mEquipAnm.mInterpolation); - onNoResetFlg0(FLG0_UNK_1000000); - } - } else if (checkNoResetFlg0(FLG0_UNK_1000000)) { - resetUpperAnime(UPPER_2, 5.0f); - } - - if (mEquipItem == fpcNm_ITEM_KANTERA && checkNoUpperAnime() && !checkKandelaarEquipAnime() && - (checkModeFlg(MODE_UNK_1000) || mProcID == PROC_CROUCH)) - { - if (checkReinRide()) { - setUpperAnimeBase(0x264); + f32 moveSpeed; + if (mDoCPd_c::getHoldLockR(PAD_1)) { + moveSpeed = 100.0f; } else { - setUpperAnimeBase(0x268); + moveSpeed = 50.0f; } - mNowAnmPackUpper[2].setRatio(0.0f); + if (mDoCPd_c::getHoldY(PAD_1)) { + current.pos.y += moveSpeed; + } else if (mDoCPd_c::getHoldX(PAD_1)) { + current.pos.y -= moveSpeed; + } + + current.pos.x += moveSpeed * mStickValue * cM_ssin(mMoveAngle); + current.pos.z += moveSpeed * mStickValue * cM_scos(mMoveAngle); } - } - checkLightSwordMtrl(); - (this->*mpProcFunc)(); + setMatrix(); + mpLinkModel->calc(); - if (!checkEndResetFlg0(ERFLG0_UNK_2000) && checkWindDashAnime()) { - resetUpperAnime(UPPER_2, 3.0f); - } - - playFaceTextureAnime(); + if (!checkWolf()) { + setItemMatrix(0); + } else { + setWolfItemMatrix(); + } + setBodyPartPos(); + setAttentionPos(); + } else + #endif { - cXyz old_pos = current.pos; - posMove(); + if (isTrigDebugMoveInput) { + mItemButton = 0; + mItemTrigger = 0; + } + + allAnimePlay(); + + if (mDamageTimer != 0) { + damageTimerCount(); + } + + if (checkEquipHeavyBoots()) { + int itemButton = checkItemSetButton(fpcNm_ITEM_HVY_BOOTS); + if (itemButton == 2 || checkNotHeavyBootsStage()) { + if (!dComIfGp_checkPlayerStatus1(0, 0x10000) || !checkHookshotRoofLv7Boss()) { + setHeavyBoots(0); + } + } else { + dMeter2Info_onDirectUseItem(itemButton); + } + } + + checkWarpStart(); + + if (!checkSpecialDemoMode() && mClothesChangeWaitTimer == 0) { + if (!checkDemoAction() && !checkDeadAction(0) && !checkNoResetFlg0(FLG0_UNK_100000) && + !checkAutoJumpAction()) + { + checkSwimAction(0); + } + + if (checkDamageAction() && mProcID == PROC_LARGE_DAMAGE && checkMagneBootsOn()) { + cancelMagneBootsOn(); + } + + checkBoomerangCatchAction(); + } + + offNoResetFlg1(FLG1_UNK_20); if (checkWolf()) { - wolfBgCheck(); - } else if (checkModeFlg(MODE_SWIMMING)) { - swimBgCheck(120.0f); - } + checkWolfComboCnt(); - cXyz pos = current.pos; - field_0x3528 = speed; + if (checkWolfEnemyThrowAnime()) { + checkWolfEnemyThrowAction(); + } + } else { + checkItemButtonChange(); + setItemAction(); + checkComboCnt(); + setShieldGuard(); - mLinkAcch.ClrGroundHit(); - mLinkAcch.CrrPos(dComIfG_Bgsp()); - - if (checkMagneBootsOn()) { - current.pos = pos; - } - - if (!mLinkAcch.ChkGroundHit() && !mLinkAcch.ChkRoofHit() && getZoraSwim()) { - current.pos.y = pos.y; - } - - iceSlipBgCheck(); - setWaterY(); - autoGroundHit(); - - if (checkNoResetFlg0(FLG0_UNDERWATER) || - (checkPossibleWaterInMode() && !checkNoResetFlg0(FLG0_SWIM_UP))) - { - f32 var_f31; - if (mProcID == PROC_HOOKSHOT_FLY) { - var_f31 = current.pos.y - (field_0x598 * 0.5f); - } else if (dComIfGp_checkPlayerStatus1(0, 0x2000000)) { - var_f31 = (current.pos.y + -65.0f) - (mpHIO->mSwim.m.mStartHeight - 5.0f); - } else { - var_f31 = current.pos.y; + if (checkCutFastReady()) { + if (checkNoUpperAnime()) { + setUpperAnime(dRes_ID_ALANM_BCK_WAITATOS_e, UPPER_2, mpHIO->mCut.m.mEquipAnm.mSpeed, 12.0f, + mpHIO->mCut.m.mEquipAnm.mEndFrame, + mpHIO->mCut.m.mEquipAnm.mInterpolation); + onNoResetFlg0(FLG0_UNK_1000000); + } + } else if (checkNoResetFlg0(FLG0_UNK_1000000)) { + resetUpperAnime(UPPER_2, 5.0f); } - if (!checkNoResetFlg0(FLG0_UNK_80) || - mWaterY - var_f31 <= mpHIO->mSwim.m.mStartHeight - 5.0f) + if (mEquipItem == fpcNm_ITEM_KANTERA && checkNoUpperAnime() && !checkKandelaarEquipAnime() && + (checkModeFlg(MODE_UNK_1000) || mProcID == PROC_CROUCH)) { - swimOutAfter(0); + if (checkReinRide()) { + setUpperAnimeBase(dRes_ID_ALANM_BCK_WAITHK_e); + } else { + setUpperAnimeBase(dRes_ID_ALANM_BCK_WAITK_e); + } + + mNowAnmPackUpper[2].setRatio(0.0f); } } - if (mProcID == PROC_TOOL_DEMO || mProcID == PROC_GANON_FINISH) { - J3DTransformInfo ti; - field_0x1f20->getAnm(0)->getTransform(0, &ti); - mDoMtx_stack_c::transS(old_pos); - mDoMtx_stack_c::YrotM(shape_angle.y); + checkLightSwordMtrl(); + (this->*mpProcFunc)(); - Vec tmp = {0.0f, 0.0f, 0.0f}; - tmp.x = ti.mTranslate.x; - tmp.z = ti.mTranslate.z; - mDoMtx_stack_c::multVec(&tmp, ¤t.pos); - speed.y = 0.0f; + if (!checkEndResetFlg0(ERFLG0_UNK_2000) && checkWindDashAnime()) { + resetUpperAnime(UPPER_2, 3.0f); + } - if (field_0x3198 != 0) { - if (mLinkAcch.GetGroundH() != -G_CM3D_F_INF) { - current.pos.y = mLinkAcch.GetGroundH(); + playFaceTextureAnime(); + + { + cXyz old_pos = current.pos; + posMove(); + + if (checkWolf()) { + wolfBgCheck(); + } else if (checkModeFlg(MODE_SWIMMING)) { + swimBgCheck(120.0f); + } + + cXyz pos = current.pos; + field_0x3528 = speed; + + mLinkAcch.ClrGroundHit(); + mLinkAcch.CrrPos(dComIfG_Bgsp()); + + if (checkMagneBootsOn()) { + current.pos = pos; + } + + if (!mLinkAcch.ChkGroundHit() && !mLinkAcch.ChkRoofHit() && getZoraSwim()) { + current.pos.y = pos.y; + } + + iceSlipBgCheck(); + setWaterY(); + autoGroundHit(); + + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE) || + (checkPossibleWaterInMode() && !checkNoResetFlg0(FLG0_SWIM_UP))) + { + f32 var_f31; + if (mProcID == PROC_HOOKSHOT_FLY) { + var_f31 = current.pos.y - (mHeight * 0.5f); + } else if (dComIfGp_checkPlayerStatus1(0, 0x2000000)) { + var_f31 = (current.pos.y + -65.0f) - (mpHIO->mSwim.m.mStartHeight - 5.0f); + } else { + var_f31 = current.pos.y; + } + + if (!checkNoResetFlg0(FLG0_UNK_80) || + mWaterY - var_f31 <= mpHIO->mSwim.m.mStartHeight - 5.0f) + { + swimOutAfter(0); } } - } else if (mProcID == PROC_HOOKSHOT_FLY || mProcID == PROC_MAGNE_BOOTS_FLY || - (checkModeFlg(MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_RIDING) && - mProcID != PROC_HORSE_GETOFF && mProcID != PROC_WOLF_CHAIN_READY && - !checkBoardRide())) - { - current.pos = pos; - } else if (checkModeFlg(MODE_UNK_4000)) { - if (mProcID == PROC_DOOR_OPEN || mProcID == PROC_HANG_LEVER_DOWN) { + + if (mProcID == PROC_TOOL_DEMO || mProcID == PROC_GANON_FINISH) { + J3DTransformInfo ti; + field_0x1f20->getAnm(0)->getTransform(0, &ti); + mDoMtx_stack_c::transS(old_pos); + mDoMtx_stack_c::YrotM(shape_angle.y); + + Vec tmp = {0.0f, 0.0f, 0.0f}; + tmp.x = ti.mTranslate.x; + tmp.z = ti.mTranslate.z; + mDoMtx_stack_c::multVec(&tmp, ¤t.pos); + speed.y = 0.0f; + + if (field_0x3198 != 0) { + if (mLinkAcch.GetGroundH() != -G_CM3D_F_INF) { + current.pos.y = mLinkAcch.GetGroundH(); + } + } + } else if (mProcID == PROC_HOOKSHOT_FLY + || mProcID == PROC_MAGNE_BOOTS_FLY + || (checkModeFlg(MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_RIDING) + && mProcID != PROC_HORSE_GETOFF + && mProcID != PROC_WOLF_CHAIN_READY + && !checkBoardRide() + ) + ) + { + current.pos = pos; + } else if (checkModeFlg(MODE_UNK_4000)) { + if (mProcID == PROC_DOOR_OPEN || mProcID == PROC_HANG_LEVER_DOWN) { + current.pos.y = old_pos.y; + speed.y = 0.0f; + } + current.pos.x = pos.x; + current.pos.z = pos.z; + } else if (checkFlyAtnWait() || mProcID == PROC_WARP) { current.pos.y = old_pos.y; speed.y = 0.0f; } - current.pos.x = pos.x; - current.pos.z = pos.z; - } else if (checkFlyAtnWait() || mProcID == PROC_WARP) { - current.pos.y = old_pos.y; - speed.y = 0.0f; - } - field_0x3178 = field_0x3174; + field_0x3178 = mGroundCode; - if (mLinkAcch.GetGroundH() != -G_CM3D_F_INF) { - setRoomInfo(); + if (mLinkAcch.GetGroundH() != -G_CM3D_F_INF) { + setRoomInfo(); - if (!checkModeFlg(MODE_PLAYER_FLY) && !checkMagneBootsOn() && mProcID != PROC_TOOL_DEMO && - mProcID != PROC_GANON_FINISH && mProcID != PROC_DUNGEON_WARP && - (field_0x2f8c == 1 || field_0x2f8c == 3)) - { - setStepsOffset(); - } else { - field_0x2b9c = 0.0f; - if (!checkModeFlg(MODE_SWIMMING)) { - field_0x2b98 = 0.0f; - } - } - - if (checkModeFlg(MODE_UNK_2000000)) { - setShapeAngleOnGround(); - } - - if (!checkRestartRoom() && !checkDeadHP()) { - checkSceneChange(dComIfG_Bgsp().GetExitId(mLinkAcch.m_gnd)); - } - - if (mLinkAcch.ChkGroundHit()) { - if (dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) { - dComIfG_Bgsp().MoveBgTransPos(mLinkAcch.m_gnd, true, &field_0x34ec, NULL, NULL); - } - - if (checkNoResetFlg0(FLG0_UNK_80) && !checkNoResetFlg0(FLG0_UNDERWATER) && - mWaterY >= mLinkAcch.GetGroundH()) + if (!checkModeFlg(MODE_PLAYER_FLY) + && !checkMagneBootsOn() + && mProcID != PROC_TOOL_DEMO + && mProcID != PROC_GANON_FINISH + && mProcID != PROC_DUNGEON_WARP + && (field_0x2f8c == 1 || field_0x2f8c == 3)) { - mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); - } else if (checkEndResetFlg0(ERFLG0_UNK_200000)) { - mPolySound = 11; + setStepsOffset(); } else { - mPolySound = dKy_pol_sound_get(&mLinkAcch.m_gnd); + field_0x2b9c = 0.0f; + if (!checkModeFlg(MODE_SWIMMING)) { + field_0x2b98 = 0.0f; + } } - field_0x2ff0 = getGroundAngle(&mLinkAcch.m_gnd, shape_angle.y); - } else { - if (mProcID == PROC_TOOL_DEMO || mProcID == PROC_GANON_FINISH) { - if (checkNoResetFlg0(FLG0_UNK_80) && mWaterY >= mLinkAcch.GetGroundH()) { + if (checkModeFlg(MODE_UNK_2000000)) { + setShapeAngleOnGround(); + } + + if (!checkRestartRoom() && !checkDeadHP()) { + checkSceneChange(dComIfG_Bgsp().GetExitId(mLinkAcch.m_gnd)); + } + + if (mLinkAcch.ChkGroundHit()) { + if (dComIfG_Bgsp().ChkMoveBG(mLinkAcch.m_gnd)) { + dComIfG_Bgsp().MoveBgTransPos(mLinkAcch.m_gnd, true, &field_0x34ec, NULL, NULL); + } + + if (checkNoResetFlg0(FLG0_UNK_80) && !checkNoResetFlg0(FLG0_WATER_IN_MOVE) && + mWaterY >= mLinkAcch.GetGroundH()) + { mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); - } else if (checkEndResetFlg0(ERFLG0_UNK_200000)) { + } else if (checkEndResetFlg0(ERFLG0_LEAF_SE)) { mPolySound = 11; } else { mPolySound = dKy_pol_sound_get(&mLinkAcch.m_gnd); } - } else if (checkModeFlg(MODE_SWIMMING) && checkNoResetFlg0(FLG0_UNK_80)) { + + field_0x2ff0 = getGroundAngle(&mLinkAcch.m_gnd, shape_angle.y); + } else { + if (mProcID == PROC_TOOL_DEMO || mProcID == PROC_GANON_FINISH) { + if (checkNoResetFlg0(FLG0_UNK_80) && mWaterY >= mLinkAcch.GetGroundH()) { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); + } else if (checkEndResetFlg0(ERFLG0_LEAF_SE)) { + mPolySound = 11; + } else { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_gnd); + } + } else if (checkModeFlg(MODE_SWIMMING) && checkNoResetFlg0(FLG0_UNK_80)) { + mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); + } else { + mPolySound = 0; + } + + field_0x2ff0 = 0; + } + mDoAud_setLinkGroupInfo(dComIfG_Bgsp().GetGrpSoundId(mLinkAcch.m_gnd)); + } else { + mGroundCode = -1; + field_0x2ff0 = 0; + mGndPolyAtt0 = 16; + mGndPolyAtt1 = 0; + mGndPolySpecialCode = dBgW_SPCODE_NORMAL; + + if (checkModeFlg(MODE_SWIMMING) && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr)) { mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); } else { mPolySound = 0; } - field_0x2ff0 = 0; - } - mDoAud_setLinkGroupInfo(dComIfG_Bgsp().GetGrpSoundId(mLinkAcch.m_gnd)); - } else { - field_0x3174 = -1; - field_0x2ff0 = 0; - field_0x2fbb = 16; - field_0x2fbd = 0; - mGndPolySpecialCode = dBgW_SPCODE_NORMAL; - - if (checkModeFlg(MODE_SWIMMING) && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr)) { - mPolySound = dKy_pol_sound_get(&mLinkAcch.m_wtr); - } else { - mPolySound = 0; - } - - if (!checkRestartRoom() && !checkDeadHP()) { - checkSceneChange(0x3F); - } - } - - if (checkMagneBootsOn()) { - field_0x2fbd = 0; - field_0x2f5c.mPosition = current.pos; - field_0x2f5c.mPow = 100.0f; - - if (checkNoResetFlg0(FLG0_UNK_2000)) { - mPolySound = dKy_pol_sound_get(&mMagneLineChk); - field_0x2ff0 = 0; - field_0x3174 = dComIfG_Bgsp().GetGroundCode(mMagneLineChk); - field_0x2fbb = dComIfG_Bgsp().GetPolyAtt0(mMagneLineChk); - mGndPolySpecialCode = dComIfG_Bgsp().GetSpecialCode(mMagneLineChk); - setMagneBootsMtx(&mMagneLineChk, 0); - } else { - mPolySound = 0; - field_0x2ff0 = 0; - field_0x3174 = -1; - field_0x2fbb = 16; - mGndPolySpecialCode = dBgW_SPCODE_NORMAL; - } - } else { - field_0x2f5c.mPow = 0.0f; - if (mProcID != PROC_MAGNE_BOOTS_FLY) { - mMagneBootsTopVec = cXyz::BaseY; - } - } - - if (dComIfGp_evmng_startCheck(l_peepEventName)) { - if (field_0x2ff2 > 0) { - field_0x2ff2--; - } else if (dComIfGp_evmng_startCheck(l_peepEventName)) { - startPeepChange(); - } - } - - if (checkModeFlg(MODE_VINE_CLIMB) && mProcVar2.field_0x300c != 0 && - dComIfG_Bgsp().ChkPolySafe(mPolyInfo1)) - { - mZ2Link.framework(dKy_pol_sound_get(&mPolyInfo1), mVoiceReverbIntensity); - } else { - mZ2Link.framework(mPolySound, mVoiceReverbIntensity); - } - - if (field_0x2d7c != NULL) { - mZ2Link.updateAnime(field_0x2d7c->getFrame(), field_0x2d7c->getRate()); - } - - if (mProcID != PROC_DAMAGE && mProcID != PROC_SWIM_DAMAGE && mProcID != PROC_HORSE_DAMAGE) { - setMoveSlantAngle(); - - if (checkReinRide() && checkUpperGuardAnime()) { - setBodyAngleRideReadyAnime(); - } else if (!checkSmallUpperGuardAnime() && !checkWolf()) { - if (!checkModeFlg(MODE_UNK_20000000)) { - if (checkUpperGuardAnime()) { - setBodyAngleXReadyAnime(0); - } else if (!checkUpperReadyThrowAnime()) { - cLib_addCalcAngleS(&mBodyAngle.x, 0, 4, 0x0C00, 0x0180); - } - } - - if (!checkModeFlg(MODE_UNK_40000000)) { - cLib_addCalcAngleS(&mBodyAngle.y, 0, 4, 0x0C00, 0x0180); + if (!checkRestartRoom() && !checkDeadHP()) { + checkSceneChange(0x3F); } } - } - setMatrix(); - setNeckAngle(); + if (checkMagneBootsOn()) { + mGndPolyAtt1 = 0; + mMagneBootsPlight.mPosition = current.pos; + mMagneBootsPlight.mPow = 100.0f; - if (field_0x2fcc != 0) { - field_0x2fcc--; - } - - if (!checkWolf()) { - setHatAngle(); - - if (field_0x2fb0 != 0) { - field_0x2fb0--; + if (checkNoResetFlg0(FLG0_UNK_2000)) { + mPolySound = dKy_pol_sound_get(&mMagneLineChk); + field_0x2ff0 = 0; + mGroundCode = dComIfG_Bgsp().GetGroundCode(mMagneLineChk); + mGndPolyAtt0 = dComIfG_Bgsp().GetPolyAtt0(mMagneLineChk); + mGndPolySpecialCode = dComIfG_Bgsp().GetSpecialCode(mMagneLineChk); + setMagneBootsMtx(&mMagneLineChk, 0); + } else { + mPolySound = 0; + field_0x2ff0 = 0; + mGroundCode = -1; + mGndPolyAtt0 = 16; + mGndPolySpecialCode = dBgW_SPCODE_NORMAL; + } + } else { + mMagneBootsPlight.mPow = 0.0f; + if (mProcID != PROC_MAGNE_BOOTS_FLY) { + mMagneBootsTopVec = cXyz::BaseY; + } } - footBgCheck(); - handBgCheck(); + if (dComIfGp_evmng_startCheck(l_peepEventName)) { + if (field_0x2ff2 > 0) { + field_0x2ff2--; + } else if (dComIfGp_evmng_startCheck(l_peepEventName)) { + startPeepChange(); + } + } - field_0x30c8 = mBodyAngle.y >> 1; - modelCalc(mpLinkModel); + if (checkModeFlg(MODE_VINE_CLIMB) && mProcVar2.field_0x300c != 0 && + dComIfG_Bgsp().ChkPolySafe(mPolyInfo1)) + { + mZ2Link.framework(dKy_pol_sound_get(&mPolyInfo1), mVoiceReverbIntensity); + } else { + mZ2Link.framework(mPolySound, mVoiceReverbIntensity); + } - if (field_0x2fcb != 0) { - if (checkWoodShieldEquip() && mWaterY < mShieldModel->getBaseTRMtx()[1][3]) { - field_0x2fcb--; + if (field_0x2d7c != NULL) { + mZ2Link.updateAnime(field_0x2d7c->getFrame(), field_0x2d7c->getRate()); + } - if (field_0x2fcb == 0) { - dMeter2Info_setShield(fpcNm_ITEM_NONE, true); - stickArrowIncrement(1); - setWoodShieldBurnOutEffect(); + if (mProcID != PROC_DAMAGE && mProcID != PROC_SWIM_DAMAGE && mProcID != PROC_HORSE_DAMAGE) { + setMoveSlantAngle(); - // "Your shield burned up..." - dMeter2Info_setFloatingMessage(2047, 90, false); - - stage_stag_info_class* pstag = dComIfGp_getStage()->getStagInfo(); - if (dStage_stagInfo_GetSaveTbl(pstag) == 0x11 && - !dComIfGs_isItemFirstBit(fpcNm_ITEM_HYLIA_SHIELD)) - { - fopAcM_onSwitch(this, 0x6F); + if (checkReinRide() && checkUpperGuardAnime()) { + setBodyAngleRideReadyAnime(); + } else if (!checkSmallUpperGuardAnime() && !checkWolf()) { + if (!checkModeFlg(MODE_UNK_20000000)) { + if (checkUpperGuardAnime()) { + setBodyAngleXReadyAnime(0); + } else if (!checkUpperReadyThrowAnime()) { + cLib_addCalcAngleS(&mBodyAngle.x, 0, 4, 0xC00, 0x180); } - seStartOnlyReverb(Z2SE_AL_WOOD_SHIELD_BURN); } - } else { - clearWoodShieldBurnEffect(); + + if (!checkModeFlg(MODE_UNK_40000000)) { + cLib_addCalcAngleS(&mBodyAngle.y, 0, 4, 0xC00, 0x180); + } } } - if (checkShieldGet() && !checkWoodShieldEquip()) { - stickArrowIncrement(1); + setMatrix(); + setNeckAngle(); + + if (field_0x2fcc != 0) { + field_0x2fcc--; } - setItemMatrix(0); - } else { - daMidna_c* pmidna = (daMidna_c*)getMidnaActor(); - - if (mClothesChangeWaitTimer == 0) { - if ((pmidna->checkMidnaTired() || pmidna->checkForceTiredColor()) && - !pmidna->checkForceNormalColor()) - { - mpWlMidnaModel->getModelData()->entryTevRegAnimator(mpDMidnaBrk); - mpWlMidnaMaskModel->getModelData()->entryTevRegAnimator(mpDMidnaMaskBrk); - mpWlMidnaHandModel->getModelData()->entryTevRegAnimator(mpDMidnaHandBrk); - mpWlMidnaHairModel->getModelData()->entryTevRegAnimator(mpDMidnaHairHandBrk); - } else { - mpWlMidnaModel->getModelData()->removeTevRegAnimator(mpDMidnaBrk); - mpWlMidnaMaskModel->getModelData()->removeTevRegAnimator(mpDMidnaMaskBrk); - mpWlMidnaHandModel->getModelData()->removeTevRegAnimator(mpDMidnaHandBrk); - mpWlMidnaHairModel->getModelData()->removeTevRegAnimator(mpDMidnaHairHandBrk); - } - } - - wolfFootBgCheck(); - setWolfTailAngle(); - modelCalc(mpLinkModel); - checkWolfUseAbility(); - - if (checkWolfEyeUp() != 0) { - mWolfEyeUpTimer++; - if (mWolfEyeUpTimer > 30) { - mWolfEyeUpTimer = 30; - } - } else if (mWolfEyeUpTimer != 0) { - mWolfEyeUpTimer--; - } - - setWolfItemMatrix(); - } - - if (checkFmChainGrabAnime()) { - mNowAnmPackUpper[2].setRatio(1.0f); - } - - setBodyPartPos(); - - if (!checkWolf() && checkEndResetFlg0(ERFLG0_UNK_800000)) { - setHatAngle(); - modelCalc(mpLinkModel); - } - - setHangWaterY(); - setCollision(); - setAttentionPos(); - setLight(); - setEffect(); - - if (mClothesChangeWaitTimer != 0) { - mDoMtx_stack_c::copy(mpLinkModel->getBaseTRMtx()); if (!checkWolf()) { - mDoMtx_stack_c::transM(0.0f, 0.0f, 30.0f); + setHatAngle(); + + if (field_0x2fb0 != 0) { + field_0x2fb0--; + } + + footBgCheck(); + handBgCheck(); + + field_0x30c8 = mBodyAngle.y >> 1; + modelCalc(mpLinkModel); + + if (field_0x2fcb != 0) { + if (checkWoodShieldEquip() && mWaterY < mShieldModel->getBaseTRMtx()[1][3]) { + field_0x2fcb--; + + if (field_0x2fcb == 0) { + dMeter2Info_setShield(fpcNm_ITEM_NONE, true); + stickArrowIncrement(1); + setWoodShieldBurnOutEffect(); + + // "Your shield burned up..." + dMeter2Info_setFloatingMessage(2047, 90, false); + + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) == dStage_SaveTbl_LV2 && + !dComIfGs_isItemFirstBit(fpcNm_ITEM_HYLIA_SHIELD)) + { + fopAcM_onSwitch(this, 0x6F); + } + seStartOnlyReverb(Z2SE_AL_WOOD_SHIELD_BURN); + } + } else { + clearWoodShieldBurnEffect(); + } + } + + if (checkShieldGet() && !checkWoodShieldEquip()) { + stickArrowIncrement(1); + } + setItemMatrix(0); + } else { + daMidna_c* pmidna = (daMidna_c*)getMidnaActor(); + + if (mClothesChangeWaitTimer == 0) { + if ((pmidna->checkMidnaTired() || pmidna->checkForceTiredColor()) && + !pmidna->checkForceNormalColor()) + { + mpWlMidnaModel->getModelData()->entryTevRegAnimator(mpDMidnaBrk); + mpWlMidnaMaskModel->getModelData()->entryTevRegAnimator(mpDMidnaMaskBrk); + mpWlMidnaHandModel->getModelData()->entryTevRegAnimator(mpDMidnaHandBrk); + mpWlMidnaHairModel->getModelData()->entryTevRegAnimator(mpDMidnaHairHandBrk); + } else { + mpWlMidnaModel->getModelData()->removeTevRegAnimator(mpDMidnaBrk); + mpWlMidnaMaskModel->getModelData()->removeTevRegAnimator(mpDMidnaMaskBrk); + mpWlMidnaHandModel->getModelData()->removeTevRegAnimator(mpDMidnaHandBrk); + mpWlMidnaHairModel->getModelData()->removeTevRegAnimator(mpDMidnaHairHandBrk); + } + } + + wolfFootBgCheck(); + setWolfTailAngle(); + modelCalc(mpLinkModel); + checkWolfUseAbility(); + + if (checkWolfEyeUp() != 0) { + mWolfEyeUpTimer++; + if (mWolfEyeUpTimer > 30) { + mWolfEyeUpTimer = 30; + } + } else if (mWolfEyeUpTimer != 0) { + mWolfEyeUpTimer--; + } + + setWolfItemMatrix(); } - mpWlChangeModel->setBaseTRMtx(mDoMtx_stack_c::get()); - mpWlChangeModel->calc(); - } + if (checkFmChainGrabAnime()) { + mNowAnmPackUpper[2].setRatio(1.0f); + } - mSight.mLockCursor.update(); - setGrabItemPos(); + setBodyPartPos(); - checkRoofRestart(); - mExitID = 0x3F; - mpScnChg = NULL; + if (!checkWolf() && checkEndResetFlg0(ERFLG0_UNK_800000)) { + setHatAngle(); + modelCalc(mpLinkModel); + } - static Vec const localBoomCatchPos = {18.7f, 146.3f, 69.2f}; - cMtx_multVec(mpLinkModel->getAnmMtx(0), &localBoomCatchPos, &field_0x3534); + setHangWaterY(); + setCollision(); + setAttentionPos(); + setLight(); + setEffect(); - if (checkResetFlg0(RFLG0_UNK_10)) { - mZ2Link.setResumeAttack(true); - } else { - mZ2Link.setResumeAttack(false); - } + if (mClothesChangeWaitTimer != 0) { + mDoMtx_stack_c::copy(mpLinkModel->getBaseTRMtx()); - if (!checkEventRun() && checkNoResetFlg0(FLG0_UNK_80) && - (mWaterY > current.pos.y + 40.0f || checkModeFlg(MODE_SWIMMING)) && - getMoveBGActorName(mLinkAcch.m_wtr, TRUE) == PROC_Obj_Onsen) - { - if (mHotspringRecoverTimer != 0) { - mHotspringRecoverTimer--; + if (!checkWolf()) { + mDoMtx_stack_c::transM(0.0f, 0.0f, 30.0f); + } + + mpWlChangeModel->setBaseTRMtx(mDoMtx_stack_c::get()); + mpWlChangeModel->calc(); + } + + mSight.update(); + setGrabItemPos(); + + checkRoofRestart(); + mExitID = 0x3F; + mpScnChg = NULL; + + static Vec const localBoomCatchPos = {18.7f, 146.3f, 69.2f}; + cMtx_multVec(mpLinkModel->getAnmMtx(0), &localBoomCatchPos, &field_0x3534); + + if (checkResetFlg0(RFLG0_UNK_10)) { + mZ2Link.setResumeAttack(true); + } else { + mZ2Link.setResumeAttack(false); + } + + if (!checkEventRun() && checkNoResetFlg0(FLG0_UNK_80) && + (mWaterY > current.pos.y + 40.0f || checkModeFlg(MODE_SWIMMING)) && + getMoveBGActorName(mLinkAcch.m_wtr, TRUE) == PROC_Obj_Onsen) + { + if (mHotspringRecoverTimer != 0) { + mHotspringRecoverTimer--; + } else { + mHotspringRecoverTimer = mpHIO->mBasic.m.mHotspringRecoverTime; + dComIfGp_setItemLifeCount(1.0f, 1); + } } else { mHotspringRecoverTimer = mpHIO->mBasic.m.mHotspringRecoverTime; - dComIfGp_setItemLifeCount(1.0f, 1); } - } else { - mHotspringRecoverTimer = mpHIO->mBasic.m.mHotspringRecoverTime; - } - if (checkAttentionLock() || (!checkUpperReadyThrowAnime() && - mProcID != PROC_HOOKSHOT_WALL_SHOOT && mProcID != PROC_HOOKSHOT_ROOF_SHOOT)) - { - mFastShotTime = 0; - } + if (checkAttentionLock() || (!checkUpperReadyThrowAnime() && + mProcID != PROC_HOOKSHOT_WALL_SHOOT && mProcID != PROC_HOOKSHOT_ROOF_SHOOT)) + { + mFastShotTime = 0; + } - if (checkDeadHP()) { - eventInfo.offCondition(fopAcCnd_NOEXEC_e); - } else if (!checkMagneBootsOn()) { - f32 var_f31_2; - if (mLinkAcch.ChkGroundHit()) { - cM3dGPla plane; - dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &plane); - var_f31_2 = plane.mNormal.y; + if (checkDeadHP()) { + eventInfo.offCondition(fopAcCnd_NOEXEC_e); + } else + #if DEBUG + if (!l_debugMode) + #endif + { + if (!checkMagneBootsOn()) { + f32 gnd_nrm_y; + if (mLinkAcch.ChkGroundHit()) { + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &tripla); + gnd_nrm_y = tripla.mNormal.y; + } else { + gnd_nrm_y = -1.0f; + } + + if (cBgW_CheckBGround(gnd_nrm_y) && !checkModeFlg(MODE_PLAYER_FLY)) { + eventInfo.onCondition(dEvtCnd_40_e | dEvtCnd_10_e | dEvtCnd_CANGETITEM_e | dEvtCnd_CANDOOR_e | dEvtCnd_CANTALK_e); + } else if (checkModeFlg(MODE_SWIMMING) || mProcID == PROC_WOLF_ROPE_MOVE || + ((checkReinRide() || checkCanoeRide() || checkSpinnerRide()) && + !checkNoResetFlg3(FLG3_UNK_80000) && !checkModeFlg(MODE_JUMP))) + { + eventInfo.onCondition(dEvtCnd_CANTALK_e); + if (checkReinRide() || checkCanoeRide()) { + eventInfo.onCondition(dEvtCnd_CANGETITEM_e); + } + } + } else if (checkMagneBootsOn() && cBgW_CheckBGround(mMagneBootsTopVec.y)) { + eventInfo.onCondition(dEvtCnd_CANTALK_e); + } + } + + if (checkEndResetFlg1(ERFLG1_UNK_40000) && checkMidnaRide() && checkWolf()) { + getMidnaActor()->onForcePanic(); + } + + field_0x30fe = 0; + field_0x372c = cXyz::Zero; + field_0x2fb8 = 0; + + if (checkMagicArmorWearAbility() && mClothesChangeWaitTimer == 0) { + if (checkMagicArmorNoDamage() && !checkEventRun()) { + if (field_0x2fc3 == 0) { + field_0x2fc3 = 10; + dComIfGp_setItemRupeeCount(-1); + } else { + field_0x2fc3--; + } + } + + if (dComIfGs_getRupee() == 0 && field_0x2fd7 != 0) { + setMagicArmorBrk(0); + seStartOnlyReverb(Z2SE_AL_M_ARMER_TURNOFF); + mZ2Link.setLinkState(5); + } else if (dComIfGs_getRupee() != 0 && field_0x2fd7 == 0) { + setMagicArmorBrk(1); + seStartOnlyReverb(Z2SE_AL_M_ARMER_RECOVER); + mZ2Link.setLinkState(4); + } + } + + if (!checkWolf()) { + for (u8 i = 0; i < 2; i++) { + u8 tmp = (i + 1) % 2; + if (dComIfGp_getSelectItem(i) == fpcNm_ITEM_EMPTY_BOTTLE && (mUseButtonFlags & (1 << i)) && + dComIfGp_getSelectItem(tmp) == fpcNm_ITEM_EMPTY_BOTTLE) + { + mUseButtonFlags |= (u8)(1 << tmp); + } + } + } + + for (int i = 0; i < 2; i++) { + if (!(mUseButtonFlags & (1 << i)) && !(field_0x2faf & (1 << i))) { + dMeter2Info_offUseButton(METER2_USEBUTTON_X << i); + } + } + + if (!(mUseButtonFlags & BTN_R) && !(field_0x2faf & BTN_R)) { + dMeter2Info_offUseButton(METER2_USEBUTTON_R); + } + + if (!(mUseButtonFlags & BTN_B) && !(field_0x2faf & BTN_B)) { + dMeter2Info_offUseButton(METER2_USEBUTTON_B); + + #if PLATFORM_GCN + if (getSumouMode()) { + dMeter2Info_offUseButton(METER2_USEBUTTON_A); + } + #endif + } + + field_0x2faf = mUseButtonFlags; + + for (int i = 0; i < 4; i++) { + cXyz tmp(current.pos.x + 500.0f, current.pos.y + 500.0f, current.pos.z + 500.0f); + if (i != field_0x2fa3 - 1) { + field_0x354c[i] = tmp; + } + } + + if (checkEventRun()) { + if (mProcID != PROC_GRASS_WHISTLE_WAIT) { + setDoStatus(BUTTON_STATUS_NONE); + } + setRStatus(BUTTON_STATUS_NONE); } else { - var_f31_2 = -1.0f; - } - - if (cBgW_CheckBGround(var_f31_2) && !checkModeFlg(MODE_PLAYER_FLY)) { - eventInfo.onCondition(0x5D); - } else if (checkModeFlg(MODE_SWIMMING) || mProcID == PROC_WOLF_ROPE_MOVE || - ((checkReinRide() || checkCanoeRide() || checkSpinnerRide()) && - !checkNoResetFlg3(FLG3_UNK_80000) && !checkModeFlg(MODE_JUMP))) - { - eventInfo.onCondition(dEvtCnd_CANTALK_e); - if (checkReinRide() || checkCanoeRide()) { - eventInfo.onCondition(dEvtCnd_CANGETITEM_e); - } - } - } else if (checkMagneBootsOn() && cBgW_CheckBGround(mMagneBootsTopVec.y)) { - eventInfo.onCondition(dEvtCnd_CANTALK_e); - } - - if (checkEndResetFlg1(ERFLG1_UNK_40000) && checkMidnaRide() && checkWolf()) { - getMidnaActor()->onForcePanic(); - } - - field_0x30fe = 0; - field_0x372c = cXyz::Zero; - field_0x2fb8 = 0; - - if (checkMagicArmorWearAbility() && mClothesChangeWaitTimer == 0) { - if (checkMagicArmorNoDamage() && !checkEventRun()) { - if (field_0x2fc3 == 0) { - field_0x2fc3 = 10; - dComIfGp_setItemRupeeCount(-1); - } else { - field_0x2fc3--; - } - } - - if (dComIfGs_getRupee() == 0 && field_0x2fd7 != 0) { - setMagicArmorBrk(0); - seStartOnlyReverb(Z2SE_AL_M_ARMER_TURNOFF); - mZ2Link.setLinkState(5); - } else if (dComIfGs_getRupee() != 0 && field_0x2fd7 == 0) { - setMagicArmorBrk(1); - seStartOnlyReverb(Z2SE_AL_M_ARMER_RECOVER); - mZ2Link.setLinkState(4); - } - } - - if (!checkWolf()) { - for (u8 i = 0; i < 2; i++) { - u8 tmp = (i + 1) % 2; - if (dComIfGp_getSelectItem(i) == fpcNm_ITEM_EMPTY_BOTTLE && (field_0x2fae & (1 << i)) && - dComIfGp_getSelectItem(tmp) == fpcNm_ITEM_EMPTY_BOTTLE) + if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_134 || dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_139) { + setDoStatus(BUTTON_STATUS_ATTACK); + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_137) { + setDoStatus(BUTTON_STATUS_CHECK); + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_147) { + setDoStatusEmphasys(BUTTON_STATUS_JUMP); + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_142) { + setDoStatusEmphasys(BUTTON_STATUS_GRAB); + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_140) { + setDoStatus(BUTTON_STATUS_NONE); + } else if (checkStageName("F_SP127") && checkCanoeRide() && dComIfGp_getDoStatus() == BUTTON_STATUS_PUT_AWAY) { + setDoStatus(BUTTON_STATUS_NONE); + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_144) { + setDoStatus(BUTTON_STATUS_NONE); + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_152) { + setDoStatusEmphasys(BUTTON_STATUS_UNK_57); + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_153) { + setDoStatusEmphasys(BUTTON_STATUS_GRAB); + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_145) { + if (checkWolf() || + (field_0x27f4 != NULL && + (field_0x27f4->speedF > 0.1f || + (checkGoatCatchActor(field_0x27f4) && fopAcM_GetName(field_0x27f4) != PROC_COW)))) + { + setDoStatusEmphasys(BUTTON_STATUS_GRAB); + } else { + setDoStatus(BUTTON_STATUS_NONE); + } + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_151) { + if (current.pos.y + 200.0f < mWaterY) { + setDoStatus(BUTTON_STATUS_SWIM); + } else { + setDoStatus(BUTTON_STATUS_NONE); + } + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_JUMP && dComIfGp_getHorseActor() != NULL && + dComIfGp_getHorseActor()->getZeldaActor() != NULL) { - field_0x2fae |= (u8)(1 << tmp); - } - } - } - - for (int i = 0; i < 2; i++) { - if (!(field_0x2fae & (1 << i)) && !(field_0x2faf & (1 << i))) { - dMeter2Info_offUseButton(4 << i); - } - } - - if (!(field_0x2fae & 0x40) && !(field_0x2faf & 0x40)) { - dMeter2Info_offUseButton(0x40); - } - - if (!(field_0x2fae & 0x8) && !(field_0x2faf & 0x8)) { - dMeter2Info_offUseButton(2); - if (getSumouMode()) { - dMeter2Info_offUseButton(1); - } - } - - field_0x2faf = field_0x2fae; - - for (int i = 0; i < 4; i++) { - cXyz tmp(current.pos.x + 500.0f, current.pos.y + 500.0f, current.pos.z + 500.0f); - if (i != field_0x2fa3 - 1) { - field_0x354c[i] = tmp; - } - } - - if (checkEventRun()) { - if (mProcID != PROC_GRASS_WHISTLE_WAIT) { - setDoStatus(0); - } - setRStatus(0); - } else { - if (dComIfGp_getDoStatus() == 0x86 || dComIfGp_getDoStatus() == 0x8B) { - setDoStatus(3); - } else if (dComIfGp_getDoStatus() == 0x89) { - setDoStatus(8); - } else if (dComIfGp_getDoStatus() == 0x93) { - setDoStatusEmphasys(0x19); - } else if (dComIfGp_getDoStatus() == 0x8E) { - setDoStatusEmphasys(0x15); - } else if (dComIfGp_getDoStatus() == 0x8C) { - setDoStatus(0); - } else if (checkStageName("F_SP127") && checkCanoeRide() && dComIfGp_getDoStatus() == 4) { - setDoStatus(0); - } else if (dComIfGp_getDoStatus() == 0x90) { - setDoStatus(0); - } else if (dComIfGp_getDoStatus() == 0x98) { - setDoStatusEmphasys(0x39); - } else if (dComIfGp_getDoStatus() == 0x99) { - setDoStatusEmphasys(0x15); - } else if (dComIfGp_getDoStatus() == 0x91) { - if (checkWolf() || - (field_0x27f4 != NULL && - (field_0x27f4->speedF > 0.1f || - (checkGoatCatchActor(field_0x27f4) && fopAcM_GetName(field_0x27f4) != PROC_COW)))) + setDoStatus(BUTTON_STATUS_JUMP); + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_HOWL && field_0x27f4 != NULL && + (fopAcM_GetName(field_0x27f4) == PROC_Obj_WindStone || + fopAcM_GetName(field_0x27f4) == PROC_Obj_SmWStone)) { - setDoStatusEmphasys(0x15); - } else { - setDoStatus(0); + setDoStatusEmphasys(BUTTON_STATUS_LISTEN); + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_PLACE) { + if (checkEndResetFlg1(ERFLG1_DO_EXCHANGE_PUT_IN)) { + setDoStatusEmphasys(BUTTON_STATUS_INSERT); + } else if (checkEndResetFlg1(ERFLG1_DO_PUT_EMPHASYS)) { + setDoStatusEmphasys(BUTTON_STATUS_PLACE); + } } - } else if (dComIfGp_getDoStatus() == 0x97) { - if (current.pos.y + 200.0f < mWaterY) { - setDoStatus(0x4C); + + int grab_status = getWallGrabStatus(); + if (checkWolf()) { + if (grab_status == BUTTON_STATUS_GRAB) { + setWallGrabStatus(BUTTON_STATUS_PUSH, BUTTON_STATUS_FLAG_EMPHASIS); + } else if (grab_status == BUTTON_STATUS_UNK_150) { + setWallGrabStatus(BUTTON_STATUS_PICK_UP, checkChainEmphasys()); + } } else { - setDoStatus(0); - } - } else if (dComIfGp_getDoStatus() == 0x19 && dComIfGp_getHorseActor() != NULL && - dComIfGp_getHorseActor()->getZeldaActor() != NULL) - { - setDoStatus(0x19); - } else if (dComIfGp_getDoStatus() == 5 && field_0x27f4 != NULL && - (fopAcM_GetName(field_0x27f4) == PROC_Obj_WindStone || - fopAcM_GetName(field_0x27f4) == PROC_Obj_SmWStone)) - { - setDoStatusEmphasys(0x3B); - } else if (dComIfGp_getDoStatus() == 0x14) { - if (checkEndResetFlg1(ERFLG1_UNK_4000000)) { - setDoStatusEmphasys(0x61); - } else if (checkEndResetFlg1(ERFLG1_UNK_10000000)) { - setDoStatusEmphasys(0x14); + if (grab_status == BUTTON_STATUS_UNK_150) { + setWallGrabStatus(BUTTON_STATUS_GRAB, checkChainEmphasys()); + } + + if (dComIfGp_getRStatus() == BUTTON_STATUS_SHIELD_ATTACK && checkShieldAttackEmphasys() == 0) { + setRStatus(BUTTON_STATUS_NONE); + } } } - int grab_status = getWallGrabStatus(); - if (checkWolf()) { - if (grab_status == 0x15) { - setWallGrabStatus(0x3F, 2); - } else if (grab_status == 0x96) { - setWallGrabStatus(0xC, checkChainEmphasys()); - } - } else { - if (grab_status == 0x96) { - setWallGrabStatus(0x15, checkChainEmphasys()); - } - - if (dComIfGp_getRStatus() == 0x3A && checkShieldAttackEmphasys() == 0) { - setRStatus(0); - } - } + mDoAud_setLinkHp(dComIfGs_getLife(), dComIfGs_getMaxLifeGauge()); } - - mDoAud_setLinkHp(dComIfGs_getLife(), dComIfGs_getMaxLifeGauge()); } if (dComIfGp_att_getCatghTarget() != NULL && !checkWolf()) { if (!checkRideOn() && checkCastleTownUseItem(fpcNm_ITEM_EMPTY_BOTTLE)) { - dComIfGp_setBottleStatus(0x6C, 0); + dComIfGp_setBottleStatus(BUTTON_STATUS_SCOOP, 0); } } @@ -17938,7 +18651,7 @@ int daAlink_c::execute() { mDoAud_seStartLevel(Z2SE_AL_HAWK_EYE_PAN, NULL, 0, 0); } - offNoResetFlg0(FLG0_UNK_40000000); + offNoResetFlg0(FLG0_HEAVY_STATE); mEndResetFlg0 = 0; if (checkEndResetFlg1(ERFLG1_UNK_4)) { @@ -17970,6 +18683,15 @@ int daAlink_c::execute() { shape_angle.y = mCargoCarryAcKeep.getActor()->shape_angle.y; } + #if DEBUG + if (checkModeFlg(2)) { + f32 var_f27 = current.pos.y - mLastJumpPos.y; + if (var_f27 > l_jumpTop) { + l_jumpTop = var_f27; + } + } + #endif + return 1; } @@ -17996,10 +18718,10 @@ void daAlink_c::setDrawHand() { var_r29 = 0xFE; } } else if (mProcID == PROC_TOOL_DEMO) { - var_r30 = field_0x2f92; - var_r29 = field_0x2f93; + var_r30 = mLeftHandIndex; + var_r29 = mRightHandIndex; } else { - if (field_0x2f92 == 0x64) { + if (mLeftHandIndex == 0x64) { if (mProcID == PROC_BOSS_BODY_HANG || mProcID == PROC_MASTER_SWORD_PULL || (mProcID == PROC_CUT_DOWN_LAND && mProcVar2.field_0x300c != 0)) { var_r30 = mProcVar4.field_0x3010; } else if (checkUnderMove0BckNoArc(ANM_RIDE_CUT_TURN_CHARGE) && mUnderFrameCtrl[0].getFrame() < 6.0f) { @@ -18014,7 +18736,7 @@ void daAlink_c::setDrawHand() { if (checkBowGrabLeftHand()) { var_r30 = 0; } else { - var_r30 = field_0x2f92; + var_r30 = mLeftHandIndex; } } else if (field_0x2f94 == 0x65) { if (mUpperAnmHeap[0].getIdx() == 0xC7) { @@ -18025,14 +18747,14 @@ void daAlink_c::setDrawHand() { var_r30 = 2; } } else if (field_0x2f94 == 0 && mProcID == PROC_SWORD_UNEQUIP_SP) { - var_r30 = field_0x2f92; + var_r30 = mLeftHandIndex; } else if (field_0x2f94 == 0 && mEquipItem == 0x103 && (checkHorseRide() || checkUnderMove0BckNoArc(ANM_SWIM_DIE))) { var_r30 = 2; } else { var_r30 = field_0x2f94; } } else { - var_r30 = field_0x2f92; + var_r30 = mLeftHandIndex; } if ((mCutType == CUT_TYPE_FINISH_STAB || mCutType == CUT_TYPE_DOWN) && mProcID != PROC_BOSS_BODY_HANG) { @@ -18044,7 +18766,7 @@ void daAlink_c::setDrawHand() { if (mItemVar0.field_0x3018 == 1) { var_r29 = 5; } else { - var_r29 = field_0x2f93; + var_r29 = mRightHandIndex; } } else { var_r29 = field_0x2f95; @@ -18052,7 +18774,7 @@ void daAlink_c::setDrawHand() { } else if (!field_0x2e44.checkPassNum(0xF)) { var_r29 = 6; } else { - var_r29 = field_0x2f93; + var_r29 = mRightHandIndex; } } @@ -18099,19 +18821,13 @@ void daAlink_c::setDrawHand() { } bool daAlink_c::checkSwordDraw() { - return ((checkSwordGet() && mSwordChangeWaitTimer == 0) && - !checkNoResetFlg2(FLG2_UNK_2080000)) && - (!checkWolf() - /* dSv_event_flag_c::M_068 - Main Event - when OFF, wolf carries sword and shield on back */ - || !dComIfGs_isEventBit(0x0C08)); + return ((checkSwordGet() && mSwordChangeWaitTimer == 0) && !checkNoResetFlg2(FLG2_UNK_2080000)) + && (!checkWolf() || !dComIfGs_isEventBit(dSv_event_flag_c::M_068)); } bool daAlink_c::checkShieldDraw() { - return ((checkShieldGet() && mShieldChangeWaitTimer == 0) && - !checkNoResetFlg2(FLG2_UNK_4080000)) && - (!checkWolf() - /* dSv_event_flag_c::M_068 - Main Event - when OFF, wolf carries sword and shield on back */ - || !dComIfGs_isEventBit(0x0C08)); + return ((checkShieldGet() && mShieldChangeWaitTimer == 0) && !checkNoResetFlg2(FLG2_UNK_4080000)) && + (!checkWolf() || !dComIfGs_isEventBit(dSv_event_flag_c::M_068)); } bool daAlink_c::checkItemDraw() { @@ -18122,6 +18838,7 @@ bool daAlink_c::checkItemDraw() { return true; } } + return false; } @@ -18129,14 +18846,14 @@ int daAlink_c::initShadowScaleLight() { dKy_shadow_mode_set(4); if (checkWolf()) { - f32 temp_f26 = 0.5f * field_0x850[0].GetH(); - field_0x850[0].GetC(); + f32 temp_f26 = 0.5f * mTgCyls[0].GetH(); + mTgCyls[0].GetC(); } cXyz sp20(tevStr.mLightPosWorld.x - field_0x3834.x, tevStr.mLightPosWorld.y - field_0x3454, tevStr.mLightPosWorld.z - field_0x3834.z); field_0x2ff6 = sp20.atan2sX_Z(); - fopAc_ac_c* temp_r29 = fopAcM_getTalkEventPartner(this); + fopAc_ac_c* talkActor = fopAcM_getTalkEventPartner(this); f32 var_f30; if (dComIfGp_checkPlayerStatus0(0, 0x100000)) { @@ -18147,8 +18864,8 @@ int daAlink_c::initShadowScaleLight() { BOOL var_r28; f32 var_f31; - if (temp_r29 != NULL && ((fopAcM_GetName(temp_r29) == PROC_Tag_Mhint && !((daTagMhint_c*)temp_r29)->checkNoAttention()) || (fopAcM_GetName(temp_r29) == PROC_Tag_Mstop && !((daTagMstop_c*)temp_r29)->checkNoAttention()))) { - field_0x2ff8 = cLib_targetAngleY(&temp_r29->eyePos, ¤t.pos); + if (talkActor != NULL && ((fopAcM_GetName(talkActor) == PROC_Tag_Mhint && !((daTagMhint_c*)talkActor)->checkNoAttention()) || (fopAcM_GetName(talkActor) == PROC_Tag_Mstop && !((daTagMstop_c*)talkActor)->checkNoAttention()))) { + field_0x2ff8 = cLib_targetAngleY(&talkActor->eyePos, ¤t.pos); var_r28 = 1; } else { field_0x2ff8 = shape_angle.y + 0x8000; @@ -18243,8 +18960,8 @@ int daAlink_c::moveShadowScaleLight() { } void daAlink_c::shadowDraw() { - daMidna_c* temp_r3 = getMidnaActor(); - if (temp_r3 != NULL && ((temp_r3->checkShadowModelDraw() && (field_0x2ff4 >= 0x3FF0 || !checkMidnaRide())) || temp_r3->checkShadowModelDrawDemoForce())) { + daMidna_c* midna = getMidnaActor(); + if (midna != NULL && ((midna->checkShadowModelDraw() && (field_0x2ff4 >= 0x3FF0 || !checkMidnaRide())) || midna->checkShadowModelDrawDemoForce())) { return; } @@ -18253,11 +18970,11 @@ void daAlink_c::shadowDraw() { tevStr.field_0x344 = field_0x3484; } - u32 var_r29; + u32 shadowID; if (checkHorseRide()) { - var_r29 = ((daHorse_c*)dComIfGp_getHorseActor())->getShadowID(); - if (var_r29 != 0) { - dComIfGd_addRealShadow(var_r29, mpLinkModel); + shadowID = ((daHorse_c*)dComIfGp_getHorseActor())->getShadowID(); + if (shadowID != 0) { + dComIfGd_addRealShadow(shadowID, mpLinkModel); } } else { f32 var_f31; @@ -18271,13 +18988,13 @@ void daAlink_c::shadowDraw() { f32 var_f30; if (!checkWolf()) { - if (field_0x850[0].GetC().y > field_0x850[2].GetC().y) { - var_f30 = field_0x850[2].GetC().y; + if (mTgCyls[0].GetC().y > mTgCyls[2].GetC().y) { + var_f30 = mTgCyls[2].GetC().y; } else { - var_f30 = field_0x850[0].GetC().y; + var_f30 = mTgCyls[0].GetC().y; } } else { - var_f30 = field_0x850[0].GetC().y; + var_f30 = mTgCyls[0].GetC().y; } s8 sp8; @@ -18288,55 +19005,55 @@ void daAlink_c::shadowDraw() { } field_0x31a4 = dComIfGd_setShadow(field_0x31a4, sp8, mpLinkModel, &spC, 800.0f, 0.0f, var_f30, var_f31, mLinkAcch.m_gnd, &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); - var_r29 = field_0x31a4; + shadowID = field_0x31a4; } - if (var_r29 != 0) { + if (shadowID != 0) { if (checkSwordDraw()) { if (!checkNoResetFlg3(FLG3_UNK_80000000)) { - dComIfGd_addRealShadow(var_r29, mSwordModel); + dComIfGd_addRealShadow(shadowID, mSwordModel); } if (!checkWoodSwordEquip()) { - dComIfGd_addRealShadow(var_r29, mSheathModel); + dComIfGd_addRealShadow(shadowID, mSheathModel); } } if (checkShieldDraw()) { - dComIfGd_addRealShadow(var_r29, mShieldModel); + dComIfGd_addRealShadow(shadowID, mShieldModel); } if (checkWolf()) { - if (checkMidnaRide() && !checkCloudSea() && !temp_r3->checkShadowNoDraw() && !temp_r3->checkShadowModelDraw()) { - dComIfGd_addRealShadow(var_r29, mpWlMidnaModel); + if (checkMidnaRide() && !checkCloudSea() && !midna->checkShadowNoDraw() && !midna->checkShadowModelDraw()) { + dComIfGd_addRealShadow(shadowID, mpWlMidnaModel); - if (!temp_r3->checkNoMaskDraw() ) { - dComIfGd_addRealShadow(var_r29, mpWlMidnaMaskModel); + if (!midna->checkNoMaskDraw() ) { + dComIfGd_addRealShadow(shadowID, mpWlMidnaMaskModel); } - dComIfGd_addRealShadow(var_r29, mpWlMidnaHairModel); + dComIfGd_addRealShadow(shadowID, mpWlMidnaHairModel); } } else { - dComIfGd_addRealShadow(var_r29, mpLinkFaceModel); - dComIfGd_addRealShadow(var_r29, mpLinkHatModel); - dComIfGd_addRealShadow(var_r29, mpLinkHandModel); + dComIfGd_addRealShadow(shadowID, mpLinkFaceModel); + dComIfGd_addRealShadow(shadowID, mpLinkHatModel); + dComIfGd_addRealShadow(shadowID, mpLinkHandModel); - if (field_0x2f92 == 0xFB) { - dComIfGd_addRealShadow(var_r29, mpDemoHLTmpModel); + if (mLeftHandIndex == 0xFB) { + dComIfGd_addRealShadow(shadowID, mpDemoHLTmpModel); } - if (field_0x2f93 == 0xFB) { - dComIfGd_addRealShadow(var_r29, mpDemoHRTmpModel); + if (mRightHandIndex == 0xFB) { + dComIfGd_addRealShadow(shadowID, mpDemoHRTmpModel); } if (mEquipItem == fpcNm_ITEM_BOOMERANG) { if (mItemAcKeep.getActor() != NULL) { - dComIfGd_addRealShadow(var_r29, mItemAcKeep.getActor()->model); + dComIfGd_addRealShadow(shadowID, mItemAcKeep.getActor()->model); } } else if (checkItemDraw()) { if (mEquipItem == fpcNm_ITEM_IRONBALL) { if (mItemVar0.field_0x3018 == 0 || mItemVar0.field_0x3018 == 8) { - dComIfGd_addRealShadow(var_r29, mHeldItemModel); + dComIfGd_addRealShadow(shadowID, mHeldItemModel); } else { if (fopAcM_gc_c::gndCheck(&mIronBallBgChkPos)) { field_0x32d4 = dComIfGd_setShadow(field_0x32d4, 0, mHeldItemModel, &mIronBallCenterPos, 150.0f, 32.0f, mIronBallBgChkPos.y, fopAcM_gc_c::getGroundY(), *fopAcM_gc_c::getGroundCheck(), &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); @@ -18344,18 +19061,18 @@ void daAlink_c::shadowDraw() { } } else { changeHookshotDrawModel(); - dComIfGd_addRealShadow(var_r29, mHeldItemModel); + dComIfGd_addRealShadow(shadowID, mHeldItemModel); if (checkHookshotItem(mEquipItem)) { if (checkHookshotWait() && !dComIfGp_checkPlayerStatus1(0, 0x10000)) { - dComIfGd_addRealShadow(var_r29, mpHookTipModel); + dComIfGd_addRealShadow(shadowID, mpHookTipModel); } if (mEquipItem == fpcNm_ITEM_W_HOOKSHOT && !checkPlayerGuardAndAttack() && !checkNoResetFlg0(FLG0_UNK_2)) { - dComIfGd_addRealShadow(var_r29, field_0x0710); + dComIfGd_addRealShadow(shadowID, field_0x0710); if (!dComIfGp_checkPlayerStatus1(0, 0x10000)) { - dComIfGd_addRealShadow(var_r29, field_0x0714); + dComIfGd_addRealShadow(shadowID, field_0x0714); } } } @@ -18365,43 +19082,43 @@ void daAlink_c::shadowDraw() { } if (checkNoResetFlg2(FLG2_UNK_1)) { - dComIfGd_addRealShadow(var_r29, mpKanteraModel); + dComIfGd_addRealShadow(shadowID, mpKanteraModel); } if (checkEquipHeavyBoots()) { for (int i = 0; i < 2; i++) { - dComIfGd_addRealShadow(var_r29, mpLinkBootModels[i]); + dComIfGd_addRealShadow(shadowID, mpLinkBootModels[i]); } } if (checkSpinnerRide()) { - fopAc_ac_c* temp_r3_6 = fopAcM_SearchByID(mRideAcKeep.getID()); - if (temp_r3_6 != NULL) { - dComIfGd_addRealShadow(var_r29, temp_r3_6->model); + fopAc_ac_c* spinnerActor = fopAcM_SearchByID(mRideAcKeep.getID()); + if (spinnerActor != NULL) { + dComIfGd_addRealShadow(shadowID, spinnerActor->model); } } } if (mGrabItemAcKeep.getID() != fpcM_ERROR_PROCESS_ID_e) { - fopAc_ac_c* temp_r3_7 = fopAcM_SearchByID(mGrabItemAcKeep.getID()); - if (temp_r3_7 != NULL && temp_r3_7->model != NULL) { - dComIfGd_addRealShadow(var_r29, temp_r3_7->model); + fopAc_ac_c* grabActor = fopAcM_SearchByID(mGrabItemAcKeep.getID()); + if (grabActor != NULL && grabActor->model != NULL) { + dComIfGd_addRealShadow(shadowID, grabActor->model); } } if (dComIfGp_checkPlayerStatus1(0, 0x10000) && mCargoCarryAcKeep.getID() != fpcM_ERROR_PROCESS_ID_e) { - fopAc_ac_c* temp_r3_8 = fopAcM_SearchByID(mCargoCarryAcKeep.getID()); - if (temp_r3_8 != NULL && temp_r3_8->model != NULL) { - dComIfGd_addRealShadow(var_r29, temp_r3_8->model); + fopAc_ac_c* carryActor = fopAcM_SearchByID(mCargoCarryAcKeep.getID()); + if (carryActor != NULL && carryActor->model != NULL) { + dComIfGd_addRealShadow(shadowID, carryActor->model); } } } } } -void daAlink_c::modelCalc(J3DModel* p_model) { +void daAlink_c::modelCalc(J3DModel* i_model) { if (mClothesChangeWaitTimer == 0) { - p_model->calc(); + i_model->calc(); } } @@ -18491,7 +19208,9 @@ int daAlink_c::draw() { initTevCustomColor(); if (mSight.getDrawFlg() && !checkEventRun()) { + #if PLATFORM_GCN mSight.setSight(); + #endif } if (checkNoResetFlg1(FLG1_UNK_80)) { @@ -18522,9 +19241,9 @@ int daAlink_c::draw() { return 1; } - BOOL temp_r30 = checkPlayerNoDraw(); - BOOL var_r29 = 0; - BOOL var_r31 = 1; + BOOL isPlayerNoDraw = checkPlayerNoDraw(); + BOOL var_r29 = FALSE; + BOOL var_r31 = TRUE; if (field_0x06f4 != NULL) { field_0x06f4->getTevColorReg(0, &tevStr.TevColor); @@ -18572,19 +19291,16 @@ int daAlink_c::draw() { f32 temp_f4 = 1.0f - (mIceDamageWaitTimer * (1.0f / mpHIO->mDamage.m.mFreezeTime)); f32 temp_f3 = 1.0f - temp_f4; - tevStr.TevColor.r = (temp_f4 * mpHIO->mDamage.m.mFreezeInitR) + - (temp_f3 * mpHIO->mDamage.m.mFreezeR); - tevStr.TevColor.g = (temp_f4 * mpHIO->mDamage.m.mFreezeInitG) + - (temp_f3 * mpHIO->mDamage.m.mFreezeG); - tevStr.TevColor.b = (temp_f4 * mpHIO->mDamage.m.mFreezeInitB) + - (temp_f3 * mpHIO->mDamage.m.mFreezeB); + tevStr.TevColor.r = (temp_f4 * mpHIO->mDamage.m.mFreezeInitR) + (temp_f3 * mpHIO->mDamage.m.mFreezeR); + tevStr.TevColor.g = (temp_f4 * mpHIO->mDamage.m.mFreezeInitG) + (temp_f3 * mpHIO->mDamage.m.mFreezeG); + tevStr.TevColor.b = (temp_f4 * mpHIO->mDamage.m.mFreezeInitB) + (temp_f3 * mpHIO->mDamage.m.mFreezeB); } else if (field_0x32b0[0].r != 0) { tevStr.TevColor.r = field_0x32b0[0].r; tevStr.TevColor.g = field_0x32b0[0].g; tevStr.TevColor.b = field_0x32b0[0].b; - var_r29 = 1; + var_r29 = TRUE; } else { - var_r31 = 0; + var_r31 = FALSE; } if (!checkWolf()) { @@ -18614,12 +19330,11 @@ int daAlink_c::draw() { if (checkWolf()) { dComIfGd_setListDark(); - modelDraw(mpLinkModel, temp_r30); + modelDraw(mpLinkModel, isPlayerNoDraw); - /* dSv_event_flag_c::M_011 - Inside Hyrule Castle - Midna removes wolf's chains in prison */ - if (dComIfGs_isEventBit(0x510)) { + if (dComIfGs_isEventBit(dSv_event_flag_c::M_011)) { for (int i = 0; i < 4; i++) { - modelDraw(mpWlChainModels[i], temp_r30); + modelDraw(mpWlChainModels[i], isPlayerNoDraw); } } @@ -18628,12 +19343,12 @@ int daAlink_c::draw() { tevStr.TevKColor.b = 0; if (checkSwordDraw()) { - modelDraw(mSwordModel, temp_r30); - modelDraw(mSheathModel, temp_r30); + modelDraw(mSwordModel, isPlayerNoDraw); + modelDraw(mSheathModel, isPlayerNoDraw); } if (checkShieldDraw()) { - modelDraw(mShieldModel, temp_r30); + modelDraw(mShieldModel, isPlayerNoDraw); } if (mHeldItemModel != NULL) { @@ -18643,7 +19358,7 @@ int daAlink_c::draw() { mHeldItemModel->getModelData()->entryTexMtxAnimator(field_0x0718); } - modelDraw(mHeldItemModel, temp_r30); + modelDraw(mHeldItemModel, isPlayerNoDraw); } dComIfGd_setList(); @@ -18666,7 +19381,7 @@ int daAlink_c::draw() { } } - modelDraw(mpLinkModel, temp_r30); + modelDraw(mpLinkModel, isPlayerNoDraw); if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20)) { if (checkHookshotReadyMaterialOffMode()) { @@ -18690,16 +19405,16 @@ int daAlink_c::draw() { } } - modelDraw(mpLinkHandModel, temp_r30); - if (field_0x2f92 == 0xFB) { - modelDraw(mpDemoHLTmpModel, temp_r30); + modelDraw(mpLinkHandModel, isPlayerNoDraw); + if (mLeftHandIndex == 0xFB) { + modelDraw(mpDemoHLTmpModel, isPlayerNoDraw); } - if (field_0x2f93 == 0xFB) { - modelDraw(mpDemoHRTmpModel, temp_r30); + if (mRightHandIndex == 0xFB) { + modelDraw(mpDemoHRTmpModel, isPlayerNoDraw); } - BOOL var_r3 = temp_r30 || dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20); + BOOL var_r3 = isPlayerNoDraw || dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x20); modelDraw(mpLinkHatModel, var_r3); @@ -18751,39 +19466,39 @@ int daAlink_c::draw() { if (checkItemDraw()) { changeHookshotDrawModel(); - modelDraw(mHeldItemModel, temp_r30); + modelDraw(mHeldItemModel, isPlayerNoDraw); if (mpHookTipModel != NULL) { - modelDraw(mpHookTipModel, temp_r30); + modelDraw(mpHookTipModel, isPlayerNoDraw); } if (mEquipItem == fpcNm_ITEM_W_HOOKSHOT && !checkPlayerGuardAndAttack() && !checkNoResetFlg0(FLG0_UNK_2)) { if (field_0x0710 != NULL) { - modelDraw(field_0x0710, temp_r30); + modelDraw(field_0x0710, isPlayerNoDraw); } if (field_0x0714 != NULL) { - modelDraw(field_0x0714, temp_r30); + modelDraw(field_0x0714, isPlayerNoDraw); } } changeHookshotDrawModel(); - if (mpHookChain != NULL && !temp_r30 && - ((checkHookshotItem(mEquipItem) && (mHeldItemRootPos.abs(mHookshotTopPos) > 1.0f || - field_0x3810.abs(mIronBallBgChkPos) > 1.0f)) || - mEquipItem == fpcNm_ITEM_IRONBALL)) + if (mpHookChain != NULL && !isPlayerNoDraw && + ((checkHookshotItem(mEquipItem) && (mHeldItemRootPos.abs(mHookshotTopPos) > 1.0f || field_0x3810.abs(mIronBallBgChkPos) > 1.0f)) + || mEquipItem == fpcNm_ITEM_IRONBALL) + ) { dComIfGd_getOpaListDark()->entryImm(mpHookChain, 0); } } if (checkNoResetFlg2(FLG2_UNK_1)) { - modelDraw(mpKanteraModel, temp_r30); + modelDraw(mpKanteraModel, isPlayerNoDraw); preKandelaarDraw(); - modelDraw(mpKanteraGlowModel, temp_r30); + modelDraw(mpKanteraGlowModel, isPlayerNoDraw); } else if (checkNoResetFlg2(FLG2_UNK_20000)) { basicModelDraw(mpKanteraModel); preKandelaarDraw(); @@ -18803,7 +19518,7 @@ int daAlink_c::draw() { tevStr.TevColor = color; } - modelDraw(mpLinkBootModels[i], temp_r30); + modelDraw(mpLinkBootModels[i], isPlayerNoDraw); } tevStr.TevColor = color; @@ -18811,7 +19526,7 @@ int daAlink_c::draw() { } if (!checkCanoeRide() && !dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x10000) && - !checkNoResetFlg2(FLG2_PLAYER_SHADOW)) + !checkNoResetFlg2(FLG2_PLAYER_SHADOW_NO_DRAW)) { shadowDraw(); } @@ -18831,6 +19546,10 @@ daAlink_c::~daAlink_c() { dComIfGp_clearPlayerStatus0(0, ~0x400030); dComIfGp_clearPlayerStatus1(0, 0x7FB7B78); + #if DEBUG + mpHIO->removeHIO(); + #endif + mZ2Link.deleteKantera(); mZ2Link.deleteObject(); if (mpHookSound != NULL) { @@ -18857,13 +19576,15 @@ daAlink_c::~daAlink_c() { mDoExt_destroyExpHeap(mpShieldArcHeap); } - dKy_plight_cut(&field_0x2f5c); + dKy_plight_cut(&mMagneBootsPlight); dComIfGp_setPlayer(0, NULL); dComIfGp_setLinkPlayer(NULL); } static int daAlink_Delete(daAlink_c* i_this) { + fpc_ProcID id = fopAcM_GetID(i_this); + if (i_this->getClothesChangeWaitTimer() != 0) { i_this->loadModelDVD(); return 0; diff --git a/src/d/actor/d_a_alink_HIO.inc b/src/d/actor/d_a_alink_HIO.inc index 52392eec13..90eb97aed7 100644 --- a/src/d/actor/d_a_alink_HIO.inc +++ b/src/d/actor/d_a_alink_HIO.inc @@ -12,124 +12,132 @@ static void daAlinkHIO_setAnmGenMessage(daAlinkHIO_anm_c* i_anmP, JORMContext* ctx, char* param_3, f32 param_4, int param_5) { size_t sVar1; - char acStack_94[100]; + char labelbuf[100]; sVar1 = strlen(param_3); - sprintf(acStack_94, param_3); + sprintf(labelbuf, param_3); // A Speed - sprintf(acStack_94 + sVar1, "A速度"); - ctx->genSlider(acStack_94, &i_anmP->mSpeed, 0.0f, 10.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); + sprintf(labelbuf + sVar1, "A速度"); + ctx->genSlider(labelbuf, &i_anmP->mSpeed, 0.0f, 10.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // Starting F - sprintf(acStack_94 + sVar1, "開始F"); - ctx->genSlider(acStack_94, &i_anmP->mStartFrame, 0.0f, param_4, 0, NULL, 0xffff, 0xffff, 0x200, + sprintf(labelbuf + sVar1, "開始F"); + ctx->genSlider(labelbuf, &i_anmP->mStartFrame, 0.0f, param_4, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // Ending F - sprintf(acStack_94 + sVar1, "終了F"); - ctx->genSlider(acStack_94, &i_anmP->mEndFrame, 0, param_4, 0, NULL, 0xffff, 0xffff, 0x200, + sprintf(labelbuf + sVar1, "終了F"); + ctx->genSlider(labelbuf, &i_anmP->mEndFrame, 0, param_4, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); if (param_5 != 0) { - sprintf(acStack_94 + sVar1, "CF"); - ctx->genSlider(acStack_94, &i_anmP->mCancelFrame, -1.0f, param_4 + 1.0f, 0, NULL, 0xffff, + sprintf(labelbuf + sVar1, "CF"); + ctx->genSlider(labelbuf, &i_anmP->mCancelFrame, -1.0f, param_4 + 1.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); } // Interpolation - sprintf(acStack_94 + sVar1, "補間"); - ctx->genSlider(acStack_94, &i_anmP->mInterpolation, 0.0f, 20.0f, 0, NULL, 0xffff, 0xffff, 0x200, + sprintf(labelbuf + sVar1, "補間"); + ctx->genSlider(labelbuf, &i_anmP->mInterpolation, 0.0f, 20.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); } static void daAlinkHIO_setReverseAnmGenMessage(daAlinkHIO_anm_c* i_anmP, JORMContext* ctx, char* param_3, f32 param_4, int param_5) { size_t sVar1; - char acStack_94[100]; + char labelbuf[100]; sVar1 = strlen(param_3); - sprintf(acStack_94, param_3); + sprintf(labelbuf, param_3); // A Speed - sprintf(acStack_94 + sVar1, "A速度"); - ctx->genSlider(acStack_94, &i_anmP->mSpeed, -10.0f, 0.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); + sprintf(labelbuf + sVar1, "A速度"); + ctx->genSlider(labelbuf, &i_anmP->mSpeed, -10.0f, 0.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // Starting F - sprintf(acStack_94 + sVar1, "開始F"); - ctx->genSlider(acStack_94, &i_anmP->mEndFrame, 0, param_4, 0, NULL, 0xffff, 0xffff, 0x200, + sprintf(labelbuf + sVar1, "開始F"); + ctx->genSlider(labelbuf, &i_anmP->mEndFrame, 0, param_4, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // Ending F - sprintf(acStack_94 + sVar1, "終了F"); - ctx->genSlider(acStack_94, &i_anmP->mStartFrame, 0.0f, param_4, 0, NULL, 0xffff, 0xffff, 0x200, + sprintf(labelbuf + sVar1, "終了F"); + ctx->genSlider(labelbuf, &i_anmP->mStartFrame, 0.0f, param_4, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); if (param_5 != 0) { - sprintf(acStack_94 + sVar1, "CF"); - ctx->genSlider(acStack_94, &i_anmP->mCancelFrame, -1.0f, param_4 + 1.0f, 0, NULL, 0xffff, + sprintf(labelbuf + sVar1, "CF"); + ctx->genSlider(labelbuf, &i_anmP->mCancelFrame, -1.0f, param_4 + 1.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); } // Interpolation - sprintf(acStack_94 + sVar1, "補間"); - ctx->genSlider(acStack_94, &i_anmP->mInterpolation, 0.0f, 20.0f, 0, NULL, 0xffff, 0xffff, 0x200, + sprintf(labelbuf + sVar1, "補間"); + ctx->genSlider(labelbuf, &i_anmP->mInterpolation, 0.0f, 20.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); } -// DEBUG NONMATCHING - regalloc + extra mr instruction -void daAlinkHIO_data_c::setStructData(char* param_1) { - u8* pfVar2; - u8* pfVar4; +void daAlinkHIO_data_c::setStructData(char* o_data) { + int i, j; + s16* ps16data; + f32* pf32data; + daAlinkHIO_anm_c* panmdata; + u8* pu8data; - sprintf(param_1 + strlen(param_1), m_name_string); - pfVar2 = (u8*)mp_data; + // open struct data string + sprintf(o_data + strlen(o_data), m_name_string); + panmdata = (daAlinkHIO_anm_c*)mp_data; - for (int i = 0; i < m_anm_num; i++) { - sprintf(param_1 + strlen(param_1), "\t{\n"); - pfVar4 = pfVar2; + // create daAlinkHIO_anm_c data string + for (i = 0; i < m_anm_num; i++) { + sprintf(o_data + strlen(o_data), "\t{\n"); - for (int i = 0; i < 2; i++) { - sprintf(param_1 + strlen(param_1), "\t\t%d,\n", *(s16*)pfVar4); - pfVar4 += 2; + ps16data = (s16*)panmdata; + for (j = 0; j < 2; j++) { + sprintf(o_data + strlen(o_data), "\t\t%d,\n", *ps16data); + ps16data++; } - pfVar4 = pfVar2; - - for (int i = 0; i < 4; i++) { - sprintf(param_1 + strlen(param_1), "\t\t%ff,\n", *(f32*)pfVar4); - pfVar4 += 4; + pf32data = (f32*)ps16data; + for (j = 0; j < 4; j++) { + sprintf(o_data + strlen(o_data), "\t\t%ff,\n", *pf32data); + pf32data++; } - pfVar2 += 0x14; - sprintf(param_1 + strlen(param_1), "\t},\n"); + panmdata++; + sprintf(o_data + strlen(o_data), "\t},\n"); } - pfVar4 = pfVar2; - - for (int i = 0; i < m_u8_num; i++) { - sprintf(param_1 + strlen(param_1), "\t%d,\n", *(u8*)pfVar2); - pfVar2++; + // create u8 data string + pu8data = (u8*)panmdata; + for (i = 0; i < m_u8_num; i++) { + sprintf(o_data + strlen(o_data), "\t%d,\n", *pu8data); + pu8data++; } - for (int i = 0; i < m_s16_num; i++) { - sprintf(param_1 + strlen(param_1), "\t%d,\n", *(s16*)pfVar2); - pfVar2 += 2; + // create s16 data string + ps16data = (s16*)pu8data; + for (i = 0; i < m_s16_num; i++) { + sprintf(o_data + strlen(o_data), "\t%d,\n", *ps16data); + ps16data++; } - for (int i = 0; i < m_f32_num; i++) { - sprintf(param_1 + strlen(param_1), "\t%ff,\n", *(f32*)pfVar2); - pfVar2 += 4; + // create f32 data string + pf32data = (f32*)ps16data; + for (i = 0; i < m_f32_num; i++) { + sprintf(o_data + strlen(o_data), "\t%ff,\n", *pf32data); + pf32data++; } - sprintf(param_1 + strlen(param_1), "};\n\n"); + // close struct data string + sprintf(o_data + strlen(o_data), "};\n\n"); } daAlinkHIO_data_c* l_HIO_before; daAlinkHIO_data_c* l_HIO_top; void daAlinkHIO_data_c::checkDataSize() { - u32 dataSize = (m_u8_num + m_anm_num * 0x14) + (m_s16_num * 2) + (m_f32_num * 4); + u32 dataSize = (m_u8_num + m_anm_num * sizeof(daAlinkHIO_anm_c)) + (m_s16_num * sizeof(s16)) + (m_f32_num * sizeof(f32)); JUT_ASSERT(188, dataSize == m_len); if (l_HIO_before != NULL) { @@ -146,49 +154,65 @@ void daAlinkHIO_data_c::baseCopy() { cLib_memCpy(mp_data, mp_src_data, m_len); } -// DEBUG NONMATCHING void daAlinkHIO_data_c::update() { + int i, j; + s16* ps16data; + u8* pu8data; + f32* pf32data; + daAlinkHIO_anm_c* panmdata; + baseCopy(); + JORMContext* ctx = attachJORMContext(8); ctx->startUpdateNode(this); - u8* local_20 = (u8*)mp_data; - for (int i = 0; i < m_anm_num; i++) { - ctx->updateSlider(2, (s16*)local_20, 0, 0, 0); + panmdata = (daAlinkHIO_anm_c*)mp_data; + for (i = 0; i < m_anm_num; i++) { + ps16data = (s16*)panmdata; + ctx->updateSlider(2, ps16data, 0, 0, 0); + ps16data++; + ps16data++; - for (int j = 0; j < 4; local_20 += 4, j++) { - ctx->updateSlider(2, (f32*)local_20, 0.0f, 0.0f, 0); + pf32data = (f32*)ps16data; + for (j = 0; j < 4; j++) { + ctx->updateSlider(2, pf32data, 0.0f, 0.0f, 0); + pf32data++; } + + panmdata++; } - for (int i = 0; i < f14; i++) { - ctx->updateCheckBox(2, local_20, 1, 0); + pu8data = (u8*)panmdata; + for (i = 0; i < f14; i++) { + ctx->updateCheckBox(2, pu8data, 1, 0); + pu8data++; } - for (int i = 0; i < f18; i++) { - ctx->updateComboBox(2, local_20, 0); - // local_20++; + for (i = 0; i < f18; i++) { + ctx->updateComboBox(2, pu8data, 0); + pu8data++; } - for (int i = 0; i < (m_u8_num - f14 + f18); i++) { - // local_20++; + int spC = m_u8_num - (f14 + f18); + for (i = 0; i < spC; i++) { + pu8data++; } - int iVar1 = f1c; - int iVar3 = m_s16_num; - - for (int i = 0; i < iVar3 - iVar1; i++) { - ctx->updateSlider(2, (s16*)local_20, 0, 0, 0); - // local_20 += 2; + ps16data = (s16*)pu8data; + int sp8 = m_s16_num - f1c; + for (i = 0; i < sp8; i++) { + ctx->updateSlider(2, ps16data, 0, 0, 0); + ps16data++; } - for (int i = 0; i < f1c; i++) { - // local_20 += 2; + for (i = 0; i < f1c; i++) { + ps16data++; } - for (int i = 0; i < m_f32_num; i++) { - ctx->updateSlider(2, (f32*)local_20, 0.0f, 0.0f, 0); - // local_20 += 4; + pf32data = (f32*)ps16data; + for (i = 0; i < m_f32_num; i++) { + ctx->updateSlider(2, pf32data, 0.0f, 0.0f, 0); + pf32data++; } ctx->endUpdateNode(); @@ -5812,9 +5836,9 @@ void daAlinkHIO_c::jumpStateUpdate(const cXyz* param_0, const cXyz* param_1, f32 JORMContext* ctx = attachJORMContext(8); ctx->startUpdateNode(this); sprintf(buf, "水平距離 %-8.3f", JMAFastSqrt(xDiff * xDiff + zDiff * zDiff)); - ctx->updateLabel(2, 0x4000006, buf); + ctx->updateLabel(2, PROPERTY_JUMP_HDIST_DISP_e, buf); sprintf(buf, "最頂点 %-8.3f", param_2); - ctx->updateLabel(2, 0x4000007, buf); + ctx->updateLabel(2, PROPERTY_JUMP_VDIST_DISP_e, buf); ctx->endUpdateNode(); releaseJORMContext(ctx); } @@ -5823,15 +5847,15 @@ void daAlinkHIO_c::genMessage(JORMContext* ctx) { // ------ Info Display ------ ctx->genLabel("------情報表示------", 0x4000001, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // Horizontal Distance - ctx->genLabel("水平距離", 0x4000006, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); + ctx->genLabel("水平距離", PROPERTY_JUMP_HDIST_DISP_e, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // Vertical Distance - ctx->genLabel("最頂点", 0x4000007, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); - // Reset - ctx->genButton("位置", 0x4000002, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); + ctx->genLabel("最頂点", PROPERTY_JUMP_VDIST_DISP_e, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); + // Position + ctx->genButton("位置", PROPERTY_POS_DISP_e, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // Save to File - ctx->genButton("ファイルに保存", 0x4000004, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); + ctx->genButton("ファイルに保存", PROPERTY_SAVE_FILE_e, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // Load File - ctx->genButton("ファイル読込", 0x4000005, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); + ctx->genButton("ファイル読込", PROPERTY_LOAD_FILE_e, 0, NULL, 0xffff, 0xffff, 0x200, 0x18); // Basic ctx->genNode("基本", &mBasic, 0, 0); // Move @@ -5880,51 +5904,49 @@ void daAlinkHIO_c::genMessage(JORMContext* ctx) { ctx->genNode("狼", &mWolf, 0, 0); } -void daAlinkHIO_c::readFileData(char* param_0) { - int src; +void daAlinkHIO_c::readFileData(char* o_fileData) { + int position; daAlinkHIO_data_c* top; - src = 0; + position = 0; for (top = l_HIO_top; top != NULL; top = top->mpNext) { - cLib_memCpy(top->mp_src_data, param_0 + src, top->m_len); + cLib_memCpy(top->mp_src_data, o_fileData + position, top->m_len); top->update(); - src += top->m_len; + position += top->m_len; } } -size_t daAlinkHIO_c::makeFileOutData(char* param_0, char* param_1) { - size_t sVar1; - int iVar2; +size_t daAlinkHIO_c::makeFileOutData(char* o_fileData, char* o_structData) { + int position; daAlinkHIO_data_c* top; - iVar2 = 0; + position = 0; for (top = l_HIO_top; top != NULL; top = top->mpNext) { - cLib_memCpy(param_0 + iVar2, top->mp_data, top->m_len); - iVar2 += top->m_len; + cLib_memCpy(o_fileData + position, top->mp_data, top->m_len); + position += top->m_len; } - param_0[iVar2] = 10; - iVar2++; + o_fileData[position] = '\n'; + position++; top = l_HIO_top; - *param_1 = 0; + *o_structData = 0; for (; top != NULL; top = top->mpNext) { - top->setStructData(param_1); + top->setStructData(o_structData); } - cLib_memCpy(param_0 + iVar2, param_1, strlen(param_1)); - return iVar2 + strlen(param_1); + cLib_memCpy(o_fileData + position, o_structData, strlen(o_structData)); + return position + strlen(o_structData); } void daAlinkHIO_c::listenPropertyEvent(const JORPropertyEvent* event) { fopAc_ac_c* player = dComIfGp_getPlayer(0); JORReflexible::listenPropertyEvent(event); - JORFile aJStack_168; + JORFile file; switch ((u32)event->id) { - case 0x4000002: { - OS_REPORT("X = %f, Y = %f, Z = %f,\n", player->current.pos.x, player->current.pos.y, - player->current.pos.z); + case PROPERTY_POS_DISP_e: { + OS_REPORT("X = %f, Y = %f, Z = %f,\n", player->current.pos.x, player->current.pos.y, player->current.pos.z); OS_REPORT("SHAPE_ANGLE = %x, %d\n", player->shape_angle.y, player->shape_angle.y); OS_REPORT("CURRENT_ANGLE = %x, %d\n", player->current.angle.y, player->current.angle.y); @@ -5934,60 +5956,58 @@ void daAlinkHIO_c::listenPropertyEvent(const JORPropertyEvent* event) { dComIfG_play_c::getLayerNo(0)); break; } - case 0x4000004: { - if (aJStack_168.open(6, "すべてのファイル(*.*)\0*.*\0", 0, 0, 0) != 0) { - char* buffer1 = new (0x20) char[0x10000]; - char* buffer2 = new (0x20) char[0x10000]; + case PROPERTY_SAVE_FILE_e: { + if (file.open(6, "すべてのファイル(*.*)\0*.*\0", NULL, NULL, NULL)) { + char* fileData = new (0x20) char[0x10000]; + char* structData = new (0x20) char[0x10000]; - if (buffer1 != NULL && buffer2 != NULL) { - size_t uVar5 = makeFileOutData(buffer1, buffer2); - aJStack_168.writeData(buffer1, uVar5); + if (fileData != NULL && structData != NULL) { + size_t dataSize = makeFileOutData(fileData, structData); + file.writeData(fileData, dataSize); // Write area %x\n - OS_REPORT("書き込み領域%x\n", uVar5); + OS_REPORT("書き込み領域%x\n", dataSize); - if (uVar5 > 0x20000) { + if (dataSize > 0x20000) { // Memory corruption has occurred!!!!! OS_REPORT("メモリ破壊が起こりました!!!!!\n"); } - delete[] buffer1; - delete[] buffer2; - + delete[] fileData; + delete[] structData; } else { - if (buffer1 != NULL) { - delete[] buffer1; + if (fileData != NULL) { + delete[] fileData; } - if (buffer2 != NULL) { - delete[] buffer2; + if (structData != NULL) { + delete[] structData; } // Could not secure the write area OS_REPORT("書き込み用領域確保できませんでした\n"); } - - aJStack_168.close(); + file.close(); } else { // Cannot open file OS_REPORT("ファイルが開けません\n"); } break; } - case 0x4000005: { - if (aJStack_168.open(1, "すべてのファイル(*.*)\0*.*\0", (char*)0x0, (char*)0x0, (char*)0x0) != 0) { - char* buffer1 = new (0x20) char[0x10000]; + case PROPERTY_LOAD_FILE_e: { + if (file.open(1, "すべてのファイル(*.*)\0*.*\0", NULL, NULL, NULL)) { + char* fileData = new (0x20) char[0x10000]; - if (buffer1 != NULL) { - aJStack_168.readData(buffer1, 0); - readFileData(buffer1); - delete[] buffer1; + if (fileData != NULL) { + file.readData(fileData, 0); + readFileData(fileData); + delete[] fileData; } else { // Could not secure the read area OS_REPORT("読み込み用領域確保できませんでした\n"); } - aJStack_168.close(); + file.close(); } else { // The file cannot be opened OS_REPORT("ファイルが開けません\n"); diff --git a/src/d/actor/d_a_alink_boom.inc b/src/d/actor/d_a_alink_boom.inc index 7c4183284c..6fb5c67051 100644 --- a/src/d/actor/d_a_alink_boom.inc +++ b/src/d/actor/d_a_alink_boom.inc @@ -94,9 +94,12 @@ bool daAlink_c::checkBoomerangChargeEnd() { } BOOL daAlink_c::checkBoomerangCarry(fopAc_ac_c* i_grabActor) { - if (checkNoResetFlg0(FLG0_UNK_20) && !checkEventRun() && !checkWolf() && - checkModeFlg(0x10000000) && - (checkHorseNoUpperAnime() || checkHorseTurnAnime() || checkBoomerangThrowAnime())) { + if (checkNoResetFlg0(FLG0_UNK_20) + && !checkEventRun() + && !checkWolf() + && checkModeFlg(0x10000000) + && (checkHorseNoUpperAnime() || checkHorseTurnAnime() || checkBoomerangThrowAnime())) + { deleteEquipItem(FALSE, FALSE); seStartOnlyReverb(JA_SE_LK_BOOM_CATCH); offNoResetFlg0(FLG0_UNK_20); @@ -110,13 +113,12 @@ BOOL daAlink_c::checkBoomerangCarry(fopAc_ac_c* i_grabActor) { return 0; } -void daAlink_c::initBoomerangUpperAnimeSpeed(int param_0) { +void daAlink_c::initBoomerangUpperAnimeSpeed(BOOL param_0) { if (!checkBoomerangThrowAnime()) { - if (param_0 != 0) { - f32 tmp = 0.0f; - mUpperFrameCtrl[2].setRate(tmp); - mUpperFrameCtrl[2].setFrame(tmp); - getNowAnmPackUpper(UPPER_2)->setFrame(tmp); + if (param_0) { + mUpperFrameCtrl[2].setRate(0.0f); + mUpperFrameCtrl[2].setFrame(0.0f); + getNowAnmPackUpper(UPPER_2)->setFrame(0.0f); } else { mUpperFrameCtrl[2].setRate(mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed); } @@ -129,37 +131,36 @@ BOOL daAlink_c::checkBoomerangAnime() const { BOOL daAlink_c::checkBoomerangThrowAnime() const { return (mEquipItem == fpcNm_ITEM_BOOMERANG || checkNoResetFlg1(FLG1_UNK_2) || mEquipItem == 0x102) && - checkUpperAnime(0x53); + checkUpperAnime(dRes_ID_ALANM_BCK_BOOMTHROW_e); } void daAlink_c::setBoomerangReadyQuake() { - f32 tmp_0 = 0.0f; - dComIfGp_getVibration().StartQuake(1, 1, cXyz(tmp_0, 1.0f, tmp_0)); + dComIfGp_getVibration().StartQuake(VIBMODE_Q_POWER1, 1, cXyz(0.0f, 1.0f, 0.0f)); onNoResetFlg3(FLG3_UNK_4); mItemVar0.field_0x3018 = mpHIO->mItem.mBoomerang.m.mChargeTime; } void daAlink_c::setBoomerangReadyAnime() { - f32 var_f31; - if (checkAttentionLock()) { - var_f31 = mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed; + f32 anm_speed; + if (!checkAttentionLock()) { + anm_speed = 0.0f; } else { - var_f31 = 0.0f; + anm_speed = mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed; } - setUpperAnimeBaseSpeed(0x54, var_f31, 3.0f); + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_BOOMWAIT_e, anm_speed, 3.0f); setBoomerangReadyQuake(); } void daAlink_c::setThrowBoomerangAnime() { - setUpperAnimeParam(0x53, UPPER_2, &mpHIO->mItem.mBoomerang.m.mThrowAnm); + setUpperAnimeParam(dRes_ID_ALANM_BCK_BOOMTHROW_e, UPPER_2, &mpHIO->mItem.mBoomerang.m.mThrowAnm); cancelItemUseQuake(0); } void daAlink_c::setBoomerangCatchAnime() { - setUpperAnimeParam(0x52, UPPER_2, &mpHIO->mItem.mBoomerang.m.mCatchAnm); - setFacePriBck(0xE8); + setUpperAnimeParam(dRes_ID_ALANM_BCK_BOOMCATCH_e, UPPER_2, &mpHIO->mItem.mBoomerang.m.mCatchAnm); + setFacePriBck(dRes_ID_ALANM_BCK_FAT_e); field_0x2f97 = 254; if (mEquipItem != fpcNm_ITEM_COPY_ROD) { @@ -234,12 +235,20 @@ void daAlink_c::throwBoomerang() { int daAlink_c::returnBoomerang(int param_0) { dComIfGp_clearPlayerStatus0(0, 0x400000); - if (mEquipItem == fpcNm_ITEM_NONE && !checkMagneBootsOn() && mItemAcKeep.getActor() == NULL && - !checkBoardRide() && !checkBoarRide() && !checkWolf() && - (mProcID != PROC_HANG_READY || field_0x3198 != 3) && (!checkEventRun() || param_0 != 0) && - (checkNoUpperAnime() || checkPlayerGuard() || checkHorseTurnAnime() || - checkDashDamageAnime() || checkBoomerangAnime()) && - !checkModeFlg(0x1BD0810)) { + if (mEquipItem == fpcNm_ITEM_NONE + && !checkMagneBootsOn() + && mItemAcKeep.getActor() == NULL + #if !PLATFORM_SHIELD + && !checkBoardRide() + && !checkBoarRide() + #endif + && !checkWolf() + && (mProcID != PROC_HANG_READY || field_0x3198 != 3) + && (!checkEventRun() || param_0 != 0) + && (checkNoUpperAnime() || checkPlayerGuard() || checkHorseTurnAnime() || + checkDashDamageAnime() || checkBoomerangAnime()) + && !checkModeFlg(0x1BD0810)) + { mItemAcKeep = mThrowBoomerangAcKeep; mThrowBoomerangAcKeep.clearData(); @@ -247,8 +256,7 @@ int daAlink_c::returnBoomerang(int param_0) { field_0x2f94 = 2; onNoResetFlg0(FLG0_UNK_20); - f32 tmp_0 = 0.0f; - dComIfGp_getVibration().StartShock(1, 1, cXyz(tmp_0, 1.0f, tmp_0)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER1, 1, cXyz(0.0f, 1.0f, 0.0f)); return 1; } @@ -349,7 +357,7 @@ void daAlink_c::setBoomerangSight() { daBoomerang_c* boomerang = (daBoomerang_c*)mItemAcKeep.getActor(); if (boomerang->getLockReserve() || (check_line && !boomerang->getLockCntMax())) { - setItemActionButtonStatus(0x10); + setItemActionButtonStatus(BUTTON_STATUS_LOCK); itemActionTrigger(); } } @@ -376,7 +384,7 @@ int daAlink_c::procBoomerangSubject() { } if (checkBoomerangReadyAnime()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } setShapeAngleToAtnActor(0); @@ -414,14 +422,14 @@ int daAlink_c::procBoomerangMove() { } if (!checkNextAction(0)) { - f32 var_f31 = -1.0f; + f32 morf = -1.0f; if (checkZeroSpeedF()) { onModeFlg(1); if (field_0x2f98 != 3) { field_0x2f98 = 3; - var_f31 = mpHIO->mBasic.m.mBasicInterpolation; + morf = mpHIO->mBasic.m.mBasicInterpolation; } } else { offModeFlg(1); @@ -432,7 +440,7 @@ int daAlink_c::procBoomerangMove() { } } - setBlendAtnMoveAnime(var_f31); + setBlendAtnMoveAnime(morf); setBodyAngleXReadyAnime(0); } @@ -459,7 +467,7 @@ int daAlink_c::procBoomerangCatch() { onModeFlg(4); } - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { resetUpperAnime(UPPER_2, -1.0f); checkNextAction(0); } else { diff --git a/src/d/actor/d_a_alink_bottle.inc b/src/d/actor/d_a_alink_bottle.inc index eff70af024..bba785875f 100644 --- a/src/d/actor/d_a_alink_bottle.inc +++ b/src/d/actor/d_a_alink_bottle.inc @@ -12,7 +12,7 @@ static int daAlink_bottleModelCallBack(J3DJoint* i_joint, int param_1); int daAlink_c::bottleModelCallBack() { if (mItemMode != 0) { - mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(field_0x30c2)); + mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(mRightItemJntNo)); mDoMtx_stack_c::transM(-3.0f, -1.0f, 0.3f); mDoMtx_stack_c::XYZrotM(cM_deg2s(102.0f), cM_deg2s(-0.5f), cM_deg2s(-122.0f)); mDoMtx_copy(mDoMtx_stack_c::get(), mHeldItemModel->getAnmMtx(1)); @@ -22,6 +22,8 @@ int daAlink_c::bottleModelCallBack() { } static int daAlink_bottleModelCallBack(J3DJoint* i_joint, int param_1) { + UNUSED(i_joint); + daAlink_c* player_p = (daAlink_c*)j3dSys.getModel()->getUserArea(); if (param_1 == 0) { @@ -46,36 +48,36 @@ BOOL daAlink_c::checkOilBottleItemNotGet(u16 i_itemNo) { void daAlink_c::setBottleModel(u16 i_itemNo) { JKRHeap* prev_heap = setItemHeap(); - mHeldItemModel = initModelEnv(loadAramBmd(0x310, 0x5C00), 0x1020200); - field_0x072c = loadAramItemBtp(0x3AE, mHeldItemModel); - field_0x0724 = loadAramItemBrk(0x322, mHeldItemModel); + mHeldItemModel = initModelEnv(loadAramBmd(dRes_ID_ALANM_BMD_AL_BOTTLE_e, 0x5C00), 0x1020200); + field_0x072c = loadAramItemBtp(dRes_ID_ALANM_BTP_AL_BOTTLE_e, mHeldItemModel); + field_0x0724 = loadAramItemBrk(dRes_ID_ALANM_BRK_AL_BOTTLE_e, mHeldItemModel); if (checkDrinkBottleItem(i_itemNo) || checkOilBottleItemNotGet(i_itemNo)) { - field_0x071c = loadAramItemBtk(0x328, mHeldItemModel); - field_0x0720 = loadAramItemBtk(0x327, mHeldItemModel); + field_0x071c = loadAramItemBtk(dRes_ID_ALANM_BTK_BOTTLE_D_YURE_e, mHeldItemModel); + field_0x0720 = loadAramItemBtk(dRes_ID_ALANM_BTK_BOTTLE_D_NOMU_e, mHeldItemModel); } else { - field_0x071c = loadAramItemBtk(0x32A, mHeldItemModel); - field_0x0720 = loadAramItemBtk(0x329, mHeldItemModel); + field_0x071c = loadAramItemBtk(dRes_ID_ALANM_BTK_BOTTLE_NUKU_e, mHeldItemModel); + field_0x0720 = loadAramItemBtk(dRes_ID_ALANM_BTK_BOTTLE_DASU_e, mHeldItemModel); } - field_0x0718 = loadAramItemBtk(0x32B, mHeldItemModel); + field_0x0718 = loadAramItemBtk(dRes_ID_ALANM_BTK_BOTTLE_YURE_e, mHeldItemModel); if (i_itemNo == fpcNm_ITEM_FAIRY) { - J3DAnmTransform* bck = (J3DAnmTransform*)loadAram(0x1E8, 0xC00); - mpHookTipModel = initModel(loadAramBmd(0x31D, 0x1400), 0); + J3DAnmTransform* bck = (J3DAnmTransform*)loadAram(dRes_ID_ALANM_BCK_O_GD_NV_e, 0xC00); + mpHookTipModel = initModel(loadAramBmd(dRes_ID_ALANM_BMD_O_GD_NV_e, 0x1400), 0); if (!mHookTipBck.init(bck, FALSE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false)) { JUT_ASSERT(142, FALSE); } mHookTipBck.entry(mpHookTipModel->getModelData(), 0.0f); } else if (i_itemNo == fpcNm_ITEM_WORM) { - J3DAnmTransform* bck = (J3DAnmTransform*)loadAram(0x1E9, 0xC00); - mpHookTipModel = initModel(loadAramBmd(0x31E, 0x2400), 0); + J3DAnmTransform* bck = (J3DAnmTransform*)loadAram(dRes_ID_ALANM_BCK_O_GD_WORM_e, 0xC00); + mpHookTipModel = initModel(loadAramBmd(dRes_ID_ALANM_BMD_O_GD_WORM_e, 0x2400), 0); if (!mHookTipBck.init(bck, FALSE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false)) { JUT_ASSERT(151, FALSE); } mHookTipBck.entry(mpHookTipModel->getModelData(), 0.0f); } else if (i_itemNo == fpcNm_ITEM_BEE_CHILD) { - mpHookTipModel = initModel(loadAramBmd(0x31C, 0x1000), 0); + mpHookTipModel = initModel(loadAramBmd(dRes_ID_ALANM_BMD_O_GD_HK_e, 0x1000), 0); } mDoExt_setCurrentHeap(prev_heap); @@ -139,14 +141,13 @@ void daAlink_c::setBottleModel(u16 i_itemNo) { } } - -int daAlink_c::commonBottleDrink(int param_0) { +int daAlink_c::commonBottleDrink(BOOL param_0) { simpleAnmPlay(field_0x0718); simpleAnmPlay(field_0x071c); daPy_frameCtrl_c* frameCtrl_p; u16 current_anm; - if (param_0 || mUpperAnmHeap[2].getIdx() == 0x247) { + if (param_0 || mUpperAnmHeap[2].getIdx() == dRes_ID_ALANM_BCK_TAKEL_e) { frameCtrl_p = &mUpperFrameCtrl[2]; current_anm = mUpperAnmHeap[2].getIdx(); } else { @@ -222,18 +223,14 @@ int daAlink_c::commonBottleDrink(int param_0) { if (dComIfGs_getLife() <= 2) { mItemVar0.mBottleItemHealAmount = dComIfGs_getMaxLifeGauge(); } else if (dComIfGs_getLife() <= 4) { - mItemVar0.mBottleItemHealAmount = - (dComIfGs_getMaxLifeGauge() / 2) - dComIfGs_getLife(); - } else if (dComIfGs_getLife() == dComIfGs_getMaxLifeGauge() || - cM_rnd() < 0.5f) - { + mItemVar0.mBottleItemHealAmount = (dComIfGs_getMaxLifeGauge() / 2) - dComIfGs_getLife(); + } else if (dComIfGs_getLife() == dComIfGs_getMaxLifeGauge() || cM_rnd() < 0.5f) { mItemVar0.mBottleItemHealAmount = -4; } else { mItemVar0.mBottleItemHealAmount = 4; } } else if (mEquipItem == fpcNm_ITEM_CHUCHU_PURPLE) { f32 rnd = cM_rndF(6.0f); - if (rnd < 1.0f) { mItemVar0.mBottleItemHealAmount = dComIfGs_getMaxLifeGauge(); } else if (rnd < 2.0f) { @@ -329,7 +326,6 @@ int daAlink_c::commonBottleDrink(int param_0) { return 0; } - fopAc_ac_c* daAlink_c::makeFairy(cXyz* i_pos, u32 i_params) { cXyz fairy_pos; @@ -345,11 +341,8 @@ fopAc_ac_c* daAlink_c::makeFairy(cXyz* i_pos, u32 i_params) { i_pos = &fairy_pos; } - fopAc_ac_c* fairy_actor = - (fopAc_ac_c*)fopAcM_fastCreate(PROC_Obj_Yousei, i_params, i_pos, fopAcM_GetRoomNo(this), - &shape_angle, NULL, -1, NULL, NULL); - - field_0x285c.setData(fairy_actor); + field_0x285c.setData(fopAcM_fastCreate(PROC_Obj_Yousei, i_params, i_pos, fopAcM_GetRoomNo(this), + &shape_angle, NULL, -1, NULL, NULL)); onResetFlg0(RFLG0_UNK_400); if (checkEventRun() && field_0x285c.getActor() != NULL) { @@ -365,7 +358,7 @@ int daAlink_c::procBottleDrinkInit(u16 i_itemNo) { return 1; } } else { - if (!dComIfGp_event_compulsory(this, 0, 0xFFFF)) { + if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) { return 0; } @@ -401,8 +394,8 @@ int daAlink_c::procBottleDrink() { return 1; } -int daAlink_c::procBottleOpenInit(u16 param_0) { - if (!dComIfGp_event_compulsory(this, 0, 0xFFFF)) { +int daAlink_c::procBottleOpenInit(u16 i_itemNo) { + if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) { return 0; } @@ -414,7 +407,7 @@ int daAlink_c::procBottleOpenInit(u16 param_0) { setSingleAnimeParam(ANM_BOTTLE_OPEN, &mpHIO->mItem.mBottle.m.mOpenBottleAnm); keepItemData(); - setBottleModel(param_0); + setBottleModel(i_itemNo); dComIfGp_setPlayerStatus1(0, 0x4000); mProcVar1.field_0x300a = 0; field_0x32cc = -1; @@ -435,21 +428,19 @@ int daAlink_c::procBottleOpenInit(u16 param_0) { mProcVar3.field_0x300e = 0; - u32 id = fopAcM_GetID(this); - dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0); + dCam_getBody()->StartEventCamera(0x12, fopAcM_GetID(this), "Type", 1, &field_0x3194, 0); mProcVar2.field_0x300c = 0; - field_0x27c8.initialize(current.pos.y + field_0x598); + field_0x27c8.initialize(current.pos.y + mHeight); - if (param_0 == 0x67) { - setCylAtParam(0x200, dCcG_At_Spl_UNK_0, 0, 0, 0, 30.0f, 30.0f); + if (i_itemNo == fpcNm_ITEM_WATER_BOTTLE) { + setCylAtParam(AT_TYPE_LANTERN_SWING, dCcG_At_Spl_UNK_0, 0, dCcD_SE_NONE, 0, 30.0f, 30.0f); } - mProcVar4.field_0x3010 = 0; + mProcVar4.field_0x3010 = 0; return 1; } - int daAlink_c::procBottleOpen() { static Vec const bottleTop = {0.0f, 25.0f, 0.0f}; daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; @@ -486,17 +477,17 @@ int daAlink_c::procBottleOpen() { mHeldItemModel->getModelData()->entryTexMtxAnimator(field_0x071c); if (mEquipItem == fpcNm_ITEM_FAIRY) { - cXyz spC; - mDoMtx_multVec(mHeldItemModel->getBaseTRMtx(), &bottleTop, &spC); + cXyz fairyPos; + mDoMtx_multVec(mHeldItemModel->getBaseTRMtx(), &bottleTop, &fairyPos); - if (makeFairy(&spC, 0)) { + if (makeFairy(&fairyPos, 0)) { onModeFlg(0x8000000); mpHookTipModel = NULL; resetFairyEffect(); } } } else if (frameCtrl_p->getFrame() >= 18.0f) { - field_0x2f93 = 5; + mRightHandIndex = 5; } } else { if (checkAnmEnd(frameCtrl_p) && mProcVar0.field_0x3008 != 0) { @@ -534,14 +525,12 @@ int daAlink_c::procBottleOpen() { return 1; } - -int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) { - fopAc_ac_c* var_r31 = param_0; - if (var_r31 != NULL && mEquipItem != fpcNm_ITEM_KANTERA) { +int daAlink_c::procBottleSwingInit(fopAc_ac_c* i_catchActor, int param_1) { + if (i_catchActor != NULL && mEquipItem != fpcNm_ITEM_KANTERA) { return procPreActionUnequipInit(PROC_BOTTLE_SWING, NULL); } - if (var_r31 == NULL && getReadyItem() != fpcNm_ITEM_EMPTY_BOTTLE) { + if (i_catchActor == NULL && getReadyItem() != fpcNm_ITEM_EMPTY_BOTTLE) { return checkWaitAction(); } @@ -551,22 +540,24 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) { field_0x2f98 = 4; mProcVar4.field_0x3010 = param_1; - if (var_r31 != NULL) { - field_0x280c.setData(var_r31); + fopAc_ac_c* catchActor; + if (i_catchActor != NULL) { + catchActor = i_catchActor; + field_0x280c.setData(i_catchActor); } else { - var_r31 = dComIfGp_att_getCatghTarget(); + catchActor = dComIfGp_att_getCatghTarget(); } BOOL temp_r3; - s16 temp_r30; - if (var_r31 != NULL) { - if (var_r31->attention_info.position.y > field_0x3834.y - 30.0f) { + s16 catchActorName; + if (catchActor != NULL) { + if (catchActor->attention_info.position.y > field_0x3834.y - 30.0f) { temp_r3 = false; } else { temp_r3 = true; } - temp_r30 = fopAcM_GetName(var_r31); + catchActorName = fopAcM_GetName(catchActor); } else { if (field_0x2fbc != 11 && field_0x2fbc != 6 && mWaterY > current.pos.y + 10.0f) { temp_r3 = true; @@ -574,16 +565,16 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) { temp_r3 = false; } - temp_r30 = PROC_ALINK; + catchActorName = PROC_ALINK; } - if (temp_r30 == PROC_OBJ_OILTUBO || temp_r30 == PROC_TAG_SSDRINK || - temp_r30 == PROC_TAG_BTLITM || mEquipItem == fpcNm_ITEM_KANTERA) + if (catchActorName == PROC_OBJ_OILTUBO || catchActorName == PROC_TAG_SSDRINK || + catchActorName == PROC_TAG_BTLITM || mEquipItem == fpcNm_ITEM_KANTERA) { setSingleAnimeParam(ANM_BOTTLE_SCOOP, &mpHIO->mItem.mBottle.m.mScoopAnm); if (mEquipItem == fpcNm_ITEM_KANTERA) { - onNoResetFlg2(FLG2_UNK_10000000); + onNoResetFlg2(FLG2_KANDELAAR_LIGHT_OFF); JPABaseEmitter* emitter_p = dComIfGp_particle_getEmitter(field_0x31c4); if (emitter_p != NULL) { @@ -594,15 +585,15 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) { field_0x3478 = mpHIO->mItem.mBottle.m.mScoopAnm.mCancelFrame; field_0x347c = 14.0f; - if (var_r31 != NULL) { - shape_angle.y = cLib_targetAngleY(¤t.pos, &var_r31->current.pos); + if (catchActor != NULL) { + shape_angle.y = cLib_targetAngleY(¤t.pos, &catchActor->current.pos); current.angle.y = shape_angle.y; - current.pos.x = var_r31->current.pos.x - cM_ssin(shape_angle.y) * 70.0f; - current.pos.z = var_r31->current.pos.z - cM_scos(shape_angle.y) * 70.0f; + current.pos.x = catchActor->current.pos.x - cM_ssin(shape_angle.y) * 70.0f; + current.pos.z = catchActor->current.pos.z - cM_scos(shape_angle.y) * 70.0f; } - if (temp_r30 == PROC_OBJ_OILTUBO) { + if (catchActorName == PROC_OBJ_OILTUBO) { onModeFlg(0x2000); } } else if (temp_r3) { @@ -622,7 +613,6 @@ int daAlink_c::procBottleSwingInit(fopAc_ac_c* param_0, int param_1) { return 1; } - int daAlink_c::procBottleSwing() { daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; @@ -702,9 +692,8 @@ int daAlink_c::procBottleSwing() { return 1; } - -int daAlink_c::procBottleGetInit(int param_0) { - BOOL proc_pickup = mProcID == PROC_PICK_UP; +int daAlink_c::procBottleGetInit(BOOL param_0) { + BOOL isPrevPickUp = mProcID == PROC_PICK_UP; commonProcInit(PROC_BOTTLE_GET); int var_r30; @@ -712,19 +701,19 @@ int daAlink_c::procBottleGetInit(int param_0) { setSingleAnime(ANM_BOTTLE_GET, mpHIO->mItem.mBottle.m.mGetAnm.mSpeed, 40.0f, mpHIO->mItem.mBottle.m.mGetAnm.mEndFrame, mpHIO->mItem.mBottle.m.mGetAnm.mInterpolation); - field_0x2f93 = 0xFE; + mRightHandIndex = 0xFE; - if (proc_pickup) { + if (isPrevPickUp) { execItemGet(fpcNm_ITEM_KANTERA); - var_r30 = 0xF8; + var_r30 = fpcNm_ITEM_KANTERA2; dComIfGp_setItemOilCount(-dComIfGs_getMaxOil()); } else { dComIfGp_setItemOilCount(dComIfGs_getMaxOil()); if (param_0) { - var_r30 = 0x9C; + var_r30 = fpcNm_ITEM_CHUCHU_YELLOW2; } else { - var_r30 = 0x6E; + var_r30 = fpcNm_ITEM_OIL2; } } @@ -751,15 +740,14 @@ int daAlink_c::procBottleGetInit(int param_0) { dCam_getBody()->StartEventCamera(0x12, id, "Type", 1, &field_0x3194, 0); if (mEquipItem == fpcNm_ITEM_FAIRY_DROP || mEquipItem == fpcNm_ITEM_CHUCHU_RARE || mEquipItem == fpcNm_ITEM_WORM) { - setFaceBasicTexture(FTANM_UNK_48); - setFaceBasicBck(0x143); + setFaceBasicTexture(FTANM_I_BINGET); + setFaceBasicBck(dRes_ID_ALANM_BCK_FI_e); } else if (mEquipItem == fpcNm_ITEM_UGLY_SOUP) { - setFaceBasicBck(0x146); + setFaceBasicBck(dRes_ID_ALANM_BCK_FJ_e); } - // event flag 0x4A40: Ordon Day 1 completed - if (mEquipItem == fpcNm_ITEM_BEE_CHILD && dComIfGs_isEventBit(0x4A40)) { - dComIfGs_onEventBit(0x4C80); // event flag 0x4C80: Collected Bee Larva on Ordon Day 2 + if (mEquipItem == fpcNm_ITEM_BEE_CHILD && dComIfGs_isEventBit(dSv_event_flag_c::F_0700)) { + dComIfGs_onEventBit(dSv_event_flag_c::F_0618); } return 1; @@ -770,7 +758,7 @@ int daAlink_c::procBottleGet() { simpleAnmPlay(field_0x0718); - if (frameCtrl->checkAnmEnd() && checkEndMessage(field_0x32cc)) { + if (checkAnmEnd(frameCtrl) && checkEndMessage(field_0x32cc)) { resetFairyEffect(); if (mEquipItem != fpcNm_ITEM_KANTERA) { deleteEquipItem(FALSE, FALSE); @@ -778,12 +766,12 @@ int daAlink_c::procBottleGet() { resetSpecialEvent(); } else if (frameCtrl->getFrame() >= 37.0f) { - field_0x2f93 = 0xFE; + mRightHandIndex = 0xFE; } else if (frameCtrl->getFrame() >= 15.0f) { mItemMode = 0; } else if (frameCtrl->getFrame() >= 5.0f) { mHeldItemModel->getModelData()->getMaterialNodePointer(0)->getShape()->show(); - field_0x2f93 = 5; + mRightHandIndex = 5; mItemMode = 1; } diff --git a/src/d/actor/d_a_alink_bow.inc b/src/d/actor/d_a_alink_bow.inc index 621e2cc6ad..4d7a354289 100644 --- a/src/d/actor/d_a_alink_bow.inc +++ b/src/d/actor/d_a_alink_bow.inc @@ -8,7 +8,7 @@ #include "d/actor/d_a_arrow.h" #include "d/actor/d_a_horse.h" -void daAlink_c::getArrowFlyData(f32* o_distance, f32* o_speed, int i_forceCharge) const { +void daAlink_c::getArrowFlyData(f32* o_distance, f32* o_speed, BOOL i_forceCharge) const { if (mEquipItem == fpcNm_ITEM_PACHINKO) { *o_distance = mpHIO->mItem.mBow.m.mSlingshotDistance; *o_speed = mpHIO->mItem.mBow.m.mSlingshotSpeed; @@ -53,43 +53,45 @@ BOOL daAlink_c::checkBowAndSlingItem(int i_itemNo) { } void daAlink_c::setSlingModel() { - J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(0x1F9); + J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(dRes_ID_ALANM_BCK_PWAIT_e); JKRHeap* prev_heap = setItemHeap(); - J3DModelData* model_data = loadAramBmd(0x319, 0x2C00); - mHeldItemModel = initModel(model_data, 0); - mItemBck.init(bck, 0, 2, 1.0f, 0, -1, false); + mHeldItemModel = initModel(loadAramBmd(dRes_ID_ALANM_BMD_AL_PACHI_e, 0x2C00), 0); + + if (!mItemBck.init(bck, FALSE, J3DFrameCtrl::EMode_LOOP, 1.0f, 0, -1, false)) { + JUT_ASSERT(108, 0); + } mDoExt_setCurrentHeap(prev_heap); field_0x2f95 = 5; field_0x2f94 = 103; } -cXyz* daAlink_c::checkBowCameraArrowPosP(s16* param_0, s16* param_1) { +cXyz* daAlink_c::checkBowCameraArrowPosP(s16* o_angleX, s16* o_angleY) { if (!checkBowAnime() || mEquipItem == fpcNm_ITEM_PACHINKO) { return NULL; } - s16 var_28; + s16 angle_y; if (checkHorseRide() && checkBoarSingleBattle() && dComIfGp_getHorseActor() != NULL) { - var_28 = dComIfGp_getHorseActor()->shape_angle.y; + angle_y = dComIfGp_getHorseActor()->shape_angle.y; } else if (checkMagneBootsOn()) { - var_28 = field_0x3118; + angle_y = field_0x3118; } else { - var_28 = shape_angle.y; + angle_y = shape_angle.y; } - var_28 += mBodyAngle.y; + angle_y += mBodyAngle.y; mDoMtx_stack_c::transS(field_0x3834); concatMagneBootMtx(); - mDoMtx_stack_c::ZXYrotM(mBodyAngle.x, var_28, 0); + mDoMtx_stack_c::ZXYrotM(mBodyAngle.x, angle_y, 0); - static Vec const localPos = {3.45f, 45.32f, -7.0f}; + static const Vec localPos = {3.45f, 45.32f, -7.0f}; mDoMtx_stack_c::multVec(&localPos, &mHeldItemRootPos); - *param_0 = mBodyAngle.x; - *param_1 = var_28; + *o_angleX = mBodyAngle.x; + *o_angleY = angle_y; return &mHeldItemRootPos; } @@ -111,8 +113,13 @@ void daAlink_c::makeArrow() { field_0x301e = 0; } - fopAc_ac_c* arrow_p = daArrow_c::makeArrow(this, field_0x301e); - mItemAcKeep.setData(arrow_p); + mItemAcKeep.setData(daArrow_c::makeArrow(this, field_0x301e)); + + if (mItemAcKeep.getActor() == NULL) { + // "Not enough memory to create item!!" + OS_REPORT("メモリが足りなくてアイテム発生できません!!\n"); + JUT_ASSERT(221, 0); + } } mItemVar0.field_0x3018 = 0; @@ -152,7 +159,7 @@ void daAlink_c::changeArrowType() { return; } - setItemActionButtonStatus(0x11); + setItemActionButtonStatus(BUTTON_STATUS_SWITCH); if (arrowChangeTrigger()) { if (mEquipItem == fpcNm_ITEM_HAWK_ARROW) { @@ -179,14 +186,13 @@ void daAlink_c::changeArrowType() { } } - BOOL daAlink_c::cancelBowMoveRideNotAtn() { return checkModeFlg(0x400) && checkAttentionLock() && mTargetedActor == NULL; } BOOL daAlink_c::cancelBowMove() { if (mTargetedActor == NULL && !checkAttentionLock() && mFastShotTime == 0 && - !checkBowReadyAnime() && (!checkBowShootAnime() || mUpperFrameCtrl[2].checkAnmEnd())) + !checkBowReadyAnime() && (!checkBowShootAnime() || checkAnmEnd(&mUpperFrameCtrl[2]))) { resetUpperAnime(UPPER_2, -1.0f); return true; @@ -208,7 +214,7 @@ void daAlink_c::setBowReadyAnime() { } } - setUpperAnimeBase(0xD); + setUpperAnimeBase(dRes_ID_ALANM_BCK_ASHOOTWAIT_e); if (checkResetFlg0(RFLG0_UNK_80)) { mItemMode = 0; @@ -220,23 +226,23 @@ void daAlink_c::setBowReadyAnime() { field_0x2f96 = 4; if (mEquipItem == fpcNm_ITEM_PACHINKO) { - changeItemBck(0x1F1, -1.0f); + changeItemBck(dRes_ID_ALANM_BCK_PSHOOT_e, -1.0f); } else { - changeItemBck(0x43, -1.0f); + changeItemBck(dRes_ID_ALANM_BCK_BASHOOT_e, -1.0f); } } void daAlink_c::setBowReloadAnime() { - setUpperAnimeParam(9, UPPER_2, &mpHIO->mItem.mBow.m.mLoadAnm); - setFacePriTexture(FTANM_UNK_8); - setFacePriBck(0xE5); + setUpperAnimeParam(dRes_ID_ALANM_BCK_ARELORD_e, UPPER_2, &mpHIO->mItem.mBow.m.mLoadAnm); + setFacePriTexture(FTANM_FINISHA); + setFacePriBck(dRes_ID_ALANM_BCK_FARELORD_e); if (mEquipItem == fpcNm_ITEM_PACHINKO) { - changeItemBck(0x1F0, mpHIO->mItem.mBow.m.mLoadAnm.mStartFrame); + changeItemBck(dRes_ID_ALANM_BCK_PRELORD_e, mpHIO->mItem.mBow.m.mLoadAnm.mStartFrame); field_0x2f97 = 5; seStartOnlyReverb(Z2SE_AL_PACHINKO_DRAW); } else { - changeItemBck(0x41, mpHIO->mItem.mBow.m.mLoadAnm.mStartFrame); + changeItemBck(dRes_ID_ALANM_BCK_BARELORD_e, mpHIO->mItem.mBow.m.mLoadAnm.mStartFrame); field_0x2f97 = 7; seStartOnlyReverb(Z2SE_AL_DRAW_BOW); } @@ -249,7 +255,7 @@ BOOL daAlink_c::checkUpperItemActionBow() { daPy_frameCtrl_c* frameCtrl_p = &mUpperFrameCtrl[2]; if (mEquipItem == fpcNm_ITEM_PACHINKO) { - static Vec const slingLocalPos = {10.0f, 10.0f, 0.0f}; + static const Vec slingLocalPos = {10.0f, 10.0f, 0.0f}; mDoMtx_multVec(getLeftItemMatrix(), &slingLocalPos, &mHeldItemRootPos); } @@ -273,29 +279,29 @@ BOOL daAlink_c::checkUpperItemActionBow() { if (checkReadyItem()) { if (mItemVar0.field_0x3018 != 0) { - setUpperAnimeParam(0xC, UPPER_2, &mpHIO->mItem.mBow.m.mShootAnm); - setFacePriBck(0xE8); + setUpperAnimeParam(dRes_ID_ALANM_BCK_ASHOOT_e, UPPER_2, &mpHIO->mItem.mBow.m.mShootAnm); + setFacePriBck(dRes_ID_ALANM_BCK_FAT_e); field_0x2f96 = 0; - u16 var_r29; + u16 bck_res_id; if (mEquipItem == fpcNm_ITEM_PACHINKO) { - var_r29 = 0x1F1; + bck_res_id = dRes_ID_ALANM_BCK_PSHOOT_e; if (dComIfGs_getPachinkoNum() != 0 && daArrow_c::makeSlingStone(this, &mHeldItemRootPos) != NULL) { dComIfGp_setItemPachinkoNumCount(-1); } } else if (field_0x301c != 0) { - var_r29 = 0x43; + bck_res_id = dRes_ID_ALANM_BCK_BASHOOT_e; } else { - var_r29 = 0x44; + bck_res_id = dRes_ID_ALANM_BCK_BASHOOTTAME_e; } - changeItemBck(var_r29, mpHIO->mItem.mBow.m.mShootAnm.mStartFrame); + changeItemBck(bck_res_id, mpHIO->mItem.mBow.m.mShootAnm.mStartFrame); mItemVar0.field_0x3018 = 0; } else if (mEquipItem == fpcNm_ITEM_PACHINKO) { if (!itemButton()) { - dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER1, 1, cXyz(0.0f, 1.0f, 0.0f)); seStartOnlyReverb(Z2SE_AL_PACHINKO_SHOT); mItemVar0.field_0x3018 = 1; resetFacePriAnime(); @@ -303,11 +309,11 @@ BOOL daAlink_c::checkUpperItemActionBow() { } else if (!itemButton()) { if (arrow_p != NULL) { u32 sound; - int shock_strength; + int vibmode; if (field_0x301c != 0) { arrow_p->setShoot(); - shock_strength = 1; + vibmode = VIBMODE_S_POWER1; if (arrow_p->checkBombArrow()) { sound = Z2SE_OBJ_ARROWBOMB_SHOT; @@ -316,7 +322,7 @@ BOOL daAlink_c::checkUpperItemActionBow() { } } else { arrow_p->setChargeShoot(); - shock_strength = 2; + vibmode = VIBMODE_S_POWER2; if (arrow_p->checkBombArrow()) { sound = Z2SE_OBJ_ARROWBOMB_SHOTGAIN; @@ -325,7 +331,7 @@ BOOL daAlink_c::checkUpperItemActionBow() { } } - dComIfGp_getVibration().StartShock(shock_strength, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(vibmode, 1, cXyz(0.0f, 1.0f, 0.0f)); seStartOnlyReverb(sound); if (field_0x301e == 1) { @@ -352,13 +358,13 @@ BOOL daAlink_c::checkUpperItemActionBow() { } } else if (checkBowReloadAnime()) { if (checkAnmEnd(frameCtrl_p)) { - setUpperAnimeBaseSpeed(10, 0.0f, -1.0f); - setFacePriTexture(FTANM_UNK_9); - setFacePriBck(0xE6); + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_ARELORDTAME_e, 0.0f, -1.0f); + setFacePriTexture(FTANM_ARELORD); + setFacePriBck(dRes_ID_ALANM_BCK_FARELORDTAME_e); if (mEquipItem != fpcNm_ITEM_PACHINKO) { - changeItemBck(0x42, 0.0f); - dComIfGp_getVibration().StartQuake(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + changeItemBck(dRes_ID_ALANM_BCK_BARELORDTAME_e, 0.0f); + dComIfGp_getVibration().StartQuake(VIBMODE_Q_POWER1, 1, cXyz(0.0f, 1.0f, 0.0f)); onNoResetFlg3(FLG3_UNK_4); } } @@ -423,7 +429,6 @@ BOOL daAlink_c::checkUpperItemActionBow() { return cancelUpperItemReadyAnime(0); } - void daAlink_c::checkUpperItemActionBowFly() { if (checkBowAnime()) { checkUpperItemActionBow(); @@ -439,7 +444,7 @@ int daAlink_c::checkNextActionBow() { mFastShotTime--; } - BOOL var_r31 = false; + BOOL is_hawk_arrow = false; if (!checkBowAnime()) { setBowReadyAnime(); setFastShotTimer(); @@ -452,7 +457,7 @@ int daAlink_c::checkNextActionBow() { mItemVar0.field_0x3018 = 1; if (mEquipItem == fpcNm_ITEM_HAWK_ARROW) { - var_r31 = true; + is_hawk_arrow = true; mFastShotTime = 0; } @@ -471,7 +476,7 @@ int daAlink_c::checkNextActionBow() { } } - BOOL rt; + BOOL rt = FALSE; if (!checkAttentionLock() && mFastShotTime == 0) { if (checkModeFlg(0x400)) { if (checkCanoeRide()) { @@ -494,7 +499,7 @@ int daAlink_c::checkNextActionBow() { } } - if (rt && var_r31) { + if (rt && is_hawk_arrow) { dComIfGp_setPlayerStatus0(0, 0x200000); seStartSystem(Z2SE_AL_HAWK_EYE_PUTON); } @@ -502,36 +507,37 @@ int daAlink_c::checkNextActionBow() { return rt; } - void daAlink_c::setBowModel() { - J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(0x59); - JKRHeap* old_heap = setItemHeap(); + J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(dRes_ID_ALANM_BCK_BVJMPCL_e); + JKRHeap* heap = setItemHeap(); - mHeldItemModel = initModel(loadAramBmd(0x314, 0x4C00), 0); - mItemBck.init(bck, FALSE, 2, 1.0f, 0, -1, false); + mHeldItemModel = initModel(loadAramBmd(dRes_ID_ALANM_BMD_AL_BOW_e, 0x4C00), 0); + + if (!mItemBck.init(bck, FALSE, 2, 1.0f, 0, -1, false)) { + JUT_ASSERT(894, 0); + } - mDoExt_setCurrentHeap(old_heap); + mDoExt_setCurrentHeap(heap); field_0x33dc = mItemBck.getBckAnm()->getFrameMax() - 0.001f; field_0x2f95 = 5; field_0x2f94 = 0x67; } - bool daAlink_c::checkBowGrabLeftHand() const { return checkReinRide() && !checkBowAnime(); } void daAlink_c::setBowHangAnime() { if (checkBowItem(mEquipItem)) { - changeItemBck(0x58, 0.0f); + changeItemBck(dRes_ID_ALANM_BCK_BVJMPCH_e, 0.0f); } } void daAlink_c::setBowNormalAnime() { if (checkBowItem(mEquipItem)) { - changeItemBck(0x59, -1.0f); + changeItemBck(dRes_ID_ALANM_BCK_BVJMPCL_e, -1.0f); } else if (mEquipItem == fpcNm_ITEM_PACHINKO) { - changeItemBck(0x1F9, -1.0f); + changeItemBck(dRes_ID_ALANM_BCK_PWAIT_e, -1.0f); } } @@ -563,7 +569,7 @@ int daAlink_c::procBowSubjectInit() { } int daAlink_c::procBowSubject() { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); if (!checkNextAction(0) && setBodyAngleToCamera()) { setBowSight(); } @@ -597,21 +603,21 @@ int daAlink_c::procBowMove() { onEndResetFlg0(ERFLG0_UNK_8000000); if (!checkNextAction(0)) { - f32 var_f31 = -1.0f; + f32 morf = -1.0f; if (checkZeroSpeedF()) { onModeFlg(1); if (field_0x2f98 != 3) { field_0x2f98 = 3; - var_f31 = mpHIO->mBasic.m.mBasicInterpolation; + morf = mpHIO->mBasic.m.mBasicInterpolation; } current.angle.y = shape_angle.y - 0x4000; } else { offModeFlg(1); } - setBlendAtnMoveAnime(var_f31); + setBlendAtnMoveAnime(morf); setBodyAngleXReadyAnime(0); } diff --git a/src/d/actor/d_a_alink_canoe.inc b/src/d/actor/d_a_alink_canoe.inc index b21f7d1185..6b92edf0bc 100644 --- a/src/d/actor/d_a_alink_canoe.inc +++ b/src/d/actor/d_a_alink_canoe.inc @@ -37,14 +37,14 @@ f32 daAlink_c::getCanoeSpeedRate() const { } s16 daAlink_c::getCanoeMaxRotSpeed() const { - s16 var_r30; + s16 max_turn_angle; if (checkCanoeSlider()) { - var_r30 = mpHIO->mCanoe.m.mMaxTurnAngle_RiverRide; + max_turn_angle = mpHIO->mCanoe.m.mMaxTurnAngle_RiverRide; } else { - var_r30 = mpHIO->mCanoe.m.mMaxTurnAngle; + max_turn_angle = mpHIO->mCanoe.m.mMaxTurnAngle; } - return var_r30 * (((mUnderFrameCtrl[0].getRate() - mpHIO->mCanoe.m.mStickRowAnmSpeed) * 0.5f) + 1.0f); + return max_turn_angle * (((mUnderFrameCtrl[0].getRate() - mpHIO->mCanoe.m.mStickRowAnmSpeed) * 0.5f) + 1.0f); } cXyz* daAlink_c::getCanoeLocalPaddleTop() { @@ -53,6 +53,8 @@ cXyz* daAlink_c::getCanoeLocalPaddleTop() { } static fopAc_ac_c* daAlink_searchCanoe(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); + if (fopAcM_GetName(i_actor) == PROC_CANOE && ((daCanoe_c*)i_actor)->getModel() != NULL) { return i_actor; } @@ -112,22 +114,26 @@ void daAlink_c::initCanoeRide() { mProcVar5.field_0x3012 = 1; field_0x3588 = l_waitBaseAnime; field_0x384c = (cXyz*)&l_canoeBaseAnime; - mRideStatus = 3; + mRideStatus = RIDETYPE_CANOE; mProcVar4.field_0x3010 = 0; } BOOL daAlink_c::checkCanoeJumpRide() { daCanoe_c* canoe = NULL; - if (field_0x850[0].ChkCoHit()) { - canoe = (daCanoe_c*)field_0x850[0].GetCoHitAc(); - } else if (field_0x850[1].ChkCoHit()) { - canoe = (daCanoe_c*)field_0x850[1].GetCoHitAc(); + if (mTgCyls[0].ChkCoHit()) { + canoe = (daCanoe_c*)mTgCyls[0].GetCoHitAc(); + } else if (mTgCyls[1].ChkCoHit()) { + canoe = (daCanoe_c*)mTgCyls[1].GetCoHitAc(); } - if (speed.y < 0.0f && canoe != NULL && fopAcM_GetName(canoe) == PROC_CANOE && - canoe->checkJumpRideFlg() && !checkDeadHP() && - (mProcID != PROC_FALL || mProcVar4.field_0x3010 != 0)) { + if (speed.y < 0.0f && + canoe != NULL && + fopAcM_GetName(canoe) == PROC_CANOE && + canoe->checkJumpRideFlg() && + !checkDeadHP() && + (mProcID != PROC_FALL || mProcVar4.field_0x3010 != 0)) + { return procCanoeJumpRideInit(canoe); } @@ -135,11 +141,11 @@ BOOL daAlink_c::checkCanoeJumpRide() { } void daAlink_c::setArmReelAnime() { - setUpperAnimeBaseSpeed(0x1FB, 1.0f, -1.0f); + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_REELINGARM_e, 1.0f, -1.0f); mUpperFrameCtrl[2].setRate(0.0f); mNowAnmPackUpper[2].setRatio(1.0f); field_0x2f97 = 8; - offNoResetFlg1(FLG1_UNK_8000); + offNoResetFlg1(FLG1_FISHING_ROD_CASTING_END); } void daAlink_c::setFishingWaitAction() { @@ -156,32 +162,32 @@ void daAlink_c::setFishingWaitAction() { mUpperFrameCtrl[2].setRate(0.0f); } - f32 var_f29, var_f28, var_f27, var_f26, var_f31, var_f30; + f32 var_f29, var_f28, var_f27, var_f26, rod_stick_x, rod_stick_y; dmg_rod_class* mg_rod = (dmg_rod_class*)mItemAcKeep.getActor(); if (mg_rod != NULL && !checkEventRun()) { - var_f31 = mg_rod->getRodStickX(); - var_f30 = mg_rod->getRodStickY(); + rod_stick_x = mg_rod->getRodStickX(); + rod_stick_y = mg_rod->getRodStickY(); } else { - var_f31 = 0.0f; - var_f30 = 0.0f; + rod_stick_x = 0.0f; + rod_stick_y = 0.0f; } - var_f29 = JMAFastSqrt(var_f31 * var_f31 + var_f30 * var_f30); - int var_r27 = abs(cM_atan2s(-var_f31, var_f30)); + var_f29 = JMAFastSqrt(SQUARE(rod_stick_x) + SQUARE(rod_stick_y)); + int var_r27 = abs(cM_atan2s(-rod_stick_x, rod_stick_y)); if (var_f29 > 0.05f) { - if (var_f30 > 0.0f) { - var_f28 = ((1.0f - (var_f29 - fabsf(var_f31))) * frame_ctrl0->getEnd()) * 0.2f; + if (rod_stick_y > 0.0f) { + var_f28 = ((1.0f - (var_f29 - fabsf(rod_stick_x))) * frame_ctrl0->getEnd()) * 0.2f; var_f26 = (0x4000 - var_r27) * 0.000061035156f; } else { - var_f28 = frame_ctrl0->getEnd() - (((1.0f - (var_f29 - fabsf(var_f31))) * frame_ctrl0->getEnd()) * 0.8f); + var_f28 = frame_ctrl0->getEnd() - (((1.0f - (var_f29 - fabsf(rod_stick_x))) * frame_ctrl0->getEnd()) * 0.8f); var_f26 = (var_r27 - 0x4000) * 0.000061035156f; } - if (var_f31 < 0.0f) { - var_f27 = ((1.0f - (var_f29 - fabsf(var_f30))) * frame_ctrl1->getEnd()) * 0.5f; + if (rod_stick_x < 0.0f) { + var_f27 = ((1.0f - (var_f29 - fabsf(rod_stick_y))) * frame_ctrl1->getEnd()) * 0.5f; } else { - var_f27 = frame_ctrl1->getEnd() - (((1.0f - (var_f29 - fabsf(var_f30))) * frame_ctrl1->getEnd()) * 0.5f); + var_f27 = frame_ctrl1->getEnd() - (((1.0f - (var_f29 - fabsf(rod_stick_y))) * frame_ctrl1->getEnd()) * 0.5f); } } else { var_f28 = frame_ctrl0->getEnd() * 0.2f; @@ -200,27 +206,25 @@ void daAlink_c::setFishingWaitAction() { void daAlink_c::setFishGetFace() { if (field_0x2fc8 == 1) { - setFacePriBck(0x140); + setFacePriBck(dRes_ID_ALANM_BCK_FH_e); } else if (field_0x2fc8 == 2) { - setFacePriTexture(FTANM_UNK_7A); - setFacePriBck(0x143); + setFacePriTexture(FTANM_I_A); + setFacePriBck(dRes_ID_ALANM_BCK_FI_e); } else if (field_0x2fc8 == 3) { - setFacePriTexture(FTANM_UNK_7B); - setFacePriBck(0x146); + setFacePriTexture(FTANM_J_A); + setFacePriBck(dRes_ID_ALANM_BCK_FJ_e); } else if (field_0x2fc8 == 4) { - setFacePriTexture(FTANM_UNK_7C); - setFacePriBck(0x149); + setFacePriTexture(FTANM_K_A); + setFacePriBck(dRes_ID_ALANM_BCK_FK_e); } else { resetFacePriAnime(); } } -void daAlink_c::setRideCanoeBasePos(fopAc_ac_c* param_0) { - field_0x37c8.x = 0.0f; - field_0x37c8.y = 25.0f; - field_0x37c8.z = -35.0f; +void daAlink_c::setRideCanoeBasePos(fopAc_ac_c* i_canoeActor) { + field_0x37c8.set(0.0f, 25.0f, -35.0f); - if (((daCanoe_c*)param_0)->checkTandem()) { + if (((daCanoe_c*)i_canoeActor)->checkTandem()) { field_0x37c8.z += 175.0f; } } @@ -253,7 +257,8 @@ void daAlink_c::setSyncCanoePos() { cLib_addCalcAngleS(&mBodyAngle.z, var_r28, 5, 0x40, 0x10); s16 var_r29; - f32 var_f31; + s16 var_r27 = mProcVar4.field_0x3010; + f32 var_f31 = 1.0f; if ((canoe->speedF < 0.0f && mProcID == PROC_CANOE_WAIT) || (mProcID == PROC_CANOE_ROW && mProcVar3.field_0x300e == 1)) { if (mProcVar5.field_0x3012 == 0) { var_r29 = 0x5000; @@ -268,7 +273,7 @@ void daAlink_c::setSyncCanoePos() { var_f31 = 0.0f; } else { var_r29 = 0; - var_f31 = (s16)(shape_angle.y - field_0x2fe6) * 0.005f; + var_f31 = (s16)(shape_angle.y - mPrevAngleY) * 0.005f; } } @@ -284,7 +289,8 @@ int daAlink_c::canoeCommon() { setSyncCanoePos(); - if (((daCanoe_c*)mRideAcKeep.getActor())->checkPaddleChangeWater()) { + daCanoe_c* canoe = (daCanoe_c*)mRideAcKeep.getActor(); + if (canoe->checkPaddleChangeWater()) { f32 var_f31; if (getNowAnmPackUnder(UNDER_0) != getNowAnmPackUpper(UPPER_0)) { var_f31 = mUpperFrameCtrl[0].getRate(); @@ -292,15 +298,16 @@ int daAlink_c::canoeCommon() { var_f31 = mUnderFrameCtrl[0].getRate(); } - u32 var_r29; + u32 sound_id; if ((mUpperAnmHeap[0].getIdx() == getMainBckData(ANM_CANOE_ROW_LEFT_BACK)->m_upperID) || (mUpperAnmHeap[0].getIdx() == getMainBckData(ANM_CANOE_ROW_RIGHT_BACK)->m_upperID)) { - var_r29 = 0x20022; + sound_id = Z2SE_AL_PADDLING_BACKWARD; } else { - var_r29 = 0x20021; + sound_id = Z2SE_AL_PADDLING_FORWARD; } - int var_r27 = cLib_minMaxLimit(((fabsf(var_f31) - mpHIO->mCanoe.m.mStickRowAnmSpeed) / (mpHIO->mCanoe.m.mBtnRowStartAnmSpeed - mpHIO->mCanoe.m.mStickRowAnmSpeed)) * 127.0f, 0, 0x7F); - mZ2Link.startLinkSwordSound(var_r29, var_r27, mVoiceReverbIntensity); + mZ2Link.startLinkSwordSound(sound_id, + cLib_minMaxLimit(((fabsf(var_f31) - mpHIO->mCanoe.m.mStickRowAnmSpeed) / (mpHIO->mCanoe.m.mBtnRowStartAnmSpeed - mpHIO->mCanoe.m.mStickRowAnmSpeed)) * 127.0f, 0, 127), + mVoiceReverbIntensity); } return 0; @@ -332,7 +339,7 @@ int daAlink_c::procCanoeRideInit() { commonProcInit(PROC_CANOE_RIDE); setHeavyBoots(0); mRideAcKeep.setData(field_0x27f4); - deleteEquipItem(0, 0); + deleteEquipItem(FALSE, FALSE); daCanoe_c* canoe = (daCanoe_c*)field_0x27f4; setSingleAnime(ANM_HANG_CLIMB_TOP, mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mSpeed, @@ -355,7 +362,7 @@ int daAlink_c::procCanoeRideInit() { field_0x37c8.x = -55.0f; } - mDoMtx_multVec(canoe->getModelMtx(), &field_0x37c8, ¤t.pos); + cMtx_multVec(canoe->getModelMtx(), &field_0x37c8, ¤t.pos); current.angle.y = shape_angle.y; initCanoeRide(); @@ -370,13 +377,13 @@ int daAlink_c::procCanoeRide() { return checkNextAction(0); } - mDoMtx_multVec(canoe->getModelMtx(), &field_0x37c8, ¤t.pos); + cMtx_multVec(canoe->getModelMtx(), &field_0x37c8, ¤t.pos); daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { procCanoeWaitInit(1); } else if (frameCtrl->getFrame() < 9.0f) { - mProcVar3.field_0x300e += 0x180; + mProcVar3.field_0x300e += (s16)0x180; if (mProcVar0.field_0x3008 == 0) { canoe->incShapeAngleZ(-mProcVar3.field_0x300e); @@ -389,14 +396,12 @@ int daAlink_c::procCanoeRide() { return 1; } -int daAlink_c::procCanoeJumpRideInit(fopAc_ac_c* param_0) { - BOOL var_r31; - daCanoe_c* canoe = (daCanoe_c*)param_0; - +int daAlink_c::procCanoeJumpRideInit(fopAc_ac_c* i_canoeActor) { commonProcInit(PROC_CANOE_JUMP_RIDE); - if (canoe == NULL) { - canoe = (daCanoe_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchCanoe, NULL); + BOOL var_r31; + if (i_canoeActor == NULL) { + i_canoeActor = (daCanoe_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchCanoe, NULL); var_r31 = true; } else { var_r31 = false; @@ -404,15 +409,17 @@ int daAlink_c::procCanoeJumpRideInit(fopAc_ac_c* param_0) { setHeavyBoots(0); setSingleAnimeParam(ANM_JUMP_LAND, &mpHIO->mAutoJump.m.mLandAnm); - deleteEquipItem(0, 0); + deleteEquipItem(FALSE, FALSE); + + mRideAcKeep.setData(i_canoeActor); + daCanoe_c* canoe = (daCanoe_c*)i_canoeActor; - mRideAcKeep.setData(canoe); setSpecialGravity(0.0f, maxFallSpeed, 0); mNormalSpeed = 0.0f; speed.y = 0.0f; - setRideCanoeBasePos(canoe); - mDoMtx_multVec(canoe->getModelMtx(), &field_0x37c8, ¤t.pos); + setRideCanoeBasePos(i_canoeActor); + cMtx_multVec(canoe->getModelMtx(), &field_0x37c8, ¤t.pos); current.angle.y = shape_angle.y; initCanoeRide(); @@ -429,9 +436,9 @@ int daAlink_c::procCanoeJumpRide() { return checkNextAction(0); } - mDoMtx_multVec(canoe->getModelMtx(), &field_0x37c8, ¤t.pos); + cMtx_multVec(canoe->getModelMtx(), &field_0x37c8, ¤t.pos); - if (mUnderFrameCtrl[0].checkAnmEnd()) { + if (checkAnmEnd(mUnderFrameCtrl)) { procCanoeWaitInit(1); } @@ -466,7 +473,8 @@ int daAlink_c::procCanoeGetOffInit() { var_r27 = true; } else { mLinkGndChk.SetPos(&sp4C); - if (dComIfG_Bgsp().GroundCross(&mLinkGndChk) > canoe->current.pos.y) { + f32 var_f31 = dComIfG_Bgsp().GroundCross(&mLinkGndChk); + if (var_f31 > canoe->current.pos.y) { var_r27 = false; } else { var_r27 = true; @@ -475,11 +483,11 @@ int daAlink_c::procCanoeGetOffInit() { } if (var_r27) { - shape_angle.y -= 0x4000; + shape_angle.y -= (s16)0x4000; setOldRootQuaternion(0, 0x4000, 0); var_r28->mTranslate.x -= 100.0f; } else { - shape_angle.y += 0x4000; + shape_angle.y += (s16)0x4000; setOldRootQuaternion(0, -0x4000, 0); var_r28->mTranslate.x += 100.0f; } @@ -540,66 +548,67 @@ int daAlink_c::procCanoeWaitInit(int param_0) { return procCanoePaddleGrabInit(); } - BOOL temp_r26 = mProcID == PROC_CANOE_GRAB_MOVE; + s16 is_prev_grab_move = mProcID == PROC_CANOE_GRAB_MOVE; if (!commonProcInitNotSameProc(PROC_CANOE_WAIT)) { return 0; } - f32 var_f31; - daAlink_ANM var_r27; + f32 morf; + daAlink_ANM anm; - if (param_0) { + if (param_0 != 0) { cXyz sp8; daCanoe_c* canoe = (daCanoe_c*)mRideAcKeep.getActor(); + s16 var_r25 = shape_angle.y - canoe->shape_angle.y; - setOldRootQuaternion(0, (s16)(shape_angle.y - canoe->shape_angle.y), 0); - J3DTransformInfo* temp_r3_2 = field_0x2060->getOldFrameTransInfo(0); + setOldRootQuaternion(0, var_r25, 0); + J3DTransformInfo* transinfo = field_0x2060->getOldFrameTransInfo(0); mDoMtx_stack_c::YrotS(-canoe->shape_angle.y); mDoMtx_stack_c::transM(-canoe->current.pos.x, -canoe->current.pos.y, -canoe->current.pos.z); mDoMtx_stack_c::multVec(¤t.pos, &sp8); - temp_r3_2->mTranslate.x += sp8.x; - temp_r3_2->mTranslate.y += sp8.y; - temp_r3_2->mTranslate.z += sp8.z - 15.0f; + transinfo->mTranslate.x += sp8.x; + transinfo->mTranslate.y += sp8.y; + transinfo->mTranslate.z += sp8.z - 15.0f; if (canoe->checkTandem()) { - temp_r3_2->mTranslate.z -= 175.0f; + transinfo->mTranslate.z -= 175.0f; } if (param_0 == 2) { - var_f31 = -1.0f; + morf = -1.0f; mProcVar0.field_0x3008 = 0; mEquipItem = 0x10B; - var_r27 = ANM_WAIT_CANOE_RIGHT; + anm = ANM_WAIT_CANOE_RIGHT; canoe->startInitPaddleWater(); } else { - var_f31 = 10.0f; + morf = 10.0f; mProcVar0.field_0x3008 = 10; - var_r27 = ANM_WAIT_SIT; + anm = ANM_WAIT_SIT; } } else { - var_f31 = 3.0f; + morf = 3.0f; mProcVar0.field_0x3008 = 0; if (mEquipItem == fpcNm_ITEM_NONE || (mEquipItem != 0x10B && !checkFisingRodLure())) { - var_r27 = ANM_WAIT_SIT; + anm = ANM_WAIT_SIT; } else if (mProcVar5.field_0x3012 == 0) { - var_r27 = ANM_WAIT_CANOE_LEFT; + anm = ANM_WAIT_CANOE_LEFT; } else { - var_r27 = ANM_WAIT_CANOE_RIGHT; + anm = ANM_WAIT_CANOE_RIGHT; } } setSyncCanoePos(); - setSingleAnimeBaseMorf(var_r27, var_f31); + setSingleAnimeBaseMorf(anm, morf); if (param_0 && mEquipItem != 0x10B && mEquipItem != fpcNm_ITEM_NONE && !checkFisingRodLure()) { allUnequip(0); } - mProcVar1.field_0x300a = temp_r26; + mProcVar1.field_0x300a = is_prev_grab_move; mNormalSpeed = 0.0f; speed.y = 0.0f; setSpecialGravity(0.0f, maxFallSpeed, 0); @@ -617,14 +626,14 @@ int daAlink_c::procCanoeWait() { if (checkNoUpperAnime()) { if (mNormalSpeed < 3.0f && !checkFisingRodLure() && !checkCanoeSlider()) { if (!setTalkStatus() && !checkStageName("F_SP127")) { - setDoStatusEmphasys(0x16); + setDoStatusEmphasys(BUTTON_STATUS_GET_OFF); } if (orderTalk(0) != 0) { return 1; } - if (doTrigger() && dComIfGp_getDoStatus() == 0x16) { + if (doTrigger() && dComIfGp_getDoStatus() == BUTTON_STATUS_GET_OFF) { if (mEquipItem == 0x10B) { return procCanoePaddlePutInit(1); } @@ -643,7 +652,7 @@ int daAlink_c::procCanoeWait() { field_0x2fde = 0xFF; if (mThrowBoomerangAcKeep.getActor() != NULL || mProcVar1.field_0x300a != 0) { - if ((s16)(field_0x2fe2 - shape_angle.y) >= 0) { + if ((s16)(mMoveAngle - shape_angle.y) >= 0) { mProcVar5.field_0x3012 = 1; } else { mProcVar5.field_0x3012 = 0; @@ -659,7 +668,7 @@ int daAlink_c::procCanoeWait() { } else if (checkInputOnR()) { allUnequip(0); - if ((s16)(field_0x2fe2 - shape_angle.y) >= 0) { + if ((s16)(mMoveAngle - shape_angle.y) >= 0) { mProcVar5.field_0x3012 = 1; } else { mProcVar5.field_0x3012 = 0; @@ -679,29 +688,29 @@ int daAlink_c::procCanoeWait() { } int daAlink_c::procCanoeRowInit(int param_0) { - int var_r29; - fopAc_ac_c* temp_r26 = (fopAc_ac_c*)mRideAcKeep.getActor(); + int anm; + fopAc_ac_c* canoe = (fopAc_ac_c*)mRideAcKeep.getActor(); field_0x3198 = -2; if (param_0 < 0) { if (checkInputOnR()) { - s16 sp8 = (s16)(field_0x2fe2 - shape_angle.y); + s16 sp8 = (s16)(mMoveAngle - shape_angle.y); int temp_r3 = abs(sp8); BOOL spC; if (temp_r3 >= 0x6800) { - spC = 1; + spC = TRUE; } else { - spC = 0; + spC = FALSE; } - int var_r28; + int direction; if (temp_r3 < 0x40 || temp_r3 > 0x7F80) { if (param_0 == -3) { if (mProcVar5.field_0x3012 == 0) { - var_r28 = 2; + direction = 2; } else { - var_r28 = 3; + direction = 3; } } else { if (param_0 == -2) { @@ -709,36 +718,36 @@ int daAlink_c::procCanoeRowInit(int param_0) { } if (mProcVar5.field_0x3012 == 0) { - var_r28 = 3; + direction = 3; } else { - var_r28 = 2; + direction = 2; } } } else if (sp8 > 0) { - var_r28 = 2; + direction = 2; } else { - var_r28 = 3; + direction = 3; } if (spC == 1) { - if (var_r28 == 2) { - var_r29 = ANM_CANOE_ROW_RIGHT_BACK; + if (direction == 2) { + anm = ANM_CANOE_ROW_RIGHT_BACK; } else { - var_r29 = ANM_CANOE_ROW_LEFT_BACK; + anm = ANM_CANOE_ROW_LEFT_BACK; } - if ((var_r29 == ANM_CANOE_ROW_RIGHT_BACK && mProcVar5.field_0x3012 == 0) || (var_r29 == ANM_CANOE_ROW_LEFT_BACK && mProcVar5.field_0x3012 == 1)) { - return procCanoePaddleShiftInit(var_r29); + if ((anm == ANM_CANOE_ROW_RIGHT_BACK && mProcVar5.field_0x3012 == 0) || (anm == ANM_CANOE_ROW_LEFT_BACK && mProcVar5.field_0x3012 == 1)) { + return procCanoePaddleShiftInit(anm); } } else { - if (var_r28 == 2) { - var_r29 = ANM_CANOE_ROW_RIGHT; + if (direction == 2) { + anm = ANM_CANOE_ROW_RIGHT; } else { - var_r29 = ANM_CANOE_ROW_LEFT; + anm = ANM_CANOE_ROW_LEFT; } - if ((var_r29 == ANM_CANOE_ROW_RIGHT && mProcVar5.field_0x3012 == 0) || (var_r29 == ANM_CANOE_ROW_LEFT && mProcVar5.field_0x3012 == 1)) { - return procCanoePaddleShiftInit(var_r29); + if ((anm == ANM_CANOE_ROW_RIGHT && mProcVar5.field_0x3012 == 0) || (anm == ANM_CANOE_ROW_LEFT && mProcVar5.field_0x3012 == 1)) { + return procCanoePaddleShiftInit(anm); } } } else { @@ -752,34 +761,34 @@ int daAlink_c::procCanoeRowInit(int param_0) { } if (mProcVar5.field_0x3012 == 1) { - var_r29 = ANM_CANOE_ROW_RIGHT; + anm = ANM_CANOE_ROW_RIGHT; } else { - var_r29 = ANM_CANOE_ROW_LEFT; + anm = ANM_CANOE_ROW_LEFT; } } // Need something here that generates no code in order for debug branches to match. (void)0; } else { - var_r29 = param_0; + anm = param_0; } commonProcInit(PROC_CANOE_ROW); - f32 var_f31 = mpHIO->mCanoe.m.mBtnRowAnmSpeed; - BOOL var_r24 = 0; + f32 anm_speed = mpHIO->mCanoe.m.mBtnRowAnmSpeed; + BOOL var_r24 = FALSE; - if (var_r29 == ANM_CANOE_ROW_LEFT_BACK || var_r29 == ANM_CANOE_ROW_RIGHT_BACK) { + if (anm == ANM_CANOE_ROW_LEFT_BACK || anm == ANM_CANOE_ROW_RIGHT_BACK) { mProcVar3.field_0x300e = 1; - if (temp_r26->speedF > 0.5f * (-var_f31 * mpHIO->mCanoe.m.mBackSpeedRate)) { - var_r24 = 1; + if (canoe->speedF > 0.5f * (-anm_speed * mpHIO->mCanoe.m.mBackSpeedRate)) { + var_r24 = TRUE; } field_0x3478 = 32.0f; mProcVar0.field_0x3008 = 0; } else { mProcVar3.field_0x300e = 0; - if (temp_r26->speedF < 0.5f * (var_f31 * getCanoeSpeedRate())) { - var_r24 = 1; + if (canoe->speedF < 0.5f * (anm_speed * getCanoeSpeedRate())) { + var_r24 = TRUE; } field_0x3478 = 26.0f; @@ -791,62 +800,62 @@ int daAlink_c::procCanoeRowInit(int param_0) { } } - if (var_r24 != 0) { - var_f31 = mpHIO->mCanoe.m.mBtnRowStartAnmSpeed; + if (var_r24) { + anm_speed = mpHIO->mCanoe.m.mBtnRowStartAnmSpeed; } - setSingleAnime((daAlink_ANM)var_r29, var_f31, 0.0f, 35, 3.0f); + setSingleAnime((daAlink_ANM)anm, anm_speed, 0.0f, 35, 3.0f); setSyncCanoePos(); return 1; } int daAlink_c::procCanoeRow() { - daCanoe_c* temp_r29 = (daCanoe_c*)mRideAcKeep.getActor(); + daCanoe_c* canoe = (daCanoe_c*)mRideAcKeep.getActor(); if (canoeCommon()) { return 1; } - daPy_frameCtrl_c* temp_r27 = &mUpperFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUpperFrameCtrl[0]; if (!checkItemChangeFromButton()) { if (checkEquipAnime()) { procCanoePaddlePutInit(0); - } else if (temp_r27->checkPass(0.0f)) { + } else if (framectrl->checkPass(0.0f)) { if (checkInputOnR()) { procCanoeRowInit(field_0x3198); } else { procCanoeWaitInit(0); } } else { - f32 var_f30 = mpHIO->mCanoe.m.mBtnRowAnmSpeed; - if ((mProcVar3.field_0x300e == 1 && temp_r29->speedF > 0.5f * (-var_f30 * mpHIO->mCanoe.m.mBackSpeedRate)) || (mProcVar3.field_0x300e == 0 && temp_r29->speedF < 0.5f * (var_f30 * getCanoeSpeedRate()))) { - var_f30 = mpHIO->mCanoe.m.mBtnRowStartAnmSpeed; + f32 anm_speed = mpHIO->mCanoe.m.mBtnRowAnmSpeed; + if ((mProcVar3.field_0x300e == 1 && canoe->speedF > 0.5f * (-anm_speed * mpHIO->mCanoe.m.mBackSpeedRate)) || (mProcVar3.field_0x300e == 0 && canoe->speedF < 0.5f * (anm_speed * getCanoeSpeedRate()))) { + anm_speed = mpHIO->mCanoe.m.mBtnRowStartAnmSpeed; } - f32 sp8 = temp_r27->getRate(); - cLib_chaseF(&sp8, var_f30, 0.1f); - temp_r27->setRate(sp8); + f32 sp8 = framectrl->getRate(); + cLib_chaseF(&sp8, anm_speed, 0.1f); + framectrl->setRate(sp8); - if (mProcVar0.field_0x3008 == 0 || temp_r27->getFrame() >= 19.0f) { + if (mProcVar0.field_0x3008 == 0 || framectrl->getFrame() >= 19.0f) { s16 var_r28; if (checkInputOnR()) { - s16 temp_r0 = field_0x2fe2 - shape_angle.y; + var_r28 = mMoveAngle - shape_angle.y; s16 var_r25; if (mProcVar3.field_0x300e == 1) { - var_r25 = field_0x2fe2 + 0x8000; + var_r25 = mMoveAngle + 0x8000; } else { - var_r25 = field_0x2fe2; + var_r25 = mMoveAngle; } - if (temp_r0 == -0x8000 || (temp_r0 > 0 && mProcVar5.field_0x3012 == 1) || (temp_r0 < 0 && mProcVar5.field_0x3012 == 0)) { - temp_r29->setAimAngle(var_r25); + if (var_r28 == -0x8000 || (var_r28 > 0 && mProcVar5.field_0x3012 == 1) || (var_r28 < 0 && mProcVar5.field_0x3012 == 0)) { + canoe->setAimAngle(var_r25); } var_r28 = mStickAngle; } else { var_r28 = 0x4000; } - f32 var_f31 = temp_r27->getRate(); + f32 var_f31 = framectrl->getRate(); if (checkCanoeSlider()) { int temp_r3 = abs(var_r28); @@ -858,17 +867,17 @@ int daAlink_c::procCanoeRow() { } if (mProcVar3.field_0x300e == 0) { - temp_r29->setAimSpeed(var_f31 * getCanoeSpeedRate()); + canoe->setAimSpeed(var_f31 * getCanoeSpeedRate()); } else { - temp_r29->setAimSpeed(-var_f31 * mpHIO->mCanoe.m.mBackSpeedRate); + canoe->setAimSpeed(-var_f31 * mpHIO->mCanoe.m.mBackSpeedRate); } } - if (temp_r27->checkPass(field_0x3478)) { + if (framectrl->checkPass(field_0x3478)) { if (mProcVar5.field_0x3012 == 1) { - temp_r29->setPaddleOffsetRight(); + canoe->setPaddleOffsetRight(); } else { - temp_r29->setPaddleOffsetLeft(); + canoe->setPaddleOffsetLeft(); } } } @@ -880,18 +889,18 @@ int daAlink_c::procCanoeRow() { int daAlink_c::procCanoePaddleShiftInit(int param_0) { commonProcInit(PROC_CANOE_PADDLE_SHIFT); - f32 speed; + f32 anm_speed; if (mProcVar5.field_0x3012 == 0) { - speed = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed; + anm_speed = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed; } else { - speed = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed; + anm_speed = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed; } - setSingleAnime(ANM_CANOE_CHANGE_HAND, speed, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation); + setSingleAnime(ANM_CANOE_CHANGE_HAND, anm_speed, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation); if (mProcVar5.field_0x3012 == 1) { - field_0x2f92 = 0; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0; + mRightHandIndex = 0xFE; } field_0x3198 = param_0; @@ -913,12 +922,12 @@ int daAlink_c::procCanoePaddleShift() { procCanoeRowInit(field_0x3198); } else if (frame_ctrl->checkPass(11)) { if (mProcVar5.field_0x3012 == 0) { - field_0x2f92 = 0; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0; + mRightHandIndex = 0xFE; mProcVar5.field_0x3012 = 1; } else { - field_0x2f92 = 0xFE; - field_0x2f93 = 5; + mLeftHandIndex = 0xFE; + mRightHandIndex = 5; mProcVar5.field_0x3012 = 0; } } @@ -931,26 +940,26 @@ int daAlink_c::procCanoePaddlePutInit(int param_0) { if (checkCanoeSlider() && mEquipItem == 0x10B) { if (checkEquipAnime() && checkBowItem(field_0x2fde)) { mEquipItem = fpcNm_ITEM_NONE; - field_0x2f93 = 0xFE; - field_0x2f92 = 0xFE; + mRightHandIndex = 0xFE; + mLeftHandIndex = 0xFE; return procCanoeWaitInit(0); } } commonProcInit(PROC_CANOE_PADDLE_PUT); - f32 var_f31; + f32 anm_speed; if (mProcVar5.field_0x3012 == 0) { - var_f31 = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed; + anm_speed = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed; } else { - var_f31 = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed; + anm_speed = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed; } - setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation); + setSingleAnime(ANM_CANOE_CHANGE_HAND, anm_speed, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation); if (mProcVar5.field_0x3012 == 1) { - field_0x2f92 = 0; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0; + mRightHandIndex = 0xFE; } mProcVar3.field_0x300e = param_0; @@ -974,13 +983,13 @@ int daAlink_c::procCanoePaddlePut() { if (mUpperAnmHeap[0].getIdx() == getMainBckData(ANM_CANOE_CHANGE_HAND)->m_upperID) { if (mUpperFrameCtrl[0].checkPass(11)) { setSingleAnimeBaseSpeed(ANM_CANOE_PADDLE_TO_ROD, -1.0f, 3.0f); - field_0x2f92 = 0; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0; + mRightHandIndex = 0xFE; } } else { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - if (checkAnmEnd(temp_r29)) { + if (checkAnmEnd(framectrl)) { if (mProcVar3.field_0x300e != 0) { return procCanoeGetOffInit(); } @@ -992,16 +1001,16 @@ int daAlink_c::procCanoePaddlePut() { itemEquip(field_0x2fde); procCanoeWaitInit(0); } - } else if (temp_r29->getFrame() < 5.0f) { + } else if (framectrl->getFrame() < 5.0f) { if (mItemAcKeep.getActor() != NULL) { mEquipItem = 0x105; - field_0x2f93 = 5; + mRightHandIndex = 5; } else { mEquipItem = fpcNm_ITEM_NONE; - field_0x2f93 = 0xFE; + mRightHandIndex = 0xFE; } - field_0x2f92 = 0xFE; + mLeftHandIndex = 0xFE; } } @@ -1020,36 +1029,36 @@ int daAlink_c::procCanoePaddleGrab() { return 1; } - if (checkUnderMove0BckNoArc(ANM_CANOE_PADDLE_TO_ROD) != 0) { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + if (checkUnderMove0BckNoArc(ANM_CANOE_PADDLE_TO_ROD)) { + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - if (checkAnmEnd(temp_r29) != 0) { - f32 var_f31; + if (checkAnmEnd(framectrl) != 0) { + f32 anm_speed; if (mProcVar5.field_0x3012 == 0) { - var_f31 = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed; + anm_speed = -mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed; } else { - var_f31 = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed; + anm_speed = mpHIO->mCanoe.m.mLeftRightChangeAnm.mSpeed; } - setSingleAnime(ANM_CANOE_CHANGE_HAND, var_f31, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation); + setSingleAnime(ANM_CANOE_CHANGE_HAND, anm_speed, mpHIO->mCanoe.m.mLeftRightChangeAnm.mStartFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mEndFrame, mpHIO->mCanoe.m.mLeftRightChangeAnm.mInterpolation); mUpperFrameCtrl[0].setFrame(11.0f); getNowAnmPackUpper(UPPER_0)->setFrame(11.0f); if (mProcVar5.field_0x3012 == 1) { - field_0x2f92 = 0; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0; + mRightHandIndex = 0xFE; } else { - field_0x2f92 = 0xFE; - field_0x2f93 = 5; + mLeftHandIndex = 0xFE; + mRightHandIndex = 5; } - } else if (temp_r29->getFrame() >= 5.0f) { + } else if (framectrl->getFrame() >= 5.0f) { if (checkFisingRodLure()) { ((daCanoe_c*)mRideAcKeep.getActor())->onRodID(mItemAcKeep.getID()); mItemAcKeep.clearData(); - deleteEquipItem(0, 0); + deleteEquipItem(FALSE, FALSE); } - field_0x2f92 = 0xFE; + mLeftHandIndex = 0xFE; if (field_0x2fde == 0xFF) { mEquipItem = 0x10B; @@ -1081,6 +1090,8 @@ int daAlink_c::procCanoeRodGrabInit() { } int daAlink_c::procCanoeRodGrab() { + daPy_frameCtrl_c* framectrl = mUnderFrameCtrl; + if (canoeCommon()) { return 1; } @@ -1090,7 +1101,7 @@ int daAlink_c::procCanoeRodGrab() { mProcVar0.field_0x3008 = 0; setSingleAnimeBase(ANM_CANOE_PADDLE_TO_ROD); } - } else if (mUnderFrameCtrl[0].getFrame() >= 5.0f) { + } else if (framectrl->getFrame() >= 5.0f) { mItemAcKeep.setID(((daCanoe_c*)mRideAcKeep.getActor())->getRodID()); mItemAcKeep.setActor(); @@ -1113,13 +1124,13 @@ int daAlink_c::procCanoeFishingWaitInit() { } setSingleAnimeBaseSpeed(ANM_CANOE_REEL, 0.0f, 3.0f); - setUpperAnimeBaseSpeed(0x5D, 0.0f, -1.0f); + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_CANOEREELINGR_e, 0.0f, -1.0f); - f32 temp_f31 = (1.0f - ((mBodyAngle.y + 0x4000) / 32768.0f)) * mUnderFrameCtrl[0].getEnd(); - mUnderFrameCtrl[0].setFrame(temp_f31); - getNowAnmPackUnder(UNDER_0)->setFrame(temp_f31); - mUpperFrameCtrl[2].setFrame(temp_f31); - getNowAnmPackUpper(UPPER_2)->setFrame(temp_f31); + f32 frame = (1.0f - ((mBodyAngle.y + 0x4000) / 32768.0f)) * mUnderFrameCtrl[0].getEnd(); + mUnderFrameCtrl[0].setFrame(frame); + getNowAnmPackUnder(UNDER_0)->setFrame(frame); + mUpperFrameCtrl[2].setFrame(frame); + getNowAnmPackUpper(UPPER_2)->setFrame(frame); mItemVar0.field_0x3018 = 1; setSyncCanoePos(); @@ -1141,18 +1152,18 @@ int daAlink_c::procCanoeFishingWait() { return 1; } - daPy_frameCtrl_c* temp_r29 = &mUpperFrameCtrl[2]; - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl2 = &mUpperFrameCtrl[2]; + daPy_frameCtrl_c* framectrl0 = &mUnderFrameCtrl[0]; if (mProcVar2.field_0x300c != 0) { - if (checkNoResetFlg1(FLG1_UNK_8000)) { + if (checkNoResetFlg1(FLG1_FISHING_ROD_CASTING_END)) { mProcVar2.field_0x300c = 0; - setUpperAnimeBase(0x68); + setUpperAnimeBase(dRes_ID_ALANM_BCK_CHANGEROD_e); } } else if (checkExchangeRodAnime()) { - if (checkAnmEnd(temp_r29)) { + if (checkAnmEnd(framectrl2)) { procCanoeFishingReelInit(); - } else if (temp_r29->getFrame() >= 8.0f) { + } else if (framectrl2->getFrame() >= 8.0f) { mItemVar0.field_0x3018 = 0; } } else if (!checkNextActionCanoe() && checkCanoeFishingWaitAnime()) { @@ -1168,13 +1179,14 @@ int daAlink_c::procCanoeFishingWait() { var_r27 = -0x3800; } - daPy_addCalcShort(&mBodyAngle.y, var_r27, 5, field_0x33a8 * 1024.0f, 1); + daPy_addCalcShort(&mBodyAngle.y, var_r27, 5, mStickValue * 1024.0f, 1); } - f32 temp_f31 = (1.0f - ((mBodyAngle.y + 0x4000) / 32768.0f)) * temp_r28->getEnd(); - temp_r28->setFrame(temp_f31); - temp_r29->setFrame(temp_f31); + f32 frame = (1.0f - ((mBodyAngle.y + 0x4000) / 32768.0f)) * framectrl0->getEnd(); + framectrl0->setFrame(frame); + framectrl2->setFrame(frame); } + return 1; } @@ -1182,7 +1194,7 @@ int daAlink_c::procCanoeFishingReelInit() { commonProcInit(PROC_CANOE_FISHING_REEL); setDoubleAnime(0.0f, 0.0f, 0.0f, ANM_REEL, ANM_REEL_LEFT_RIGHT, 2, 5.0f); mUnderFrameCtrl[1].setFrame(0.5f * mUnderFrameCtrl[1].getEnd()); - setUnderAnime(0x25B, UNDER_2, 1.0f, 0.0f, -1, -1.0f); + setUnderAnime(dRes_ID_ALANM_BCK_WAITCANOER_e, UNDER_2, 1.0f, 0.0f, -1, -1.0f); setArmReelAnime(); setSyncCanoePos(); return 1; @@ -1198,18 +1210,19 @@ int daAlink_c::procCanoeFishingReel() { if (checkEndResetFlg0(ERFLG0_FISHING_ROD_GET_FISH)) { procCanoeFishingGetInit(); - } else if (checkEndResetFlg0(ERFLG0_UNK_20000)) { + } else if (checkEndResetFlg0(ERFLG0_FISHING_ROD_REEL_END)) { resetUpperAnime(UPPER_2, -1.0f); procCanoeFishingWaitInit(); - } else if (checkEndResetFlg0(ERFLG0_UNK_10000)) { - setUpperAnimeBase(0x17C); - } else if (checkUpperAnime(0x17C)) { - if (mUpperFrameCtrl[2].checkAnmEnd()) { + } else if (checkEndResetFlg0(ERFLG0_FISHING_HIT)) { + setUpperAnimeBase(dRes_ID_ALANM_BCK_HIT_e); + } else if (checkUpperAnime(dRes_ID_ALANM_BCK_HIT_e)) { + if (checkAnmEnd(&mUpperFrameCtrl[2])) { setArmReelAnime(); field_0x2060->initOldFrameMorf(3.0f, field_0x30a8, field_0x30aa); } } else { - if (((dmg_rod_class*)mItemAcKeep.getActor())->checkReelSpin()) { + dmg_rod_class* mg_rod = (dmg_rod_class*)mItemAcKeep.getActor(); + if (mg_rod->checkReelSpin()) { onResetFlg0(RFLG0_UNK_80000); } @@ -1217,7 +1230,8 @@ int daAlink_c::procCanoeFishingReel() { fopAc_ac_c* temp_r3 = mItemAcKeep.getActor(); if (temp_r3 != NULL) { - daPy_addCalcShort(&mBodyAngle.y, cLib_minMaxLimit((cLib_targetAngleY(&field_0x3834, &temp_r3->eyePos) - shape_angle.y), -0x3800, 0x3800), 5, 0x400, 1); + s16 var_r27 = cLib_minMaxLimit((cLib_targetAngleY(&field_0x3834, &temp_r3->eyePos) - shape_angle.y), -0x3800, 0x3800); + daPy_addCalcShort(&mBodyAngle.y, var_r27, 5, 0x400, 1); } } @@ -1227,26 +1241,26 @@ int daAlink_c::procCanoeFishingReel() { int daAlink_c::procCanoeFishingGetInit() { commonProcInit(PROC_CANOE_FISHING_GET); - daAlink_ANM var_r30; + daAlink_ANM anm; if (mBodyAngle.y >= 0) { - var_r30 = ANM_CANOE_FISH_LEFT; + anm = ANM_CANOE_FISH_LEFT; field_0x3478 = 24.0f; field_0x347c = 45.0f; mProcVar3.field_0x300e = 0; } else { - var_r30 = ANM_CANOE_FISH_RIGHT; + anm = ANM_CANOE_FISH_RIGHT; field_0x3478 = 14.0f; field_0x347c = 30.0f; mProcVar3.field_0x300e = 1; } setSyncCanoePos(); - setSingleAnimeBaseMorf(var_r30, 5.0f); + setSingleAnimeBaseMorf(anm, 5.0f); return 1; } int daAlink_c::procCanoeFishingGet() { - daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; if (canoeCommon()) { mItemVar0.field_0x3018 = 1; @@ -1256,27 +1270,27 @@ int daAlink_c::procCanoeFishingGet() { setFishGetFace(); if (checkUnderMove0BckNoArc(ANM_CANOE_RELEASE)) { - if (checkAnmEnd(temp_r30)) { + if (checkAnmEnd(framectrl)) { procCanoeFishingWaitInit(); - } else if (temp_r30->getFrame() >= 65.0f) { + } else if (framectrl->getFrame() >= 65.0f) { mItemVar0.field_0x3018 = 1; - field_0x2f92 = 4; - field_0x2f93 = 5; - } else if (temp_r30->getFrame() >= 29.0f) { - field_0x2f93 = 0xFE; + mLeftHandIndex = 4; + mRightHandIndex = 5; + } else if (framectrl->getFrame() >= 29.0f) { + mRightHandIndex = 0xFE; } - } else if (checkAnmEnd(temp_r30)) { - if (checkEndResetFlg0(ERFLG0_UNK_4000000)) { + } else if (checkAnmEnd(framectrl)) { + if (checkEndResetFlg0(ERFLG0_FISHING_RELEASE)) { setSingleAnimeBaseMorf(ANM_CANOE_RELEASE, 3.0f); field_0x2fc8 = 0; offModeFlg(0x100); - } else if (checkEndResetFlg2(ERFLG2_UNK_1)) { + } else if (checkEndResetFlg2(ERFLG2_FISHING_KEEP)) { field_0x2fc8 = 0; procCanoeFishingWaitInit(); } - } else if (temp_r30->checkPass(field_0x3478)) { - field_0x2f93 = 5; - } else if (temp_r30->checkPass(field_0x347c)) { + } else if (framectrl->checkPass(field_0x3478)) { + mRightHandIndex = 5; + } else if (framectrl->checkPass(field_0x347c)) { onModeFlg(0x100); } @@ -1293,17 +1307,17 @@ int daAlink_c::procCanoeSubjectivityInit() { int daAlink_c::procCanoeSubjectivity() { onResetFlg0(RFLG0_UNK_4000000); - s16 temp_r30 = shape_angle.y; - s16 temp_r29 = current.angle.y; + s16 prev_shapeangle = shape_angle.y; + s16 prev_angle = current.angle.y; int temp_r28 = field_0x3190; if (canoeCommon()) { return 1; } - shape_angle.y = temp_r30; + shape_angle.y = prev_shapeangle; - if (checkSubjectEnd(1)) { + if (checkSubjectEnd(TRUE)) { procCanoeWaitInit(0); } else if (checkNextActionFromButton()) { if (checkUpperReadyThrowAnime()) { @@ -1314,7 +1328,7 @@ int daAlink_c::procCanoeSubjectivity() { } return 1; } else { - setRideSubjectAngle(temp_r29); + setRideSubjectAngle(prev_angle); } return 1; @@ -1331,18 +1345,18 @@ int daAlink_c::procCanoeBowSubjectInit() { } int daAlink_c::procCanoeBowSubject() { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); - s16 temp_r30 = shape_angle.y; - s16 temp_r29 = current.angle.y; + s16 prev_shapeangle = shape_angle.y; + s16 prev_angle = current.angle.y; if (canoeCommon()) { return 1; } - shape_angle.y = temp_r30; + shape_angle.y = prev_shapeangle; - if (!checkNextActionCanoe() && setRideSubjectAngle(temp_r29)) { + if (!checkNextActionCanoe() && setRideSubjectAngle(prev_angle)) { setBowSight(); } @@ -1360,7 +1374,7 @@ int daAlink_c::procCanoeBowMoveInit() { } int daAlink_c::procCanoeBowMove() { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); if (canoeCommon()) { return 1; @@ -1421,20 +1435,20 @@ int daAlink_c::procCanoeBoomerangSubject() { } if (checkBoomerangReadyAnime()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } - s16 temp_r30 = shape_angle.y; - s16 temp_r29 = current.angle.y; + s16 prev_shapeangle = shape_angle.y; + s16 prev_angle = current.angle.y; if (canoeCommon()) { return 1; } - shape_angle.y = temp_r30; + shape_angle.y = prev_shapeangle; if (!checkNextActionCanoe()) { - if (setRideSubjectAngle(temp_r29)) { + if (setRideSubjectAngle(prev_angle)) { setBoomerangSight(); } } else { @@ -1461,7 +1475,7 @@ int daAlink_c::procCanoeBoomerangMove() { } if (checkBoomerangReadyAnime()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } if (canoeCommon()) { @@ -1488,20 +1502,20 @@ int daAlink_c::procCanoeHookshotSubjectInit() { int daAlink_c::procCanoeHookshotSubject() { if (checkHookshotWait()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } - s16 temp_r30 = shape_angle.y; - s16 temp_r29 = current.angle.y; + s16 prev_shapeangle = shape_angle.y; + s16 prev_angle = current.angle.y; if (canoeCommon()) { return 1; } - shape_angle.y = temp_r30; + shape_angle.y = prev_shapeangle; if (!checkNextActionCanoe()) { - if (setRideSubjectAngle(temp_r29)) { + if (setRideSubjectAngle(prev_angle)) { setHookshotSight(); } } else { @@ -1526,7 +1540,7 @@ int daAlink_c::procCanoeHookshotMove() { cancelHookshotMove(); if (checkHookshotWait()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } if (canoeCommon()) { @@ -1540,7 +1554,7 @@ int daAlink_c::procCanoeHookshotMove() { return 1; } -int daAlink_c::procCanoeBottleDrinkInit(u16 param_0) { +int daAlink_c::procCanoeBottleDrinkInit(u16 i_itemNo) { if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) { return 0; } @@ -1549,15 +1563,15 @@ int daAlink_c::procCanoeBottleDrinkInit(u16 param_0) { commonProcInit(PROC_CANOE_BOTTLE_DRINK); setSyncCanoePos(); - daCanoe_c* temp_r3 = (daCanoe_c*)mRideAcKeep.getActor(); - temp_r3->speedF = 0.0f; - temp_r3->setAimSpeed(0.0f); - temp_r3->setAimAngle(shape_angle.y); + daCanoe_c* canoe = (daCanoe_c*)mRideAcKeep.getActor(); + canoe->speedF = 0.0f; + canoe->setAimSpeed(0.0f); + canoe->setAimAngle(shape_angle.y); setUpperAnimeParam(getMainBckData(ANM_BOTTLE_DRINK_START)->m_upperID, UPPER_2, &mpHIO->mItem.mBottle.m.mStartDrinkAnm); setFacePriAnime(ANM_BOTTLE_DRINK_START); keepItemData(); - setBottleModel(param_0); + setBottleModel(i_itemNo); dComIfGp_setPlayerStatus1(0, 0x2000); field_0x319c = 1; @@ -1606,7 +1620,7 @@ int daAlink_c::procCanoeKandelaarPour() { } if (commonKandelaarPour(1)) { - setUpperAnimeBaseMorf(0x268, -1.0f); + setUpperAnimeBaseMorf(dRes_ID_ALANM_BCK_WAITK_e, -1.0f); } return 1; @@ -1623,7 +1637,7 @@ int daAlink_c::procFishingCastInit() { } setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f); - setUpperAnimeBase(0x260); + setUpperAnimeBase(dRes_ID_ALANM_BCK_WAITFISHR_e); field_0x2f96 = 0xFE; field_0x2f97 = 8; mNormalSpeed = 0.0f; @@ -1633,21 +1647,23 @@ int daAlink_c::procFishingCastInit() { mItemVar0.field_0x3018 = 1; if (checkFishingRodItem(mEquipItem)) { - onNoResetFlg2(FLG2_UNK_20000000); + onNoResetFlg2(FLG2_FISHING_CAST_WAIT); } return 1; } int daAlink_c::procFishingCast() { + daPy_frameCtrl_c* framectrl = &mUpperFrameCtrl[2]; + setFishGetFace(); - if (checkEndResetFlg0(ERFLG0_UNK_4000000)) { + if (checkEndResetFlg0(ERFLG0_FISHING_RELEASE)) { setFaceBasicAnime(ANM_WAIT); field_0x2fc8 = 0; } - if (checkEndResetFlg0(ERFLG0_UNK_10000) && mItemMode != 0xFF) { + if (checkEndResetFlg0(ERFLG0_FISHING_HIT) && mItemMode != 0xFF) { mItemMode = 0xFF; dComIfGs_setBaitItem(0xFF); @@ -1658,14 +1674,14 @@ int daAlink_c::procFishingCast() { } } - if (!checkNoResetFlg2(FLG2_UNK_20000000)) { + if (!checkNoResetFlg2(FLG2_FISHING_CAST_WAIT)) { resetUpperAnime(UPPER_2, -1.0f); onEndResetFlg0(ERFLG0_UNK_1000); return checkWaitAction(); } if (checkInputOnR()) { - cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mMove.m.mTurnAngleRate, mpHIO->mMove.m.mMaxTurnAngle, mpHIO->mMove.m.mMinTurnAngle); + cLib_addCalcAngleS(&shape_angle.y, mMoveAngle, mpHIO->mMove.m.mTurnAngleRate, mpHIO->mMove.m.mMaxTurnAngle, mpHIO->mMove.m.mMinTurnAngle); current.angle.y = shape_angle.y; } @@ -1701,7 +1717,7 @@ int daAlink_c::procFishingFoodInit() { } else { mProcVar4.field_0x3010 = 1; keepItemData(); - deleteEquipItem(0, 0); + deleteEquipItem(FALSE, FALSE); mSelectItemId = checkItemSetButton(0x108); mEquipItem = dComIfGp_getSelectItem(mSelectItemId); setItemActor(); @@ -1714,7 +1730,7 @@ int daAlink_c::procFishingFoodInit() { } int daAlink_c::procFishingFood() { - if (mUnderFrameCtrl[0].checkAnmEnd()) { + if (checkAnmEnd(&mUnderFrameCtrl[0])) { if (mProcVar2.field_0x300c != 0) { if (mProcVar4.field_0x3010 != 0) { returnKeepItemData(); @@ -1724,8 +1740,8 @@ int daAlink_c::procFishingFood() { setSingleAnime(ANM_BOTTLE_OPEN, -1.0f, 0.0f, mUnderFrameCtrl[0].getEnd(), -1.0f); mProcVar2.field_0x300c = 1; - u32 temp_r3 = dComIfGp_getSelectItem(mProcVar3.field_0x300e); - if (temp_r3 == fpcNm_ITEM_WORM || dComIfGp_getSelectItemNum(mProcVar3.field_0x300e) == 1) { + u16 item = dComIfGp_getSelectItem(mProcVar3.field_0x300e); + if (item == fpcNm_ITEM_WORM || dComIfGp_getSelectItemNum(mProcVar3.field_0x300e) == 1) { dComIfGs_setEquipBottleItemEmpty(mProcVar3.field_0x300e); } else { dComIfGp_addSelectItemNum(mProcVar3.field_0x300e, -1); @@ -1738,22 +1754,22 @@ int daAlink_c::procFishingFood() { } } - mItemMode = temp_r3; + mItemMode = item; - BOOL temp_r28 = checkFisingRodJewl(); - if (temp_r3 == fpcNm_ITEM_WORM) { - if (temp_r28) { + BOOL is_jewl = checkFisingRodJewl(); + if (item == fpcNm_ITEM_WORM) { + if (is_jewl) { mEquipItem = fpcNm_ITEM_JEWEL_WORM_ROD; } else { mEquipItem = fpcNm_ITEM_WORM_ROD; } - } else if (temp_r28) { + } else if (is_jewl) { mEquipItem = fpcNm_ITEM_JEWEL_BEE_ROD; } else { mEquipItem = fpcNm_ITEM_BEE_ROD; } - dComIfGs_setBaitItem(temp_r3); + dComIfGs_setBaitItem(item); } } diff --git a/src/d/actor/d_a_alink_copyrod.inc b/src/d/actor/d_a_alink_copyrod.inc index 0490a62087..c268e6e6b9 100644 --- a/src/d/actor/d_a_alink_copyrod.inc +++ b/src/d/actor/d_a_alink_copyrod.inc @@ -43,7 +43,7 @@ fopAc_ac_c* daAlink_c::getCopyRodCameraActor() { return NULL; } -void daAlink_c::initCopyRodUpperAnimeSpeed(int param_0) { +void daAlink_c::initCopyRodUpperAnimeSpeed(BOOL param_0) { if (!checkCopyRodThrowAnime()) { if (param_0) { mUpperFrameCtrl[2].setRate(0.0f); @@ -60,11 +60,9 @@ BOOL daAlink_c::checkForestOldCentury() { } BOOL daAlink_c::checkCopyRodTopUse() { - // Event flag 0x2580: Dominion Rod power restored - return (dComIfGs_isEventBit(0x2580) && - !(mProcID == PROC_UNEQUIP && mProcVar3.field_0x300e != 0)) || - dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x15 || - checkForestOldCentury(); + return (dComIfGs_isEventBit(dSv_event_flag_c::F_0302) && !(mProcID == PROC_UNEQUIP && mProcVar3.field_0x300e != 0)) + || dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) == dStage_SaveTbl_LV6 + || checkForestOldCentury(); } BOOL daAlink_c::checkCopyRodAnime() const { @@ -73,7 +71,7 @@ BOOL daAlink_c::checkCopyRodAnime() const { void daAlink_c::setCopyRodControllAnime() { if (checkNoUpperAnime() && getCopyRodControllActor()) { - setUpperAnimeBaseSpeed(0x202, 0.0f, 3.0f); + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_RODD_e, 0.0f, 3.0f); field_0x2f96 = 2; field_0x2f97 = 5; field_0x33e8 = 0.0f; @@ -81,26 +79,26 @@ void daAlink_c::setCopyRodControllAnime() { } void daAlink_c::setCopyRodControllUpperSpeedRate() { - f32 var_f31; + f32 max_speed; if (checkAttentionLock()) { - var_f31 = 1.0f; + max_speed = 1.0f; } else { if (mProcID == PROC_STEP_MOVE) { - var_f31 = fabsf(field_0x3478 / mpHIO->mMove.m.mMaxSpeed); + max_speed = fabsf(field_0x3478 / mpHIO->mMove.m.mMaxSpeed); } else { - var_f31 = fabsf(mNormalSpeed / mpHIO->mMove.m.mMaxSpeed); + max_speed = fabsf(mNormalSpeed / mpHIO->mMove.m.mMaxSpeed); } - if (checkHeavyStateOn(1, 1)) { - var_f31 *= 1.0f / (mHeavySpeedMultiplier * mHeavySpeedMultiplier); + if (checkHeavyStateOn(TRUE, TRUE)) { + max_speed *= 1.0f / (mHeavySpeedMultiplier * mHeavySpeedMultiplier); } } - if (var_f31 > 1.0f) { - var_f31 = 1.0f; + if (max_speed > 1.0f) { + max_speed = 1.0f; } - cLib_chaseF(&field_0x33e8, var_f31, 0.15f); + cLib_chaseF(&field_0x33e8, max_speed, 0.15f); daPy_frameCtrl_c* frame_ctrl = &mUpperFrameCtrl[2]; frame_ctrl->setFrame(field_0x33e8 * frame_ctrl->getEnd()); @@ -109,9 +107,8 @@ void daAlink_c::setCopyRodControllUpperSpeedRate() { void daAlink_c::setCopyRodModel() { JKRHeap* heap = setItemHeap(); - J3DModelData* mdl_data = loadAramBmd(0x315, 0x5400); - mHeldItemModel = initModel(mdl_data, 0x80000, 0x1000000); - field_0x0724 = loadAramItemBrk(0x323, mHeldItemModel); + mHeldItemModel = initModel(loadAramBmd(dRes_ID_ALANM_BMD_AL_CROD_e, 0x5400), 0x1000000); + field_0x0724 = loadAramItemBrk(dRes_ID_ALANM_BRK_AL_CROD_CHANGE_COLOR_e, mHeldItemModel); mDoExt_setCurrentHeap(heap); field_0x0724->setFrame(0.0f); @@ -119,25 +116,25 @@ void daAlink_c::setCopyRodModel() { mAtCps[0].SetAtSpl(dCcG_At_Spl_UNK_0); mAtCps[0].SetAtAtp(0); - mAtCps[0].SetAtSe(20); + mAtCps[0].SetAtSe(dCcD_SE_COPYROD); mAtCps[0].SetAtHitMark(1); mAtCps[0].OnAtSetBit(); mAtCps[0].SetAtHitCallback(NULL); mAtCps[0].SetAtMtrl(dCcD_MTRL_NONE); - mHeldItemModel->setBaseTRMtx(mpLinkModel->getAnmMtx(field_0x30c0)); + mHeldItemModel->setBaseTRMtx(mpLinkModel->getAnmMtx(mLeftItemJntNo)); mHeldItemModel->calc(); } void daAlink_c::setCopyRodReadyAnime() { f32 speed; - if (checkAttentionLock()) { - speed = mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed; - } else { + if (!checkAttentionLock()) { speed = 0.0f; + } else { + speed = mpHIO->mItem.mBoomerang.m.mIdleAnmSpeed; } - setUpperAnimeBaseSpeed(0x54, speed, 3.0f); + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_BOOMWAIT_e, speed, 3.0f); if (checkCopyRodTopUse()) { seStartSwordCut(Z2SE_AL_COPYROD_READY); @@ -160,6 +157,7 @@ void daAlink_c::throwCopyRod() { onNoResetFlg3(FLG3_COPY_ROD_THROW_AFTER); mItemAcKeep.clearData(); } + dComIfGp_clearPlayerStatus0(0, 0x80); mFastShotTime = -1; voiceStart(Z2SE_AL_V_ATTACK_S); @@ -179,20 +177,19 @@ void daAlink_c::throwCopyRod() { int daAlink_c::returnCopyRod() { offNoResetFlg3(FLG3_COPY_ROD_THROW_AFTER); - int var_r31; + BOOL rt; if (mEquipItem == fpcNm_ITEM_COPY_ROD) { mItemAcKeep = mCopyRodAcKeep; onNoResetFlg0(FLG0_UNK_20); - var_r31 = 1; + rt = TRUE; - f32 tmp_0 = 0.0f; - dComIfGp_getVibration().StartShock(1, 1, cXyz(tmp_0, 1.0f, tmp_0)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER1, 1, cXyz(0.0f, 1.0f, 0.0f)); } else { - var_r31 = 0; + rt = FALSE; } mCopyRodAcKeep.clearData(); - return var_r31; + return rt; } BOOL daAlink_c::checkUpperItemActionCopyRod() { @@ -255,7 +252,6 @@ int daAlink_c::checkNextActionCopyRod() { void daAlink_c::setCopyRodSight() { if (mItemAcKeep.getActor() && !checkCopyRodThrowAnime()) { cXyz sight_pos; - checkSightLine(getCopyRodBallDisMax(), &sight_pos); mSight.setPos(&sight_pos); mSight.onDrawFlg(); @@ -288,7 +284,7 @@ int daAlink_c::procCopyRodSubject() { } if (checkCopyRodReadyAnime()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } setShapeAngleToAtnActor(0); @@ -326,20 +322,20 @@ int daAlink_c::procCopyRodMove() { } if (!checkNextAction(0)) { - f32 var_f31 = -1.0f; + f32 morf = -1.0f; if (checkZeroSpeedF()) { onModeFlg(1); if (field_0x2f98 != 3) { field_0x2f98 = 3; - var_f31 = mpHIO->mBasic.m.mBasicInterpolation; + morf = mpHIO->mBasic.m.mBasicInterpolation; } } else { offModeFlg(1); } - setBlendAtnMoveAnime(var_f31); + setBlendAtnMoveAnime(morf); setBodyAngleXReadyAnime(0); } @@ -383,7 +379,7 @@ int daAlink_c::procCopyRodSwing() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; mProcVar2.field_0x300c = 0; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { setCopyRodControllAnime(); checkNextAction(0); } else if (frameCtrl->getFrame() > field_0x3480 && checkNextAction(1)) { @@ -413,7 +409,7 @@ int daAlink_c::procCopyRodReviveInit() { if (mDemo.getParam0() == 0) { if (mEquipItem != fpcNm_ITEM_COPY_ROD) { - deleteEquipItem(0, 0); + deleteEquipItem(FALSE, FALSE); mEquipItem = fpcNm_ITEM_COPY_ROD; setCopyRodModel(); } @@ -428,7 +424,7 @@ int daAlink_c::procCopyRodReviveInit() { int daAlink_c::procCopyRodRevive() { simpleAnmPlay(field_0x0724); - if (mUnderFrameCtrl[0].checkAnmEnd()) { + if (checkAnmEnd(&mUnderFrameCtrl[0])) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } diff --git a/src/d/actor/d_a_alink_crawl.inc b/src/d/actor/d_a_alink_crawl.inc index f456c70b67..e90c87ac88 100644 --- a/src/d/actor/d_a_alink_crawl.inc +++ b/src/d/actor/d_a_alink_crawl.inc @@ -28,8 +28,13 @@ void daAlink_c::setCrawlMoveDirectionArrow() { static const u8 data_80452F39 = 4; u8 direction = 0; - camera_class* camera = (camera_class*)dComIfGp_getCamera(field_0x317c); - BOOL bvar = cLib_distanceAngleS(fopCamM_GetAngleY(camera), shape_angle.y) > 0x4000; + + BOOL bvar; + if (cLib_distanceAngleS(fopCamM_GetAngleY(dComIfGp_getCamera(field_0x317c)), shape_angle.y) > 0x4000) { + bvar = TRUE; + } else { + bvar = FALSE; + } if (field_0x3198 & 4) { if (!bvar) { @@ -140,9 +145,20 @@ BOOL daAlink_c::changeCrawlAutoMoveProc(cXyz* param_0) { var_r29 |= 8; } } - - if (cM3d_Len2dSqPntAndSegLine(0.5f * (sp34.x + sp28.x), 0.5f * (sp34.z + sp28.z), sp70.x, sp70.z, param_0->x - (95.0f * temp_f31), param_0->z - (95.0f * temp_f30), &sp64.x, &sp64.z, &spC)) { + f32 var_f27 = param_0->x - (95.0f * temp_f31); + f32 var_f26 = param_0->z - (95.0f * temp_f30); + + if (cM3d_Len2dSqPntAndSegLine(0.5f * (sp34.x + sp28.x), + 0.5f * (sp34.z + sp28.z), + sp70.x, + sp70.z, + var_f27, + var_f26, + &sp64.x, + &sp64.z, + &spC)) + { sp64.y = current.pos.y; if (checkWolf()) { return procWolfLieAutoMoveInit(var_r29, &sp64); @@ -155,15 +171,15 @@ BOOL daAlink_c::changeCrawlAutoMoveProc(cXyz* param_0) { } int daAlink_c::getCrawlMoveVec(cXyz* param_0, cXyz* param_1, cXyz* param_2, int param_3, - int param_4, u8* param_5) { + int param_4, u8* param_5) { if (commonLineCheck(param_0, param_1) && ((param_4 == 0 && (!checkWolf() || !dComIfGp_checkPlayerStatus0(0, 0x08000000))) || dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 6) && (!checkWolf() || dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7)) { - cM3dGPla sp3C; - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp3C); + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); int temp_r27 = dComIfG_Bgsp().GetSpecialCode(mLinkLinChk); - if (cBgW_CheckBWall(sp3C.mNormal.y) || (param_3 == 2 && cBgW_CheckBGround(sp3C.mNormal.y))) { + if (cBgW_CheckBWall(tripla.mNormal.y) || (param_3 == 2 && cBgW_CheckBGround(tripla.mNormal.y))) { cXyz sp1C = *param_1 - mLinkLinChk.GetCross(); - s16 temp_r26 = sp3C.mNormal.atan2sX_Z(); + s16 temp_r26 = tripla.mNormal.atan2sX_Z(); s16 temp_r3 = sp1C.atan2sX_Z(); if (abs((s16)((temp_r3 + 0x8000) - temp_r26)) > 0x3000) { @@ -172,34 +188,34 @@ int daAlink_c::getCrawlMoveVec(cXyz* param_0, cXyz* param_1, cXyz* param_2, int f32 temp_f31 = -sp1C.absXZ() * cM_scos(((temp_r3 - temp_r26) - 0x8000)); - param_2->x = temp_f31 * sp3C.mNormal.x; + param_2->x = temp_f31 * tripla.mNormal.x; if (param_3 != 1) { param_2->y = 0.0f; } else { param_2->y = sp1C.y; } - param_2->z = temp_f31 * sp3C.mNormal.z; + param_2->z = temp_f31 * tripla.mNormal.z; if (param_5 != NULL && (dKy_pol_argument_get(&mLinkLinChk) & 0x60)) { *param_5 = 3; - cM3dGPla sp28; - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp28); + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); - field_0x311e = sp28.mNormal.atan2sX_Z(); + field_0x311e = tripla.mNormal.atan2sX_Z(); if (checkIcePolygonDamage(&mLinkLinChk)) { - *param_5 |= 0x80; + *param_5 |= (u8)0x80; } if (dKy_pol_argument_get(&mLinkLinChk) & 0x20) { - *param_5 |= 0x40; + *param_5 |= (u8)0x40; } } return 1; } - if (param_3 == 1 && (temp_r27 == 1 || (sp3C.mNormal.y < field_0x3470 && temp_r27 == 2))) { + if (param_3 == 1 && (temp_r27 == 1 || (tripla.mNormal.y < field_0x3470 && temp_r27 == 2))) { *param_2 = *param_1 - mLinkLinChk.GetCross(); return 1; } @@ -233,24 +249,24 @@ void daAlink_c::crawlBgCheck(cXyz* param_0, cXyz* param_1, int param_2) { } BOOL daAlink_c::checkCrawlSideWall(cXyz* param_0, cXyz* param_1, cXyz* param_2, cXyz* param_3, - s16* param_4, s16* param_5) { + s16* param_4, s16* param_5) { cXyz sp58; cXyz sp4C; if (commonLineCheck(param_0, param_1)) { - cM3dGPla sp64; + cM3dGPla tripla; *param_2 = mLinkLinChk.GetCross(); - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp64); + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); - *param_4 = sp64.mNormal.atan2sX_Z(); + *param_4 = tripla.mNormal.atan2sX_Z(); - sp4C = *param_2 + (sp64.mNormal * 95.0f); + sp4C = *param_2 + (tripla.mNormal * 95.0f); sp58 = (sp4C + *param_2) * 0.5f; if (commonLineCheck(&sp58, &sp4C)) { *param_3 = mLinkLinChk.GetCross(); - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp64); + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); - *param_5 = sp64.mNormal.atan2sX_Z(); + *param_5 = tripla.mNormal.atan2sX_Z(); cXyz sp40 = *param_2 - *param_3; f32 temp_f31 = sp40.abs2XZ(); @@ -265,25 +281,25 @@ BOOL daAlink_c::checkCrawlSideWall(cXyz* param_0, cXyz* param_1, cXyz* param_2, void daAlink_c::decideCrawlDoStatus() { if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x80)) { - if (checkSubjectEnd(1) || mWaterY > current.pos.y) { + if (checkSubjectEnd(TRUE) || mWaterY > current.pos.y) { dComIfGp_clearPlayerStatus0(0, 0x2000); } - } else { - dCamera_c* camera = dCam_getBody(); + } else if (dCam_getBody()->ChangeModeOK(4) && mWaterY <= current.pos.y) { + onResetFlg0(RFLG0_UNK_4000000); - if (camera->ChangeModeOK(4) && mWaterY <= current.pos.y) { - onResetFlg0(RFLG0_UNK_4000000); - - if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x1000) && !checkEventRun()) { - setSubjectMode(); - } + if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x1000) && !checkEventRun()) { + setSubjectMode(); } } } BOOL daAlink_c::checkNotCrawlStand(cXyz* param_0) { mLinkRoofChk.SetPos(*param_0); - return dComIfG_Bgsp().RoofChk(&mLinkRoofChk) - current.pos.y <= field_0x598; + if (dComIfG_Bgsp().RoofChk(&mLinkRoofChk) - current.pos.y <= mHeight) { + return TRUE; + } + + return FALSE; } BOOL daAlink_c::checkNotCrawlStand(cXyz* param_0, cXyz* param_1) { @@ -303,6 +319,8 @@ BOOL daAlink_c::checkNotCrawlStand(cXyz* param_0, cXyz* param_1) { } BOOL daAlink_c::checkCrawlInHoll(cXyz* param_0, cXyz* param_1, cXyz* param_2, int param_3) { + UNUSED(param_3); + cXyz spC0; cXyz spB4; cXyz spA8; @@ -325,7 +343,9 @@ BOOL daAlink_c::checkCrawlInHoll(cXyz* param_0, cXyz* param_1, cXyz* param_2, in *param_2 += sp90; spB4 = (*param_2 * 2.0f) - spC0; - if (checkCrawlSideWall(param_2, &spC0, &spA8, &sp9C, &sp16, &sp14) || checkCrawlSideWall(param_2, &spB4, &sp9C, &spA8, &sp14, &sp16)) { + if (checkCrawlSideWall(param_2, &spC0, &spA8, &sp9C, &sp16, &sp14) || + checkCrawlSideWall(param_2, &spB4, &sp9C, &spA8, &sp14, &sp16)) + { field_0x3198 = 1; field_0x37c8 = ((spA8 + sp9C) * 0.5f) - sp90; mProcVar2.field_0x300c = sp16 + 0x4000; @@ -336,9 +356,7 @@ BOOL daAlink_c::checkCrawlInHoll(cXyz* param_0, cXyz* param_1, cXyz* param_2, in } void daAlink_c::setCrawlMoveHoll() { - f32 frame_ctrl_rate = mUnderFrameCtrl[0].getRate(); - - if (frame_ctrl_rate) { + if (mUnderFrameCtrl[0].getRate()) { cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 5, 0x1000, 0x800); current.angle.y = shape_angle.y; } @@ -357,7 +375,7 @@ void daAlink_c::setCrawlMoveAngle() { cXyz sp2C; cXyz sp38; - cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mCrouch.m.mCrawlTurnRate, + cLib_addCalcAngleS(&shape_angle.y, mMoveAngle, mpHIO->mCrouch.m.mCrawlTurnRate, mpHIO->mCrouch.m.mCrawlTurnMax, mpHIO->mCrouch.m.mCrawlTurnMin); @@ -386,14 +404,14 @@ void daAlink_c::setCrawlMoveAngle() { } } -void daAlink_c::stopHalfMoveAnime(f32 param_0) { +void daAlink_c::stopHalfMoveAnime(f32 i_frame) { daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; f32 frame; if (frame_ctrl->checkPass(0.0f)) { frame = 0.0f; } else { - frame = param_0; + frame = i_frame; } frame_ctrl->setRate(0.0f); @@ -402,11 +420,11 @@ void daAlink_c::stopHalfMoveAnime(f32 param_0) { } void daAlink_c::setCrawlAutoMoveAimPos() { - int temp_r30 = getDirectionFromShapeAngle(); + int direction = getDirectionFromShapeAngle(); f32 temp_f31 = cM_ssin(shape_angle.y); f32 temp_f30 = cM_scos(shape_angle.y); - if (temp_r30 == 2 && (field_0x3198 & 4)) { + if (direction == DIR_LEFT && (field_0x3198 & 4)) { field_0x37c8.x += 1.5f * (95.0f * temp_f30); field_0x37c8.z -= 1.5f * (95.0f * temp_f31); @@ -419,7 +437,7 @@ void daAlink_c::setCrawlAutoMoveAimPos() { } mProcVar0.field_0x3008 = -1; - } else if (temp_r30 == 3 && (field_0x3198 & 8)) { + } else if (direction == DIR_RIGHT && (field_0x3198 & 8)) { field_0x37c8.x -= 1.5f * (95.0f * temp_f30); field_0x37c8.z += 1.5f * (95.0f * temp_f31); @@ -432,14 +450,14 @@ void daAlink_c::setCrawlAutoMoveAimPos() { } mProcVar0.field_0x3008 = -1; - } else if ((field_0x3198 & 1) && ((shape_angle.y == current.angle.y && temp_r30 == 0) || (shape_angle.y != current.angle.y && temp_r30 == 1))) { + } else if ((field_0x3198 & 1) && ((shape_angle.y == current.angle.y && direction == DIR_FORWARD) || (shape_angle.y != current.angle.y && direction == DIR_BACKWARD))) { field_0x37c8.x += 1.5f * (95.0f * cM_ssin(current.angle.y)); field_0x37c8.z += 1.5f * (95.0f * cM_scos(current.angle.y)); mProcVar2.field_0x300c = shape_angle.y; mProcVar3.field_0x300e = 0; mProcVar0.field_0x3008 = -1; - } else if ((shape_angle.y == current.angle.y && temp_r30 == 1) || (shape_angle.y != current.angle.y && temp_r30 == 0)) { + } else if ((shape_angle.y == current.angle.y && direction == DIR_BACKWARD) || (shape_angle.y != current.angle.y && direction == DIR_FORWARD)) { current.angle.y += 0x8000; field_0x37c8.x -= 1.5f * (95.0f * cM_ssin(current.angle.y)); field_0x37c8.z -= 1.5f * (95.0f * cM_scos(current.angle.y)); @@ -503,50 +521,50 @@ int daAlink_c::procCrawlStart() { return 1; } -int daAlink_c::procCrawlMoveInit(s16 param_0, s16 param_1) { +int daAlink_c::procCrawlMoveInit(s16 i_angleX, s16 i_angleZ) { BOOL var_r29; - BOOL var_r28 = 0; + BOOL var_r28 = FALSE; if (mProcID == PROC_CRAWL_AUTO_MOVE) { - var_r29 = 0; + var_r29 = FALSE; } else { - var_r29 = 1; + var_r29 = TRUE; if (mProcID == PROC_CRAWL_START) { - var_r28 = 1; + var_r28 = TRUE; } } BOOL var_r27; if (dComIfGp_checkPlayerStatus0(0, 0x2000)) { - var_r27 = 1; + var_r27 = TRUE; } else { - var_r27 = 0; + var_r27 = FALSE; } commonProcInit(PROC_CRAWL_MOVE); mProcVar3.field_0x300e = 0; - if (var_r29 != 0) { - f32 var_f31 = getCrawlMoveAnmSpeed(); - if (var_r28 != 0) { + if (var_r29) { + f32 anm_speed = getCrawlMoveAnmSpeed(); + if (var_r28) { mProcVar3.field_0x300e = 1; - } else if (getDirectionFromShapeAngle() == 1) { - var_f31 *= -1.0f; + } else if (getDirectionFromShapeAngle() == DIR_BACKWARD) { + anm_speed *= -1.0f; } current.angle.y = shape_angle.y; - setSingleAnimeBaseSpeed(ANM_CRAWL, var_f31, mpHIO->mCrouch.m.mCrawlInterpolation); + setSingleAnimeBaseSpeed(ANM_CRAWL, anm_speed, mpHIO->mCrouch.m.mCrawlInterpolation); } field_0x3198 = var_r29 ^ 1; - shape_angle.x = param_0; - shape_angle.z = param_1; + shape_angle.x = i_angleX; + shape_angle.z = i_angleZ; field_0x33cc = 1.0f; field_0x2f99 = 0xC; dComIfGp_setPlayerStatus0(0, 0x08000000); - if (var_r27 != 0) { + if (var_r27) { dComIfGp_setPlayerStatus0(0, 0x2000); } @@ -554,7 +572,7 @@ int daAlink_c::procCrawlMoveInit(s16 param_0, s16 param_1) { } int daAlink_c::procCrawlMove() { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; cXyz sp54; cXyz sp48; cXyz sp3C; @@ -587,33 +605,33 @@ int daAlink_c::procCrawlMove() { if ((var_r27 != 0 && mProcVar3.field_0x300e == 0) || getSlidePolygon(&sp60) || checkCrawlWaterIn()) { procCrawlEndInit(1, shape_angle.x, shape_angle.z); } else { - BOOL var_r26 = 0; + BOOL var_r26 = FALSE; f32 temp_f31 = getCrawlMoveAnmSpeed(); - if (temp_r29->getRate() > 0.0f) { - setWaterInAnmRate(temp_r29, temp_f31); - } else if (temp_r29->getRate() < 0.0f) { - setWaterInAnmRate(temp_r29, -temp_f31); + if (framectrl->getRate() > 0.0f) { + setWaterInAnmRate(framectrl, temp_f31); + } else if (framectrl->getRate() < 0.0f) { + setWaterInAnmRate(framectrl, -temp_f31); } else { - var_r26 = 1; + var_r26 = TRUE; } - if (var_r26 == 1 || temp_r29->checkPass(0.0f) || temp_r29->checkPass(17.0f)) { + if (var_r26 == TRUE || framectrl->checkPass(0.0f) || framectrl->checkPass(17.0f)) { if (mProcVar3.field_0x300e != 0) { mProcVar3.field_0x300e--; - setWaterInAnmRate(temp_r29, temp_f31); - temp_r29->setLoop(0); + setWaterInAnmRate(framectrl, temp_f31); + framectrl->setLoop(0); } else if (checkInputOnR()) { - if (getDirectionFromShapeAngle() != 1) { - setWaterInAnmRate(temp_r29, temp_f31); - temp_r29->setLoop(0); + if (getDirectionFromShapeAngle() != DIR_BACKWARD) { + setWaterInAnmRate(framectrl, temp_f31); + framectrl->setLoop(0); } else { - setWaterInAnmRate(temp_r29, -temp_f31); - temp_r29->setLoop(temp_r29->getEnd()); + setWaterInAnmRate(framectrl, -temp_f31); + framectrl->setLoop(framectrl->getEnd()); } initBasAnime(); - } else if (var_r26 == 0) { + } else if (var_r26 == FALSE) { stopHalfMoveAnime(17.0f); } } @@ -624,9 +642,9 @@ int daAlink_c::procCrawlMove() { if (checkCrawlInHoll(&sp54, &sp3C, &sp18, var_r27)) { setCrawlMoveHoll(); - } else if (sp8 != 0 && temp_r25 && temp_r24 && temp_r23 && var_r27 == 0 && changeCrawlAutoMoveProc(&sp18) ) { + } else if (sp8 != 0 && temp_r25 && temp_r24 && temp_r23 && !var_r27 && changeCrawlAutoMoveProc(&sp18) ) { return 1; - } else if (mProcVar3.field_0x300e == 0 && checkInputOnR() && temp_r29->getRate() > 0.0f) { + } else if (mProcVar3.field_0x300e == 0 && checkInputOnR() && framectrl->getRate() > 0.0f) { setCrawlMoveAngle(); } @@ -648,7 +666,13 @@ int daAlink_c::procCrawlMove() { } int daAlink_c::procCrawlAutoMoveInit(int param_0, cXyz* param_1) { - BOOL var_r30 = dComIfGp_checkPlayerStatus0(0, 0x2000) != 0 ? TRUE : FALSE; + BOOL var_r30; + if (dComIfGp_checkPlayerStatus0(0, 0x2000)) { + var_r30 = TRUE; + } else { + var_r30 = FALSE; + } + commonProcInit(PROC_CRAWL_AUTO_MOVE); field_0x37c8 = *param_1; field_0x33cc = 1.0f; @@ -671,24 +695,24 @@ int daAlink_c::procCrawlAutoMoveInit(int param_0, cXyz* param_1) { int daAlink_c::procCrawlAutoMove() { field_0x2f99 = 0xC; - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; - s16 temp_r27 = shape_angle.y; - s16 temp_r26 = current.angle.y; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; + s16 prev_shapeangle = shape_angle.y; + s16 prev_angle = current.angle.y; if (mProcVar0.field_0x3008 > 0) { - if (temp_r29->checkPass(0.0f) || temp_r29->checkPass(17.0f)) { + if (framectrl->checkPass(0.0f) || framectrl->checkPass(17.0f)) { stopHalfMoveAnime(17.0f); mNormalSpeed = 0.0f; - } else if (checkAnmEnd(temp_r29)) { + } else if (checkAnmEnd(framectrl)) { mNormalSpeed = 0.0f; - mProcVar0.field_0x3008 -= 1; + mProcVar0.field_0x3008--; } setCrawlMoveDirectionArrow(); decideCrawlDoStatus(); - shape_angle.y = temp_r27; - current.angle.y = temp_r26; + shape_angle.y = prev_shapeangle; + current.angle.y = prev_angle; } else if (mProcVar0.field_0x3008 == 0) { setCrawlMoveDirectionArrow(); if (checkInputOnR()) { @@ -698,19 +722,19 @@ int daAlink_c::procCrawlAutoMove() { dComIfGp_setAdvanceDirection(0); if (shape_angle.y == current.angle.y) { - setWaterInAnmRate(temp_r29, 2.0f); - temp_r29->setLoop(0); + setWaterInAnmRate(framectrl, 2.0f); + framectrl->setLoop(0); } else { - setWaterInAnmRate(temp_r29, -2.0f); - temp_r29->setLoop(temp_r29->getEnd()); + setWaterInAnmRate(framectrl, -2.0f); + framectrl->setLoop(framectrl->getEnd()); } initBasAnime(); } } else { decideCrawlDoStatus(); - shape_angle.y = temp_r27; - current.angle.y = temp_r26; + shape_angle.y = prev_shapeangle; + current.angle.y = prev_angle; } } else { int var_r28 = 1; @@ -754,55 +778,55 @@ int daAlink_c::procCrawlAutoMove() { return 1; } -int daAlink_c::procCrawlEndInit(int param_0, s16 param_1, s16 param_2) { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; - f32 var_f31 = temp_r29->getFrame(); +int daAlink_c::procCrawlEndInit(int param_0, s16 i_angleX, s16 i_angleZ) { + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; + f32 frame = framectrl->getFrame(); commonProcInit(PROC_CRAWL_END); current.angle.y = shape_angle.y; field_0x2f99 = 0xC; - const daAlinkHIO_anm_c* temp_r30 = &mpHIO->mCrouch.m.mCrawlEndAnm; + const daAlinkHIO_anm_c* anmParams = &mpHIO->mCrouch.m.mCrawlEndAnm; - f32 var_f30; + f32 morf; if (param_0 != 0) { - var_f30 = temp_r30->mInterpolation; + morf = anmParams->mInterpolation; } else { - var_f30 = -1.0f; + morf = -1.0f; } - setSingleAnime(ANM_CRAWL_START, temp_r30->mSpeed, temp_r30->mStartFrame, temp_r30->mEndFrame, var_f30); + setSingleAnime(ANM_CRAWL_START, anmParams->mSpeed, anmParams->mStartFrame, anmParams->mEndFrame, morf); if (param_0 == 0) { - if (temp_r30->mStartFrame > var_f31) { - var_f31 = temp_r30->mStartFrame; - } else if (temp_r30->mEndFrame <= var_f31) { - var_f31 = temp_r30->mEndFrame; + if (anmParams->mStartFrame > frame) { + frame = anmParams->mStartFrame; + } else if (anmParams->mEndFrame <= frame) { + frame = anmParams->mEndFrame; } - temp_r29->setFrame(var_f31); - getNowAnmPackUnder(UNDER_0)->setFrame(var_f31); + framectrl->setFrame(frame); + getNowAnmPackUnder(UNDER_0)->setFrame(frame); } - J3DTransformInfo sp10; - getNowAnmPackUnder(UNDER_0)->getTransform(0, &sp10); + J3DTransformInfo transinfo; + getNowAnmPackUnder(UNDER_0)->getTransform(0, &transinfo); - field_0x34d4.x = sp10.mTranslate.x; - field_0x34d4.y = sp10.mTranslate.y; - field_0x34d4.z = sp10.mTranslate.z; + field_0x34d4.x = transinfo.mTranslate.x; + field_0x34d4.y = transinfo.mTranslate.y; + field_0x34d4.z = transinfo.mTranslate.z; mNormalSpeed = 0.0f; - shape_angle.x = param_1; - shape_angle.z = param_2; + shape_angle.x = i_angleX; + shape_angle.z = i_angleZ; - if (temp_r30->mCancelFrame > temp_r30->mStartFrame) { - field_0x347c = temp_r30->mCancelFrame; + if (anmParams->mCancelFrame > anmParams->mStartFrame) { + field_0x347c = anmParams->mCancelFrame; } else { - field_0x347c = temp_r30->mStartFrame; + field_0x347c = anmParams->mStartFrame; } - field_0x3478 = 1.0f / (temp_r30->mEndFrame - field_0x347c); + field_0x3478 = 1.0f / (anmParams->mEndFrame - field_0x347c); field_0x3588 = l_waitBaseAnime; return 1; } diff --git a/src/d/actor/d_a_alink_cut.inc b/src/d/actor/d_a_alink_cut.inc index 337dd8e640..c988a12cb7 100644 --- a/src/d/actor/d_a_alink_cut.inc +++ b/src/d/actor/d_a_alink_cut.inc @@ -7,17 +7,33 @@ #include "d/actor/d_a_b_gnd.h" #include "SSystem/SComponent/c_math.h" -static fopAc_ac_c* daAlink_searchNightStalker(fopAc_ac_c* i_actor, void*) { +enum daAlink_CutNmParamType { + CUT_NM_PARAM_VERTICAL, + CUT_NM_PARAM_LEFT, + CUT_NM_PARAM_RIGHT, + CUT_NM_PARAM_COMBO_STAB, + CUT_NM_PARAM_STAB, +}; + +enum daAlink_CutFinishParamType { + CUT_FINISH_PARAM_LEFT, + CUT_FINISH_PARAM_VERTICAL, + CUT_FINISH_PARAM_STAB, + CUT_FINISH_PARAM_MORTAL_DRAW_A, + CUT_FINISH_PARAM_MORTAL_DRAW_B, + CUT_FINISH_PARAM_RIGHT, +}; + +static fopAc_ac_c* daAlink_searchNightStalker(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); if (fopAcM_GetName(i_actor) == PROC_E_S1) { daPy_py_c* player_p = daPy_getLinkPlayerActorClass(); - if (player_p->current.pos.abs2XZ(i_actor->current.pos) < 250000.0f && + if (player_p->current.pos.abs2XZ(i_actor->current.pos) < SQUARE(500.0f) && fabsf(player_p->current.pos.y - i_actor->current.pos.y) < 300.0f) { return i_actor; } - } else if (fopAcM_GetName(i_actor) == PROC_B_GND && - static_cast(i_actor)->checkAttackChance()) - { + } else if (fopAcM_GetName(i_actor) == PROC_B_GND && static_cast(i_actor)->checkAttackChance()) { return i_actor; } @@ -26,9 +42,7 @@ static fopAc_ac_c* daAlink_searchNightStalker(fopAc_ac_c* i_actor, void*) { void daAlink_c::checkLightSwordMtrl() { if (checkLightMasterSwordEquip()) { - stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - - if (dStage_stagInfo_GetSaveTbl(stag_info) == 0x17 || + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) == dStage_SaveTbl_LV8 || fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchNightStalker, NULL)) { onNoResetFlg3(FLG3_UNK_100000); @@ -41,11 +55,11 @@ void daAlink_c::checkLightSwordMtrl() { BOOL daAlink_c::checkSwordEquipAnime() const { return !checkNoResetFlg0(FLG0_UNK_1000000) && - (checkUpperAnime(0x255) || checkUpperAnime(0x261)); + (checkUpperAnime(dRes_ID_ALANM_BCK_WAITATOS_e) || checkUpperAnime(dRes_ID_ALANM_BCK_WAITHATOHS_e)); } BOOL daAlink_c::checkCutDashAnime() const { - return checkUpperAnime(0x80) || checkUpperAnime(0x82) || checkUpperAnime(0x81); + return checkUpperAnime(dRes_ID_ALANM_BCK_CUTDL_e) || checkUpperAnime(dRes_ID_ALANM_BCK_CUTDT_e) || checkUpperAnime(dRes_ID_ALANM_BCK_CUTDR_e); } BOOL daAlink_c::checkCutDashEnemyHit(dCcD_GObjInf& obj) { @@ -53,25 +67,22 @@ BOOL daAlink_c::checkCutDashEnemyHit(dCcD_GObjInf& obj) { } u32 daAlink_c::getSwordAtType() { - return checkMasterSwordEquip() ? 0x4000002 : 2; + if (checkMasterSwordEquip()) { + return AT_TYPE_MASTER_SWORD | AT_TYPE_NORMAL_SWORD; + } else { + return AT_TYPE_NORMAL_SWORD; + } } -void daAlink_c::initCutTurnAt(f32 param_0, int param_1) { - field_0xFB8.ResetAtHit(); - field_0xFB8.OnAtSetBit(); - field_0xFB8.SetAtType(getSwordAtType()); - field_0xFB8.SetAtHitMark(3); - field_0xFB8.SetAtSe(1); - field_0xFB8.SetAtAtp(param_1); - - u8 mtrl; - if (!checkNoResetFlg3(FLG3_UNK_100000)) { - mtrl = dCcD_MTRL_NONE; - } else { - mtrl = dCcD_MTRL_LIGHT; - } - field_0xFB8.SetAtMtrl(mtrl); - field_0xFB8.SetR(param_0); +void daAlink_c::initCutTurnAt(f32 i_radius, int i_atp) { + mAtSph.ResetAtHit(); + mAtSph.OnAtSetBit(); + mAtSph.SetAtType(getSwordAtType()); + mAtSph.SetAtHitMark(3); + mAtSph.SetAtSe(dCcD_SE_SWORD); + mAtSph.SetAtAtp(i_atp); + mAtSph.SetAtMtrl(checkNoResetFlg3(FLG3_UNK_100000) ? (u8)dCcD_MTRL_LIGHT : (u8)dCcD_MTRL_NONE); + mAtSph.SetR(i_radius); field_0x2fd0 = 1; } @@ -88,7 +99,7 @@ void daAlink_c::changeCutFast() { setSwordModel(); mComboCutCount = 3; checkCutAction(); - onNoResetFlg0(FLG0_UNK_80000); + onNoResetFlg0(FLG0_FAST_SWORD_CUT); } bool daAlink_c::checkCutFastReady() { @@ -102,16 +113,16 @@ bool daAlink_c::checkCutFastReady() { fopAc_ac_c* target_p = mAttention->LockonTarget(0); - if (mEquipItem == fpcNm_ITEM_NONE && (dComIfGs_isEventBit(0x2A80) || checkNoResetFlg3(FLG3_UNK_80))) + if (mEquipItem == fpcNm_ITEM_NONE && (dComIfGs_isEventBit(dSv_event_flag_c::F_0342) || checkNoResetFlg3(FLG3_TRANING_CUT_FAST))) { if (checkModeFlg(1) && !checkRideOn() && checkSwordGet() && checkModeFlg(4) && !checkModeFlg(0x40000) && mTargetedActor == NULL && checkEnemyGroup(target_p)) { - f32 xz_dist = target_p->eyePos.abs2XZ(current.pos); + f32 xz_dist2 = target_p->eyePos.abs2XZ(current.pos); f32 y_dist = fabsf(target_p->eyePos.y - current.pos.y); - if ((xz_dist < 160000.0f && y_dist < 300.0f) || - (checkNoResetFlg0(FLG0_UNK_1000000) && xz_dist < 202500.0f && y_dist < 350.0f)) + if ((xz_dist2 < SQUARE(400.0f) && y_dist < 300.0f) || + (checkNoResetFlg0(FLG0_UNK_1000000) && xz_dist2 < SQUARE(450.0f) && y_dist < 350.0f)) { return true; } @@ -148,7 +159,7 @@ void daAlink_c::offSwordModel() { BOOL daAlink_c::checkCutTypeNoBlur() const { return mCutType == CUT_TYPE_NM_STAB || mCutType == CUT_TYPE_COMBO_STAB || - mCutType == CUT_TYPE_FINISH_STAB || checkNoResetFlg0(FLG0_UNDERWATER); + mCutType == CUT_TYPE_FINISH_STAB || checkNoResetFlg0(FLG0_WATER_IN_MOVE); } bool daAlink_c::checkCutTurnInput() const { @@ -163,18 +174,26 @@ int daAlink_c::getCutTurnDirection() const { } } -void daAlink_c::resetCombo(int param_0) { +void daAlink_c::resetCombo(BOOL i_resetRunCut) { mComboCutCount = 0; offNoResetFlg0(FLG0_UNK_8000); - if (param_0 != 0) { + if (i_resetRunCut) { mRunCutComboCount = 0; } } void daAlink_c::checkComboCnt() { - if ((mEquipItem == 0x103 && mComboCutCount == 2) && - (checkAttentionLock() && - (mAtCps[0].ChkAtHit() || mAtCps[1].ChkAtHit() || mAtCps[2].ChkAtHit()))) + if ((mEquipItem == 0x103 && mComboCutCount == 2) + && (checkAttentionLock() + && (mAtCps[0].ChkAtHit() + #if DEBUG + || mpHIO->mCut.m.mForceHitCombo + #endif + || mAtCps[1].ChkAtHit() + || mAtCps[2].ChkAtHit() + ) + ) + ) { onNoResetFlg0(FLG0_UNK_8000); } @@ -182,19 +201,25 @@ void daAlink_c::checkComboCnt() { if (field_0x307e > 0) { field_0x307e--; } else { - resetCombo(1); + resetCombo(TRUE); } } -void daAlink_c::setCutType(u8 type) { - mCutType = type; +void daAlink_c::setCutType(u8 i_type) { + mCutType = i_type; offResetFlg0(RFLG0_UNK_8000000); } void daAlink_c::setCylAtParam(u32 i_AtType, dCcG_At_Spl i_spl, u8 i_hitMark, u8 i_AtSe, int i_atp, f32 i_radius, f32 i_height) { - if (checkWoodSwordEquip() && (i_AtSe == 14 || i_AtSe == 1 || i_AtSe == 16)) { - i_AtSe = 5; + #if DEBUG + if (mpHIO->mBasic.m.mOneHitKill && (i_AtType & AT_TYPE_NORMAL_SWORD)) { + i_atp = 127; + } + #endif + + if (checkWoodSwordEquip() && (i_AtSe == dCcD_SE_SWORD_STAB || i_AtSe == dCcD_SE_SWORD || i_AtSe == dCcD_SE_SWORD_RUN)) { + i_AtSe = dCcD_SE_WOOD; } u8 mtrl; @@ -226,14 +251,13 @@ void daAlink_c::setCylAtParam(u32 i_AtType, dCcG_At_Spl i_spl, u8 i_hitMark, u8 } if (checkWolf()) { - dCcD_Cyl* cyl = field_0x850; - for (int i = 0; i < 3; i++) { + dCcD_Cyl* cyl = mTgCyls; + for (int i = 0; i < 3; i++, cyl++) { cyl->SetAtType(i_AtType); cyl->SetAtSpl(i_spl); cyl->SetAtHitMark(i_hitMark); cyl->SetAtSe(i_AtSe); cyl->SetAtAtp(i_atp); - cyl++; } } } @@ -241,11 +265,18 @@ void daAlink_c::setCylAtParam(u32 i_AtType, dCcG_At_Spl i_spl, u8 i_hitMark, u8 void daAlink_c::setSwordAtParam(dCcG_At_Spl i_spl, u8 i_hitMark, u8 i_AtSe, int i_atp, f32 param_4, f32 i_radius) { dCcD_Cps* atCps = mAtCps; + + #if DEBUG + if (mpHIO->mBasic.m.mOneHitKill) { + i_atp = 127; + } + #endif + u32 atType = getSwordAtType(); mAtCps[0].OffAtNoHitMark(); - if (checkWoodSwordEquip() && (i_AtSe == 14 || i_AtSe == 1 || i_AtSe == 16)) { - i_AtSe = 5; + if (checkWoodSwordEquip() && (i_AtSe == dCcD_SE_SWORD_STAB || i_AtSe == dCcD_SE_SWORD || i_AtSe == dCcD_SE_SWORD_RUN)) { + i_AtSe = dCcD_SE_WOOD; } if (i_spl == 0) { @@ -261,7 +292,8 @@ void daAlink_c::setSwordAtParam(dCcG_At_Spl i_spl, u8 i_hitMark, u8 i_AtSe, int mtrl = dCcD_MTRL_NONE; } - for (int i = 0; i < 3; i++) { + int i; + for (i = 0; i < 3; i++, atCps++) { atCps->SetAtSpl(i_spl); atCps->SetAtHitMark(i_hitMark); atCps->SetAtAtp(i_atp); @@ -269,17 +301,15 @@ void daAlink_c::setSwordAtParam(dCcG_At_Spl i_spl, u8 i_hitMark, u8 i_AtSe, int atCps->SetAtSe(i_AtSe); atCps->SetAtMtrl(mtrl); atCps->SetAtType(atType); - atCps++; } field_0x33d0 = param_4; } -BOOL daAlink_c::notSwordHitVibActor(fopAc_ac_c* p_actor) { - if (p_actor != NULL && fopAcM_GetGroup(p_actor) == 4) { - s16 name = fopAcM_GetName(p_actor); - - if (!checkSpecialNpc(p_actor) && name != PROC_NI && name != PROC_NPC_BLUENS) { +BOOL daAlink_c::notSwordHitVibActor(fopAc_ac_c* i_actor) { + if (i_actor != NULL && fopAcM_GetGroup(i_actor) == fopAc_NPC_e) { + s16 name = fopAcM_GetName(i_actor); + if (!checkSpecialNpc(i_actor) && name != PROC_NI && name != PROC_NPC_BLUENS) { return true; } } @@ -293,49 +323,53 @@ BOOL daAlink_c::setSwordHitVibration(dCcD_GObjInf* i_gobj) { return true; } - int var_r4; + int vibmode; if (checkWolf()) { - var_r4 = 3; + vibmode = VIBMODE_S_POWER3; } else if (i_gobj->ChkAtShieldHit()) { if (field_0x2fd0 == 1) { - var_r4 = 5; + vibmode = VIBMODE_S_POWER5; } else if (field_0x2fd0 == 2) { - var_r4 = 2; + vibmode = VIBMODE_S_POWER2; } else { - var_r4 = 3; + vibmode = VIBMODE_S_POWER3; } } else if (field_0x2fd0 == 2 || - (i_gobj->GetAtHitAc() != NULL && fopAcM_GetGroup(i_gobj->GetAtHitAc()) == 3)) + (i_gobj->GetAtHitAc() != NULL && fopAcM_GetGroup(i_gobj->GetAtHitAc()) == fopAc_ENV_e)) { - var_r4 = 2; + vibmode = VIBMODE_S_POWER2; } else if (field_0x2fd0 == 1) { - var_r4 = 4; + vibmode = VIBMODE_S_POWER4; } else { - var_r4 = 2; + vibmode = VIBMODE_S_POWER2; } - dComIfGp_getVibration().StartShock(var_r4, 31, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(vibmode, 31, cXyz(0.0f, 1.0f, 0.0f)); return true; } return false; } -BOOL daAlink_c::checkAtShieldHit(dCcD_GObjInf& param_0) { - return param_0.ChkAtHit() && param_0.ChkAtShieldHit(); +BOOL daAlink_c::checkAtShieldHit(dCcD_GObjInf& i_gobj) { + return i_gobj.ChkAtHit() && i_gobj.ChkAtShieldHit(); } -BOOL daAlink_c::checkCutReverseAt(dCcD_GObjInf* param_0) { - param_0->GetAtHitAc(); - return checkAtShieldHit(*param_0) ? TRUE : FALSE; +BOOL daAlink_c::checkCutReverseAt(dCcD_GObjInf* i_gobj) { + fopAc_ac_c* hit_ac = i_gobj->GetAtHitAc(); + if (checkAtShieldHit(*i_gobj)) { + return TRUE; + } else { + return FALSE; + } } -BOOL daAlink_c::changeCutReverseProc(daAlink_c::daAlink_ANM param_0) { +BOOL daAlink_c::changeCutReverseProc(daAlink_c::daAlink_ANM i_anmID) { if (checkCutReverseAt(&mAtCps[0]) || (mEquipItem != fpcNm_ITEM_COPY_ROD && (checkCutReverseAt(&mAtCps[1]) || checkCutReverseAt(&mAtCps[2])))) { - return procCutReverseInit(param_0); + return procCutReverseInit(i_anmID); } - if (checkNoResetFlg0(FLG0_UNK_40) || mEquipItem == fpcNm_ITEM_COPY_ROD) { + if (checkNoResetFlg0(FLG0_CUT_AT_FLG) || mEquipItem == fpcNm_ITEM_COPY_ROD) { cXyz sp28; Vec sp1C; @@ -353,45 +387,45 @@ BOOL daAlink_c::changeCutReverseProc(daAlink_c::daAlink_ANM param_0) { } if (commonLineCheck(&sp28, &field_0x3720) && !dComIfG_Bgsp().GetPolyAttackThrough(mLinkLinChk) && dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7) { - cM3dGPla sp34; - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp34); + cM3dGPla tri; + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tri); - f32 var_f31; + f32 normal_y; if (checkMagneBootsOn()) { - mDoMtx_multVecSR(mMagneBootInvMtx, &sp34.mNormal, &sp1C); - var_f31 = sp1C.y; + mDoMtx_multVecSR(mMagneBootInvMtx, &tri.mNormal, &sp1C); + normal_y = sp1C.y; } else { - var_f31 = sp34.mNormal.y; + normal_y = tri.mNormal.y; } - if (!cBgW_CheckBGround(var_f31) && !checkCutDashAnime()) { - int temp_r3 = dComIfG_Bgsp().GetPolyAtt0(mLinkLinChk); + if (!cBgW_CheckBGround(normal_y) && !checkCutDashAnime()) { + int poly_att = dComIfG_Bgsp().GetPolyAtt0(mLinkLinChk); - if (!checkWoodSwordEquip() && (temp_r3 == 2 || temp_r3 == 5 || temp_r3 == 0xE || temp_r3 == 8 || temp_r3 == 0xA)) { - csXyz sp8(cM_atan2s(sp34.mNormal.y, sp34.mNormal.absXZ()), cM_atan2s(-sp34.mNormal.x, -sp34.mNormal.z), 0); + if (!checkWoodSwordEquip() && (poly_att == 2 || poly_att == 5 || poly_att == 14 || poly_att == 8 || poly_att == 10)) { + csXyz particle_rot(cM_atan2s(tri.mNormal.y, tri.mNormal.absXZ()), cM_atan2s(-tri.mNormal.x, -tri.mNormal.z), 0); - u16 var_r28; - if (temp_r3 == 5 || temp_r3 == 0xE) { - var_r28 = 0x752; - } else if (temp_r3 == 8) { - var_r28 = 0xAE3; + u16 particle_name; + if (poly_att == 5 || poly_att == 14) { + particle_name = ID_ZI_J_COLHIT_KIKUZU; + } else if (poly_att == 8) { + particle_name = ID_ZI_J_COLHIT_ICE; } else { - var_r28 = 0x32E; + particle_name = ID_ZI_J_COLHIT_HIBANA; dKy_SordFlush_set(*mLinkLinChk.GetCrossP(), 2); } - dComIfGp_particle_set(var_r28, mLinkLinChk.GetCrossP(), &sp8, NULL); + dComIfGp_particle_set(particle_name, mLinkLinChk.GetCrossP(), &particle_rot, NULL); } - u32 var_r27; - if (mAtCps[0].GetAtSe() == 14) { - var_r27 = 0x40000; + u32 sound_id; + if (mAtCps[0].GetAtSe() == dCcD_SE_SWORD_STAB) { + sound_id = Z2SE_HIT_SWORD; } else { - var_r27 = dCcD_GObjInf::getHitSeID(mAtCps[0].GetAtSe(), 0); + sound_id = dCcD_GObjInf::getHitSeID(mAtCps[0].GetAtSe(), 0); } - mZ2Link.startHitItemSE(var_r27, dKy_pol_sound_get(&mLinkLinChk), NULL, -1.0f); - return procCutReverseInit(param_0); + mZ2Link.startHitItemSE(sound_id, dKy_pol_sound_get(&mLinkLinChk), NULL, -1.0f); + return procCutReverseInit(i_anmID); } } } @@ -399,64 +433,64 @@ BOOL daAlink_c::changeCutReverseProc(daAlink_c::daAlink_ANM param_0) { return 0; } -void daAlink_c::setCutDash(int param_0, int param_1) { +void daAlink_c::setCutDash(BOOL param_0, BOOL param_1) { if (!param_0 && checkNoResetFlg1(FLG1_UNK_4000000)) { checkCutAction(); } else { field_0x2fce = 5; - resetCombo(0); - offNoResetFlg2(FLG2_UNK_2); + resetCombo(FALSE); + offNoResetFlg2(FLG2_COMBO_RESERB); - setSwordAtParam(dCcG_At_Spl_UNK_0, 7, 16, 1, mpHIO->mCut.m.mRunCutLength, + setSwordAtParam(dCcG_At_Spl_UNK_0, 7, dCcD_SE_SWORD_RUN, 1, mpHIO->mCut.m.mRunCutLength, mpHIO->mCut.m.mRunCutRadius); field_0x2fd0 = 2; mRunCutComboCount++; if (param_1) { - setUpperAnimeParam(0x82, UPPER_2, &mpHIO->mCut.mCutDashCharge.m.mCutAnm); + setUpperAnimeParam(dRes_ID_ALANM_BCK_CUTDT_e, UPPER_2, &mpHIO->mCut.mCutDashCharge.m.mCutAnm); if (checkBoardRide()) { - setCutType(13); + setCutType(CUT_TYPE_DASH_CHARGE_BOARD); } else { - setCutType(0x38); + setCutType(CUT_TYPE_DASH_CHARGE); } if (mRunCutComboCount == 3) { mRunCutComboCount = 1; } } else if (mRunCutComboCount == 1 || mRunCutComboCount == 3) { - setUpperAnimeParam(0x80, UPPER_2, &mpHIO->mCut.mCutDashLeft.m.mCutAnm); + setUpperAnimeParam(dRes_ID_ALANM_BCK_CUTDL_e, UPPER_2, &mpHIO->mCut.mCutDashLeft.m.mCutAnm); if (checkBoardRide()) { - setCutType(11); + setCutType(CUT_TYPE_DASH_LEFT_BOARD); } else if (mProcID == PROC_SIDESTEP) { - setCutType(CUT_TYPE_AIR); + setCutType(CUT_TYPE_DASH_LEFT_SIDESTEP); } else { - setCutType(0x25); + setCutType(CUT_TYPE_DASH_LEFT); } mRunCutComboCount = 1; - setFacePriTexture(FTANM_UNK_13); + setFacePriTexture(FTANM_CUTDL); } else { - setUpperAnimeParam(0x81, UPPER_2, &mpHIO->mCut.mCutDashRight.m.mCutAnm); + setUpperAnimeParam(dRes_ID_ALANM_BCK_CUTDR_e, UPPER_2, &mpHIO->mCut.mCutDashRight.m.mCutAnm); if (checkBoardRide()) { - setCutType(12); + setCutType(CUT_TYPE_DASH_RIGHT_BOARD); } else if (mProcID == PROC_SIDESTEP) { - setCutType(0x11); + setCutType(CUT_TYPE_DASH_RIGHT_SIDESTEP); } else { - setCutType(0x26); + setCutType(CUT_TYPE_DASH_RIGHT); } - setFacePriTexture(FTANM_UNK_14); + setFacePriTexture(FTANM_CUTDR); } - setFacePriBck(0x104); + setFacePriBck(dRes_ID_ALANM_BCK_FCUTD_e); field_0x2f96 = 2; field_0x307e = mpHIO->mCut.m.mComboDuration; setSwordVoiceSe(Z2SE_AL_V_ATTACK_RUN); - setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_0, 7, 16, 1, 50.0f, 130.0f); + setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_0, 7, dCcD_SE_SWORD_RUN, 1, 50.0f, 130.0f); setCutWaterDropEffect(); field_0x2fb7 = 0; } @@ -474,22 +508,23 @@ void daAlink_c::setComboReserb() { } if (mComboCutCount != 4 && field_0x2fce == 0 && swordSwingTrigger()) { - onNoResetFlg2(FLG2_UNK_2); + onNoResetFlg2(FLG2_COMBO_RESERB); } } BOOL daAlink_c::checkComboReserb() { - return checkNoResetFlg2(FLG2_UNK_2) && !checkEventRun(); + return checkNoResetFlg2(FLG2_COMBO_RESERB) && !checkEventRun(); } int daAlink_c::commonCutAction() { if (mComboCutCount == 4) { - resetCombo(1); + resetCombo(TRUE); } - if (dComIfGp_getDoStatus() == 4) { - setDoStatus(0); + if (dComIfGp_getDoStatus() == BUTTON_STATUS_PUT_AWAY) { + setDoStatus(BUTTON_STATUS_NONE); } + mComboCutCount++; if (checkReinRide()) { @@ -504,7 +539,7 @@ int daAlink_c::commonCutAction() { } void daAlink_c::setSwordVoiceSe(u32 i_seID) { - if (!checkNoResetFlg0(FLG0_UNDERWATER)) { + if (!checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { voiceStart(i_seID); } } @@ -534,16 +569,85 @@ bool daAlink_c::checkCutTurnInputTrigger() { } int daAlink_c::checkCutAction() { - static int const atnNormalType1[5] = {4, 1, 1, 2, 0}; - static int const atnNormalType2[5] = {3, 0, 0, 1, 1}; - static int const atnNormalType3[5] = {4, 1, 1, 0, 0}; - static int const atnFinishType[5] = {2, 1, 0, 5, 1}; - static int const hitType[5] = {4, 0, 5, 0, 1}; - static int const hitFinishType[5] = {2, 1, 0, 5, 0}; - static int const normalType1[5] = {0, 2, 1, 2, 1}; - static int const normalType2[5] = {1, 1, 2, 1, 2}; - static int const normalType3[5] = {4, 0, 1, 2, 1}; - static int const finishType[5] = {2, 0, 0, 5, 1}; + static const int atnNormalType1[5] = { + /* Front */ CUT_NM_PARAM_STAB, + /* Back */ CUT_NM_PARAM_LEFT, + /* Left */ CUT_NM_PARAM_LEFT, + /* Right */ CUT_NM_PARAM_RIGHT, + /* Normal */ CUT_NM_PARAM_VERTICAL + }; + + static const int atnNormalType2[5] = { + /* Front */ CUT_NM_PARAM_COMBO_STAB, + /* Back */ CUT_NM_PARAM_VERTICAL, + /* Left */ CUT_NM_PARAM_VERTICAL, + /* Right */ CUT_NM_PARAM_LEFT, + /* Normal */ CUT_NM_PARAM_LEFT + }; + + static const int atnNormalType3[5] = { + /* Front */ CUT_NM_PARAM_STAB, + /* Back */ CUT_NM_PARAM_LEFT, + /* Left */ CUT_NM_PARAM_LEFT, + /* Right */ CUT_NM_PARAM_VERTICAL, + /* Normal */ CUT_NM_PARAM_VERTICAL + }; + + static const int atnFinishType[5] = { + /* Front */ CUT_FINISH_PARAM_STAB, + /* Back */ CUT_FINISH_PARAM_VERTICAL, + /* Left */ CUT_FINISH_PARAM_LEFT, + /* Right */ CUT_FINISH_PARAM_RIGHT, + /* Normal */ CUT_FINISH_PARAM_VERTICAL + }; + + static const int hitType[5] = { + /* Front */ CUT_NM_PARAM_STAB, + /* Back */ CUT_FINISH_PARAM_LEFT, + /* Left */ CUT_FINISH_PARAM_RIGHT, + /* Right */ CUT_FINISH_PARAM_LEFT, + /* Normal */ CUT_FINISH_PARAM_VERTICAL + }; + + static const int hitFinishType[5] = { + /* Front */ CUT_FINISH_PARAM_STAB, + /* Back */ CUT_FINISH_PARAM_VERTICAL, + /* Left */ CUT_FINISH_PARAM_LEFT, + /* Right */ CUT_FINISH_PARAM_RIGHT, + /* Normal */ CUT_FINISH_PARAM_LEFT + }; + + static const int normalType1[5] = { + /* Front */ CUT_NM_PARAM_VERTICAL, + /* Back */ CUT_NM_PARAM_RIGHT, + /* Left */ CUT_NM_PARAM_LEFT, + /* Right */ CUT_NM_PARAM_RIGHT, + /* Normal */ CUT_NM_PARAM_LEFT + }; + + static const int normalType2[5] = { + /* Front */ CUT_NM_PARAM_LEFT, + /* Back */ CUT_NM_PARAM_LEFT, + /* Left */ CUT_NM_PARAM_RIGHT, + /* Right */ CUT_NM_PARAM_LEFT, + /* Normal */ CUT_NM_PARAM_RIGHT + }; + + static const int normalType3[5] = { + /* Front */ CUT_NM_PARAM_STAB, + /* Back */ CUT_NM_PARAM_VERTICAL, + /* Left */ CUT_NM_PARAM_LEFT, + /* Right */ CUT_NM_PARAM_RIGHT, + /* Normal */ CUT_NM_PARAM_LEFT + }; + + static const int finishType[5] = { + /* Front */ CUT_FINISH_PARAM_STAB, + /* Back */ CUT_FINISH_PARAM_LEFT, + /* Left */ CUT_FINISH_PARAM_LEFT, + /* Right */ CUT_FINISH_PARAM_RIGHT, + /* Normal */ CUT_FINISH_PARAM_VERTICAL + }; if (commonCutAction()) { return 1; @@ -554,9 +658,9 @@ int daAlink_c::checkCutAction() { if (mComboCutCount == 4) { if (checkNoResetFlg0(FLG0_UNK_1000000)) { if (checkInputOnR() && (cutDir == DIR_FORWARD || cutDir == DIR_BACKWARD)) { - procCutFinishInit(3); + procCutFinishInit(CUT_FINISH_PARAM_MORTAL_DRAW_A); } else { - procCutFinishInit(4); + procCutFinishInit(CUT_FINISH_PARAM_MORTAL_DRAW_B); } } else if (checkNoResetFlg0(FLG0_UNK_8000)) { procCutFinishInit(hitFinishType[cutDir]); @@ -567,7 +671,7 @@ int daAlink_c::checkCutAction() { } } else if (mComboCutCount == 3) { if (checkNoResetFlg0(FLG0_UNK_8000)) { - if (cutDir == 0) { + if (cutDir == DIR_FORWARD) { procCutNormalInit(hitType[cutDir]); } else { procCutFinishInit(hitType[cutDir]); @@ -579,9 +683,9 @@ int daAlink_c::checkCutAction() { } } else if (mProcID == PROC_CUT_NORMAL && mProcVar1.field_0x300a != 4) { if (mProcVar1.field_0x300a == 2) { - procCutNormalInit(1); + procCutNormalInit(CUT_NM_PARAM_LEFT); } else { - procCutNormalInit(2); + procCutNormalInit(CUT_NM_PARAM_RIGHT); } } else if (checkAttentionLock()) { if (mComboCutCount == 1) { @@ -600,35 +704,38 @@ int daAlink_c::checkCutAction() { void daAlink_c::checkCutTurnCharge() { if (swordButton()) { - if (mProcVar5.field_0x3012 < 3) { - mProcVar5.field_0x3012++; + if (mProcVar5.mCutTurnChargeCheckTimer < 3) { + mProcVar5.mCutTurnChargeCheckTimer++; } else { onResetFlg0(RFLG0_UNK_40); } } else { - mProcVar5.field_0x3012 = 0; + mProcVar5.mCutTurnChargeCheckTimer = 0; } } int daAlink_c::getCutDirection() { s16 angle; + int direction; if (!checkInputOnR()) { - return DIR_NONE; - } - - if (mTargetedActor != NULL) { - angle = field_0x2fe2 - fopAcM_searchActorAngleY(this, mTargetedActor); + direction = DIR_NONE; } else { - angle = field_0x2fe2 - field_0x2fe6; + if (mTargetedActor != NULL) { + angle = mMoveAngle - fopAcM_searchActorAngleY(this, mTargetedActor); + } else { + angle = mMoveAngle - mPrevAngleY; + } + + direction = getDirectionFromAngle(angle); } - return getDirectionFromAngle(angle); + return direction; } BOOL daAlink_c::checkCutCancelNextMode(int param_0) { - f32 old_speed = mNormalSpeed; - u8 old_2f98 = field_0x2f98; + f32 prev_speed = mNormalSpeed; + u8 prev_2f98 = field_0x2f98; mNormalSpeed = 0.0f; field_0x2f98 = param_0; @@ -638,50 +745,62 @@ BOOL daAlink_c::checkCutCancelNextMode(int param_0) { return 1; } - mNormalSpeed = old_speed; - field_0x2f98 = old_2f98; + mNormalSpeed = prev_speed; + field_0x2f98 = prev_2f98; return 0; } BOOL daAlink_c::checkDoCutAction() { - // event flag 0x2A40: Learned Jump Strike - if (doButton() && (dComIfGs_isEventBit(0x2A40) || checkNoResetFlg3(FLG3_UNK_200))) { + fopAc_ac_c* enemy = mTargetedActor; + + if (doButton() && (dComIfGs_isEventBit(dSv_event_flag_c::F_0343) || checkNoResetFlg3(FLG3_TRANING_CUT_LARGE_JUMP))) { return procCutLargeJumpChargeInit(); } else if (checkDownAttackState()) { return procCutDownInit(); } else if (checkCutHeadState()) { return procCutHeadInit(); } else { - return procCutJumpInit(0); + return procCutJumpInit(FALSE); } } BOOL daAlink_c::checkCutBackState() { - // event flag 0x2902: Learned Backslice - return dComIfGs_isEventBit(0x2902) || checkNoResetFlg3(FL3_TRANING_CUT_BACK); + return dComIfGs_isEventBit(dSv_event_flag_c::F_0340) || checkNoResetFlg3(FLG3_TRANING_CUT_BACK); } BOOL daAlink_c::checkCutHeadState() { - fopEn_enemy_c* temp_r27 = (fopEn_enemy_c*)mTargetedActor; + fopEn_enemy_c* enemy = (fopEn_enemy_c*)mTargetedActor; - // event flag 0x2901: Learned Helm Splitter - return ((!checkBootsOrArmorHeavy() && (temp_r27 != NULL) && - (dComIfGs_isEventBit(0x2901) || checkNoResetFlg3(FLG3_UNK_40))) && - fopAcM_GetGroup(temp_r27) == 2) && - temp_r27->checkHeadLockFlg(); + return ((!checkBootsOrArmorHeavy() + && enemy != NULL + && (dComIfGs_isEventBit(dSv_event_flag_c::F_0341) + || checkNoResetFlg3(FLG3_TRANING_CUT_HEAD) + ) + ) + && fopAcM_GetGroup(enemy) == fopAc_ENEMY_e + ) + && enemy->checkHeadLockFlg(); } BOOL daAlink_c::checkDownAttackState() { fopEn_enemy_c* enemy = (fopEn_enemy_c*)mTargetedActor; - if (enemy != NULL && - (fopAcM_GetGroup(enemy) == 2 && enemy->checkDownFlg() && - ((!checkWolf() && (dComIfGs_isEventBit(0x2904) || checkNoResetFlg3(FLG3_UNK_10)) && - enemy->getDownPos().abs2(current.pos) < 640000.0f) || - (checkWolf() && - (fopAcM_GetName(mTargetedActor) == PROC_E_PO || - fopAcM_GetName(mTargetedActor) == PROC_E_HP) && - enemy->getDownPos().abs2(current.pos) < 640000.0f)))) + if (mTargetedActor != NULL + && (fopAcM_GetGroup(mTargetedActor) == fopAc_ENEMY_e + && enemy->checkDownFlg() + && ((!checkWolf() + && (dComIfGs_isEventBit(dSv_event_flag_c::F_0339) || checkNoResetFlg3(FLG3_TRANING_CUT_DOWN)) + && enemy->getDownPos().abs2(current.pos) < SQUARE(800.0f) + ) + || (checkWolf() + && (fopAcM_GetName(mTargetedActor) == PROC_E_PO + || fopAcM_GetName(mTargetedActor) == PROC_E_HP + ) + && enemy->getDownPos().abs2(current.pos) < SQUARE(800.0f) + ) + ) + ) + ) { return true; } @@ -690,23 +809,22 @@ BOOL daAlink_c::checkDownAttackState() { } BOOL daAlink_c::checkCutLargeTurnState() const { - // event flag 0x2A20: Learned Great Spin - return ((dComIfGs_isEventBit(0x2A20) || checkNoResetFlg3(FLG3_UNK_100)) && - dComIfGs_getLife() == dComIfGs_getMaxLifeGauge()) || - (mDemo.getDemoMode() == 0x24 && mDemo.getParam0() == 0x33); + return ((dComIfGs_isEventBit(dSv_event_flag_c::F_0344) || checkNoResetFlg3(FLG3_TRANING_CUT_LARGE_TURN)) + && dComIfGs_getLife() == dComIfGs_getMaxLifeGauge() + ) + || (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_36_e && mDemo.getParam0() == 0x33); } void daAlink_c::cancelCutCharge() { if (mComboCutCount == 4) { - resetCombo(1); + resetCombo(TRUE); checkNextAction(0); } else { mComboCutCount++; - if (mComboCutCount <= 3) { - procCutNormalInit(2); + procCutNormalInit(CUT_NM_PARAM_RIGHT); } else { - procCutFinishInit(1); + procCutFinishInit(CUT_FINISH_PARAM_VERTICAL); } } } @@ -728,15 +846,15 @@ void daAlink_c::checkCutAtnActorChange() { } } -void daAlink_c::setCutJumpSpeed(int i_airAt) { - if (checkNoResetFlg0(FLG0_UNDERWATER)) { +void daAlink_c::setCutJumpSpeed(BOOL i_isAirCut) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX; speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY; - } else if (checkHeavyStateOn(1, 1)) { + } else if (checkHeavyStateOn(TRUE, TRUE)) { speed.y *= 1.35f; } - if (mTargetedActor != NULL && !i_airAt) { + if (mTargetedActor != NULL && !i_isAirCut) { shape_angle.y = cLib_targetAngleY(¤t.pos, &mTargetedActor->eyePos); cXyz targetPos(mTargetedActor->eyePos.x - (cM_ssin(shape_angle.y) * 70.0f), mTargetedActor->eyePos.y + 50.0f, @@ -748,15 +866,15 @@ void daAlink_c::setCutJumpSpeed(int i_airAt) { targetPos.y = mTargetedActor->eyePos.y; } - f32 speed_y_delta = speed.y + gravity; // 23.6 - f32 inverse_gravity = 1.0f / gravity; // -0.29 + f32 speed_y_delta = speed.y + gravity; + f32 inverse_gravity = 1.0f / gravity; f32 fvar1 = targetPos.y - (current.pos.y - (inverse_gravity * (speed_y_delta * speed_y_delta) * 0.5f)); if (fvar1 > 0.0f) { fvar1 = 0.0f; } - f32 sqrt = JMAFastSqrt(fvar1 * 2.0f * inverse_gravity); - f32 speedDiv = sqrt - (speed_y_delta * inverse_gravity); + + f32 speedDiv = JMAFastSqrt(fvar1 * 2.0f * inverse_gravity) - (speed_y_delta * inverse_gravity); f32 squareDist = current.pos.absXZ(targetPos); if (squareDist > 500.0f) { @@ -766,50 +884,49 @@ void daAlink_c::setCutJumpSpeed(int i_airAt) { } } - int daAlink_c::procCutNormalInit(int i_type) { static daAlink_cutParamTbl const cutParamTable[5] = { { - daAlink_c::ANM_CUT_NM_VERTICAL, - 0x6F, - daAlink_c::CUT_TYPE_NM_VERTICAL, - 1, + ANM_CUT_NM_VERTICAL, + ANM_CUT_RECOIL_A, + CUT_TYPE_NM_VERTICAL, + dCcD_SE_SWORD, 0, 0, 6.0f, }, { - daAlink_c::ANM_CUT_NM_LEFT, - 0x6F, - daAlink_c::CUT_TYPE_NM_LEFT, - 1, + ANM_CUT_NM_LEFT, + ANM_CUT_RECOIL_A, + CUT_TYPE_NM_LEFT, + dCcD_SE_SWORD, 0, 0, 5.0f, }, { - daAlink_c::ANM_CUT_NM_RIGHT, - 0x6F, - daAlink_c::CUT_TYPE_NM_RIGHT, - 1, + ANM_CUT_NM_RIGHT, + ANM_CUT_RECOIL_A, + CUT_TYPE_NM_RIGHT, + dCcD_SE_SWORD, 0, 0, 5.0f, }, { - daAlink_c::ANM_CUT_COMBO_STAB, - 0x6F, - daAlink_c::CUT_TYPE_COMBO_STAB, - 14, + ANM_CUT_COMBO_STAB, + ANM_CUT_RECOIL_A, + CUT_TYPE_COMBO_STAB, + dCcD_SE_SWORD_STAB, 0, 0, 6.0f, }, { - daAlink_c::ANM_CUT_NM_STAB, - 0x70, - daAlink_c::CUT_TYPE_NM_STAB, - 14, + ANM_CUT_NM_STAB, + ANM_CUT_RECOIL_B, + CUT_TYPE_NM_STAB, + dCcD_SE_SWORD_STAB, 0, 0, 6.0f, @@ -819,16 +936,16 @@ int daAlink_c::procCutNormalInit(int i_type) { commonProcInit(PROC_CUT_NORMAL); setCutType(cutParams->m_cutType); - field_0x3198 = cutParams->field_0x4; + field_0x3198 = cutParams->m_recoilAnmID; const daAlinkHIO_cutNormal_c1* cutData; - if (i_type == 1) { + if (i_type == CUT_NM_PARAM_LEFT) { cutData = &mpHIO->mCut.mCutLeft.m; - } else if (i_type == 2) { + } else if (i_type == CUT_NM_PARAM_RIGHT) { cutData = &mpHIO->mCut.mCutRight.m; - } else if (i_type == 4) { + } else if (i_type == CUT_NM_PARAM_STAB) { cutData = &mpHIO->mCut.mCutRightStab.m; - } else if (i_type == 3) { + } else if (i_type == CUT_NM_PARAM_COMBO_STAB) { cutData = &mpHIO->mCut.mCutLeftStab.m; } else { cutData = &mpHIO->mCut.mCutVertical.m; @@ -838,14 +955,14 @@ int daAlink_c::procCutNormalInit(int i_type) { field_0x347c = cutData->mAttackEndFrame; field_0x3480 = cutData->mSpeed; - if (checkHeavyStateOn(1, 1)) { + if (checkHeavyStateOn(TRUE, TRUE)) { field_0x3480 *= mHeavySpeedMultiplier; } field_0x3484 = cutData->mCutAnm.mCancelFrame; f32 morf; - if (!checkZoraWearAbility() && checkNoResetFlg0(FLG0_UNDERWATER)) { + if (!checkZoraWearAbility() && checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { morf = cutParams->m_morf; } else { morf = cutData->mCutAnm.mInterpolation; @@ -856,7 +973,7 @@ int daAlink_c::procCutNormalInit(int i_type) { current.angle.y = shape_angle.y; if (!checkAttentionLock() && checkInputOnR()) { - mProcVar2.field_0x300c = field_0x2fe2; + mProcVar2.field_0x300c = mMoveAngle; } else { mProcVar2.field_0x300c = shape_angle.y; } @@ -871,7 +988,7 @@ int daAlink_c::procCutNormalInit(int i_type) { setSwordAtParam(dCcG_At_Spl_UNK_0, 1, cutParams->m_atSe, 2, mpHIO->mCut.m.mSwordLength, mpHIO->mCut.m.mSwordRadius); setSwordComboVoice(); - mProcVar5.field_0x3012 = 0; + mProcVar5.mCutTurnChargeCheckTimer = 0; dComIfGp_setPlayerStatus0(0, 0x8000); setCutWaterDropEffect(); @@ -903,21 +1020,19 @@ int daAlink_c::procCutNormal() { onEndResetFlg0(ERFLG0_UNK_8000000); field_0x2f99 = 4; - if (mProcVar3.field_0x300e != 0 && checkNoResetFlg2(FLG2_UNK_2)) { + if (mProcVar3.field_0x300e != 0 && checkNoResetFlg2(FLG2_COMBO_RESERB)) { int cutDir = getCutDirection(); - if ((cutDir == DIR_RIGHT && mCutType == CUT_TYPE_NM_LEFT && - frameCtrl->getFrame() > 12.0f) || - (cutDir == DIR_LEFT && mCutType == CUT_TYPE_NM_RIGHT && - frameCtrl->getFrame() > 12.0f)) + if ((cutDir == DIR_RIGHT && mCutType == CUT_TYPE_NM_LEFT && frameCtrl->getFrame() > 12.0f) || + (cutDir == DIR_LEFT && mCutType == CUT_TYPE_NM_RIGHT && frameCtrl->getFrame() > 12.0f)) { mProcVar1.field_0x300a = cutDir; } } - if (frameCtrl->checkAnmEnd()) { - resetCombo(1); + if (checkAnmEnd(frameCtrl)) { + resetCombo(TRUE); - if (mDemo.getDemoMode() == 0x24 || mDemo.getDemoMode() == 0x54) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_36_e || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_84_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextAction(0); @@ -926,7 +1041,7 @@ int daAlink_c::procCutNormal() { !checkCutCancelNextMode(3)) { if (frameCtrl->getFrame() > field_0x3484) { - resetCombo(1); + resetCombo(TRUE); } if (changeCutReverseProc((daAlink_ANM)field_0x3198)) { @@ -946,7 +1061,7 @@ int daAlink_c::procCutNormal() { current.angle.y = shape_angle.y; if (frameCtrl->getFrame() >= field_0x3478 && frameCtrl->getFrame() < field_0x347c) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(Z2SE_AL_SWORD_SWING_S); mNormalSpeed = field_0x3480; } @@ -956,18 +1071,18 @@ int daAlink_c::procCutNormal() { if (mCutType == CUT_TYPE_NM_LEFT) { if (frameCtrl->getFrame() >= 24.0f) { - field_0x2f92 = 0; + mLeftHandIndex = 0; } else if (frameCtrl->getFrame() >= 4.0f) { - field_0x2f92 = 100; + mLeftHandIndex = 100; } } else if (mCutType == CUT_TYPE_NM_RIGHT) { if (frameCtrl->getFrame() >= 26.0f) { - field_0x2f92 = 0; + mLeftHandIndex = 0; } else if (frameCtrl->getFrame() >= 4.0f) { - field_0x2f92 = 100; + mLeftHandIndex = 100; } } else if (frameCtrl->getFrame() >= 24.0f) { - field_0x2f92 = 0; + mLeftHandIndex = 0; } } @@ -977,55 +1092,55 @@ int daAlink_c::procCutNormal() { int daAlink_c::procCutFinishInit(int i_type) { static daAlink_cutParamTbl const cutParamTable[6] = { { - daAlink_c::ANM_CUT_FINISH_LEFT, - 0x6F, - daAlink_c::CUT_TYPE_FINISH_LEFT, - 1, + ANM_CUT_FINISH_LEFT, + ANM_CUT_RECOIL_A, + CUT_TYPE_FINISH_LEFT, + dCcD_SE_SWORD, 100, 100, 5.0f, }, { - daAlink_c::ANM_CUT_FINISH_VERTICAL, - 0x6F, - daAlink_c::CUT_TYPE_FINISH_VERTICAL, - 1, + ANM_CUT_FINISH_VERTICAL, + ANM_CUT_RECOIL_A, + CUT_TYPE_FINISH_VERTICAL, + dCcD_SE_SWORD, 100, 100, 8.0f, }, { - daAlink_c::ANM_CUT_FINISH_STAB, - 0x6F, - daAlink_c::CUT_TYPE_FINISH_STAB, - 14, + ANM_CUT_FINISH_STAB, + ANM_CUT_RECOIL_A, + CUT_TYPE_FINISH_STAB, + dCcD_SE_SWORD_STAB, 100, 100, 10.0f, }, { - daAlink_c::ANM_CUT_MORTAL_DRAW_A, - 0x6F, - daAlink_c::CUT_TYPE_MORTAL_DRAW_A, - 1, + ANM_CUT_MORTAL_DRAW_A, + ANM_CUT_RECOIL_A, + CUT_TYPE_MORTAL_DRAW_A, + dCcD_SE_SWORD, 5, 12, 10.0f, }, { - daAlink_c::ANM_CUT_MORTAL_DRAW_B, - 0x6F, - daAlink_c::CUT_TYPE_MORTAL_DRAW_B, - 1, + ANM_CUT_MORTAL_DRAW_B, + ANM_CUT_RECOIL_A, + CUT_TYPE_MORTAL_DRAW_B, + dCcD_SE_SWORD, 7, 14, 10.0f, }, { - daAlink_c::ANM_CUT_FINISH_RIGHT, - 0x6F, - daAlink_c::CUT_TYPE_FINISH_RIGHT, - 1, + ANM_CUT_FINISH_RIGHT, + ANM_CUT_RECOIL_A, + CUT_TYPE_FINISH_RIGHT, + dCcD_SE_SWORD, 100, 100, 10.0f, @@ -1034,55 +1149,55 @@ int daAlink_c::procCutFinishInit(int i_type) { const daAlinkHIO_cutFinish_c1* cutData; const daAlink_cutParamTbl* cutParams = &cutParamTable[i_type]; - BOOL front_roll = mProcID == PROC_FRONT_ROLL; + BOOL is_proc_frontRoll = mProcID == PROC_FRONT_ROLL; commonProcInit(PROC_CUT_FINISH); setCutType(cutParams->m_cutType); - field_0x3198 = cutParams->field_0x4; + field_0x3198 = cutParams->m_recoilAnmID; mProcVar2.field_0x300c = cutParams->field_0xa; mProcVar3.field_0x300e = cutParams->field_0xb; BOOL var_r30 = FALSE; - if (i_type == 0) { + if (i_type == CUT_FINISH_PARAM_LEFT) { cutData = &mpHIO->mCut.mCutFinishLeft.m; - } else if (i_type == 1) { + } else if (i_type == CUT_FINISH_PARAM_VERTICAL) { cutData = &mpHIO->mCut.mCutFinishVertical.m; - } else if (i_type == 2) { + } else if (i_type == CUT_FINISH_PARAM_STAB) { cutData = &mpHIO->mCut.mCutFinishStab.m; - } else if (i_type == 3) { + } else if (i_type == CUT_FINISH_PARAM_MORTAL_DRAW_A) { cutData = &mpHIO->mCut.mCutFinishSweep.m; var_r30 = TRUE; - } else if (i_type == 4) { + } else if (i_type == CUT_FINISH_PARAM_MORTAL_DRAW_B) { cutData = &mpHIO->mCut.mCutFinishSlash.m; var_r30 = TRUE; } else { cutData = &mpHIO->mCut.mCutFinishRight.m; } - f32 var_f31; - if (front_roll) { - var_f31 = cutData->mAttackStartFrame; + f32 start_frame; + if (is_proc_frontRoll) { + start_frame = cutData->mAttackStartFrame; } else if (mComboCutCount == 3) { - var_f31 = cutData->mComboStartFrame; + start_frame = cutData->mComboStartFrame; } else { - var_f31 = cutData->mCutAnm.mStartFrame; + start_frame = cutData->mCutAnm.mStartFrame; } f32 morf; - if (!checkZoraWearAbility() && checkNoResetFlg0(FLG0_UNDERWATER)) { + if (!checkZoraWearAbility() && checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { morf = cutParams->m_morf; } else { morf = cutData->mCutAnm.mInterpolation; } - setSingleAnime(cutParams->m_anmID, cutData->mCutAnm.mSpeed, var_f31, cutData->mCutAnm.mEndFrame, + setSingleAnime(cutParams->m_anmID, cutData->mCutAnm.mSpeed, start_frame, cutData->mCutAnm.mEndFrame, morf); field_0x3478 = cutData->mAttackStartFrame; field_0x347c = cutData->mAttackEndFrame; field_0x3480 = cutData->mSpeed; - if (checkHeavyStateOn(1, 1)) { + if (checkHeavyStateOn(TRUE, TRUE)) { field_0x3480 *= mHeavySpeedMultiplier; } @@ -1098,7 +1213,7 @@ int daAlink_c::procCutFinishInit(int i_type) { } else { field_0x3484 = cutData->mCutAnm.mCancelFrame; mProcVar0.field_0x3008 = cutData->mStopTime; - setSwordAtParam(dCcG_At_Spl_UNK_1, 3, cutParams->m_atSe, (var_r30 ? TRUE : FALSE) + 3, + setSwordAtParam(dCcG_At_Spl_UNK_1, 3, cutParams->m_atSe, var_r30 ? 4 : 3, mpHIO->mCut.m.mSwordLength, mpHIO->mCut.m.mSwordRadius); if (i_type == 2) { @@ -1121,7 +1236,7 @@ int daAlink_c::procCutFinishInit(int i_type) { field_0x2f99 = 13; } - mProcVar5.field_0x3012 = 0; + mProcVar5.mCutTurnChargeCheckTimer = 0; dComIfGp_setPlayerStatus0(0, 0x8000); setCutWaterDropEffect(); initCutAtnActorSearch(); @@ -1169,13 +1284,13 @@ int daAlink_c::procCutFinish() { } if (checkAnmEnd(frameCtrl_p)) { - resetCombo(1); + resetCombo(TRUE); if (mProcVar0.field_0x3008 > 0) { if (!(frameCtrl_p->getFrame() > field_0x3484) || !checkCutCancelNextMode(3)) { mProcVar0.field_0x3008--; } - } else if (mDemo.getDemoMode() == 0x24 || mDemo.getDemoMode() == 0x54) { + } else if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_36_e || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_84_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { mNormalSpeed = 0.0f; @@ -1184,13 +1299,20 @@ int daAlink_c::procCutFinish() { } } else if (!(frameCtrl_p->getFrame() > field_0x3484) || !checkCutCancelNextMode(3)) { if (frameCtrl_p->getFrame() > field_0x3484) { - resetCombo(1); + resetCombo(TRUE); } if (changeCutReverseProc((daAlink_ANM)field_0x3198)) { return 1; } + int var_r28; + if (mCutType == CUT_TYPE_MORTAL_DRAW_A || mCutType == CUT_TYPE_MORTAL_DRAW_B) { + var_r28 = 1; + } else { + var_r28 = 0; + } + setShapeAngleToAtnActor(mProcVar4.field_0x3010); if (cLib_distanceAngleS(getShapeAngleYAtnActor(), shape_angle.y) < 0x800) { @@ -1200,7 +1322,7 @@ int daAlink_c::procCutFinish() { current.angle.y = shape_angle.y; if (frameCtrl_p->getFrame() >= field_0x3478 && frameCtrl_p->getFrame() < field_0x347c) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(field_0x32d0); mNormalSpeed = field_0x3480; } @@ -1212,14 +1334,13 @@ int daAlink_c::procCutFinish() { return 1; } - int daAlink_c::procCutFinishJumpUpInit() { - BOOL side_roll = mProcID == PROC_SIDE_ROLL; + BOOL is_proc_sideRoll = mProcID == PROC_SIDE_ROLL; commonProcInit(PROC_CUT_FINISH_JUMP_UP); if (mEquipItem != 0x103) { - deleteEquipItem(0, 0); + deleteEquipItem(FALSE, FALSE); setSwordModel(); } @@ -1227,14 +1348,14 @@ int daAlink_c::procCutFinishJumpUpInit() { speed.y = mpHIO->mCut.mCutFinishJumpUppercut.m.mSpeedV; mNormalSpeed = mpHIO->mCut.mCutFinishJumpUppercut.m.mSpeedH; - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX; speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY; - } else if (checkHeavyStateOn(1, 1)) { + } else if (checkHeavyStateOn(TRUE, TRUE)) { speed.y *= 1.5f; } - if (side_roll) { + if (is_proc_sideRoll) { if (field_0x2f98 == 2) { current.angle.y = shape_angle.y + 0x4000; } else { @@ -1245,13 +1366,13 @@ int daAlink_c::procCutFinishJumpUpInit() { } field_0x307e = mpHIO->mCut.m.mComboDuration; - f32 var_f31 = mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mStartFrame; + f32 start_frame = mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mStartFrame; - setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3, + setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, dCcD_SE_SWORD, 3, mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackRadius, 10.0f); field_0x32cc = Z2SE_AL_SWORD_SWING_L; - setSingleAnime(ANM_CUT_TWIRL, mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mSpeed, var_f31, + setSingleAnime(ANM_CUT_TWIRL, mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mSpeed, start_frame, mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mEndFrame, mpHIO->mCut.mCutFinishJumpUppercut.m.mCutAnm.mInterpolation); setSwordVoiceSe(Z2SE_AL_V_SOTOMO_ATK); @@ -1271,14 +1392,14 @@ int daAlink_c::procCutFinishJumpUp() { } if (frameCtrl->getFrame() >= 3.0f) { - field_0x2f92 = 100; + mLeftHandIndex = 100; } if (mLinkAcch.ChkGroundHit()) { return procCutFinishJumpUpLandInit(); } - if (mDemo.getDemoMode() != 0x52 && + if (mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_82_e && current.pos.y < mLastJumpPos.y - mpHIO->mCut.mCutFinishJumpUppercut.m.mFallHeight) { return procFallInit(2, mpHIO->mCut.mCutFinishJumpUppercut.m.mFallInterpolation); @@ -1287,7 +1408,7 @@ int daAlink_c::procCutFinishJumpUp() { if (frameCtrl->getFrame() >= mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackStartFrame && frameCtrl->getFrame() < mpHIO->mCut.mCutFinishJumpUppercut.m.mAttackEndFrame) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(field_0x32cc); } @@ -1317,7 +1438,7 @@ int daAlink_c::procCutFinishJumpUpLandInit() { mProcVar0.field_0x3008 = mpHIO->mCut.mCutFinishJumpUppercut.m.mStopTime; } - mProcVar5.field_0x3012 = 0; + mProcVar5.mCutTurnChargeCheckTimer = 0; field_0x3588 = l_halfAtnWaitBaseAnime; initCutAtnActorSearch(); return 1; @@ -1336,8 +1457,8 @@ int daAlink_c::procCutFinishJumpUpLand() { field_0x2f99 = 4; checkCutAtnActorChange(); - if (frameCtrl->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x52) { + if (checkAnmEnd(frameCtrl)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_82_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else if (mProcVar0.field_0x3008 > 0) { if (!(frameCtrl->getFrame() > field_0x3484) || !checkCutCancelNextMode(3)) { @@ -1350,7 +1471,7 @@ int daAlink_c::procCutFinishJumpUpLand() { } } else if (!(frameCtrl->getFrame() > field_0x3484) || !checkCutCancelNextMode(3)) { if (frameCtrl->getFrame() > field_0x3484) { - resetCombo(1); + resetCombo(TRUE); } setShapeAngleToAtnActor(mProcVar4.field_0x3010); @@ -1362,7 +1483,7 @@ int daAlink_c::procCutFinishJumpUpLand() { current.angle.y = shape_angle.y; if (frameCtrl->getFrame() >= 9.0f) { - field_0x2f92 = 0; + mLeftHandIndex = 0; } } @@ -1394,19 +1515,16 @@ int daAlink_c::procCutReverseInit(daAlink_c::daAlink_ANM i_anmID) { mNormalSpeed = mpHIO->mCut.m.mRecoilSpeed; current.angle.y = shape_angle.y - -0x8000; field_0x307e = 0; - mProcVar5.field_0x3012 = 0; + mProcVar5.mCutTurnChargeCheckTimer = 0; - int temp_r3; - if (mCutType == CUT_TYPE_MORTAL_DRAW_A || mCutType == CUT_TYPE_MORTAL_DRAW_B || - mCutType == CUT_TYPE_JUMP) - { - temp_r3 = 5; + int vibmode; + if (mCutType == CUT_TYPE_MORTAL_DRAW_A || mCutType == CUT_TYPE_MORTAL_DRAW_B || mCutType == CUT_TYPE_JUMP) { + vibmode = VIBMODE_S_POWER5; } else { - temp_r3 = 3; + vibmode = VIBMODE_S_POWER3; } - f32 tmp_0 = 0.0f; - dComIfGp_getVibration().StartShock(temp_r3, 31, cXyz(tmp_0, 1.0f, tmp_0)); + dComIfGp_getVibration().StartShock(vibmode, 31, cXyz(0.0f, 1.0f, 0.0f)); return 1; } @@ -1427,7 +1545,7 @@ int daAlink_c::procCutReverse() { setUpperGuardAnime(-1.0f); } - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { current.angle.y = shape_angle.y; checkNextAction(0); } else if (frameCtrl->getFrame() > field_0x3478) { @@ -1441,11 +1559,11 @@ int daAlink_c::procCutReverse() { return 1; } -int daAlink_c::procCutJumpInit(int i_airCut) { +int daAlink_c::procCutJumpInit(BOOL i_isAirCut) { commonProcInit(PROC_CUT_JUMP); setSingleAnimeParam(ANM_CUT_JUMP, &mpHIO->mCut.mCutJump.m.mCutAnm); - if (i_airCut) { + if (i_isAirCut) { mNormalSpeed = mpHIO->mCut.mCutJump.m.mAirJumpSpeedH; speed.y = mpHIO->mCut.mCutJump.m.mAirJumpSpeedV; } else { @@ -1453,9 +1571,9 @@ int daAlink_c::procCutJumpInit(int i_airCut) { speed.y = mpHIO->mCut.mCutJump.m.mBaseJumpSpeedV; } - setCutJumpSpeed(i_airCut); + setCutJumpSpeed(i_isAirCut); current.angle.y = shape_angle.y; - setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, mpHIO->mCut.m.mSwordLength, + setSwordAtParam(dCcG_At_Spl_UNK_1, 3, dCcD_SE_SWORD, 3, mpHIO->mCut.m.mSwordLength, mpHIO->mCut.m.mSwordRadius); setCutType(CUT_TYPE_JUMP); setSwordComboVoice(); @@ -1465,12 +1583,12 @@ int daAlink_c::procCutJumpInit(int i_airCut) { } int daAlink_c::procCutJump() { + daPy_frameCtrl_c* framectrl = mUnderFrameCtrl; + if (current.angle.y == shape_angle.y && changeCutReverseProc(ANM_CUT_JUMP)) { current.angle.y += 0x8000; mNormalSpeed = 27.0f; - - f32 tmp_0 = 0.0f; - dComIfGp_getVibration().StartShock(5, 31, cXyz(tmp_0, 1.0f, tmp_0)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER5, 31, cXyz(0.0f, 1.0f, 0.0f)); } else if (current.angle.y != shape_angle.y) { cLib_chaseF(&mNormalSpeed, 5.0f, 1.0f); } @@ -1481,8 +1599,8 @@ int daAlink_c::procCutJump() { if (mLinkAcch.ChkGroundHit()) { procCutJumpLandInit(field_0x3198); - } else if (mUnderFrameCtrl[0].getFrame() >= mpHIO->mCut.mCutJump.m.mStartAttackFrame) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + } else if (framectrl->getFrame() >= mpHIO->mCut.mCutJump.m.mStartAttackFrame) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(Z2SE_AL_SWORD_SWING_L); } @@ -1497,15 +1615,15 @@ int daAlink_c::procCutJumpLandInit(int param_0) { checkCutLandDamage(); setSingleAnimeParam(ANM_CUT_JUMP_LAND, &mpHIO->mCut.mCutJump.m.mLandAnm); - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { field_0x2060->initOldFrameMorf(5.0f * mpHIO->mCut.mCutJump.m.mLandAnm.mInterpolation, 0, 0x23); } - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(Z2SE_AL_SWORD_SWING_L); m_swordBlur.initBlur(0.0f, 0, &mSwordTopPos, &field_0x3498, &field_0x34a4); - setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, mpHIO->mCut.m.mSwordLength, + setSwordAtParam(dCcG_At_Spl_UNK_1, 3, dCcD_SE_SWORD, 3, mpHIO->mCut.m.mSwordLength, mpHIO->mCut.m.mSwordRadius); } @@ -1540,7 +1658,7 @@ int daAlink_c::procCutJumpLand() { field_0x3198 = getCutTurnDirection(); } - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextAction(0); } else if (frameCtrl->getFrame() > mpHIO->mCut.mCutJump.m.mJumpSpinDelay && field_0x3198 != 2) { @@ -1573,15 +1691,15 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) { param_1 = getCutTurnDirection(); } - f32 var_f31; + f32 start_frame; if (param_1 == 1) { anmID = ANM_CUT_TURN_RIGHT; anm_data = &cutData->mRightTurnAnm; if (param_0) { - var_f31 = cutData->mRightTurnInputStartFrame; + start_frame = cutData->mRightTurnInputStartFrame; } else { - var_f31 = anm_data->mStartFrame; + start_frame = anm_data->mStartFrame; } field_0x3484 = cutData->mRightAttackStartFrame; @@ -1593,9 +1711,9 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) { anm_data = &cutData->mLeftTurnAnm; if (param_0) { - var_f31 = cutData->mLeftTurnInputStartFrame; + start_frame = cutData->mLeftTurnInputStartFrame; } else { - var_f31 = anm_data->mStartFrame; + start_frame = anm_data->mStartFrame; } field_0x3484 = cutData->mLeftAttackStartFrame; @@ -1605,20 +1723,20 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) { } field_0x3480 = anm_data->mCancelFrame; - resetCombo(1); + resetCombo(TRUE); f32 morf; - if (!checkZoraWearAbility() && checkNoResetFlg0(FLG0_UNDERWATER)) { + if (!checkZoraWearAbility() && checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { morf = 10.0f; } else { morf = anm_data->mInterpolation; } - setSingleAnime(anmID, anm_data->mSpeed, var_f31, anm_data->mEndFrame, morf); + setSingleAnime(anmID, anm_data->mSpeed, start_frame, anm_data->mEndFrame, morf); - int sp08; + int atp; if (checkCutLargeTurnState()) { - sp08 = 4; + atp = 4; field_0x32cc = Z2SE_AL_KAITEN_L_SLASH; setSwordVoiceSe(Z2SE_AL_V_KAITENGIRI_L); field_0x3478 = cutData->mLargeAttackRadius; @@ -1630,7 +1748,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) { setCutType(CUT_TYPE_LARGE_TURN_LEFT); } } else { - sp08 = 3; + atp = 3; field_0x32cc = Z2SE_AL_KAITENGIRI; setSwordVoiceSe(Z2SE_AL_V_KAITEN); @@ -1658,7 +1776,7 @@ int daAlink_c::procCutTurnInit(int param_0, int param_1) { mNormalSpeed = 0.0f; mProcVar5.field_0x3012 = 0; setCutWaterDropEffect(); - initCutTurnAt(field_0x347c, sp08); + initCutTurnAt(field_0x347c, atp); return 1; } @@ -1677,15 +1795,15 @@ int daAlink_c::procCutTurn() { } if (frameCtrl->getFrame() >= 44.0f) { - field_0x2f92 = 0; + mLeftHandIndex = 0; } - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { if (mProcVar0.field_0x3008 > 0) { if (!(frameCtrl->getFrame() > field_0x3480) || !checkCutCancelNextMode(3)) { mProcVar0.field_0x3008--; } - } else if (mDemo.getDemoMode() == 0x24) { + } else if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_36_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { field_0x2f98 = 3; @@ -1693,18 +1811,18 @@ int daAlink_c::procCutTurn() { } } else if (!(frameCtrl->getFrame() > field_0x3480) || !checkCutCancelNextMode(3)) { if (frameCtrl->getFrame() >= field_0x3484 && frameCtrl->getFrame() < field_0x3488) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(field_0x32cc); mNormalSpeed = mpHIO->mCut.mCutTurn.m.mSpeed; - if (checkHeavyStateOn(1, 1)) { + if (checkHeavyStateOn(TRUE, TRUE)) { mNormalSpeed *= mHeavySpeedMultiplier; } } onResetFlg0(RFLG0_UNK_2); cLib_chaseF(&field_0x347c, field_0x3478, field_0x348c); - field_0xFB8.SetR(field_0x347c); + mAtSph.SetR(field_0x347c); } } @@ -1713,7 +1831,7 @@ int daAlink_c::procCutTurn() { int daAlink_c::procCutTurnChargeInit() { if (mComboCutCount == 0 && checkDashAnime()) { - setUpperAnimeBase(0x83); + setUpperAnimeBase(dRes_ID_ALANM_BCK_CUTDTP_e); return 1; } @@ -1733,22 +1851,22 @@ int daAlink_c::procCutTurnCharge() { setSwordChargeVoiceSe(); field_0x307e = mpHIO->mCut.m.mComboDuration; - if (!swordButton() && mDemo.getDemoMode() != 0x5B) { + if (!swordButton() && mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_91_e) { if (mProcVar2.field_0x300c != 0) { checkCutAction(); } else { cancelCutCharge(); } - } else if (mUnderFrameCtrl[0].checkAnmEnd()) { + } else if (checkAnmEnd(&mUnderFrameCtrl[0])) { procCutTurnMoveInit(0); } else if (mUnderFrameCtrl[0].getFrame() >= 6.0f) { - field_0x2f92 = 100; + mLeftHandIndex = 100; } return 1; } -int daAlink_c::procCutTurnMoveInit(int param_0) { +int daAlink_c::procCutTurnMoveInit(BOOL param_0) { commonProcInit(PROC_CUT_TURN_MOVE); if (checkZeroSpeedF()) { @@ -1768,7 +1886,7 @@ int daAlink_c::procCutTurnMoveInit(int param_0) { setSingleAnimeBaseSpeed(ANM_CUT_TURN_CHARGE, 0.0f, mpHIO->mCut.mCutTurn.m.mMoveFBInterpolation); field_0x2f98 = 0; - field_0x594 = mpHIO->mCut.mCutTurn.m.mMaxSpeed; + mMaxSpeed = mpHIO->mCut.mCutTurn.m.mMaxSpeed; if (!checkWoodSwordEquip()) { simpleAnmPlay(m_nSwordBtk); @@ -1805,79 +1923,79 @@ int daAlink_c::procCutTurnMove() { if (mProcVar2.field_0x300c != 0) { if (checkDownAttackState() && !var_r4) { - setDoStatusEmphasys(0x30); + setDoStatusEmphasys(BUTTON_STATUS_FINISH); } else if (checkCutHeadState() && !var_r4) { - setDoStatusEmphasys(0x77); + setDoStatusEmphasys(BUTTON_STATUS_HELM_SPLITTER); } else { - setDoStatus(0x86); + setDoStatus(BUTTON_STATUS_UNK_134); } } else { field_0x307e = mpHIO->mCut.m.mComboDuration; } - if (mDemo.getDemoMode() == 0x5B || mDemo.getDemoMode() == 0x5C) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_91_e || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_92_e) { if (var_r4) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } } else if ((mProcVar2.field_0x300c == 0 && swordButton()) || (mProcVar2.field_0x300c != 0 && doButton())) { f32 var_f30 = 0.0f; + f32 var_f31 = 1.0f; onResetFlg0(RFLG0_UNK_10); if (checkInputOnR()) { - int direction = getDirectionFromAngle(field_0x2fe2 - field_0x2fe4); + int direction = getDirectionFromAngle(mMoveAngle - field_0x2fe4); daAlink_ANM anm = ANM_MAX; - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, 4, 12000, 0x2000); + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, 4, 12000, 0x2000); - f32 var_f31; + f32 morf; if (field_0x2f98 == 0 || field_0x2f98 == 1) { if (direction == DIR_LEFT || direction == DIR_RIGHT) { anm = ANM_CUT_TURN_CHARGE_MOVE; - var_f31 = mpHIO->mCut.mCutTurn.m.mMoveLRInterpolation; + morf = mpHIO->mCut.mCutTurn.m.mMoveLRInterpolation; mNormalSpeed *= 0.5f; } else if (field_0x2f98 != direction) { mNormalSpeed *= -0.5f; - current.angle.y = field_0x2fe2; + current.angle.y = mMoveAngle; } } else if (direction == DIR_FORWARD || direction == DIR_BACKWARD) { anm = ANM_CUT_TURN_CHARGE; - var_f31 = mpHIO->mCut.mCutTurn.m.mMoveFBInterpolation; + morf = mpHIO->mCut.mCutTurn.m.mMoveFBInterpolation; mNormalSpeed *= 0.5f; } else if (field_0x2f98 != direction) { mNormalSpeed *= -0.5f; - current.angle.y = field_0x2fe2; + current.angle.y = mMoveAngle; } if (field_0x2f98 == direction) { - var_f30 = mpHIO->mCut.mCutTurn.m.mChargeMoveAccel * field_0x33ac; + var_f30 = mpHIO->mCut.mCutTurn.m.mChargeMoveAccel * mMoveValue; } else { field_0x2f98 = direction; } if (anm != ANM_MAX) { - setSingleAnimeBaseSpeed(anm, 0.0f, var_f31); + setSingleAnimeBaseSpeed(anm, 0.0f, morf); } } setNormalSpeedF(var_f30, mpHIO->mCut.mCutTurn.m.mChargeMoveDecel); - f32 var_f31_2; if (field_0x2f98 == DIR_FORWARD) { - var_f31_2 = mpHIO->mCut.mCutTurn.m.mMoveFBAnmSpeed; + var_f31 = mpHIO->mCut.mCutTurn.m.mMoveFBAnmSpeed; } else if (field_0x2f98 == DIR_BACKWARD) { - var_f31_2 = -mpHIO->mCut.mCutTurn.m.mMoveFBAnmSpeed; + var_f31 = -mpHIO->mCut.mCutTurn.m.mMoveFBAnmSpeed; } else if (field_0x2f98 == DIR_RIGHT) { - var_f31_2 = -mpHIO->mCut.mCutTurn.m.mMoveLRAnmSpeed; + var_f31 = -mpHIO->mCut.mCutTurn.m.mMoveLRAnmSpeed; } else { - var_f31_2 = mpHIO->mCut.mCutTurn.m.mMoveLRAnmSpeed; + var_f31 = mpHIO->mCut.mCutTurn.m.mMoveLRAnmSpeed; } daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - f32 temp_f0 = mNormalSpeed / field_0x594; - setWaterInAnmRate(frameCtrl_p, temp_f0 * var_f31_2); + f32 temp_f0 = mNormalSpeed / mMaxSpeed; + setWaterInAnmRate(frameCtrl_p, temp_f0 * var_f31); - if (var_f31_2 >= 0.0f) { + if (var_f31 >= 0.0f) { frameCtrl_p->setLoop(frameCtrl_p->getStart()); } else { frameCtrl_p->setLoop(frameCtrl_p->getEnd()); @@ -1907,15 +2025,14 @@ int daAlink_c::procCutTurnMove() { return 1; } - int daAlink_c::procCutDownInit() { - if (mDemo.getDemoMode() == 0x51 && (mProcID == PROC_CUT_DOWN || mProcID == PROC_CUT_DOWN_LAND)) + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_CUT_DOWN_e && (mProcID == PROC_CUT_DOWN || mProcID == PROC_CUT_DOWN_LAND)) { return 1; } commonProcInit(PROC_CUT_DOWN); - resetCombo(1); + resetCombo(TRUE); cXyz sp2C; mProcVar3.field_0x300e = 0; @@ -1960,23 +2077,23 @@ int daAlink_c::procCutDownInit() { speed.y = mpHIO->mCut.mCutDown.m.mRecoverSpeedH; - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { mNormalSpeed *= mpHIO->mItem.mIronBoots.m.mWaterVelocityX; speed.y *= mpHIO->mItem.mIronBoots.m.mWaterVelocityY; - } else if (checkHeavyStateOn(1, 1)) { + } else if (checkHeavyStateOn(TRUE, TRUE)) { speed.y *= 1.5f; } - f32 var_f4 = speed.y + gravity; - f32 var_f5 = 1.0f / gravity; + f32 var_f30 = speed.y + gravity; + f32 var_f29 = 1.0f / gravity; - f32 temp_f1 = sp2C.y - (current.pos.y - var_f5 * (var_f4 * var_f4) * 0.5f); - if (temp_f1 > 0.0f) { - temp_f1 = 0.0f; + f32 var_f28 = sp2C.y - (current.pos.y - var_f29 * (var_f30 * var_f30) * 0.5f); + if (var_f28 > 0.0f) { + var_f28 = 0.0f; } - temp_f1 = JMAFastSqrt(temp_f1 * 2.0f * var_f5); - mNormalSpeed = var_f31 / (temp_f1 - var_f4 * var_f5); + f32 var_f27 = JMAFastSqrt(var_f28 * 2.0f * var_f29) - (var_f30 * var_f29); + mNormalSpeed = var_f31 / var_f27; mProcVar2.field_0x300c = 0; } @@ -1986,7 +2103,6 @@ int daAlink_c::procCutDownInit() { return 1; } - int daAlink_c::procCutDown() { if (mProcVar3.field_0x300e != 0) { return 1; @@ -1994,7 +2110,7 @@ int daAlink_c::procCutDown() { if (mLinkAcch.ChkGroundHit() && speed.y <= 0.0f) { procCutDownLandInit((fopEn_enemy_c*)field_0x280c.getActor()); - } else if (mUnderFrameCtrl[0].checkAnmEnd() && mProcVar2.field_0x300c == 0) { + } else if (checkAnmEnd(&mUnderFrameCtrl[0]) && mProcVar2.field_0x300c == 0) { mProcVar2.field_0x300c = 1; setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_FALL, &mpHIO->mCut.mCutDown.m.mFallAnm); } @@ -2008,8 +2124,8 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) { setSingleAnimeParam(ANM_CUT_FINISHING_BLOW_STAB, &mpHIO->mCut.mCutDown.m.mLandAnm); u32 var_r30; - if (mDemo.getDemoMode() == 0x51 || (i_enemy != NULL && i_enemy->checkDownFlg() && - mSwordTopPos.abs2XZ(i_enemy->getDownPos()) < 10000.0f && + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_CUT_DOWN_e || (i_enemy != NULL && i_enemy->checkDownFlg() && + mSwordTopPos.abs2XZ(i_enemy->getDownPos()) < SQUARE(100.0f) && fabsf(i_enemy->current.pos.y - current.pos.y) < 100.0f)) { mProcVar3.field_0x300e = 1; @@ -2046,7 +2162,6 @@ int daAlink_c::procCutDownLandInit(fopEn_enemy_c* i_enemy) { return 1; } - int daAlink_c::procCutDownLand() { if (checkGroundSpecialMode()) { return 1; @@ -2064,7 +2179,7 @@ int daAlink_c::procCutDownLand() { if (mProcVar0.field_0x3008 != 0) { mProcVar0.field_0x3008--; } else if (mProcVar3.field_0x300e != 0) { - if (mDemo.getDemoMode() == 0x51) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_CUT_DOWN_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { procBackJumpInit(1); @@ -2097,17 +2212,15 @@ int daAlink_c::procCutDownLand() { return 1; } - int daAlink_c::procCutHeadInit() { fopEn_enemy_c* enemy_p = (fopEn_enemy_c*)mTargetedActor; - if (mDemo.getDemoMode() == 0x53 && (mProcID == PROC_CUT_HEAD || mProcID == PROC_CUT_HEAD_LAND)) - { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_CUT_HEAD_e && (mProcID == PROC_CUT_HEAD || mProcID == PROC_CUT_HEAD_LAND)) { return 1; } commonProcInit(PROC_CUT_HEAD); - resetCombo(1); + resetCombo(TRUE); setSingleAnimeParam(ANM_CUT_HEAD_JUMP, &mpHIO->mCut.mCutHead.m.mJumpAnm); setSpecialGravity(mpHIO->mCut.mCutHead.m.mGravity, maxFallSpeed, 0); @@ -2137,9 +2250,9 @@ int daAlink_c::procCutHeadInit() { shape_angle.y = current.angle.y; setSwordVoiceSe(Z2SE_AL_V_KABUTO_JUMP); - setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 3, mpHIO->mCut.mCutHead.m.mSwordLength, + setSwordAtParam(dCcG_At_Spl_UNK_1, 3, dCcD_SE_SWORD, 3, mpHIO->mCut.mCutHead.m.mSwordLength, mpHIO->mCut.mCutHead.m.mSwordRadius); - setCutType(5); + setCutType(CUT_TYPE_HEAD_JUMP); return 1; } @@ -2150,10 +2263,9 @@ int daAlink_c::procCutHead() { if (speed.y <= 0.0f) { setSingleAnimeParam(ANM_CUT_HEAD, &mpHIO->mCut.mCutHead.m.mCutAnm); - f32 tmp_0 = 0.0f; - mNormalSpeed = tmp_0; - speed.y = tmp_0; - setSpecialGravity(tmp_0, maxFallSpeed, 0); + mNormalSpeed = 0.0f; + speed.y = 0.0f; + setSpecialGravity(0.0f, maxFallSpeed, 0); mProcVar3.field_0x300e = 1; setCutWaterDropEffect(); setSwordVoiceSe(Z2SE_AL_V_KABUTO_ATK); @@ -2171,7 +2283,7 @@ int daAlink_c::procCutHead() { if (frameCtrl->getFrame() >= mpHIO->mCut.mCutHead.m.mAttackStartFrame && frameCtrl->getFrame() < mpHIO->mCut.mCutHead.m.mAttackEndFrame) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(Z2SE_AL_SWORD_SWING_L); } @@ -2198,8 +2310,8 @@ int daAlink_c::procCutHeadLand() { onEndResetFlg0(ERFLG0_UNK_8000000); daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - if (frameCtrl->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x53) { + if (checkAnmEnd(frameCtrl)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_CUT_HEAD_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextAction(0); @@ -2226,18 +2338,18 @@ int daAlink_c::procCutLargeJumpCharge() { } if (checkDownAttackState()) { - setDoStatusEmphasys(0x30); + setDoStatusEmphasys(BUTTON_STATUS_FINISH); } else if (checkCutHeadState()) { - setDoStatusEmphasys(0x77); + setDoStatusEmphasys(BUTTON_STATUS_HELM_SPLITTER); } else { - setDoStatus(0x86); + setDoStatus(BUTTON_STATUS_UNK_134); } setSwordChargeVoiceSe(); - if (!doButton() && mDemo.getDemoMode() != 0x5C) { + if (!doButton() && mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_92_e) { checkDoCutAction(); - } else if (mUnderFrameCtrl[0].checkAnmEnd()) { + } else if (checkAnmEnd(&mUnderFrameCtrl[0])) { procCutTurnMoveInit(1); } @@ -2245,7 +2357,7 @@ int daAlink_c::procCutLargeJumpCharge() { } int daAlink_c::procCutLargeJumpInit() { - if (mDemo.getDemoMode() == 0x56 && + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_CUT_LARGE_JUMP_e && (mProcID == PROC_CUT_LARGE_JUMP || mProcID == PROC_CUT_LARGE_JUMP_LAND)) { return 1; @@ -2258,7 +2370,7 @@ int daAlink_c::procCutLargeJumpInit() { current.angle.y = shape_angle.y; mProcVar2.field_0x300c = 0; - setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, mpHIO->mCut.m.mSwordLength, + setSwordAtParam(dCcG_At_Spl_UNK_0, 1, dCcD_SE_SWORD, 2, mpHIO->mCut.m.mSwordLength, mpHIO->mCut.m.mSwordRadius); setCutType(CUT_TYPE_LARGE_JUMP_INIT); setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_1); @@ -2281,7 +2393,7 @@ int daAlink_c::procCutLargeJump() { } if (mProcVar2.field_0x300c == 0) { - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { field_0x2f99 = 12; setSingleAnimeParam(ANM_CUT_JUMP_LARGE, &mpHIO->mCut.mCutLargeJump.m.mCutAnm); mProcVar2.field_0x300c = 1; @@ -2295,13 +2407,13 @@ int daAlink_c::procCutLargeJump() { setJumpMode(); mNormalSpeed = mpHIO->mCut.mCutLargeJump.m.mCutSpeedH; speed.y = mpHIO->mCut.mCutLargeJump.m.mCutSpeedV; - setCutJumpSpeed(0); + setCutJumpSpeed(FALSE); } if (frameCtrl->getFrame() >= mpHIO->mCut.mCutLargeJump.m.mJumpAttackStartFrame && frameCtrl->getFrame() < mpHIO->mCut.mCutLargeJump.m.mJumpAttackEndFrame) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(Z2SE_AL_SWORD_SWING_S); } onResetFlg0(RFLG0_UNK_2); @@ -2312,7 +2424,7 @@ int daAlink_c::procCutLargeJump() { mProcVar3.field_0x300e--; if (mProcVar3.field_0x300e == 0) { - setSwordAtParam(dCcG_At_Spl_UNK_1, 3, 1, 4, mpHIO->mCut.m.mSwordLength, + setSwordAtParam(dCcG_At_Spl_UNK_1, 3, dCcD_SE_SWORD, 4, mpHIO->mCut.m.mSwordLength, mpHIO->mCut.m.mSwordRadius); setCutType(CUT_TYPE_LARGE_JUMP); } @@ -2321,7 +2433,7 @@ int daAlink_c::procCutLargeJump() { if (mLinkAcch.ChkGroundHit()) { procCutLargeJumpLandInit(field_0x3198); } else if (frameCtrl->getFrame() >= mpHIO->mCut.mCutLargeJump.m.mCutInitFrame) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(Z2SE_AL_SWORD_SWING_S); } @@ -2349,8 +2461,7 @@ int daAlink_c::procCutLargeJumpLandInit(int param_0) { mProcVar2.field_0x300c = 0; field_0x3198 = param_0; - f32 tmp_0 = 0.0f; - dComIfGp_getVibration().StartShock(3, 31, cXyz(tmp_0, 1.0f, tmp_0)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER3, 31, cXyz(0.0f, 1.0f, 0.0f)); setCutLargeJumpLandEffect(); seStartOnlyReverb(Z2SE_AL_JUMP_ATK_L_IMPACT); return 1; @@ -2366,8 +2477,8 @@ int daAlink_c::procCutLargeJumpLand() { field_0x3198 = getCutTurnDirection(); } - if (frameCtrl->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x56) { + if (checkAnmEnd(frameCtrl)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_CUT_LARGE_JUMP_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextAction(0); @@ -2390,7 +2501,7 @@ int daAlink_c::procCutLargeJumpLand() { } cLib_chaseF(&field_0x347c, field_0x3478, 20.0f); - field_0xFB8.SetR(field_0x347c); + mAtSph.SetR(field_0x347c); } } @@ -2407,7 +2518,7 @@ int daAlink_c::procSwordUnequipSpInit() { field_0x3588 = l_halfAtnWaitBaseAnime; field_0x3198 = 0; mProcVar2.field_0x300c = 0; - mProcVar3.field_0x300e = (0x1E - mDemo.getDemoMode()) != 0; + mProcVar3.field_0x300e = mDemo.getDemoMode() != daPy_demo_c::DEMO_SWORD_UNEQUIP_SP_e; mProcVar4.field_0x3010 = 0; return 1; @@ -2429,18 +2540,18 @@ int daAlink_c::procSwordUnequipSp() { onEndResetFlg0(ERFLG0_UNK_8000000); if (mProcVar2.field_0x300c != 0) { - onEndResetFlg1(ERFLG1_GANON_FINISH); + onEndResetFlg1(ERFLG1_SHIELD_BACKBONE); } - if (mProcVar4.field_0x3010 == 0 && mDemo.getDemoMode() == 0x1E && mDemo.getParam1() == 1) { + if (mProcVar4.field_0x3010 == 0 && mDemo.getDemoMode() == daPy_demo_c::DEMO_SWORD_UNEQUIP_SP_e && mDemo.getParam1() == 1) { mProcVar4.field_0x3010 = 1; - setFaceBasicBck(0x149); - setFaceBasicBtp(0x3E1); + setFaceBasicBck(dRes_ID_ALANM_BCK_FK_e); + setFaceBasicBtp(dRes_ID_ALANM_BTP_FMABA03_e); } - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { if (field_0x3198 != 0) { - if (mDemo.getDemoMode() == 0x1E) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_SWORD_UNEQUIP_SP_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextAction(0); @@ -2455,13 +2566,13 @@ int daAlink_c::procSwordUnequipSp() { !checkNextAction(1)) { if (frameCtrl->getFrame() >= 39.0f) { - field_0x2f92 = 1; + mLeftHandIndex = 1; } else if (frameCtrl->getFrame() >= 36.0f) { - field_0x2f93 = 6; + mRightHandIndex = 6; } else if (frameCtrl->getFrame() >= 26.0f) { - field_0x2f92 = 4; + mLeftHandIndex = 4; } else if (frameCtrl->getFrame() >= 13.0f) { - if (mDemo.getDemoMode() == 0x1E) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_SWORD_UNEQUIP_SP_e) { if (mDemo.getParam0() == 1) { frameCtrl->setFrame(13.0f); frameCtrl->setRate(0.0f); @@ -2470,24 +2581,24 @@ int daAlink_c::procSwordUnequipSp() { setWaterInAnmRate(frameCtrl, mpHIO->mCut.m.mFlourishEndAnmSpeed); } } - deleteEquipItem(0, 1); + deleteEquipItem(FALSE, TRUE); } else if (frameCtrl->checkPass(8.0f)) { - seStartSwordCut(0x20008); + seStartSwordCut(Z2SE_AL_FINISH_PUTIN); } } } else { if (frameCtrl->getFrame() >= 9.0f) { - field_0x2f93 = 0xFE; + mRightHandIndex = 0xFE; mProcVar2.field_0x300c = 1; - onEndResetFlg1(ERFLG1_GANON_FINISH); + onEndResetFlg1(ERFLG1_SHIELD_BACKBONE); } if (frameCtrl->checkPass(7.0f) || frameCtrl->checkPass(13.0f)) { - seStartSwordCut(0x20006); + seStartSwordCut(Z2SE_AL_FINISH_SWING1); } else if (frameCtrl->checkPass(28.0f) || frameCtrl->checkPass(38.0f) || frameCtrl->checkPass(48.0f)) { - seStartSwordCut(0x20007); + seStartSwordCut(Z2SE_AL_FINISH_SWING2); } } diff --git a/src/d/actor/d_a_alink_damage.inc b/src/d/actor/d_a_alink_damage.inc index d7e0018f58..bf21bf7f09 100644 --- a/src/d/actor/d_a_alink_damage.inc +++ b/src/d/actor/d_a_alink_damage.inc @@ -9,6 +9,10 @@ #include "d/actor/d_a_crod.h" #include "d/d_msg_object.h" +#if DEBUG +#include "d/d_s_menu.h" +#endif + s16 daAlink_c::getFreezeR() const { return mpHIO->mDamage.m.mFreezeR; } @@ -25,10 +29,10 @@ bool daAlink_c::checkMiddleBossGoronRoom() { return checkStageName("D_MN04B"); } -void daAlink_c::setDkCaught(fopAc_ac_c* param_0) { +void daAlink_c::setDkCaught(fopAc_ac_c* i_dkActor) { if (!checkNoResetFlg1(FLG1_DK_CAUGHT)) { onNoResetFlg1(FLG1_DK_CAUGHT); - field_0x28f8 = fopAcM_GetID(param_0); + field_0x28f8 = fopAcM_GetID(i_dkActor); } } @@ -37,15 +41,15 @@ void daAlink_c::freezeTimerDamage() { mProcVar1.field_0x300a++; if (mProcVar1.field_0x300a % 45 == 0) { - setDamagePoint(1, 1, 0, 0); + setDamagePoint(1, TRUE, FALSE, 0); } if (escapeTrigger()) { - mProcVar0.field_0x3008 -= 2; + mProcVar0.field_0x3008 -= (s16)2; } if (checkInputOnR() && abs((s16)(mStickAngle - mPrevStickAngle)) > 0x1000) { - mProcVar0.field_0x3008 -= 2; + mProcVar0.field_0x3008 -= (s16)2; } if (mProcVar0.field_0x3008 < 0) { @@ -53,14 +57,14 @@ void daAlink_c::freezeTimerDamage() { } } -void daAlink_c::onPressedDamage(cXyz const& param_0, s16 param_1) { +void daAlink_c::onPressedDamage(const cXyz& param_0, s16 param_1) { onNoResetFlg2(FLG2_PRESSED_DAMAGE); field_0x3104 = param_1; field_0x3744 = param_0; } BOOL daAlink_c::checkNoLandDamageSlidePolygon() { - if (field_0x2fbb == 3) { + if (mGndPolyAtt0 == 3) { return true; } @@ -76,14 +80,12 @@ BOOL daAlink_c::checkNoLandDamageSlidePolygon() { return false; } - void daAlink_c::checkCutLandDamage() { if (!checkEventRun()) { - f32 var_f31 = (mFallHeight - current.pos.y) * 0.0099999998f; + f32 fall_amount = (mFallHeight - current.pos.y) * 0.0099999998f; - if (var_f31 >= mpHIO->mDamage.mDamFall.m.mSmallDmgHeight && !checkNoLandDamageSlidePolygon()) - { - if (var_f31 >= mpHIO->mDamage.mDamFall.m.mBigDmgHeight) { + if (fall_amount >= mpHIO->mDamage.mDamFall.m.mSmallDmgHeight && !checkNoLandDamageSlidePolygon()) { + if (fall_amount >= mpHIO->mDamage.mDamFall.m.mBigDmgHeight) { setLandDamagePoint(8); } else { setLandDamagePoint(4); @@ -103,7 +105,7 @@ BOOL daAlink_c::checkCaughtEscapeCutTurn() { } if (mEquipItem != 0x103) { - deleteEquipItem(0, 0); + deleteEquipItem(FALSE, FALSE); setSwordModel(); } @@ -139,7 +141,7 @@ bool daAlink_c::setThrowDamage(s16 param_0, f32 param_1, f32 param_2, int param_ return true; } -f32 daAlink_c::damageMagnification(int i_checkZoraMag, int param_1) { +f32 daAlink_c::damageMagnification(BOOL i_checkZoraMag, int param_1) { f32 base_mag; if (param_1 == 0 && checkNoResetFlg3(FLG3_UNK_40000000) && @@ -161,7 +163,7 @@ f32 daAlink_c::damageMagnification(int i_checkZoraMag, int param_1) { return base_mag; } -int daAlink_c::setDamagePoint(int i_dmgAmount, int i_checkZoraMag, int i_setDmgTimer, int param_3) { +int daAlink_c::setDamagePoint(int i_dmgAmount, BOOL i_checkZoraMag, BOOL i_setDmgTimer, int param_3) { if (i_dmgAmount <= 0) { dComIfGp_setItemLifeCount(-i_dmgAmount, 0); return 0; @@ -179,7 +181,11 @@ int daAlink_c::setDamagePoint(int i_dmgAmount, int i_checkZoraMag, int i_setDmgT if (checkMagicArmorNoDamage()) { dComIfGp_setItemRupeeCount(-i_dmgAmount * 10); - } else { + } else + #if DEBUG + if (!mpHIO->mDamage.m.mInvincible && g_debugHpMode == 0) + #endif + { dComIfGp_setItemLifeCount(-i_dmgAmount, 0); } @@ -195,59 +201,60 @@ int daAlink_c::setDamagePoint(int i_dmgAmount, int i_checkZoraMag, int i_setDmgT return 0; } -void daAlink_c::setDamagePointNormal(int i_dmgAmount) { - setDamagePoint(i_dmgAmount, FALSE, TRUE, 0); +int daAlink_c::setDamagePointNormal(int i_dmgAmount) { + return setDamagePoint(i_dmgAmount, FALSE, TRUE, 0); } -void daAlink_c::setLandDamagePoint(int i_dmgAmount) { +int daAlink_c::setLandDamagePoint(int i_dmgAmount) { onEndResetFlg2(ERFLG2_UNK_40); - setDamagePoint(i_dmgAmount, FALSE, TRUE, 0); + int rt = setDamagePoint(i_dmgAmount, FALSE, TRUE, 0); offEndResetFlg2(ERFLG2_UNK_40); + return rt; } cXyz* daAlink_c::getDamageVec(dCcD_GObjInf* i_hitObj) { - cXyz* vec = i_hitObj->GetTgRVecP(); - cXyz sp40; + cXyz* tgRvec = i_hitObj->GetTgRVecP(); + cXyz newVec; - f32 var_f31 = vec->abs2XZ(); + f32 vec_xz2 = tgRvec->abs2XZ(); if (checkResetFlg1(RFLG1_UNK_2)) { - sp40.set(cM_ssin(shape_angle.y) * -10.0f, 0.0f, cM_scos(shape_angle.y) * -10.0f); - i_hitObj->SetTgRVec(sp40); - } else if (var_f31 < 0.1f) { + newVec.set(cM_ssin(shape_angle.y) * -10.0f, 0.0f, cM_scos(shape_angle.y) * -10.0f); + i_hitObj->SetTgRVec(newVec); + } else if (vec_xz2 < 0.1f) { if (i_hitObj->GetTgHitAc() != NULL) { - sp40 = current.pos - i_hitObj->GetTgHitAc()->current.pos; + newVec = current.pos - i_hitObj->GetTgHitAc()->current.pos; } else { - sp40 = current.pos - *i_hitObj->GetTgHitPosP(); + newVec = current.pos - *i_hitObj->GetTgHitPosP(); } - var_f31 = sp40.abs2(); - if (var_f31 < 0.1f) { - sp40.x = cM_ssin(shape_angle.y) * -10.0f; - sp40.y = 0.0f; - sp40.z = cM_scos(shape_angle.y) * -10.0f; + vec_xz2 = newVec.abs2(); + if (vec_xz2 < 0.1f) { + newVec.x = cM_ssin(shape_angle.y) * -10.0f; + newVec.y = 0.0f; + newVec.z = cM_scos(shape_angle.y) * -10.0f; } else { - sp40 *= 10.0f / JMAFastSqrt(var_f31); + newVec *= 10.0f / JMAFastSqrt(vec_xz2); } - i_hitObj->SetTgRVec(sp40); + i_hitObj->SetTgRVec(newVec); } - multVecMagneBootInvMtx(vec); - return vec; + multVecMagneBootInvMtx(tgRvec); + return tgRvec; } void daAlink_c::setDashDamage() { - setUpperAnimeParam(0xAD, UPPER_2, &mpHIO->mDamage.m.mDashDmgAnm); - setFacePriBck(0x121); - setFacePriTexture(FTANM_UNK_27); + setUpperAnimeParam(dRes_ID_ALANM_BCK_DAMD_e, UPPER_2, &mpHIO->mDamage.m.mDashDmgAnm); + setFacePriBck(dRes_ID_ALANM_BCK_FDAM_e); + setFacePriTexture(FTANM_B_A); voiceStart(Z2SE_AL_V_DAMAGE_S); seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL); freeGrabItem(); } BOOL daAlink_c::checkIcePolygonDamage(cBgS_PolyInfo* i_poly) { - if (dComIfG_Bgsp().GetPolyAtt0(*i_poly) == 8 && dKy_pol_argument_get(i_poly) & 0x60) { + if (dComIfG_Bgsp().GetPolyAtt0(*i_poly) == 8 && (dKy_pol_argument_get(i_poly) & 0x60)) { return TRUE; } @@ -282,14 +289,26 @@ int daAlink_c::checkPolyDamage() { } } - if (!checkBoardRide() && ((checkWaterPolygonUnder() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr) && ((dKy_pol_argument_get(&mLinkAcch.m_wtr) & 0x60) || field_0x2fbc == 6)) || (checkModeFlg(0x40) && field_0x33bc < field_0x33b8 && -G_CM3D_F_INF != field_0x33b8 && ((field_0x2fc6 & 0x60) || field_0x2fc5 == 6) && (field_0x2fc5 != 6 || !(field_0x33b8 > field_0x33d8 + mpHIO->mBasic.m.mLavaDeathDepth))))) { + if (!checkBoardRide() + && + ((checkWaterPolygonUnder() + && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_wtr) + && ((dKy_pol_argument_get(&mLinkAcch.m_wtr) & 0x60) || field_0x2fbc == 6) + ) || (checkModeFlg(0x40) + && field_0x33bc < field_0x33b8 + && -G_CM3D_F_INF != field_0x33b8 + && ((field_0x2fc6 & 0x60) || field_0x2fc5 == 6) + && (field_0x2fc5 != 6 || !(field_0x33b8 > field_0x33d8 + mpHIO->mBasic.m.mLavaDeathDepth)) + ) + ) + ) { return 2; } if (mLinkAcch.ChkWallHit()) { dBgS_AcchCir* acch_cir = mAcchCir; - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 3; i++, acch_cir++) { if (acch_cir->ChkWallHit()) { if (dComIfG_Bgsp().ChkPolySafe(*acch_cir) && (dKy_pol_argument_get(acch_cir) & 0x60)) { var_r29 = 3; @@ -306,19 +325,16 @@ int daAlink_c::checkPolyDamage() { return var_r29; } } - acch_cir++; } } return field_0x2fca; } -BOOL daAlink_c::checkElecReturnDamage(dCcD_GObjInf& param_0, fopAc_ac_c** param_1) { - if (param_0.ChkAtHit() && param_0.GetAtHitGObj() != NULL) { - dCcD_GObjInf* gobj_p = (dCcD_GObjInf*)param_0.GetAtHitGObj(); - - if (gobj_p->GetTgSpl() == dCcG_Tg_Spl_UNK_1) { - *param_1 = param_0.GetAtHitAc(); +BOOL daAlink_c::checkElecReturnDamage(dCcD_GObjInf& i_obj, fopAc_ac_c** o_hitActor) { + if (i_obj.ChkAtHit() && i_obj.GetAtHitGObj() != NULL) { + if (((dCcD_GObjInf*)i_obj.GetAtHitGObj())->GetTgSpl() == dCcG_Tg_Spl_UNK_1) { + *o_hitActor = i_obj.GetAtHitAc(); return true; } } @@ -337,8 +353,8 @@ void daAlink_c::damageTimerCount() { offNoResetFlg1(FLG1_DK_CAUGHT); } - if (!checkDkCaught2Anime() && checkNoResetFlg0(FLG0_DK_CAUGHT)) { - offNoResetFlg0(FLG0_DK_CAUGHT); + if (!checkDkCaught2Anime() && checkNoResetFlg0(FLG0_DK_CAUGHT2)) { + offNoResetFlg0(FLG0_DK_CAUGHT2); } } else if (mDamageColorTime != 0) { mDamageColorTime--; @@ -349,16 +365,16 @@ void daAlink_c::damageTimerCount() { } } -bool daAlink_c::checkHugeAttack(int param_0) const { - return param_0 == 2 || param_0 == 7 || param_0 == 11 || param_0 == 14; +bool daAlink_c::checkHugeAttack(int i_atSpl) const { + return i_atSpl == 2 || i_atSpl == 7 || i_atSpl == 11 || i_atSpl == 14; } -bool daAlink_c::checkLargeAttack(int param_0) const { - return param_0 == 1 || param_0 == 6 || param_0 == 10 || param_0 == 13; +bool daAlink_c::checkLargeAttack(int i_atSpl) const { + return i_atSpl == 1 || i_atSpl == 6 || i_atSpl == 10 || i_atSpl == 13; } BOOL daAlink_c::checkDamageAction() { - s16 spE = mIceDamageWaitTimer; + s16 prev_iceDmgTimer = mIceDamageWaitTimer; mIceDamageWaitTimer = 0; u8 spA = field_0x2fca; @@ -394,12 +410,12 @@ BOOL daAlink_c::checkDamageAction() { offNoResetFlg0(FLG0_UNK_100000); } - return procCoLargeDamageInit(-3, 1, 0, 0, NULL, 0); + return procCoLargeDamageInit(-3, TRUE, 0, 0, NULL, 0); } if (checkEventRun()) { offNoResetFlg1(FLG1_DK_CAUGHT); - offNoResetFlg0(FLG0_DK_CAUGHT); + offNoResetFlg0(FLG0_DK_CAUGHT2); return 0; } @@ -413,7 +429,7 @@ BOOL daAlink_c::checkDamageAction() { } } - if (checkNoResetFlg0(FLG0_DK_CAUGHT)) { + if (checkNoResetFlg0(FLG0_DK_CAUGHT2)) { if ((!checkModeFlg(0x70C52)) && (!checkWolf()) && (!checkDkCaught2Anime())) { setUpperAnimeBase(getMainBckData(ANM_HORSE_WAIT_D_B)->m_underID); setFacePriAnime(ANM_HORSE_WAIT_D_B); @@ -425,7 +441,7 @@ BOOL daAlink_c::checkDamageAction() { } if (!checkDkCaught2Anime()) { - offNoResetFlg0(FLG0_DK_CAUGHT); + offNoResetFlg0(FLG0_DK_CAUGHT2); } } @@ -438,7 +454,7 @@ BOOL daAlink_c::checkDamageAction() { return commonFallInit(4); } - return procCoLargeDamageInit(-3, 1, 0, 0, NULL, 0); + return procCoLargeDamageInit(-3, TRUE, 0, 0, NULL, 0); } if (checkEndResetFlg1(ERFLG1_UNK_400)) { @@ -461,14 +477,14 @@ BOOL daAlink_c::checkDamageAction() { dCcD_GObjInf* var_r29 = NULL; for (int i = 0; i < 3; i++) { - if (field_0x850[i].ChkTgHit() && (field_0x2fb8 == 0 || (1 << i) == 0)) { - var_r29 = &field_0x850[i]; + if (mTgCyls[i].ChkTgHit() && (field_0x2fb8 == 0 || (1 << i) == 0)) { + var_r29 = &mTgCyls[i]; break; } } if (var_r29 == NULL && checkWolf()) { - var_r29 = &field_0xFB8; + var_r29 = &mAtSph; } if (checkEndResetFlg1(ERFLG1_UNK_8000) && checkWolf()) { @@ -478,24 +494,24 @@ BOOL daAlink_c::checkDamageAction() { BOOL armor_no_dmg = checkMagicArmorNoDamage(); fopAc_ac_c* sp30 = NULL; field_0x2fca = spA; - int sp2C = checkPolyDamage(); + int poly_dmg_flags = checkPolyDamage(); field_0x2fca = 0; - mIceDamageWaitTimer = spE; + mIceDamageWaitTimer = prev_iceDmgTimer; - if (sp2C & 0x80) { + if (poly_dmg_flags & 0x80) { mIceDamageWaitTimer++; if (mIceDamageWaitTimer < mpHIO->mDamage.m.mFreezeTime) { - sp2C = 0; + poly_dmg_flags = 0; } } else if (mIceDamageWaitTimer > 3) { - mIceDamageWaitTimer -= 3; + mIceDamageWaitTimer -= (s16)3; } else { mIceDamageWaitTimer = 0; } - if (sp2C != 0) { - int sp28 = (sp2C & 7); - setDamagePoint(1, sp2C & 0x80, TRUE, 0); + if (poly_dmg_flags != 0) { + int sp28 = (poly_dmg_flags & 7); + setDamagePoint(1, poly_dmg_flags & 0x80, TRUE, 0); if (checkWolf()) { mDamageTimer = mpHIO->mDamage.m.mWolfFloorInvincibleTime; @@ -503,7 +519,7 @@ BOOL daAlink_c::checkDamageAction() { } if (checkModeFlg(0x4000000)) { - dComIfGp_getVibration().StartShock(2, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER2, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); if (checkWolf()) { setWolfHeadDamage(); @@ -512,11 +528,11 @@ BOOL daAlink_c::checkDamageAction() { seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL); } } else { - if (!checkModeFlg(0x40000) && ((sp2C & 0x40) || (!mLinkAcch.ChkGroundHit() && (sp28 == 3 || sp28 == 4)))) { - dComIfGp_getVibration().StartShock(2, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + if (!checkModeFlg(0x40000) && ((poly_dmg_flags & 0x40) || (!mLinkAcch.ChkGroundHit() && (sp28 == 3 || sp28 == 4)))) { + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER2, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); int sp24; - if (sp2C & 0x80) { + if (poly_dmg_flags & 0x80) { sp24 = 1; } else { sp24 = 0; @@ -526,22 +542,22 @@ BOOL daAlink_c::checkDamageAction() { field_0x311e = shape_angle.y; } - return procCoLargeDamageInit(-5, 1, 0, 0, NULL, sp24); + return procCoLargeDamageInit(-5, TRUE, 0, 0, NULL, sp24); } - dComIfGp_getVibration().StartShock(2, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER2, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); if (checkWolf()) { if (checkModeFlg(0x40000)) { setWolfHeadDamage(); - } else if (sp2C & 0x80) { + } else if (poly_dmg_flags & 0x80) { return procWolfDamageInit(NULL); } else { return procCoPolyDamageInit(); } } else if (checkModeFlg(0x40000)) { return procSwimDamageInit(NULL); - } else if (sp2C & 0x80) { + } else if (poly_dmg_flags & 0x80) { return procDamageInit(NULL, 0); } else { return procCoPolyDamageInit(); @@ -550,8 +566,9 @@ BOOL daAlink_c::checkDamageAction() { } else if ((mEquipItem == 0x103 || (checkHookshotItem(mEquipItem) && !mAtCps[0].ChkAtSPrm(0x20))) && (checkElecReturnDamage(mAtCps[0], &sp30) || checkElecReturnDamage(mAtCps[1], &sp30) || checkElecReturnDamage(mAtCps[2], &sp30))) { setDamagePointNormal(2); onResetFlg1(RFLG1_UNK_2); - dComIfGp_getVibration().StartShock(4, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER4, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + var_r29 = mTgCyls; if (checkModeFlg(0x4000000)) { if (checkWolf()) { setWolfHeadDamage(); @@ -578,7 +595,7 @@ BOOL daAlink_c::checkDamageAction() { at_spl = tghit_gobj->GetAtSpl(); at_mtrl = tghit_gobj->GetAtMtrl(); } else { - at_spl = field_0x814.GetAtSpl(); + at_spl = mCcStts.GetAtSpl(); at_mtrl = dCcD_MTRL_NONE; } @@ -590,13 +607,13 @@ BOOL daAlink_c::checkDamageAction() { setGuardSe(var_r29); if (checkHugeAttack(at_spl)) { - dComIfGp_getVibration().StartShock(5, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER5, 1, cXyz(0.0f, 1.0f, 0.0f)); } else if (checkLargeAttack(at_spl)) { - dComIfGp_getVibration().StartShock(4, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER4, 1, cXyz(0.0f, 1.0f, 0.0f)); } else if (at_spl == 8) { - dComIfGp_getVibration().StartShock(2, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER2, 1, cXyz(0.0f, 1.0f, 0.0f)); } else { - dComIfGp_getVibration().StartShock(3, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER3, 1, cXyz(0.0f, 1.0f, 0.0f)); } if (!armor_no_dmg && at_mtrl == dCcD_MTRL_FIRE && checkWoodShieldEquip() && field_0x2fcb == 0 && !field_0x2e44.checkPassNum(15)) { @@ -628,7 +645,7 @@ BOOL daAlink_c::checkDamageAction() { } } } else { - int dmg = field_0x814.GetDmg(); + int dmg = mCcStts.GetDmg(); if (var_r29->ChkTgHit() && tghit_gobj != NULL && tghit_gobj->GetAtType() == AT_TYPE_BOMB) { if (checkNoResetFlg3(FLG3_UNK_40000000)) { dmg = 1; @@ -638,13 +655,13 @@ BOOL daAlink_c::checkDamageAction() { } if (at_mtrl == dCcD_MTRL_ELECTRIC) { - dComIfGp_getVibration().StartShock(4, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER4, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); } else if (checkHugeAttack(at_spl)) { - dComIfGp_getVibration().StartShock(8, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER8, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); } else if (checkLargeAttack(at_spl)) { - dComIfGp_getVibration().StartShock(4, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER4, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); } else { - dComIfGp_getVibration().StartShock(2, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER2, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); } setDamagePoint(dmg, at_mtrl == dCcD_MTRL_FIRE || at_mtrl == dCcD_MTRL_ICE, TRUE, 0); @@ -671,12 +688,12 @@ BOOL daAlink_c::checkDamageAction() { return procCoElecDamageInit(var_r29->GetTgHitAc(), var_r29, at_spl); } else if (checkReinRide()) { if (at_mtrl == dCcD_MTRL_ELECTRIC) { - return procCoLargeDamageInit(-1, 1, 0, 0, var_r29, 0); + return procCoLargeDamageInit(-1, TRUE, 0, 0, var_r29, 0); } if (!checkBoarSingleBattle() && (mProcID == PROC_HORSE_HANG || mProcID == PROC_BOAR_RUN || mProcID == PROC_HORSE_RUN || checkLargeAttack(at_spl) || checkHugeAttack(at_spl))) { setHorseZeldaDamage(); - procCoLargeDamageInit(-1, 1, 0, 0, var_r29, 0); + procCoLargeDamageInit(-1, TRUE, 0, 0, var_r29, 0); onModeFlg(0x2000); return 1; } @@ -700,7 +717,7 @@ BOOL daAlink_c::checkDamageAction() { } else if (dmg == 0 && !checkWolf() && (at_spl == 10 || at_spl == 11 || at_spl == 9) && mLinkAcch.ChkGroundHit() && !checkModeFlg(0x70C52)) { return procGuardBreakInit(); } else if (checkHugeAttack(at_spl)) { - return procCoLargeDamageInit(-1, 0, 0, 0, var_r29, 0); + return procCoLargeDamageInit(-1, FALSE, 0, 0, var_r29, 0); } else if (checkModeFlg(0x70C52) || checkLargeAttack(at_spl)) { if (checkModeFlg(0x10000) && !checkLargeAttack(at_spl)) { voiceStart(Z2SE_AL_V_DAMAGE_S); @@ -711,18 +728,18 @@ BOOL daAlink_c::checkDamageAction() { } if (at_spl == 8 && (mProcID == PROC_WOLF_ROPE_MOVE || mProcID == PROC_WOLF_ROPE_SUBJECTIVITY || mProcID == PROC_WOLF_ROPE_STAGGER)) { - cXyz* sp14 = getDamageVec(var_r29); - if ((s16)(sp14->atan2sX_Z() - shape_angle.y) >= 0) { + cXyz* dmg_vec = getDamageVec(var_r29); + if ((s16)(dmg_vec->atan2sX_Z() - shape_angle.y) >= 0) { return procWolfRopeHangInit(2); } return procWolfRopeHangInit(3); } - return procCoLargeDamageInit(-1, 1, 0, 0, var_r29, 0); + return procCoLargeDamageInit(-1, TRUE, 0, 0, var_r29, 0); } else if (!armor_no_dmg || at_mtrl == dCcD_MTRL_ICE) { if (checkDashAnime() && at_mtrl != dCcD_MTRL_ICE) { setDashDamage(); - } else if (mProcID == PROC_WOLF_MOVE && at_mtrl != dCcD_MTRL_ICE && mNormalSpeed > field_0x594 * 0.7f) { + } else if (mProcID == PROC_WOLF_MOVE && at_mtrl != dCcD_MTRL_ICE && mNormalSpeed > mMaxSpeed * 0.7f) { setWolfHeadDamage(); } else if (checkWolf()) { return procWolfDamageInit(var_r29); @@ -739,50 +756,50 @@ BOOL daAlink_c::checkDamageAction() { current.angle.y = horsep->getCowHitAngle(); if (checkBoarSingleBattle()) { - dComIfGp_getVibration().StartShock(8, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); - return procCoLargeDamageInit(-1, 0, 0, 0, NULL, 0); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER8, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + return procCoLargeDamageInit(-1, FALSE, 0, 0, NULL, 0); } - dComIfGp_getVibration().StartShock(4, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); - return procCoLargeDamageInit(-1, 1, 0, 0, NULL, 0); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER4, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + return procCoLargeDamageInit(-1, TRUE, 0, 0, NULL, 0); } } - field_0x814.ClrTg(); - field_0x814.ClrAt(); + mCcStts.ClrTg(); + mCcStts.ClrAt(); return checkWolfBarrierHitReverse(); } -int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) { - BOOL freeze_player; +int daAlink_c::procDamageInit(dCcD_GObjInf* i_tgObj, BOOL param_1) { + BOOL isFreezePlayer; - if (!param_1 && (param_0 == NULL || (param_0->GetTgHitGObj() != NULL && param_0->GetTgHitGObj()->GetAtMtrl() == dCcD_MTRL_ICE))) { - freeze_player = true; + if (!param_1 && (i_tgObj == NULL || (i_tgObj->GetTgHitGObj() != NULL && i_tgObj->GetTgHitGObj()->GetAtMtrl() == dCcD_MTRL_ICE))) { + isFreezePlayer = true; voiceStart(Z2SE_AL_V_DAMAGE_FREEZE); seStartOnlyReverb(Z2SE_AL_FREEZE); } else { seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL); - freeze_player = false; + isFreezePlayer = false; if (!param_1) { voiceStart(Z2SE_AL_V_DAMAGE_S); } } - if (checkIronBallWaitAnime() && !freeze_player && !param_1) { + if (checkIronBallWaitAnime() && !isFreezePlayer && !param_1) { return 1; } commonProcInit(PROC_DAMAGE); cXyz sp7C; - f32 var_f31; + f32 anm_speed; f32 var_f30 = cM_ssin(shape_angle.y); f32 var_f29 = cM_scos(shape_angle.y); cXyz* var_r29; - if (param_0 != NULL) { - var_r29 = getDamageVec(param_0); + if (i_tgObj != NULL) { + var_r29 = getDamageVec(i_tgObj); } else if (param_1) { s16 var_r24 = field_0x3102 + 0x8000; sp7C.set(cM_ssin(var_r24), 0.0f, cM_scos(var_r24)); @@ -794,24 +811,24 @@ int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) { } cXyz sp88(var_r29->z * -var_f30 + var_r29->x * var_f29, - var_r29->y, - var_r29->z * var_f29 + var_r29->x * var_f30); + var_r29->y, + var_r29->z * var_f29 + var_r29->x * var_f30); mProcVar2.field_0x300c = cLib_minMaxLimit(cM_atan2s(sp88.z, sp88.y), -mpHIO->mDamage.mDamNormal.m.mFrontBackBodyMaxAngle, mpHIO->mDamage.mDamNormal.m.mFrontBackBodyMaxAngle); mProcVar3.field_0x300e = cLib_minMaxLimit(cM_atan2s(sp88.x, -JMAFastSqrt(sp88.y * sp88.y + sp88.z * sp88.z)), -mpHIO->mDamage.mDamNormal.m.mLeftRightBodyMaxAngle, mpHIO->mDamage.mDamNormal.m.mLeftRightBodyMaxAngle); - if (freeze_player) { - var_f31 = 0.0f; + if (isFreezePlayer) { + anm_speed = 0.0f; } else if (mTargetedActor != NULL) { - var_f31 = mpHIO->mAtnMove.m.mWaitAnmSpeed; + anm_speed = mpHIO->mAtnMove.m.mWaitAnmSpeed; } else { - var_f31 = mpHIO->mNoActAtnMove.m.mWaitAnmSpeed; + anm_speed = mpHIO->mNoActAtnMove.m.mWaitAnmSpeed; } if (checkAtnLeftAnime()) { - setUnderAnime(0x1A, UNDER_2, var_f31, 0.0f, -1, -1.0f); + setUnderAnime(dRes_ID_ALANM_BCK_ATL_e, UNDER_2, anm_speed, 0.0f, -1, -1.0f); } else if (checkAtnRightAnime()) { - setUnderAnime(0x1C, UNDER_2, var_f31, 0.0f, -1, -1.0f); + setUnderAnime(dRes_ID_ALANM_BCK_ATR_e, UNDER_2, anm_speed, 0.0f, -1, -1.0f); } int direction = getDirectionFromAngle(cM_atan2s(-sp88.x, -sp88.z)); @@ -840,12 +857,12 @@ int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) { daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; field_0x347c = M_PI / (frame_ctrl->getEnd() - frame_ctrl->getStart()); - if (freeze_player) { + if (isFreezePlayer) { frame_ctrl->setRate(mpHIO->mDamage.mDamNormal.m.mIceDamageASpeed); frame_ctrl->setEnd(7); mNormalSpeed = 0.0f; mProcVar0.mIceFreezeTimer = 90; - onNoResetFlg1(FLG1_ICE_FREEZE); + onNoResetFlg1(FLG1_FREEZE_DAMAGE); } else { mProcVar0.mIceFreezeTimer = 0; } @@ -856,8 +873,7 @@ int daAlink_c::procDamageInit(dCcD_GObjInf* param_0, int param_1) { int daAlink_c::procDamage() { daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; - f32 var_f30 = frame_ctrl->getFrame() - frame_ctrl->getStart(); - f32 var_f31 = cM_fsin(field_0x347c * var_f30); + f32 var_f31 = cM_fsin(field_0x347c * (frame_ctrl->getFrame() - frame_ctrl->getStart())); mBodyAngle.x = mProcVar2.field_0x300c * var_f31; mBodyAngle.z = -mProcVar3.field_0x300e * var_f31; @@ -891,9 +907,9 @@ int daAlink_c::procDamage() { return 1; } -int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16 param_3, - dCcD_GObjInf* param_4, int param_5) { - u32 sp10 = checkReinRide(); +int daAlink_c::procCoLargeDamageInit(int i_type, BOOL i_isLargeDmg, s16 param_2, s16 param_3, + dCcD_GObjInf* i_hitObj, int param_5) { + u32 is_rein_ride = checkReinRide(); if (!commonProcInitNotSameProc(PROC_LARGE_DAMAGE)) { return 0; @@ -906,106 +922,107 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16 field_0x3480 = -1.0f; mFallVoiceInit = 0; - int var_r30; - if (param_0 == -3) { + int direction; + cXyz* dmg_vec; + if (i_type == -3) { current.angle.y = field_0x2ffe; - var_r30 = getDirectionFromAngle((current.angle.y - shape_angle.y)); + direction = getDirectionFromAngle((current.angle.y - shape_angle.y)); dComIfGp_getVibration().StartShock(6, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); setDamagePointNormal(field_0x318c); onNoResetFlg1(FLG1_THROW_DAMAGE); - } else if (param_0 == -4) { - var_r30 = 1; + } else if (i_type == -4) { + direction = DIR_BACKWARD; current.angle.y = shape_angle.y + 0x8000; - } else if (param_0 == -2) { - var_r30 = mDemo.getParam0(); + } else if (i_type == -2) { + direction = mDemo.getParam0(); - if (var_r30 == 0) { + if (direction == DIR_FORWARD) { current.angle.y = shape_angle.y; - } else if (var_r30 == 2) { + } else if (direction == DIR_LEFT) { current.angle.y = shape_angle.y + 0x4000; - } else if (var_r30 == 3) { + } else if (direction == DIR_RIGHT) { current.angle.y = shape_angle.y - 0x4000; } else { current.angle.y = shape_angle.y + 0x8000; } - } else if (param_0 == -5) { + } else if (i_type == -5) { if (param_5 == 1) { - onNoResetFlg1(FLG1_ICE_FREEZE); + onNoResetFlg1(FLG1_FREEZE_DAMAGE); } current.angle.y = field_0x311e; - var_r30 = getDirectionFromAngle((current.angle.y - shape_angle.y)); - } else if (param_0 == -1) { - if (param_4 != NULL) { - cXyz* temp_r3 = getDamageVec(param_4); - current.angle.y = temp_r3->atan2sX_Z(); + direction = getDirectionFromAngle((current.angle.y - shape_angle.y)); + } else if (i_type == -1) { + if (i_hitObj != NULL) { + dmg_vec = getDamageVec(i_hitObj); + current.angle.y = dmg_vec->atan2sX_Z(); - if (param_4->GetTgHitGObj() != NULL) { - if (param_4->GetTgHitGObj()->GetAtMtrl() == dCcD_MTRL_ICE) { - onNoResetFlg1(FLG1_ICE_FREEZE); + if (i_hitObj->GetTgHitGObj() != NULL) { + if (i_hitObj->GetTgHitGObj()->GetAtMtrl() == dCcD_MTRL_ICE) { + onNoResetFlg1(FLG1_FREEZE_DAMAGE); } } } - var_r30 = getDirectionFromAngle((current.angle.y - shape_angle.y)); - } else if (param_0 == -6) { + direction = getDirectionFromAngle((current.angle.y - shape_angle.y)); + } else if (i_type == -6) { current.angle.y = field_0x3102 + 0x8000; - var_r30 = getDirectionFromAngle((current.angle.y - shape_angle.y)); + direction = getDirectionFromAngle((current.angle.y - shape_angle.y)); offModeFlg(8); field_0x3480 = 1.0f; } else { if (checkWolf()) { - if (param_0 == 0x2D) { - var_r30 = 1; - } else if (param_0 == 0x2E) { - var_r30 = 2; - } else if (param_0 == 0x2F) { - var_r30 = 3; + if (i_type == WANM_DMG_AIR_BACK_GETUP) { + direction = DIR_BACKWARD; + } else if (i_type == WANM_DMG_AIR_LEFT_GETUP) { + direction = DIR_LEFT; + } else if (i_type == WANM_DMG_AIR_RIGHT_GETUP) { + direction = DIR_RIGHT; } else { - var_r30 = 0; + direction = DIR_FORWARD; } - } else if (param_0 == 0x88) { - var_r30 = 1; - } else if (param_0 == 0x89) { - var_r30 = 2; - } else if (param_0 == 0x8A) { - var_r30 = 3; + } else if (i_type == ANM_DMG_LARGE_LAND) { + direction = DIR_BACKWARD; + } else if (i_type == ANM_DMG_AIR_LEFT_LAND) { + direction = DIR_LEFT; + } else if (i_type == ANM_DMG_AIR_RIGHT_LAND) { + direction = DIR_RIGHT; } else { - var_r30 = 0; + direction = DIR_FORWARD; } setOldRootQuaternion(param_2, 0, param_3); mFallVoiceInit = 1; } - if (var_r30 == 0) { + if (direction == DIR_FORWARD) { if (checkWolf()) { - field_0x3198 = 0x29; + field_0x3198 = WANM_DMG_AIR_BACK; mProcVar2.field_0x300c = 0; } else { - field_0x3198 = 0x84; + field_0x3198 = ANM_DMG_LARGE; mProcVar2.field_0x300c = 0x3FFF; } mProcVar3.field_0x300e = 1; shape_angle.y = current.angle.y; - } else if (var_r30 == 3) { + } else if (direction == DIR_RIGHT) { if (checkWolf()) { - field_0x3198 = 0x2A; + field_0x3198 = WANM_DMG_AIR_LEFT; mProcVar2.field_0x300c = 0x2000; } else { - field_0x3198 = 0x85; + field_0x3198 = ANM_DMG_AIR_LEFT; mProcVar2.field_0x300c = 0x3FFF; } mProcVar3.field_0x300e = 0; shape_angle.y = current.angle.y + 0x4000; - } else if (var_r30 == 2) { + } else if (direction == DIR_LEFT) { if (checkWolf()) { - field_0x3198 = 0x2B; + field_0x3198 = WANM_DMG_AIR_RIGHT; mProcVar2.field_0x300c = -0x2000; } else { - field_0x3198 = 0x86; + field_0x3198 = ANM_DMG_AIR_RIGHT; mProcVar2.field_0x300c = -0x3FFF; } @@ -1013,10 +1030,10 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16 shape_angle.y = current.angle.y - 0x4000; } else { if (checkWolf()) { - field_0x3198 = 0x28; + field_0x3198 = WANM_DMG_AIR_FRONT; mProcVar2.field_0x300c = -0x3FFF; } else { - field_0x3198 = 0x83; + field_0x3198 = ANM_DMG_AIR_FRONT; mProcVar2.field_0x300c = -0x3FFF; } @@ -1024,62 +1041,62 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16 shape_angle.y = current.angle.y + 0x8000; } - const daAlinkHIO_wlDamLaHu_c1* var_r29; - const daAlinkHIO_damLaHu_c1* var_r28; + const daAlinkHIO_wlDamLaHu_c1* wolfDmgParams; + const daAlinkHIO_damLaHu_c1* dmgParams; if (checkWolf()) { - if (param_1 != 0) { - var_r29 = &mpHIO->mWolf.mWlDamage.mLarge.m; + if (i_isLargeDmg) { + wolfDmgParams = &mpHIO->mWolf.mWlDamage.mLarge.m; } else { - var_r29 = &mpHIO->mWolf.mWlDamage.mHuge.m; + wolfDmgParams = &mpHIO->mWolf.mWlDamage.mHuge.m; } - setSpecialGravity(var_r29->mGravity, maxFallSpeed, 0); - mProcVar4.field_0x3010 = var_r29->mBodyRotationSpeed; - field_0x3478 = var_r29->mBounceSpeed; - field_0x347c = var_r29->mDeceleration; - setSingleAnimeWolfBaseMorf((daAlink_c::daAlink_WANM)field_0x3198, var_r29->mDamageInterp); - setFaceBasicTexture(FTANM_UNK_91); + setSpecialGravity(wolfDmgParams->mGravity, maxFallSpeed, 0); + mProcVar4.field_0x3010 = wolfDmgParams->mBodyRotationSpeed; + field_0x3478 = wolfDmgParams->mBounceSpeed; + field_0x347c = wolfDmgParams->mDeceleration; + setSingleAnimeWolfBaseMorf((daAlink_c::daAlink_WANM)field_0x3198, wolfDmgParams->mDamageInterp); + setFaceBasicTexture(FTANM_WL_B_A); } else { - if (param_1 != 0) { - var_r28 = &daAlinkHIO_damLarge_c0::m; + if (i_isLargeDmg) { + dmgParams = &mpHIO->mDamage.mDamLarge.m; } else { - var_r28 = &daAlinkHIO_damHuge_c0::m; + dmgParams = &mpHIO->mDamage.mDamHuge.m; } - setSpecialGravity(var_r28->mGravity, maxFallSpeed, 0); - mProcVar4.field_0x3010 = var_r28->mBodyRotateRate; - field_0x3478 = var_r28->mBounceSpeed; - field_0x347c = var_r28->mDeceleration; - setSingleAnimeBaseMorf((daAlink_c::daAlink_ANM)field_0x3198, var_r28->mDamageBlend); + setSpecialGravity(dmgParams->mGravity, maxFallSpeed, 0); + mProcVar4.field_0x3010 = dmgParams->mBodyRotateRate; + field_0x3478 = dmgParams->mBounceSpeed; + field_0x347c = dmgParams->mDeceleration; + setSingleAnimeBaseMorf((daAlink_c::daAlink_ANM)field_0x3198, dmgParams->mDamageBlend); } - if (param_0 < 0) { + if (i_type < 0) { if (checkBoarSingleBattle() && dComIfGp_getHorseActor() != NULL && dComIfGp_getHorseActor()->checkCowHit()) { mNormalSpeed = 80.0f; speed.y = 80.0f; onModeFlg(0x2000); - } else if (param_1 == 0 && checkMiddleBossGoronRoom()) { + } else if (i_isLargeDmg == 0 && checkMiddleBossGoronRoom()) { mNormalSpeed = 60.0f; speed.y = 30.0f; - } else if (param_0 == -3) { + } else if (i_type == -3) { mNormalSpeed = field_0x3408; speed.y = field_0x340c; } else { if (checkWolf()) { - mNormalSpeed = var_r29->mHorizontalSpeed; - speed.y = var_r29->mVerticalSpeed; + mNormalSpeed = wolfDmgParams->mHorizontalSpeed; + speed.y = wolfDmgParams->mVerticalSpeed; } else { - mNormalSpeed = var_r28->mHorizontalSpeed; - speed.y = var_r28->mVerticalSpeed; + mNormalSpeed = dmgParams->mHorizontalSpeed; + speed.y = dmgParams->mVerticalSpeed; } - if (param_0 == -6) { + if (i_type == -6) { field_0x3478 = 1000.0f; } } if (param_5 != 2) { - if (param_0 != -6) { + if (i_type != -6) { if (checkWolf()) { voiceStart(Z2SE_WL_V_DAMAGE); } else if (checkFreezeDamage()) { @@ -1097,9 +1114,9 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16 } } else { if (checkWolf()) { - mNormalSpeed = var_r29->mBounceSpeed; + mNormalSpeed = wolfDmgParams->mBounceSpeed; } else { - mNormalSpeed = var_r28->mBounceSpeed; + mNormalSpeed = dmgParams->mBounceSpeed; } current.pos.x += 35.0f * cM_ssin(current.angle.y); @@ -1110,7 +1127,7 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16 mBodyAngle.set(0, 0, 0); mProcVar0.field_0x3008 = 0; - mProcVar1.field_0x300a = param_1; + mProcVar1.field_0x300a = i_isLargeDmg; mProcVar5.field_0x3012 = 0x14; if (checkBoarSingleBattle()) { @@ -1119,7 +1136,7 @@ int daAlink_c::procCoLargeDamageInit(int param_0, int param_1, s16 param_2, s16 onModeFlg(0x4000); } - if (sp10) { + if (is_rein_ride) { onModeFlg(0x2000); field_0x32cc = 5; } @@ -1183,16 +1200,16 @@ int daAlink_c::procCoLargeDamage() { } } } else if (mLinkAcch.ChkWallHit() && mNormalSpeed > field_0x3478) { - cXyz sp14; - cXyz sp8; - dBgS_AcchCir* var_r29 = mAcchCir; + cXyz start; + cXyz end; + dBgS_AcchCir* acchcir = mAcchCir; - for (int i = 0; i < 3; i++, var_r29++) { - if (var_r29->ChkWallHit()) { - sp14.set(current.pos.x, current.pos.y + var_r29->GetWallH(), current.pos.z); - sp8.set(sp14.x + (cM_ssin(current.angle.y) * (var_r29->GetWallR() + 25.0f)), sp14.y, sp14.z + (cM_scos(current.angle.y) * (var_r29->GetWallR() + 25.0f))); + for (int i = 0; i < 3; i++, acchcir++) { + if (acchcir->ChkWallHit()) { + start.set(current.pos.x, current.pos.y + acchcir->GetWallH(), current.pos.z); + end.set(start.x + (cM_ssin(current.angle.y) * (acchcir->GetWallR() + 25.0f)), start.y, start.z + (cM_scos(current.angle.y) * (acchcir->GetWallR() + 25.0f))); - if (commonLineCheck(&sp14, &sp8)) { + if (commonLineCheck(&start, &end)) { return procCoLargeDamageWallInit(field_0x3198, mProcVar1.field_0x300a, field_0x3080, field_0x3082); } } @@ -1202,25 +1219,30 @@ int daAlink_c::procCoLargeDamage() { return 1; } -int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16 param_3) { +int daAlink_c::procLargeDamageUpInit(int i_type, BOOL i_isLargeDmg, s16 param_2, s16 param_3) { if (!commonProcInitNotSameProc(PROC_LARGE_DAMAGE_UP)) { return 0; } - const daAlinkHIO_damLaHu_c1* var_r30; - if (param_1 != 0) { - var_r30 = &daAlinkHIO_damLarge_c0::m; + const daAlinkHIO_damLaHu_c1* dmgParams; + if (i_isLargeDmg) { + dmgParams = &mpHIO->mDamage.mDamLarge.m; } else { - var_r30 = &daAlinkHIO_damHuge_c0::m; + dmgParams = &mpHIO->mDamage.mDamHuge.m; } mProcVar1.field_0x300a = 0; mProcVar2.field_0x300c = 0; - field_0x3198 = param_0; + field_0x3198 = i_type; offGoatStopGame(); mProcVar4.field_0x3010 = 0; - if (param_0 == -4) { + daAlink_ANM land_anm; + s16 land_anm_endF; + f32 land_anm_startF; + f32 land_anm_morf; + f32 land_anm_speed; + if (i_type == -4) { onNoResetFlg2(FLG2_PRESSED_DAMAGE); mProcVar0.field_0x3008 = 0; mProcVar1.field_0x300a = 1; @@ -1230,51 +1252,45 @@ int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16 seStartOnlyReverb(Z2SE_AL_DAMAGE_LARGE); setSingleAnimeBase(ANM_DMG_FBW); - field_0x32cc = 0x88; - field_0x3478 = var_r30->mBackGetUpAnm.mCancelFrame; + field_0x32cc = ANM_DMG_LARGE_LAND; + field_0x3478 = dmgParams->mBackGetUpAnm.mCancelFrame; field_0x3480 = 39.0f; field_0x3484 = 1000.0f; - } else if (param_0 < 0) { - daAlink_ANM var_r28; - s16 var_r27; - f32 var_f29; - f32 var_f30; - f32 var_f31; - - if (param_0 == -3) { - var_r28 = ANM_DMG_AIR_LAND; - var_f29 = 0.0f; - var_r27 = -1; - var_f30 = 5.0f; - var_f31 = 1.0f; + } else if (i_type < 0) { + if (i_type == -3) { + land_anm = ANM_DMG_AIR_LAND; + land_anm_startF = 0.0f; + land_anm_endF = -1; + land_anm_morf = 5.0f; + land_anm_speed = 1.0f; mProcVar0.field_0x3008 = -1; - field_0x3478 = var_r30->mFrontGetUpAnm.mCancelFrame; + field_0x3478 = dmgParams->mFrontGetUpAnm.mCancelFrame; field_0x3480 = 39.0f; field_0x2f9d = 4; field_0x3484 = 18.0f; } else { - if (param_0 == -2) { - var_f30 = 0.0f; + if (i_type == -2) { + land_anm_morf = 0.0f; } else { - var_f30 = mpHIO->mDamage.mDamLarge.m.mBackGetUpAnm.mInterpolation; + land_anm_morf = mpHIO->mDamage.mDamLarge.m.mBackGetUpAnm.mInterpolation; } field_0x3484 = 9.0f; - var_r28 = ANM_DMG_LARGE_LAND; - var_f29 = 9.0f; - var_r27 = -1; - field_0x3478 = var_r30->mBackGetUpAnm.mCancelFrame; + land_anm = ANM_DMG_LARGE_LAND; + land_anm_startF = 9.0f; + land_anm_endF = -1; + field_0x3478 = dmgParams->mBackGetUpAnm.mCancelFrame; - if (param_0 == -5 && mDemo.getParam1() > 0) { + if (i_type == -5 && mDemo.getParam1() > 0) { mProcVar0.field_0x3008 = mDemo.getParam1(); - var_f31 = 0.0f; - } else if (param_0 == -2 && mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_TOOL_e) { + land_anm_speed = 0.0f; + } else if (i_type == -2 && mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_TOOL_e) { mProcVar0.field_0x3008 = 0x1E; - var_f31 = 0.0f; + land_anm_speed = 0.0f; } else { mProcVar0.field_0x3008 = -1; - var_f31 = mpHIO->mDamage.m.mRecoverStandAnmSpeed; + land_anm_speed = mpHIO->mDamage.m.mRecoverStandAnmSpeed; } mProcVar1.field_0x300a = 1; @@ -1282,43 +1298,43 @@ int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16 field_0x3480 = 39.0f; } - setSingleAnime(var_r28, var_f31, var_f29, var_r27, var_f30); - field_0x32cc = var_r28; + setSingleAnime(land_anm, land_anm_speed, land_anm_startF, land_anm_endF, land_anm_morf); + field_0x32cc = land_anm; } else { mProcVar0.field_0x3008 = 0; - dComIfGp_getVibration().StartShock(6, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER6, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); seStartMapInfo(Z2SE_BODY_FALL_DOWN); field_0x2f9d = 4; - if (param_0 == 0x84) { - setSingleAnimeParam(ANM_DMG_LARGE_LAND, &var_r30->mBackGetUpAnm); - field_0x3478 = var_r30->mBackGetUpAnm.mCancelFrame; + if (i_type == ANM_DMG_LARGE) { + setSingleAnimeParam(ANM_DMG_LARGE_LAND, &dmgParams->mBackGetUpAnm); + field_0x3478 = dmgParams->mBackGetUpAnm.mCancelFrame; mProcVar1.field_0x300a = 1; field_0x3480 = 39.0f; - field_0x32cc = 0x88; + field_0x32cc = ANM_DMG_LARGE_LAND; field_0x3484 = 9.0f; - } else if (param_0 == 0x85) { - setSingleAnimeParam(ANM_DMG_AIR_LEFT_LAND, &var_r30->mLeftGetUpAnm); - field_0x3478 = var_r30->mLeftGetUpAnm.mCancelFrame; + } else if (i_type == ANM_DMG_AIR_LEFT) { + setSingleAnimeParam(ANM_DMG_AIR_LEFT_LAND, &dmgParams->mLeftGetUpAnm); + field_0x3478 = dmgParams->mLeftGetUpAnm.mCancelFrame; field_0x3480 = 29.0f; - field_0x32cc = 0x89; + field_0x32cc = ANM_DMG_AIR_LEFT_LAND; field_0x3484 = 6.0f; - } else if (param_0 == 0x86) { - setSingleAnimeParam(ANM_DMG_AIR_RIGHT_LAND, &var_r30->mRightGetUpAnm); - field_0x3478 = var_r30->mRightGetUpAnm.mCancelFrame; + } else if (i_type == ANM_DMG_AIR_RIGHT) { + setSingleAnimeParam(ANM_DMG_AIR_RIGHT_LAND, &dmgParams->mRightGetUpAnm); + field_0x3478 = dmgParams->mRightGetUpAnm.mCancelFrame; field_0x3480 = 29.0f; - field_0x32cc = 0x8A; + field_0x32cc = ANM_DMG_AIR_RIGHT_LAND; field_0x3484 = 6.0f; } else { - setSingleAnimeParam(ANM_DMG_AIR_LAND, &var_r30->mFrontGetUpAnm); - field_0x3478 = var_r30->mFrontGetUpAnm.mCancelFrame; + setSingleAnimeParam(ANM_DMG_AIR_LAND, &dmgParams->mFrontGetUpAnm); + field_0x3478 = dmgParams->mFrontGetUpAnm.mCancelFrame; field_0x3480 = 39.0f; - field_0x32cc = 0x87; + field_0x32cc = ANM_DMG_AIR_LAND; field_0x3484 = 18.0f; } - if (param_1 != 0) { + if (i_isLargeDmg) { mProcVar4.field_0x3010 = 1; } } @@ -1333,9 +1349,9 @@ int daAlink_c::procLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16 } int daAlink_c::procLargeDamageUp() { - daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; mProcVar4.field_0x3010 = 0; - field_0x33cc = field_0x347c * (field_0x3478 - temp_r30->getFrame()); + field_0x33cc = field_0x347c * (field_0x3478 - framectrl->getFrame()); onEndResetFlg0(ERFLG0_UNK_8000000); if (field_0x3198 == -4) { @@ -1353,43 +1369,43 @@ int daAlink_c::procLargeDamageUp() { if (mProcVar0.field_0x3008 == 0) { mProcVar0.field_0x3008 = -1; - setWaterInAnmRate(temp_r30, mpHIO->mDamage.m.mRecoverStandAnmSpeed); - temp_r30->offEndFlg(); + setWaterInAnmRate(framectrl, mpHIO->mDamage.m.mRecoverStandAnmSpeed); + framectrl->offEndFlg(); } } else { - if (temp_r30->getFrame() > field_0x3480) { - field_0x2f92 = 1; - field_0x2f93 = 6; + if (framectrl->getFrame() > field_0x3480) { + mLeftHandIndex = 1; + mRightHandIndex = 6; } - if (checkAnmEnd(temp_r30)) { + if (checkAnmEnd(framectrl)) { offModeFlg(0x04000000); - if ((checkEventRun() && mProcVar0.field_0x3008 < 0) || mDemo.getDemoMode() == 0x1B || mDemo.getDemoMode() == 9) { + if ((checkEventRun() && mProcVar0.field_0x3008 < 0) || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_27_e || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_9_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextAction(0); } - } else if (temp_r30->getFrame() > field_0x3478) { + } else if (framectrl->getFrame() > field_0x3478) { if (!checkEventRun()) { onModeFlg(4); } checkNextAction(1); - } else if (mProcVar2.field_0x300c != 0 && temp_r30->checkPass(18.0f)) { + } else if (mProcVar2.field_0x300c != 0 && framectrl->checkPass(18.0f)) { voiceStart(Z2SE_AL_V_LANDING_FAIL_2); mProcVar2.field_0x300c = 0; - } else if (checkNoResetFlg0(FLG0_UNK_200000)) { + } else if (checkNoResetFlg0(FLG0_GORON_UP_STOP_CANCEL)) { onModeFlg(0x04000000); - if (!dMsgObject_isTalkNowCheck() && temp_r30->getFrame() > 19.0f) { - temp_r30->setFrame(19.0f); + if (!dMsgObject_isTalkNowCheck() && framectrl->getFrame() > 19.0f) { + framectrl->setFrame(19.0f); getNowAnmPackUnder(UNDER_0)->setFrame(19.0f); } else if (dMsgObject_isTalkNowCheck()) { - offNoResetFlg0(FLG0_UNK_200000); + offNoResetFlg0(FLG0_GORON_UP_STOP_CANCEL); } - } else if (checkEndResetFlg1(ERFLG1_LARGE_DAMAGE_UP_STOP) && temp_r30->getFrame() > field_0x3484) { - temp_r30->setFrame(field_0x3484); + } else if (checkEndResetFlg1(ERFLG1_LARGE_DAMAGE_UP_STOP) && framectrl->getFrame() > field_0x3484) { + framectrl->setFrame(field_0x3484); getNowAnmPackUnder(UNDER_0)->setFrame(field_0x3484); } } @@ -1397,22 +1413,22 @@ int daAlink_c::procLargeDamageUp() { return 1; } -int daAlink_c::procCoLargeDamageWallInit(int param_0, int param_1, s16 param_2, s16 param_3) { +int daAlink_c::procCoLargeDamageWallInit(int i_type, BOOL i_isLargeDmg, s16 param_2, s16 param_3) { if (mProcID == PROC_LARGE_DAMAGE_WALL) { return 0; } - cM3dGPla sp18; - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp18); - s16 temp_r26 = sp18.mNormal.atan2sX_Z(); + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); + s16 temp_r26 = tripla.mNormal.atan2sX_Z(); - if (param_0 < 0 || !cBgW_CheckBWall(sp18.mNormal.y) || cLib_distanceAngleS(temp_r26, (current.angle.y - 0x8000)) > cM_deg2s(30.0f)) { + if (i_type < 0 || !cBgW_CheckBWall(tripla.mNormal.y) || cLib_distanceAngleS(temp_r26, (current.angle.y - 0x8000)) > cM_deg2s(30.0f)) { return 0; } commonProcInit(PROC_LARGE_DAMAGE_WALL); - s16 temp_r29 = cM_atan2s(sp18.mNormal.y, sp18.mNormal.absXZ()); + s16 temp_r29 = cM_atan2s(tripla.mNormal.y, tripla.mNormal.absXZ()); current.angle.y = temp_r26; current.pos.x = mLinkLinChk.GetCross().x; @@ -1421,48 +1437,48 @@ int daAlink_c::procCoLargeDamageWallInit(int param_0, int param_1, s16 param_2, setOldRootQuaternion(param_2, 0, param_3); if (checkWolf()) { - if (param_0 == 0x29) { - field_0x3198 = 0x2D; + if (i_type == WANM_DMG_AIR_BACK) { + field_0x3198 = WANM_DMG_AIR_BACK_GETUP; setSingleAnimeWolfBase(WANM_DMG_AIR_FRONT); field_0x3080 = temp_r29; - } else if (param_0 == 0x2A) { - field_0x3198 = 0x2E; + } else if (i_type == WANM_DMG_AIR_LEFT) { + field_0x3198 = WANM_DMG_AIR_LEFT_GETUP; setSingleAnimeWolf(WANM_DMG_AIR_LEFT_GETUP, 1.0f, 2.0f, 3, 3.0f); field_0x3082 = temp_r29 - 0x4000; - } else if (param_0 == 0x2B) { - field_0x3198 = 0x2F; + } else if (i_type == WANM_DMG_AIR_RIGHT) { + field_0x3198 = WANM_DMG_AIR_RIGHT_GETUP; setSingleAnimeWolf(WANM_DMG_AIR_RIGHT_GETUP, 1.0f, 2.0f, 3, 3.0f); field_0x3082 = 0x4000 - temp_r29; } else { - field_0x3198 = 0x2C; + field_0x3198 = WANM_DMG_AIR_FRONT_GETUP; setSingleAnimeWolfBase(WANM_DMG_AIR_BACK); field_0x3080 = -temp_r29; } - setFaceBasicTexture(FTANM_UNK_91); + setFaceBasicTexture(FTANM_WL_B_A); } else { - const daAlinkHIO_damLaHu_c1* var_r28; - if (param_1 != 0) { - var_r28 = &daAlinkHIO_damLarge_c0::m; + const daAlinkHIO_damLaHu_c1* dmgParams; + if (i_isLargeDmg) { + dmgParams = &mpHIO->mDamage.mDamLarge.m; } else { - var_r28 = &daAlinkHIO_damHuge_c0::m; + dmgParams = &mpHIO->mDamage.mDamHuge.m; } - if (param_0 == 0x84) { - field_0x3198 = 0x88; - setSingleAnimeParam(ANM_DMG_LARGE_LAND, &var_r28->mBackWallHitAnm); + if (i_type == ANM_DMG_LARGE) { + field_0x3198 = ANM_DMG_LARGE_LAND; + setSingleAnimeParam(ANM_DMG_LARGE_LAND, &dmgParams->mBackWallHitAnm); field_0x3080 = temp_r29 - 0x4000; - } else if (param_0 == 0x85) { - field_0x3198 = 0x89; - setSingleAnimeParam(ANM_DMG_AIR_LEFT_LAND, &var_r28->mLeftWallHitAnm); + } else if (i_type == ANM_DMG_AIR_LEFT) { + field_0x3198 = ANM_DMG_AIR_LEFT_LAND; + setSingleAnimeParam(ANM_DMG_AIR_LEFT_LAND, &dmgParams->mLeftWallHitAnm); field_0x3082 = temp_r29 - 0x4000; - } else if (param_0 == 0x86) { - field_0x3198 = 0x8A; - setSingleAnimeParam(ANM_DMG_AIR_RIGHT_LAND, &var_r28->mRightWallHitAnm); + } else if (i_type == ANM_DMG_AIR_RIGHT) { + field_0x3198 = ANM_DMG_AIR_RIGHT_LAND; + setSingleAnimeParam(ANM_DMG_AIR_RIGHT_LAND, &dmgParams->mRightWallHitAnm); field_0x3082 = 0x4000 - temp_r29; } else { - field_0x3198 = 0x87; - setSingleAnimeParam(ANM_DMG_AIR_LAND, &var_r28->mFrontWallHitAnm); + field_0x3198 = ANM_DMG_AIR_LAND; + setSingleAnimeParam(ANM_DMG_AIR_LAND, &dmgParams->mFrontWallHitAnm); field_0x3080 = 0x4000 - temp_r29; } } @@ -1471,13 +1487,13 @@ int daAlink_c::procCoLargeDamageWallInit(int param_0, int param_1, s16 param_2, speed.y = 0.0f; setSpecialGravity(0.0f, maxFallSpeed, 0); - dComIfGp_getVibration().StartShock(6, 0xF, cXyz(0.0f, 1.0f, 0.0f)); - mProcVar0.field_0x3008 = param_1; + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER6, 0xF, cXyz(0.0f, 1.0f, 0.0f)); + mProcVar0.field_0x3008 = i_isLargeDmg; return 1; } int daAlink_c::procCoLargeDamageWall() { - if (mUnderFrameCtrl[0].checkAnmEnd()) { + if (checkAnmEnd(&mUnderFrameCtrl[0])) { procCoLargeDamageInit(field_0x3198, mProcVar0.field_0x3008, field_0x3080, field_0x3082, NULL, 0); } @@ -1511,7 +1527,7 @@ int daAlink_c::procCoPolyDamageInit() { } int daAlink_c::procCoPolyDamage() { - if (mUnderFrameCtrl[0].checkAnmEnd()) { + if (checkAnmEnd(&mUnderFrameCtrl[0])) { commonCheckNextAction(0); } else if (mUnderFrameCtrl[0].getFrame() > field_0x3478) { if (!checkWolf()) { @@ -1525,32 +1541,32 @@ int daAlink_c::procCoPolyDamage() { } int daAlink_c::procLandDamageInit(int param_0) { - f32 var_f31; + f32 start_frame; if (param_0 == 0) { - var_f31 = mpHIO->mDamage.mDamFall.m.mSmallDmgLandStartFrame; + start_frame = mpHIO->mDamage.mDamFall.m.mSmallDmgLandStartFrame; mProcVar0.field_0x3008 = mpHIO->mAutoJump.m.mSpinJumpLandStopTime; if (mProcID == PROC_MAGNE_BOOTS_FLY) { - dComIfGp_getVibration().StartShock(6, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER6, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); } else { - dComIfGp_getVibration().StartShock(2, 0xF, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER2, 0xF, cXyz(0.0f, 1.0f, 0.0f)); } } else if (param_0 == 1) { if (!checkEventRun()) { setLandDamagePoint(4); } - var_f31 = mpHIO->mDamage.mDamFall.m.mSmallDmgLandStartFrame; + start_frame = mpHIO->mDamage.mDamFall.m.mSmallDmgLandStartFrame; mProcVar0.field_0x3008 = mpHIO->mDamage.mDamFall.m.mSmallStopTime; - dComIfGp_getVibration().StartShock(4, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER4, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); } else { if (!checkEventRun()) { setLandDamagePoint(8); } - var_f31 = mpHIO->mDamage.mDamFall.m.mLandAnm.mStartFrame; + start_frame = mpHIO->mDamage.mDamFall.m.mLandAnm.mStartFrame; mProcVar0.field_0x3008 = mpHIO->mDamage.mDamFall.m.mBigStopTime; - dComIfGp_getVibration().StartShock(5, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER5, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); } commonProcInit(PROC_LAND_DAMAGE); @@ -1563,7 +1579,7 @@ int daAlink_c::procLandDamageInit(int param_0) { voiceStart(Z2SE_AL_V_LANDING_FAIL); } - setSingleAnime(ANM_DMG_FALL, mpHIO->mDamage.mDamFall.m.mLandAnm.mSpeed, var_f31, mpHIO->mDamage.mDamFall.m.mLandAnm.mEndFrame, mpHIO->mDamage.mDamFall.m.mLandAnm.mInterpolation); + setSingleAnime(ANM_DMG_FALL, mpHIO->mDamage.mDamFall.m.mLandAnm.mSpeed, start_frame, mpHIO->mDamage.mDamFall.m.mLandAnm.mEndFrame, mpHIO->mDamage.mDamFall.m.mLandAnm.mInterpolation); field_0x3198 = 0; field_0x2f9d = 4; setFootEffectProcType(4); @@ -1575,14 +1591,14 @@ int daAlink_c::procLandDamage() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; if (field_0x3198 != 0) { - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextAction(0); } else if (frameCtrl->getFrame() > mpHIO->mDamage.mDamFall.m.mStandAnm.mCancelFrame) { onModeFlg(4); checkNextAction(1); } } else { - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { if (mProcVar0.field_0x3008 > 0) { mProcVar0.field_0x3008--; } else { @@ -1595,7 +1611,7 @@ int daAlink_c::procLandDamage() { return 1; } -int daAlink_c::procCoElecDamageInit(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, int param_2) { +int daAlink_c::procCoElecDamageInit(fopAc_ac_c* i_tgHitActor, dCcD_GObjInf* i_tgHitObj, int i_atSpl) { if (!dComIfGp_event_compulsory(this, NULL, 0xFFEF)) { return 0; } @@ -1607,25 +1623,25 @@ int daAlink_c::procCoElecDamageInit(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, ((daCrod_c*)mCopyRodAcKeep.getActor())->offControll(); } - if (param_0 != NULL) { - param_0->actor_status |= 0x800; + if (i_tgHitActor != NULL) { + i_tgHitActor->actor_status |= 0x800; } commonProcInit(PROC_ELEC_DAMAGE); mNormalSpeed = 0.0f; mProcVar2.field_0x300c = 0; - daAlink_ANM var_r29; - daAlink_WANM var_r28; + daAlink_ANM anm; + daAlink_WANM wolf_anm; if ((mLinkAcch.ChkGroundHit() && !temp_r27) || checkMagneBootsOn()) { if (mEquipItem == fpcNm_ITEM_IRONBALL) { setIronBallWaitUpperAnime(1); } - var_r29 = ANM_ELEC_STUN_GND; - var_r28 = WANM_DMG_ELEC_GROUND; + anm = ANM_ELEC_STUN_GND; + wolf_anm = WANM_DMG_ELEC_GROUND; } else { - var_r29 = ANM_ELEC_STUN_AIR; - var_r28 = WANM_DMG_ELEC_AIR; + anm = ANM_ELEC_STUN_AIR; + wolf_anm = WANM_DMG_ELEC_AIR; setSpecialGravity(0.0f, maxFallSpeed, 0); speed.y = 0.0f; @@ -1640,7 +1656,7 @@ int daAlink_c::procCoElecDamageInit(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, if (getZoraSwim()) { current.pos.y += 50.0f; - field_0x3080 += 0x4000; + field_0x3080 += (s16)0x4000; } } } @@ -1652,20 +1668,21 @@ int daAlink_c::procCoElecDamageInit(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, if (checkWolf()) { voiceStart(Z2SE_WL_V_DAMAGE_ELEC); - setSingleAnimeWolfBase(var_r28); - setFaceBasicTexture(FTANM_UNK_91); + setSingleAnimeWolfBase(wolf_anm); + setFaceBasicTexture(FTANM_WL_B_A); } else { voiceStart(Z2SE_AL_V_DAMAGE_ELEC); - setSingleAnimeBase(var_r29); + setSingleAnimeBase(anm); } mProcVar0.field_0x3008 = 0x2D; mProcVar3.field_0x300e = 3; - field_0x3198 = checkLargeAttack(param_2) | checkHugeAttack(param_2); + field_0x3198 = checkLargeAttack(i_atSpl) | checkHugeAttack(i_atSpl); - if (param_1 != NULL) { - mProcVar4.field_0x3010 = getDamageVec(param_1)->atan2sX_Z(); + if (i_tgHitObj != NULL) { + cXyz* dmg_vec = getDamageVec(i_tgHitObj); + mProcVar4.field_0x3010 = dmg_vec->atan2sX_Z(); } else { mProcVar4.field_0x3010 = shape_angle.y + 0x8000; } @@ -1683,7 +1700,7 @@ int daAlink_c::procCoElecDamage() { } if (mProcVar3.field_0x300e != 0) { - dComIfGp_getVibration().StartQuake(5, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartQuake(VIBMODE_Q_POWER5, 1, cXyz(0.0f, 1.0f, 0.0f)); mProcVar3.field_0x300e--; } @@ -1699,7 +1716,7 @@ int daAlink_c::procCoElecDamage() { if (checkModeFlg(2) || field_0x3198 != 0) { current.angle.y = mProcVar4.field_0x3010; - procCoLargeDamageInit(-1, 1, 0, 0, NULL, 2); + procCoLargeDamageInit(-1, TRUE, 0, 0, NULL, 2); } else if (checkModeFlg(0x40000)) { if (checkWolf()) { procWolfSwimWaitInit(0); @@ -1729,7 +1746,7 @@ int daAlink_c::procStEscape() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; onEndResetFlg0(ERFLG0_UNK_8000000); - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextAction(0); } else if (frameCtrl->getFrame() > mpHIO->mDamage.mDamCaught.m.mEscapeAnm.mCancelFrame) { onModeFlg(4); @@ -1760,7 +1777,7 @@ int daAlink_c::procDkCaughtInit(fpc_ProcID param_0) { field_0x3478 = temp_r3->home.pos.abs(current.pos); } - field_0x594 = 13.0f; + mMaxSpeed = 13.0f; return 1; } @@ -1787,18 +1804,18 @@ int daAlink_c::procDkCaught() { f32 var_f30; if (checkInputOnR()) { - if (getDirectionFromCurrentAngle() == 1) { + if (getDirectionFromCurrentAngle() == DIR_BACKWARD) { current.angle.y += 0x8000; mNormalSpeed *= -1.0f; } if (checkZeroSpeedF()) { - current.angle.y = field_0x2fe2; + current.angle.y = mMoveAngle; } s16 temp_r28 = current.angle.y; - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mAtnMove.m.mTurnAngleRate, mpHIO->mAtnMove.m.mMaxTurnAngle, mpHIO->mAtnMove.m.mMinTurnAngle); - var_f30 = mpHIO->mAtnMove.m.mAcceleration * field_0x33a8 * cM_scos((current.angle.y - temp_r28)); + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, mpHIO->mAtnMove.m.mTurnAngleRate, mpHIO->mAtnMove.m.mMaxTurnAngle, mpHIO->mAtnMove.m.mMinTurnAngle); + var_f30 = mpHIO->mAtnMove.m.mAcceleration * mStickValue * cM_scos((current.angle.y - temp_r28)); } else { var_f30 = 0.0f; } @@ -1836,8 +1853,7 @@ void daAlink_c::setScreamWaitAnime() { voiceStart(Z2SE_AL_V_TERRORED); mProcVar2.field_0x300c = 1; - f32 tmp_0 = 0.0f; - dComIfGp_getVibration().StartQuake(5, 1, cXyz(tmp_0, 1.0f, tmp_0)); + dComIfGp_getVibration().StartQuake(VIBMODE_Q_POWER5, 1, cXyz(0.0f, 1.0f, 0.0f)); } int daAlink_c::procScreamWaitInit() { @@ -1857,9 +1873,11 @@ int daAlink_c::procScreamWaitInit() { } int daAlink_c::procScreamWait() { + daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; + onEndResetFlg0(ERFLG0_UNK_8000000); - if (!checkEndResetFlg1(ERFLG1_UNK_1)) { + if (!checkEndResetFlg1(ERFLG1_NS_SCREAM)) { checkNextAction(0); } else if (mProcVar2.field_0x300c == 0 && checkEndResetFlg1(ERFLG1_UNK_2)) { setScreamWaitAnime(); @@ -1897,7 +1915,7 @@ int daAlink_c::procCoSandWallHit() { return 1; } -int daAlink_c::procCoLavaReturnInit(BOOL i_sandReturn) { +int daAlink_c::procCoLavaReturnInit(BOOL i_isSandReturn) { if (!dComIfGp_event_compulsory(this, 0, 0xFFFF)) { return 0; } @@ -1918,9 +1936,9 @@ int daAlink_c::procCoLavaReturnInit(BOOL i_sandReturn) { if (checkWolf()) { setSingleAnimeWolfBase(WANM_SWIM_DROWN); - setFaceBasicTexture(FTANM_UNK_9E); + setFaceBasicTexture(FTANM_WL_SWIMDIEP); - if (i_sandReturn) { + if (i_isSandReturn) { voiceStart(Z2SE_WL_V_FALL_QUICKSAND); } else { voiceStart(Z2SE_WL_V_FALL_MAGMA); @@ -1929,19 +1947,19 @@ int daAlink_c::procCoLavaReturnInit(BOOL i_sandReturn) { setSingleAnimeBase(ANM_SWIM_DROWN); if (mEquipItem == 0x103) { - field_0x2f92 = 100; + mLeftHandIndex = 100; } - if (i_sandReturn) { + if (i_isSandReturn) { voiceStart(Z2SE_AL_V_FALL_QUICKSAND); } else { voiceStart(Z2SE_AL_V_FALL_MAGMA); } } - if (i_sandReturn) { + if (i_isSandReturn) { seStartOnlyReverb(Z2SE_AL_SINK_SAND_PITFALL); - field_0x2fbd = 0xFF; + mGndPolyAtt1 = 0xFF; offModeFlg(0x40000); field_0x2060->getOldFrameTransInfo(0)->mTranslate.y += field_0x3458; @@ -1953,8 +1971,8 @@ int daAlink_c::procCoLavaReturnInit(BOOL i_sandReturn) { seStartOnlyReverb(Z2SE_AL_SINK_MAGMA); cXyz particle_pos(current.pos.x, mWaterY, current.pos.z); - dComIfGp_particle_set(0x8757, &particle_pos, &tevStr, NULL, NULL); - dComIfGp_particle_set(0x8758, &particle_pos, &tevStr, NULL, NULL); + dComIfGp_particle_set(dPa_RM(ID_ZI_S_YOGANSHIBUKI_A), &particle_pos, &tevStr, NULL, NULL); + dComIfGp_particle_set(dPa_RM(ID_ZI_S_YOGANSHIBUKI_B), &particle_pos, &tevStr, NULL, NULL); field_0x32cc = 4; field_0x3198 = 8; } @@ -1964,15 +1982,14 @@ int daAlink_c::procCoLavaReturnInit(BOOL i_sandReturn) { mNormalSpeed = 0.0f; field_0x3194 = 1; - u32 id = fopAcM_GetID(this); - dCam_getBody()->StartEventCamera(9, id, "Type", 1, &field_0x3194, 0); + dCam_getBody()->StartEventCamera(9, fopAcM_GetID(this), "Type", 1, &field_0x3194, 0); return 1; } int daAlink_c::procCoLavaReturn() { cLib_chaseF(&mSinkShapeOffset, 0.0f, 6.0f); - if (mUnderFrameCtrl[0].checkAnmEnd()) { + if (checkAnmEnd(&mUnderFrameCtrl[0])) { startRestartRoom(field_0x32cc, 0xC9, field_0x3198, 1); } @@ -1980,7 +1997,7 @@ int daAlink_c::procCoLavaReturn() { } int daAlink_c::procCoSwimFreezeReturnInit() { - if (!dComIfGp_event_compulsory(this, 0, 0xFFFF)) { + if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) { return 0; } @@ -1996,11 +2013,10 @@ int daAlink_c::procCoSwimFreezeReturnInit() { f32 var_f31; if (checkWolf()) { - setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, mpHIO->mWolf.mWlDamage.mNormal.m.mIceDamageAnmSpeed, - 10.0f); + setSingleAnimeWolfBaseSpeed(WANM_SWIM_WAIT, mpHIO->mWolf.mWlDamage.mNormal.m.mIceDamageAnmSpeed, 10.0f); mUnderFrameCtrl[0].setEnd(3); mUnderFrameCtrl[0].setAttribute(0); - setFaceBasicTexture(FTANM_UNK_90); + setFaceBasicTexture(FTANM_WL_DAM); mMidnaAnm = 1; var_f31 = mpHIO->mWolf.mWlSwim.m.mStartHeight; } else { @@ -2020,7 +2036,7 @@ int daAlink_c::procCoSwimFreezeReturnInit() { field_0x3080 = 0; mDamageTimer = 0; mNormalSpeed = 0.0f; - onNoResetFlg1(FLG1_ICE_FREEZE); + onNoResetFlg1(FLG1_FREEZE_DAMAGE); field_0x3194 = 1; u32 id = fopAcM_GetID(this); @@ -2032,7 +2048,7 @@ int daAlink_c::procCoSwimFreezeReturnInit() { int daAlink_c::procCoSwimFreezeReturn() { if (mProcVar2.field_0x300c == 0) { if (checkRestartDead(4, 1)) { - onNoResetFlg1(FLG1_ICE_FREEZE); + onNoResetFlg1(FLG1_FREEZE_DAMAGE); } else { u32 mode = 4; setLastSceneDamage(4, &mode); diff --git a/src/d/actor/d_a_alink_demo.inc b/src/d/actor/d_a_alink_demo.inc index a855799204..2da24db56a 100644 --- a/src/d/actor/d_a_alink_demo.inc +++ b/src/d/actor/d_a_alink_demo.inc @@ -33,15 +33,15 @@ void daAlink_c::createNpcTks(cXyz* i_basePos, int i_roomNo, u32 i_parameters) { fopAcM_create(PROC_NPC_TKS, i_parameters, &pos, i_roomNo, &angle, NULL, -1); } - bool daAlink_c::checkSetNpcTks(cXyz* i_basePos, int i_roomNo, int param_2) { + u32 start_mode = getStartMode(); u32 scene_mode = getLastSceneMode(); if (param_2 != 0 && checkDungeon() && - dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17 && - dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x18 && - (checkItemGet(fpcNm_ITEM_TKS_LETTER, 1) || - (checkItemGet(fpcNm_ITEM_DUNGEON_BACK, 1) && !checkLv7DungeonShop())) && + dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != dStage_SaveTbl_LV8 && + dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != dStage_SaveTbl_LV9 && + (checkItemGet(fpcNm_ITEM_TKS_LETTER, TRUE) || + (checkItemGet(fpcNm_ITEM_DUNGEON_BACK, TRUE) && !checkLv7DungeonShop())) && dComIfGs_isDungeonItemWarp()) { if (!dComIfGs_isStageBossEnemy()) { @@ -55,9 +55,7 @@ bool daAlink_c::checkSetNpcTks(cXyz* i_basePos, int i_roomNo, int param_2) { if (scene_mode != 0xC) { parameters = 8; } - } else if ((checkStageName("D_MN06") != 0 || checkStageName("D_MN05")) && - scene_mode != 0xC) - { + } else if ((checkStageName("D_MN06")|| checkStageName("D_MN05")) && scene_mode != 0xC) { parameters = 9; } @@ -72,7 +70,7 @@ bool daAlink_c::checkSetNpcTks(cXyz* i_basePos, int i_roomNo, int param_2) { int daAlink_c::checkDemoAction() { if (dComIfGp_getEvent()->isOrderOK()) { if (!dComIfGp_event_runCheck()) { - offNoResetFlg0(FLG0_UNK_200000); + offNoResetFlg0(FLG0_GORON_UP_STOP_CANCEL); } return 0; } @@ -85,7 +83,7 @@ int daAlink_c::checkDemoAction() { offNoResetFlg0(FLG0_UNK_400); } - if (demoMode != daPy_demo_c::DEMO_SUMOU_SHIKO_e && mSpecialMode == 1) { + if (demoMode != daPy_demo_c::DEMO_SUMOU_SHIKO_e && mMode == 1) { return procSumouReadyInit(); } @@ -174,7 +172,9 @@ int daAlink_c::checkDemoAction() { } onNoResetFlg0(FLG0_UNK_100000); - if (mGrabItemAcKeep.getActor() != NULL) { + + fopAc_ac_c* grabActor = mGrabItemAcKeep.getActor(); + if (grabActor != NULL) { if (fopAcM_getTalkEventPartner(this) != NULL && checkGrabTalkActor(fopAcM_getTalkEventPartner(this))) { @@ -212,18 +212,14 @@ int daAlink_c::checkDemoAction() { } } else if (mDemo.getParam0() == 3) { if (!checkCanoeRide()) { - daCanoe_c* canoe_p = - (daCanoe_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchCanoe, NULL); - fpc_ProcID rodID = - fopAcM_create(PROC_MG_ROD, 0xD, &mLeftHandPos, -1, NULL, NULL, -1); - canoe_p->onRodID(rodID); + daCanoe_c* canoe_p = (daCanoe_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchCanoe, NULL); + canoe_p->onRodID(fopAcM_create(PROC_MG_ROD, 0xD, &mLeftHandPos, -1, NULL, NULL, -1)); return procCanoeJumpRideInit(NULL); } return 1; } else if (mDemo.getParam0() == 5) { if (!checkBoardRide()) { - fopAc_ac_c* board_p = (fopAc_ac_c*)fopAcIt_Judge( - (fopAcIt_JudgeFunc)daAlink_searchIceLeaf, NULL); + fopAc_ac_c* board_p = (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchIceLeaf, NULL); if (board_p != NULL) { mGndPolySpecialCode = dBgW_SPCODE_LIGHT_SNOW; return procBoardWaitInit(board_p); @@ -259,7 +255,7 @@ int daAlink_c::checkDemoAction() { return 0; } - return procCoLargeDamageInit(-2, 1, 0, 0, NULL, 0); + return procCoLargeDamageInit(-2, TRUE, 0, 0, NULL, 0); } else if (demoMode == daPy_demo_c::DEMO_UNK_36_e) { onNoResetFlg0(FLG0_UNK_100000); int prm0 = mDemo.getParam0(); @@ -271,11 +267,21 @@ int daAlink_c::checkDemoAction() { return procCutNormalInit(prm0); } + // TODO: reconcile + #if VERSION == VERSION_SHIELD_DEBUG + int type = prm0 - 20; + if (type >= 0 && type < 6) { + return procCutFinishInit(type); + } else { + return procCutTurnInit(1, 1); + } + #else if (prm0 - 20 >= 0 && prm0 - 20 < 6) { return procCutFinishInit(prm0 - 20); } else { return procCutTurnInit(1, 1); } + #endif } else if (demoMode == daPy_demo_c::DEMO_UNK_82_e) { onNoResetFlg0(FLG0_UNK_100000); if (mProcID == PROC_TURN_MOVE || mProcID == PROC_CUT_FINISH_JUMP_UP || @@ -472,7 +478,6 @@ int daAlink_c::checkDemoAction() { return 0; } - bool daAlink_c::checkDemoMoveMode(u32 i_mode) const { return i_mode == daPy_demo_c::DEMO_UNK_2_e || i_mode == daPy_demo_c::DEMO_UNK_3_e || i_mode == daPy_demo_c::DEMO_UNK_38_e; } @@ -481,6 +486,8 @@ void daAlink_c::setDemoMoveData(u32* o_mode, cXyz const* i_goal) { cXyz sp20; sp20 = *i_goal - current.pos; + f32 spC = fabsf(mNormalSpeed) / mMaxSpeed; + f32 temp_f30; f32 temp_f29; f32 temp_f28; @@ -492,12 +499,14 @@ void daAlink_c::setDemoMoveData(u32* o_mode, cXyz const* i_goal) { var_f27 = 1.0f; } + f32 var_f26 = 25.0f * var_f27; + temp_f30 = var_f27 * 100.0f; temp_f29 = var_f27 * 400.0f; temp_f28 = var_f27 * 2500.0f; f32 dist_to_pos = sp20.abs2XZ(); - if (dist_to_pos < var_f27 * 25.0f) { + if (dist_to_pos < var_f26) { *o_mode = daPy_demo_c::DEMO_UNK_1_e; if (!checkModeFlg(0x2)) { @@ -512,7 +521,8 @@ void daAlink_c::setDemoMoveData(u32* o_mode, cXyz const* i_goal) { mDemo.setStick(1.0f); } - mDemo.setMoveAngle(sp20.atan2sX_Z()); + s16 move_angle = sp20.atan2sX_Z(); + mDemo.setMoveAngle(move_angle); } void daAlink_c::setNoDrawSwordShield(int param_0, u16 param_1) { @@ -557,9 +567,9 @@ void daAlink_c::setNoDrawSwordShield(int param_0, u16 param_1) { } } else if (param_0 == 9) { if (param_1 == 1) { - onNoResetFlg2(FLG2_PLAYER_SHADOW); + onNoResetFlg2(FLG2_PLAYER_SHADOW_NO_DRAW); } else { - offNoResetFlg2(FLG2_PLAYER_SHADOW); + offNoResetFlg2(FLG2_PLAYER_SHADOW_NO_DRAW); } } } @@ -632,36 +642,36 @@ void daAlink_c::setDemoData() { } } - if (demo_actor_p->checkEnable(0x20)) { + if (demo_actor_p->checkEnable(dDemo_actor_c::ENABLE_ANM_e)) { demo_mode = demo_actor_p->getAnmId(); } else { demo_mode = mDemo.getDemoMode(); } - if (demo_actor_p->checkEnable(0x2)) { + if (demo_actor_p->checkEnable(dDemo_actor_c::ENABLE_TRANS_e)) { pos_p = &demo_actor_p->getTrans(); } else { pos_p = ¤t.pos; } - if (demo_actor_p->checkEnable(0x8)) { + if (demo_actor_p->checkEnable(dDemo_actor_c::ENABLE_ROTATE_e)) { angle = demo_actor_p->getRatate().y; } else { angle = shape_angle.y; } - int sp14; - int sp10; - int spC; + int arg0; + int arg1; + int arg2; u16 sp8; - while (demo_actor_p->getDemoIDData(&sp14, &sp10, &spC, &sp8, NULL) != 0) { - if (sp14 == 0 && sp10 == 0) { - setNoDrawSwordShield(spC, sp8); + while (demo_actor_p->getDemoIDData(&arg0, &arg1, &arg2, &sp8, NULL) != 0) { + if (arg0 == 0 && arg1 == 0) { + setNoDrawSwordShield(arg2, sp8); } } } else { BOOL var_r28 = FALSE; - if (checkPlayerDemoMode() == 0) { + if (!checkPlayerDemoMode()) { mDemo.setSystemDemoType(); var_r28 = TRUE; @@ -677,10 +687,8 @@ void daAlink_c::setDemoData() { char* cut_name = dComIfGp_getPEvtManager()->getMyNowCutName(mAlinkStaffId); if (cut_name != NULL) { - // Take the first 3 chars in cut_name, convert them to integers, and calculate - // demo_mode - demo_mode = ((cut_name[0] - '0') * 100) + ((cut_name[1] - '0') * 10) + - (cut_name[2] - '0'); + // Take the first 3 chars in cut_name, convert them to integers, and calculate demo_mode + demo_mode = ((cut_name[0] - '0') * 100) + ((cut_name[1] - '0') * 10) + (cut_name[2] - '0'); if (mDemo.getDemoType() != daPy_demo_c::DEMO_TYPE_START_e && (demo_mode == daPy_demo_c::DEMO_UNK_1_e || demo_mode == daPy_demo_c::DEMO_UNK_23_e) && mLinkAcch.ChkGroundHit() && !checkModeFlg(0x70C52)) { @@ -732,7 +740,7 @@ void daAlink_c::setDemoData() { if ((mEquipItem == fpcNm_ITEM_IRONBALL || checkFishingRodItem(mEquipItem)) && demo_mode != daPy_demo_c::DEMO_UNK_1_e && demo_mode != daPy_demo_c::DEMO_UNK_31_e && (mAlinkStaffId != -1 || mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_ORIGINAL_e) && - (demo_mode != daPy_demo_c::DEMO_UNK_6_e || (var_r28 == 0 && !checkEquipAnime()))) + (demo_mode != daPy_demo_c::DEMO_UNK_6_e || (!var_r28 && !checkEquipAnime()))) { deleteEquipItem(FALSE, TRUE); if (checkIronBallWaitAnime()) { @@ -747,7 +755,7 @@ void daAlink_c::setDemoData() { mDemo.decTimer(); cXyz tmp_sp = current.pos - home.pos; - if (tmp_sp.abs2XZ() > 90000.0f) { + if (tmp_sp.abs2XZ() > SQUARE(300.0f)) { mDemo.setTimer(0); dComIfGp_evmng_cutEnd(mAlinkStaffId); } @@ -772,7 +780,7 @@ void daAlink_c::setDemoData() { if (demo_mode == daPy_demo_c::DEMO_UNK_4_e) { mNormalSpeed = 0.0f; speedF = 0.0f; - field_0x814.ClrCcMove(); + mCcStts.ClrCcMove(); setPlayerPosAndAngle(pos_p, angle, 0); mDemo.setMoveAngle(angle); } else if (checkDemoMoveMode(demo_mode)) { @@ -815,16 +823,16 @@ void daAlink_c::setDemoData() { if (prm2 != 0) { if (!checkWolf()) { if (prm2 == 1) { - setFacePriTexture(FTANM_UNK_0); - setFacePriBck(0x15A); + setFacePriTexture(FTANM_0); + setFacePriBck(dRes_ID_ALANM_BCK_FTURNBACK_e); } else if (prm2 == 2) { - setFacePriBtp(0x3E1); - field_0x2154->setFrame(field_0x2154->getFrameMax()); + setFacePriBtp(dRes_ID_ALANM_BTP_FMABA03_e); + mpFaceBtp->setFrame(mpFaceBtp->getFrameMax()); - setFacePriBtk(0x37B); + setFacePriBtk(dRes_ID_ALANM_BTK_FMABA03_e); mpFaceBtk->setFrame(mpFaceBtk->getFrameMax()); - setFacePriBck(0x149); + setFacePriBck(dRes_ID_ALANM_BCK_FK_e); } offNoResetFlg1(FLG1_UNK_2000); @@ -838,13 +846,15 @@ void daAlink_c::setDemoData() { } } - void daAlink_c::resetDemoBck() { mFaceBckHeap.resetArcNo(); mFaceBtpHeap.resetArcNo(); mFaceBtkHeap.resetArcNo(); - mUnderAnmHeap[0].resetArcNo(); - mUnderAnmHeap[0].resetIdx(); + + daPy_anmHeap_c* anmHeap = mUnderAnmHeap; + anmHeap->resetArcNo(); + anmHeap->resetIdx(); + mFaceBckHeap.resetIdx(); mFaceBtpHeap.resetIdx(); mFaceBtkHeap.resetIdx(); @@ -876,9 +886,9 @@ void daAlink_c::resetSpecialEvent() { } void daAlink_c::endDemoMode() { - BOOL temp_r30 = checkFlyAtnWait(); + BOOL flyAtnWait = checkFlyAtnWait(); endHighModel(); - offNoResetFlg0(FLG0_UNK_10400); + offNoResetFlg0(daPy_FLG0(FLG0_UNK_10000 | FLG0_UNK_400)); field_0x06f4 = NULL; if (field_0x06f8 != NULL) { @@ -895,7 +905,7 @@ void daAlink_c::endDemoMode() { offNoResetFlg0(FLG0_UNK_100000); dComIfGp_clearPlayerStatus0(0, 0x10); - BOOL temp_r29 = mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_START_e; + BOOL isDemoTypeStart = mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_START_e; BOOL var_r0 = mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_14_e || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_26_e; mDemo.resetDemoType(); @@ -918,7 +928,7 @@ void daAlink_c::endDemoMode() { procHorseWaitInit(); } } else if (!checkSpinnerRide() && mProcID != PROC_FISHING_CAST) { - if (temp_r30) { + if (flyAtnWait) { if (checkSwimAction(1)) { if (checkWolf()) { procWolfSwimMoveInit(); @@ -928,16 +938,15 @@ void daAlink_c::endDemoMode() { } else { checkWaitAction(); } - } else if ((mLinkAcch.ChkGroundHit() && (!checkUpperReadyThrowAnime() || var_r0 == 0) && + } else if ((mLinkAcch.ChkGroundHit() && (!checkUpperReadyThrowAnime() || !var_r0) && !checkModeFlg(0x4070C52) && mProcID != PROC_LARGE_DAMAGE_UP && mProcID != PROC_WOLF_LARGE_DAMAGE_UP) || checkMagneBootsOn()) { - if (temp_r29 && (mProcID == PROC_MOVE || mProcID == PROC_WOLF_MOVE)) { - field_0x33a8 = mDoCPd_c::getStickValue(PAD_1); + if (isDemoTypeStart && (mProcID == PROC_MOVE || mProcID == PROC_WOLF_MOVE)) { + mStickValue = mDoCPd_c::getStickValue(PAD_1); mStickAngle = mDoCPd_c::getStickAngle(PAD_1) + 0x8000; - field_0x2fe2 = - mStickAngle + dCam_getControledAngleY(dComIfGp_getCamera(field_0x317c)); + mMoveAngle = mStickAngle + dCam_getControledAngleY(dComIfGp_getCamera(field_0x317c)); mNormalSpeed = speedF; commonCheckNextAction(0); } else if (mProcID == PROC_HAWK_CATCH || mProcID == PROC_HAWK_SUBJECT) { @@ -985,18 +994,30 @@ BOOL daAlink_c::checkFlyAtnWait() { return mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_23_e && (mDemo.getParam1() == 4 || mDemo.getParam1() == 5); } -void daAlink_c::setGetItemFace(u16 param_0) { - if (param_0 == 7 || param_0 == 6 || param_0 == 0x21 || param_0 == 0x22 || param_0 == 0x31 || - param_0 == 0x36 || (param_0 >= 0x40 && param_0 <= 0x47) || param_0 == 0x4A || - param_0 == 0x56 || param_0 == 0xED || param_0 == 0x73 || param_0 == 0x75 || - param_0 == 0xEB || param_0 == 0xA1 || param_0 == 0xA2 || param_0 == 0xA3) +void daAlink_c::setGetItemFace(u16 i_itemNo) { + if (i_itemNo == fpcNm_ITEM_SILVER_RUPEE + || i_itemNo == fpcNm_ITEM_ORANGE_RUPEE + || i_itemNo == fpcNm_ITEM_KAKERA_HEART + || i_itemNo == fpcNm_ITEM_UTAWA_HEART + || i_itemNo == fpcNm_ITEM_WEAR_ZORA + || i_itemNo == fpcNm_ITEM_WALLET_LV3 + || (i_itemNo >= fpcNm_ITEM_BOOMERANG && i_itemNo <= fpcNm_ITEM_W_HOOKSHOT) + || i_itemNo == fpcNm_ITEM_FISHING_ROD_1 + || i_itemNo == fpcNm_ITEM_ARROW_LV3 + || i_itemNo == fpcNm_ITEM_LINKS_SAVINGS + || i_itemNo == fpcNm_ITEM_FAIRY_DROP + || i_itemNo == fpcNm_ITEM_DROP_BOTTLE + || i_itemNo == fpcNm_ITEM_ANCIENT_DOCUMENT2 + || i_itemNo == fpcNm_ITEM_DROP_CONTAINER + || i_itemNo == fpcNm_ITEM_DROP_CONTAINER02 + || i_itemNo == fpcNm_ITEM_DROP_CONTAINER03) { - setFaceBasicBck(0x143); - } else if (param_0 == 0x25 || param_0 == 0xEC) { - setFaceBasicTexture(FTANM_UNK_7C); - setFaceBasicBck(0x149); - } else if (param_0 == 0xF4 || param_0 == 0xF5) { - setFaceBasicBck(0x146); + setFaceBasicBck(dRes_ID_ALANM_BCK_FI_e); + } else if (i_itemNo == fpcNm_ITEM_DUNGEON_EXIT || i_itemNo == fpcNm_ITEM_LV7_DUNGEON_EXIT) { + setFaceBasicTexture(FTANM_K_A); + setFaceBasicBck(dRes_ID_ALANM_BCK_FK_e); + } else if (i_itemNo == fpcNm_ITEM_TOMATO_PUREE || i_itemNo == fpcNm_ITEM_TASTE) { + setFaceBasicBck(dRes_ID_ALANM_BCK_FJ_e); } } @@ -1038,19 +1059,15 @@ int daAlink_c::setTalkStartBack(cXyz* param_0) { return 0; } - void daAlink_c::setShapeAngleToTalkActor() { fopAc_ac_c* partner_p = fopAcM_getTalkEventPartner(this); if (partner_p != NULL) { s16 partner_name = fopAcM_GetName(partner_p); if (partner_name != PROC_MYNA && - (partner_name != PROC_Tag_Mwait || - !static_cast(partner_p)->checkEndMessage()) && - (partner_name != PROC_Tag_Mhint || - !static_cast(partner_p)->checkNoAttention()) && - (partner_name != PROC_Tag_Mstop || - !static_cast(partner_p)->checkNoAttention()) && + (partner_name != PROC_Tag_Mwait || !static_cast(partner_p)->checkEndMessage()) && + (partner_name != PROC_Tag_Mhint || !static_cast(partner_p)->checkNoAttention()) && + (partner_name != PROC_Tag_Mstop || !static_cast(partner_p)->checkNoAttention()) && partner_name != PROC_MIDNA) { s16 target; @@ -1088,9 +1105,8 @@ u8 daAlink_c::setTradeItemAnime() { item_no = dComIfGp_event_getPreItemNo(); } - fpc_ProcID partner_id = fopAcM_createItemForPresentDemo( - ¤t.pos, item_no, 3, -1, fopAcM_GetRoomNo(this), &shape_angle, &scale); - dComIfGp_event_setItemPartnerId(partner_id); + dComIfGp_event_setItemPartnerId(fopAcM_createItemForPresentDemo( + ¤t.pos, item_no, 3, -1, fopAcM_GetRoomNo(this), &shape_angle, &scale)); } keepItemData(); @@ -1101,29 +1117,28 @@ void daAlink_c::setTradeItemOutHand() { daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; if (frame_ctrl->getFrame() >= 59.0f) { - field_0x2f92 = 4; + mLeftHandIndex = 4; } else if (frame_ctrl->getFrame() >= 20.0f) { - field_0x2f92 = 0; + mLeftHandIndex = 0; } } -BOOL daAlink_c::checkEndMessage(u32 param_0) { +BOOL daAlink_c::checkEndMessage(u32 i_msgIdx) { if (mMsgClassID == fpcM_ERROR_PROCESS_ID_e) { - mMsgClassID = fopMsgM_messageSet(param_0, 1000); + mMsgClassID = fopMsgM_messageSet(i_msgIdx, 1000); } else { msg_class* msg = fopMsgM_SearchByID(mMsgClassID); - if (msg != NULL) { - if (msg->mode == 14) { - msg->mode = 16; - } else if (msg->mode == 0x12) { - msg->mode = 0x13; - return 1; + if (msg->mode == fopMsg_MODE_MSG_DISPLAYED_e) { + msg->mode = fopMsg_MODE_MSG_END_e; + } else if (msg->mode == fopMsg_MODE_BOX_CLOSED_e) { + msg->mode = fopMsg_MODE_MSG_DESTROYED_e; + return TRUE; } } } - return 0; + return FALSE; } u8 daAlink_c::setDemoRightHandIndex(u16 param_0) { @@ -1175,7 +1190,7 @@ void daAlink_c::setDemoRide(u16 param_0) { onModeFlg(0x400); horse_p->onRideFlg(); field_0x384c = (cXyz*)&l_horseBaseAnime; - mRideStatus = 1; + mRideStatus = RIDETYPE_HORSE; } } else { if (horse_p != NULL) { @@ -1187,30 +1202,30 @@ void daAlink_c::setDemoRide(u16 param_0) { } } -void daAlink_c::setDemoBodyBck(dDemo_actor_c* param_0, u16 param_1) { - J3DAnmTransform* bck = (J3DAnmTransform*)mUnderAnmHeap[0].loadDataDemoRID(param_1, 0); +void daAlink_c::setDemoBodyBck(dDemo_actor_c* i_demoActor, u16 i_resID) { + daPy_anmHeap_c* anmHeap = mUnderAnmHeap; + J3DAnmTransform* bck = (J3DAnmTransform*)anmHeap->loadDataDemoRID(i_resID, 0); if (bck != NULL) { setFrameCtrl(mUnderFrameCtrl, bck->getAttribute(), 0, bck->getFrameMax(), 1.0f, 0.0f); mNowAnmPackUnder[0].setAnmTransform(bck); mNowAnmPackUpper[0].setAnmTransform(bck); dDemo_actor_c* demo_actor_p = dDemo_c::getActor(demoActorID); - if (demo_actor_p->checkEnable(0x80)) { + if (demo_actor_p->checkEnable(dDemo_actor_c::ENABLE_ANM_TRANSITION_e)) { field_0x2060->initOldFrameMorf(demo_actor_p->getPrm_Morf(), 0, field_0x30c6); } field_0x2f8c = 0; - param_0->setAnmFrameMax(bck->getFrameMax()); + i_demoActor->setAnmFrameMax(bck->getFrameMax()); setBasAnime(UNDER_0); } } - BOOL daAlink_c::checkFinalBattle() { return checkStageName("D_MN09B") && dComIfGs_isSaveDunSwitch(1); } -BOOL daAlink_c::checkRestartDead(int i_dmgAmount, int i_checkZoraMag) { +BOOL daAlink_c::checkRestartDead(int i_dmgAmount, BOOL i_checkZoraMag) { i_dmgAmount *= (int)damageMagnification(i_checkZoraMag, 1); if (mProcID != PROC_DEAD && i_dmgAmount >= dComIfGs_getLife() && !checkMagicArmorNoDamage() && @@ -1218,10 +1233,10 @@ BOOL daAlink_c::checkRestartDead(int i_dmgAmount, int i_checkZoraMag) { { onNoResetFlg2(FLG2_FORCE_GAMEOVER); procCoDeadInit(0); - return 1; + return TRUE; } - return 0; + return FALSE; } void daAlink_c::setDeadRideSyncPos() { @@ -1256,14 +1271,14 @@ BOOL daAlink_c::checkDeadAction(int param_0) { offCargoCarry(); - int var_r29; + int poly_exitId; if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && -G_CM3D_F_INF != mLinkAcch.GetGroundH()) { - var_r29 = dComIfG_Bgsp().GetExitId(mLinkAcch.m_gnd); + poly_exitId = dComIfG_Bgsp().GetExitId(mLinkAcch.m_gnd); } else { - var_r29 = 0x3F; + poly_exitId = 0x3F; } - if (((var_r29 != 0x3F || mExitID != 0x3F) && field_0x3174 == 5 && field_0x33c8 - current.pos.y > 500.0f) || ((mExitID & 0x8000) && checkModeFlg(2))) { + if (((poly_exitId != 0x3F || mExitID != 0x3F) && mGroundCode == 5 && field_0x33c8 - current.pos.y > 500.0f) || ((mExitID & 0x8000) && checkModeFlg(2))) { onNoResetFlg2(FLG2_FORCE_GAMEOVER); return procCoDeadInit(0); } @@ -1279,24 +1294,24 @@ BOOL daAlink_c::checkDeadAction(int param_0) { return 0; } -void daAlink_c::setHighModelBck(mDoExt_bckAnm* i_bck, u16 i_anmID) { - if (i_bck != NULL) { - J3DAnmTransform* bck = (J3DAnmTransform*)dComIfG_getObjectIDRes( - dStage_roomControl_c::getDemoArcName(), i_anmID); +void daAlink_c::setHighModelBck(mDoExt_bckAnm* i_bck, u16 i_resID) { + if (i_bck == NULL) { + return; + } - if (bck != NULL && i_bck->getBckAnm() != bck) { - if (field_0x06b4 == bck) { - mpDemoHDTmpBck->changeBckOnly(NULL); - } else { - i_bck->init(bck, TRUE, -1, 1.0f, 0, -1, true); - } + J3DAnmTransform* bck = (J3DAnmTransform*)dComIfG_getObjectIDRes(dStage_roomControl_c::getDemoArcName(), i_resID); + if (bck != NULL && i_bck->getBckAnm() != bck) { + if (field_0x06b4 == bck) { + mpDemoHDTmpBck->changeBckOnly(NULL); + } else { + i_bck->init(bck, TRUE, -1, 1.0f, 0, -1, true); } } } -void daAlink_c::setHighModelFaceBtk(u16 i_anmID) { +void daAlink_c::setHighModelFaceBtk(u16 i_resID) { J3DAnmTextureSRTKey* btk = static_cast(dComIfG_getObjectIDRes( - dStage_roomControl_c::getDemoArcName(), i_anmID)); + dStage_roomControl_c::getDemoArcName(), i_resID)); if (btk && field_0x068c != btk) { btk->searchUpdateMaterialID(mpDemoFCTongueModel->getModelData()); @@ -1307,111 +1322,109 @@ void daAlink_c::setHighModelFaceBtk(u16 i_anmID) { } } -void daAlink_c::setDemoBrk(J3DAnmTevRegKey** param_0, J3DModel* param_1, u16 i_anmID) { +void daAlink_c::setDemoBrk(J3DAnmTevRegKey** o_ppbrk, J3DModel* i_model, u16 i_resID) { J3DAnmTevRegKey* brk = static_cast(dComIfG_getObjectIDRes( - dStage_roomControl_c::getDemoArcName(), i_anmID)); + dStage_roomControl_c::getDemoArcName(), i_resID)); - if (brk != NULL && *param_0 != brk) { - brk->searchUpdateMaterialID(param_1->getModelData()); - param_1->getModelData()->entryTevRegAnimator(brk); + if (brk != NULL && *o_ppbrk != brk) { + brk->searchUpdateMaterialID(i_model->getModelData()); + i_model->getModelData()->entryTevRegAnimator(brk); brk->setFrame(0.0f); - *param_0 = brk; + *o_ppbrk = brk; } } -f32 daAlink_c::setStickAnmData(J3DAnmBase* i_anm, int param_1, int param_2, u16 param_3, - int param_4) { +f32 daAlink_c::setStickAnmData(J3DAnmBase* i_anm, int i_arg1, int i_arg2, u16 i_resID, + int i_stickDirection) { dDemo_actor_c* demo_actor_p = dDemo_c::getActor(demoActorID); - f32 var_f31; + f32 frame; if (i_anm != NULL) { - var_f31 = i_anm->getFrame(); + frame = i_anm->getFrame(); } else { - var_f31 = 0.0f; + frame = 0.0f; } - if (param_4 == 0 || (checkInputOnR() && param_4 == getDirectionFromAngle(mStickAngle) + 1)) { - if (param_4 != 0) { + if (i_stickDirection == 0 || (checkInputOnR() && i_stickDirection == getDirectionFromAngle(mStickAngle) + 1)) { + if (i_stickDirection != 0) { dDemo_c::setBranchId(1, 1); } - if (param_1 == 1) { - if (param_2 == 2) { - setDemoBodyBck(demo_actor_p, param_3); + if (i_arg1 == 1) { + if (i_arg2 == 2) { + setDemoBodyBck(demo_actor_p, i_resID); - if (param_4 == 0) { - if (demo_actor_p->checkEnable(0x40)) { - var_f31 = demo_actor_p->getAnmFrame(); + if (i_stickDirection == 0) { + if (demo_actor_p->checkEnable(dDemo_actor_c::ENABLE_ANM_FRAME_e)) { + frame = demo_actor_p->getAnmFrame(); } else { - var_f31 = 0.0f; + frame = 0.0f; } } } - } else if (param_1 == 9) { - if (param_2 == 2) { + } else if (i_arg1 == 9) { + if (i_arg2 == 2) { if (checkNoResetFlg1(FLG1_UNK_10)) { - setHighModelBck(mpDemoFCTmpBck, param_3); + setHighModelBck(mpDemoFCTmpBck, i_resID); return 0.0f; } - setFaceDemoBck(param_3); - } else if (param_2 == 3) { + setFaceDemoBck(i_resID); + } else if (i_arg2 == 3) { if (checkNoResetFlg1(FLG1_UNK_10)) { - setHighModelFaceBtk(param_3); + setHighModelFaceBtk(i_resID); return 0.0f; } - setFaceDemoBtk(param_3); - } else if (param_2 == 5) { - setFaceDemoBtp(param_3); + setFaceDemoBtk(i_resID); + } else if (i_arg2 == 5) { + setFaceDemoBtp(i_resID); } - if (param_4 != 0 && i_anm != NULL) { - for (; var_f31 > i_anm->getFrameMax(); var_f31 -= i_anm->getFrameMax()) { - } - i_anm->setFrame(var_f31); + if (i_stickDirection != 0 && i_anm != NULL) { + for (; frame > i_anm->getFrameMax(); frame -= i_anm->getFrameMax()) {} + i_anm->setFrame(frame); } - } else if (param_1 == 5) { - setHighModelBck(mpDemoHRTmpBck, param_3); - } else if (param_1 == 6) { - setHighModelBck(mpDemoHLTmpBck, param_3); - } else if (param_1 == 4) { - setHighModelBck(mpDemoHDTmpBck, param_3); + } else if (i_arg1 == 5) { + setHighModelBck(mpDemoHRTmpBck, i_resID); + } else if (i_arg1 == 6) { + setHighModelBck(mpDemoHLTmpBck, i_resID); + } else if (i_arg1 == 4) { + setHighModelBck(mpDemoHDTmpBck, i_resID); } } - if (param_4 != 0 && i_anm != NULL) { - for (; var_f31 > i_anm->getFrameMax(); var_f31 -= i_anm->getFrameMax()) { - } + if (i_stickDirection != 0 && i_anm != NULL) { + for (; frame > i_anm->getFrameMax(); frame -= i_anm->getFrameMax()) {} } - return var_f31; + return frame; } -static int daAlink_c_getDemoIDData(dDemo_actor_c* param_0, int* param_1, int* param_2, - int* param_3, u16* param_4, int* param_5, int* param_6) { - JStudio::stb::TParseData_fixed<51, TValueIterator_misaligned > sp30(param_0->getPrm()->getData()); +static int daAlink_c_getDemoIDData(dDemo_actor_c* i_demoActor, int* o_arg0, int* o_arg1, + int* o_arg2, u16* o_resID, int* o_stickDirection, int* param_6) { + JStudio::stb::TParseData_fixed<51, TValueIterator_misaligned > parseData(i_demoActor->getPrm()->getData()); static JStudio::stb::TParseData_fixed<51, TValueIterator_misaligned > dummy; static JGadget::binary::TValueIterator_misaligned it(dummy.begin()); - if (it == sp30.end()) { + if (it == parseData.end()) { it = dummy.begin(); return 0; } if (it == dummy.begin()) { - it = sp30.begin(); + it = parseData.begin(); } - u32 var_r31 = *it; - *param_1 = var_r31 >> 0x1E; - *param_2 = (var_r31 >> 0x18) & 0xF; - *param_6 = (var_r31 >> 0x17) & 1; - *param_3 = (var_r31 >> 0x10) & 0xF; - *param_4 = var_r31 & 0xFFFF; - *param_5 = (var_r31 >> 0x14) & 7; + u32 u32data = *it; + *o_arg0 = u32data >> 0x1E; + *o_arg1 = (u32data >> 0x18) & 0xF; + *param_6 = (u32data >> 0x17) & 1; + *o_arg2 = (u32data >> 0x10) & 0xF; + *o_resID = u32data & 0xFFFF; + *o_stickDirection = (u32data >> 0x14) & 7; it++; return 1; @@ -1450,7 +1463,7 @@ int daAlink_c::procCoToolDemoInit() { field_0x3478 = 0.0f; field_0x37c8 = current.pos; - onEndResetFlg1(ERFLG1_GANON_FINISH); + onEndResetFlg1(ERFLG1_SHIELD_BACKBONE); return 1; } @@ -1458,73 +1471,82 @@ int daAlink_c::procCoToolDemo() { dDemo_actor_c* demo_actor_p = dDemo_c::getActor(demoActorID); BOOL var_r29 = 0; - onEndResetFlg1(ERFLG1_GANON_FINISH); + onEndResetFlg1(ERFLG1_SHIELD_BACKBONE); field_0x3198 = 0; mProcVar4.field_0x3010 = 0; field_0x2fab = 0; if (demo_actor_p != NULL) { - f32 var_f31 = 0.0f; + u16 spA = (mDemo.getDemoMode() >> 9) - 1; + f32 anm_frame = 0.0f; - if (demo_actor_p->checkEnable(2)) { + if (demo_actor_p->checkEnable(dDemo_actor_c::ENABLE_TRANS_e)) { current.pos = demo_actor_p->getTrans(); } - if (demo_actor_p->checkEnable(8)) { + if (demo_actor_p->checkEnable(dDemo_actor_c::ENABLE_ROTATE_e)) { shape_angle = demo_actor_p->getRatate(); current.angle = shape_angle; } - if (demo_actor_p->checkEnable(0x40)) { - var_f31 = demo_actor_p->getAnmFrame(); + if (demo_actor_p->checkEnable(dDemo_actor_c::ENABLE_ANM_FRAME_e)) { + anm_frame = demo_actor_p->getAnmFrame(); } - if (demo_actor_p->checkEnable(1)) { - int sp1C; - int sp18; - int sp14; - int sp10; + if (demo_actor_p->checkEnable(dDemo_actor_c::ENABLE_ANM_TRANSITION_e)) { + + } + + if (demo_actor_p->checkEnable(dDemo_actor_c::ENABLE_UNK_e)) { + int arg0; + int arg1; + int arg2; + int stickDirection; int spC; - u16 sp8; - while (daAlink_c_getDemoIDData(demo_actor_p, &sp1C, &sp18, &sp14, &sp8, &sp10, &spC)) { - if (sp10 != 0 && dDemo_c::getBranchId() == -1) { + u16 resID; + while (daAlink_c_getDemoIDData(demo_actor_p, &arg0, &arg1, &arg2, &resID, &stickDirection, &spC)) { + if (stickDirection != 0 && dDemo_c::getBranchId() == -1) { dDemo_c::setBranchId(1, 0); + + #if VERSION == VERSION_SHIELD_DEBUG + dDemo_c::setBranchNum(2); + #endif } - if (sp1C == 0) { - if (sp18 == 5) { - field_0x2f93 = setDemoRightHandIndex(sp8); - } else if (sp18 == 6) { - field_0x2f92 = setDemoLeftHandIndex(sp8); - } else if (sp18 == 9) { - if (sp8 == 1 && mpDemoFCBlendModel != NULL && mpDemoFCTongueModel != NULL) { + if (arg0 == 0) { + if (arg1 == 5) { + mRightHandIndex = setDemoRightHandIndex(resID); + } else if (arg1 == 6) { + mLeftHandIndex = setDemoLeftHandIndex(resID); + } else if (arg1 == 9) { + if (resID == 1 && mpDemoFCBlendModel != NULL && mpDemoFCTongueModel != NULL) { onNoResetFlg1(FLG1_UNK_10); - var_r29 = 1; + var_r29 = TRUE; } else { endHighModel(); } - } else if (sp18 == 7) { - if (sp8 == 1) { + } else if (arg1 == 7) { + if (resID == 1) { field_0x2fab |= 2; } - } else if (sp18 == 8) { - if (sp8 == 1) { + } else if (arg1 == 8) { + if (resID == 1) { field_0x2fab |= 1; } - } else if (sp18 == 0) { - if (sp14 == 1) { - field_0x3198 = sp8; - } else if (sp14 == 2) { - setDemoRide(sp8); - } else if (sp14 == 4 && - (mProcVar2.field_0x300c == 0 || (sp8 != 0 && mProcVar2.field_0x300c == 1) || - (sp8 == 0 && mProcVar2.field_0x300c == 2))) + } else if (arg1 == 0) { + if (arg2 == 1) { + field_0x3198 = resID; + } else if (arg2 == 2) { + setDemoRide(resID); + } else if (arg2 == 4 && + (mProcVar2.field_0x300c == 0 || (resID != 0 && mProcVar2.field_0x300c == 1) || + (resID == 0 && mProcVar2.field_0x300c == 2))) { if (mProcVar2.field_0x300c == 0) { changeWarpMaterial(WARP_MAT_MODE_0); } - if (sp8 != 0) { + if (resID != 0) { field_0x3484 = 1.0f; field_0x3480 = -0.5f; @@ -1550,76 +1572,75 @@ int daAlink_c::procCoToolDemo() { } } } - } else if (sp1C == 1) { + } else if (arg0 == 1) { JUT_ASSERT(2345, FALSE); - } else if (sp1C == 2) { - if (sp18 == 1) { - if (sp14 == 2) { - var_f31 = - setStickAnmData(getNowAnmPackUnder(UNDER_0), sp18, sp14, sp8, sp10); - } else if (sp14 == 4) { + } else if (arg0 == 2) { + if (arg1 == 1) { + if (arg2 == 2) { + anm_frame = setStickAnmData(getNowAnmPackUnder(UNDER_0), arg1, arg2, resID, stickDirection); + } else if (arg2 == 4) { J3DAnmTevRegKey* btk_p = (J3DAnmTevRegKey*)dComIfG_getObjectIDRes( - dStage_roomControl_c::getDemoArcName(), sp8); + dStage_roomControl_c::getDemoArcName(), resID); if (btk_p != NULL && field_0x06f4 != btk_p) { btk_p->setFrame(0.0f); field_0x06f4 = btk_p; } if (btk_p != NULL && spC == 0) { - btk_p->setFrame(var_f31); + btk_p->setFrame(anm_frame); } } - } else if (sp18 == 4) { - if (sp14 == 2) { - setStickAnmData(NULL, sp18, sp14, sp8, sp10); + } else if (arg1 == 4) { + if (arg2 == 2) { + setStickAnmData(NULL, arg1, arg2, resID, stickDirection); if (mpDemoHDTmpBck != NULL && spC == 0) { - mpDemoHDTmpBck->setFrame(var_f31); + mpDemoHDTmpBck->setFrame(anm_frame); } } - } else if (sp18 == 6) { - if (sp14 == 2) { - setStickAnmData(NULL, sp18, sp14, sp8, sp10); + } else if (arg1 == 6) { + if (arg2 == 2) { + setStickAnmData(NULL, arg1, arg2, resID, stickDirection); if (mpDemoHLTmpBck != NULL && spC == 0) { - mpDemoHLTmpBck->setFrame(var_f31); + mpDemoHLTmpBck->setFrame(anm_frame); } - } else if (sp14 == 4 && field_0x2f92 == 0xFB) { - setDemoBrk(&field_0x06f8, mpDemoHLTmpModel, sp8); + } else if (arg2 == 4 && mLeftHandIndex == 0xFB) { + setDemoBrk(&field_0x06f8, mpDemoHLTmpModel, resID); if (field_0x06f8 != NULL && spC == 0) { - field_0x06f8->setFrame(var_f31); + field_0x06f8->setFrame(anm_frame); } } - } else if (sp18 == 5) { - if (sp14 == 2) { - setStickAnmData(NULL, sp18, sp14, sp8, sp10); + } else if (arg1 == 5) { + if (arg2 == 2) { + setStickAnmData(NULL, arg1, arg2, resID, stickDirection); if (mpDemoHRTmpBck != NULL && spC == 0) { - mpDemoHRTmpBck->setFrame(var_f31); + mpDemoHRTmpBck->setFrame(anm_frame); } } - } else if (sp18 == 9) { - if (sp14 == 2) { - setStickAnmData(field_0x2164.getBckAnm(), sp18, sp14, sp8, sp10); + } else if (arg1 == 9) { + if (arg2 == 2) { + setStickAnmData(mFaceBck.getBckAnm(), arg1, arg2, resID, stickDirection); if (mpDemoFCTmpBck != NULL && spC == 0) { - mpDemoFCTmpBck->setFrame(var_f31); + mpDemoFCTmpBck->setFrame(anm_frame); } - } else if (sp14 == 3) { - setStickAnmData(mpFaceBtk, sp18, sp14, sp8, sp10); + } else if (arg2 == 3) { + setStickAnmData(mpFaceBtk, arg1, arg2, resID, stickDirection); if (mpFaceBtk != NULL && spC == 0) { - mpFaceBtk->setFrame(var_f31); + mpFaceBtk->setFrame(anm_frame); } - } else if (sp14 == 5) { - setStickAnmData(field_0x2154, sp18, sp14, sp8, sp10); + } else if (arg2 == 5) { + setStickAnmData(mpFaceBtp, arg1, arg2, resID, stickDirection); - if (field_0x2154 != NULL && spC == 0) { - field_0x2154->setFrame(var_f31); + if (mpFaceBtp != NULL && spC == 0) { + mpFaceBtp->setFrame(anm_frame); } - } else if (sp14 == 7) { + } else if (arg2 == 7) { J3DAnmCluster* blk_p = (J3DAnmCluster*)dComIfG_getObjectIDRes( - dStage_roomControl_c::getDemoArcName(), sp8); + dStage_roomControl_c::getDemoArcName(), resID); if (field_0x0698 != blk_p) { field_0x0698 = blk_p; field_0x069c->init(mpDemoFCTmpBls, field_0x0698, FALSE, @@ -1629,7 +1650,7 @@ int daAlink_c::procCoToolDemo() { if (spC == 0) { if (field_0x069c != NULL && field_0x069c->getBlkAnm() != NULL) { - field_0x069c->getBlkAnm()->setFrame(var_f31); + field_0x069c->getBlkAnm()->setFrame(anm_frame); } } } @@ -1638,10 +1659,10 @@ int daAlink_c::procCoToolDemo() { } } - if (demo_actor_p->checkEnable(0x40)) { - getNowAnmPackUnder(UNDER_0)->setFrame(var_f31); + if (demo_actor_p->checkEnable(dDemo_actor_c::ENABLE_ANM_FRAME_e)) { + getNowAnmPackUnder(UNDER_0)->setFrame(anm_frame); demo_actor_p->setAnmFrameMax(getNowAnmPackUnder(UNDER_0)->getFrameMax()); - mUnderFrameCtrl[0].setFrame(var_f31); + mUnderFrameCtrl[0].setFrame(anm_frame); } } @@ -1660,7 +1681,6 @@ int daAlink_c::procCoToolDemo() { return 1; } - int daAlink_c::procCoTalkInit() { if (mProcID == PROC_TALK) { return 0; @@ -1724,7 +1744,6 @@ int daAlink_c::procCoTalkInit() { return 1; } - int daAlink_c::procCoTalk() { if (dComIfGp_checkPlayerStatus0(0, 0x8000000)) { field_0x2f99 = 13; @@ -1738,12 +1757,11 @@ int daAlink_c::procCoTalk() { if (mLinkAcch.ChkWallHit()) { dBgS_AcchCir* acchCir_p = mAcchCir; - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 3; i++, acchCir_p++) { if (acchCir_p->ChkWallHit()) { var_r30 = cLib_distanceAngleS(acchCir_p->GetWallAngleY(), current.angle.y); break; } - acchCir_p++; } } @@ -1775,7 +1793,6 @@ int daAlink_c::procCoTalk() { return 1; } - int daAlink_c::procCoOpenTreasureInit() { if (!commonProcInitNotSameProc(PROC_OPEN_TREASURE)) { return 1; @@ -1837,7 +1854,6 @@ int daAlink_c::procCoOpenTreasureInit() { return 1; } - int daAlink_c::procCoOpenTreasure() { onEndResetFlg1(ERFLG1_UNK_8); @@ -1888,16 +1904,14 @@ int daAlink_c::procCoUnequipInit() { return 1; } - int daAlink_c::procCoUnequip() { if (mProcVar2.field_0x300c != 0) { if (checkAnmEnd(mUnderFrameCtrl)) { setBlendMoveAnime(3.0f); itemEquip(fpcNm_ITEM_COPY_ROD); - f32 tmp_6 = 6.0f; - mUpperFrameCtrl[2].setFrame(tmp_6); - getNowAnmPackUpper(UPPER_2)->setFrame(tmp_6); + mUpperFrameCtrl[2].setFrame(6.0f); + getNowAnmPackUpper(UPPER_2)->setFrame(6.0f); commonChangeItem(); mProcVar2.field_0x300c = 0; } @@ -1914,24 +1928,275 @@ int daAlink_c::procCoUnequip() { return 1; } -void daAlink_c::setGetSubBgm(int i_seTypeIdx) { - static u8 const getSeType[255] = { - 0x08, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x02, 0x08, 0x08, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, - 0x03, 0x03, 0x03, 0x08, 0x08, 0x08, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x02, 0x08, - 0x02, 0x02, 0x00, 0x01, 0x01, 0x02, 0x01, 0x08, 0x01, 0x08, 0x01, 0x01, 0x01, 0x08, 0x08, 0x08, - 0x01, 0x01, 0x08, 0x02, 0x08, 0x01, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x01, 0x01, 0x02, - 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x08, 0x08, 0x01, - 0x01, 0x01, 0x08, 0x08, 0x08, 0x01, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x01, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, 0x08, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, - 0x08, 0x08, 0x08, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, - 0x02, 0x02, 0x02, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x02, 0x02, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x02, 0x01, 0x02, 0x02, - 0x08, 0x01, 0x01, 0x01, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x02, 0x02, 0x01, 0x02, 0x02, 0x02, 0x08, - 0x08, 0x08, 0x08, 0x02, 0x03, 0x03, 0x01, 0x08, 0x03, 0x02, 0x02, 0x02, 0x02, 0x01, 0x02, +void daAlink_c::setGetSubBgm(int i_itemNo) { + enum { + SETYPE_HEART, + SETYPE_ITEM_GET, + SETYPE_ITEM_GET_MINI, + SETYPE_ITEM_GET_ME, + SETYPE_ITEM_GET_INSECT, + SETYPE_ITEM_GET_SMELL, + SETYPE_ITEM_GET_POU, + SETYPE_ITEM_GET_ME_S, + SETYPE_NONE, + }; + + static const u8 getSeType[255] = { + /* fpcNm_ITEM_HEART */ SETYPE_NONE, + /* fpcNm_ITEM_GREEN_RUPEE */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_BLUE_RUPEE */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_YELLOW_RUPEE */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_RED_RUPEE */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_PURPLE_RUPEE */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_ORANGE_RUPEE */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_SILVER_RUPEE */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_S_MAGIC */ SETYPE_NONE, + /* fpcNm_ITEM_L_MAGIC */ SETYPE_NONE, + /* fpcNm_ITEM_BOMB_5 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_BOMB_10 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_BOMB_20 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_BOMB_30 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_ARROW_10 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_ARROW_20 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_ARROW_30 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_ARROW_1 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_PACHINKO_SHOT */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_NOENTRY_19 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_20 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_21 */ SETYPE_NONE, + /* fpcNm_ITEM_WATER_BOMB_5 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_WATER_BOMB_10 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_WATER_BOMB_20 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_WATER_BOMB_30 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_BOMB_INSECT_5 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_BOMB_INSECT_10 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_BOMB_INSECT_20 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_BOMB_INSECT_30 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_RECOVERY_FAILY */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_TRIPLE_HEART */ SETYPE_NONE, + /* fpcNm_ITEM_SMALL_KEY */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_KAKERA_HEART */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_UTAWA_HEART */ SETYPE_HEART, + /* fpcNm_ITEM_MAP */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_COMPUS */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_DUNGEON_EXIT */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_BOSS_KEY */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_DUNGEON_BACK */ SETYPE_NONE, + /* fpcNm_ITEM_SWORD */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_MASTER_SWORD */ SETYPE_NONE, + /* fpcNm_ITEM_WOOD_SHIELD */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_SHIELD */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_HYLIA_SHIELD */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_TKS_LETTER */ SETYPE_NONE, + /* fpcNm_ITEM_WEAR_CASUAL */ SETYPE_NONE, + /* fpcNm_ITEM_WEAR_KOKIRI */ SETYPE_NONE, + /* fpcNm_ITEM_ARMOR */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_WEAR_ZORA */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_MAGIC_LV1 */ SETYPE_NONE, + /* fpcNm_ITEM_DUNGEON_EXIT_2 */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_WALLET_LV1 */ SETYPE_NONE, + /* fpcNm_ITEM_WALLET_LV2 */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_WALLET_LV3 */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_NOENTRY_55 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_56 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_57 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_58 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_59 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_60 */ SETYPE_NONE, + /* fpcNm_ITEM_ZORAS_JEWEL */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_HAWK_EYE */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_WOOD_STICK */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_BOOMERANG */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_SPINNER */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_IRONBALL */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_BOW */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_HOOKSHOT */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_HVY_BOOTS */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_COPY_ROD */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_W_HOOKSHOT */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_KANTERA */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_LIGHT_SWORD */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_FISHING_ROD_1 */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_PACHINKO */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_COPY_ROD_2 */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_NOENTRY_77 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_78 */ SETYPE_NONE, + /* fpcNm_ITEM_BOMB_BAG_LV2 */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_BOMB_BAG_LV1 */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_BOMB_IN_BAG */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_NOENTRY_82 */ SETYPE_NONE, + /* fpcNm_ITEM_LIGHT_ARROW */ SETYPE_NONE, + /* fpcNm_ITEM_ARROW_LV1 */ SETYPE_NONE, + /* fpcNm_ITEM_ARROW_LV2 */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_ARROW_LV3 */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_NOENTRY_87 */ SETYPE_NONE, + /* fpcNm_ITEM_LURE_ROD */ SETYPE_NONE, + /* fpcNm_ITEM_BOMB_ARROW */ SETYPE_NONE, + /* fpcNm_ITEM_HAWK_ARROW */ SETYPE_NONE, + /* fpcNm_ITEM_BEE_ROD */ SETYPE_NONE, + /* fpcNm_ITEM_JEWEL_ROD */ SETYPE_NONE, + /* fpcNm_ITEM_WORM_ROD */ SETYPE_NONE, + /* fpcNm_ITEM_JEWEL_BEE_ROD */ SETYPE_NONE, + /* fpcNm_ITEM_JEWEL_WORM_ROD */ SETYPE_NONE, + /* fpcNm_ITEM_EMPTY_BOTTLE */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_RED_BOTTLE */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_GREEN_BOTTLE */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_BLUE_BOTTLE */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_MILK_BOTTLE */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_HALF_MILK_BOTTLE */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_OIL_BOTTLE */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_WATER_BOTTLE */ SETYPE_NONE, + /* fpcNm_ITEM_OIL_BOTTLE_2 */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_RED_BOTTLE_2 */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_UGLY_SOUP */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_HOT_SPRING */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_FAIRY */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_HOT_SPRING_2 */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_OIL2 */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_OIL */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_NORMAL_BOMB */ SETYPE_NONE, + /* fpcNm_ITEM_WATER_BOMB */ SETYPE_NONE, + /* fpcNm_ITEM_POKE_BOMB */ SETYPE_NONE, + /* fpcNm_ITEM_FAIRY_DROP */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_WORM */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_DROP_BOTTLE */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_BEE_CHILD */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_CHUCHU_RARE */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_CHUCHU_RED */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_CHUCHU_BLUE */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_CHUCHU_GREEN */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_CHUCHU_YELLOW */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_CHUCHU_PURPLE */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_LV1_SOUP */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_LV2_SOUP */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_LV3_SOUP */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_LETTER */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_BILL */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_WOOD_STATUE */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_IRIAS_PENDANT */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_HORSE_FLUTE */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_133 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_134 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_135 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_136 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_137 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_138 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_139 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_140 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_141 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_142 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_143 */ SETYPE_NONE, + /* fpcNm_ITEM_RAFRELS_MEMO */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_ASHS_SCRIBBLING */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_NOENTRY_146 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_147 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_148 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_149 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_150 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_151 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_152 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_153 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_154 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_155 */ SETYPE_NONE, + /* fpcNm_ITEM_CHUCHU_YELLOW2 */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_OIL_BOTTLE3 */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_SHOP_BEE_CHILD */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_CHUCHU_BLACK */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_LIGHT_DROP */ SETYPE_NONE, + /* fpcNm_ITEM_DROP_CONTAINER */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_DROP_CONTAINER02 */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_DROP_CONTAINER03 */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_FILLED_CONTAINER */ SETYPE_NONE, + /* fpcNm_ITEM_MIRROR_PIECE_2 */ SETYPE_NONE, + /* fpcNm_ITEM_MIRROR_PIECE_3 */ SETYPE_NONE, + /* fpcNm_ITEM_MIRROR_PIECE_4 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_168 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_169 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_170 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_171 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_172 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_173 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_174 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_175 */ SETYPE_NONE, + /* fpcNm_ITEM_SMELL_YELIA_POUCH */ SETYPE_ITEM_GET_SMELL, + /* fpcNm_ITEM_SMELL_PUMPKIN */ SETYPE_ITEM_GET_SMELL, + /* fpcNm_ITEM_SMELL_POH */ SETYPE_ITEM_GET_SMELL, + /* fpcNm_ITEM_SMELL_FISH */ SETYPE_ITEM_GET_SMELL, + /* fpcNm_ITEM_SMELL_CHILDREN */ SETYPE_ITEM_GET_SMELL, + /* fpcNm_ITEM_SMELL_MEDICINE */ SETYPE_ITEM_GET_SMELL, + /* fpcNm_ITEM_NOENTRY_182 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_183 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_184 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_185 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_186 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_187 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_188 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_189 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_190 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_191 */ SETYPE_NONE, + /* fpcNm_ITEM_M_BEETLE */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_F_BEETLE */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_M_BUTTERFLY */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_F_BUTTERFLY */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_M_STAG_BEETLE */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_F_STAG_BEETLE */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_M_GRASSHOPPER */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_F_GRASSHOPPER */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_M_NANAFUSHI */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_F_NANAFUSHI */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_M_DANGOMUSHI */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_F_DANGOMUSHI */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_M_MANTIS */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_F_MANTIS */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_M_LADYBUG */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_F_LADYBUG */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_M_SNAIL */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_F_SNAIL */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_M_DRAGONFLY */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_F_DRAGONFLY */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_M_ANT */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_F_ANT */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_M_MAYFLY */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_F_MAYFLY */ SETYPE_ITEM_GET_INSECT, + /* fpcNm_ITEM_NOENTRY_216 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_217 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_218 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_219 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_220 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_221 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_222 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_223 */ SETYPE_NONE, + /* fpcNm_ITEM_POU_SPIRIT */ SETYPE_ITEM_GET_POU, + /* fpcNm_ITEM_NOENTRY_225 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_226 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_227 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_228 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_229 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_230 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_231 */ SETYPE_NONE, + /* fpcNm_ITEM_NOENTRY_232 */ SETYPE_NONE, + /* fpcNm_ITEM_ANCIENT_DOCUMENT */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_AIR_LETTER */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_ANCIENT_DOCUMENT2 */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_LV7_DUNGEON_EXIT */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_LINKS_SAVINGS */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_SMALL_KEY2 */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_POU_FIRE1 */ SETYPE_NONE, + /* fpcNm_ITEM_POU_FIRE2 */ SETYPE_NONE, + /* fpcNm_ITEM_POU_FIRE3 */ SETYPE_NONE, + /* fpcNm_ITEM_POU_FIRE4 */ SETYPE_NONE, + /* fpcNm_ITEM_BOSSRIDER_KEY */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_TOMATO_PUREE */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_TASTE */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_LV5_BOSS_KEY */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_SURFBOARD */ SETYPE_NONE, + /* fpcNm_ITEM_KANTERA2 */ SETYPE_ITEM_GET_ME, + /* fpcNm_ITEM_L2_KEY_PIECES1 */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_L2_KEY_PIECES2 */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_L2_KEY_PIECES3 */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_KEY_OF_CARAVAN */ SETYPE_ITEM_GET_MINI, + /* fpcNm_ITEM_LV2_BOSS_KEY */ SETYPE_ITEM_GET, + /* fpcNm_ITEM_KEY_OF_FILONE */ SETYPE_ITEM_GET_MINI, }; static u32 const bgmLabel[8] = { @@ -1939,13 +2204,13 @@ void daAlink_c::setGetSubBgm(int i_seTypeIdx) { Z2BGM_ITEM_GET_INSECT, Z2BGM_ITEM_GET_SMELL, Z2BGM_ITEM_GET_POU, Z2BGM_ITEM_GET_ME_S, }; - u32 se_type = getSeType[i_seTypeIdx]; + u32 se_type = getSeType[i_itemNo]; - if (se_type == 3 && mProcVar4.field_0x3010 == 0) { - se_type = 7; + if (se_type == SETYPE_ITEM_GET_ME && mProcVar4.field_0x3010 == 0) { + se_type = SETYPE_ITEM_GET_ME_S; } - if (se_type != 8) { + if (se_type != SETYPE_NONE) { mDoAud_subBgmStart(bgmLabel[se_type]); dComIfGp_setMesgBgmOn(); } @@ -1966,8 +2231,9 @@ BOOL daAlink_c::checkTreasureRupeeReturn(int i_itemNo) const { } int daAlink_c::procCoGetItemInit() { - BOOL var_r31 = 0; - BOOL var_r30 = 0; + s16 var_r22 = 0; + BOOL var_r31 = FALSE; + BOOL var_r30 = FALSE; if (mProcID == PROC_GET_ITEM || mProcID == PROC_INSECT_CATCH || (mProcID == PROC_PREACTION_UNEQUIP && !checkNoUpperAnime())) { @@ -1976,18 +2242,18 @@ int daAlink_c::procCoGetItemInit() { if (mProcID == PROC_OPEN_TREASURE || mProcID == PROC_GET_READY_SIT) { if (mProcID == PROC_OPEN_TREASURE) { - var_r31 = 1; + var_r31 = TRUE; } - var_r30 = 1; + var_r30 = TRUE; } mLinkAcch.ClrWallNone(); if (!checkWolf() && mEquipItem != fpcNm_ITEM_NONE && var_r30 == 0) { - if (checkModeFlg(0x400) || (checkStageName("D_MN05B") && mEquipItem == fpcNm_ITEM_BOOMERANG && - !dComIfGs_isItemFirstBit(fpcNm_ITEM_BOOMERANG))) + if (checkModeFlg(0x400) || + (checkStageName("D_MN05B") && mEquipItem == fpcNm_ITEM_BOOMERANG && !dComIfGs_isItemFirstBit(fpcNm_ITEM_BOOMERANG))) { - deleteEquipItem(0, 0); + deleteEquipItem(FALSE, FALSE); } else { return procPreActionUnequipInit(PROC_GET_ITEM, NULL); } @@ -2044,9 +2310,10 @@ int daAlink_c::procCoGetItemInit() { if (checkReinRide()) { setSyncRidePos(); if (checkBoarRide()) { - setUnderAnime(0x26E, UNDER_2, 1.0f, 0.0f, -1, -1.0f); + setUnderAnime(dRes_ID_ALANM_BCK_WAITWA_e, UNDER_2, 1.0f, 0.0f, -1, -1.0f); } } + field_0x3478 = 9.0f; mProcVar1.field_0x300a = 1; } else { @@ -2076,8 +2343,7 @@ int daAlink_c::procCoGetItemInit() { } else if (mDemo.getParam1() == 2) { mProcVar3.field_0x300e = 0; } else { - mProcVar3.field_0x300e = - shape_angle.y - (fopCamM_GetAngleY(dComIfGp_getCamera(field_0x317c)) + 0x8000); + mProcVar3.field_0x300e = shape_angle.y - (fopCamM_GetAngleY(dComIfGp_getCamera(field_0x317c)) + 0x8000); s16 temp_r28 = mProcVar3.field_0x300e + 0x16C1; s16 temp_r31 = mProcVar3.field_0x300e - 0x16C1; @@ -2093,7 +2359,7 @@ int daAlink_c::procCoGetItemInit() { mProcVar0.field_0x3008 = 0; field_0x3198 = 0; field_0x32cc = 0; - mProcVar5.field_0x3012 = 0; + mProcVar5.field_0x3012 = var_r22; dKy_Itemgetcol_chg_on(); dComIfGp_setPlayerStatus1(0, 0x4000000); @@ -2104,7 +2370,6 @@ int daAlink_c::procCoGetItemInit() { return 1; } - int daAlink_c::procCoGetItem() { if (mProcVar4.field_0x3010 != 0) { onEndResetFlg1(ERFLG1_UNK_8); @@ -2285,8 +2550,7 @@ int daAlink_c::procCoGetItem() { current.angle.y = shape_angle.y; if (checkModeFlg(0x400)) { - setDoubleAnime(0.0f, 1.0f, 1.0f, ANM_HORSE_WAIT, ANM_HORSE_WAIT, 10, - 3.0f); + setDoubleAnime(0.0f, 1.0f, 1.0f, ANM_HORSE_WAIT, ANM_HORSE_WAIT, 10, 3.0f); field_0x2f99 = 0x60; } else { setBlendMoveAnime(mpHIO->mBasic.m.mBasicInterpolation); @@ -2302,7 +2566,6 @@ int daAlink_c::procCoGetItem() { return 1; } - int daAlink_c::procCoTurnBackInit() { if (!commonProcInitNotSameProc(PROC_TURN_BACK)) { return 0; @@ -2339,14 +2602,13 @@ int daAlink_c::procCoTurnBack() { } else if (mProcVar2.field_0x300c != 0) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else if (!checkWolf() && frameCtrl_p->getFrame() >= 29.0f) { - field_0x2f92 = 1; - field_0x2f93 = 6; + mLeftHandIndex = 1; + mRightHandIndex = 6; } return 1; } - int daAlink_c::procDoorOpenInit() { if (!commonProcInitNotSameProc(PROC_DOOR_OPEN)) { return 1; @@ -2410,16 +2672,15 @@ int daAlink_c::procDoorOpenInit() { return 1; } - int daAlink_c::procDoorOpen() { daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; if (field_0x3198 == 0) { if (mProcVar2.field_0x300c == 0 && mProcVar4.field_0x3010 != 0) { if (frameCtrl_p->getFrame() >= 9.0f && frameCtrl_p->getFrame() < field_0x347c) { - field_0x2f92 = 3; + mLeftHandIndex = 3; } else { - field_0x2f92 = 4; + mLeftHandIndex = 4; } } else if (frameCtrl_p->checkPass(18.0f) && mProcVar3.field_0x300e != 0) { voiceStart(Z2SE_AL_V_PUSH_ROCK); @@ -2468,7 +2729,6 @@ int daAlink_c::procDoorOpen() { return 1; } - int daAlink_c::procCoLookWaitInit() { if (!commonProcInitNotSameProc(PROC_LOOK_WAIT)) { return 0; @@ -2497,7 +2757,6 @@ int daAlink_c::procCoLookWaitInit() { return 1; } - int daAlink_c::procCoLookWait() { fopAc_ac_c* look_actor_p = getDemoLookActor(); @@ -2565,12 +2824,12 @@ void daAlink_c::setMonkeyMoveAnime() { daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; if (mDemo.getParam0() == 0) { - field_0x2f92 = 0xFE; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0xFE; + mRightHandIndex = 0xFE; frame_ctrl->setFrame(0.0f); } else { - field_0x2f92 = 2; - field_0x2f93 = 5; + mLeftHandIndex = 2; + mRightHandIndex = 5; frame_ctrl->setFrame(1.0f); } @@ -2662,12 +2921,12 @@ int daAlink_c::procCoDeadInit(int param_0) { if (checkWolf()) { if (checkModeFlg(0x40000)) { setSingleAnimeWolfBase(WANM_SWIM_DIE); - setFaceBasicTexture(FTANM_UNK_9D); + setFaceBasicTexture(FTANM_WL_SWIMDIEA); dComIfGp_setPlayerStatus0(0, 0x100000); voiceStart(Z2SE_WL_V_DIE_WATER); } else { setSingleAnimeWolfBase(WANM_DIE); - setFaceBasicTexture(FTANM_UNK_9C); + setFaceBasicTexture(FTANM_WL_DIE); voiceStart(Z2SE_WL_V_DIE); } } else { @@ -2724,7 +2983,6 @@ int daAlink_c::procCoDeadInit(int param_0) { return 1; } - int daAlink_c::procCoDead() { daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; @@ -2771,8 +3029,9 @@ int daAlink_c::procCoDead() { setDeadRideSyncPos(); - if (checkAnmEnd(frameCtrl_p) || ((checkModeFlg(0x40000) && frameCtrl_p->getFrame() > 70.0f) || - checkNoResetFlg2(FLG2_FORCE_GAMEOVER))) + if (checkAnmEnd(frameCtrl_p) + || ((checkModeFlg(0x40000) && frameCtrl_p->getFrame() > 70.0f) + || checkNoResetFlg2(FLG2_FORCE_GAMEOVER))) { cLib_chaseF(&field_0x3478, 0.0f, 0.01f); if (field_0x3478 < 0.38f) { @@ -2786,45 +3045,45 @@ int daAlink_c::procCoDead() { if (mProcVar2.field_0x300c != 0 && dComIfGp_getGameoverStatus() == 2 && !checkNoResetFlg0(FLG0_UNK_4000)) { - dComIfGp_setItemLifeCount(-(dComIfGs_getLife() - 12), 0); + int var_r24 = -(dComIfGs_getLife() - 12); + dComIfGp_setItemLifeCount(var_r24, 0); - u32 var_r31; + u32 mode; int room_no = fopAcM_GetRoomNo(this); if (checkStageName("F_SP102") || (checkStageName("D_MN08D") && room_no == 55)) { - var_r31 = 0; + mode = 0; } else { - var_r31 = 5; + mode = 5; } - int var_r30 = -1; - int var_r3_2; + int roomNo = -1; + int exitId; if (checkStageName("D_MN09A") && room_no == 50 && (dComIfG_play_c::getLayerNo(0) == 0 || dComIfG_play_c::getLayerNo(0) == 1)) { - var_r3_2 = dComIfG_play_c::getLayerNo(0) + 1; + exitId = dComIfG_play_c::getLayerNo(0) + 1; } else if (checkBossRoom() && (((room_no == 50 && !dComIfGs_isStageBossEnemy()) || (room_no == 51 && !dComIfGs_isStageMiddleBoss())) || (checkStageName("D_MN08C") && !dComIfGs_isEventBit(0x2880)))) { - var_r3_2 = 0; + exitId = 0; } else if (mProcVar5.field_0x3012 != 0x3F) { - var_r3_2 = mProcVar5.field_0x3012; - var_r30 = field_0x3198; + exitId = mProcVar5.field_0x3012; + roomNo = field_0x3198; } else { - startRestartRoom(var_r31, 0xC9, 0, 1); + startRestartRoom(mode, 0xC9, 0, 1); return 1; } onNoResetFlg0(FLG0_UNK_4000); - dStage_changeScene(var_r3_2, 0.0f, var_r31, var_r30, shape_angle.y, -1); + dStage_changeScene(exitId, 0.0f, mode, roomNo, shape_angle.y, -1); } } return 1; } - int daAlink_c::procCoLookAroundInit() { if (!commonProcInitNotSameProc(PROC_LOOK_AROUND)) { return 0; @@ -2834,7 +3093,7 @@ int daAlink_c::procCoLookAroundInit() { if (checkWolf()) { setSingleAnimeWolfBase(WANM_ENTRANCE); - setFaceBasicTexture(FTANM_UNK_A0); + setFaceBasicTexture(FTANM_WL_ENTRANCE); field_0x3588 = l_wolfBaseAnime; voiceStart(Z2SE_WL_V_ENTRANCE); } else { @@ -2977,8 +3236,8 @@ int daAlink_c::procHandPatInit() { } setSingleAnime(ANM_COW_THROW_LEFT, 1.0f, 50.0f, -1, 3.0f); - field_0x2f92 = 0xFE; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0xFE; + mRightHandIndex = 0xFE; field_0x2f99 = 13; field_0x3588.set(-l_halfAtnWaitBaseAnime.x, l_halfAtnWaitBaseAnime.y, -l_halfAtnWaitBaseAnime.z); @@ -3012,20 +3271,19 @@ int daAlink_c::procHandPat() { setSingleAnimeBase(ANM_WAIT_B_TO_A); mProcVar2.field_0x300c = 1; shape_angle.y += 0x8000; - field_0x2fe6 = shape_angle.y; + mPrevAngleY = shape_angle.y; current.angle.y = shape_angle.y; setOldRootQuaternion(0, -0x8000, 0); field_0x2f99 = 0x30; } else if (frameCtrl_p->getFrame() >= 81.0f) { - field_0x2f92 = 1; - field_0x2f93 = 6; + mLeftHandIndex = 1; + mRightHandIndex = 6; } } return 1; } - int daAlink_c::procCoFogDeadInit() { if (!commonProcInitNotSameProc(PROC_FOG_DEAD)) { return 1; @@ -3037,7 +3295,7 @@ int daAlink_c::procCoFogDeadInit() { if (mLinkAcch.ChkGroundHit()) { if (checkWolf()) { setSingleAnimeWolfBase(WANM_DIE); - setFaceBasicTexture(FTANM_UNK_9C); + setFaceBasicTexture(FTANM_WL_DIE); voiceStart(Z2SE_WL_V_DIE); } else { setSingleAnimeBase(ANM_DIE); @@ -3069,7 +3327,7 @@ int daAlink_c::procCoFogDead() { if (checkWolf()) { setSingleAnimeWolfBase(WANM_DIE); - setFaceBasicTexture(FTANM_UNK_9C); + setFaceBasicTexture(FTANM_WL_DIE); voiceStart(Z2SE_WL_V_DIE); } else { setSingleAnimeBase(ANM_DIE); @@ -3091,7 +3349,6 @@ int daAlink_c::procCoFogDead() { return 1; } - int daAlink_c::procWolfSmellWaitInit() { if (!commonProcInitNotSameProc(PROC_WOLF_SMELL_WAIT)) { return 1; @@ -3113,18 +3370,18 @@ int daAlink_c::procCoNodInit() { mProcVar2.field_0x300c = 1; } else { if (mDemo.getParam0() == 1) { - setUpperAnimeBase(0x24E); - setFacePriBck(0x15B); - setFacePriTexture(FTANM_UNK_8A); + setUpperAnimeBase(dRes_ID_ALANM_BCK_UNAZUKU_e); + setFacePriBck(dRes_INDEX_ALANM_BCK_FUNAZUKU_e); + setFacePriTexture(FTANM_UNAZUKU); } else { - setUpperAnimeBase(0xD1); - setUpperAnimeBase(0xD1); - setFacePriTexture(FTANM_UNK_75); + setUpperAnimeBase(dRes_ID_ALANM_BCK_DEMOTALKA_e); + setUpperAnimeBase(dRes_ID_ALANM_BCK_DEMOTALKA_e); + setFacePriTexture(FTANM_DEMOTALKA); } field_0x2f96 = 4; field_0x2f97 = 10; - onNoResetFlg1(FLG1_UNK_10100000); + onNoResetFlg1(daPy_FLG1(FLG1_UNK_10000000 | FLG1_UNK_100000)); mProcVar2.field_0x300c = 0; } @@ -3150,12 +3407,12 @@ int daAlink_c::procCoEyeAwayInit() { } if (!checkWolf()) { - setUpperAnimeBase(0xD3); - setFacePriTexture(FTANM_UNK_77); - setFacePriBck(0x129); + setUpperAnimeBase(dRes_ID_ALANM_BCK_DEMOTALKC_e); + setFacePriTexture(FTANM_DEMOTALKC); + setFacePriBck(dRes_ID_ALANM_BCK_FDEMOTALKC_e); field_0x2f96 = 4; field_0x2f97 = 10; - onNoResetFlg1(FLG1_UNK_10100000); + onNoResetFlg1(daPy_FLG1(FLG1_UNK_10000000 | FLG1_UNK_100000)); } return 1; @@ -3169,16 +3426,16 @@ int daAlink_c::procCoGlareInit() { if (checkWolf()) { mProcVar2.field_0x300c = 1; } else { - setUpperAnimeBase(0xD2); + setUpperAnimeBase(dRes_ID_ALANM_BCK_DEMOTALKB_e); mUpperFrameCtrl[2].setAttribute(2); mUpperFrameCtrl[2].setLoop(45); - setFacePriTexture(FTANM_UNK_76); - setFacePriBck(0x128); + setFacePriTexture(FTANM_DEMOTALKB); + setFacePriBck(dRes_ID_ALANM_BCK_FDEMOTALKB_e); mProcVar2.field_0x300c = 0; field_0x3478 = -1.0f; field_0x2f96 = 4; field_0x2f97 = 10; - onNoResetFlg1(FLG1_UNK_10100000); + onNoResetFlg1(daPy_FLG1(FLG1_UNK_10000000 | FLG1_UNK_100000)); } return 1; @@ -3295,9 +3552,8 @@ int daAlink_c::procCoTwGateInit() { return 1; } - int daAlink_c::procCoTwGate() { - if (mUnderFrameCtrl[0].checkAnmEnd()) { + if (checkAnmEnd(mUnderFrameCtrl)) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } @@ -3345,7 +3601,7 @@ int daAlink_c::procWolfSnowEscape() { if (checkAnmEnd(frameCtrl_p)) { setOldRootQuaternion(0, -0x8000, 0); shape_angle.y += 0x8000; - field_0x2fe6 = shape_angle.y; + mPrevAngleY = shape_angle.y; current.angle.y = shape_angle.y; if (mProcVar2.field_0x300c == 0) { @@ -3367,7 +3623,6 @@ int daAlink_c::procWolfSnowEscape() { return 1; } - int daAlink_c::procZoraMoveInit() { if (!commonProcInitNotSameProc(PROC_ZORA_MOVE)) { return 1; @@ -3387,20 +3642,20 @@ int daAlink_c::procZoraMoveInit() { int daAlink_c::procZoraMove() { dComIfGp_evmng_cutEnd(mAlinkStaffId); - fopAc_ac_c* temp_r29 = dComIfGp_event_getPt1(); + fopAc_ac_c* zora = dComIfGp_event_getPt1(); field_0x2f99 = 0x60; - if (temp_r29 != NULL) { + if (zora != NULL) { cXyz sp14; cXyz sp8; - mDoMtx_stack_c::copy(((daNpc_zrA_c*)temp_r29)->getHeadMtx()); + mDoMtx_stack_c::copy(((daNpc_zrA_c*)zora)->getHeadMtx()); mDoMtx_stack_c::YrotM(-0x4000); mDoMtx_stack_c::transM(0.0f, 30.0f, -90.0f); mDoMtx_stack_c::multVecZero(¤t.pos); mDoMtx_stack_c::multVecSR(&cXyz::BaseZ, &sp14); mDoMtx_stack_c::multVecSR(&cXyz::BaseY, &sp8); - shape_angle.y = temp_r29->shape_angle.y; + shape_angle.y = zora->shape_angle.y; if (sp8.y < 0.0f) { shape_angle.x = cM_atan2s(-sp14.y, -sp14.absXZ()); @@ -3425,9 +3680,9 @@ int daAlink_c::procLookAroundTurnInit() { setSingleAnime(ANM_DEMO_MHOP, 1.0f, 0.0f, 89, 3.0f); } else if (mDemo.getParam0() == 1) { setSingleAnime(ANM_DEMO_MHOP, 1.0f, 0.0f, 93, 3.0f); - setFaceBasicBtp(0x3DC); - setFaceBasicBtk(0x340); - setFaceBasicBck(0x143); + setFaceBasicBtp(dRes_ID_ALANM_BTP_FI_e); + setFaceBasicBtk(dRes_ID_ALANM_BTK_FCOWTHROWR_e); + setFaceBasicBck(dRes_ID_ALANM_BCK_FI_e); } else { setSingleAnimeBase(ANM_DEMO_MHOP); } @@ -3491,12 +3746,11 @@ int daAlink_c::procTradeItemOut() { if (mLinkAcch.ChkWallHit()) { dBgS_AcchCir* acchCir_p = mAcchCir; - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 3; i++, acchCir_p++) { if (acchCir_p->ChkWallHit()) { var_r30 = cLib_distanceAngleS(acchCir_p->GetWallAngleY(), current.angle.y); break; } - acchCir_p++; } } @@ -3537,7 +3791,7 @@ int daAlink_c::procTradeItemOut() { } if (mDemo.getParam0() == 2) { - onResetFlg1(RFLG1_UNK_100); + onResetFlg1(RFLG1_INSECT_RELEASE); } } @@ -3557,13 +3811,12 @@ int daAlink_c::procTradeItemOut() { return 1; } - BOOL daAlink_c::checkLetterItem(int i_itemNo) { return i_itemNo == fpcNm_ITEM_LETTER || i_itemNo == fpcNm_ITEM_BILL || i_itemNo == fpcNm_ITEM_RAFRELS_MEMO || i_itemNo == fpcNm_ITEM_TKS_LETTER || i_itemNo == fpcNm_ITEM_ASHS_SCRIBBLING; } -int daAlink_c::procNotUseItemInit(int param_0) { +int daAlink_c::procNotUseItemInit(int i_itemNo) { if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) { return 0; } @@ -3574,7 +3827,7 @@ int daAlink_c::procNotUseItemInit(int param_0) { mNormalSpeed = 0.0f; mMsgClassID = fpcM_ERROR_PROCESS_ID_e; - field_0x3198 = param_0; + field_0x3198 = i_itemNo; mProcVar2.field_0x300c = 0; mProcVar3.field_0x300e = 0; current.angle.y = shape_angle.y; @@ -3584,7 +3837,7 @@ int daAlink_c::procNotUseItemInit(int param_0) { keepItemData(); dComIfGp_setPlayerStatus1(0, 0x4000800); - if (checkLetterItem(param_0)) { + if (checkLetterItem(i_itemNo)) { mProcVar4.field_0x3010 = 0; } else { mProcVar4.field_0x3010 = 1; @@ -3592,12 +3845,10 @@ int daAlink_c::procNotUseItemInit(int param_0) { return 1; } - int daAlink_c::procNotUseItem() { if (mProcVar2.field_0x300c == 0) { - fpc_ProcID item_partner_id = fopAcM_createItemForPresentDemo( - ¤t.pos, field_0x3198, 5, -1, fopAcM_GetRoomNo(this), &shape_angle, &scale); - dComIfGp_event_setItemPartnerId(item_partner_id); + dComIfGp_event_setItemPartnerId(fopAcM_createItemForPresentDemo( + ¤t.pos, field_0x3198, 5, -1, fopAcM_GetRoomNo(this), &shape_angle, &scale)); mProcVar2.field_0x300c = 1; } @@ -3729,12 +3980,12 @@ int daAlink_c::procGanonFinishInit() { speed.y = 0.0f; field_0x37c8 = current.pos; - onEndResetFlg1(ERFLG1_GANON_FINISH); + onEndResetFlg1(ERFLG1_SHIELD_BACKBONE); return 1; } int daAlink_c::procGanonFinish() { - onEndResetFlg1(ERFLG1_GANON_FINISH); + onEndResetFlg1(ERFLG1_SHIELD_BACKBONE); current.pos = field_0x37c8; if (checkAnmEnd(mUnderFrameCtrl)) { @@ -3752,7 +4003,7 @@ int daAlink_c::procCutFastReadyInit() { mNormalSpeed = 0.0f; current.angle.y = shape_angle.y; setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f); - setUpperAnime(0x255, UPPER_2, mpHIO->mCut.m.mEquipAnm.mSpeed, 12.0f, + setUpperAnime(dRes_ID_ALANM_BCK_WAITATOS_e, UPPER_2, mpHIO->mCut.m.mEquipAnm.mSpeed, 12.0f, mpHIO->mCut.m.mEquipAnm.mEndFrame, mpHIO->mCut.m.mEquipAnm.mInterpolation); onNoResetFlg0(FLG0_UNK_1000000); @@ -3791,7 +4042,7 @@ int daAlink_c::procMasterSwordStick() { setSingleAnimeBaseMorf(ANM_DEMO_MASTER_SWORD_WAIT, -1.0f); dComIfGp_evmng_cutEnd(mAlinkStaffId); } else if (frame_ctrl->getFrame() >= 32.0f) { - field_0x2f93 = 5; + mRightHandIndex = 5; } return 1; @@ -3815,7 +4066,7 @@ int daAlink_c::procMasterSwordPull() { if (checkAnmEnd(frame_ctrl)) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else if (frame_ctrl->getFrame() >= 36.0f) { - field_0x2f93 = 10; + mRightHandIndex = 10; } else if (frame_ctrl->getFrame() >= 9.0f) { mProcVar4.field_0x3010 = 0; } else if (frame_ctrl->getFrame() >= 1.0f) { @@ -3861,14 +4112,14 @@ int daAlink_c::procDungeonWarpReadyInit() { int daAlink_c::procDungeonWarpReady() { if (mProcVar2.field_0x300c != 0) { - fopAc_ac_c* temp_r3 = fopAcM_SearchByID(field_0x32cc); - if (temp_r3 != NULL) { - field_0x280c.setData(temp_r3); + fopAc_ac_c* warpActor = fopAcM_SearchByID(field_0x32cc); + if (warpActor != NULL) { + field_0x280c.setData(warpActor); - if (fopAcM_GetName(temp_r3) == PROC_OBJ_TKS) { - ((daObjTks_c*)temp_r3)->setStart(); + if (fopAcM_GetName(warpActor) == PROC_OBJ_TKS) { + ((daObjTks_c*)warpActor)->setStart(); } else { - ((daNpcTkc_c*)temp_r3)->setStart(); + ((daNpcTkc_c*)warpActor)->setStart(); } } } else if (checkAnmEnd(&mUnderFrameCtrl[0])) { @@ -3897,7 +4148,7 @@ int daAlink_c::procDungeonWarpInit() { } int daAlink_c::procDungeonWarp() { - mProcVar2.field_0x300c += 0x200; + mProcVar2.field_0x300c += (s16)0x200; if (mProcVar2.field_0x300c > 0x4000) { mProcVar2.field_0x300c = 0x4000; @@ -3914,7 +4165,7 @@ int daAlink_c::procDungeonWarp() { } else { if (mProcVar2.field_0x300c == 0x4000) { if (mProcVar4.field_0x3010 == 0) { - dComIfGp_particle_set(0xA61, ¤t.pos, &tevStr, NULL, NULL); + dComIfGp_particle_set(ID_ZI_J_LK_DUNGEONWP_A, ¤t.pos, &tevStr, NULL, NULL); mProcVar4.field_0x3010 = 1; } @@ -3924,9 +4175,7 @@ int daAlink_c::procDungeonWarp() { if (scale.x < 0.01f) { onNoResetFlg0(FLG0_PLAYER_NO_DRAW); if (checkItemGet(fpcNm_ITEM_DUNGEON_EXIT, 1)) { - int escape = - dStage_stagInfo_GetEscapeWarp(dComIfGp_getStage()->getStagInfo()); - dStage_changeScene(escape, 0.0f, 12, -1, shape_angle.y, -1); + dStage_changeScene(dStage_stagInfo_GetEscapeWarp(dComIfGp_getStage()->getStagInfo()), 0.0f, 12, -1, shape_angle.y, -1); dMeter2Info_warpOutProc(); } else { dungeonReturnWarp(); @@ -3948,7 +4197,6 @@ int daAlink_c::procDungeonWarp() { return 1; } - int daAlink_c::procDungeonWarpSceneStartInit() { commonProcInit(PROC_DUNGEON_WARP_SCN_START); @@ -3962,22 +4210,30 @@ int daAlink_c::procDungeonWarpSceneStartInit() { mProcVar2.field_0x300c = 0x4000; mProcVar3.field_0x300e = 0x20; + + #if PLATFORM_GCN mProcVar4.field_0x3010 = 0; + #endif current.pos.y += 120.0f; shape_angle.y += 0x7F7A; scale.set(0.0f, 1.5f, 0.0f); mpLinkModel->setBaseScale(scale); + + #if !PLATFORM_GCN + seStartOnlyReverb(Z2SE_TKC_WARP_OUT); + #endif return 1; } - int daAlink_c::procDungeonWarpSceneStart() { + #if PLATFORM_GCN if (mProcVar4.field_0x3010 == 0) { mProcVar4.field_0x3010 = 1; seStartOnlyReverb(Z2SE_TKC_WARP_OUT); } + #endif if (fopOvlpM_IsPeek() == true) { return 1; @@ -4005,10 +4261,10 @@ int daAlink_c::procDungeonWarpSceneStart() { return 1; } - static fopAc_ac_c* daAlink_searchPortal(fopAc_ac_c* i_actor, void* i_data) { - if (fopAcM_GetName(i_actor) == PROC_KYTAG04) { - cXyz* pos = (cXyz*)i_data; + cXyz* pos = (cXyz*)i_data; + + if (fopAcM_GetName(i_actor) == PROC_KYTAG04) { if (i_actor->current.pos.abs2XZ(*pos) < 1.0f) { return i_actor; } @@ -4017,18 +4273,23 @@ static fopAc_ac_c* daAlink_searchPortal(fopAc_ac_c* i_actor, void* i_data) { return NULL; } - bool daAlink_c::checkAcceptWarp() { #if VERSION != VERSION_WII_USA_R0 cM3dGPla plane; #endif + /* !@bug - Player can warp while underwater + * Fixed in versions above Wii USA Rev 0 by checking FLG0_WATER_IN_MOVE + */ if (mLinkAcch.ChkGroundHit() && !checkModeFlg(MODE_PLAYER_FLY) #if VERSION != VERSION_WII_USA_R0 - && !checkNoResetFlg0(FLG0_UNDERWATER) + && !checkNoResetFlg0(FLG0_WATER_IN_MOVE) #endif ) { + /* !@bug - Player can warp while on slippery slope polygons + * Fixed in versions above Wii USA Rev 0 by checking getSlidePolygon + */ if ( #if VERSION != VERSION_WII_USA_R0 !getSlidePolygon(&plane) && @@ -4054,7 +4315,6 @@ bool daAlink_c::checkAcceptWarp() { return false; } - void daAlink_c::dungeonReturnWarp() { cXyz pos = dComIfGs_getWarpPlayerPos(); s16 angle = dComIfGs_getWarpPlayerAngleY(); @@ -4065,8 +4325,7 @@ void daAlink_c::dungeonReturnWarp() { dComIfGs_setRestartRoom(pos, angle, room); dComIfGp_setNextStage(name, -1, dComIfGs_getRestartRoomNo(), -1, 0.0f, 12, 0, 0, 0, 1, 0); - u32 data = setParamData(dComIfGs_getRestartRoomNo(), 0, 0xCA, 0); - dComIfGs_setRestartRoomParam(data); + dComIfGs_setRestartRoomParam(setParamData(dComIfGs_getRestartRoomNo(), 0, 0xCA, 0)); } void daAlink_c::skipPortalObjWarp() { @@ -4079,9 +4338,8 @@ void daAlink_c::skipPortalObjWarp() { { dStage_changeScene(2, 0.0f, 0, fopAcM_GetRoomNo(this), shape_angle.y, -1); } else { - u32 data = setParamData(dMeter2Info_getWarpRoomNo(), 0, 0xCA, 0); dComIfGs_setTurnRestart(dMeter2Info_getWarpPos(), dMeter2Info_getWarpPlayerNo(), - dMeter2Info_getWarpRoomNo(), data); + dMeter2Info_getWarpRoomNo(), setParamData(dMeter2Info_getWarpRoomNo(), 0, 0xCA, 0)); dComIfGp_setNextStage(dMeter2Info_getWarpStageName(), -4, dMeter2Info_getWarpRoomNo(), -1, 0.0f, 0, 1, 0, shape_angle.y, 1, 0); } @@ -4102,7 +4360,7 @@ void daAlink_c::checkWarpStart() { if (dMeter2Info_getWarpStatus() == WARP_STATUS_DECIDED_e || dComIfGp_event_compulsory(this, 0, 0xFFFF)) { - #if VERSION != VERSION_GCN_JPN + #if VERSION != VERSION_GCN_JPN && VERSION != VERSION_SHIELD_DEBUG onNoResetFlg0(FLG0_UNK_4000); #endif @@ -4131,20 +4389,20 @@ void daAlink_c::checkWarpStart() { fopAcM_orderOtherEvent(this, portal, 0xFFFF, 1, 1); } else { mDemo.setSpecialDemoType(); - #if VERSION == VERSION_GCN_JPN + #if VERSION == VERSION_GCN_JPN || VERSION == VERSION_SHIELD_DEBUG onNoResetFlg0(FLG0_UNK_4000); #endif if (dMeter2Info_getWarpStatus() == 1) { - stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - u32 exitID = dStage_stagInfo_GetEscapeWarp(stag_info); - dStage_changeScene(exitID, 0.0f, 0, -1, shape_angle.y, -1); + dStage_changeScene( + dStage_stagInfo_GetEscapeWarp(dComIfGp_getStage()->getStagInfo()), 0.0f, 0, -1, shape_angle.y, -1); } else { dungeonReturnWarp(); } } } - g_meter2_info.resetWarpStatus(); + + dMeter2Info_resetWarpStatus(); } } @@ -4189,7 +4447,7 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) { setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f); } - u32 var_r29; + u32 soundId; BOOL var_r27 = param_1 == 0 && ((checkStageName("F_SP125") && fopAcM_GetRoomNo(this) == 4) || (checkStageName("D_MN08") && fopAcM_GetRoomNo(this) == 0)); @@ -4210,13 +4468,13 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) { if (var_r27) { field_0x32cc = 0x88C8; getMidnaActor()->onSideWarp(); - var_r29 = Z2SE_WOLF_WARP_IN_YOKO; + soundId = Z2SE_WOLF_WARP_IN_YOKO; } else { field_0x32cc = 0x9FB; - var_r29 = Z2SE_WOLF_WARP_IN_TATE; + soundId = Z2SE_WOLF_WARP_IN_TATE; } - #if VERSION == VERSION_GCN_JPN + #if VERSION == VERSION_GCN_JPN || VERSION == VERSION_SHIELD_DEBUG if (param_1) { onNoResetFlg0(FLG0_UNK_4000); } @@ -4232,26 +4490,24 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) { if (var_r27) { field_0x32cc = 0x88C7; - var_r29 = Z2SE_AL_WARP_IN_YOKO; + soundId = Z2SE_AL_WARP_IN_YOKO; } else { - var_r29 = Z2SE_AL_WARP_IN_TATE; + soundId = Z2SE_AL_WARP_IN_TATE; if (checkBossRoom() && fopAcM_GetRoomNo(this) == 50) { - char sp8[32]; - strcpy(sp8, dComIfGp_getStartStageName()); + char stageName[32]; + strcpy(stageName, dComIfGp_getStartStageName()); for (int i = 0; i < 32; i++) { - s64 value = sp8[i]; - - if (value == 0) { - sp8[i - 1] = 0; + if ((s64)stageName[i] == 0) { + stageName[i - 1] = 0; break; } } if (checkItemGet(fpcNm_ITEM_DUNGEON_EXIT, 1) || (checkItemGet(fpcNm_ITEM_DUNGEON_BACK, 1) && - strcmp(sp8, dComIfGs_getWarpStageName()) == 0)) + strcmp(stageName, dComIfGs_getWarpStageName()) == 0)) { dComIfGs_setItem(SLOT_18, fpcNm_ITEM_NONE); dComIfGs_resetLastWarpAcceptStage(); @@ -4272,8 +4528,8 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) { field_0x3488 = -1.0f; } else { field_0x3480 = 5.5f; - var_r29 = Z2SE_AL_WARP_OUT; - setEmitter(field_0x3240, 0x9F3, ¤t.pos, &shape_angle); + soundId = Z2SE_AL_WARP_OUT; + setEmitter(field_0x3240, ID_ZI_J_LK_WARP_APP_A, ¤t.pos, &shape_angle); } field_0x3484 = 0.0f; @@ -4290,7 +4546,7 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) { } if (field_0x3488 > 0.0f) { - seStartOnlyReverb(var_r29); + seStartOnlyReverb(soundId); } mProcVar3.field_0x300e = param_1; @@ -4298,19 +4554,18 @@ int daAlink_c::procCoWarpInit(int param_0, int param_1) { return 1; } - int daAlink_c::procCoWarp() { if (mProcVar1.field_0x300a != 0 && mLinkAcch.ChkGroundHit()) { mProcVar1.field_0x300a = 0; - f32 var_f1; + f32 gravity; if (checkWolf()) { - var_f1 = mpHIO->mWolf.mWlAutoJump.m.mGravity; + gravity = mpHIO->mWolf.mWlAutoJump.m.mGravity; } else { - var_f1 = mpHIO->mAutoJump.m.mGravity; + gravity = mpHIO->mAutoJump.m.mGravity; } - setSpecialGravity(var_f1, maxFallSpeed, 1); + setSpecialGravity(gravity, maxFallSpeed, 1); } if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_45_e) { @@ -4320,14 +4575,21 @@ int daAlink_c::procCoWarp() { if (checkWolf() && mProcVar2.field_0x300c != 0) { for (int i = 0; i < 6; i++) { - static u16 const effName[] = {0x09F5, 0x09F6, 0x09F7, 0x09F8, 0x09F9, 0x09FA}; + static u16 const effName[] = { + ID_ZI_J_WL_WARP_APP_A, + ID_ZI_J_WL_WARP_APP_B, + ID_ZI_J_WL_WARP_APP_C, + ID_ZI_J_WL_WARP_APP_D, + ID_ZI_J_WL_WARP_APP_E, + ID_ZI_J_WL_WARP_APP_F, + }; setEmitter(&field_0x3240[i], effName[i], ¤t.pos, &shape_angle); } } } if (mProcVar2.field_0x300c != 0 && !checkWolf()) { - setEmitter(&field_0x3240[0], 0x9F3, ¤t.pos, &shape_angle); + setEmitter(&field_0x3240[0], ID_ZI_J_LK_WARP_APP_A, ¤t.pos, &shape_angle); } if (mProcVar5.field_0x3012 != 0 && field_0x3488 < 0.0f) { @@ -4342,7 +4604,7 @@ int daAlink_c::procCoWarp() { if (mProcVar2.field_0x300c != 0) { if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_45_e) { if (mProcVar1.field_0x300a != 0) { - if (field_0x3174 == 4) { + if (mGroundCode == 4) { dComIfGp_setNextStage(dComIfGp_getStartStageName(), mProcVar4.field_0x3010, fopAcM_GetRoomNo(this), -1, 0.0f, 5, 1, 0, shape_angle.y, 1, 0); @@ -4373,7 +4635,6 @@ int daAlink_c::procCoWarp() { return 1; } - int daAlink_c::commonWaitTurnInit() { if (checkWolf()) { return procWolfWaitTurnInit(); @@ -4399,11 +4660,11 @@ int daAlink_c::commonGrabPutInit() { return procGrabPutInit(); } -int daAlink_c::commonLargeDamageUpInit(int param_0, int param_1, s16 param_2, s16 param_3) { +int daAlink_c::commonLargeDamageUpInit(int i_type, BOOL i_isLargeDmg, s16 param_2, s16 param_3) { if (checkWolf()) { - return procWolfLargeDamageUpInit(param_0, param_1, param_2, param_3); + return procWolfLargeDamageUpInit(i_type, i_isLargeDmg, param_2, param_3); } else { - return procLargeDamageUpInit(param_0, param_1, param_2, param_3); + return procLargeDamageUpInit(i_type, i_isLargeDmg, param_2, param_3); } } diff --git a/src/d/actor/d_a_alink_effect.inc b/src/d/actor/d_a_alink_effect.inc index 7ad7c2f4df..97e4d1dc7c 100644 --- a/src/d/actor/d_a_alink_effect.inc +++ b/src/d/actor/d_a_alink_effect.inc @@ -18,34 +18,34 @@ EffParamProc daAlink_c::m_fEffParamProc[] = { &daAlink_c::setEffectSumouParam, }; -JPABaseEmitter* daAlink_c::setEmitter(u32* param_0, u16 param_1, cXyz const* param_2, - csXyz const* param_3) { - *param_0 = dComIfGp_particle_set(*param_0, param_1, param_2, &tevStr, param_3, NULL, 0xFF, NULL, +JPABaseEmitter* daAlink_c::setEmitter(u32* i_emitterId, u16 i_effName, cXyz const* i_pos, + csXyz const* i_rotation) { + *i_emitterId = dComIfGp_particle_set(*i_emitterId, i_effName, i_pos, &tevStr, i_rotation, NULL, 0xFF, NULL, 0xFF, NULL, NULL, NULL); - dComIfGp_particle_levelEmitterOnEventMove(*param_0); - return dComIfGp_particle_getEmitter(*param_0); + dComIfGp_particle_levelEmitterOnEventMove(*i_emitterId); + return dComIfGp_particle_getEmitter(*i_emitterId); } -JPABaseEmitter* daAlink_c::setEmitterPolyColor(u32* param_0, u16 param_1, cBgS_PolyInfo& param_2, +JPABaseEmitter* daAlink_c::setEmitterPolyColor(u32* i_emitterId, u16 i_effName, cBgS_PolyInfo& i_polyinfo, cXyz const* param_3, csXyz const* param_4) { - *param_0 = dComIfGp_particle_setPolyColor(*param_0, param_1, param_2, param_3, &tevStr, param_4, + *i_emitterId = dComIfGp_particle_setPolyColor(*i_emitterId, i_effName, i_polyinfo, param_3, &tevStr, param_4, NULL, 0, NULL, -1, NULL); - dComIfGp_particle_levelEmitterOnEventMove(*param_0); + dComIfGp_particle_levelEmitterOnEventMove(*i_emitterId); - return dComIfGp_particle_getEmitter(*param_0); + return dComIfGp_particle_getEmitter(*i_emitterId); } -JPABaseEmitter* daAlink_c::setEmitterColor(u32* param_0, u16 param_1, cXyz const* param_2, - csXyz const* param_3) { - *param_0 = dComIfGp_particle_setColor(*param_0, param_1, param_2, &tevStr, NULL, NULL, 0.0f, -1, - param_3, NULL, NULL, -1, NULL); - dComIfGp_particle_levelEmitterOnEventMove(*param_0); +JPABaseEmitter* daAlink_c::setEmitterColor(u32* i_emitterId, u16 i_effName, cXyz const* i_pos, + csXyz const* i_rotation) { + *i_emitterId = dComIfGp_particle_setColor(*i_emitterId, i_effName, i_pos, &tevStr, NULL, NULL, 0.0f, -1, + i_rotation, NULL, NULL, -1, NULL); + dComIfGp_particle_levelEmitterOnEventMove(*i_emitterId); - return dComIfGp_particle_getEmitter(*param_0); + return dComIfGp_particle_getEmitter(*i_emitterId); } -void daAlink_c::stopDrawParticle(u32 param_0) { - JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(param_0); +void daAlink_c::stopDrawParticle(u32 i_emitterId) { + JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(i_emitterId); if (emitter != NULL) { emitter->stopDrawParticle(); @@ -54,11 +54,12 @@ void daAlink_c::stopDrawParticle(u32 param_0) { void daAlink_c::setEffectFrontRollParam() { int j, i; + JPABaseEmitter* emitter_p; for (i = 0; i < 5; i++) { for (j = 0; j < 2; j++) { if (field_0x2e54.getTypeFour(i, j) == 0) { - JPABaseEmitter* emitter_p = field_0x2e54.getEmitterFour(i, j, 0); + emitter_p = field_0x2e54.getEmitterFour(i, j, 0); if (emitter_p != NULL) { emitter_p->setRate(2.0f); @@ -69,15 +70,20 @@ void daAlink_c::setEffectFrontRollParam() { } void daAlink_c::setEffectSlipParam() { + static Vec const smokeParticleScale = {0.69999999f, 0.69999999f, 0.69999999f}; + static Vec const wolfWaterCenterScale = {1.2f, 1.2f, 1.2f}; + JGeometry::TVec3 sp30; + JPABaseEmitter* emitter; + u8 type; int k, j, i; for (i = 0; i < 5; i++) { for (j = 0; j < 2; j++) { - u8 type = field_0x2e54.getTypeFour(i, j); + type = field_0x2e54.getTypeFour(i, j); if (type == 0) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0); + emitter = field_0x2e54.getEmitterFour(i, j, 0); if (emitter != NULL) { if (checkWolf()) { emitter->setRate(0.5f); @@ -86,25 +92,22 @@ void daAlink_c::setEffectSlipParam() { emitter->setAwayFromCenterSpeed(0.0f); emitter->setRandomDirectionSpeed(0.0f); emitter->setSpread(0.1f); - - static Vec const smokeParticleScale = {0.69999999f, 0.69999999f, 0.69999999f}; emitter->setGlobalParticleScale(smokeParticleScale); } } else if (type == 1) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0); + emitter = field_0x2e54.getEmitterFour(i, j, 0); if (emitter != NULL) { emitter->setRate(0.5f); emitter->setDirectionalSpeed(12.0f); } } else if (type == 16) { for (k = 0; k < 4; k++) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, k); + emitter = field_0x2e54.getEmitterFour(i, j, k); if (emitter == NULL) { break; } if (checkWolf()) { - static Vec const wolfWaterCenterScale = {1.2f, 1.2f, 1.2f}; emitter->setGlobalScale(wolfWaterCenterScale); } else { emitter->getGlobalTranslation(&sp30); @@ -115,13 +118,13 @@ void daAlink_c::setEffectSlipParam() { } } } else if (type == 3) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0); + emitter = field_0x2e54.getEmitterFour(i, j, 0); if (emitter != NULL) { emitter->setRate(1.0f); } } else if (type == 4) { for (k = 0; k < 4; k++) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, k); + emitter = field_0x2e54.getEmitterFour(i, j, k); if (emitter != NULL) { emitter->setRate(2.0f); } @@ -136,24 +139,27 @@ void daAlink_c::setEffectRunParam() { static Vec const waterCenterScale = {1.2f, 1.2f, 1.2f}; static Vec const waterSmokeScale = {0.69999999f, 0.69999999f, 0.69999999f}; + JPABaseEmitter* emitter; + u8 type; + int k, j, i; for (i = 0; i < 5; i++) { for (j = 0; j < 2; j++) { - u8 type = field_0x2e54.getTypeFour(i, j); + type = field_0x2e54.getTypeFour(i, j); if (type == 0) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0); + emitter = field_0x2e54.getEmitterFour(i, j, 0); if (emitter != NULL) { emitter->setRate(3.0f); } } else if (type == 1) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0); + emitter = field_0x2e54.getEmitterFour(i, j, 0); if (emitter != NULL) { emitter->setRate(4.0f); } } else if (type == 2) { for (k = 0; k < 4; k++) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, k); + emitter = field_0x2e54.getEmitterFour(i, j, k); if (emitter == NULL) { break; } @@ -161,7 +167,7 @@ void daAlink_c::setEffectRunParam() { emitter->setGlobalScale(waterScale); } } else if (type == 5) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0); + emitter = field_0x2e54.getEmitterFour(i, j, 0); if (emitter != NULL) { emitter->setRate(10.0f); emitter->setAwayFromAxisSpeed(1.0f); @@ -169,7 +175,7 @@ void daAlink_c::setEffectRunParam() { } } else if (type == 16) { for (k = 0; k < 4; k++) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, k); + emitter = field_0x2e54.getEmitterFour(i, j, k); if (emitter == NULL) { break; } @@ -177,7 +183,7 @@ void daAlink_c::setEffectRunParam() { emitter->setGlobalScale(waterCenterScale); } } else if (type == 3) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0); + emitter = field_0x2e54.getEmitterFour(i, j, 0); if (emitter != NULL) { if (checkWolf()) { emitter->setRate(2.0f); @@ -197,13 +203,16 @@ void daAlink_c::setEffectSmallLandParam() { static Vec const waterScale = {1.25f, 1.25f, 1.25f}; static Vec const wolfSmokeScale = {0.69999999f, 0.69999999f, 0.69999999f}; + JPABaseEmitter* emitter; + u8 type; + int k, j, i; for (i = 0; i < 5; i++) { for (j = 0; j < 2; j++) { - u8 type = field_0x2e54.getTypeFour(i, j); + type = field_0x2e54.getTypeFour(i, j); if (type == 0) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0); + emitter = field_0x2e54.getEmitterFour(i, j, 0); if (emitter != NULL) { if (checkWolf()) { emitter->setGlobalScale(wolfSmokeScale); @@ -215,7 +224,7 @@ void daAlink_c::setEffectSmallLandParam() { } } } else if (type == 1) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0); + emitter = field_0x2e54.getEmitterFour(i, j, 0); if (emitter != NULL) { if (checkWolf()) { emitter->setGlobalScale(wolfSmokeScale); @@ -229,7 +238,7 @@ void daAlink_c::setEffectSmallLandParam() { } else if (type == 2) { if (checkWolf()) { for (k = 0; k < 4; k++) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, k); + emitter = field_0x2e54.getEmitterFour(i, j, k); if (emitter == NULL) { break; } @@ -249,13 +258,21 @@ void daAlink_c::setEffectSumouParam() { static Vec const pushedSlip = {0.8f, 0.8f, 0.8f}; static Vec const loseScale = {1.1f, 1.1f, 1.1f}; - int j, i; + JPABaseEmitter* emitter; + u8 type; + + int j, i; + GXColor sp3C; + GXColor sp40; + u8 sp48; + f32 sp44; + for (i = 0; i < 5; i++) { for (j = 0; j < 2; j++) { - u8 type = field_0x2e54.getTypeFour(i, j); + type = field_0x2e54.getTypeFour(i, j); if (type == 0) { - JPABaseEmitter* emitter = field_0x2e54.getEmitterFour(i, j, 0); + emitter = field_0x2e54.getEmitterFour(i, j, 0); if (emitter != NULL) { if (mProcID == PROC_SUMOU_SHIKO) { emitter->setGlobalScale(shikoScale); @@ -264,10 +281,7 @@ void daAlink_c::setEffectSumouParam() { } else if ((mProcID == PROC_SUMOU_SIDE_MOVE || mProcID == PROC_SUMOU_ACTION) && (field_0x3198 == 0x143 || field_0x3198 == 0x142)) { - GXColor sp3C; - GXColor sp40; - u8 sp48; - f32 sp44; + dPa_control_c::getPolyColor(mLinkAcch.m_gnd, j, &sp3C, &sp40, &sp48, &sp44); if (sp48 == emitter->getGlobalAlpha()) { @@ -292,15 +306,15 @@ void daAlink_c::setFootEffectProcType(int param_0) { } void daAlink_c::setWolfFootOn(int param_0) { - daPy_frameCtrl_c* temp_r31 = &mUnderFrameCtrl[1]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[1]; - if (temp_r31->checkPass(l_wolfFootOnFrame[param_0][0])) { + if (framectrl->checkPass(l_wolfFootOnFrame[param_0][0])) { onResetFlg1(RFLG1_UNK_4); - } else if (temp_r31->checkPass(l_wolfFootOnFrame[param_0][1])) { + } else if (framectrl->checkPass(l_wolfFootOnFrame[param_0][1])) { onResetFlg1(RFLG1_UNK_8); - } else if (temp_r31->checkPass(l_wolfFootOnFrame[param_0][2])) { + } else if (framectrl->checkPass(l_wolfFootOnFrame[param_0][2])) { onResetFlg1(RFLG1_UNK_10); - } else if (temp_r31->checkPass(l_wolfFootOnFrame[param_0][3])) { + } else if (framectrl->checkPass(l_wolfFootOnFrame[param_0][3])) { onResetFlg1(RFLG1_UNK_20); } } @@ -357,7 +371,7 @@ void daAlink_c::setEffect() { cXyz spC4; dBgS_AcchCir* acchcir = mAcchCir; - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 3; i++, acchcir++) { if (acchcir->ChkWallHit() && checkWolfBarrierWallHit(*acchcir)) { spD0.set(current.pos.x, current.pos.y + acchcir->GetWallH(), current.pos.z); spC4.set(spD0.x - (acchcir->GetWallR() + 5.0f) * cM_ssin(acchcir->GetWallAngleY()), @@ -369,8 +383,6 @@ void daAlink_c::setEffect() { break; } } - - acchcir++; } } @@ -404,7 +416,7 @@ void daAlink_c::setEffect() { if (checkEventRun()) { changeOriginalDemo(); - changeDemoMode(0x5E, 0, 0, 0); + changeDemoMode(daPy_demo_c::DEMO_UNK_94_e, 0, 0, 0); } } else { field_0x346c = -1.0f; @@ -414,7 +426,7 @@ void daAlink_c::setEffect() { cXyz spB8(current.pos); cXyz spAC(current.pos); - cXyz spA0; + Vec spA0; if (checkModeFlg(0x40000)) { if (checkWolf()) { @@ -427,7 +439,7 @@ void daAlink_c::setEffect() { spB8.y = mWaterY; if (checkNoResetFlg0(FLG0_SWIM_UP) && mNormalSpeed > 8.0f) { - setEmitterPolyColor(&field_0x31c0, 0x1BC, mLinkAcch.m_wtr, &spB8, ¤t.angle); + setEmitterPolyColor(&field_0x31c0, ID_ZI_J_HIKINAMI_A, mLinkAcch.m_wtr, &spB8, ¤t.angle); } spB8.y = spAC.y; } else if (checkModeFlg(0x10000) && mProcVar4.field_0x3010 != 0 && @@ -442,7 +454,7 @@ void daAlink_c::setEffect() { } field_0x31c0 = - dComIfGp_particle_setPolyColor(field_0x31c0, 0x333, mPolyInfo1, ¤t.pos, &tevStr, + dComIfGp_particle_setPolyColor(field_0x31c0, ID_ZI_J_TSUTANOBORI_A, mPolyInfo1, ¤t.pos, &tevStr, &shape_angle, NULL, sp44, NULL, -1, NULL); dComIfGp_particle_levelEmitterOnEventMove(field_0x31c0); } @@ -462,7 +474,7 @@ void daAlink_c::setEffect() { if (spA0.y < (mWaterY - 50.0f)) { JPABaseEmitter* sp40 = - setEmitterPolyColor(&field_0x31bc, 0x1E8, mLinkAcch.m_wtr, &spA0, &shape_angle); + setEmitterPolyColor(&field_0x31bc, ID_ZI_J_LK_ABUKU_A, mLinkAcch.m_wtr, (cXyz*)&spA0, &shape_angle); if (sp40 != NULL) { sp40->setParticleCallBackPtr(dPa_control_c::getWaterBubblePcallBack()); } @@ -537,12 +549,11 @@ void daAlink_c::setEffect() { var_r29 |= 0x40000; } - BOOL sp3C = 0; - + BOOL sp3C = FALSE; if (mProcID == PROC_SUMOU_MOVE && (field_0x3198 == 0x14C || field_0x3198 == 0x14D || field_0x3198 == 0x155)) { - sp3C = 1; + sp3C = TRUE; current.angle.y += 0x8000; } @@ -557,8 +568,8 @@ void daAlink_c::setEffect() { (field_0x2f9d & 0x20) ? &sp88 : NULL, (field_0x2f9d & 0x40) ? &sp94 : NULL, ¤t.angle, NULL, fopAcM_GetRoomNo(this), field_0x3420, temp_f30); - if (checkBoardRide() && temp_f30 > 3.0f && field_0x2fbb == 0xD) { - JPABaseEmitter* sp38 = setEmitterPolyColor(&field_0x31c0, 0x8B8F, mLinkAcch.m_gnd, + if (checkBoardRide() && temp_f30 > 3.0f && mGndPolyAtt0 == 0xD) { + JPABaseEmitter* sp38 = setEmitterPolyColor(&field_0x31c0, dPa_RM(ID_ZI_S_LK_SB_A), mLinkAcch.m_gnd, ¤t.pos, &shape_angle); if (sp38 != NULL) { cXyz sp58; @@ -597,7 +608,7 @@ void daAlink_c::setEffect() { (field_0x2fc4 != 0 || (mSinkShapeOffset < 0.0f && mSinkShapeOffset >= -15.0f))) { if (mSinkShapeOffset < 0.0f && mSinkShapeOffset >= -15.0f) { - if (field_0x2fbb == 3) { + if (mGndPolyAtt0 == 3) { var_r26 = 1; } else { var_r26 = 2; @@ -623,11 +634,11 @@ void daAlink_c::setEffect() { } if (checkResetFlg1(RFLG1_UNK_4)) { - setFootMark(&mLeftHandPos, field_0x30b8, var_r26); + setFootMark(&mLeftHandPos, mLeftHandJntNo, var_r26); } if (checkResetFlg1(RFLG1_UNK_8)) { - setFootMark(&mRightHandPos, field_0x30ba, var_r26); + setFootMark(&mRightHandPos, mRightHandJntNo, var_r26); } } @@ -641,48 +652,47 @@ void daAlink_c::setEffect() { void daAlink_c::setSumouEffect() { static Vec const releaeScale = {0.8f, 0.8f, 0.8f}; - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; - cXyz sp14; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; + JPABaseEmitter* emitter; + cXyz pos; if (mProcID == PROC_SUMOU_ACTION) { if ((field_0x3198 == 0x14F) || (field_0x3198 == 0x151) || (field_0x3198 == 0x150)) { - JPABaseEmitter* temp_r3 = setEmitter(&field_0x31c8, 0x8538, ¤t.pos, NULL); - if (temp_r3 != NULL) { - temp_r3->setGlobalRTMatrix(mpLinkModel->getAnmMtx(9)); + emitter = setEmitter(&field_0x31c8, dPa_RM(ID_ZF_S_BSUMOUHARITE02LINK_TRACE), ¤t.pos, NULL); + if (emitter != NULL) { + emitter->setGlobalRTMatrix(mpLinkModel->getAnmMtx(9)); if (field_0x3198 == 0x151) { - temp_r3->setLifeTime(5); + emitter->setLifeTime(5); } } if (field_0x3198 != 0x150) { - if (temp_r28->getFrame() >= 12.0f) { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(9), &sp14); - setEmitter(&field_0x31cc, 0x8539, &sp14, NULL); - setEmitter(&field_0x31d0, 0x853A, &sp14, &shape_angle); + if (framectrl->getFrame() >= 12.0f) { + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(9), &pos); + setEmitter(&field_0x31cc, dPa_RM(ID_ZF_S_BSUMOUSWEAT00_SAND), &pos, NULL); + setEmitter(&field_0x31d0, dPa_RM(ID_ZF_S_BSUMOUSWEAT01_SWEAT), &pos, &shape_angle); } } } else if (field_0x3198 == 0x145 || field_0x3198 == 0x146 || field_0x3198 == 0x14E || field_0x3198 == 0x147) { if (field_0x3198 != 0x14E && - (field_0x3198 == 0x145 || field_0x3198 == 0x146 || temp_r28->getFrame() >= 29.0f)) + (field_0x3198 == 0x145 || field_0x3198 == 0x146 || framectrl->getFrame() >= 29.0f)) { - JPABaseEmitter* temp_r3_2 = - setEmitter(&field_0x31c8, 0x8542, &field_0x3834, &shape_angle); - if (temp_r3_2 != NULL) { - temp_r3_2->setGlobalRTMatrix(mpLinkModel->getAnmMtx(0)); + emitter = setEmitter(&field_0x31c8, dPa_RM(ID_ZF_S_BSUMOUTACKLELCENTER_SHOCKR), &field_0x3834, &shape_angle); + if (emitter != NULL) { + emitter->setGlobalRTMatrix(mpLinkModel->getAnmMtx(0)); } - JPABaseEmitter* temp_r3_3 = - setEmitter(&field_0x31cc, 0x8541, &field_0x3834, &shape_angle); - if (temp_r3_3 != NULL) { - temp_r3_3->setGlobalRTMatrix(mpLinkModel->getAnmMtx(0)); + emitter = setEmitter(&field_0x31cc, dPa_RM(ID_ZF_S_BSUMOUTACKLELCENTER_SHOCKL), &field_0x3834, &shape_angle); + if (emitter != NULL) { + emitter->setGlobalRTMatrix(mpLinkModel->getAnmMtx(0)); } } - if (temp_r28->getFrame() >= 35.0f || - (field_0x3198 == 0x14E && temp_r28->getFrame() >= 3.0f) || - ((field_0x3198 == 0x145 || field_0x3198 == 0x146) && temp_r28->getFrame() >= 7.0f)) + if (framectrl->getFrame() >= 35.0f || + (field_0x3198 == 0x14E && framectrl->getFrame() >= 3.0f) || + ((field_0x3198 == 0x145 || field_0x3198 == 0x146) && framectrl->getFrame() >= 7.0f)) { f32 var_f31; if (field_0x3198 == 0x147) { @@ -691,75 +701,76 @@ void daAlink_c::setSumouEffect() { var_f31 = 30.0f; } - sp14.set(field_0x3834.x + (var_f31 * cM_ssin(shape_angle.y)), field_0x3834.y, + pos.set(field_0x3834.x + (var_f31 * cM_ssin(shape_angle.y)), field_0x3834.y, field_0x3834.z + (var_f31 * cM_scos(shape_angle.y))); - setEmitter(&field_0x31d0, 0x8539, &sp14, NULL); - setEmitter(&field_0x31d4, 0x853A, &sp14, &shape_angle); + setEmitter(&field_0x31d0, dPa_RM(ID_ZF_S_BSUMOUSWEAT00_SAND), &pos, NULL); + setEmitter(&field_0x31d4, dPa_RM(ID_ZF_S_BSUMOUSWEAT01_SWEAT), &pos, &shape_angle); } } } else if (mProcID == PROC_SUMOU_MOVE) { if (field_0x3198 == 0x154) { - JPABaseEmitter* temp_r3_4 = - setEmitter(&field_0x31c8, 0x8545, &field_0x3834, &shape_angle); - if (temp_r3_4 != NULL) { + emitter = setEmitter(&field_0x31c8, dPa_RM(ID_ZF_S_BSUMOUSWEATPUSH_SWEAT), &field_0x3834, &shape_angle); + if (emitter != NULL) { mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(0)); mDoMtx_stack_c::transM(36.0f, 84.0f, 0.0f); - temp_r3_4->setGlobalRTMatrix(mDoMtx_stack_c::get()); + emitter->setGlobalRTMatrix(mDoMtx_stack_c::get()); } } else if (field_0x3198 == 0x155) { - if (temp_r28->getFrame() >= 17.0f) { - JPABaseEmitter* temp_r3_5 = - setEmitter(&field_0x31c8, 0x853A, &field_0x3834, &shape_angle); - if (temp_r3_5 != NULL) { + if (framectrl->getFrame() >= 17.0f) { + emitter = setEmitter(&field_0x31c8, dPa_RM(ID_ZF_S_BSUMOUSWEAT01_SWEAT), &field_0x3834, &shape_angle); + if (emitter != NULL) { mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(0)); mDoMtx_stack_c::XrotM(0x7FFF); - temp_r3_5->setGlobalRTMatrix(mDoMtx_stack_c::get()); - temp_r3_5->setGlobalScale(releaeScale); + emitter->setGlobalRTMatrix(mDoMtx_stack_c::get()); + emitter->setGlobalScale(releaeScale); } } } } } -void daAlink_c::setWaterfallEffect(cXyz const* param_0, u32* param_1) { - setEmitter(¶m_1[0], 0x8614, param_0, NULL); - setEmitter(¶m_1[1], 0x8615, param_0, NULL); +void daAlink_c::setWaterfallEffect(const cXyz* i_pos, u32* i_emitterId) { + setEmitter(i_emitterId, dPa_RM(ID_ZI_S_LK_TAKISHIBUKI_A), i_pos, NULL); + i_emitterId++; + setEmitter(i_emitterId, dPa_RM(ID_ZI_S_LK_TAKISHIBUKI_B), i_pos, NULL); } void daAlink_c::setWaterfallEffect() { - Vec sp8; - if (checkEndResetFlg1(ERFLG1_UNK_800)) { + Vec pos; + if (checkEndResetFlg1(ERFLG1_WATERFALL_FRONT_HIT)) { if (checkWolf()) { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(3), &sp8); - sp8.y += 5.0f; + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(3), &pos); + pos.y += 5.0f; } else { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(3), &sp8); + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(3), &pos); } - setWaterfallEffect((cXyz*)&sp8, &field_0x31c8); + setWaterfallEffect((cXyz*)&pos, &field_0x31c8); } if (checkWolf() && checkEndResetFlg1(ERFLG1_UNK_1000)) { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(0x1A), &sp8); - sp8.y -= 15.0f; - setWaterfallEffect((cXyz*)&sp8, &field_0x31d0); + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(26), &pos); + pos.y -= 15.0f; + setWaterfallEffect((cXyz*)&pos, &field_0x31d0); } - if (checkEndResetFlg1(daPy_ERFLG1(ERFLG1_UNK_1000 | ERFLG1_UNK_800))) { + if (checkEndResetFlg1(daPy_ERFLG1(ERFLG1_UNK_1000 | ERFLG1_WATERFALL_FRONT_HIT))) { seStartOnlyReverbLevel(Z2SE_AL_IN_WATER_FALL); } } void daAlink_c::setMagneBootsEffect() { static const u16 effName[] = { - 0x0407, - 0x0408, - 0x0409, + ID_ZI_J_HB_MAGNE_A, + ID_ZI_J_HB_MAGNE_B, + ID_ZI_J_HB_MAGNE_C, }; + int i, j; + u32* emitterId; + JPABaseEmitter* emitter; cXyz sp20; - int i, j; for (i = 0; i < 2; i++) { if (i == 0) { sp20 = mLeftFootPos - current.pos; @@ -772,15 +783,15 @@ void daAlink_c::setMagneBootsEffect() { } if (sp20.y < 6.0f) { - u32* var_r28 = field_0x3228[i]; + emitterId = field_0x3228[i]; - for (j = 0; j < 3; j++, var_r28++) { - JPABaseEmitter* temp_r3 = setEmitter(var_r28, effName[j], ¤t.pos, NULL); - if (temp_r3 != NULL) { + for (j = 0; j < 3; j++, emitterId++) { + emitter = setEmitter(emitterId, effName[j], ¤t.pos, NULL); + if (emitter != NULL) { if (j == 1) { - temp_r3->setGlobalRTMatrix(mpLinkBootModels[i]->getAnmMtx(1)); + emitter->setGlobalRTMatrix(mpLinkBootModels[i]->getAnmMtx(1)); } else { - temp_r3->setGlobalRTMatrix(mpLinkBootModels[i]->getAnmMtx(2)); + emitter->setGlobalRTMatrix(mpLinkBootModels[i]->getAnmMtx(2)); } } } @@ -792,9 +803,11 @@ void daAlink_c::setSwordChargeEffect() { static Vec const lightAParticleScale = {1.0f, 1.171f, 1.0f}; static Vec const lightALocalTrans = {68.0f, 0.0f, 0.0f}; + JPABaseEmitter* emitter; + f32 var_f30; - BOOL temp_r3 = checkMasterSwordEquip(); - if (temp_r3) { + BOOL isMasterSwordEquip = checkMasterSwordEquip(); + if (isMasterSwordEquip) { var_f30 = l_swordTopLocalM.x; } else { var_f30 = l_swordTopLocalN.x; @@ -804,13 +817,13 @@ void daAlink_c::setSwordChargeEffect() { if (var_f31 > 0.0f) { cXyz sp50; if (!checkWoodSwordEquip()) { - JPABaseEmitter* temp_r3_2 = setEmitter(&field_0x321c, 0x368, ¤t.pos, NULL); - if (temp_r3_2 != NULL) { - temp_r3_2->setGlobalRTMatrix(mSwordModel->getBaseTRMtx()); + emitter = setEmitter(&field_0x321c, ID_ZI_J_SWA_KIRARI_A, ¤t.pos, NULL); + if (emitter != NULL) { + emitter->setGlobalRTMatrix(mSwordModel->getBaseTRMtx()); - if (temp_r3) { - temp_r3_2->setGlobalParticleScale(lightAParticleScale); - temp_r3_2->setLocalTranslation(lightALocalTrans); + if (isMasterSwordEquip) { + emitter->setGlobalParticleScale(lightAParticleScale); + emitter->setLocalTranslation(lightALocalTrans); } } } @@ -824,10 +837,10 @@ void daAlink_c::setSwordChargeEffect() { } sp50 = sp44 + ((sp50 * (var_f31 + 1.0f)) * (var_f30 / 15.0f)); - setEmitter(&field_0x3220, 0x36A, &sp50, NULL); + setEmitter(&field_0x3220, ID_ZI_J_SWA_KIRARI_B, &sp50, NULL); if (var_f31 >= 14.0f) { - setEmitter(&field_0x3224, 0x36B, &sp50, NULL); + setEmitter(&field_0x3224, ID_ZI_J_SWA_KIRARI_C, &sp50, NULL); } else { if (checkWolf() || checkWoodSwordEquip()) { seStartSwordCut(Z2SE_WOLF_POWER_COME); @@ -836,17 +849,17 @@ void daAlink_c::setSwordChargeEffect() { } } } else { - JPABaseEmitter* temp_r3_4 = dComIfGp_particle_getEmitter(field_0x321c); - if (temp_r3_4 != NULL) { - u8 temp_r3_5 = temp_r3_4->getGlobalAlpha(); - if (temp_r3_5 > 17) { - JPABaseEmitter* temp_r3_6 = setEmitter(&field_0x321c, 0x368, ¤t.pos, NULL); - if (temp_r3_6 != NULL) { - temp_r3_6->setGlobalRTMatrix(mSwordModel->getBaseTRMtx()); - temp_r3_6->setGlobalAlpha(temp_r3_5 - 17); + emitter = dComIfGp_particle_getEmitter(field_0x321c); + if (emitter != NULL) { + u8 alpha = emitter->getGlobalAlpha(); + if (alpha > 17) { + emitter = setEmitter(&field_0x321c, ID_ZI_J_SWA_KIRARI_A, ¤t.pos, NULL); + if (emitter != NULL) { + emitter->setGlobalRTMatrix(mSwordModel->getBaseTRMtx()); + emitter->setGlobalAlpha(alpha - 17); } } else { - temp_r3_4->setGlobalAlpha(0); + emitter->setGlobalAlpha(0); } } @@ -860,18 +873,34 @@ void daAlink_c::setElecDamageEffect() { static Vec const localScale0 = {0.69999999f, 0.85f, 1.5f}; static Vec const localScale1 = {1.0f, 0.85f, 1.5f}; - static const u16 effName0[] = {0x867D, 0x867E, 0x867F}; - static const u16 effName1[] = {0x8981, 0x8982, 0x8983}; + static const u16 effName0[] = { + dPa_RM(ID_ZI_S_LK_BIRIBIRIA_A), + dPa_RM(ID_ZI_S_LK_BIRIBIRIA_B), + dPa_RM(ID_ZI_S_LK_BIRIBIRIA_C), + }; - cXyz sp54; - const u16* var_r28 = checkStageName("D_MN09A") ? effName1 : effName0; + static const u16 effName1[] = { + dPa_RM(ID_ZI_S_LK_BIRIBIRIC_A), + dPa_RM(ID_ZI_S_LK_BIRIBIRIC_B), + dPa_RM(ID_ZI_S_LK_BIRIBIRIC_C), + }; + + cXyz pos; + + const u16* effNameList; + if (checkStageName("D_MN09A")) { + effNameList = effName1; + } else { + effNameList = effName0; + } + + JPABaseEmitter* emitter; int i; - if (checkWolf()) { - mDoMtx_multVec(mpLinkModel->getAnmMtx(2), &localOffset, &sp54); + mDoMtx_multVec(mpLinkModel->getAnmMtx(2), &localOffset, &pos); - for (i = 0; i < 3; i++, var_r28++) { - JPABaseEmitter* emitter = setEmitter(&field_0x31d8[i], *var_r28, &sp54, &shape_angle); + for (i = 0; i < 3; i++, effNameList++) { + emitter = setEmitter(&field_0x31d8[i], *effNameList, &pos, &shape_angle); if (emitter != NULL) { if (i == 2) { emitter->setLocalScale(localScale1); @@ -881,21 +910,21 @@ void daAlink_c::setElecDamageEffect() { } } } else { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp54); + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &pos); - for (i = 0; i < 3; i++, var_r28++) { - setEmitter(&field_0x31d8[i], *var_r28, &sp54, &shape_angle); + for (i = 0; i < 3; i++, effNameList++) { + setEmitter(&field_0x31d8[i], *effNameList, &pos, &shape_angle); } if (checkHookshotItem(mEquipItem) && mItemMode == 6 && checkStageName("D_MN01")) { - sp54 = (mHeldItemRootPos + mHookshotTopPos) * 0.5f; + pos = (mHeldItemRootPos + mHookshotTopPos) * 0.5f; cXyz sp48 = mHookshotTopPos - mHeldItemRootPos; csXyz sp10(sp48.atan2sY_XZ(), sp48.atan2sX_Z(), 0); - JPABaseEmitter* temp_r3_2 = setEmitter(&field_0x31e4, 0x8682, &sp54, &sp10); - if (temp_r3_2 != NULL) { - temp_r3_2->setVolumeSize(sp48.abs()); + emitter = setEmitter(&field_0x31e4, dPa_RM(ID_ZI_S_LK_BIRIBIRIFS_A), &pos, &sp10); + if (emitter != NULL) { + emitter->setVolumeSize(sp48.abs()); } } } @@ -910,15 +939,20 @@ void daAlink_c::clearCutTurnEffectID() { void daAlink_c::setCutTurnEffect() { static const u16 effNameNormal[] = { - 0x0159, - 0x015A, + ID_ZI_J_KAITENGIRI_A, + ID_ZI_J_KAITENGIRI_B, }; + static const u16 effNameLight[] = { - 0x0A28, 0x0A29, 0x0A2A, 0x0A2B, + ID_ZI_J_KAITENGIRIL_A, + ID_ZI_J_KAITENGIRIL_B, + ID_ZI_J_KAITENGIRIL_C, + ID_ZI_J_KAITENGIRIL_D, }; + static const u16 effNameWater[] = { - 0x0C52, - 0x0C53, + ID_ZI_J_KAITENGIRI_INWTR_A, + ID_ZI_J_KAITENGIRI_INWTR_B, }; static Vec const waterEffScale = {1.5f, 1.5f, 1.5f}; @@ -936,7 +970,12 @@ void daAlink_c::setCutTurnEffect() { }; static u16 const effNameLarge[] = { - 0x0BA5, 0x0BA6, 0x0BA7, 0x0BA8, 0x0BA9, 0x0BAA, + ID_ZI_J_KAITENGIRID_A, + ID_ZI_J_KAITENGIRID_B, + ID_ZI_J_KAITENGIRID_C, + ID_ZI_J_KAITENGIRID_D, + ID_ZI_J_KAITENGIRID_E, + ID_ZI_J_KAITENGIRID_F, }; static Vec const leftTransLarge[] = { @@ -953,9 +992,7 @@ void daAlink_c::setCutTurnEffect() { {0.0f, 0.0f, 0.0f}, }; - f32 temp_f1 = mUnderFrameCtrl[0].getFrame(); - - if (!(temp_f1 < mProcVar1.field_0x300a)) { + if (!(mUnderFrameCtrl[0].getFrame() < mProcVar1.field_0x300a)) { static s16 leftRotNormal[] = { cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), cM_deg2s(180), cM_deg2s(45), cM_deg2s(13), }; @@ -975,71 +1012,71 @@ void daAlink_c::setCutTurnEffect() { cM_deg2s(-90), cM_deg2s(0), cM_deg2s(180), cM_deg2s(0), cM_deg2s(0), cM_deg2s(180), }; - u32* sp2C = field_0x3204; - const u16* sp28; - JGeometry::TVec3* sp24; - JGeometry::TVec3* sp20; - int sp1C; - BOOL sp18 = 0; + u32* emitterId = field_0x3204; + const u16* effNameList; + JGeometry::TVec3* rot; + JGeometry::TVec3* trans; + int effNum; + BOOL sp18 = FALSE; - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { if (checkZoraWearAbility()) { - sp28 = effNameWater; - sp24 = (JGeometry::TVec3*)leftRotWater; - sp20 = (JGeometry::TVec3*)leftTransWater; - sp1C = 2; - if (mCutType == 0x18 || mCutType == 0x17) { - sp18 = 1; + effNameList = effNameWater; + rot = (JGeometry::TVec3*)leftRotWater; + trans = (JGeometry::TVec3*)leftTransWater; + effNum = 2; + if (mCutType == CUT_TYPE_LARGE_TURN_RIGHT || mCutType == CUT_TYPE_LARGE_TURN_LEFT) { + sp18 = TRUE; } } else { return; } - } else if (mCutType == 0x18 || mCutType == 0x17) { - sp28 = effNameLarge; - sp24 = (JGeometry::TVec3*)leftRotLarge; - sp20 = (JGeometry::TVec3*)leftTransLarge; - sp1C = 6; + } else if (mCutType == CUT_TYPE_LARGE_TURN_RIGHT || mCutType == CUT_TYPE_LARGE_TURN_LEFT) { + effNameList = effNameLarge; + rot = (JGeometry::TVec3*)leftRotLarge; + trans = (JGeometry::TVec3*)leftTransLarge; + effNum = 6; } else if (checkNoResetFlg3(FLG3_UNK_100000)) { - sp28 = effNameLight; - sp24 = (JGeometry::TVec3*)leftRotLight; - sp20 = (JGeometry::TVec3*)leftTransLight; - sp1C = 4; + effNameList = effNameLight; + rot = (JGeometry::TVec3*)leftRotLight; + trans = (JGeometry::TVec3*)leftTransLight; + effNum = 4; } else { - sp28 = effNameNormal; - sp24 = (JGeometry::TVec3*)leftRotNormal; - sp20 = (JGeometry::TVec3*)leftTransNormal; - sp1C = 2; + effNameList = effNameNormal; + rot = (JGeometry::TVec3*)leftRotNormal; + trans = (JGeometry::TVec3*)leftTransNormal; + effNum = 2; } - cXyz sp40; - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp40); + cXyz pos; + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &pos); if (checkMagneBootsOn()) { - mDoMtx_stack_c::transS(sp40); + mDoMtx_stack_c::transS(pos); mDoMtx_stack_c::concat(mMagneBootMtx); mDoMtx_stack_c::ZXYrotM(shape_angle); } - for (int i = 0; i < sp1C; i++, sp2C++, sp28++, sp24++, sp20++) { - JPABaseEmitter* sp30 = setEmitter(sp2C, *sp28, &sp40, &shape_angle); - if (sp30 != NULL) { + for (int i = 0; i < effNum; i++, emitterId++, effNameList++, rot++, trans++) { + JPABaseEmitter* emitter = setEmitter(emitterId, *effNameList, &pos, &shape_angle); + if (emitter != NULL) { if (checkMagneBootsOn()) { - sp30->setGlobalRTMatrix(mDoMtx_stack_c::get()); + emitter->setGlobalRTMatrix(mDoMtx_stack_c::get()); } if (mProcVar4.field_0x3010 == 0) { - sp30->setLocalRotation(*sp24); - if (sp20->y > 1.0f) { - sp30->setLocalTranslation(*sp20); + emitter->setLocalRotation(*rot); + if (trans->y > 1.0f) { + emitter->setLocalTranslation(*trans); } } if (sp18) { if (i == 0) { - sp30->setGlobalParticleScale(waterEffScale); + emitter->setGlobalParticleScale(waterEffScale); } else { - sp30->setVolumeSize(225); - sp30->setAwayFromAxisSpeed(15.0f); + emitter->setVolumeSize(225); + emitter->setAwayFromAxisSpeed(15.0f); } } } @@ -1048,42 +1085,60 @@ void daAlink_c::setCutTurnEffect() { } void daAlink_c::setHorseCutTurnEffect() { - cXyz sp20; - csXyz sp28(0, shape_angle.y, shape_angle.z); + cXyz pos; + csXyz rot(0, shape_angle.y, shape_angle.z); - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp20); - setEmitter(&field_0x3204[0], 0x1F0, &sp20, &sp28); - setEmitter(&field_0x3204[1], 0x1F1, &sp20, &sp28); + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &pos); + setEmitter(&field_0x3204[0], ID_ZI_J_KAITENGIRIH_A, &pos, &rot); + setEmitter(&field_0x3204[1], ID_ZI_J_KAITENGIRIH_B, &pos, &rot); } void daAlink_c::setCutLargeJumpLandEffect() { - cXyz sp50(current.pos.x + cM_ssin(shape_angle.y) * 20.0f, current.pos.y + 50.0f, current.pos.z + cM_scos(shape_angle.y) * 20.0f); - csXyz sp58; - cM3dGPla sp44; + cXyz pos(current.pos.x + cM_ssin(shape_angle.y) * 20.0f, current.pos.y + 50.0f, current.pos.z + cM_scos(shape_angle.y) * 20.0f); + csXyz rot; + cM3dGPla tripla; - mLinkGndChk.SetPos(&sp50); - f32 var_f31 = dComIfG_Bgsp().GroundCross(&mLinkGndChk); - if (var_f31 < current.pos.y - 50.0f) { - sp50.y = current.pos.y; - dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &sp44); + mLinkGndChk.SetPos(&pos); + f32 gnd_height = dComIfG_Bgsp().GroundCross(&mLinkGndChk); + if (gnd_height < current.pos.y - 50.0f) { + pos.y = current.pos.y; + dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &tripla); } else { - sp50.y = var_f31; - dComIfG_Bgsp().GetTriPla(mLinkGndChk, &sp44); + pos.y = gnd_height; + dComIfG_Bgsp().GetTriPla(mLinkGndChk, &tripla); } - sp58.x = cM_atan2s(sp44.mNormal.absXZ(), sp44.mNormal.y); - sp58.y = sp44.mNormal.atan2sX_Z(); - sp58.z = 0; + rot.x = cM_atan2s(tripla.mNormal.absXZ(), tripla.mNormal.y); + rot.y = tripla.mNormal.atan2sX_Z(); + rot.z = 0; for (int i = 0; i < 6; i++) { - static u16 const effName[] = {0x09D0, 0x09D1, 0x09D2, 0x09D3, 0x09D4, 0x09D5}; - dComIfGp_particle_set(effName[i], &sp50, &tevStr, &sp58, NULL); + static const u16 effName[] = { + ID_ZI_J_LK_DJGIRI_A, + ID_ZI_J_LK_DJGIRI_B, + ID_ZI_J_LK_DJGIRI_C, + ID_ZI_J_LK_DJGIRI_D, + ID_ZI_J_LK_DJGIRI_E, + ID_ZI_J_LK_DJGIRI_F, + }; + dComIfGp_particle_set(effName[i], &pos, &tevStr, &rot, NULL); } } void daAlink_c::setBootsLightEffect() { - static const u16 jointID[] = {0x0014, 0x0013, 0x0018, 0x0019}; - static const u16 effName[] = {0x88E1, 0x88E2, 0x88E3, 0x88E4}; + static const u16 jointID[] = { + 20, + 19, + 24, + 25 + }; + + static const u16 effName[] = { + dPa_RM(ID_ZF_S_SBOOTS00FOOTL), + dPa_RM(ID_ZF_S_SBOOTS01LEGL2), + dPa_RM(ID_ZF_S_SBOOTS02LEGR2), + dPa_RM(ID_ZF_S_SBOOTS03FOOTR), + }; if (checkStageName("F_SP116")) { if (dComIfGs_isOneZoneSwitch(0, fopAcM_GetRoomNo(this))) { @@ -1100,10 +1155,15 @@ void daAlink_c::setBootsLightEffect() { } void daAlink_c::setLightningSwordEffect() { - static const u16 effName[] = {0x0A58, 0x0A59, 0x0B9D}; + static const u16 effName[] = { + ID_ZI_J_LK_SWL_A, + ID_ZI_J_LK_SWL_B, + ID_ZI_J_LK_SWL_C + }; - if (checkEndResetFlg2(ERFLG2_UNK_10)) { - JPABaseEmitter* emitter = setEmitter(&field_0x3294, 0x8B9E, ¤t.pos, &shape_angle); + JPABaseEmitter* emitter; + if (checkEndResetFlg2(ERFLG2_LIGHT_SWORD_GET_EFFECT)) { + emitter = setEmitter(&field_0x3294, dPa_RM(ID_ZI_S_LK_SWL_GET_A), ¤t.pos, &shape_angle); if (emitter != NULL) { emitter->setGlobalRTMatrix(mSwordModel->getBaseTRMtx()); } @@ -1118,7 +1178,7 @@ void daAlink_c::setLightningSwordEffect() { seStartOnlyReverbLevel(Z2SE_AL_LIGHTNING_SW_GLOW); for (i = 0; i < 3; i++) { - JPABaseEmitter* emitter = setEmitter(&field_0x327c[i], effName[i], ¤t.pos, &shape_angle); + emitter = setEmitter(&field_0x327c[i], effName[i], ¤t.pos, &shape_angle); if (emitter != NULL) { emitter->setGlobalRTMatrix(mSwordModel->getBaseTRMtx()); } @@ -1131,20 +1191,22 @@ void daAlink_c::setLightningSwordEffect() { } void daAlink_c::setWolfRollAttackEffect() { - cXyz sp20(current.pos.x, current.pos.y + 80.0f, current.pos.z); - csXyz sp28(shape_angle.x, shape_angle.y, 0); + cXyz pos(current.pos.x, current.pos.y + 80.0f, current.pos.z); + csXyz rot(shape_angle.x, shape_angle.y, 0); if (mProcVar2.field_0x300c == 0) { - sp28.x += 0x8000; + rot.x += 0x8000; } - setEmitter(&field_0x3204[0], 0x1E4, &sp20, &sp28); + setEmitter(&field_0x3204[0], ID_ZI_J_WL_KAITENAT_A, &pos, &rot); if (mProcVar3.field_0x300e == 0) { - setEmitter(&field_0x3204[1], 0x1E5, &sp20, &sp28); + setEmitter(&field_0x3204[1], ID_ZI_J_WL_KAITENAT_B, &pos, &rot); } } void daAlink_c::setWolfDigEffect() { + JPABaseEmitter* emitter; + if (dComIfG_Bgsp().ChkPolySafe(mPolyInfo2)) { f32 var_f31 = 3.0f; f32 var_f30; @@ -1153,65 +1215,65 @@ void daAlink_c::setWolfDigEffect() { u16 var_r29, var_r28; u16 var_r26; if (field_0x3198 == 3) { - var_r29 = 0x884B; - var_r28 = 0x881B; + var_r29 = dPa_RM(ID_ZI_S_DIGSAND_A); + var_r28 = dPa_RM(ID_ZI_S_DASHSAND_A); } else if (field_0x3198 == 0xD) { - var_r29 = 0x884C; - var_r28 = 0x881D; + var_r29 = dPa_RM(ID_ZI_S_DIGSNOW_A); + var_r28 = dPa_RM(ID_ZI_S_DASHSNOW_B); } else if (field_0x3198 == 1) { - var_r29 = 0x200; - var_r28 = 0xE6; + var_r29 = ID_ZI_J_DIG00_A; + var_r28 = ID_ZI_J_DASHSMOKE_A; } else if (field_0x3198 == 4) { - var_r29 = 0x200; + var_r29 = ID_ZI_J_DIG00_A; if (dKy_pol_efftype_get(&mPolyInfo2) == 1) { - var_r28 = 0x143; - var_r26 = 0xE6; + var_r28 = ID_ZI_J_DASHKUSA_A; + var_r26 = ID_ZI_J_DASHSMOKE_A; var_f30 = 3.0f; } else { - var_r28 = 0xE6; - var_r26 = 0x143; + var_r28 = ID_ZI_J_DASHSMOKE_A; + var_r26 = ID_ZI_J_DASHKUSA_A; var_f30 = 15.0f; var_f31 = 3.0f; } field_0x32cc = dComIfGp_particle_setPolyColor(field_0x32cc, var_r26, mPolyInfo2, &field_0x37d4, &tevStr, &sp18, NULL, 1, NULL, -1, NULL); - JPABaseEmitter* temp_r3 = dComIfGp_particle_getEmitter(field_0x32cc); - if (temp_r3 != NULL) { - temp_r3->setAwayFromAxisSpeed(var_f30); + emitter = dComIfGp_particle_getEmitter(field_0x32cc); + if (emitter != NULL) { + emitter->setAwayFromAxisSpeed(var_f30); dComIfGp_particle_levelEmitterOnEventMove(field_0x32cc); } } else if (field_0x3198 == 7) { var_r29 = 0; - var_r28 = 0x1B1; - setEmitterPolyColor(&field_0x32cc, 0x1AF, mPolyInfo2, &field_0x37d4, &sp18); - setEmitterPolyColor(&field_0x31bc, 0x1B0, mPolyInfo2, &field_0x37d4, &sp18); + var_r28 = ID_ZI_J_DASHWTRA_C; + setEmitterPolyColor(&field_0x32cc, ID_ZI_J_DASHWTRA_A, mPolyInfo2, &field_0x37d4, &sp18); + setEmitterPolyColor(&field_0x31bc, ID_ZI_J_DASHWTRA_B, mPolyInfo2, &field_0x37d4, &sp18); } else { var_r29 = 0; - var_r28 = 0xE6; + var_r28 = ID_ZI_J_DASHSMOKE_A; } if (var_r29 != 0) { setEmitter(&field_0x31bc, var_r29, &field_0x37d4, &sp18); } - JPABaseEmitter* temp_r3_2 = setEmitterPolyColor(&field_0x31c0, var_r28, mPolyInfo2, &field_0x37d4, &sp18); - if (temp_r3_2 != NULL && field_0x3198 != 7) { - temp_r3_2->setAwayFromAxisSpeed(var_f31); + emitter = setEmitterPolyColor(&field_0x31c0, var_r28, mPolyInfo2, &field_0x37d4, &sp18); + if (emitter != NULL && field_0x3198 != 7) { + emitter->setAwayFromAxisSpeed(var_f31); } } } void daAlink_c::setWolfSwimEndEffect(JPABaseEmitter** param_0, JPABaseEmitter** param_1) { static const u16 name0[] = { - 0x02A3, - 0x83A2, - 0x884F, + ID_ZI_J_WL_BURUBURU_A, + dPa_RM(ID_ZI_S_DIGTHROUGHA_BURU_A), + dPa_RM(ID_ZI_S_DIGTHROUGHSNOW_BURU_A), }; static const u16 name1[] = { - 0x02A3, - 0x83A3, - 0x8850, + ID_ZI_J_WL_BURUBURU_A, + dPa_RM(ID_ZI_S_DIGTHROUGHA_BURU_B), + dPa_RM(ID_ZI_S_DIGTHROUGHSNOW_BURU_B), }; int var_r30 = mProcVar3.field_0x300e; @@ -1228,128 +1290,133 @@ void daAlink_c::setWolfSwimEndEffect(JPABaseEmitter** param_0, JPABaseEmitter** void daAlink_c::setWolfLockAttackEffect() { static const u16 effID[] = { - 0x0244, - 0x0245, - 0x0246, + ID_ZI_J_WL_LOCKATBLUR_A, + ID_ZI_J_WL_LOCKATBLUR_B, + ID_ZI_J_WL_LOCKATBLUR_IND, }; - u8 var_r30; + JPABaseEmitter* emitter; + u8 alpha; if (dComIfGp_checkPlayerStatus1(0, 0x01000000)) { - var_r30 = 0xFF; + alpha = 0xFF; } else { - JPABaseEmitter* temp_r3 = dComIfGp_particle_getEmitter(field_0x31b0[0]); - if (temp_r3 != NULL) { - var_r30 = temp_r3->getGlobalAlpha(); - if (var_r30 >= 51) { - var_r30 -= 51; + emitter = dComIfGp_particle_getEmitter(field_0x31b0[0]); + if (emitter != NULL) { + alpha = emitter->getGlobalAlpha(); + if (alpha >= 51) { + alpha -= (u8)51; } else { - var_r30 = 0; + alpha = 0; } } else { - var_r30 = 0; + alpha = 0; } } - if (var_r30 != 0) { - cXyz sp8; - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(37), &sp8); + if (alpha != 0) { + Vec pos; + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(37), &pos); for (int i = 0; i < 3; i++) { - JPABaseEmitter* temp_r3_3 = setEmitter(&field_0x31b0[i], effID[i], &sp8, &shape_angle); - if (temp_r3_3 != NULL) { - temp_r3_3->setGlobalAlpha(var_r30); + emitter = setEmitter(&field_0x31b0[i], effID[i], (cXyz*)&pos, &shape_angle); + if (emitter != NULL) { + emitter->setGlobalAlpha(alpha); } } } } void daAlink_c::setWolfJumpAttackEffect() { - cXyz sp8; + cXyz pos; - u8 var_r30; + JPABaseEmitter* emitter; + u8 alpha; if (mProcID == PROC_WOLF_JUMP_ATTACK && mProcVar4.field_0x3010 != 0) { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(3), &sp8); - setEmitter(&field_0x3288, 0xA9F, &sp8, &shape_angle); - setEmitter(&field_0x328c, 0xAA0, &sp8, &shape_angle); - var_r30 = 0xFF; + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(3), &pos); + setEmitter(&field_0x3288, ID_ZI_J_WL_ATTACKA_A, &pos, &shape_angle); + setEmitter(&field_0x328c, ID_ZI_J_WL_ATTACKA_B, &pos, &shape_angle); + alpha = 0xFF; } else { stopDrawParticle(field_0x3288); stopDrawParticle(field_0x328c); - JPABaseEmitter* temp_r3 = dComIfGp_particle_getEmitter(field_0x3290); - if (temp_r3 != NULL) { - var_r30 = temp_r3->getGlobalAlpha(); - if (var_r30 >= 51) { - var_r30 -= 51; + emitter = dComIfGp_particle_getEmitter(field_0x3290); + if (emitter != NULL) { + alpha = emitter->getGlobalAlpha(); + if (alpha >= 51) { + alpha -= 51; } else { - var_r30 = 0; + alpha = 0; } } else { - var_r30 = 0; + alpha = 0; } } - if (var_r30 != 0) { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(0x25), &sp8); + if (alpha != 0) { + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(37), &pos); - JPABaseEmitter* temp_r3_3 = setEmitter(&field_0x3290, 0xB6F, &sp8, &shape_angle); - if (temp_r3_3 != NULL) { - temp_r3_3->setGlobalAlpha(var_r30); + emitter = setEmitter(&field_0x3290, ID_ZI_J_WL_ATTACKBLURA_A, &pos, &shape_angle); + if (emitter != NULL) { + emitter->setGlobalAlpha(alpha); } } } -void daAlink_c::setWolfBarrierHitEffect(dBgS_LinChk& param_0) { +void daAlink_c::setWolfBarrierHitEffect(dBgS_LinChk& i_linchk) { static const u16 normalNameID[] = { - 0x8390, - 0x8391, + dPa_RM(ID_ZI_S_NSBARRIER_COLL_A), + dPa_RM(ID_ZI_S_NSBARRIER_COLL_B), }; static const u16 ganonNameID[] = { - 0x8C2A, - 0x8C2B, + dPa_RM(ID_ZI_S_GW_COLL_A), + dPa_RM(ID_ZI_S_GW_COLL_B), }; - cM3dGPla sp10; - dComIfG_Bgsp().GetTriPla(param_0, &sp10); + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(i_linchk, &tripla); - field_0x3102 = cM_atan2s(-sp10.mNormal.x, -sp10.mNormal.z); + field_0x3102 = cM_atan2s(-tripla.mNormal.x, -tripla.mNormal.z); - csXyz sp8(cM_atan2s(sp10.mNormal.y, sp10.mNormal.absXZ()), field_0x3102, 0); + csXyz rot(cM_atan2s(tripla.mNormal.y, tripla.mNormal.absXZ()), field_0x3102, 0); - const u16* var_r30; - s16 temp_r3 = getMoveBGActorName(param_0, 1); - if (temp_r3 == PROC_Obj_GanonWall2 || temp_r3 == PROC_OBJ_GB) { - var_r30 = ganonNameID; + const u16* effNames; + s16 movebg_name = getMoveBGActorName(i_linchk, TRUE); + if (movebg_name == PROC_Obj_GanonWall2 || movebg_name == PROC_OBJ_GB) { + effNames = ganonNameID; } else { - var_r30 = normalNameID; + effNames = normalNameID; } - for (int i = 0; i < 2; i++, var_r30++) { - dComIfGp_particle_set(*var_r30, param_0.GetCrossP(), &sp8, NULL); + for (int i = 0; i < 2; i++, effNames++) { + dComIfGp_particle_set(*effNames, i_linchk.GetCrossP(), &rot, NULL); } - mDoAud_seStart(Z2SE_OBJ_BARRIER_COLLISION, param_0.GetCrossP(), 0, 0); + mDoAud_seStart(Z2SE_OBJ_BARRIER_COLLISION, i_linchk.GetCrossP(), 0, 0); field_0x3100 = 3; } void daAlink_c::setCutWaterDropEffect() { if (field_0x32c0[0] > 0) { - cXyz sp18; - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp18); - dComIfGp_particle_setColor(0x2A4, &sp18, &tevStr, NULL, NULL, 0.0f, -1, &shape_angle, NULL, + Vec pos; + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &pos); + dComIfGp_particle_setColor(ID_ZI_J_LK_NURECUT_BACKBONE1, (cXyz*)&pos, &tevStr, NULL, NULL, 0.0f, -1, &shape_angle, NULL, NULL, -1, NULL); } } void daAlink_c::setWaterDropEffect() { static const u16 effDataTable[] = { - 0x02A5, 0x02A6, 0x02A7, 0x02A8, + ID_ZI_J_LK_NUREPOTA_BACKBONE2, + ID_ZI_J_LK_NUREPOTA_WAIST, + ID_ZI_J_WL_NUREPOTA_BACKBONE1, + ID_ZI_J_WL_NUREPOTA_BACKBONE2, }; Vec spC; int i; - if (checkEndResetFlg1(daPy_ERFLG1(ERFLG1_UNK_20000 | ERFLG1_UNK_1000 | ERFLG1_UNK_800))) { + if (checkEndResetFlg1(daPy_ERFLG1(ERFLG1_WATER_DROP | ERFLG1_UNK_1000 | ERFLG1_WATERFALL_FRONT_HIT))) { for (i = 0; i < 2; i++) { field_0x32c0[i] = -1; } @@ -1375,23 +1442,25 @@ void daAlink_c::setWaterDropEffect() { } } - const u16* var_r29; + const u16* effNames; if (checkWolf()) { - var_r29 = &effDataTable[2]; + effNames = &effDataTable[2]; } else { - var_r29 = &effDataTable[0]; + effNames = &effDataTable[0]; } - - for (i = 0; i < 2; i++, var_r29++) { + + JPABaseEmitter* emitter; + s16 color; + for (i = 0; i < 2; i++, effNames++) { if (field_0x32c0[i] > 0) { - JPABaseEmitter* temp_r3 = setEmitterColor(&field_0x3298[i], *var_r29, ¤t.pos, NULL); - if (temp_r3 != NULL) { - temp_r3->setGlobalRTMatrix(mpLinkModel->getAnmMtx(field_0x32c4[i])); + emitter = setEmitterColor(&field_0x3298[i], *effNames, ¤t.pos, NULL); + if (emitter != NULL) { + emitter->setGlobalRTMatrix(mpLinkModel->getAnmMtx(field_0x32c4[i])); if (checkPlayerNoDraw()) { - temp_r3->stopDrawParticle(); + emitter->stopDrawParticle(); } else { - temp_r3->playDrawParticle(); + emitter->playDrawParticle(); } } } @@ -1408,16 +1477,15 @@ void daAlink_c::setWaterDropEffect() { field_0x32a0[i].a++; } - s16 var_r27; if (!checkNoResetFlg2(daPy_FLG2(FLG2_UNK_100000 | FLG2_UNK_80000))) { - var_r27 = field_0x32a0[i].a * 0.4f; + color = field_0x32a0[i].a * 0.4f; } else { - var_r27 = field_0x32a0[i].a * 0.65f; + color = field_0x32a0[i].a * 0.65f; } - field_0x32a0[i].r = var_r27; - field_0x32a0[i].g = var_r27; - field_0x32a0[i].b = var_r27; + field_0x32a0[i].r = color; + field_0x32a0[i].g = color; + field_0x32a0[i].b = color; } } @@ -1439,23 +1507,29 @@ void daAlink_c::setSwordUpColorEffect() { } void daAlink_c::setSwordCutSplash() { - static const u16 cutSplashName[] = {0x01B8, 0x01B9, 0x01BA, 0x01BB}; + static const u16 cutSplashName[] = { + ID_ZI_J_DOWNWTRA_A, + ID_ZI_J_DOWNWTRA_B, + ID_ZI_J_DOWNWTRA_C, + ID_ZI_J_DOWNWTRA_D, + }; + static Vec const swordCutSplashScale = {0.6f, 0.6f, 0.6f}; - if (mCutType != 0 && mProcID != PROC_CUT_TURN && getCutAtFlg() != 0 && checkNoResetFlg0(FLG0_UNK_80) && mEquipItem == 0x103) { + if (mCutType != 0 && mProcID != PROC_CUT_TURN && getCutAtFlg() && checkNoResetFlg0(FLG0_UNK_80) && mEquipItem == 0x103) { if (mSwordTopPos.y <= mWaterY && field_0x34b0.y > mWaterY) { cXyz sp14(mSwordTopPos.x, mWaterY, mSwordTopPos.z); for (int i = 0; i < 4; i++) { - JPABaseEmitter* temp_r3 = setEmitterPolyColor(&field_0x31e8[i], cutSplashName[i], mLinkAcch.m_wtr, &sp14, NULL); - if (temp_r3 != NULL) { - temp_r3->setRateStep(5); - temp_r3->setGlobalScale(swordCutSplashScale); + JPABaseEmitter* emitter = setEmitterPolyColor(&field_0x31e8[i], cutSplashName[i], mLinkAcch.m_wtr, &sp14, NULL); + if (emitter != NULL) { + emitter->setRateStep(5); + emitter->setGlobalScale(swordCutSplashScale); - if (cutSplashName[i] == 0x1B9) { - temp_r3->setRate(5.0f); - } else if (cutSplashName[i] == 0x1BB) { - temp_r3->setDirectionalSpeed(5.0f); + if (cutSplashName[i] == ID_ZI_J_DOWNWTRA_B) { + emitter->setRate(5.0f); + } else if (cutSplashName[i] == ID_ZI_J_DOWNWTRA_D) { + emitter->setDirectionalSpeed(5.0f); } } } @@ -1464,25 +1538,33 @@ void daAlink_c::setSwordCutSplash() { } void daAlink_c::setMetamorphoseEffectStartLink() { - setEmitter(&field_0x31f8, 0x24F, &field_0x37c8, NULL); - setEmitter(&field_0x31fc, 0x250, &field_0x37c8, NULL); - setEmitter(&field_0x3200, 0x6E8, &cXyz::Zero, NULL); + setEmitter(&field_0x31f8, ID_ZI_J_ATOW_A, &field_0x37c8, NULL); + setEmitter(&field_0x31fc, ID_ZI_J_ATOW_B, &field_0x37c8, NULL); + JPABaseEmitter* emitter = setEmitter(&field_0x3200, ID_ZI_J_ATOW_C, &cXyz::Zero, NULL); + + #if VERSION == VERSION_SHIELD_DEBUG + static Vec effScale = {1.33f, 1.0f, 1.0f}; + if (emitter != NULL) { + emitter->setGlobalParticleScale(effScale); + } + #endif } void daAlink_c::setMetamorphoseEffect() { + JPABaseEmitter* emitter; if (mProcVar1.field_0x300a == 0) { if (mProcVar5.field_0x3012 != 0) { if (checkWolf()) { setMetamorphoseEffectStartLink(); } else { - setEmitter(&field_0x31fc, 0x251, &field_0x37c8, NULL); + setEmitter(&field_0x31fc, ID_ZI_J_WTOA_A, &field_0x37c8, NULL); } } else if (checkWolf()) { - JPABaseEmitter* temp_r30 = setEmitter(&field_0x31f8, 0x252, ¤t.pos, NULL); + emitter = setEmitter(&field_0x31f8, ID_ZI_J_WTOA_B, ¤t.pos, NULL); mDoMtx_multVecZero(mpLinkModel->getAnmMtx(2), &field_0x37c8); - if (temp_r30 != NULL) { - temp_r30->setGlobalRTMatrix(mpLinkModel->getAnmMtx(2)); + if (emitter != NULL) { + emitter->setGlobalRTMatrix(mpLinkModel->getAnmMtx(2)); } } else { mDoMtx_multVecZero(mpLinkModel->getAnmMtx(2), &field_0x37c8); @@ -1492,33 +1574,37 @@ void daAlink_c::setMetamorphoseEffect() { } void daAlink_c::setRunSplash() { + JPABaseEmitter* emitter; + if (mProcID == PROC_MOVE && checkNoResetFlg0(FLG0_UNK_80) && checkDashAnime()) { f32 temp_f31 = mWaterY - current.pos.y; - if (temp_f31 >= mpHIO->mBasic.m.mWaterSurfaceEffectHeight && temp_f31 < field_0x598 && dKy_pol_efftype_get(&mLinkAcch.m_wtr) == 2) { - cXyz sp8(current.pos.x, mWaterY, current.pos.z); + if (temp_f31 >= mpHIO->mBasic.m.mWaterSurfaceEffectHeight && temp_f31 < mHeight && dKy_pol_efftype_get(&mLinkAcch.m_wtr) == 2) { + cXyz pos(current.pos.x, mWaterY, current.pos.z); - JPABaseEmitter* temp_r3 = setEmitterPolyColor(&field_0x31f8, 0x1AF, mLinkAcch.m_wtr, &sp8, ¤t.angle); - if (temp_r3 != NULL) { - temp_r3->setLifeTime(10); - temp_r3->setDirectionalSpeed(5.0f); + emitter = setEmitterPolyColor(&field_0x31f8, ID_ZI_J_DASHWTRA_A, mLinkAcch.m_wtr, &pos, ¤t.angle); + if (emitter != NULL) { + emitter->setLifeTime(10); + emitter->setDirectionalSpeed(5.0f); } - sp8.set(current.pos.x + (70.0f * cM_ssin(shape_angle.y)), 20.0f + mWaterY, current.pos.z + (70.0f * cM_scos(shape_angle.y))); - setEmitterPolyColor(&field_0x31fc, 0x1B0, mLinkAcch.m_wtr, &sp8, ¤t.angle); - sp8.y = mWaterY; + pos.set(current.pos.x + (70.0f * cM_ssin(shape_angle.y)), 20.0f + mWaterY, current.pos.z + (70.0f * cM_scos(shape_angle.y))); + setEmitterPolyColor(&field_0x31fc, ID_ZI_J_DASHWTRA_B, mLinkAcch.m_wtr, &pos, ¤t.angle); + pos.y = mWaterY; - JPABaseEmitter* temp_r3_2 = setEmitterPolyColor(&field_0x3200, 0x1B1, mLinkAcch.m_wtr, &sp8, ¤t.angle); - if (temp_r3_2 != NULL) { - temp_r3_2->setLifeTime(20); - temp_r3_2->setDirectionalSpeed(4.5f); + emitter = setEmitterPolyColor(&field_0x3200, ID_ZI_J_DASHWTRA_C, mLinkAcch.m_wtr, &pos, ¤t.angle); + if (emitter != NULL) { + emitter->setLifeTime(20); + emitter->setDirectionalSpeed(4.5f); } } } } -void dAlink_bottleWaterPcallBack_c::execute(JPABaseEmitter* param_0, JPABaseParticle* param_1) { +void dAlink_bottleWaterPcallBack_c::execute(JPABaseEmitter* i_emitter, JPABaseParticle* i_particle) { + UNUSED(i_emitter); + JGeometry::TVec3 sp18; - param_1->getGlobalPosition(sp18); + i_particle->getGlobalPosition(&sp18); if (sp18.y < mKeepMinY) { mKeepMinY = sp18.y; @@ -1526,16 +1612,16 @@ void dAlink_bottleWaterPcallBack_c::execute(JPABaseEmitter* param_0, JPABasePart cXyz spC(sp18.x, daAlink_getAlinkActorClass()->getHeadTopPosP()->y, sp18.z); - BOOL var_r29 = 0; - BOOL var_r30 = 0; + BOOL var_r29 = FALSE; + BOOL var_r30 = FALSE; if (fopAcM_gc_c::gndCheck(&spC)) { if (sp18.y < fopAcM_gc_c::getGroundY()) { mHitFlg = 1; mHitPos.set(spC.x, fopAcM_gc_c::getGroundY(), spC.z); - var_r29 = 1; - var_r30 = 1; + var_r29 = TRUE; + var_r30 = TRUE; } } @@ -1543,13 +1629,13 @@ void dAlink_bottleWaterPcallBack_c::execute(JPABaseEmitter* param_0, JPABasePart if (sp18.y < fopAcM_wt_c::getWaterY() && (!var_r29 || mHitPos.y < fopAcM_wt_c::getWaterY())) { mHitFlg = 1; mHitPos.set(spC.x, fopAcM_wt_c::getWaterY(), spC.z); - var_r30 = 1; + var_r30 = TRUE; } } if (var_r30) { - param_1->setInvisibleParticleFlag(); - param_1->setDeleteParticleFlag(); + i_particle->setInvisibleParticleFlag(); + i_particle->setDeleteParticleFlag(); } } @@ -1563,38 +1649,40 @@ void daAlink_c::setBottleEffect() { static Vec const chuchuLocalOffset = {0.0f, 15.0f, 0.0f}; static Vec const chuchuScale = {0.8f, 0.8f, 0.8f}; + JPABaseEmitter* emitter; + if (mEquipItem == fpcNm_ITEM_FAIRY) { if (mpHookTipModel != NULL) { - cXyz sp2C; - mDoMtx_multVecZero(mpHookTipModel->getAnmMtx(2), &sp2C); + cXyz pos; + mDoMtx_multVecZero(mpHookTipModel->getAnmMtx(2), &pos); - JPABaseEmitter* temp_r3 = setEmitter(&field_0x3258, 0x72F, &sp2C, NULL); - if (temp_r3 != NULL) { - temp_r3->setGlobalScale(fairyScale); + emitter = setEmitter(&field_0x3258, ID_ZF_J_FAIRY00_GLOW, &pos, NULL); + if (emitter != NULL) { + emitter->setGlobalScale(fairyScale); } - setEmitter(&field_0x325c, 0x734, &sp2C, NULL); + emitter = setEmitter(&field_0x325c, ID_ZF_J_FAIRYITEM02_STAR, &pos, NULL); } } else if (mEquipItem == fpcNm_ITEM_CHUCHU_RARE && mProcID == PROC_BOTTLE_GET) { if (field_0x072c != NULL && field_0x072c->getFrame() < 2.0f) { - cXyz sp20; - mDoMtx_multVec(mHeldItemModel->getAnmMtx(0), &chuchuLocalOffset, &sp20); + cXyz pos; + mDoMtx_multVec(mHeldItemModel->getAnmMtx(0), &chuchuLocalOffset, &pos); - JPABaseEmitter* temp_r3_2 = setEmitter(&field_0x3258, 0xC14, &sp20, NULL); - if (temp_r3_2 != NULL) { - temp_r3_2->setGlobalScale(chuchuScale); + emitter = setEmitter(&field_0x3258, ID_ZI_J_KIRAKIRA_A, &pos, NULL); + if (emitter != NULL) { + emitter->setGlobalScale(chuchuScale); } } } else if (mProcID == PROC_BOTTLE_OPEN && mProcVar3.field_0x300e != 0 && mEquipItem == fpcNm_ITEM_WATER_BOTTLE) { - JPABaseEmitter* temp_r3_3 = setEmitter(&field_0x325c, 0x344, ¤t.pos, NULL); - if (temp_r3_3 != NULL) { - temp_r3_3->setGlobalRTMatrix(mHeldItemModel->getBaseTRMtx()); - temp_r3_3->setParticleCallBackPtr(&field_0x27c8); + emitter = setEmitter(&field_0x325c, ID_ZI_J_LK_BINWATERN_A, ¤t.pos, NULL); + if (emitter != NULL) { + emitter->setGlobalRTMatrix(mHeldItemModel->getBaseTRMtx()); + emitter->setParticleCallBackPtr(&field_0x27c8); } if (!field_0x27c8.getAppearFlg() && field_0x27c8.getHitFlg()) { - dComIfGp_particle_set(0x345, &field_0x27c8.getHitPos(), NULL, NULL); - dComIfGp_particle_set(0x346, &field_0x27c8.getHitPos(), NULL, NULL); + dComIfGp_particle_set(ID_ZI_J_LK_BINWATERN_B, &field_0x27c8.getHitPos(), NULL, NULL); + dComIfGp_particle_set(ID_ZI_J_LK_BINWATERN_C, &field_0x27c8.getHitPos(), NULL, NULL); field_0x27c8.onAppearFlg(); } } @@ -1602,16 +1690,36 @@ void daAlink_c::setBottleEffect() { void daAlink_c::clearFirePointDamageEffect(int i_effNo) { firePointEff_c* fire_eff = &field_0x32d8[i_effNo]; - if (fire_eff->field_0x0 != 0) { stopDrawParticle(fire_eff->field_0x4); stopDrawParticle(fire_eff->field_0x8); } + fire_eff->field_0x0 = 0; fire_eff->field_0x24 = cXyz::Zero; } void daAlink_c::initFirePointDamageEffectAll() { + static u16 const effJoint[2][4] = { + {7, 12, 16, 34}, + {3, 3, 3, 3}, + }; + + static Vec const effOffset[2][4] = { + { + {-5.0f, 0.0f, 0.0f}, + {15.0f, 3.0f, 5.0f}, + {4.0f, -10.0f, 15.0f}, + {0.0f, -5.0f, -7.0f}, + }, + { + {15.0f, 5.0f, -20.0f}, + {0.0f, -25.0f, 5.0f}, + {15.0f, -5.0f, 20.0f}, + {10.0f, -25.0f, -10.0f}, + } + }; + firePointEff_c* eff = field_0x32d8; int var_r29; @@ -1621,27 +1729,8 @@ void daAlink_c::initFirePointDamageEffectAll() { var_r29 = 0; } - for (int i = 0; i < 4; i++, eff++) { - static u16 const effJoint[2][4] = { - {0x0007, 0x000C, 0x0010, 0x0022}, - {0x0003, 0x0003, 0x0003, 0x0003}, - }; - - static Vec const effOffset[2][4] = { - { - {-5.0f, 0.0f, 0.0f}, - {15.0f, 3.0f, 5.0f}, - {4.0f, -10.0f, 15.0f}, - {0.0f, -5.0f, -7.0f}, - }, - { - {15.0f, 5.0f, -20.0f}, - {0.0f, -25.0f, 5.0f}, - {15.0f, -5.0f, 20.0f}, - {10.0f, -25.0f, -10.0f}, - } - }; - + int i; + for (i = 0; i < 4; i++, eff++) { eff->field_0x0 = 1; eff->field_0x2 = effJoint[var_r29][i]; eff->field_0x4 = 0; @@ -1653,7 +1742,7 @@ void daAlink_c::initFirePointDamageEffectAll() { } } -void daAlink_c::initFirePointDamageEffect(cXyz const* param_0, dCcD_GObjInf* param_1) { +void daAlink_c::initFirePointDamageEffect(cXyz const* param_0, dCcD_GObjInf* i_hitObj) { firePointEff_c* eff = field_0x32d8; int i; @@ -1664,9 +1753,9 @@ void daAlink_c::initFirePointDamageEffect(cXyz const* param_0, dCcD_GObjInf* par } if (i != 4) { - cXyz* var_r27 = getDamageVec(param_1); + cXyz* dmg_vec = getDamageVec(i_hitObj); - csXyz sp38(var_r27->atan2sY_XZ(), var_r27->atan2sX_Z(), 0); + csXyz sp38(dmg_vec->atan2sY_XZ(), dmg_vec->atan2sX_Z(), 0); csXyz sp40; cXyz sp30; @@ -1688,43 +1777,44 @@ void daAlink_c::initFirePointDamageEffect(cXyz const* param_0, dCcD_GObjInf* par } void daAlink_c::setFirePointDamageEffect() { - firePointEff_c* var_r30 = field_0x32d8; - cXyz sp24; + firePointEff_c* fireEff = field_0x32d8; + cXyz pos; - BOOL var_r25 = 0; + BOOL var_r25 = FALSE; - for (int i = 0; i < 4; i++, var_r30++) { - if (var_r30->field_0x0 != 0) { - mDoMtx_multVec(mpLinkModel->getAnmMtx(var_r30->field_0x2), &var_r30->field_0x18, &sp24); + JPABaseEmitter* emitter; + for (int i = 0; i < 4; i++, fireEff++) { + if (fireEff->field_0x0 != 0) { + mDoMtx_multVec(mpLinkModel->getAnmMtx(fireEff->field_0x2), &fireEff->field_0x18, &pos); - if (mWaterY > sp24.y) { + if (mWaterY > pos.y) { clearFirePointDamageEffect(i); } else { BOOL var_r26; - if (var_r30->field_0x4 == 0) { - var_r30->field_0x24 = cXyz::Zero; - var_r26 = 1; + if (fireEff->field_0x4 == 0) { + fireEff->field_0x24 = cXyz::Zero; + var_r26 = TRUE; } else { - var_r30->field_0x24 = (sp24 - var_r30->field_0xc) * 0.9f; - var_r26 = 0; + fireEff->field_0x24 = (pos - fireEff->field_0xc) * 0.9f; + var_r26 = FALSE; } - JPABaseEmitter* temp_r28 = setEmitter(&var_r30->field_0x4, 0x742, &sp24, NULL); - if (temp_r28 != NULL && temp_r28->isEnableDeleteEmitter()) { + emitter = setEmitter(&fireEff->field_0x4, ID_ZI_J_LK_BURNS_A, &pos, NULL); + if (emitter != NULL && emitter->isEnableDeleteEmitter()) { clearFirePointDamageEffect(i); } else { - if (var_r26 && temp_r28 != NULL) { - temp_r28->setParticleCallBackPtr(dPa_control_c::getParticleTracePCB()); - temp_r28->setUserWork((uintptr_t)&var_r30->field_0x24); + if (var_r26 && emitter != NULL) { + emitter->setParticleCallBackPtr(dPa_control_c::getParticleTracePCB()); + emitter->setUserWork((uintptr_t)&fireEff->field_0x24); } - JPABaseEmitter* temp_r28_2 = setEmitter(&var_r30->field_0x8, 0x743, &sp24, NULL); - if (var_r26 && temp_r28_2 != NULL) { - temp_r28_2->setParticleCallBackPtr(dPa_control_c::getParticleTracePCB()); - temp_r28_2->setUserWork((uintptr_t)&var_r30->field_0x24); + emitter = setEmitter(&fireEff->field_0x8, ID_ZI_J_LK_BURNS_B, &pos, NULL); + if (var_r26 && emitter != NULL) { + emitter->setParticleCallBackPtr(dPa_control_c::getParticleTracePCB()); + emitter->setUserWork((uintptr_t)&fireEff->field_0x24); } - var_r30->field_0xc = sp24; + fireEff->field_0xc = pos; var_r25 = 1; } } @@ -1741,36 +1831,39 @@ void daAlink_c::setFreezeEffect() { static Vec const wolfEffScale = {1.0f, 1.0f, 1.5f}; static Vec const offsetPos = {0.0f, 0.0f, -10.0f}; - cXyz sp14; + cXyz pos; if (checkFreezeDamage()) { if (mProcID == PROC_DAMAGE || mProcID == PROC_SWIM_FREEZE_RETURN || mProcID == PROC_WOLF_DAMAGE) { - const Vec* var_r28; + const Vec* peffScale; if (checkWolf()) { - mDoMtx_multVec(mpLinkModel->getAnmMtx(2), &offsetPos, &sp14); - var_r28 = &wolfEffScale; + mDoMtx_multVec(mpLinkModel->getAnmMtx(2), &offsetPos, &pos); + peffScale = &wolfEffScale; } else { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp14); - var_r28 = &effScale; + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &pos); + peffScale = &effScale; } - JPABaseEmitter* temp_r3 = setEmitter(&field_0x3268, 0x881A, &sp14, &shape_angle); - if (temp_r3 != NULL) { - temp_r3->setLocalScale(*var_r28); + JPABaseEmitter* emitter = setEmitter(&field_0x3268, dPa_RM(ID_ZI_S_LK_FREEZ_A), &pos, &shape_angle); + if (emitter != NULL) { + emitter->setLocalScale(*peffScale); } } onNoResetFlg3(FLG3_UNK_800); } else if (checkNoResetFlg3(FLG3_UNK_800)) { if (checkWolf()) { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(2), &sp14); + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(2), &pos); } else { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp14); + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &pos); } for (int i = 0; i < 2; i++) { - static const u16 effName[] = {0x8818, 0x8819}; - dComIfGp_particle_setColor(effName[i], &sp14, &tevStr, NULL, NULL, 0.0f, 0xFF); + static const u16 effName[] = { + dPa_RM(ID_ZI_S_LK_FREEZEND_A), + dPa_RM(ID_ZI_S_LK_FREEZEND_B), + }; + dComIfGp_particle_setColor(effName[i], &pos, &tevStr, NULL, NULL, 0.0f, 0xFF); } stopDrawParticle(field_0x3268); @@ -1780,8 +1873,8 @@ void daAlink_c::setFreezeEffect() { void daAlink_c::setWoodShieldBurnEffect() { static const u16 effName[] = { - 0x0814, - 0x0815, + ID_ZI_J_LK_SH_BURN_A, + ID_ZI_J_LK_SH_BURN_B, }; if (field_0x2fcb != 0) { @@ -1808,8 +1901,8 @@ void daAlink_c::clearWoodShieldBurnEffect() { void daAlink_c::setWoodShieldBurnOutEffect() { static const u16 effName[] = { - 0x0816, - 0x0817, + ID_ZI_J_LK_SH_BURN_C, + ID_ZI_J_LK_SH_BURN_D, }; for (int i = 0; i < 2; i++) { @@ -1860,14 +1953,15 @@ static void setBezierPos(cXyz const* start, cXyz const* control_1, cXyz const* c } void daAlink_blur_c::copyBlur(cXyz const* param_0, cXyz const* param_1, cXyz const* param_2) { - s32 temp = 10; + s32 var_r29 = 10; - for (int i = 59 - temp; i >= 0; i--) { - field_0x38[i + temp] = field_0x38[i]; - field_0x308[i + temp] = field_0x308[i]; + int i; + for (i = 59 - var_r29; i >= 0; i--) { + field_0x38[i + var_r29] = field_0x38[i]; + field_0x308[i + var_r29] = field_0x308[i]; } - f32 temp_f30 = 1.0f / temp; + f32 temp_f30 = 1.0f / var_r29; f32 var_f31 = 0.0f; cXyz sp4C; @@ -1875,14 +1969,14 @@ void daAlink_blur_c::copyBlur(cXyz const* param_0, cXyz const* param_1, cXyz con cXyz sp64; cXyz sp70; - sp58 = field_0x308[temp] + (field_0x2c * 30.0f); + sp58 = field_0x308[var_r29] + (field_0x2c * 30.0f); sp4C = *param_1 + (*param_2 * -30.0f); - sp70 = field_0x38[temp] + (field_0x2c * 60.0f); + sp70 = field_0x38[var_r29] + (field_0x2c * 60.0f); sp64 = *param_0 + (*param_2 * -60.0f); - for (int i = 0; i < temp; i++) { - setBezierPos(param_1, &field_0x308[temp], &sp4C, &sp58, var_f31, &field_0x308[i]); - setBezierPos(param_0, &field_0x38[temp], &sp64, &sp70, var_f31, &field_0x38[i]); + for (i = 0; i < var_r29; i++) { + setBezierPos(param_1, &field_0x308[var_r29], &sp4C, &sp58, var_f31, &field_0x308[i]); + setBezierPos(param_0, &field_0x38[var_r29], &sp64, &sp70, var_f31, &field_0x38[i]); field_0x38[i] += (field_0x38[i] - field_0x308[i]) * field_0x24; var_f31 += temp_f30; @@ -1890,7 +1984,7 @@ void daAlink_blur_c::copyBlur(cXyz const* param_0, cXyz const* param_1, cXyz con field_0x2c = *param_2; - field_0x14 += 10; + field_0x14 += var_r29; if (field_0x14 >= 59) { field_0x14 = 58; } @@ -1920,7 +2014,7 @@ void daAlink_blur_c::draw() { GXSetNumIndStages(0); nColor0.a = field_0x20; - GXInitTexObj(&texObj, (void*)((uintptr_t)m_blurTex + m_blurTex->imageOffset), 0x10, 4, GX_TF_I4, + GXInitTexObj(&texObj, (void*)((uintptr_t)m_blurTex + m_blurTex->imageOffset), 16, 4, GX_TF_I4, GX_CLAMP, GX_CLAMP, GX_FALSE); GXInitTexObjLOD(&texObj, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); @@ -1989,25 +2083,29 @@ BOOL daAlink_lockCursor_c::create() { mScrn->setPriority("zelda_v_cursor_new_yellow.blo", 0x100000, arc); dPaneClass_showNullPane(mScrn); - void* tmpData = JKRFileLoader::getGlbResource("zelda_v_cursor_new_yellow.bpk", arc); + void* tmpData = JKRGetNameResource("zelda_v_cursor_new_yellow.bpk", arc); + JUT_ASSERT(3450, tmpData); field_0x24 = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(tmpData); if (field_0x24 == NULL) { return false; } - tmpData = JKRFileLoader::getGlbResource("zelda_v_cursor_new_yellow.bck", arc); + tmpData = JKRGetNameResource("zelda_v_cursor_new_yellow.bck", arc); + JUT_ASSERT(3458, tmpData); field_0x28 = (J2DAnmTransformKey*)J2DAnmLoaderDataBase::load(tmpData); if (field_0x28 == NULL) { return false; } - tmpData = JKRFileLoader::getGlbResource("zelda_v_cursor_new_yellow_02.brk", arc); + tmpData = JKRGetNameResource("zelda_v_cursor_new_yellow_02.brk", arc); + JUT_ASSERT(3467, tmpData); field_0x1c = (J2DAnmTevRegKey*)J2DAnmLoaderDataBase::load(tmpData); if (field_0x1c == NULL) { return false; } - tmpData = JKRFileLoader::getGlbResource("zelda_v_cursor_new_yellow.brk", arc); + tmpData = JKRGetNameResource("zelda_v_cursor_new_yellow.brk", arc); + JUT_ASSERT(3475, tmpData); field_0x20 = (J2DAnmTevRegKey*)J2DAnmLoaderDataBase::load(tmpData); if (field_0x20 == NULL) { return false; @@ -2029,7 +2127,8 @@ BOOL daAlink_lockCursor_c::create() { mCursor0->setAnimation(field_0x24); mCursor1->setAnimation(field_0x24); mCursor2->setAnimation(field_0x24); - mScrn->search('flash')->setAnimation(field_0x24); + J2DPane* sp8 = mScrn->search('flash'); + sp8->setAnimation(field_0x24); field_0x24->setFrame(0.0f); field_0x1c->searchUpdateMaterialID(mScrn); @@ -2080,38 +2179,40 @@ void daAlink_lockCursor_c::update() { } void daAlink_lockCursor_c::draw() { - if (field_0x4 != 0) { - field_0x28->setFrame(mLockCursorAngle); - - f32 var_f30; - if (mLockCursorAngle > 21.0f) { - var_f30 = 21.0f; - } else { - var_f30 = mLockCursorAngle; - } - - field_0x24->setFrame(var_f30); - field_0x1c->setFrame(field_0x30); - - mScrn->animation(); - field_0xc->scale(0.6f, 0.6f); - field_0xc->translate(mPosX, mPosY); - - if (!(mLockCursorAngle < 15.0f)) { - f32 var_f31; - if (mLockCursorAngle < 21.0f) { - var_f31 = ((mLockCursorAngle - 15.0f) * 40.0f) * 0.16666667f; - } else { - var_f31 = ((field_0x4 * 0.00390625f) + 0.5f) * 40.0f; - } - - mCursor0->translate(0.0f, -var_f31); - mCursor1->translate(var_f31 * cM_fcos(2.6179938f), var_f31 * cM_fsin(2.6179938f)); - mCursor2->translate(var_f31 * cM_fcos(0.5235988f), var_f31 * cM_fsin(0.5235988f)); - } - - mScrn->draw(0.0f, 0.0f, dComIfGp_getCurrentGrafPort()); + if (field_0x4 == 0) { + return; } + + field_0x28->setFrame(mLockCursorAngle); + + f32 var_f30; + if (mLockCursorAngle > 21.0f) { + var_f30 = 21.0f; + } else { + var_f30 = mLockCursorAngle; + } + + field_0x24->setFrame(var_f30); + field_0x1c->setFrame(field_0x30); + + mScrn->animation(); + field_0xc->scale(0.6f, 0.6f); + field_0xc->translate(mPosX, mPosY); + + f32 var_f31; + if (!(mLockCursorAngle < 15.0f)) { + if (mLockCursorAngle < 21.0f) { + var_f31 = ((mLockCursorAngle - 15.0f) * 40.0f) * 0.16666667f; + } else { + var_f31 = ((field_0x4 * 0.00390625f) + 0.5f) * 40.0f; + } + + mCursor0->translate(0.0f, -var_f31); + mCursor1->translate(var_f31 * cM_fcos(2.6179938f), var_f31 * cM_fsin(2.6179938f)); + mCursor2->translate(var_f31 * cM_fcos(0.5235988f), var_f31 * cM_fsin(0.5235988f)); + } + + mScrn->draw(0.0f, 0.0f, dComIfGp_getCurrentGrafPort()); } BOOL daAlink_sight_c::create() { @@ -2119,14 +2220,13 @@ BOOL daAlink_sight_c::create() { return false; } - ResTIMG* data = (ResTIMG*)dComIfG_getObjectRes(l_arcName, daAlink_c::getSightBti()); - setSightImage(data); + setSightImage((ResTIMG*)dComIfG_getObjectRes(l_arcName, daAlink_c::getSightBti())); return true; } void daAlink_sight_c::draw() { if (mLockFlag) { - mLockCursor.setPos(field_0x14[0][3], field_0x14[1][3]); + mLockCursor.setPos(mProjMtx[0][3], mProjMtx[1][3]); mLockCursor.draw(); } else { daPy_sightPacket_c::draw(); diff --git a/src/d/actor/d_a_alink_grab.inc b/src/d/actor/d_a_alink_grab.inc index 7058fcd063..6c316a0933 100644 --- a/src/d/actor/d_a_alink_grab.inc +++ b/src/d/actor/d_a_alink_grab.inc @@ -8,30 +8,39 @@ #include "d/actor/d_a_obj_movebox.h" #include "d/actor/d_a_obj_gra2.h" -static bool daAlink_checkLightBallA(fopAc_ac_c* p_actor) { - if (fopAcM_GetName(p_actor) == PROC_Obj_Carry && - static_cast(p_actor)->getType() == daObjCarry_c::TYPE_BALL_S) +static bool daAlink_checkLightBallA(fopAc_ac_c* i_actor) { + daObjCarry_c* carry = (daObjCarry_c*)i_actor; + + if (fopAcM_GetName(carry) == PROC_Obj_Carry && + carry->getType() == daObjCarry_c::TYPE_BALL_S) { return true; } + return false; } -static bool daAlink_checkLightBallB(fopAc_ac_c* p_actor) { - if (fopAcM_GetName(p_actor) == PROC_Obj_Carry && - static_cast(p_actor)->getType() == daObjCarry_c::TYPE_BALL_S_2) +static bool daAlink_checkLightBallB(fopAc_ac_c* i_actor) { + daObjCarry_c* carry = (daObjCarry_c*)i_actor; + + if (fopAcM_GetName(carry) == PROC_Obj_Carry && + carry->getType() == daObjCarry_c::TYPE_BALL_S_2) { return true; } + return false; } -static fopAc_ac_c* daAlink_searchLightBall(fopAc_ac_c* p_actor, void* param_1) { - if ((daPy_py_c::checkCarryStartLightBallA() && daAlink_checkLightBallA(p_actor)) || - (daPy_py_c::checkCarryStartLightBallB() && daAlink_checkLightBallB(p_actor))) +static fopAc_ac_c* daAlink_searchLightBall(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); + + if ((daPy_py_c::checkCarryStartLightBallA() && daAlink_checkLightBallA(i_actor)) || + (daPy_py_c::checkCarryStartLightBallB() && daAlink_checkLightBallB(i_actor))) { - return p_actor; + return i_actor; } + return NULL; } @@ -44,18 +53,18 @@ BOOL daAlink_c::checkGrabLineCheck() { return false; } -void daAlink_c::setGrabCollisionOffset(f32 param_0, f32 param_1, cBgS_PolyInfo* param_2) { +void daAlink_c::setGrabCollisionOffset(f32 i_offsetX, f32 i_offsetZ, cBgS_PolyInfo* param_2) { if (param_2 != NULL) { mPolyInfo4.SetPolyInfo(*param_2); } else { mPolyInfo4.ClearPi(); } - field_0x342c = 0.8f * param_0; - field_0x3430 = 0.8f * param_1; + field_0x342c = 0.8f * i_offsetX; + field_0x3430 = 0.8f * i_offsetZ; } -BOOL daAlink_c::exchangeGrabActor(fopAc_ac_c* p_actor) { +BOOL daAlink_c::exchangeGrabActor(fopAc_ac_c* i_actor) { fopAc_ac_c* actor = mGrabItemAcKeep.getActor(); if (actor == NULL) { return false; @@ -70,19 +79,23 @@ BOOL daAlink_c::exchangeGrabActor(fopAc_ac_c* p_actor) { actor->current.angle.x = 0; } - setGrabItemActor(p_actor); + setGrabItemActor(i_actor); return true; } -BOOL daAlink_c::setForceGrab(fopAc_ac_c* p_actor, int param_1, int param_2) { - if (((param_1 != 0 || !checkEventRun()) && !checkWolf()) && - (((mEquipItem == fpcNm_ITEM_NONE || (param_2 != 0 && checkHookshotItem(mEquipItem)))) && - ((checkModeFlg(MODE_UNK_10000000) && - (checkHorseNoUpperAnime() || checkHorseTurnAnime())) || - param_2 != 0 && checkHookshotAnime()))) +BOOL daAlink_c::setForceGrab(fopAc_ac_c* i_actor, BOOL param_1, BOOL param_2) { + if (((param_1 || !checkEventRun()) && !checkWolf()) + && ((mEquipItem == fpcNm_ITEM_NONE || (param_2 && checkHookshotItem(mEquipItem))) + && ((checkModeFlg(MODE_UNK_10000000) + && (checkHorseNoUpperAnime() || checkHorseTurnAnime()) + ) + || (param_2 && checkHookshotAnime()) + ) + ) + ) { deleteEquipItem(TRUE, FALSE); - setGrabItemActor(p_actor); + setGrabItemActor(i_actor); field_0x33e4 = 38.0f; setGrabUpperAnime(mpHIO->mBasic.m.mBasicInterpolation); return true; @@ -92,7 +105,7 @@ BOOL daAlink_c::setForceGrab(fopAc_ac_c* p_actor, int param_1, int param_2) { } f32 daAlink_c::getGrabThrowRate() { - if (checkHeavyStateOn(1, 1)) { + if (checkHeavyStateOn(TRUE, TRUE)) { return 0.6f * mHeavySpeedMultiplier; } @@ -117,10 +130,11 @@ BOOL daAlink_c::checkGrabCarryActor() { } BOOL daAlink_c::checkGrabSlowMoveActor() { - daObjCarry_c* var_r31 = (daObjCarry_c*)mGrabItemAcKeep.getActor(); - return var_r31 != NULL && - (fopAcM_CheckCarryType(var_r31, fopAcM_CARRY_HEAVY) || - (fopAcM_GetName(var_r31) == PROC_Obj_Carry && (var_r31->getType() == 1 || var_r31->getType() == 10 || var_r31->getType() == 4))); + daObjCarry_c* carry = (daObjCarry_c*)mGrabItemAcKeep.getActor(); + return carry != NULL && + (fopAcM_CheckCarryType(carry, fopAcM_CARRY_HEAVY) || + (fopAcM_GetName(carry) == PROC_Obj_Carry + && (carry->getType() == daObjCarry_c::TYPE_OOTSUBO || carry->getType() == daObjCarry_c::TYPE_AOTSUBO || carry->getType() == daObjCarry_c::TYPE_TARU))); } BOOL daAlink_c::checkGrabHeavyActor() { @@ -134,7 +148,7 @@ BOOL daAlink_c::checkGrabSideActor() { } void daAlink_c::setGrabUpperAnime(f32 param_0) { - if (param_0 > 0.0f && checkNoResetFlg0(FLG0_UNDERWATER)) { + if (param_0 > 0.0f && checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { if (checkZoraWearAbility()) { param_0 *= 1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed; } else { @@ -145,15 +159,15 @@ void daAlink_c::setGrabUpperAnime(f32 param_0) { field_0x33e8 = 0.0f; if (checkGrabCarryActor()) { - setUpperAnimeBaseSpeed(0x60, 0.0f, param_0); - setFacePriBck(0xFA); - } else if (checkGrabSideActor() != 0) { - setUpperAnimeBaseSpeed(0x50, 0.0f, param_0); - setFacePriBck(0x13D); + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_CARRYD_e, 0.0f, param_0); + setFacePriBck(dRes_ID_ALANM_BCK_FCAT_e); + } else if (checkGrabSideActor()) { + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_BOMBD_e, 0.0f, param_0); + setFacePriBck(dRes_ID_ALANM_BCK_FGRABWAIT_e); field_0x33ec = 0.0f; } else { - setUpperAnimeBaseSpeed(0x16C, 0.0f, param_0); - setFacePriBck(0x13D); + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_GRABD_e, 0.0f, param_0); + setFacePriBck(dRes_ID_ALANM_BCK_FGRABWAIT_e); field_0x33ec = 0.0f; } @@ -178,19 +192,19 @@ void daAlink_c::setGrabItemPos() { static cXyz grabCarryOffset2(-3.0f, 30.0f, -30.0f); static cXyz grabCarryOffset3(-4.5f, 26.0f, -33.0f); - fopAc_ac_c* temp_r3 = mGrabItemAcKeep.getActor(); - if (temp_r3 != NULL) { - daPy_frameCtrl_c* sp1C = &mUnderFrameCtrl[0]; + fopAc_ac_c* grabActor = mGrabItemAcKeep.getActor(); + if (grabActor != NULL) { + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - s8 sp8 = fopAcM_GetRoomNo(this); - temp_r3->tevStr.room_no = sp8; - temp_r3->tevStr.YukaCol = tevStr.YukaCol; - fopAcM_SetRoomNo(temp_r3, sp8); + s8 roomNo = fopAcM_GetRoomNo(this); + grabActor->tevStr.room_no = roomNo; + grabActor->tevStr.YukaCol = tevStr.YukaCol; + fopAcM_SetRoomNo(grabActor, roomNo); - BOOL sp18 = checkGrabCarryActor(); + BOOL isGrabCarryActor = checkGrabCarryActor(); s16 spE; s16 spC; - if (sp18) { + if (isGrabCarryActor) { spE = (shape_angle.y + 0x8000); spC = -field_0x2fee; } else { @@ -199,26 +213,26 @@ void daAlink_c::setGrabItemPos() { } if (checkGrabSideThrowAnime()) { - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(0xA), &temp_r3->current.pos); - temp_r3->shape_angle.y = spE; - temp_r3->shape_angle.z = spC; - temp_r3->shape_angle.x = shape_angle.x; + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(10), &grabActor->current.pos); + grabActor->shape_angle.y = spE; + grabActor->shape_angle.z = spC; + grabActor->shape_angle.x = shape_angle.x; } else if (mProcID == PROC_GRAB_READY || mProcID == PROC_GRAB_MISS || mProcID == PROC_PICK_UP || (mProcID == PROC_WOLF_GRAB_UP && mProcVar3.field_0x300e == 0)) { mDoMtx_stack_c::transS(current.pos); mDoMtx_stack_c::YrotM((shape_angle.y - mProcVar2.field_0x300c)); - mDoMtx_stack_c::multVec(&field_0x37c8, &temp_r3->current.pos); - if (sp18 && mProcID == PROC_GRAB_READY) { - cLib_chaseAngleS(&temp_r3->shape_angle.y, spE, 0x1000); - temp_r3->current.angle.y = temp_r3->shape_angle.y; + mDoMtx_stack_c::multVec(&field_0x37c8, &grabActor->current.pos); + if (isGrabCarryActor && mProcID == PROC_GRAB_READY) { + cLib_chaseAngleS(&grabActor->shape_angle.y, spE, 0x1000); + grabActor->current.angle.y = grabActor->shape_angle.y; } } else if (checkWolf()) { mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(4)); - if (!fopAcM_CheckCarryType(temp_r3, fopAcM_CARRY_ITEM)) { + if (!fopAcM_CheckCarryType(grabActor, fopAcM_CARRY_ITEM)) { mDoMtx_stack_c::transM(78.0f, 42.0f, 0.0f); mDoMtx_stack_c::ZrotM(cM_deg2s(138.0f)); } else { - if (fopAcM_GetName(temp_r3) == PROC_OBJ_FOOD) { + if (fopAcM_GetName(grabActor) == PROC_OBJ_FOOD) { mDoMtx_stack_c::transM(32.0f, 7.0f, 0.0f); } else { mDoMtx_stack_c::transM(30.0f, 12.0f, 0.0f); @@ -227,26 +241,27 @@ void daAlink_c::setGrabItemPos() { mDoMtx_stack_c::XYZrotM(cM_deg2s(132.0f), cM_deg2s(-90.0f), 0); } - mDoMtx_stack_c::multVecZero(&temp_r3->current.pos); - mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &temp_r3->shape_angle); + mDoMtx_stack_c::multVecZero(&grabActor->current.pos); + mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &grabActor->shape_angle); } else { - BOOL sp14 = fopAcM_GetName(temp_r3) == PROC_NPC_TKJ2; + BOOL sp14 = fopAcM_GetName(grabActor) == PROC_NPC_TKJ2; if (mProcID == PROC_GRAB_UP) { - cLib_chaseAngleS(&temp_r3->shape_angle.y, spE, 0x1000); + cLib_chaseAngleS(&grabActor->shape_angle.y, spE, 0x1000); } else { - temp_r3->shape_angle.y = spE; - temp_r3->shape_angle.z = spC; - temp_r3->shape_angle.x = shape_angle.x; + grabActor->shape_angle.y = spE; + grabActor->shape_angle.z = spC; + grabActor->shape_angle.x = shape_angle.x; } cXyz sp140; cXyz sp134; + f32 temp_f31; if (mProcID == PROC_GRAB_UP) { - sp134 = temp_r3->current.pos; + sp134 = grabActor->current.pos; } - if (sp18) { + if (isGrabCarryActor) { s16 spA = shape_angle.x + (field_0x33e8 * cM_deg2s(30.0f)); cXyz sp128; @@ -254,16 +269,16 @@ void daAlink_c::setGrabItemPos() { mDoMtx_multVecZero(mFootData2[0].field_0x14[2], &sp128); mDoMtx_multVecZero(mFootData2[1].field_0x14[2], &sp11C); - temp_r3->current.pos = (sp128 + sp11C) * 0.5f; + grabActor->current.pos = (sp128 + sp11C) * 0.5f; mDoMtx_stack_c::ZXYrotS(spA, shape_angle.y, shape_angle.z); if (mProcID == PROC_GRAB_UP || mProcID == PROC_GRAB_PUT) { - if (sp1C->getFrame() < field_0x3478) { - f32 temp_f31 = (sp1C->getFrame() - 9.0f) / (field_0x3478 - 9.0f); + if (framectrl->getFrame() < field_0x3478) { + temp_f31 = (framectrl->getFrame() - 9.0f) / (field_0x3478 - 9.0f); sp140 = (grabCarryOffset0 * (1.0f - temp_f31)) + (grabCarryOffset1 * temp_f31); mDoMtx_stack_c::multVec(&sp140, &sp140); } else { - f32 temp_f31 = (sp1C->getFrame() - field_0x3478) / (sp1C->getEnd() - field_0x3478); + temp_f31 = (framectrl->getFrame() - field_0x3478) / (framectrl->getEnd() - field_0x3478); sp140 = (grabCarryOffset1 * (1.0f - temp_f31)) + (grabCarryOffset2 * temp_f31); mDoMtx_stack_c::multVec(&sp140, &sp140); } @@ -272,12 +287,12 @@ void daAlink_c::setGrabItemPos() { mDoMtx_stack_c::multVec(&sp140, &sp140); } - temp_r3->current.pos += sp140; - temp_r3->shape_angle.x = -spA; + grabActor->current.pos += sp140; + grabActor->shape_angle.x = -spA; - temp_r3->current.angle.x = temp_r3->shape_angle.x; - temp_r3->current.angle.y = temp_r3->shape_angle.y; - temp_r3->current.angle.z = temp_r3->shape_angle.z; + grabActor->current.angle.x = grabActor->shape_angle.x; + grabActor->current.angle.y = grabActor->shape_angle.y; + grabActor->current.angle.z = grabActor->shape_angle.z; } else { sp140 = (mLeftHandPos + mRightHandPos) * 0.5f; mDoMtx_stack_c::transS(sp140); @@ -290,20 +305,20 @@ void daAlink_c::setGrabItemPos() { sp140.y += -15.0f; } - mDoMtx_stack_c::multVec(&sp140, &temp_r3->current.pos); + mDoMtx_stack_c::multVec(&sp140, &grabActor->current.pos); if (checkGrabAnimeSide()) { static Vec const localSidePos = {2.3f, -15.5f, 15.6f}; - mDoMtx_multVec(mpLinkModel->getAnmMtx(0xA), &localSidePos, &sp140); - temp_r3->current.pos = (temp_r3->current.pos * (1.0f - field_0x33e8)) + (sp140 * field_0x33e8); + mDoMtx_multVec(mpLinkModel->getAnmMtx(10), &localSidePos, &sp140); + grabActor->current.pos = (grabActor->current.pos * (1.0f - field_0x33e8)) + (sp140 * field_0x33e8); } } if (checkUnderMove0BckNoArc(ANM_GRAB_UP)) { - f32 temp_f31_3 = 1.0f - ((sp1C->getFrame() - sp1C->getStart()) / (sp1C->getEnd() - sp1C->getStart())); + temp_f31 = 1.0f - ((framectrl->getFrame() - framectrl->getStart()) / (framectrl->getEnd() - framectrl->getStart())); sp140.x = 0.0f; - sp140.z = field_0x33e4 * temp_f31_3; + sp140.z = field_0x33e4 * temp_f31; f32 var_f30; if (sp14) { @@ -312,22 +327,22 @@ void daAlink_c::setGrabItemPos() { var_f30 = -3.0f; } - if (mProcID == 0x70) { - sp140.y = temp_f31_3 * (-13.789083f - var_f30); + if (mProcID == PROC_GRAB_PUT) { + sp140.y = temp_f31 * (-13.789083f - var_f30); } else { - sp140.y = temp_f31_3 * (-13.825373f - var_f30); + sp140.y = temp_f31 * (-13.825373f - var_f30); } mDoMtx_stack_c::multVecSR(&sp140, &sp140); - temp_r3->current.pos += sp140; + grabActor->current.pos += sp140; } if (mProcID == PROC_GRAB_PUT) { if (checkMagneBootsOn()) { - cXyz sp110 = temp_r3->current.pos - current.pos; + cXyz sp110 = grabActor->current.pos - current.pos; mDoMtx_multVecSR(mMagneBootInvMtx, &sp110, &sp110); - sp110.y = field_0x598; + sp110.y = mHeight; mDoMtx_multVecSR(mMagneBootMtx, &sp110, &sp110); sp110 += current.pos; @@ -335,85 +350,85 @@ void daAlink_c::setGrabItemPos() { cXyz sp104; mDoMtx_multVecSR(mMagneBootMtx, &cXyz::BaseY, &sp104); - sp104 = sp110 - (sp104 * field_0x598); + sp104 = sp110 - (sp104 * mHeight); if (grabLineCheck(&sp110, &sp104)) { - if (temp_r3->current.pos.abs(sp110) > mObjLinChk.GetCrossP()->abs(sp110)) { - temp_r3->speedF = 0.0f; - temp_r3->current.pos = mObjLinChk.GetCross(); + if (grabActor->current.pos.abs(sp110) > mObjLinChk.GetCrossP()->abs(sp110)) { + grabActor->speedF = 0.0f; + grabActor->current.pos = mObjLinChk.GetCross(); freeGrabItem(); return; } } } else { - cXyz spF8(temp_r3->current.pos.x, current.pos.y + field_0x598, temp_r3->current.pos.z); + cXyz spF8(grabActor->current.pos.x, current.pos.y + mHeight, grabActor->current.pos.z); mObjGndChk.SetPos(&spF8); - f32 temp_f1 = dComIfG_Bgsp().GroundCross(&mObjGndChk); - if (temp_f1 > temp_r3->current.pos.y) { - temp_r3->speedF = 0.0f; - temp_r3->current.pos.y = temp_f1; + f32 ground_y = dComIfG_Bgsp().GroundCross(&mObjGndChk); + if (ground_y > grabActor->current.pos.y) { + grabActor->speedF = 0.0f; + grabActor->current.pos.y = ground_y; freeGrabItem(); return; } } } - if (mProcID == PROC_GRAB_UP && mUnderFrameCtrl[0].getFrame() < 6.0f && temp_r3->current.pos.y < sp134.y) { - temp_r3->current.pos = sp134; + if (mProcID == PROC_GRAB_UP && mUnderFrameCtrl[0].getFrame() < 6.0f && grabActor->current.pos.y < sp134.y) { + grabActor->current.pos = sp134; } } return; } if (mEquipItem == 0x102) { - fopAc_ac_c* sp10 = mItemAcKeep.getActor(); - if (sp10 != NULL) { - mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(field_0x30c0)); + fopAc_ac_c* itemActor = mItemAcKeep.getActor(); + if (itemActor != NULL) { + mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(mLeftItemJntNo)); mDoMtx_stack_c::transM(7.0f, -2.0f, 1.0f); mDoMtx_stack_c::XYZrotM(cM_deg2s(71.0f), cM_deg2s(-6.6f), cM_deg2s(3.2f)); - mDoMtx_stack_c::multVecZero(&sp10->current.pos); - mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &sp10->shape_angle); + mDoMtx_stack_c::multVecZero(&itemActor->current.pos); + mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &itemActor->shape_angle); } } } void daAlink_c::freeGrabItem() { - fopAc_ac_c* temp_r3 = mGrabItemAcKeep.getActor(); + fopAc_ac_c* grabActor = mGrabItemAcKeep.getActor(); - if (temp_r3 != NULL) { + if (grabActor != NULL) { if (dComIfGp_event_runCheck() || mDemo.getDemoType() == daPy_demo_c::DEMO_TYPE_SPECIAL_e) { - fopAcM_OnStatus(temp_r3, 0x800); + fopAcM_OnStatus(grabActor, fopAcM_STATUS_UNK_0x800); } - fopAcM_cancelCarryNow(temp_r3); + fopAcM_cancelCarryNow(grabActor); - temp_r3->shape_angle.z = 0; - temp_r3->shape_angle.x = 0; + grabActor->shape_angle.z = 0; + grabActor->shape_angle.x = 0; if (checkGrabCarryActor()) { - temp_r3->current.angle.z = 0; - temp_r3->current.angle.x = 0; + grabActor->current.angle.z = 0; + grabActor->current.angle.x = 0; } if (checkModeFlg(0x400)) { - fopAc_ac_c* temp_r3_2 = mRideAcKeep.getActor(); - if (temp_r3_2 != NULL) { - if (temp_r3_2->speedF > 0.0f) { - temp_r3->speedF += temp_r3_2->speedF; + fopAc_ac_c* rideActor = mRideAcKeep.getActor(); + if (rideActor != NULL) { + if (rideActor->speedF > 0.0f) { + grabActor->speedF += rideActor->speedF; } - temp_r3->current.angle.y = temp_r3_2->shape_angle.y; + grabActor->current.angle.y = rideActor->shape_angle.y; } } else { cXyz sp14(current.pos.x, field_0x34e0.y, current.pos.z); - if (grabLineCheck(&sp14, &temp_r3->current.pos)) { - temp_r3->current.pos = mObjLinChk.GetCross(); + if (grabLineCheck(&sp14, &grabActor->current.pos)) { + grabActor->current.pos = mObjLinChk.GetCross(); - cM3dGPla sp20; - dComIfG_Bgsp().GetTriPla(mObjLinChk, &sp20); - if (cBgW_CheckBWall(sp20.mNormal.y)) { - temp_r3->current.pos += sp20.mNormal * 10.0f; + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mObjLinChk, &tripla); + if (cBgW_CheckBWall(tripla.mNormal.y)) { + grabActor->current.pos += tripla.mNormal * 10.0f; } } } @@ -449,7 +464,7 @@ void daAlink_c::setGrabUpperSpeedRate() { var_f31 = fabsf(mNormalSpeed / mpHIO->mMove.m.mMaxSpeed); } - if (checkHeavyStateOn(1, 1)) { + if (checkHeavyStateOn(TRUE, TRUE)) { var_f31 *= 1.0f / (mHeavySpeedMultiplier * mHeavySpeedMultiplier); } } @@ -460,9 +475,9 @@ void daAlink_c::setGrabUpperSpeedRate() { cLib_chaseF(&field_0x33e8, var_f31, 0.15f); - daPy_frameCtrl_c* temp_r30 = &mUpperFrameCtrl[2]; - temp_r30->setFrame(field_0x33e8 * temp_r30->getEnd()); - getNowAnmPackUpper(UPPER_2)->setFrame(temp_r30->getFrame()); + daPy_frameCtrl_c* framectrl = &mUpperFrameCtrl[2]; + framectrl->setFrame(field_0x33e8 * framectrl->getEnd()); + getNowAnmPackUpper(UPPER_2)->setFrame(framectrl->getFrame()); } void daAlink_c::setCarryArmAngle(f32 param_0, f32 param_1) { @@ -493,27 +508,27 @@ BOOL daAlink_c::checkGrabNotThrow() { } BOOL daAlink_c::checkNextActionGrab() { - fopAc_ac_c* temp_r3 = mGrabItemAcKeep.getActor(); - if (temp_r3 == NULL) { + fopAc_ac_c* grabActor = mGrabItemAcKeep.getActor(); + if (grabActor == NULL) { freeGrabItem(); return 0; } setCarryArmAngle(0.0f, 1.0f); - if (mTargetedActor == NULL && mAttList != NULL && mAttList->mType == fopAc_attn_DOOR_e && fopAcM_CheckStatus(temp_r3, 0x2000000)) { - setDoStatus(6); + if (mTargetedActor == NULL && mAttList != NULL && mAttList->mType == fopAc_attn_DOOR_e && fopAcM_CheckStatus(grabActor, fopAcM_STATUS_UNK_0x2000000)) { + setDoStatus(BUTTON_STATUS_OPEN); } else if ((field_0x27f4 == NULL) || !checkGrabTalkActor(field_0x27f4) || !setTalkStatus()) { if (checkModeFlg(0x400)) { - setDoStatus(0x13); - } else if ((!checkAttentionState() && field_0x33a8 <= getGrabThrowRate()) || checkGrabNotThrow()) { - setDoStatus(0x14); + setDoStatus(BUTTON_STATUS_THROW); + } else if ((!checkAttentionState() && mStickValue <= getGrabThrowRate()) || checkGrabNotThrow()) { + setDoStatus(BUTTON_STATUS_PLACE); } else { - setDoStatus(0x13); + setDoStatus(BUTTON_STATUS_THROW); } } - if (doTrigger() && dComIfGp_getDoStatus() == 6) { + if (doTrigger() && dComIfGp_getDoStatus() == BUTTON_STATUS_OPEN) { fopAcM_orderDoorEvent(this, field_0x27f4, 0, 0); return 1; } @@ -522,12 +537,20 @@ BOOL daAlink_c::checkNextActionGrab() { return 1; } - if (doTrigger() || (fopAcM_GetName(temp_r3) == PROC_NBOMB && ((daNbomb_c*)temp_r3)->checkPlayerMake() && (checkSetItemTrigger(0x50) || (((daNbomb_c*)temp_r3)->checkWaterBomb() && checkSetItemTrigger(0x71)) || (!((daNbomb_c*)temp_r3)->checkWaterBomb() && checkSetItemTrigger(0x70))))) { - if (dComIfGp_getDoStatus() == 0x14) { + daNbomb_c* var_r28 = (daNbomb_c*)grabActor; + if (doTrigger() + || (fopAcM_GetName(grabActor) == PROC_NBOMB + && var_r28->checkPlayerMake() + && (checkSetItemTrigger(0x50) || (var_r28->checkWaterBomb() && checkSetItemTrigger(0x71)) || (!var_r28->checkWaterBomb() && checkSetItemTrigger(0x70))) + ) + ) + { + int _; // probably a debug fakematch + if (dComIfGp_getDoStatus() == BUTTON_STATUS_PLACE) { return procGrabPutInit(); } - if (dComIfGp_getDoStatus() == 0x13) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_THROW) { return procGrabThrowInit(0); } } @@ -544,58 +567,58 @@ void daAlink_c::initGrabNextMode() { } void daAlink_c::setGrabItemThrow() { - fopAc_ac_c* temp_r3 = mGrabItemAcKeep.getActor(); - if (temp_r3 != NULL) { + fopAc_ac_c* grabActor = mGrabItemAcKeep.getActor(); + if (grabActor != NULL) { cXyz sp14; - temp_r3->current.angle.y = shape_angle.y; + grabActor->current.angle.y = shape_angle.y; if (checkWolf()) { - temp_r3->speedF = mpHIO->mItem.mBomb.m.mWolfThrowSpeedH; - temp_r3->speed.y = mpHIO->mItem.mBomb.m.mWolfThrowSpeedV; + grabActor->speedF = mpHIO->mItem.mBomb.m.mWolfThrowSpeedH; + grabActor->speed.y = mpHIO->mItem.mBomb.m.mWolfThrowSpeedV; } else { - f32 var_f31; - f32 var_f30; - if (checkNoResetFlg0(FLG0_UNDERWATER)) { - var_f31 = mpHIO->mItem.mBomb.m.mWaterThrowSpeedH; - var_f30 = mpHIO->mItem.mBomb.m.mWaterThrowSpeedV; + f32 speed_f; + f32 speed_y; + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { + speed_f = mpHIO->mItem.mBomb.m.mWaterThrowSpeedH; + speed_y = mpHIO->mItem.mBomb.m.mWaterThrowSpeedV; } else { - var_f31 = mpHIO->mItem.mBomb.m.mThrowSpeedH; - var_f30 = mpHIO->mItem.mBomb.m.mThrowSpeedV; + speed_f = mpHIO->mItem.mBomb.m.mThrowSpeedH; + speed_y = mpHIO->mItem.mBomb.m.mThrowSpeedV; } if (checkMagneBootsOn()) { - sp14.set(0.0f, var_f30, var_f31); + sp14.set(0.0f, speed_y, speed_f); mDoMtx_stack_c::copy(mMagneBootMtx); mDoMtx_stack_c::YrotM(shape_angle.y); mDoMtx_stack_c::multVecSR(&sp14, &sp14); - temp_r3->speedF = sp14.absXZ(); - temp_r3->speed.y = sp14.y; - temp_r3->current.angle.y = sp14.atan2sX_Z(); + grabActor->speedF = sp14.absXZ(); + grabActor->speed.y = sp14.y; + grabActor->current.angle.y = sp14.atan2sX_Z(); sp14.set(0.0f, 15.0f, 90.0f); mDoMtx_stack_c::multVecSR(&sp14, &sp14); - temp_r3->current.pos += sp14; + grabActor->current.pos += sp14; } else { - temp_r3->speedF = var_f31; - temp_r3->speed.y = var_f30; - temp_r3->current.angle.x = getBodyAngleXAtnActor(0); + grabActor->speedF = speed_f; + grabActor->speed.y = speed_y; + grabActor->current.angle.x = getBodyAngleXAtnActor(0); - temp_r3->current.pos.x += 90.0f * cM_ssin(shape_angle.y); - temp_r3->current.pos.y += 15.0f; - temp_r3->current.pos.z += 90.0f * cM_scos(shape_angle.y); + grabActor->current.pos.x += 90.0f * cM_ssin(shape_angle.y); + grabActor->current.pos.y += 15.0f; + grabActor->current.pos.z += 90.0f * cM_scos(shape_angle.y); } if (mTargetedActor != NULL && checkGrabSideThrowAnime()) { - sp14 = mTargetedActor->eyePos - temp_r3->current.pos; + sp14 = mTargetedActor->eyePos - grabActor->current.pos; multVecMagneBootInvMtx(&sp14); - temp_r3->current.angle.y = sp14.atan2sX_Z(); - temp_r3->shape_angle.y = temp_r3->current.angle.y; + grabActor->current.angle.y = sp14.atan2sX_Z(); + grabActor->shape_angle.y = grabActor->current.angle.y; } - if (fopAcM_CheckCarryType(temp_r3, fopAcM_CARRY(fopAcM_CARRY_UNK_40 | fopAcM_CARRY_HEAVY))) { + if (fopAcM_CheckCarryType(grabActor, fopAcM_CARRY(fopAcM_CARRY_UNK_40 | fopAcM_CARRY_HEAVY))) { voiceStart(Z2SE_AL_V_THROW_L); - } else if (dBomb_c::checkBombActor(temp_r3)) { + } else if (dBomb_c::checkBombActor(grabActor)) { voiceStart(Z2SE_AL_V_ATTACK_S); } else { voiceStart(Z2SE_AL_V_THROW_S); @@ -620,12 +643,12 @@ BOOL daAlink_c::checkUpperGrabItemThrow(f32 param_0) { return 0; } -void daAlink_c::putObjLineCheck(dBgS_LinChk& param_0, cXyz* param_1, fopAc_ac_c* param_2) { +void daAlink_c::putObjLineCheck(dBgS_LinChk& i_linchk, cXyz* i_endpos, fopAc_ac_c* i_objActor) { if (!checkNoCollisionCorret()) { - param_0.Set(&field_0x37c8, param_1, param_2); + i_linchk.Set(&field_0x37c8, i_endpos, i_objActor); - if (dComIfG_Bgsp().LineCross(¶m_0) && dBgS_CheckBWallPoly(param_0)) { - cXyz sp8 = *param_1 - param_0.GetCross(); + if (dComIfG_Bgsp().LineCross(&i_linchk) && dBgS_CheckBWallPoly(i_linchk)) { + cXyz sp8 = *i_endpos - i_linchk.GetCross(); f32 temp_f31 = sp8.abs(); f32 temp_f1 = sp8.absXZ(); @@ -640,8 +663,8 @@ void daAlink_c::putObjLineCheck(dBgS_LinChk& param_0, cXyz* param_1, fopAc_ac_c* current.pos.x -= sp8.x; current.pos.z -= sp8.z; - param_2->current.pos.x -= sp8.x; - param_2->current.pos.z -= sp8.z; + i_objActor->current.pos.x -= sp8.x; + i_objActor->current.pos.z -= sp8.z; } } } @@ -651,9 +674,9 @@ bool daAlink_c::grabLineCheck(cXyz* i_start, cXyz* i_end) { return dComIfG_Bgsp().LineCross(&mObjLinChk); } -void daAlink_c::setGrabItemActor(fopAc_ac_c* param_0) { - fopAcM_setCarryNow(param_0, 1); - mGrabItemAcKeep.setData(param_0); +void daAlink_c::setGrabItemActor(fopAc_ac_c* i_actor) { + fopAcM_setCarryNow(i_actor, TRUE); + mGrabItemAcKeep.setData(i_actor); mObjLinChk.ClrObj(); mObjLinChk.ClrBomb(); @@ -664,14 +687,14 @@ void daAlink_c::setGrabItemActor(fopAc_ac_c* param_0) { mObjGndChk.ClrStatue(); mObjGndChk.ClrLink(); - s16 temp_r3 = fopAcM_GetName(param_0); - if (dBomb_c::checkBombActor(param_0) || temp_r3 == PROC_Obj_Stone) { + s16 name = fopAcM_GetName(i_actor); + if (dBomb_c::checkBombActor(i_actor) || name == PROC_Obj_Stone) { mObjLinChk.SetBomb(); mObjGndChk.SetBomb(); - } else if (temp_r3 == PROC_CSTATUE) { + } else if (name == PROC_CSTATUE) { mObjLinChk.SetStatue(); mObjGndChk.SetStatue(); - } else if (temp_r3 == PROC_Obj_Carry && ((daObjCarry_c*)param_0)->prm_chk_type_ironball()) { + } else if (name == PROC_Obj_Carry && ((daObjCarry_c*)i_actor)->prm_chk_type_ironball()) { mObjLinChk.SetLink(); mObjGndChk.SetLink(); } else { @@ -735,7 +758,8 @@ int daAlink_c::procGrabReadyInit() { } int daAlink_c::procGrabReady() { - if (mGrabItemAcKeep.getActor() == NULL) { + fopAc_ac_c* grabActor = mGrabItemAcKeep.getActor(); + if (grabActor == NULL) { return checkNextAction(0); } @@ -756,7 +780,7 @@ int daAlink_c::procGrabReady() { } int daAlink_c::procGrabUpInit() { - fopAc_ac_c* temp_r30 = mGrabItemAcKeep.getActor(); + fopAc_ac_c* grabActor = mGrabItemAcKeep.getActor(); commonProcInit(PROC_GRAB_UP); if (checkGrabCarryActor()) { @@ -769,46 +793,46 @@ int daAlink_c::procGrabUpInit() { setCarryArmAngle(0.0f, 1.0f); } - cXyz sp8 = temp_r30->current.pos - field_0x3510; + cXyz sp8 = grabActor->current.pos - field_0x3510; field_0x33e4 = (sp8.absXZ() - 46.051205f) - -8.0f; - if (fopAcM_CheckCarryType(temp_r30, fopAcM_CARRY(fopAcM_CARRY_UNK_40 | fopAcM_CARRY_HEAVY))) { + if (fopAcM_CheckCarryType(grabActor, fopAcM_CARRY(fopAcM_CARRY_UNK_40 | fopAcM_CARRY_HEAVY))) { voiceStart(Z2SE_AL_V_LIFTUP_L); } else { voiceStart(Z2SE_AL_V_LIFTUP_S); } - fopAcM_setStageLayer(temp_r30); - onResetFlg0(RFLG0_UNK_8000); + fopAcM_setStageLayer(grabActor); + onResetFlg0(RFLG0_GRAB_UP_START); field_0x3478 = 18.0f; return 1; } int daAlink_c::procGrabUp() { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - fopAc_ac_c* temp_r3 = mGrabItemAcKeep.getActor(); - if (temp_r3 == NULL) { + fopAc_ac_c* grabActor = mGrabItemAcKeep.getActor(); + if (grabActor == NULL) { return checkNextAction(0); } - if (checkAnmEnd(temp_r29) || (checkInputOnR() && (temp_r29->getFrame() > mpHIO->mGrab.m.mLiftBackAnm.mCancelFrame))) { + if (checkAnmEnd(framectrl) || (checkInputOnR() && (framectrl->getFrame() > mpHIO->mGrab.m.mLiftBackAnm.mCancelFrame))) { onResetFlg0(RFLG0_GRAB_UP_END); - if (fopAcM_CheckCarryType(temp_r3, fopAcM_CARRY(fopAcM_CARRY_UNK_40 | fopAcM_CARRY_HEAVY | fopAcM_CARRY_TYPE_1))) { + if (fopAcM_CheckCarryType(grabActor, fopAcM_CARRY(fopAcM_CARRY_UNK_40 | fopAcM_CARRY_HEAVY | fopAcM_CARRY_TYPE_1))) { procGrabReboundInit(0); } else { initGrabNextMode(); } } else if (mProcVar3.field_0x300e != 0) { f32 var_f31; - if (temp_r29->getFrame() < field_0x3478) { + if (framectrl->getFrame() < field_0x3478) { var_f31 = 0.0f; } else { - var_f31 = (temp_r29->getFrame() - field_0x3478) / (temp_r29->getEnd() - field_0x3478); + var_f31 = (framectrl->getFrame() - field_0x3478) / (framectrl->getEnd() - field_0x3478); } - setCarryArmAngle(1.0f - ((temp_r29->getFrame() - 9.0f) / (temp_r29->getEnd() - 9.0f)), var_f31); + setCarryArmAngle(1.0f - ((framectrl->getFrame() - 9.0f) / (framectrl->getEnd() - 9.0f)), var_f31); } return 1; @@ -831,17 +855,19 @@ int daAlink_c::procGrabMiss() { int daAlink_c::procGrabThrowInit(int param_0) { if (checkModeFlg(0x400)) { if (checkGrabHeavyActor()) { - setUpperAnimeParam(0x17B, UPPER_2, &mpHIO->mGrab.m.mIronBallThrowAnm); + setUpperAnimeParam(dRes_ID_ALANM_BCK_HEAVYTHROW_e, UPPER_2, &mpHIO->mGrab.m.mIronBallThrowAnm); field_0x343c = 14.0f; } else if (checkGrabAnimeSide()) { - setUpperAnimeParam(0x51, UPPER_2, &mpHIO->mGrab.m.mCarryPlaceReverseAnm); + setUpperAnimeParam(dRes_ID_ALANM_BCK_BOMBTHROW_e, UPPER_2, &mpHIO->mGrab.m.mCarryPlaceReverseAnm); field_0x343c = 4.0f; } else { - setUpperAnimeParam(0x170, UPPER_2, &mpHIO->mGrab.m.mLiftAnm); + setUpperAnimeParam(dRes_ID_ALANM_BCK_GRABTHROW_e, UPPER_2, &mpHIO->mGrab.m.mLiftAnm); field_0x343c = 5.0f; } + #if PLATFORM_GCN onNoResetFlg1(FLG1_UNK_10000000); + #endif return 1; } @@ -855,15 +881,15 @@ int daAlink_c::procGrabThrowInit(int param_0) { field_0x347c = mpHIO->mGrab.m.mIronBallThrowAnm.mCancelFrame; mProcVar2.field_0x300c = 2; } else if (checkGrabSideActor()) { - f32 var_f31; + f32 anm_speed; if (mTargetedActor != NULL) { - var_f31 = mpHIO->mAtnMove.m.mWaitAnmSpeed; + anm_speed = mpHIO->mAtnMove.m.mWaitAnmSpeed; } else { - var_f31 = mpHIO->mNoActAtnMove.m.mWaitAnmSpeed; + anm_speed = mpHIO->mNoActAtnMove.m.mWaitAnmSpeed; } - setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, var_f31, mpHIO->mBasic.m.mBasicInterpolation); - setUpperAnimeParam(0x51, UPPER_0, &mpHIO->mGrab.m.mCarryPlaceReverseAnm); + setSingleAnimeBaseSpeed(ANM_ATN_WAIT_RIGHT, anm_speed, mpHIO->mBasic.m.mBasicInterpolation); + setUpperAnimeParam(dRes_ID_ALANM_BCK_BOMBTHROW_e, UPPER_0, &mpHIO->mGrab.m.mCarryPlaceReverseAnm); field_0x343c = 4.0f; field_0x347c = mpHIO->mGrab.m.mCarryPlaceReverseAnm.mCancelFrame; mProcVar2.field_0x300c = 1; @@ -880,31 +906,31 @@ int daAlink_c::procGrabThrowInit(int param_0) { } int daAlink_c::procGrabThrow() { - daPy_frameCtrl_c* var_r30; + daPy_frameCtrl_c* framectrl; if (mProcVar2.field_0x300c == 1) { - var_r30 = &mUpperFrameCtrl[0]; + framectrl = &mUpperFrameCtrl[0]; } else { if (mProcVar2.field_0x300c == 2) { field_0x2f99 = 4; onEndResetFlg0(ERFLG0_UNK_8000000); } - var_r30 = &mUnderFrameCtrl[0]; + framectrl = &mUnderFrameCtrl[0]; } cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mMove.m.mDeceleration); - if (var_r30->checkPass(field_0x343c)) { + if (framectrl->checkPass(field_0x343c)) { setGrabItemThrow(); } - if (checkAnmEnd(var_r30)) { + if (checkAnmEnd(framectrl)) { if (field_0x3198 != 0) { field_0x3198 = 0; swordEquip(0); } checkNextAction(0); - } else if (var_r30->getFrame() > field_0x347c) { + } else if (framectrl->getFrame() > field_0x347c) { onModeFlg(4); if (field_0x3198 != 0) { @@ -962,57 +988,57 @@ int daAlink_c::procGrabPutInit() { } int daAlink_c::procGrabPut() { - fopAc_ac_c* temp_r29 = mGrabItemAcKeep.getActor(); + fopAc_ac_c* grabActor = mGrabItemAcKeep.getActor(); cLib_addCalcAngleS(&shape_angle.y, mProcVar4.field_0x3010, 2, 0x2000, 0x800); current.angle.y = shape_angle.y; - if (temp_r29 != NULL) { - cXyz sp8(temp_r29->current.pos.x + (field_0x33e4 * cM_ssin(shape_angle.y)), temp_r29->current.pos.y, temp_r29->current.pos.z + (field_0x33e4 * cM_scos(shape_angle.y))); - putObjLineCheck(mObjLinChk, &sp8, temp_r29); - field_0x37c8 = temp_r29->current.pos; + if (grabActor != NULL) { + cXyz sp8(grabActor->current.pos.x + (field_0x33e4 * cM_ssin(shape_angle.y)), grabActor->current.pos.y, grabActor->current.pos.z + (field_0x33e4 * cM_scos(shape_angle.y))); + putObjLineCheck(mObjLinChk, &sp8, grabActor); + field_0x37c8 = grabActor->current.pos; } - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - if (checkAnmEnd(temp_r28)) { - if (temp_r29 != NULL) { - temp_r29->speedF = 0.0f; + if (checkAnmEnd(framectrl)) { + if (grabActor != NULL) { + grabActor->speedF = 0.0f; } freeGrabItem(); procGrabStandInit(); } else if (mProcVar3.field_0x300e) { f32 var_f31; - if (temp_r28->getFrame() < field_0x3478) { + if (framectrl->getFrame() < field_0x3478) { var_f31 = 0.0f; } else { - var_f31 = field_0x3480 * (temp_r28->getFrame() - field_0x3478); + var_f31 = field_0x3480 * (framectrl->getFrame() - field_0x3478); } - setCarryArmAngle(1.0f - (field_0x347c * (temp_r28->getFrame() - 9.0f)), var_f31); + setCarryArmAngle(1.0f - (field_0x347c * (framectrl->getFrame() - 9.0f)), var_f31); } else { - setCarryArmAngle(0.0f, field_0x347c * (temp_r28->getFrame() - mpHIO->mGrab.m.mThrowAnm.mStartFrame)); + setCarryArmAngle(0.0f, field_0x347c * (framectrl->getFrame() - mpHIO->mGrab.m.mThrowAnm.mStartFrame)); } return 1; } int daAlink_c::procGrabWaitInit() { - if (checkEndResetFlg2(ERFLG2_UNK_8)) { + if (checkEndResetFlg2(ERFLG2_FORCE_GRAB_REBOUND)) { return procGrabReboundInit(1); } BOOL var_r30; - if (!checkModeFlg(0x100000) && checkNoResetFlg0(FLG0_UNDERWATER)) { - var_r30 = 1; + if (!checkModeFlg(0x100000) && checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { + var_r30 = TRUE; } else { - var_r30 = 0; + var_r30 = FALSE; } if (!commonProcInitNotSameProc(PROC_GRAB_WAIT)) { return 0; } - f32 var_f31 = mpHIO->mBasic.m.mBasicInterpolation; + f32 morf = mpHIO->mBasic.m.mBasicInterpolation; if (!checkGrabAnime()) { setGrabUpperAnime(-1.0f); } else { @@ -1021,16 +1047,16 @@ int daAlink_c::procGrabWaitInit() { if (var_r30) { if (checkZoraWearAbility() ) { - var_f31 *= 1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed; + morf *= 1.0f / mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed; } else { - var_f31 *= 1.0f / mpHIO->mItem.mIronBoots.m.mWaterWalkAnmRate; + morf *= 1.0f / mpHIO->mItem.mIronBoots.m.mWaterWalkAnmRate; } } if (checkAttentionLock() && (checkGrabAnimeUp() || checkGrabAnimeSide())) { setBlendAtnMoveAnime(mpHIO->mBasic.m.mBasicInterpolation); } else { - setBlendMoveAnime(var_f31); + setBlendMoveAnime(morf); } current.angle.y = shape_angle.y; @@ -1039,7 +1065,8 @@ int daAlink_c::procGrabWaitInit() { } int daAlink_c::procGrabWait() { - if (mGrabItemAcKeep.getActor() == NULL) { + fopAc_ac_c* grabActor = mGrabItemAcKeep.getActor(); + if (grabActor == NULL) { if (checkGrabAnime()) { resetUpperAnime(UPPER_2, 3.0f); } @@ -1080,19 +1107,20 @@ int daAlink_c::procGrabReboundInit(int param_0) { } int daAlink_c::procGrabRebound() { - daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - if (mGrabItemAcKeep.getActor() == NULL) { + fopAc_ac_c* grabActor = mGrabItemAcKeep.getActor(); + if (grabActor == NULL) { resetUpperAnime(UPPER_2, -1.0f); return checkNextAction(0); } if (field_0x3198 != 0) { if (field_0x2060->getOldFrameRate() < 0.1f) { - setWaterInAnmRate(temp_r30, mpHIO->mGrab.m.mCarryAnm.mSpeed); + setWaterInAnmRate(framectrl, mpHIO->mGrab.m.mCarryAnm.mSpeed); field_0x3198 = 0; } - } else if (checkAnmEnd(temp_r30) || (checkInputOnR() && (temp_r30->getFrame() > mpHIO->mGrab.m.mCarryAnm.mCancelFrame))) { + } else if (checkAnmEnd(framectrl) || (checkInputOnR() && (framectrl->getFrame() > mpHIO->mGrab.m.mCarryAnm.mCancelFrame))) { initGrabNextMode(); } @@ -1118,15 +1146,15 @@ int daAlink_c::procGrabStandInit() { } int daAlink_c::procGrabStand() { - daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - if (checkAnmEnd(temp_r30)) { - if (mDemo.getDemoMode() == 0xD) { + if (checkAnmEnd(framectrl)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_GRAB_PUT_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextAction(0); } - } else if (temp_r30->getFrame() < field_0x3478) { + } else if (framectrl->getFrame() < field_0x3478) { onModeFlg(4); if (!checkNextAction(1) && mProcVar3.field_0x300e != 0) { @@ -1137,14 +1165,15 @@ int daAlink_c::procGrabStand() { return 1; } -BOOL daAlink_c::checkInsectActorName(fopAc_ac_c* insectActor) { - s16 insectName = fopAcM_GetName(insectActor); +BOOL daAlink_c::checkInsectActorName(fopAc_ac_c* i_insectActor) { + s16 insectName = fopAcM_GetName(i_insectActor); for (int i = 0; i < 12; i++) { if (insectName == l_insectNameList[i]) { return true; } } + return false; } @@ -1175,16 +1204,14 @@ int daAlink_c::procInsectCatchInit() { int daAlink_c::procInsectCatch() { daPy_frameCtrl_c* frame_ctrl = &mUnderFrameCtrl[0]; - if (frame_ctrl->checkAnmEnd()) { + if (checkAnmEnd(frame_ctrl)) { checkNextAction(0); - } else { - if (frame_ctrl->checkPass(field_0x3478)) { - fopAc_ac_c* actor = field_0x280c.getActor(); - if (actor != NULL) { - fopAcM_setCarryNow(actor, 0); - } + } else if (frame_ctrl->checkPass(field_0x3478)) { + if (field_0x280c.getActor() != NULL) { + fopAcM_setCarryNow(field_0x280c.getActor(), 0); } } + return true; } @@ -1213,32 +1240,32 @@ int daAlink_c::procPickUpInit() { mProcVar2.field_0x300c = shape_angle.y; field_0x37c8 = field_0x27f4->current.pos - field_0x3510; - mGrabItemAcKeep.getActor(); + fopAc_ac_c* grabActor = mGrabItemAcKeep.getActor(); mNormalSpeed = 0.0f; if (checkEquipAnime()) { resetUpperAnime(UPPER_2, -1.0f); } - int var_r29; + BOOL var_r29; if (temp_r3 == PROC_Obj_Kantera) { setSingleAnimeParam(ANM_BOTTLE_SWING, &mpHIO->mItem.mBottle.m.mSwingSideAnm); mProcVar3.field_0x300e = 1; field_0x3478 = 7.0f; mProcVar4.field_0x3010 = 0; - var_r29 = 0; + var_r29 = FALSE; } else if (temp_r3 == PROC_NPC_KS) { setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm); mProcVar3.field_0x300e = 1; field_0x3478 = 7.0f; mProcVar4.field_0x3010 = 1; - fopAcM_onSwitch(field_0x27f4, 0x3F); - var_r29 = 0; + fopAcM_onSwitch(field_0x27f4, 63); + var_r29 = FALSE; } else { setSingleAnimeParam(ANM_PICK_UP, &mpHIO->mItem.mPickUp.m.mGrabAnm); mProcVar3.field_0x300e = 0; mProcVar4.field_0x3010 = 0; - var_r29 = 1; + var_r29 = TRUE; } fopAcM_setCarryNow(field_0x27f4, var_r29); @@ -1250,34 +1277,34 @@ int daAlink_c::procPickUp() { return checkNextAction(0); } - daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; if (mProcVar3.field_0x300e != 0) { - if (checkAnmEnd(temp_r30)) { + if (checkAnmEnd(framectrl)) { if (mProcVar4.field_0x3010 != 0) { procBottleGetInit(0); } else { checkNextAction(0); } - } else if (temp_r30->checkPass(field_0x3478)) { - onResetFlg0(RFLG0_UNK_8000); + } else if (framectrl->checkPass(field_0x3478)) { + onResetFlg0(RFLG0_GRAB_UP_START); if (mProcVar4.field_0x3010 != 0) { mEquipItem = fpcNm_ITEM_KANTERA; setKandelaarModel(); } } - } else if (checkAnmEnd(temp_r30)) { + } else if (checkAnmEnd(framectrl)) { checkNextAction(0); - } else if (temp_r30->getFrame() > mpHIO->mItem.mPickUp.m.mGrabAnm.mCancelFrame) { + } else if (framectrl->getFrame() > mpHIO->mItem.mPickUp.m.mGrabAnm.mCancelFrame) { onModeFlg(4); checkNextAction(1); - } else if (temp_r30->checkPass(9.0f)) { + } else if (framectrl->checkPass(9.0f)) { mEquipItem = 0x102; mItemAcKeep = mGrabItemAcKeep; mGrabItemAcKeep.clearData(); field_0x2f94 = 3; - onResetFlg0(RFLG0_UNK_8000); + onResetFlg0(RFLG0_GRAB_UP_START); } return 1; @@ -1311,25 +1338,25 @@ int daAlink_c::procPickPutInit(int param_0) { } int daAlink_c::procPickPut() { - fopAc_ac_c* temp_r3 = mItemAcKeep.getActor(); - if (temp_r3 == NULL && mProcVar2.field_0x300c == 0 && field_0x3198 != 0) { + fopAc_ac_c* itemActor = mItemAcKeep.getActor(); + if (itemActor == NULL && mProcVar2.field_0x300c == 0 && field_0x3198 != 0) { return checkNextAction(0); } - if (temp_r3 != NULL) { - cXyz sp8(temp_r3->current.pos.x, temp_r3->current.pos.y, temp_r3->current.pos.z); - putObjLineCheck(*fopAcM_lc_c::getLineCheck(), &sp8, temp_r3); - field_0x37c8 = temp_r3->current.pos; + if (itemActor != NULL) { + cXyz sp8(itemActor->current.pos.x, itemActor->current.pos.y, itemActor->current.pos.z); + putObjLineCheck(*fopAcM_lc_c::getLineCheck(), &sp8, itemActor); + field_0x37c8 = itemActor->current.pos; } - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - if (checkAnmEnd(temp_r28)) { + if (checkAnmEnd(framectrl)) { checkNextAction(0); - } else if (temp_r28->getFrame() < mpHIO->mItem.mPickUp.m.mPlaceAnm.mCancelFrame) { + } else if (framectrl->getFrame() < mpHIO->mItem.mPickUp.m.mPlaceAnm.mCancelFrame) { onModeFlg(4); checkNextAction(1); - } else if (temp_r28->checkPass(9.0f)) { + } else if (framectrl->checkPass(9.0f)) { if (mProcVar2.field_0x300c != 0) { if (checkReadyItem() && dBomb_c::createInsectBombPlayer(¤t.pos)) { dComIfGp_addSelectItemNum(mSelectItemId, -1); @@ -1338,8 +1365,8 @@ int daAlink_c::procPickPut() { mEquipItem = fpcNm_ITEM_NONE; } else { field_0x3198 = 0; - temp_r3->speedF = 0.0f; - deleteEquipItem(0, 0); + itemActor->speedF = 0.0f; + deleteEquipItem(FALSE, FALSE); } } @@ -1347,11 +1374,11 @@ int daAlink_c::procPickPut() { } BOOL daAlink_c::checkSetChainPullAnime(s16 param_0) { - return checkInputOnR() && checkFmChainGrabAnime() && (field_0x3400 != 0.0f || field_0x3404 != 0.0f) && (checkBossRoom() || abs((s16)(field_0x2fe2 - param_0)) >= 0x3800); + return checkInputOnR() && checkFmChainGrabAnime() && (field_0x3400 != 0.0f || field_0x3404 != 0.0f) && (checkBossRoom() || abs((s16)(mMoveAngle - param_0)) >= 0x3800); } s16 daAlink_c::getChainStickAngleY(s16 param_0) const { - s16 angle = field_0x2fe2 - param_0; + s16 angle = mMoveAngle - param_0; if (angle >= 0x3800 && angle < 0x7F80) { return param_0 + 0x7F80; @@ -1359,16 +1386,16 @@ s16 daAlink_c::getChainStickAngleY(s16 param_0) const { return param_0 - 0x7F80; } - return field_0x2fe2; + return mMoveAngle; } u8 daAlink_c::checkChainEmphasys() { fopAc_ac_c* temp_r3 = field_0x2844.getActor(); if (temp_r3 != NULL && fopAcM_GetName(temp_r3) == PROC_Obj_SwChain && !((daObjSwChain_c*)temp_r3)->checkDispEmphasis()) { - return 0; + return BUTTON_STATUS_FLAG_NONE; } - return 2; + return BUTTON_STATUS_FLAG_EMPHASIS; } BOOL daAlink_c::searchFmChainPos() { @@ -1436,12 +1463,12 @@ int daAlink_c::procFmChainUpInit() { } int daAlink_c::procFmChainUp() { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - setGrabStatus(0x96, 2); + setGrabStatus(BUTTON_STATUS_UNK_150, BUTTON_STATUS_FLAG_EMPHASIS); setShapeAngleToAtnActor(0); - if (checkAnmEnd(temp_r29) || (checkInputOnR() && temp_r29->getFrame() > mpHIO->mItem.mFmChain.m.mGripAnm.mCancelFrame)) { + if (checkAnmEnd(framectrl) || (checkInputOnR() && framectrl->getFrame() > mpHIO->mItem.mFmChain.m.mGripAnm.mCancelFrame)) { u8 temp_r27 = field_0x2fa3; fopAc_ac_c* temp_r28 = field_0x2844.getActor(); @@ -1454,12 +1481,12 @@ int daAlink_c::procFmChainUp() { field_0x2fa3 = temp_r27; field_0x2844.setData(temp_r28); } - } else if (temp_r29->getFrame() >= 9.0f) { - field_0x2f92 = 3; - field_0x2f93 = 9; + } else if (framectrl->getFrame() >= 9.0f) { + mLeftHandIndex = 3; + mRightHandIndex = 9; } else { - field_0x2f92 = 0xFE; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0xFE; + mRightHandIndex = 0xFE; } return 1; @@ -1478,10 +1505,10 @@ int daAlink_c::procFmChainStrongPullInit() { } int daAlink_c::procFmChainStrongPull() { - setGrabStatus(0x96, 2); + setGrabStatus(BUTTON_STATUS_UNK_150, BUTTON_STATUS_FLAG_EMPHASIS); if (checkAnmEnd(&mUnderFrameCtrl[0])) { - if (mDemo.getDemoMode() == 0x43) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_FM_CHAIN_STRONG_PULL_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { mNowAnmPackUpper[2].setRatio(1.0f); @@ -1492,8 +1519,8 @@ int daAlink_c::procFmChainStrongPull() { return 1; } -void daAlink_c::setWallGrabStatus(u8 param_0, u8 param_1) { - setRStatus(param_0, param_1); +void daAlink_c::setWallGrabStatus(u8 i_status, u8 i_flag) { + setRStatus(i_status, i_flag); } int daAlink_c::getWallGrabStatus() { @@ -1508,7 +1535,7 @@ BOOL daAlink_c::wallGrabButton() { return itemButtonCheck(BTN_R); } -int daAlink_c::setPushPullKeepData(dBgW_Base::PushPullLabel i_label, int param_1) { +int daAlink_c::setPushPullKeepData(dBgW_Base::PushPullLabel i_label, BOOL param_1) { if (i_label != dBgW::PPLABEL_NONE) { if (checkPowerGloveGet()) { cLib_onBit(i_label, dBgW::PPLABEL_HEAVY); @@ -1585,23 +1612,23 @@ BOOL daAlink_c::checkPullBehindWall() { } void daAlink_c::offGoatStopGame() { - if (mSpecialMode == SMODE_GOAT_STOP) { - mSpecialMode = 0; + if (checkGoatStopGame()) { + mMode = 0; } } -BOOL daAlink_c::checkGoatCatchActor(fopAc_ac_c* param_0) { - s16 name = fopAcM_GetName(param_0); - return name == PROC_E_GOB || (name == PROC_OBJ_GRA && checkSpecialNpc(param_0)) || +BOOL daAlink_c::checkGoatCatchActor(fopAc_ac_c* i_actor) { + s16 name = fopAcM_GetName(i_actor); + return name == PROC_E_GOB || (name == PROC_OBJ_GRA && checkSpecialNpc(i_actor)) || name == PROC_COW; } f32 daAlink_c::getGoatCatchDistance2() { if (fopAcM_GetName(field_0x27f4) == PROC_B_MGN) { - return 1000000.0f; + return SQUARE(1000.0f); } - return 90000.0f; + return SQUARE(300.0f); } int daAlink_c::endPushPull() { @@ -1609,22 +1636,22 @@ int daAlink_c::endPushPull() { } f32 daAlink_c::getPushPullAnimeSpeed() { - f32 var_f31; + f32 speed; if ((getMoveBGActorName(mPolyInfo1, 0) == PROC_Obj_Movebox && ((daObjMovebox::Act_c*)dComIfG_Bgsp().GetActorPointer(mPolyInfo1))->getType() != 0) || getMoveBGActorName(mPolyInfo1, 0) == PROC_Obj_Bemos) { if (checkWolf()) { - var_f31 = mpHIO->mWolf.mWlPush.m.mHeavyPushAnmSpeed; + speed = mpHIO->mWolf.mWlPush.m.mHeavyPushAnmSpeed; } else { - var_f31 = mpHIO->mPushpull.m.mPushASpeedHeavy; + speed = mpHIO->mPushpull.m.mPushASpeedHeavy; } } else if (checkWolf()) { - var_f31 = mpHIO->mWolf.mWlPush.m.mPushAnmSpeed; + speed = mpHIO->mWolf.mWlPush.m.mPushAnmSpeed; } else { - var_f31 = mpHIO->mPushpull.m.mPushASpeed; + speed = mpHIO->mPushpull.m.mPushASpeed; } - return var_f31; + return speed; } int daAlink_c::procCoPushPullWaitInit(int param_0) { @@ -1664,7 +1691,7 @@ int daAlink_c::procCoPushPullWaitInit(int param_0) { int daAlink_c::procCoPushPullWait() { if (mProcVar4.field_0x3010 == 0) { - setWallGrabStatus(0x15, 2); + setWallGrabStatus(BUTTON_STATUS_GRAB, BUTTON_STATUS_FLAG_EMPHASIS); } setFrontWallType(); @@ -1688,10 +1715,10 @@ int daAlink_c::procCoPushPullWait() { if (mProcVar4.field_0x3010 != 0) { procCoPushMoveInit(0, 1); } else if (checkInputOnR()) { - int temp_r3 = getDirectionFromShapeAngle(); - if (temp_r3 == DIR_FORWARD) { + int direction = getDirectionFromShapeAngle(); + if (direction == DIR_FORWARD) { procCoPushMoveInit(0, getMoveBGActorName(mPolyInfo1, 1) == PROC_Obj_IceBlock); - } else if (!checkWolf() && temp_r3 == DIR_BACKWARD) { + } else if (!checkWolf() && direction == DIR_BACKWARD) { procPullMoveInit(0); } } @@ -1710,50 +1737,50 @@ int daAlink_c::procCoPushMoveInit(int param_0, int param_1) { commonProcInit(PROC_PUSH_MOVE); mProcVar0.field_0x3008 = checkPushPullTurnBlock(); - f32 var_f31 = getPushPullAnimeSpeed(); + f32 anm_speed = getPushPullAnimeSpeed(); if (checkWolf()) { if (mProcVar0.field_0x3008 != 0) { setSingleAnimeWolfBase(WANM_PUSH_START); - var_f31 = 1.0f; + anm_speed = 1.0f; } else { - setSingleAnimeWolf(WANM_PUSH_LIGHT, var_f31, 0.0f, 24, mpHIO->mWolf.mWlPush.m.mPushInterp); + setSingleAnimeWolf(WANM_PUSH_LIGHT, anm_speed, 0.0f, 24, mpHIO->mWolf.mWlPush.m.mPushInterp); } field_0x3478 = 17.0f; } else { if (mProcVar0.field_0x3008 != 0) { setSingleAnimeBase(ANM_PUSH_START); - var_f31 = 1.0f; + anm_speed = 1.0f; } else { - setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, var_f31, mpHIO->mPushpull.m.mPushInterpolation); + setSingleAnimeBaseSpeed(ANM_PUSH_LIGHT, anm_speed, mpHIO->mPushpull.m.mPushInterpolation); } field_0x3478 = 15.0f; } - mUnderFrameCtrl[0].setRate(var_f31); + mUnderFrameCtrl[0].setRate(anm_speed); field_0x3198 = 1; mProcVar4.field_0x3010 = param_1; mProcVar5.field_0x3012 = mProcVar0.field_0x3008; - fopAc_ac_c* temp_r3 = dComIfG_Bgsp().GetActorPointer(mPolyInfo1); - mProcVar3.field_0x300e = fopAcM_searchActorAngleY(temp_r3, this); - field_0x347c = temp_r3->current.pos.absXZ(current.pos); + fopAc_ac_c* bg_actor = dComIfG_Bgsp().GetActorPointer(mPolyInfo1); + mProcVar3.field_0x300e = fopAcM_searchActorAngleY(bg_actor, this); + field_0x347c = bg_actor->current.pos.absXZ(current.pos); dComIfGp_setPlayerStatus0(0, 0x04000000); return 1; } int daAlink_c::procCoPushMove() { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; int var_r28 = 0x160; if (mProcVar4.field_0x3010 != 0) { - if (temp_r29->checkPass(0.0f)) { + if (framectrl->checkPass(0.0f)) { return endPushPull(); } - if (temp_r29->checkPass(field_0x3478)) { + if (framectrl->checkPass(field_0x3478)) { if (!checkWolf()) { voiceStart(Z2SE_AL_V_PUSH_ROCK); } @@ -1761,17 +1788,17 @@ int daAlink_c::procCoPushMove() { setPushPullKeepData(dBgW::PPLABEL_PUSH, 0); } } else { - setWallGrabStatus(0x15, 2); + setWallGrabStatus(BUTTON_STATUS_GRAB, BUTTON_STATUS_FLAG_EMPHASIS); - if (temp_r29->checkPass(0.0f) || field_0x3198 != 0 || mProcVar5.field_0x3012 != 0) { + if (framectrl->checkPass(0.0f) || field_0x3198 != 0 || mProcVar5.field_0x3012 != 0) { if (!checkNoResetFlg0(FLG0_PUSH_PULL_KEEP)) { if (!wallGrabButton()) { return endPushPull(); } if (checkInputOnR()) { - int temp_r3 = getDirectionFromShapeAngle(); - if (temp_r3 == DIR_FORWARD) { + int direction = getDirectionFromShapeAngle(); + if (direction == DIR_FORWARD) { setPushPullKeepData(dBgW::PPLABEL_PUSH, 0); if (mProcVar0.field_0x3008 != 0) { if (mProcVar5.field_0x3012 == 0) { @@ -1783,18 +1810,18 @@ int daAlink_c::procCoPushMove() { setSingleAnime(ANM_PUSH_START, 1.0f, 12.0f, -1, 3.0f); } - temp_r29->setRate(1.0f); - } else if (checkAnmEnd(temp_r29)) { + framectrl->setRate(1.0f); + } else if (checkAnmEnd(framectrl)) { if (checkWolf()) { setSingleAnimeWolfBase(WANM_PUSH); } else { setSingleAnimeBase(ANM_PUSH); } - temp_r29->setRate(1.0f); + framectrl->setRate(1.0f); } } - } else if (!checkWolf() && temp_r3 == DIR_BACKWARD) { + } else if (!checkWolf() && direction == DIR_BACKWARD) { var_r28 = 0x39; } else { var_r28 = 0x143; @@ -1847,41 +1874,42 @@ int daAlink_c::procPullMoveInit(int param_0) { mProcVar0.field_0x3008 = checkPushPullTurnBlock(); mProcVar5.field_0x3012 = mProcVar0.field_0x3008; - f32 var_f31; + f32 anm_speed; + int var_r29; if (mProcVar0.field_0x3008 != 0) { - var_f31 = 1.0f; + anm_speed = 1.0f; setSingleAnimeBase(ANM_PULL_START); } else { - var_f31 = getPushPullAnimeSpeed(); - setSingleAnimeBaseSpeed(ANM_PULL_LIGHT, var_f31, mpHIO->mPushpull.m.mPullInterpolation); + anm_speed = getPushPullAnimeSpeed(); + var_r29 = setSingleAnimeBaseSpeed(ANM_PULL_LIGHT, anm_speed, mpHIO->mPushpull.m.mPullInterpolation); } - mUnderFrameCtrl[0].setRate(var_f31); + mUnderFrameCtrl[0].setRate(anm_speed); field_0x3198 = 1; - fopAc_ac_c* temp_r3 = dComIfG_Bgsp().GetActorPointer(mPolyInfo1); - mProcVar3.field_0x300e = fopAcM_searchActorAngleY(temp_r3, this); - field_0x347c = temp_r3->current.pos.absXZ(current.pos); + fopAc_ac_c* bg_actor = dComIfG_Bgsp().GetActorPointer(mPolyInfo1); + mProcVar3.field_0x300e = fopAcM_searchActorAngleY(bg_actor, this); + field_0x347c = bg_actor->current.pos.absXZ(current.pos); dComIfGp_setPlayerStatus0(0, 0x4000000); return 1; } int daAlink_c::procPullMove() { - setWallGrabStatus(0x15, 2); + setWallGrabStatus(BUTTON_STATUS_GRAB, BUTTON_STATUS_FLAG_EMPHASIS); - int temp_r28 = getDirectionFromShapeAngle(); + int direction = getDirectionFromShapeAngle(); int var_r30 = 0x160; - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - if (temp_r29->checkPass(0.0f) || field_0x3198 != 0 || mProcVar5.field_0x3012 != 0) { + if (framectrl->checkPass(0.0f) || field_0x3198 != 0 || mProcVar5.field_0x3012 != 0) { if (!checkNoResetFlg0(FLG0_PUSH_PULL_KEEP)) { if (!wallGrabButton()) { return endPushPull(); } if (checkInputOnR()) { - if (temp_r28 == DIR_BACKWARD) { + if (direction == DIR_BACKWARD) { if (checkPullBehindWall()) { setPushPullKeepData(dBgW::PPLABEL_NONE, 1); field_0x3198 = 1; @@ -1892,14 +1920,14 @@ int daAlink_c::procPullMove() { if (mProcVar5.field_0x3012 == 0) { mProcVar5.field_0x3012 = 1; setSingleAnime(ANM_PULL_START, 1.0f, 12.0f, -1, 3.0f); - temp_r29->setRate(1.0f); - } else if (checkAnmEnd(temp_r29)) { + framectrl->setRate(1.0f); + } else if (checkAnmEnd(framectrl)) { setSingleAnimeBase(ANM_PULL); - temp_r29->setRate(1.0f); + framectrl->setRate(1.0f); } } } - } else if (temp_r28 == DIR_FORWARD) { + } else if (direction == DIR_FORWARD) { var_r30 = 0x144; } else { var_r30 = 0x143; @@ -1916,7 +1944,7 @@ int daAlink_c::procPullMove() { if (mProcVar5.field_0x3012 != 0) { mProcVar5.field_0x3012 = 0; - setSingleAnimeBase((daAlink_c::daAlink_ANM) 0x3C); + setSingleAnimeBase(ANM_PULL); } setPushPullKeepData(dBgW::PPLABEL_PULL, 0); @@ -1938,7 +1966,8 @@ int daAlink_c::procPullMove() { return 1; } -static fopAc_ac_c* daAlink_searchGoat(fopAc_ac_c* i_actor, void*) { +static fopAc_ac_c* daAlink_searchGoat(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); if (fopAcM_GetName(i_actor) == PROC_COW) { return i_actor; } @@ -1953,14 +1982,14 @@ void daAlink_c::cancelGoronThrowEvent() { } } -void daAlink_c::setGoatStopGameFail(fopAc_ac_c* param_0) { - s16 temp_r3 = fopAcM_GetName(param_0); - if (temp_r3 == PROC_OBJ_GRA) { - ((daObj_GrA_c*)param_0)->setCrazyDash(); - } else if (temp_r3 == PROC_COW) { - ((daCow_c*)param_0)->setCrazyDash(); +void daAlink_c::setGoatStopGameFail(fopAc_ac_c* i_actor) { + s16 actor_name = fopAcM_GetName(i_actor); + if (actor_name == PROC_OBJ_GRA) { + ((daObj_GrA_c*)i_actor)->setCrazyDash(); + } else if (actor_name == PROC_COW) { + ((daCow_c*)i_actor)->setCrazyDash(); } else { - ((fopEn_enemy_c*)param_0)->setThrowModeDash(); + ((fopEn_enemy_c*)i_actor)->setThrowModeDash(); } if (checkMagneBootsOn()) { @@ -1973,18 +2002,18 @@ void daAlink_c::setGoatStopGameFail(fopAc_ac_c* param_0) { current.angle.y = shape_angle.y + 0x8000; if (checkGoatStopGame()) { - onNoResetFlg0(FLG0_UNK_200000); + onNoResetFlg0(FLG0_GORON_UP_STOP_CANCEL); } else { - if (!checkBootsOrArmorHeavy() && temp_r3 == PROC_OBJ_GRA) { + if (!checkBootsOrArmorHeavy() && actor_name == PROC_OBJ_GRA) { setDamagePointNormal(2); - } else if (temp_r3 != PROC_COW) { + } else if (actor_name != PROC_COW) { setDamagePointNormal(1); } resetSpecialEvent(); } - procCoLargeDamageInit(-1, 1, 0, 0, NULL, 0); + procCoLargeDamageInit(-1, TRUE, 0, 0, NULL, 0); } int daAlink_c::procGoatMoveInit() { @@ -2000,7 +2029,7 @@ int daAlink_c::procGoatMoveInit() { field_0x37c8 = current.pos; field_0x2f98 = 3; current.angle.y = shape_angle.y + -0x4000; - field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed; + mMaxSpeed = mpHIO->mAtnMove.m.mMaxSpeed; setSingleAnimeBase(ANM_ATN_COW); mProcVar2.field_0x300c = 0; @@ -2044,7 +2073,7 @@ int daAlink_c::procGoatMove() { } if (sp14.z < 600.0f) { - setDoStatusEmphasys(0x15); + setDoStatusEmphasys(BUTTON_STATUS_GRAB); } } } else if (sp14.z < -100.0f) { @@ -2061,19 +2090,19 @@ int daAlink_c::procGoatMove() { mDoMtx_stack_c::YrotS(-shape_angle.y); mDoMtx_stack_c::multVecSR(&sp8, &sp8); - if (dComIfGp_getDoStatus() == 0x15 && mProcVar3.field_0x300e != 0) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_GRAB && mProcVar3.field_0x300e != 0) { if (sp14.z < 250.0f) { return procGoatCatchInit(temp_r3, sp8.x); } - } else if (field_0x850[0].ChkCoHit() && field_0x850[0].GetCoHitAc() == temp_r3 && sp14.z > -50.0f) { + } else if (mTgCyls[0].ChkCoHit() && mTgCyls[0].GetCoHitAc() == temp_r3 && sp14.z > -50.0f) { setGoatStopGameFail(temp_r3); return 1; } f32 var_f31; - int temp_r27 = abs(field_0x2fe2); - if (checkInputOnR() && temp_r27 > 0x800 && temp_r27 < 0x7800 && (fabsf(sp8.x) < 250.0f || (sp8.x > 0.0f && field_0x2fe2 < 0) || (sp8.x < 0.0f && field_0x2fe2 > 0))) { - if (abs((s16)(field_0x2fe2 - current.angle.y)) > 0x4000) { + int temp_r27 = abs(mMoveAngle); + if (checkInputOnR() && temp_r27 > 0x800 && temp_r27 < 0x7800 && (fabsf(sp8.x) < 250.0f || (sp8.x > 0.0f && mMoveAngle < 0) || (sp8.x < 0.0f && mMoveAngle > 0))) { + if (abs((s16)(mMoveAngle - current.angle.y)) > 0x4000) { current.angle.y += 0x8000; mNormalSpeed *= -1.0f; @@ -2084,8 +2113,8 @@ int daAlink_c::procGoatMove() { } } - if (field_0x33a8 > (0.3f * (1.0f - fabsf(mNormalSpeed / field_0x594)))) { - var_f31 = mpHIO->mAtnMove.m.mAcceleration * field_0x33a8; + if (mStickValue > (0.3f * (1.0f - fabsf(mNormalSpeed / mMaxSpeed)))) { + var_f31 = mpHIO->mAtnMove.m.mAcceleration * mStickValue; } else { var_f31 = 0.0f; } @@ -2110,58 +2139,58 @@ int daAlink_c::procGoatMove() { setSingleAnimeBase(ANM_COW_MOVE_LEFT_RIGHT); } - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; f32 var_f30; if (field_0x2f98 == 3) { var_f30 = -1.0f; - temp_r28->setLoop(temp_r28->getEnd()); + framectrl->setLoop(framectrl->getEnd()); } else { var_f30 = 1.0f; - temp_r28->setLoop(temp_r28->getStart()); + framectrl->setLoop(framectrl->getStart()); } - temp_r28->setRate(var_f30 * (mNormalSpeed / field_0x594)); + framectrl->setRate(var_f30 * (mNormalSpeed / mMaxSpeed)); initBasAnime(); } return 1; } -int daAlink_c::procGoatCatchInit(fopAc_ac_c* param_0, f32 param_1) { - s16 temp_r28 = cLib_targetAngleY(¤t.pos, ¶m_0->current.pos); +int daAlink_c::procGoatCatchInit(fopAc_ac_c* i_actor, f32 param_1) { + s16 temp_r28 = cLib_targetAngleY(¤t.pos, &i_actor->current.pos); if (!checkGoatStopGame()) { cXyz sp18(current.pos.x, 100.0f + current.pos.y, current.pos.z); f32 var_f31 = 300.0f; - if (param_0->speedF > 0.1f) { + if (i_actor->speedF > 0.1f) { var_f31 += 300.0f; } cXyz spC(sp18.x - (var_f31 * cM_ssin(temp_r28)), sp18.y, sp18.z - (var_f31 * cM_scos(temp_r28))); - if (fopAcM_lc_c::lineCheck(&sp18, &spC, param_0)) { - setDoStatus(0); + if (fopAcM_lc_c::lineCheck(&sp18, &spC, i_actor)) { + setDoStatus(BUTTON_STATUS_NONE); return 0; } - deleteEquipItem(1, 0); + deleteEquipItem(TRUE, FALSE); if (!dComIfGp_event_compulsory(this, NULL, 0xFFEF)) { return 0; } mDemo.setSpecialDemoType(); - param_0->actor_status |= 0x800; + i_actor->actor_status |= 0x800; } commonProcInit(PROC_GOAT_CATCH); - field_0x280c.setData(param_0); + field_0x280c.setData(i_actor); mProcVar4.field_0x3010 = 0; if (!checkGoatStopGame()) { shape_angle.y = temp_r28; - if (param_0->speedF < 0.1f) { + if (i_actor->speedF < 0.1f) { mNormalSpeed = 0.1f; mProcVar4.field_0x3010 = 1; } else { @@ -2185,13 +2214,13 @@ int daAlink_c::procGoatCatchInit(fopAc_ac_c* param_0, f32 param_1) { setSingleAnimeBase(ANM_COW_CATCH_START); - s16 temp_r3 = fopAcM_GetName(param_0); - if (temp_r3 == PROC_OBJ_GRA) { - ((daObj_GrA_c*)param_0)->setCrazyCatch(); - } else if (temp_r3 == PROC_COW) { - ((daCow_c*)param_0)->setCrazyCatch(); + s16 actor_name = fopAcM_GetName(i_actor); + if (actor_name == PROC_OBJ_GRA) { + ((daObj_GrA_c*)i_actor)->setCrazyCatch(); + } else if (actor_name == PROC_COW) { + ((daCow_c*)i_actor)->setCrazyCatch(); } else { - ((fopEn_enemy_c*)param_0)->setThrowModeCatch(); + ((fopEn_enemy_c*)i_actor)->setThrowModeCatch(); } field_0x37c8 = current.pos; @@ -2217,12 +2246,12 @@ int daAlink_c::procGoatCatchInit(fopAc_ac_c* param_0, f32 param_1) { } int daAlink_c::procGoatCatch() { - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; fopAc_ac_c* temp_r3 = field_0x280c.getActor(); - s16 temp_r27 = fopAcM_GetName(temp_r3); + s16 actor_name = fopAcM_GetName(temp_r3); s16 sp8; - if (mProcVar2.field_0x300c == 0 || (mProcVar1.field_0x300a == 0 && temp_r28->getFrame() < 29.0f)) { + if (mProcVar2.field_0x300c == 0 || (mProcVar1.field_0x300a == 0 && framectrl->getFrame() < 29.0f)) { sp8 = field_0x2ff0; } else { sp8 = 0; @@ -2251,18 +2280,18 @@ int daAlink_c::procGoatCatch() { field_0x2f99 = 5; onEndResetFlg0(ERFLG0_UNK_8000000); - if (temp_r28->getFrame() >= 81.0f) { - field_0x2f92 = 1; - field_0x2f93 = 6; - } else if (temp_r28->getFrame() >= 39.0f) { + if (framectrl->getFrame() >= 81.0f) { + mLeftHandIndex = 1; + mRightHandIndex = 6; + } else if (framectrl->getFrame() >= 39.0f) { onModeFlg(0x100); - } else if (temp_r28->getFrame() >= 32.0f) { - field_0x2f92 = 0xFE; - field_0x2f93 = 0xFE; + } else if (framectrl->getFrame() >= 32.0f) { + mLeftHandIndex = 0xFE; + mRightHandIndex = 0xFE; field_0x3478 = 1.0f; } - if (checkAnmEnd(temp_r28)) { + if (checkAnmEnd(framectrl)) { if (mProcVar5.field_0x3012 == 0) { setOldRootQuaternion(0, -0x8000, 0); shape_angle.y += 0x8000; @@ -2270,7 +2299,7 @@ int daAlink_c::procGoatCatch() { field_0x2fe4 = shape_angle.y; } - if (temp_r27 == PROC_OBJ_GRA) { + if (actor_name == PROC_OBJ_GRA) { field_0x2f99 = 0x30; setSingleAnimeBaseSpeed(ANM_WAIT_B, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f); offModeFlg(0x8000); @@ -2305,8 +2334,7 @@ int daAlink_c::procGoatCatch() { return 1; } - if (!doButton() || (!mLinkAcch.ChkGroundHit() && (!checkMagneBootsOn() || !checkNoResetFlg0(FLG0_UNK_2000))) || field_0x3198 > 0 && mNormalSpeed >= 30.0f) { - + if (!doButton() || (!mLinkAcch.ChkGroundHit() && (!checkMagneBootsOn() || !checkNoResetFlg0(FLG0_UNK_2000))) || (field_0x3198 > 0 && mNormalSpeed >= 30.0f)) { if (checkMagneBootsOn()) { cancelMagneBootsOn(); } @@ -2314,43 +2342,45 @@ int daAlink_c::procGoatCatch() { return 1; } - setDoStatusEmphasys(0x15); + setDoStatusEmphasys(BUTTON_STATUS_GRAB); - int temp_r25 = getDirectionFromShapeAngle(); + daAlink_ANM anm; + int direction = getDirectionFromShapeAngle(); if (mNormalSpeed > 1.0f) { - f32 temp_f30 = temp_r28->getFrame(); - if (checkAnmEnd(temp_r28)) { + f32 anm_frame = framectrl->getFrame(); + if (checkAnmEnd(framectrl)) { setSingleAnimeBase(ANM_COW_CATCH); } field_0x2f9d = 0x60; + anm = ANM_COW_CATCH; if (field_0x3198 > 0) { field_0x3198 += 1; cLib_chaseF(&mNormalSpeed, 30.0f, 1.0f); } else { - f32 var_f31 = 1.0f; - if ((temp_r27 == PROC_OBJ_GRA || temp_r27 == PROC_E_GOB) && !checkBootsOrArmorHeavy()) { + f32 speed_step = 1.0f; + if ((actor_name == PROC_OBJ_GRA || actor_name == PROC_E_GOB) && !checkBootsOrArmorHeavy()) { field_0x3198++; - } else if (checkInputOnR() && temp_r25 == DIR_FORWARD) { - var_f31 += 1.0f; + } else if (checkInputOnR() && direction == DIR_FORWARD) { + speed_step += 1.0f; } if (checkBootsOrArmorHeavy()) { - var_f31 += 0.5f; + speed_step += 0.5f; } - cLib_chaseF(&mNormalSpeed, 0.0f, var_f31); + cLib_chaseF(&mNormalSpeed, 0.0f, speed_step); if (mNormalSpeed < 0.1f) { mNormalSpeed = 0.1f; } } - if (!checkUnderMove0BckNoArc(ANM_COW_CATCH)) { - setSingleAnimeBase(ANM_COW_CATCH); - temp_r28->setFrame(temp_f30); - getNowAnmPackUnder(UNDER_0)->setFrame(temp_f30); + if (!checkUnderMove0BckNoArc(anm)) { + setSingleAnimeBase(anm); + framectrl->setFrame(anm_frame); + getNowAnmPackUnder(UNDER_0)->setFrame(anm_frame); } seStartOnlyReverbLevel(Z2SE_FN_LINK_SLIP); @@ -2359,45 +2389,44 @@ int daAlink_c::procGoatCatch() { mNormalSpeed = 0.0f; setSingleAnimeBase(ANM_COW_PRESS); voiceStart(Z2SE_AL_V_LIFTUP_L); - } else if (checkAnmEnd(temp_r28) && checkGoatStopGame()) { - dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[35]); + } else if (checkAnmEnd(framectrl) && checkGoatStopGame()) { + dComIfGs_onTmpBit((u16)dSv_event_tmp_flag_c::tempBitLabels[35]); } field_0x2f99 = 4; - if (checkAnmEnd(temp_r28)) { - if (temp_r27 == PROC_E_GOB && !checkBootsOrArmorHeavy()) { + if (checkAnmEnd(framectrl)) { + if (actor_name == PROC_E_GOB && !checkBootsOrArmorHeavy()) { setGoatStopGameFail(temp_r3); return 1; } - if (checkInputOnR() && (temp_r25 == DIR_LEFT || temp_r25 == DIR_RIGHT)) { - mProcVar3.field_0x300e = temp_r25; + if (checkInputOnR() && (direction == DIR_LEFT || direction == DIR_RIGHT)) { + mProcVar3.field_0x300e = direction; } - daAlink_ANM var_r26; if (mProcVar3.field_0x300e == 2) { - if (temp_r27 == PROC_OBJ_GRA) { + if (actor_name == PROC_OBJ_GRA) { ((daObj_GrA_c*)temp_r3)->setCrazyThrowLeft(); - } else if (temp_r27 == PROC_COW) { + } else if (actor_name == PROC_COW) { ((daCow_c*)temp_r3)->setCrazyThrowLeft(); } else { ((fopEn_enemy_c*)temp_r3)->setThrowModeThrowLeft(); } - var_r26 = ANM_COW_THROW_LEFT; + anm = ANM_COW_THROW_LEFT; } else { - if (temp_r27 == PROC_OBJ_GRA) { + if (actor_name == PROC_OBJ_GRA) { ((daObj_GrA_c*)temp_r3)->setCrazyThrowRight(); - } else if (temp_r27 == PROC_COW) { + } else if (actor_name == PROC_COW) { ((daCow_c*)temp_r3)->setCrazyThrowRight(); } else { ((fopEn_enemy_c*)temp_r3)->setThrowModeThrowRight(); } - var_r26 = ANM_COW_THROW_RIGHT; + anm = ANM_COW_THROW_RIGHT; } mProcVar2.field_0x300c = 1; - setSingleAnimeBase(var_r26); + setSingleAnimeBase(anm); field_0x2f99 = 0xC; voiceStart(Z2SE_AL_V_THROW_GORON); } @@ -2418,7 +2447,8 @@ int daAlink_c::procGoatStrokeInit() { static_cast(field_0x280c.getActor())->setNaderu(); mNormalSpeed = 0.0f; - if ((s16)(fopAcM_searchActorAngleY(field_0x27f4, this) - field_0x27f4->shape_angle.y) > 0) { + s16 var_r30 = fopAcM_searchActorAngleY(field_0x27f4, this) - field_0x27f4->shape_angle.y; + if (var_r30 > 0) { shape_angle.y = field_0x27f4->shape_angle.y - 0x4000; } else { shape_angle.y = field_0x27f4->shape_angle.y + 0x4000; @@ -2429,9 +2459,9 @@ int daAlink_c::procGoatStrokeInit() { return 1; } - int daAlink_c::procGoatStroke() { - if (mUnderFrameCtrl[0].checkAnmEnd()) { + daPy_frameCtrl_c* framectrl = mUnderFrameCtrl; + if (checkAnmEnd(mUnderFrameCtrl)) { checkNextAction(0); } @@ -2457,7 +2487,7 @@ int daAlink_c::procGoronMoveInit() { mNormalSpeed = 0.0f; field_0x2f98 = 3; current.angle.y = shape_angle.y + -0x4000; - field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed; + mMaxSpeed = mpHIO->mAtnMove.m.mMaxSpeed; setSingleAnimeBase(ANM_ATN_RIGHT); mProcVar2.field_0x300c = 1; mProcVar3.field_0x300e = 0; @@ -2484,10 +2514,10 @@ int daAlink_c::procGoronMove() { return procBootsEquipInit(); } - int temp_r28 = cLib_distanceAngleS(field_0x2fe2, shape_angle.y); + int temp_r28 = cLib_distanceAngleS(mMoveAngle, shape_angle.y); if (mAttention->getActionBtnB() != NULL && mAttention->getActionBtnB()->mType == fopAc_attn_CARRY_e) { - setDoStatus(0x91); + setDoStatus(BUTTON_STATUS_UNK_145); if (doTrigger()) { mProcVar3.field_0x300e = 1; @@ -2506,7 +2536,7 @@ int daAlink_c::procGoronMove() { f32 var_f31; if (checkInputOnR() && temp_r28 > 0x800 && temp_r28 < 0x7800) { - if (abs((s16)(field_0x2fe2 - current.angle.y)) > 0x4000) { + if (abs((s16)(mMoveAngle - current.angle.y)) > 0x4000) { current.angle.y += 0x8000; mNormalSpeed *= -1.0f; @@ -2517,8 +2547,8 @@ int daAlink_c::procGoronMove() { } } - if (field_0x33a8 > (0.3f * (1.0f - fabsf(mNormalSpeed / field_0x594)))) { - var_f31 = mpHIO->mAtnMove.m.mAcceleration * field_0x33a8; + if (mStickValue > (0.3f * (1.0f - fabsf(mNormalSpeed / mMaxSpeed)))) { + var_f31 = mpHIO->mAtnMove.m.mAcceleration * mStickValue; } else { var_f31 = 0.0f; } @@ -2542,17 +2572,17 @@ int daAlink_c::procGoronMove() { setSingleAnimeBase(ANM_COW_MOVE_LEFT_RIGHT); } - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; f32 var_f30; if (field_0x2f98 == 3) { var_f30 = -1.0f; - temp_r29->setLoop(temp_r29->getEnd()); + framectrl->setLoop(framectrl->getEnd()); } else { var_f30 = 1.0f; - temp_r29->setLoop(temp_r29->getStart()); + framectrl->setLoop(framectrl->getStart()); } - temp_r29->setRate(var_f30 * (mNormalSpeed / field_0x594)); + framectrl->setRate(var_f30 * (mNormalSpeed / mMaxSpeed)); initBasAnime(); } diff --git a/src/d/actor/d_a_alink_guard.inc b/src/d/actor/d_a_alink_guard.inc index 45899c7609..f2832f23e0 100644 --- a/src/d/actor/d_a_alink_guard.inc +++ b/src/d/actor/d_a_alink_guard.inc @@ -6,24 +6,19 @@ #include "d/actor/d_a_alink.h" #include "d/d_com_inf_game.h" #include "d/actor/d_a_obj_gra2.h" +#include "d/actor/d_a_npc_kn.h" BOOL daAlink_c::checkEnemyGroup(fopAc_ac_c* i_actor) { - return i_actor != NULL && (fopAcM_GetGroup(i_actor) == fopAc_ENEMY_e || - fopAcM_GetName(i_actor) == PROC_E_ZH || checkSpecialNpc(i_actor)); + return i_actor != NULL + && (fopAcM_GetGroup(i_actor) == fopAc_ENEMY_e || fopAcM_GetName(i_actor) == PROC_E_ZH || checkSpecialNpc(i_actor)); } -// properly setup later -class daNpc_Kn_c : public fopAc_ac_c { -public: - bool checkBattleMode() { return true; } -}; - BOOL daAlink_c::checkSpecialNpc(fopAc_ac_c* i_actor) { s16 name = fopAcM_GetName(i_actor); - return ((name == PROC_NPC_KAKASHI || name == PROC_NPC_KN) && - static_cast(i_actor)->checkBattleMode()) || - (name == PROC_OBJ_GRA && !static_cast(i_actor)->checkNpcObjGra()); + return name == PROC_NPC_KAKASHI || + (name == PROC_NPC_KN && static_cast(i_actor)->checkBattleMode()) || + (name == PROC_OBJ_GRA && !static_cast(i_actor)->checkNpcObjGra()); } BOOL daAlink_c::checkShieldAttackEmphasys() { @@ -56,20 +51,29 @@ void daAlink_c::stickArrowIncrement(int param_0) { } if (arrow_num != 0) { - if (checkShieldGet() && checkItemGet(fpcNm_ITEM_BOW, true)) { - int arrow_type = arrow_num == 1 ? fpcNm_ITEM_ARROW_1 : fpcNm_ITEM_ARROW_10; + if (checkShieldGet() + #if !PLATFORM_SHIELD + && checkItemGet(fpcNm_ITEM_BOW, true) + #endif + ) + { + int arrow_type; + if (arrow_num == 1) { + arrow_type = fpcNm_ITEM_ARROW_1; + } else { + arrow_type = fpcNm_ITEM_ARROW_10; + } dComIfGp_setItemArrowNumCount(arrow_num); fopAcM_createItemForSimpleDemo(¤t.pos, arrow_type, -1, NULL, NULL, 0.0f, 0.0f); } - onResetFlg0(RFLG0_UNK_1); + onResetFlg0(RFLG0_STICK_ARROW_RESET); } } } - void daAlink_c::setArrowShieldActor(fopAc_ac_c* i_actor, int param_1) { fpc_ProcID new_arrow_id = fopAcM_GetID(i_actor); @@ -106,12 +110,11 @@ void daAlink_c::setArrowShieldActor(fopAc_ac_c* i_actor, int param_1) { } } - BOOL daAlink_c::checkWoodShieldEquipNotIronBall() const { return checkWoodShieldEquip() && !checkIronBallEquip(); } -void daAlink_c::getArrowShieldOffset(cXyz const* param_0, csXyz const* param_1, cXyz* param_2, +void daAlink_c::getArrowShieldOffset(const cXyz* param_0, const csXyz* param_1, cXyz* param_2, cXyz* param_3) const { cXyz sp54; mDoMtx_stack_c::ZXYrotS(param_1->x + cM_rndFX(0x1000), param_1->y + cM_rndFX(0x1000), 0); @@ -120,7 +123,7 @@ void daAlink_c::getArrowShieldOffset(cXyz const* param_0, csXyz const* param_1, mDoMtx_stack_c::inverse(); mDoMtx_stack_c::multVecSR(&sp54, param_3); - static Vec const localCenter = {-15.0f, 0.0f, 18.0f}; + static const Vec localCenter = {-15.0f, 0.0f, 18.0f}; cXyz sp60; mDoMtx_multVec(getShieldMtx(), &localCenter, &sp60); @@ -140,9 +143,8 @@ void daAlink_c::getArrowShieldOffset(cXyz const* param_0, csXyz const* param_1, mDoMtx_stack_c::multVec(&sp6C, param_2); } - -void daAlink_c::setArrowShieldPos(cXyz* param_0, csXyz* param_1, cXyz const* param_2, - cXyz const* param_3) const { +void daAlink_c::setArrowShieldPos(cXyz* param_0, csXyz* param_1, const cXyz* param_2, + const cXyz* param_3) const { cXyz sp1C; mDoMtx_multVecSR(getShieldMtx(), param_3, &sp1C); @@ -153,9 +155,12 @@ void daAlink_c::setArrowShieldPos(cXyz* param_0, csXyz* param_1, cXyz const* par } BOOL daAlink_c::checkUpperGuardAnime() const { - return checkNoResetFlg2(FLG2_UNK_8000000) && !checkEventRun() && - !checkNoResetFlg0(FLG0_UNK_2) && mProcID != PROC_GUARD_BREAK && - mProcID != PROC_CUT_REVERSE && mProcID != PROC_GUARD_ATTACK; + return checkNoResetFlg2(FLG2_UNK_8000000) && + !checkEventRun() && + !checkNoResetFlg0(FLG0_UNK_2) && + mProcID != PROC_GUARD_BREAK && + mProcID != PROC_CUT_REVERSE && + mProcID != PROC_GUARD_ATTACK; } BOOL daAlink_c::checkPlayerGuard() const { @@ -168,15 +173,20 @@ BOOL daAlink_c::checkPlayerGuardAndAttack() const { } BOOL daAlink_c::checkGuardAccept() { - return checkModeFlg(0x80) && checkShieldGet() && !checkFmChainGrabAnime() && + return checkModeFlg(0x80) && + checkShieldGet() && + !checkFmChainGrabAnime() && !checkNotBattleStage(); } -void daAlink_c::setUpperGuardAnime(f32) { +void daAlink_c::setUpperGuardAnime(f32 param_0) { + UNUSED(param_0); onNoResetFlg2(FLG2_UNK_8000000); } void daAlink_c::setShieldGuard() { + f32 var_f31 = mNowAnmPackUpper[2].getRatio(); + if ((mProcID == PROC_GUARD_SLIP && mEquipItem != fpcNm_ITEM_IRONBALL) || checkSmallUpperGuardAnime() || (checkGuardAccept() && !checkGrabAnime() && !checkUpperReadyThrowAnime() && !checkDkCaught2Anime() && !checkKandelaarSwingAnime() && !checkCutDashAnime() && @@ -191,28 +201,28 @@ void daAlink_c::setShieldGuard() { void daAlink_c::setGuardSe(dCcD_GObjInf* i_objinf) { int var_r31; - int var_r30; + BOOL isRebound; if (checkWoodShieldEquipNotIronBall() && !checkMagicArmorNoDamage()) { var_r31 = 0x29; - var_r30 = 0; + isRebound = FALSE; } else { var_r31 = 0x28; - var_r30 = 1; + isRebound = TRUE; } u32 hit_se; if (i_objinf->GetTgHitGObj() != NULL && i_objinf->GetTgHitGObj()->GetAtType() == AT_TYPE_BOMB) { hit_se = Z2SE_HIT_METAL_WEAPON; } else { - hit_se = i_objinf->GetTgHitObjHitSeID(var_r30); + hit_se = i_objinf->GetTgHitObjHitSeID(isRebound); } mZ2Link.startCollisionSE(hit_se, var_r31); } void daAlink_c::setSmallGuard(dCcD_GObjInf* i_objinf) { - setUpperAnimeBase(0x16); + setUpperAnimeBase(dRes_ID_ALANM_BCK_ATDEFS_e); cXyz* dmg_vec = getDamageVec(i_objinf); mBodyAngle.y = (dmg_vec->atan2sX_Z() + 0x8000) - shape_angle.y; @@ -227,7 +237,7 @@ void daAlink_c::setSmallGuard(dCcD_GObjInf* i_objinf) { mBodyAngle.x = cLib_minMaxLimit(cM_atan2s(dmg_vec->y, dmg_vec->absXZ()), -mpHIO->mGuard.m.mSmallGuardFBAngleMax, mpHIO->mGuard.m.mSmallGuardFBAngleMax); } -int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) { +int daAlink_c::procGuardSlipInit(int i_atSpl, dCcD_GObjInf* i_objinf) { if (mProcID == PROC_GUARD_SLIP) { return 0; } @@ -241,9 +251,11 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) { commonProcInit(PROC_GUARD_SLIP); field_0x2fd4 = 3; - cXyz* temp_r3 = getDamageVec(param_1); - current.angle.y = temp_r3->atan2sX_Z(); + cXyz* dmg_vec = getDamageVec(i_objinf); + current.angle.y = dmg_vec->atan2sX_Z(); + const daAlinkHIO_anm_c* anmParams; + daAlink_ANM anm; if (mEquipItem == fpcNm_ITEM_IRONBALL) { setSingleAnimeBase(ANM_IRONBALL_DEF); setIronBallWaitUpperAnime(1); @@ -253,15 +265,14 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) { mProcVar2.field_0x300c = 0; mProcVar3.field_0x300e = 0; } else { - const daAlinkHIO_anm_c* var_r27 = &mpHIO->mGuard.m.mGuardHitAnm; - daAlink_ANM var_r28; + anmParams = &mpHIO->mGuard.m.mGuardHitAnm; if (field_0x2f98 == 2) { - var_r28 = ANM_GUARD_LEFT; + anm = ANM_GUARD_LEFT; } else { - var_r28 = ANM_GUARD_RIGHT; + anm = ANM_GUARD_RIGHT; } - setSingleAnimeParam(var_r28, var_r27); + setSingleAnimeParam(anm, anmParams); setUpperGuardAnime(-1.0f); mProcVar2.field_0x300c = (current.angle.y + 0x8000) - shape_angle.y; @@ -271,7 +282,7 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) { mProcVar2.field_0x300c = cLib_minMaxLimit((s16)mProcVar2.field_0x300c, -mpHIO->mGuard.m.mGuardLRAngleMax, mpHIO->mGuard.m.mGuardLRAngleMax); } - mProcVar3.field_0x300e = cLib_minMaxLimit(cM_atan2s(temp_r3->y, temp_r3->absXZ()), -mpHIO->mGuard.m.mGuardFBAngleMax, mpHIO->mGuard.m.mGuardFBAngleMax); + mProcVar3.field_0x300e = cLib_minMaxLimit(cM_atan2s(dmg_vec->y, dmg_vec->absXZ()), -mpHIO->mGuard.m.mGuardFBAngleMax, mpHIO->mGuard.m.mGuardFBAngleMax); mProcVar1.field_0x300a = mpHIO->mGuard.m.mGuardBodyInterpolation + 1; mProcVar2.field_0x300c = (mProcVar2.field_0x300c - mBodyAngle.y) / mProcVar1.field_0x300a; mProcVar3.field_0x300e = (mProcVar3.field_0x300e - mBodyAngle.x) / mProcVar1.field_0x300a; @@ -284,7 +295,7 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) { mProcVar4.field_0x3010 = 0; mProcVar5.field_0x3012 = 0; - if (param_1 != NULL && param_1->GetTgHitAc() != NULL && fopAcM_GetName(param_1->GetTgHitAc()) == PROC_E_MM_MT && param_1->GetTgHitAc()->argument == 1) { + if (i_objinf != NULL && i_objinf->GetTgHitAc() != NULL && fopAcM_GetName(i_objinf->GetTgHitAc()) == PROC_E_MM_MT && i_objinf->GetTgHitAc()->argument == 1) { if (checkBootsOrArmorHeavy()) { mNormalSpeed = mpHIO->mGuard.m.mMagneHvyGuardSpeed; mProcVar5.field_0x3012 = 1; @@ -294,13 +305,13 @@ int daAlink_c::procGuardSlipInit(int param_0, dCcD_GObjInf* param_1) { } mProcVar4.field_0x3010 = 1; - } else if (checkHugeAttack(param_0)) { + } else if (checkHugeAttack(i_atSpl)) { if ((!checkBootsOrArmorHeavy() && checkMiddleBossGoronRoom()) || checkStageName("D_MN07B")) { mNormalSpeed = 40.0f; } else { mNormalSpeed = mpHIO->mGuard.m.mGuardSpeedHuge; } - } else if (checkLargeAttack(param_0)) { + } else if (checkLargeAttack(i_atSpl)) { mNormalSpeed = mpHIO->mGuard.m.mGuardSpeedLarge; } else { mNormalSpeed = mpHIO->mGuard.m.mGuardSpeedNormal; @@ -319,7 +330,7 @@ int daAlink_c::procGuardSlip() { setShapeAngleToAtnActor(0); if (mProcVar1.field_0x300a != 0) { - mProcVar1.field_0x300a -= 1; + mProcVar1.field_0x300a -= (s16)1; mBodyAngle.y += mProcVar2.field_0x300c; mBodyAngle.x += mProcVar3.field_0x300e; } @@ -328,19 +339,19 @@ int daAlink_c::procGuardSlip() { field_0x2f9d = 0x60; } - f32 var_f31; + f32 speed_step; if (checkBootsOrArmorHeavy() && mProcVar4.field_0x3010 == 0) { - var_f31 = 2.5f; + speed_step = 2.5f; } else { - var_f31 = 1.25f; + speed_step = 1.25f; } if (mProcVar4.field_0x3010 != 0 && mProcVar5.field_0x3012 != checkBootsOrArmorHeavy()) { mNormalSpeed = 0.0f; } - if (cLib_chaseF(&mNormalSpeed, 0.0f, var_f31) != 0 && checkAnmEnd(&mUnderFrameCtrl[0])) { - field_0x814.SetTgApid(0); + if (cLib_chaseF(&mNormalSpeed, 0.0f, speed_step) != 0 && checkAnmEnd(&mUnderFrameCtrl[0])) { + mCcStts.SetTgApid(0); if (!checkGuardActionChange()) { onEndResetFlg1(ERFLG1_UNK_20); @@ -357,41 +368,44 @@ int daAlink_c::procGuardSlip() { } int daAlink_c::procGuardAttackInit() { - if (mDemo.getDemoMode() == 0x4B && mProcID == PROC_GUARD_ATTACK) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_GUARD_ATTACK_e && mProcID == PROC_GUARD_ATTACK) { return 1; } commonProcInit(PROC_GUARD_ATTACK); - const daAlinkHIO_guardAttack_c1* temp_r30 = &mpHIO->mGuard.mAtPush.m; + daAlink_ANM anm = ANM_SHIELD_ATTACK; + const daAlinkHIO_guardAttack_c1* params = &mpHIO->mGuard.mAtPush.m; field_0x2f98 = 3; field_0x34d4 = l_rWaitBaseAnime; field_0x3588 = l_rWaitBaseAnime; - setCutType(0x29); - setSingleAnimeParam(ANM_SHIELD_ATTACK, &temp_r30->mAttackAnm); + setCutType(CUT_TYPE_GUARD_ATTACK); + u8 atSe = dCcD_SE_SHIELD_ATTACK; - field_0x3478 = temp_r30->mAttackStartFrame; - field_0x347c = temp_r30->mAttackEndFrame; - field_0x3480 = temp_r30->mSpeed; + setSingleAnimeParam(anm, ¶ms->mAttackAnm); - if (checkHeavyStateOn(1, 1) != 0) { + field_0x3478 = params->mAttackStartFrame; + field_0x347c = params->mAttackEndFrame; + field_0x3480 = params->mSpeed; + + if (checkHeavyStateOn(TRUE, TRUE)) { field_0x3480 *= mHeavySpeedMultiplier; } - if (mDemo.getDemoMode() == 0x4B) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_GUARD_ATTACK_e) { field_0x3484 = 1000.0f; field_0x3488 = 1000.0f; } else { - field_0x3484 = temp_r30->mAttackAnm.mCancelFrame; - field_0x3488 = temp_r30->mSlashCheckFrame; + field_0x3484 = params->mAttackAnm.mCancelFrame; + field_0x3488 = params->mSlashCheckFrame; } mNormalSpeed = 0.0f; setSwordVoiceSe(Z2SE_AL_V_TATE_OSHI); mGuardAtCps.ResetAtHit(); - mGuardAtCps.SetAtSe(2); + mGuardAtCps.SetAtSe(atSe); mGuardAtCps.SetR(mpHIO->mGuard.m.mAttackRadius); current.angle.y = shape_angle.y; @@ -405,7 +419,7 @@ int daAlink_c::procGuardAttackInit() { } int daAlink_c::procGuardAttack() { - daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; setUpperGuardAnime(-1.0f); field_0x2f99 = 4; @@ -419,17 +433,17 @@ int daAlink_c::procGuardAttack() { BOOL var_r29; if (mEquipItem == 0x103 && !checkMagneBootsOn()) { - var_r29 = 1; + var_r29 = TRUE; if (doTrigger()) { mProcVar3.field_0x300e = 1; } } else { - var_r29 = 0; + var_r29 = FALSE; } if (mProcVar0.field_0x3008 == 0 && mGuardAtCps.ChkAtHit()) { mProcVar0.field_0x3008 = 1; - dComIfGp_getVibration().StartShock(3, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER3, 1, cXyz(0.0f, 1.0f, 0.0f)); } if (mProcVar5.field_0x3012 != 0 && commonLineCheck(&field_0x3834, &mRightHandPos) && dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7) { @@ -439,20 +453,20 @@ int daAlink_c::procGuardAttack() { if (var_r29) { if (checkCutHeadState()) { - setDoStatusEmphasys(0x77); + setDoStatusEmphasys(BUTTON_STATUS_HELM_SPLITTER); } else { - setDoStatus(0x86); + setDoStatus(BUTTON_STATUS_UNK_134); } } - if (checkAnmEnd(temp_r30)) { - if (mDemo.getDemoMode() == 0x4B) { + if (checkAnmEnd(framectrl)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_GUARD_ATTACK_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextAction(0); } } else { - if (temp_r30->getFrame() > field_0x3488) { + if (framectrl->getFrame() > field_0x3488) { if (mProcVar3.field_0x300e != 0) { return checkDoCutAction(); } @@ -462,10 +476,10 @@ int daAlink_c::procGuardAttack() { } } - if (temp_r30->getFrame() > field_0x3484) { + if (framectrl->getFrame() > field_0x3484) { onModeFlg(4); checkNextAction(1); - } else if (temp_r30->getFrame() >= field_0x3478 && temp_r30->getFrame() < field_0x347c) { + } else if (framectrl->getFrame() >= field_0x3478 && framectrl->getFrame() < field_0x347c) { if (mProcVar5.field_0x3012 == 0) { mNormalSpeed = field_0x3480; } @@ -483,29 +497,29 @@ int daAlink_c::procGuardBreakInit() { setSingleAnimeParam(ANM_GUARD_BREAK, &mpHIO->mGuard.m.mGuardBreakAnm); if (mEquipItem == fpcNm_ITEM_IRONBALL) { - deleteEquipItem(0, 0); + deleteEquipItem(FALSE, FALSE); } mNormalSpeed = 0.0f; field_0x3588 = l_halfAtnWaitBaseAnime; - dComIfGp_getVibration().StartShock(5, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER5, 0x1F, cXyz(0.0f, 1.0f, 0.0f)); voiceStart(Z2SE_AL_V_GUARD_BROKEN); return 1; } int daAlink_c::procGuardBreak() { - daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; setUpperGuardAnime(-1.0f); onEndResetFlg0(ERFLG0_UNK_8000000); field_0x2f99 = 4; - if (checkAnmEnd(temp_r30)) { + if (checkAnmEnd(framectrl)) { if (checkGuardActionChange() == 0) { onEndResetFlg1(ERFLG1_UNK_20); } checkNextAction(0); - } else if (temp_r30->getFrame() > mpHIO->mGuard.m.mGuardBreakAnm.mCancelFrame) { + } else if (framectrl->getFrame() > mpHIO->mGuard.m.mGuardBreakAnm.mCancelFrame) { if (!checkGuardActionChange()) { onEndResetFlg1(ERFLG1_UNK_20); } @@ -518,37 +532,37 @@ int daAlink_c::procGuardBreak() { } int daAlink_c::procTurnMoveInit(int param_0) { - BOOL temp_r27 = checkUpperGuardAnime(); - fopAc_ac_c* temp_r28 = mTargetedActor; + BOOL isUpperGuardAnime = checkUpperGuardAnime(); + fopAc_ac_c* targetedActor = mTargetedActor; commonProcInit(PROC_TURN_MOVE); mNormalSpeed = 0.0f; - daAlink_ANM var_r29; + daAlink_ANM anm; if (param_0 == 2) { - var_r29 = ANM_SIDE_ROLL_LEFT; + anm = ANM_SIDE_ROLL_LEFT; } else if (param_0 == 3) { - var_r29 = ANM_SIDE_ROLL_RIGHT; + anm = ANM_SIDE_ROLL_RIGHT; } else if (checkInputOnR()) { - if ((s16)(field_0x2fe2 - shape_angle.y) >= 0) { - var_r29 = ANM_SIDE_ROLL_LEFT; + if ((s16)(mMoveAngle - shape_angle.y) >= 0) { + anm = ANM_SIDE_ROLL_LEFT; } else { - var_r29 = ANM_SIDE_ROLL_RIGHT; + anm = ANM_SIDE_ROLL_RIGHT; } } else { - var_r29 = ANM_SIDE_ROLL_LEFT; + anm = ANM_SIDE_ROLL_LEFT; } - f32 temp_f31 = mpHIO->mGuard.mTurnMove.m.mTurnAnm.mSpeed; + f32 anm_speed = mpHIO->mGuard.mTurnMove.m.mTurnAnm.mSpeed; mProcVar1.field_0x300a = mpHIO->mGuard.mTurnMove.m.mMaxTurnSpeed; - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { mProcVar1.field_0x300a = mProcVar1.field_0x300a * mpHIO->mItem.mIronBoots.m.mWaterVelocityX; } - setSingleAnime(var_r29, temp_f31, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mStartFrame, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mEndFrame, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mInterpolation); + setSingleAnime(anm, anm_speed, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mStartFrame, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mEndFrame, mpHIO->mGuard.mTurnMove.m.mTurnAnm.mInterpolation); - if (var_r29 == ANM_SIDE_ROLL_LEFT) { + if (anm == ANM_SIDE_ROLL_LEFT) { mProcVar2.field_0x300c = -0x7FF0; field_0x2f98 = 2; } else { @@ -556,9 +570,9 @@ int daAlink_c::procTurnMoveInit(int param_0) { field_0x2f98 = 3; } - if (temp_r28 != NULL) { - cXyz sp8 = current.pos - temp_r28->current.pos; - shape_angle.y = fopAcM_searchActorAngleY(this, temp_r28); + if (targetedActor != NULL) { + cXyz sp8 = current.pos - targetedActor->current.pos; + shape_angle.y = fopAcM_searchActorAngleY(this, targetedActor); field_0x3478 = sp8.absXZ(); mProcVar3.field_0x300e = sp8.atan2sX_Z(); } else { @@ -569,7 +583,7 @@ int daAlink_c::procTurnMoveInit(int param_0) { field_0x347c = (field_0x3478 - 150.0f) / mProcVar2.field_0x300c; voiceStart(Z2SE_AL_V_SOTOMO_ROLL); - if (mDemo.getDemoMode() == 0x52) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_82_e) { mProcVar0.field_0x3008 = 1; } else { mProcVar0.field_0x3008 = 0; @@ -579,7 +593,7 @@ int daAlink_c::procTurnMoveInit(int param_0) { field_0x2f9d = 4; dComIfGp_setPlayerStatus0(0, 4); - if (temp_r27 != 0) { + if (isUpperGuardAnime) { onNoResetFlg0(FLG0_UNK_2); } @@ -611,22 +625,22 @@ int daAlink_c::procTurnMove() { shape_angle.y = mProcVar3.field_0x300e + 0x8000; mProcVar0.field_0x3008 |= checkCutFinishJumpUp(); - daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; if (checkNoResetFlg0(FLG0_UNK_2)) { setUpperGuardAnime(-1.0f); } - if (checkAnmEnd(temp_r30)) { + if (checkAnmEnd(framectrl)) { if (!checkAttentionLock()) { offNoResetFlg2(FLG2_UNK_8000000); } checkNextAction(0); - } else if (mProcVar0.field_0x3008 != 0 && !checkNotJumpSinkLimit() && temp_r30->getFrame() > mpHIO->mGuard.mTurnMove.m.mTwirlCutDelayF) { + } else if (mProcVar0.field_0x3008 != 0 && !checkNotJumpSinkLimit() && framectrl->getFrame() > mpHIO->mGuard.mTurnMove.m.mTwirlCutDelayF) { procCutFinishJumpUpInit(); dComIfGp_setPlayerStatus0(0, 4); } else { - if (temp_r30->getFrame() > mpHIO->mGuard.mTurnMove.m.mTurnAnm.mCancelFrame) { + if (framectrl->getFrame() > mpHIO->mGuard.mTurnMove.m.mTurnAnm.mCancelFrame) { onModeFlg(4); if (checkNextAction(1)) { @@ -634,8 +648,8 @@ int daAlink_c::procTurnMove() { } } - if (temp_r30->checkPass(19.0f)) { - dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + if (framectrl->checkPass(19.0f)) { + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER1, 1, cXyz(0.0f, 1.0f, 0.0f)); } if (abs(temp_r29) > 0x100) { diff --git a/src/d/actor/d_a_alink_hang.inc b/src/d/actor/d_a_alink_hang.inc index 3c15747f8c..25d48a2d6d 100644 --- a/src/d/actor/d_a_alink_hang.inc +++ b/src/d/actor/d_a_alink_hang.inc @@ -18,7 +18,7 @@ f32 daAlink_c::getHangMoveAnmSpeed() { } int daAlink_c::getHangDirectionFromAngle() { - s16 angle = field_0x2fe2 - shape_angle.y; + s16 angle = mMoveAngle - shape_angle.y; if (abs(angle) > 0x78E4) { return DIR_BACKWARD; } @@ -40,7 +40,7 @@ BOOL daAlink_c::hangMoveBgCheck(s16 param_0, cXyz* param_1) { f32 var_f31; if (checkModeFlg(0x10000)) { - var_f31 = current.pos.y + field_0x598; + var_f31 = current.pos.y + mHeight; } else { var_f31 = current.pos.y; } @@ -68,7 +68,8 @@ BOOL daAlink_c::hangMoveBgCheck(s16 param_0, cXyz* param_1) { cXyz sp9C; for (int i = 0; i < 3; i++) { static f32 const underOffsetY[3] = {15.0f, 90.0f, 150.0f}; - sp90.y = sp84.y = var_f31 - underOffsetY[i]; + sp84.y = var_f31 - underOffsetY[i]; + sp90.y = sp84.y; if (commonLineCheck(&sp84, &sp90)) { dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp78); @@ -92,15 +93,14 @@ BOOL daAlink_c::hangMoveBgCheck(s16 param_0, cXyz* param_1) { return rt; } - BOOL daAlink_c::changeHangMoveProc(int i_direction) { if (!mLinkAcch.ChkGroundHit() || !dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) { return false; } - cM3dGPla sp58; - dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &sp58); - if (sp58.mNormal.y < 0.9986f) { + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &tripla); + if (tripla.mNormal.y < 0.9986f) { return false; } @@ -132,7 +132,8 @@ BOOL daAlink_c::changeHangMoveProc(int i_direction) { } mLinkGndChk.SetPos(&sp70); - if (fabsf(dComIfG_Bgsp().GroundCross(&mLinkGndChk) - current.pos.y) > 5.0f) { + f32 var_f30 = fabsf(dComIfG_Bgsp().GroundCross(&mLinkGndChk) - current.pos.y); + if (var_f30 > 5.0f) { cXyz sp7C; cXyz sp88; sp7C.set(sp70.x, current.pos.y - 5.0f, sp70.z); @@ -142,8 +143,8 @@ BOOL daAlink_c::changeHangMoveProc(int i_direction) { return false; } - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp58); - if (cLib_distanceAngleS(sp58.mNormal.atan2sX_Z(), shape_angle.y) < 0x549F) { + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); + if (cLib_distanceAngleS(tripla.mNormal.atan2sX_Z(), shape_angle.y) < 0x549F) { return false; } } @@ -151,19 +152,17 @@ BOOL daAlink_c::changeHangMoveProc(int i_direction) { return hangMoveBgCheck(var_r29, NULL) == false; } - bool daAlink_c::checkHangFootWall() { f32 var_f31 = cM_ssin(shape_angle.y); f32 var_f30 = cM_scos(shape_angle.y); - cXyz sp4C(current.pos.x - var_f31 * 30.0f, current.pos.y - 120.0f, - current.pos.z - var_f30 * 30.0f); - cXyz sp58(current.pos.x + var_f31, sp4C.y, current.pos.z + var_f30); + cXyz line_start(current.pos.x - var_f31 * 30.0f, current.pos.y - 120.0f, current.pos.z - var_f30 * 30.0f); + cXyz line_end(current.pos.x + var_f31, line_start.y, current.pos.z + var_f30); - if (commonLineCheck(&sp4C, &sp58)) { - cM3dGPla sp40; - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp40); + if (commonLineCheck(&line_start, &line_end)) { + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); - if (fabsf(sp40.mNormal.y) <= 0.05f) { + if (fabsf(tripla.mNormal.y) <= 0.05f) { onNoResetFlg2(FLG2_UNK_2000); return true; } @@ -173,7 +172,6 @@ bool daAlink_c::checkHangFootWall() { return false; } - void daAlink_c::setHangGroundY() { cXyz pos; mDoMtx_multVecZero(mpLinkModel->getAnmMtx(0), &pos); @@ -185,7 +183,6 @@ void daAlink_c::setHangGroundY() { field_0x33d8 = dComIfG_Bgsp().GroundCross(&mLinkGndChk); } - int daAlink_c::changeHangEndProc() { setHangGroundY(); @@ -196,7 +193,7 @@ int daAlink_c::changeHangEndProc() { return procLandInit(0.0f); } - setDoStatus(0x33); + setDoStatus(BUTTON_STATUS_DROP_DOWN); if (doTrigger()) { speed.y = 0.0f; @@ -224,17 +221,17 @@ void daAlink_c::checkHangStartSideWall(s16 param_0) { cXyz sp7C; cXyz sp88; - cM3dGPla sp70; + cM3dGPla tripla; sp7C.set(var_f31 + (current.pos.x + (cM_ssin(param_0) * 4.5f)), - current.pos.y - field_0x598 * 0.5f, + current.pos.y - mHeight * 0.5f, var_f30 + (current.pos.z + (cM_scos(param_0) * 4.5f))); sp88.set(sp7C.x - var_f31 * 2.0f, sp7C.y, sp7C.z - var_f30 * 2.0f); for (int i = 0; i < 2; i++) { if (commonLineCheck(&sp7C, &sp88)) { - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp70); - if (cLib_distanceAngleS(sp70.mNormal.atan2sX_Z(), var_r27) < 0x549F) { + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); + if (cLib_distanceAngleS(tripla.mNormal.atan2sX_Z(), var_r27) < 0x549F) { current.pos.x += var_f31; current.pos.z += var_f30; break; @@ -242,19 +239,19 @@ void daAlink_c::checkHangStartSideWall(s16 param_0) { } if (commonLineCheck(&sp88, &sp7C)) { - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp70); - if (cLib_distanceAngleS(sp70.mNormal.atan2sX_Z(), var_r27) < 0x549F) { + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); + if (cLib_distanceAngleS(tripla.mNormal.atan2sX_Z(), var_r27) < 0x549F) { current.pos.x -= var_f31; current.pos.z -= var_f30; break; } } - sp88.y = sp7C.y = current.pos.y - 5.0f; + sp7C.y = current.pos.y - 5.0f; + sp88.y = sp7C.y; } } - int daAlink_c::procHangStartInit() { cXyz sp2C = field_0x34ec - current.pos; @@ -273,13 +270,13 @@ int daAlink_c::procHangStartInit() { return 0; } - BOOL hang_ready = mProcID == PROC_HANG_READY; + BOOL is_prev_hangReady = mProcID == PROC_HANG_READY; commonProcInit(PROC_HANG_START); current.pos = sp38; offNoResetFlg2(FLG2_UNK_2000); if (checkHangFootWall()) { - if (!hang_ready && cM_rnd() < 0.7f) { + if (!is_prev_hangReady && cM_rnd() < 0.7f) { setSingleAnimeParam(ANM_CLIMB_HANG_MISS, &mpHIO->mLadder.m.mWallAttachMissAnm); field_0x3478 = mpHIO->mLadder.m.mWallAttachMissAnm.mCancelFrame; voiceStart(Z2SE_AL_V_FOOT_MISS); @@ -289,8 +286,8 @@ int daAlink_c::procHangStartInit() { voiceStart(Z2SE_AL_V_JUMP_HANG); } - field_0x2f92 = 0xFE; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0xFE; + mRightHandIndex = 0xFE; } else { setSingleAnimeParam(ANM_HANG_READY, &mpHIO->mWallHang.mWallCatch.m.mGrabAAnm); field_0x3478 = mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mCancelFrame; @@ -301,15 +298,13 @@ int daAlink_c::procHangStartInit() { shape_angle.y = field_0x306e + 0x8000; current.angle.y = shape_angle.y; - f32 tmp_0 = 0.0f; - mNormalSpeed = tmp_0; - speed.y = tmp_0; + mNormalSpeed = 0.0f; + speed.y = 0.0f; dComIfGp_setPlayerStatus0(0, 0x100); setHangGroundY(); return 1; } - int daAlink_c::procHangStart() { daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; @@ -319,10 +314,11 @@ int daAlink_c::procHangStart() { if (checkAnmEnd(frame_ctrl)) { procHangWaitInit(); - } else if (frame_ctrl->getFrame() > field_0x3478 && checkInputOnR() && - getDirectionFromShapeAngle() == DIR_FORWARD) - { - procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame); + } else if (frame_ctrl->getFrame() > field_0x3478 && checkInputOnR()) { + int direction = getDirectionFromShapeAngle(); + if (direction == DIR_FORWARD) { + procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame); + } } return 1; @@ -338,8 +334,7 @@ int daAlink_c::procHangFallStartInit(cM3dGPla* param_0) { cXyz sp58(current.pos.x, current.pos.y + 50.0f, current.pos.z); mLinkGndChk.SetPos(&sp58); - f32 cross = dComIfG_Bgsp().GroundCross(&mLinkGndChk); - sp58.y = cross; + sp58.y = dComIfG_Bgsp().GroundCross(&mLinkGndChk); if (sp58.y != -G_CM3D_F_INF) { if (sp58.y < current.pos.y + l_autoDownHeight) { return 0; @@ -356,14 +351,12 @@ int daAlink_c::procHangFallStartInit(cM3dGPla* param_0) { sp58.z += var_f30; mLinkGndChk.SetPos(&sp58); - cross = dComIfG_Bgsp().GroundCross(&mLinkGndChk); - if (cross < current.pos.y - 50.0f) { + if (dComIfG_Bgsp().GroundCross(&mLinkGndChk) < current.pos.y - 50.0f) { sp58.x = current.pos.x - var_f31; sp58.z = current.pos.z - var_f30; mLinkGndChk.SetPos(&sp58); - cross = dComIfG_Bgsp().GroundCross(&mLinkGndChk); - sp58.y = cross; + sp58.y = dComIfG_Bgsp().GroundCross(&mLinkGndChk); if (sp58.y < current.pos.y - 50.0f) { return 0; } @@ -397,7 +390,6 @@ int daAlink_c::procHangFallStartInit(cM3dGPla* param_0) { return 1; } - int daAlink_c::procHangFallStart() { daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; @@ -415,8 +407,7 @@ int daAlink_c::procHangFallStart() { } if (frame_ctrl->checkPass(5.0f)) { - f32 tmp_0 = 0.0f; - dComIfGp_getVibration().StartShock(1, 1, cXyz(tmp_0, 1.0f, tmp_0)); + dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); } if (bvar) { @@ -465,15 +456,14 @@ int daAlink_c::procHangUp() { return 1; } - int daAlink_c::procHangWaitInit() { commonProcInit(PROC_HANG_WAIT); if (checkNoResetFlg2(FLG2_UNK_2000) && checkHangFootWall()) { setSingleAnime(ANM_CLIMB_HANG, 0.0f, mpHIO->mLadder.m.mWallAttachAnm.mEndFrame, mpHIO->mLadder.m.mWallAttachAnm.mEndFrame, 5.0f); - field_0x2f92 = 0xFE; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0xFE; + mRightHandIndex = 0xFE; } else { setSingleAnime(ANM_HANG_READY, 0.0f, mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame, mpHIO->mWallHang.mWallCatch.m.mGrabAAnm.mEndFrame, 5.0f); @@ -488,8 +478,9 @@ int daAlink_c::procHangWaitInit() { return 1; } - int daAlink_c::procHangWait() { + daPy_frameCtrl_c* framectrl = mUnderFrameCtrl; + if (changeHangEndProc()) { return 1; } @@ -517,13 +508,11 @@ int daAlink_c::procHangWait() { return 1; } - int daAlink_c::procHangMoveInit(int param_0) { commonProcInit(PROC_HANG_MOVE); + daAlink_ANM anm; if (checkNoResetFlg2(FLG2_UNK_2000) && checkHangFootWall()) { - daAlink_ANM anm; - if (param_0 == 2) { anm = ANM_CLIMB_SLIDE_LEFT; field_0x33f0 = 1.0f; @@ -535,11 +524,9 @@ int daAlink_c::procHangMoveInit(int param_0) { } setSingleAnimeBaseSpeed(anm, getClimbMoveSideAnmSpeed(), 3.0f); - field_0x2f92 = 0xFE; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0xFE; + mRightHandIndex = 0xFE; } else { - daAlink_ANM anm; - if (param_0 == 2) { anm = ANM_HANG_MOVE_LEFT; } else { @@ -564,7 +551,6 @@ int daAlink_c::procHangMoveInit(int param_0) { return 1; } - int daAlink_c::procHangMove() { int direction = getHangDirectionFromAngle(); field_0x2f99 = 1; @@ -672,13 +658,12 @@ int daAlink_c::procHangMove() { return 1; } - int daAlink_c::procHangClimbInit(f32 param_0) { - if (mLinkAcch.ChkRoofHit() || field_0x3174 == 6) { + if (mLinkAcch.ChkRoofHit() || mGroundCode == 6) { return 0; } - BOOL wall_catch = mProcID == PROC_HANG_WALL_CATCH; + BOOL is_prev_wallCatch = mProcID == PROC_HANG_WALL_CATCH; commonProcInit(PROC_HANG_CLIMB); setSingleAnime(ANM_HANG_CLIMB_TOP, mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mSpeed, param_0, mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mEndFrame, @@ -692,7 +677,7 @@ int daAlink_c::procHangClimbInit(f32 param_0) { mNormalSpeed = 0.0f; current.angle.y = shape_angle.y; - if (!wall_catch) { + if (!is_prev_wallCatch) { voiceStart(Z2SE_AL_V_CLIMB); } @@ -700,7 +685,6 @@ int daAlink_c::procHangClimbInit(f32 param_0) { return 1; } - int daAlink_c::procHangClimb() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; setHangGroundY(); @@ -715,12 +699,10 @@ int daAlink_c::procHangClimb() { if (frameCtrl->checkPass(9.0f)) { daAlink_footData_c* footdata = mFootData2; - - for (int i = 0; i < 2; i++) { + for (int i = 0; i < 2; i++, footdata++) { footdata->field_0x6 = 0; footdata->field_0x4 = 0; footdata->field_0x2 = 0; - footdata++; } } @@ -738,7 +720,6 @@ int daAlink_c::procHangClimb() { return 1; } - int daAlink_c::procHangWallCatchInit() { cXyz sp2C = field_0x34ec - current.pos; if (sp2C.absXZ() > mAcchCir[0].GetWallR() + 20.0f) { @@ -776,7 +757,6 @@ int daAlink_c::procHangWallCatchInit() { return 1; } - int daAlink_c::procHangWallCatch() { setHangGroundY(); @@ -795,7 +775,7 @@ int daAlink_c::procHangWallCatch() { int daAlink_c::procHangReadyInit() { if (field_0x2f91 == 3 && mEquipItem != fpcNm_ITEM_NONE) { - return procPreActionUnequipInit(0x5C, NULL); + return procPreActionUnequipInit(PROC_HANG_READY, NULL); } else if (mProcID == PROC_PREACTION_UNEQUIP) { setFrontWallType(); @@ -809,9 +789,8 @@ int daAlink_c::procHangReadyInit() { mProcVar2.field_0x300c = field_0x306e + 0x8000; field_0x3198 = field_0x2f91; - f32 tmp_0 = 0.0f; - mNormalSpeed = tmp_0; - speed.y = tmp_0; + mNormalSpeed = 0.0f; + speed.y = 0.0f; return 1; } @@ -851,9 +830,8 @@ int daAlink_c::procHangLeverDownInit() { mProcVar2.field_0x300c = field_0x27f4->shape_angle.y + 0x8000; field_0x3198 = ANM_CLIMB_JUMP; - f32 tmp_0 = 0.0f; - speed.y = tmp_0; - mNormalSpeed = tmp_0; + speed.y = 0.0f; + mNormalSpeed = 0.0f; return 1; } @@ -892,18 +870,17 @@ int daAlink_c::procHangLeverDown() { } else if (checkAnmEnd(frameCtrl)) { checkNextAction(0); } else if (frameCtrl->getFrame() >= 33.0f) { - field_0x2f92 = 4; + mLeftHandIndex = 4; } else if (frameCtrl->getFrame() >= 31.0f) { - field_0x2f93 = 10; + mRightHandIndex = 10; } return 1; } - -void daAlink_c::changeDragonActor(fopAc_ac_c* param_0) { +void daAlink_c::changeDragonActor(fopAc_ac_c* i_actor) { if (field_0x280c.getActor() != NULL && fopAcM_GetName(field_0x280c.getActor()) == PROC_B_DR) { - field_0x280c.setData(param_0); + field_0x280c.setData(i_actor); } } @@ -933,7 +910,6 @@ int daAlink_c::setDragonHangPos() { return 1; } - int daAlink_c::setOctaIealHangPos() { b_ob_class* boss = (b_ob_class*)field_0x280c.getActor(); if (boss == NULL) { @@ -955,10 +931,10 @@ int daAlink_c::setBossBodyHangPos() { } } -int daAlink_c::procBossBodyHangInit(fopAc_ac_c* param_0) { +int daAlink_c::procBossBodyHangInit(fopAc_ac_c* i_actor) { commonProcInit(PROC_BOSS_BODY_HANG); - if (fopAcM_GetName(param_0) == PROC_B_DR) { + if (fopAcM_GetName(i_actor) == PROC_B_DR) { field_0x32cc = 1; setSingleAnimeBase(ANM_DRAGON_HANG); setJumpMode(); @@ -970,9 +946,8 @@ int daAlink_c::procBossBodyHangInit(fopAc_ac_c* param_0) { field_0x3198 = 0x169; deleteEquipItem(TRUE, FALSE); - f32 tmp_0 = 0.0f; - mNormalSpeed = tmp_0; - setSpecialGravity(tmp_0, maxFallSpeed, 0); + mNormalSpeed = 0.0f; + setSpecialGravity(0.0f, maxFallSpeed, 0); speed.y = 0.0f; mProcVar2.field_0x300c = 0; @@ -982,10 +957,10 @@ int daAlink_c::procBossBodyHangInit(fopAc_ac_c* param_0) { mProcVar5.field_0x3012 = 0; field_0x3080 = 0; - field_0x280c.setData(param_0); + field_0x280c.setData(i_actor); setBossBodyHangPos(); - onEndResetFlg1(ERFLG1_GANON_FINISH); + onEndResetFlg1(ERFLG1_SHIELD_BACKBONE); return 1; } @@ -1002,7 +977,7 @@ int daAlink_c::procBossBodyHang() { return procBackJumpInit(0); } else { field_0x3102 = shape_angle.y; - return procCoLargeDamageInit(-6, 1, 0, 0, NULL, 0); + return procCoLargeDamageInit(-6, TRUE, 0, 0, NULL, 0); } } else { field_0x3408 = 0.0f; @@ -1013,7 +988,7 @@ int daAlink_c::procBossBodyHang() { } } else { if (boss->checkDownFlg() && mProcVar2.field_0x300c != 0) { - setDoStatusEmphasys(0x30); + setDoStatusEmphasys(BUTTON_STATUS_FINISH); } daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; @@ -1053,13 +1028,13 @@ int daAlink_c::procBossBodyHang() { } if (mProcVar2.field_0x300c != 0 && - ((dComIfGp_getDoStatus() == 0x30 && doTrigger()) || swordSwingTrigger())) + ((dComIfGp_getDoStatus() == BUTTON_STATUS_FINISH && doTrigger()) || swordSwingTrigger())) { if (mEquipItem != 0x103) { setSwordModel(); } - if (dComIfGp_getDoStatus() == 0x30 && doTrigger()) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_FINISH && doTrigger()) { if (field_0x32cc != 0) { setSingleAnimeBaseMorf(ANM_DRAGON_CUT_FINAL, 3.0f); } else { @@ -1120,19 +1095,19 @@ int daAlink_c::procBossBodyHang() { dComIfGp_setHitMark(mProcVar1.field_0x300a, NULL, &mLeftHandPos, &sp38, NULL, 0); } else if (field_0x3198 == 0x16D) { if (frameCtrl->getFrame() >= 59.0f) { - field_0x2f93 = 9; + mRightHandIndex = 9; } else if (frameCtrl->getFrame() >= 51.0f) { - field_0x2f93 = 10; + mRightHandIndex = 10; } else if (frameCtrl->getFrame() >= 3.0f) { - field_0x2f93 = 5; + mRightHandIndex = 5; } } else if (field_0x3198 == 0x16E) { if (frameCtrl->getFrame() >= 148.0f) { - field_0x2f93 = 9; + mRightHandIndex = 9; } else if (frameCtrl->getFrame() >= 136.0f) { - field_0x2f93 = 10; + mRightHandIndex = 10; } else if (frameCtrl->getFrame() >= 32.0f) { - field_0x2f93 = 5; + mRightHandIndex = 5; } if (frameCtrl->getFrame() >= 117.0f) { @@ -1146,11 +1121,10 @@ int daAlink_c::procBossBodyHang() { } } - onEndResetFlg1(ERFLG1_GANON_FINISH); + onEndResetFlg1(ERFLG1_SHIELD_BACKBONE); return 1; } - int daAlink_c::getLadderUnitCount() const { return (current.pos.y - field_0x34ec.y) * 0.026666667f; } @@ -1174,7 +1148,6 @@ int daAlink_c::setLadderInit() { return procLadderUpStartInit(); } - void daAlink_c::setLadderPosInit() { cXyz sp20; cXyz sp2C; @@ -1221,7 +1194,6 @@ void daAlink_c::setLadderPosInit() { } } - void daAlink_c::setLadderPos(int param_0) { f32 var_f31 = cM_ssin(field_0x306e); f32 var_f30 = cM_scos(field_0x306e); @@ -1233,7 +1205,6 @@ void daAlink_c::setLadderPos(int param_0) { field_0x34ec.z + var_f30 * 38.0f); } - f32 daAlink_c::getLadderMoveAnmSpeed() { return getAnmSpeedStickRate(mpHIO->mLadder.m.mMoveMinASpeed, mpHIO->mLadder.m.mMoveMaxSpeed); @@ -1249,7 +1220,8 @@ int daAlink_c::changeLadderMoveProc(int param_0) { } if (checkInputOnR()) { - int temp_r3 = abs((s16)(field_0x2fe2 - shape_angle.y)); + s16 var_r26 = mMoveAngle - shape_angle.y; + int temp_r3 = abs(var_r26); if (temp_r3 > 0x3000 && temp_r3 < 0x5000) { return 0; } @@ -1261,7 +1233,7 @@ int daAlink_c::changeLadderMoveProc(int param_0) { BOOL var_r30; if (temp_r3 < 0x4000) { - sp2C.y = current.pos.y + field_0x598 + 37.5f; + sp2C.y = current.pos.y + mHeight + 37.5f; var_r30 = false; } else { sp2C.y = (current.pos.y - 37.5f) - 15.0f; @@ -1290,7 +1262,6 @@ int daAlink_c::changeLadderMoveProc(int param_0) { return 0; } - int daAlink_c::setMoveBGLadderCorrect() { if (dComIfG_Bgsp().ChkPolySafe(mPolyInfo1) && dComIfG_Bgsp().ChkMoveBG(mPolyInfo1)) { dComIfG_Bgsp().MoveBgTransPos(mPolyInfo1, true, ¤t.pos, ¤t.angle, &shape_angle); @@ -1309,9 +1280,8 @@ int daAlink_c::setMoveBGLadderCorrect() { return 0; } - int daAlink_c::checkLadderFall() { - setDoStatus(0x33); + setDoStatus(BUTTON_STATUS_DROP_DOWN); if (doTrigger()) { field_0x2f99 = 0; @@ -1357,34 +1327,39 @@ int daAlink_c::procLadderUpStartInit() { return 1; } - int daAlink_c::procLadderUpStart() { if (setMoveBGLadderCorrect()) { return 1; } + daPy_frameCtrl_c* framectrl = mUnderFrameCtrl; field_0x2f99 = 6; - if (checkAnmEnd(mUnderFrameCtrl) && !checkLadderFall()) { + if (checkAnmEnd(framectrl) && !checkLadderFall()) { changeLadderMoveProc(1); } return 1; } -int daAlink_c::procLadderUpEndInit(int param_0) { +int daAlink_c::procLadderUpEndInit(BOOL param_0) { commonProcInit(PROC_LADDER_UP_END); - daAlink_ANM anm_id = param_0 != 0 ? ANM_LADDER_UP_END_LEFT : ANM_LADDER_UP_END_RIGHT; + daAlink_ANM anm_id; + if (param_0) { + anm_id = ANM_LADDER_UP_END_LEFT; + } else { + anm_id = ANM_LADDER_UP_END_RIGHT; + } + setSingleAnimeBaseSpeed(anm_id, mpHIO->mLadder.m.mClimbUpEndASpeed, mpHIO->mLadder.m.mClimbUpEndInterp); field_0x2f99 = 14; setSpecialGravity(0.0f, maxFallSpeed, 0); - f32 tmp_0 = 0.0f; - speed.y = tmp_0; - mNormalSpeed = tmp_0; - speedF = tmp_0; + speed.y = 0.0f; + mNormalSpeed = 0.0f; + speedF = 0.0f; field_0x30a0 = -0x0800; field_0x33f4 = -1.0f; @@ -1462,7 +1437,6 @@ int daAlink_c::procLadderDownStartInit() { return 1; } - int daAlink_c::procLadderDownStart() { if (setMoveBGLadderCorrect()) { return 1; @@ -1483,10 +1457,16 @@ int daAlink_c::procLadderDownStart() { return 1; } -int daAlink_c::procLadderDownEndInit(int param_0) { +int daAlink_c::procLadderDownEndInit(BOOL param_0) { commonProcInit(PROC_LADDER_DOWN_END); - daAlink_ANM anm_id = param_0 != 0 ? ANM_LADDER_DOWN_END_LEFT : ANM_LADDER_DOWN_END_RIGHT; + daAlink_ANM anm_id; + if (param_0) { + anm_id = ANM_LADDER_DOWN_END_LEFT; + } else { + anm_id = ANM_LADDER_DOWN_END_RIGHT; + } + setSingleAnimeBaseSpeed(anm_id, mpHIO->mLadder.m.mClimbDownEndASpeed, mpHIO->mLadder.m.mClimbDownEndInterp); field_0x2f99 = 14; @@ -1523,8 +1503,14 @@ int daAlink_c::procLadderDownEnd() { return 1; } -int daAlink_c::procLadderMoveInit(int param_0, int param_1, cXyz* param_2) { - BOOL var_r28 = checkModeFlg(2) ? true : false; +int daAlink_c::procLadderMoveInit(BOOL param_0, BOOL param_1, cXyz* param_2) { + BOOL var_r28; + if (checkModeFlg(2)) { + var_r28 = TRUE; + } else { + var_r28 = FALSE; + } + f32 anm_speed = getLadderMoveAnmSpeed(); commonProcInit(PROC_LADDER_MOVE); @@ -1588,7 +1574,6 @@ int daAlink_c::procLadderMoveInit(int param_0, int param_1, cXyz* param_2) { return 1; } - int daAlink_c::procLadderMove() { if (setMoveBGLadderCorrect()) { return 1; @@ -1623,10 +1608,10 @@ f32 daAlink_c::getClimbMoveSideAnmSpeed() { mpHIO->mLadder.m.mWallHorizontalMaxAnmSpeed); } -BOOL daAlink_c::checkClimbCode(cBgS_PolyInfo& i_poly) { - dBgW_Base* bgw_p = dComIfG_Bgsp().GetBgWBasePointer(i_poly); +BOOL daAlink_c::checkClimbCode(cBgS_PolyInfo& i_polyinfo) { + dBgW_Base* bgw_p = dComIfG_Bgsp().GetBgWBasePointer(i_polyinfo); - return ((dComIfG_Bgsp().GetWallCode(i_poly) == 1 && fabsf(dBgS_GetNY(i_poly)) <= 0.05f) && + return ((dComIfG_Bgsp().GetWallCode(i_polyinfo) == 1 && fabsf(dBgS_GetNY(i_polyinfo)) <= 0.05f) && bgw_p != NULL) && bgw_p->ChkPushPullOk(); } @@ -1657,7 +1642,7 @@ void daAlink_c::setClimbShapeOffset() { sp6C.z = current.pos.z; if (checkModeFlg(0x10000)) { - sp6C.y = current.pos.y + field_0x598 * 0.5f; + sp6C.y = current.pos.y + mHeight * 0.5f; } else { sp6C.y = current.pos.y - 10.0f; } @@ -1693,9 +1678,8 @@ void daAlink_c::setClimbShapeOffset() { } } - int daAlink_c::getClimbDirectionFromAngle() { - s16 angle = field_0x2fe2 - shape_angle.y; + s16 angle = mMoveAngle - shape_angle.y; if (abs(angle) > 0x7000) { return DIR_BACKWARD; } @@ -1717,7 +1701,7 @@ void daAlink_c::changeClimbMoveProc(int param_0) { if (checkInputOnR()) { field_0x2f98 = getClimbDirectionFromAngle(); if (field_0x2f98 == DIR_FORWARD || field_0x2f98 == DIR_BACKWARD) { - cXyz sp44(current.pos.x - cM_ssin(shape_angle.y) * 15.0f, current.pos.y + field_0x598, + cXyz sp44(current.pos.x - cM_ssin(shape_angle.y) * 15.0f, current.pos.y + mHeight, current.pos.z - cM_scos(shape_angle.y) * 15.0f); mLinkRoofChk.SetPos(sp44); @@ -1739,7 +1723,6 @@ void daAlink_c::changeClimbMoveProc(int param_0) { field_0x308c = temp_r29; } - BOOL daAlink_c::checkClimbMoveUpDownProc(int i_direction) { f32 var_f31 = cM_ssin(shape_angle.y); f32 var_f30 = cM_scos(shape_angle.y); @@ -1748,7 +1731,7 @@ BOOL daAlink_c::checkClimbMoveUpDownProc(int i_direction) { return true; } - cXyz sp38(current.pos.x - var_f31 * 30.0f, current.pos.y + field_0x598 + 30.0f + 5.0f, + cXyz sp38(current.pos.x - var_f31 * 30.0f, current.pos.y + mHeight + 30.0f + 5.0f, current.pos.z - var_f30 * 30.0f); cXyz sp44(sp38.x + var_f31 * 80.0f, sp38.y, sp38.z + var_f30 * 80.0f); @@ -1768,38 +1751,36 @@ BOOL daAlink_c::checkClimbMoveUpDownProc(int i_direction) { return true; } - BOOL daAlink_c::checkClimbMoveSideProc(int i_direction) { f32 var_f31 = cM_ssin(shape_angle.y); f32 var_f30 = cM_scos(shape_angle.y); - cXyz sp40(current.pos.x - var_f31 * 30.0f, current.pos.y + field_0x598 * 0.5f, + cXyz line_start(current.pos.x - var_f31 * 30.0f, current.pos.y + mHeight * 0.5f, current.pos.z - var_f30 * 30.0f); if (i_direction == DIR_LEFT) { - sp40.x += var_f30 * 40.0f; - sp40.z -= var_f31 * 40.0f; + line_start.x += var_f30 * 40.0f; + line_start.z -= var_f31 * 40.0f; } else { - sp40.x -= var_f30 * 40.0f; - sp40.z += var_f31 * 40.0f; + line_start.x -= var_f30 * 40.0f; + line_start.z += var_f31 * 40.0f; } - cXyz sp4C(sp40.x + var_f31 * 230.0f, sp40.y, sp40.z + var_f30 * 230.0f); + cXyz line_end(line_start.x + var_f31 * 230.0f, line_start.y, line_start.z + var_f30 * 230.0f); - if (!commonLineCheck(&sp40, &sp4C) || !checkClimbCode(mLinkLinChk)) { + if (!commonLineCheck(&line_start, &line_end) || !checkClimbCode(mLinkLinChk)) { return false; } - cXyz sp58(current.pos); + cXyz prev_pos(current.pos); if (checkBgClimbMove(i_direction)) { - current.pos = sp58; + current.pos = prev_pos; return false; } return true; } - int daAlink_c::setMoveBGClimbCorrect() { if (dComIfG_Bgsp().ChkPolySafe(mPolyInfo1) && dComIfG_Bgsp().ChkMoveBG(mPolyInfo1)) { dComIfG_Bgsp().MoveBgTransPos(mPolyInfo1, true, ¤t.pos, ¤t.angle, &shape_angle); @@ -1816,7 +1797,7 @@ int daAlink_c::setMoveBGClimbCorrect() { f32 var_f31 = cM_ssin(shape_angle.y); f32 var_f30 = cM_scos(shape_angle.y); - cXyz sp50(current.pos.x - var_f31 * 30.0f, current.pos.y + field_0x598 * 0.5f, + cXyz sp50(current.pos.x - var_f31 * 30.0f, current.pos.y + mHeight * 0.5f, current.pos.z - var_f30 * 30.0f); cXyz sp5C(current.pos.x + var_f31 * 200.0f, sp50.y, current.pos.z + var_f30 * 200.0f); cXyz sp68(current.pos.x - var_f31 * 30.0f, current.pos.y, current.pos.z - var_f30 * 30.0f); @@ -1824,13 +1805,15 @@ int daAlink_c::setMoveBGClimbCorrect() { mLinkGndChk.SetPos(&sp68); if (mProcID == PROC_CLIMB_MOVE_UPDOWN) { - sp5C.y = sp50.y = current.pos.y + field_0x598 * 0.9f; + sp50.y = current.pos.y + mHeight * 0.9f; + sp5C.y = sp50.y; if (!commonLineCheck(&sp50, &sp5C) || !checkClimbCode(mLinkLinChk)) { return procClimbWaitInit(1, 0); } - sp5C.y = sp50.y = current.pos.y + field_0x598 * 0.5f; + sp50.y = current.pos.y + mHeight * 0.5f; + sp5C.y = sp50.y; } if (!commonLineCheck(&sp50, &sp5C) || !checkClimbCode(mLinkLinChk) || @@ -1838,29 +1821,29 @@ int daAlink_c::setMoveBGClimbCorrect() { current.pos.y - 15.0f < dComIfG_Bgsp().GroundCross(&mLinkGndChk))) { return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation); + } else { + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); + + s16 temp_r29 = tripla.mNormal.atan2sX_Z(); + if (cLib_distanceAngleS(temp_r29, shape_angle.y) <= 0x549F) { + return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation); + } + + s16 temp_r28 = shape_angle.y; + shape_angle.y = temp_r29 + 0x8000; + + current.pos.x = mLinkLinChk.GetCross().x; + current.pos.z = mLinkLinChk.GetCross().z; + current.angle.y += (s16)(shape_angle.y - temp_r28); + field_0x308c += (s16)(temp_r28 - shape_angle.y); + + mPolyInfo1.SetPolyInfo(mLinkLinChk); } - cM3dGPla sp44; - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp44); - - s16 temp_r29 = sp44.mNormal.atan2sX_Z(); - if (cLib_distanceAngleS(temp_r29, shape_angle.y) <= 0x549F) { - return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation); - } - - s16 temp_r28 = shape_angle.y; - shape_angle.y = temp_r29 + 0x8000; - - current.pos.x = mLinkLinChk.GetCross().x; - current.pos.z = mLinkLinChk.GetCross().z; - current.angle.y += (s16)(shape_angle.y - temp_r28); - field_0x308c += (s16)(temp_r28 - shape_angle.y); - - mPolyInfo1.SetPolyInfo(mLinkLinChk); return 0; } - int daAlink_c::checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos) { if (commonLineCheck(i_startPos, i_endPos)) { cM3dGPla tri_plane; @@ -1877,22 +1860,19 @@ int daAlink_c::checkBgCorrectClimbMove(cXyz* i_startPos, cXyz* i_endPos) { return 0; } - BOOL daAlink_c::checkClimbRoof(f32 param_0) { cXyz sp44(current.pos.x - cM_ssin(shape_angle.y) * 30.0f, param_0 - 30.0f, current.pos.z - cM_scos(shape_angle.y) * 30.0f); mLinkRoofChk.SetPos(sp44); - if (dComIfG_Bgsp().RoofChk(&mLinkRoofChk) < param_0 + 30.0f && - dComIfG_Bgsp().GetMonkeyBarsCode(mLinkRoofChk)) - { + f32 var_f31 = dComIfG_Bgsp().RoofChk(&mLinkRoofChk); + if (var_f31 < param_0 + 30.0f && dComIfG_Bgsp().GetMonkeyBarsCode(mLinkRoofChk)) { return true; } return false; } - int daAlink_c::checkClimbGround(cXyz* param_0, f32 param_1) { f32 var_f30 = cM_ssin(shape_angle.y); f32 var_f29 = cM_scos(shape_angle.y); @@ -1918,7 +1898,6 @@ int daAlink_c::checkClimbGround(cXyz* param_0, f32 param_1) { return 0; } - BOOL daAlink_c::checkBgClimbMove(int i_direction) { f32 var_r28 = cM_ssin(shape_angle.y); f32 var_r27 = cM_scos(shape_angle.y); @@ -1945,7 +1924,7 @@ BOOL daAlink_c::checkBgClimbMove(int i_direction) { } } - sp98.y += field_0x598; + sp98.y += mHeight; if (i_direction != DIR_RIGHT) { sp8C.set(sp98.x + var_f31, sp98.y, sp98.z + var_f30); @@ -1969,7 +1948,7 @@ BOOL daAlink_c::checkBgClimbMove(int i_direction) { var_f25 + (current.pos.z + var_f30)); mLinkRoofChk.SetPos(sp8C); - f32 var_f29 = dComIfG_Bgsp().RoofChk(&mLinkRoofChk) - field_0x598; + f32 var_f29 = dComIfG_Bgsp().RoofChk(&mLinkRoofChk) - mHeight; if (var_f29 < current.pos.y) { current.pos.y = var_f29; } @@ -1978,7 +1957,7 @@ BOOL daAlink_c::checkBgClimbMove(int i_direction) { var_f25 + (current.pos.z - var_f30)); mLinkRoofChk.SetPos(sp8C); - var_f29 = dComIfG_Bgsp().RoofChk(&mLinkRoofChk) - field_0x598; + var_f29 = dComIfG_Bgsp().RoofChk(&mLinkRoofChk) - mHeight; if (var_f29 < current.pos.y) { current.pos.y = var_f29; } @@ -1992,7 +1971,7 @@ BOOL daAlink_c::checkBgClimbMove(int i_direction) { if (checkClimbGround(&sp8C, sp98.y)) { current.pos = sp8C; - onResetFlg0(RFLG0_UNK_40000); + onResetFlg0(RFLG0_CLIMB_END_HANG); return procHangClimbInit(mpHIO->mWallHang.mWallCatch.m.mClimbAnm.mStartFrame); } else { current.pos.y -= 30.0f; @@ -2003,15 +1982,14 @@ BOOL daAlink_c::checkBgClimbMove(int i_direction) { return false; } - int daAlink_c::setClimbStartNotGround() { if (mProcID == PROC_HOOKSHOT_FLY) { current.pos.y = mHookshotTopPos.y; mLinkGndChk.SetPos(¤t.pos); f32 gnd_y = dComIfG_Bgsp().GroundCross(&mLinkGndChk); - if (gnd_y < current.pos.y - field_0x598) { - current.pos.y -= field_0x598; + if (gnd_y < current.pos.y - mHeight) { + current.pos.y -= mHeight; } else { current.pos.y = gnd_y + 5.0f; return 0; @@ -2019,7 +1997,7 @@ int daAlink_c::setClimbStartNotGround() { f32 var_f29 = cM_ssin(field_0x306e); f32 var_f28 = cM_scos(field_0x306e); - f32 temp_f1 = (field_0x598 + 5.0f) - 60.0f; + f32 temp_f1 = (mHeight + 5.0f) - 60.0f; cXyz sp6C(mHookshotTopPos.x + var_f29 * 30.0f, current.pos.y + 60.0f, mHookshotTopPos.z + var_f28 * 30.0f); cXyz sp78(mHookshotTopPos.x - var_f29 * 200.0f, sp6C.y, @@ -2032,7 +2010,8 @@ int daAlink_c::setClimbStartNotGround() { } var_f31 += 15.0f; - sp78.y = sp6C.y += 15.0f; + sp6C.y += 15.0f; + sp78.y = sp6C.y; } current.pos.y += var_f31; @@ -2044,7 +2023,6 @@ int daAlink_c::setClimbStartNotGround() { return 1; } - int daAlink_c::procClimbUpStartInit(int param_0) { setFrontWallType(); if (field_0x2f91 != 3) { @@ -2101,7 +2079,6 @@ int daAlink_c::procClimbUpStartInit(int param_0) { return 1; } - int daAlink_c::procClimbUpStart() { if (setMoveBGClimbCorrect()) { return 1; @@ -2126,7 +2103,6 @@ int daAlink_c::procClimbUpStart() { return 1; } - int daAlink_c::procClimbDownStartInit(s16 param_0) { onNoResetFlg3(FLG3_UNK_400000); commonProcInit(PROC_CLIMB_DOWN_START); @@ -2162,7 +2138,6 @@ int daAlink_c::procClimbDownStartInit(s16 param_0) { return 1; } - int daAlink_c::procClimbDownStart() { if (setMoveBGClimbCorrect()) { return 1; @@ -2177,7 +2152,7 @@ int daAlink_c::procClimbDownStart() { mProcVar3.field_0x300e = 1; } - if (field_0x33a8 < 0.2f) { + if (mStickValue < 0.2f) { mProcVar0.field_0x3008 = 0; } @@ -2194,7 +2169,6 @@ int daAlink_c::procClimbDownStart() { return 1; } - int daAlink_c::procClimbMoveUpDownInit(int param_0) { commonProcInit(PROC_CLIMB_MOVE_UPDOWN); current.angle.y = shape_angle.y; @@ -2252,7 +2226,6 @@ int daAlink_c::procClimbMoveUpDownInit(int param_0) { return 1; } - int daAlink_c::procClimbMoveUpDown() { if (setMoveBGClimbCorrect()) { return 1; @@ -2294,7 +2267,6 @@ int daAlink_c::procClimbMoveUpDown() { return 1; } - int daAlink_c::procClimbMoveSideInit() { f32 anm_speed = getClimbMoveSideAnmSpeed(); commonProcInit(PROC_CLIMB_MOVE_SIDE); @@ -2337,7 +2309,6 @@ int daAlink_c::procClimbMoveSideInit() { return 1; } - int daAlink_c::procClimbMoveSide() { f32 var_f30 = current.pos.y; @@ -2383,7 +2354,6 @@ int daAlink_c::procClimbMoveSide() { return 1; } - int daAlink_c::procClimbWaitInit(int param_0, int param_1) { if (!commonProcInitNotSameProc(PROC_CLIMB_WAIT)) { return 0; @@ -2425,7 +2395,6 @@ int daAlink_c::procClimbWaitInit(int param_0, int param_1) { return 1; } - int daAlink_c::procClimbWait() { if (setMoveBGClimbCorrect()) { return 1; @@ -2465,16 +2434,14 @@ int daAlink_c::procClimbWait() { return 1; } - int daAlink_c::procClimbToRoofInit() { commonProcInit(PROC_CLIMB_TO_ROOF); setSingleAnimeBase(ANM_ROOF_UP); setSpecialGravity(0.0f, maxFallSpeed, 0); - f32 tmp_0 = 0.0f; - speed.y = tmp_0; - mNormalSpeed = tmp_0; - speedF = tmp_0; + speed.y = 0.0f; + mNormalSpeed = 0.0f; + speedF = 0.0f; field_0x2f99 = 10; dComIfGp_setPlayerStatus0(0, 8); return 1; @@ -2492,7 +2459,7 @@ int daAlink_c::procClimbToRoof() { if (checkAnmEnd(frameCtrl)) { shape_angle.y += 0x8000; current.angle.y = shape_angle.y; - field_0x2fe6 = shape_angle.y; + mPrevAngleY = shape_angle.y; setOldRootQuaternion(0, 0x8000, 0); field_0x2060->getOldFrameTransInfo(0)->mTranslate.z *= -1.0f; @@ -2511,7 +2478,6 @@ int daAlink_c::procClimbToRoof() { return 1; } - f32 daAlink_c::getRoofHangFMoveAnmSpeed() const { return getAnmSpeedStickRate(mpHIO->mRoofHang.m.mVertMoveMinASpeed, mpHIO->mRoofHang.m.mVertMoveMaxASpeed); @@ -2523,10 +2489,13 @@ f32 daAlink_c::getRoofHangSMoveAnmSpeed() const { } void daAlink_c::setRoofHangHandOnSE(cBgS_PolyInfo* unused) { - daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + UNUSED(unused); + + daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; + if (frame_ctrl->checkPass(field_0x3478)) { + return; + } else if (frame_ctrl->checkPass(field_0x347c)) { - if (!frame_ctrl->checkPass(field_0x3478)) { - frame_ctrl->checkPass(field_0x347c); } } @@ -2548,7 +2517,8 @@ int daAlink_c::checkRoofHangMovePos() { current.pos.z + cM_scos(angle) * 60.0f); mLinkRoofChk.SetPos(sp38); - if (dComIfG_Bgsp().RoofChk(&mLinkRoofChk) < sp38.y + 50.0f) { + f32 var_f31 = dComIfG_Bgsp().RoofChk(&mLinkRoofChk); + if (var_f31 < sp38.y + 50.0f) { if (dComIfG_Bgsp().GetMonkeyBarsCode(mLinkRoofChk)) { return true; } @@ -2557,13 +2527,12 @@ int daAlink_c::checkRoofHangMovePos() { return false; } - int daAlink_c::commonRoofHangProc() { if (dComIfG_Bgsp().ChkPolySafe(mPolyInfo2) && dComIfG_Bgsp().ChkMoveBG(mPolyInfo2)) { dComIfG_Bgsp().MoveBgTransPos(mPolyInfo2, true, ¤t.pos, ¤t.angle, &shape_angle); } - setDoStatus(0x33); + setDoStatus(BUTTON_STATUS_DROP_DOWN); if (doTrigger()) { return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation); @@ -2585,13 +2554,12 @@ int daAlink_c::commonRoofHangProc() { return 0; } - int daAlink_c::checkNextActionRoofHang() { if (checkInputOnR()) { field_0x2f98 = getDirectionFromShapeAngle(); if (checkAttentionLock()) { - if (field_0x2f98 == 2 || field_0x2f98 == 3) { + if (field_0x2f98 == DIR_LEFT || field_0x2f98 == DIR_RIGHT) { if (checkRoofHangMovePos()) { procRoofHangSideMoveInit(); } else { @@ -2601,11 +2569,11 @@ int daAlink_c::checkNextActionRoofHang() { return 1; } } else { - if (field_0x2f98 == 1) { + if (field_0x2f98 == DIR_BACKWARD) { return procRoofHangTurnInit(); } - field_0x2f98 = 0; + field_0x2f98 = DIR_FORWARD; } if (checkRoofHangMovePos()) { @@ -2620,9 +2588,10 @@ int daAlink_c::checkNextActionRoofHang() { return 1; } - int daAlink_c::procRoofHangStartInit(cBgS_PolyInfo const& param_0, cXyz const& param_1, int param_2) { + bool prev_is_climbToRoof = mProcID == PROC_CLIMB_TO_ROOF; + commonProcInit(PROC_ROOF_HANG_START); setSingleAnimeParam(ANM_ROOF_HANG, &mpHIO->mRoofHang.m.mRoofHangAnm); mPolyInfo2.SetPolyInfo(param_0); @@ -2634,9 +2603,8 @@ int daAlink_c::procRoofHangStartInit(cBgS_PolyInfo const& param_0, cXyz const& p deleteEquipItem(TRUE, FALSE); setSpecialGravity(0.0f, maxFallSpeed, 0); - f32 tmp_0 = 0.0f; - mNormalSpeed = tmp_0; - speed.y = tmp_0; + mNormalSpeed = 0.0f; + speed.y = 0.0f; field_0x2f99 = 0x50; mProcVar0.field_0x3008 = param_2; return 1; @@ -2647,7 +2615,7 @@ int daAlink_c::procRoofHangStart() { return 1; } - if (field_0x33a8 < 0.2f) { + if (mStickValue < 0.2f) { mProcVar0.field_0x3008 = 0; } @@ -2700,7 +2668,7 @@ int daAlink_c::procRoofHangWait() { return 1; } - if (field_0x33a8 < 0.2f) { + if (mStickValue < 0.2f) { mProcVar0.field_0x3008 = 0; } @@ -2746,7 +2714,6 @@ int daAlink_c::procRoofHangFrontMoveInit() { return 1; } - int daAlink_c::procRoofHangFrontMove() { if (commonRoofHangProc()) { return 1; @@ -2758,7 +2725,7 @@ int daAlink_c::procRoofHangFrontMove() { checkNextActionRoofHang(); } else { if (!checkAttentionLock()) { - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mRoofHang.m.mTurnAngleRate, + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, mpHIO->mRoofHang.m.mTurnAngleRate, mpHIO->mRoofHang.m.mMaxTurnAngle, mpHIO->mRoofHang.m.mMinTurnAngle); @@ -2798,12 +2765,13 @@ int daAlink_c::procRoofHangFrontMove() { sp7C.z + temp_f29 * cM_scos(shape_angle.y)); if (commonLineCheck(&sp7C, &sp88) && checkClimbCode(mLinkLinChk)) { - cM3dGPla sp70; - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp70); + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); - if (cLib_distanceAngleS(sp70.mNormal.atan2sX_Z(), shape_angle.y) > 0x6000) { - current.pos.x = sp70.mNormal.x * 15.0f + mLinkLinChk.GetCross().x; - current.pos.z = sp70.mNormal.z * 15.0f + mLinkLinChk.GetCross().z; + s16 var_r28 = tripla.mNormal.atan2sX_Z(); + if (cLib_distanceAngleS(var_r28, shape_angle.y) > 0x6000) { + current.pos.x = tripla.mNormal.x * 15.0f + mLinkLinChk.GetCross().x; + current.pos.z = tripla.mNormal.z * 15.0f + mLinkLinChk.GetCross().z; return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation); } } @@ -2819,7 +2787,6 @@ int daAlink_c::procRoofHangFrontMove() { return 1; } - int daAlink_c::procRoofHangSideMoveInit() { commonProcInit(PROC_ROOF_HANG_SIDE_MOVE); @@ -2836,9 +2803,8 @@ int daAlink_c::procRoofHangSideMoveInit() { mpHIO->mRoofHang.m.mHorizMoveInterp); setSpecialGravity(0.0f, maxFallSpeed, 0); - f32 tmp_0 = 0.0f; - mNormalSpeed = tmp_0; - speed.y = tmp_0; + mNormalSpeed = 0.0f; + speed.y = 0.0f; field_0x3478 = 15.0f; field_0x347c = 28.0f; @@ -2873,19 +2839,19 @@ int daAlink_c::procRoofHangTurnInit() { commonProcInit(PROC_ROOF_HANG_TURN); f32 anm_speed; - if ((s16)(field_0x2fe2 - shape_angle.y) < 0) { + if ((s16)(mMoveAngle - shape_angle.y) < 0) { anm_speed = -mpHIO->mRoofHang.m.mInvertASpeed; mProcVar0.field_0x3008 = 1; shape_angle.y += 0x8000; setOldRootQuaternion(0, -0x8000, 0); field_0x2060->getOldFrameTransInfo(0)->mTranslate.z = -8.899365425109863f; - mProcVar2.field_0x300c = field_0x2fe2; + mProcVar2.field_0x300c = mMoveAngle; field_0x3478 = 0.0f; field_0x347c = 10.0f; } else { anm_speed = mpHIO->mRoofHang.m.mInvertASpeed; mProcVar0.field_0x3008 = 0; - mProcVar2.field_0x300c = field_0x2fe2 + 0x8000; + mProcVar2.field_0x300c = mMoveAngle + 0x8000; field_0x3478 = 10.0f; field_0x347c = 18.5f; } @@ -2894,16 +2860,15 @@ int daAlink_c::procRoofHangTurnInit() { setSingleAnimeBaseSpeed(ANM_ROOF_HANG_TURN, anm_speed, mpHIO->mRoofHang.m.mInvertInterp); if (mProcVar0.field_0x3008 != 0) { - setFaceBasicTexture(FTANM_UNK_4); + setFaceBasicTexture(FTANM_MABA01_L); } else { - setFaceBasicTexture(FTANM_UNK_3); + setFaceBasicTexture(FTANM_MABA03); } field_0x2f98 = 4; setSpecialGravity(0.0f, maxFallSpeed, 0); - f32 tmp_0 = 0.0f; - mNormalSpeed = tmp_0; - speed.y = tmp_0; + mNormalSpeed = 0.0f; + speed.y = 0.0f; dComIfGp_setPlayerStatus1(0, 0x100000); return 1; } @@ -2942,23 +2907,23 @@ void daAlink_c::setRoofHangSwitch() { swhang_p->setHangPlayer(); } -int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* param_0) { +int daAlink_c::procRoofSwitchHangInit(fopAc_ac_c* i_actor) { commonProcInit(PROC_ROOF_SWITCH_HANG); deleteEquipItem(TRUE, FALSE); setSingleAnimeParam(ANM_ROOF_HANG, &mpHIO->mRoofHang.m.mRoofHangAnm); setSpecialGravity(0.0f, maxFallSpeed, 0); - f32 tmp_0 = 0.0f; - speed.y = tmp_0; - mNormalSpeed = tmp_0; + speed.y = 0.0f; + mNormalSpeed = 0.0f; - field_0x280c.setData(param_0); + field_0x280c.setData(i_actor); setRoofHangSwitch(); - if (cLib_distanceAngleS(param_0->shape_angle.y, shape_angle.y) > 0x4000) { - current.angle.y = param_0->shape_angle.y + 0x8000; + daObjSwHang_c* swhang = (daObjSwHang_c*)i_actor; + if (cLib_distanceAngleS(swhang->getAngleY(), shape_angle.y) > 0x4000) { + current.angle.y = swhang->getAngleY() + 0x8000; } else { - current.angle.y = param_0->shape_angle.y; + current.angle.y = swhang->getAngleY(); } setOldRootQuaternion(0, current.angle.y - shape_angle.y, 0); @@ -2980,7 +2945,7 @@ int daAlink_c::procRoofSwitchHang() { mpHIO->mRoofHang.m.mStandbyInterp); mProcVar2.field_0x300c = 1; } else if (mProcVar2.field_0x300c != 0) { - setDoStatus(0x33); + setDoStatus(BUTTON_STATUS_DROP_DOWN); if (doTrigger()) { procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation); diff --git a/src/d/actor/d_a_alink_hook.inc b/src/d/actor/d_a_alink_hook.inc index 00a6cf4ce6..d496148050 100644 --- a/src/d/actor/d_a_alink_hook.inc +++ b/src/d/actor/d_a_alink_hook.inc @@ -18,48 +18,48 @@ enum { }; void daAlink_c::hsChainShape_c::draw() { - daAlink_c* temp_r3 = (daAlink_c*)getUserArea(); - J3DModelData* sp60 = temp_r3->getItemModelData(); - J3DMaterial* sp5C = sp60->getMaterialNodePointer(0); - daAlink_hsChainLight_c* temp_r29 = (daAlink_hsChainLight_c*)&temp_r3->tevStr; + daAlink_c* alink = (daAlink_c*)getUserArea(); + J3DModelData* modelData = alink->getItemModelData(); + J3DMaterial* material = modelData->getMaterialNodePointer(0); + daAlink_hsChainLight_c* chainLight = (daAlink_hsChainLight_c*)&alink->tevStr; - j3dSys.setVtxPos(sp60->getVtxPosArray()); - j3dSys.setVtxNrm(sp60->getVtxNrmArray()); - j3dSys.setVtxCol(sp60->getVtxColorArray(0)); + j3dSys.setVtxPos(modelData->getVtxPosArray()); + j3dSys.setVtxNrm(modelData->getVtxNrmArray()); + j3dSys.setVtxCol(modelData->getVtxColorArray(0)); J3DShape::resetVcdVatCache(); - sp5C->loadSharedDL(); - sp5C->getShape()->loadPreDrawSetting(); + material->loadSharedDL(); + material->getShape()->loadPreDrawSetting(); - GXColor sp58; - sp58.r = temp_r29->AmbCol.r; - sp58.g = temp_r29->AmbCol.g; - sp58.b = temp_r29->AmbCol.b; - sp58.a = temp_r29->AmbCol.a; + GXColor ambColor; + ambColor.r = chainLight->AmbCol.r; + ambColor.g = chainLight->AmbCol.g; + ambColor.b = chainLight->AmbCol.b; + ambColor.a = chainLight->AmbCol.a; - GXSetChanAmbColor(GX_COLOR0A0, sp58); + GXSetChanAmbColor(GX_COLOR0A0, ambColor); GXSetChanMatColor(GX_COLOR0A0, g_whiteColor); dKy_setLight_again(); - dKy_GxFog_tevstr_set(temp_r29); - GXLoadLightObjImm(temp_r29->getLightObj(), GX_LIGHT0); + dKy_GxFog_tevstr_set(chainLight); + GXLoadLightObjImm(chainLight->getLightObj(), GX_LIGHT0); - if (temp_r3->checkIronBallEquip()) { - cXyz* sp54 = temp_r3->getIronBallChainPos(); - csXyz* sp50 = temp_r3->getIronBallChainAngle(); - sp54++; - sp50++; + if (alink->checkIronBallEquip()) { + cXyz* ppos = alink->getIronBallChainPos(); + csXyz* pangle = alink->getIronBallChainAngle(); + ppos++; + pangle++; - for (int i = 0; i < 101; i++, sp54++, sp50++) { + for (int i = 0; i < 101; i++, ppos++, pangle++) { mDoMtx_stack_c::copy(j3dSys.getViewMtx()); - mDoMtx_stack_c::transM(*sp54); - mDoMtx_stack_c::ZXYrotM(*sp50); + mDoMtx_stack_c::transM(*ppos); + mDoMtx_stack_c::ZXYrotM(*pangle); mDoMtx_stack_c::scaleM(2.0f, 2.0f, 2.0f); GXLoadPosMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0); GXLoadNrmMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0); - sp5C->getShape()->simpleDrawCache(); + material->getShape()->simpleDrawCache(); } cXyz spC8; @@ -75,19 +75,19 @@ void daAlink_c::hsChainShape_c::draw() { s16 spE; if (i == 0) { - sp48 = temp_r3->getIronBallChainPos() + temp_r3->getIronBallHandChainNum(); - spC8 = temp_r3->getIronBallChainHandRootPos() - *sp48; + sp48 = alink->getIronBallChainPos() + alink->getIronBallHandChainNum(); + spC8 = alink->getIronBallChainHandRootPos() - *sp48; - sp44 = temp_r3->getIronBallChainAngle() + temp_r3->getIronBallHandChainNum(); + sp44 = alink->getIronBallChainAngle() + alink->getIronBallHandChainNum(); spE = 0x3000; } else { - sp48 = temp_r3->getIronBallChainPos(); - mDoMtx_stack_c::transS(*(temp_r3->getIronBallChainPos() + 1)); - mDoMtx_stack_c::ZXYrotM(*(temp_r3->getIronBallChainAngle() + 1)); + sp48 = alink->getIronBallChainPos(); + mDoMtx_stack_c::transS(*(alink->getIronBallChainPos() + 1)); + mDoMtx_stack_c::ZXYrotM(*(alink->getIronBallChainAngle() + 1)); mDoMtx_stack_c::multVec(&l_ironBallChainVec, &spC8); spC8 -= *sp48; - sp44 = temp_r3->getIronBallChainAngle() + 1; + sp44 = alink->getIronBallChainAngle() + 1; spE = -0x3000; } @@ -98,7 +98,8 @@ void daAlink_c::hsChainShape_c::draw() { spBC = *sp48; if (var_f29 > 5.0f) { - if (spC8.absXZ() >= 1.0f) { + f32 sp40 = spC8.absXZ(); + if (sp40 >= 1.0f) { sp10 = spC8.atan2sX_Z(); } @@ -114,7 +115,7 @@ void daAlink_c::hsChainShape_c::draw() { GXLoadPosMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0); GXLoadNrmMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0); - sp5C->getShape()->simpleDrawCache(); + material->getShape()->simpleDrawCache(); spBC += spB0; var_f29 -= 10.0f; @@ -123,8 +124,8 @@ void daAlink_c::hsChainShape_c::draw() { } } } else { - const cXyz& chainRootPos = temp_r3->getHsChainRootPos(); - const cXyz& chainTopPos = temp_r3->getHsChainTopPos(); + const cXyz& chainRootPos = alink->getHsChainRootPos(); + const cXyz& chainTopPos = alink->getHsChainTopPos(); cXyz maxDistance = chainRootPos - chainTopPos; f32 maxDistanceF = maxDistance.abs(); @@ -148,8 +149,8 @@ void daAlink_c::hsChainShape_c::draw() { f32 var_f26 = 0.0f; f32 var_f28; - var_f28 = 2.5f * temp_r3->getHookshotStopTime(); - if (temp_r3->getHookshotStopTime() & 1) { + var_f28 = 2.5f * alink->getHookshotStopTime(); + if (alink->getHookshotStopTime() & 1) { var_f28 *= -1.0f; } @@ -169,7 +170,7 @@ void daAlink_c::hsChainShape_c::draw() { GXLoadPosMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0); GXLoadNrmMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0); - sp5C->getShape()->simpleDrawCache(); + material->getShape()->simpleDrawCache(); sp64.z += 0x3000; @@ -178,16 +179,16 @@ void daAlink_c::hsChainShape_c::draw() { } } - const cXyz& sp30 = temp_r3->getHsSubChainRootPos(); - const cXyz& sp2C = temp_r3->getHsSubChainTopPos(); - maxDistance = sp30 - sp2C; + const cXyz& subChainRootPos = alink->getHsSubChainRootPos(); + const cXyz& subChainTopPos = alink->getHsSubChainTopPos(); + maxDistance = subChainRootPos - subChainTopPos; f32 temp_f1 = maxDistance.abs(); if (temp_f1 > 1.0f) { maxDistance *= (1.0f / temp_f1); var_f30 = 0.0f; - sp98 = sp2C; + sp98 = subChainTopPos; sp6C.set(maxDistance.atan2sY_XZ(), maxDistance.atan2sX_Z(), 0); while (temp_f1 > var_f30) { @@ -198,7 +199,7 @@ void daAlink_c::hsChainShape_c::draw() { GXLoadPosMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0); GXLoadNrmMtxImm(mDoMtx_stack_c::get(), GX_PNMTX0); - sp5C->getShape()->simpleDrawCache(); + material->getShape()->simpleDrawCache(); sp98 += maxDistance * 5.0f; sp6C.z += 0x3000; @@ -276,15 +277,21 @@ bool daAlink_c::checkLv7BossRoom() { return checkStageName("D_MN07A"); } -BOOL daAlink_c::checkHookshotStickBG(cBgS_PolyInfo& i_poly) { - if (dComIfG_Bgsp().ChkPolyHSStick(i_poly)) { - dBgW_Base* bgw_p = dComIfG_Bgsp().GetBgWBasePointer(i_poly); +BOOL daAlink_c::checkHookshotStickBG(cBgS_PolyInfo& i_polyinfo) { + #if DEBUG + if (mpHIO->mItem.mHookshot.m.mForceStick) { + return TRUE; + } + #endif + + if (dComIfG_Bgsp().ChkPolyHSStick(i_polyinfo)) { + dBgW_Base* bgw_p = dComIfG_Bgsp().GetBgWBasePointer(i_polyinfo); if (bgw_p != NULL && bgw_p->ChkPushPullOk()) { - return true; + return TRUE; } } - return false; + return FALSE; } void daAlink_c::cancelHookshotCarry() { @@ -296,13 +303,13 @@ void daAlink_c::cancelHookshotCarry() { void daAlink_c::changeHookshotDrawModel() { if (mEquipItem == fpcNm_ITEM_HOOKSHOT && field_0x3020 == 1) { - J3DModel* old_item = mHeldItemModel; + J3DModel* tmp = mHeldItemModel; mHeldItemModel = field_0x0710; - field_0x0710 = old_item; + field_0x0710 = tmp; - J3DModel* old_item2 = mpHookTipModel; + tmp = mpHookTipModel; mpHookTipModel = field_0x0714; - field_0x0714 = old_item2; + field_0x0714 = tmp; } } @@ -346,15 +353,17 @@ BOOL daAlink_c::checkHookshotWait() const { void daAlink_c::setHookshotCatchNow() { field_0x3026 = 5; - dComIfGp_getVibration().StartShock(4, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER4, 1, cXyz(0.0f, 1.0f, 0.0f)); } bool daAlink_c::setHookshotCarryOffset(fpc_ProcID i_carryActorID, cXyz const* i_posOffset) { - if (dComIfGp_checkPlayerStatus1(0, 0x10000)) { - fopAc_ac_c* carryActor_p = mCargoCarryAcKeep.getActor(); + fopAc_ac_c* actor; - if (carryActor_p != NULL && fopAcM_checkHookCarryNow(carryActor_p) && + if (dComIfGp_checkPlayerStatus1(0, 0x10000)) { + actor = mCargoCarryAcKeep.getActor(); + + if (actor != NULL && fopAcM_checkHookCarryNow(actor) && i_carryActorID == mCargoCarryAcKeep.getID()) { field_0x37c8 = *i_posOffset; @@ -362,8 +371,8 @@ bool daAlink_c::setHookshotCarryOffset(fpc_ProcID i_carryActorID, cXyz const* i_ } } - fopAc_ac_c* hookTargetAc_p = mHookTargetAcKeep.getActor(); - if (hookTargetAc_p != NULL && fopAcM_checkHookCarryNow(hookTargetAc_p) && + actor = mHookTargetAcKeep.getActor(); + if (actor != NULL && fopAcM_checkHookCarryNow(actor) && i_carryActorID == mHookTargetAcKeep.getID()) { mIronBallCenterPos = *i_posOffset; @@ -374,20 +383,19 @@ bool daAlink_c::setHookshotCarryOffset(fpc_ProcID i_carryActorID, cXyz const* i_ } void daAlink_c::setHookshotModel() { - J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(0x17E); + J3DAnmTransform* bck = (J3DAnmTransform*)mAnmHeap9.loadDataIdx(dRes_ID_ALANM_BCK_HS_SPIN_e); JKRHeap* heap = setItemHeap(); - mItemBck.init(bck, 0, 2, 1.0f, 0, -1, false); + if (!mItemBck.init(bck, FALSE, 2, 1.0f, 0, -1, false)) { + JUT_ASSERT(676, FALSE); + } - J3DModelData* hookModelData = loadAramBmd(0x316, 0x5C00); - mHeldItemModel = initModel(hookModelData, 0x80000, 0); + mHeldItemModel = initModel(loadAramBmd(dRes_ID_ALANM_BMD_AL_HS_e, 0x5C00), 0); + mpHookTipModel = initModel(loadAramBmd(dRes_ID_ALANM_BMD_AL_HS_TIP_e, 0x3800), 0); + field_0x0710 = initModel(mHeldItemModel->getModelData(), 0); + field_0x0714 = initModel(mpHookTipModel->getModelData(), 0); - J3DModelData* hookTipModelData = loadAramBmd(0x318, 0x3800); - mpHookTipModel = initModel(hookTipModelData, 0x80000, 0); - field_0x0710 = initModel(mHeldItemModel->getModelData(), 0x80000, 0); - field_0x0714 = initModel(mpHookTipModel->getModelData(), 0x80000, 0); - - mpItemModelData = loadAramBmd(0x317, 0x1000); + mpItemModelData = loadAramBmd(dRes_ID_ALANM_BMD_AL_HS_KUSARI_e, 0x1000); mpHookChain = new hsChainShape_c(); mpHookSound = new Z2SoundObjSimple(); @@ -395,8 +403,11 @@ void daAlink_c::setHookshotModel() { mpHookshotLinChk->OffFullGrp(); mpHookshotLinChk->OnWaterGrp(); - J3DAnmTransform* bck2 = (J3DAnmTransform*)loadAram(dRes_ID_ALANM_BCK_HS_TIP_OPEN_e, 0x800); - mHookTipBck.init(bck2, 0, 2, 1.0f, 0, -1, false); + bck = (J3DAnmTransform*)loadAram(dRes_ID_ALANM_BCK_HS_TIP_OPEN_e, 0x800); + if (!mHookTipBck.init(bck, FALSE, 2, 1.0f, 0, -1, false)) { + JUT_ASSERT(701, FALSE); + } + mDoExt_setCurrentHeap(heap); resetHookshotMode(); @@ -424,14 +435,14 @@ void daAlink_c::setHookshotModel() { void daAlink_c::setHookshotSight() { cXyz sight_pos; - f32 length; + f32 max_length; if (checkLv7BossRoom()) { - length = mpHIO->mItem.mHookshot.m.mBossMaxLength; + max_length = mpHIO->mItem.mHookshot.m.mBossMaxLength; } else { - length = mpHIO->mItem.mHookshot.m.mMaxLength; + max_length = mpHIO->mItem.mHookshot.m.mMaxLength; } - BOOL line_cross = checkSightLine(length, &sight_pos); + BOOL line_cross = checkSightLine(max_length, &sight_pos); if (mHookTargetAcKeep.getActor() != NULL) { mSight.setPos(&mHookTargetAcKeep.getActor()->eyePos); @@ -450,8 +461,7 @@ void daAlink_c::setHookshotSight() { if (mHookTargetAcKeep.getActor() != NULL && fopAcM_GetName(mHookTargetAcKeep.getActor()) == PROC_B_DR) { - daB_DR_c* dr_p = (daB_DR_c*)mHookTargetAcKeep.getActor(); - dr_p->onTarget(); + ((daB_DR_c*)mHookTargetAcKeep.getActor())->onTarget(); } } else { mSight.offLockFlg(); @@ -464,7 +474,6 @@ void daAlink_c::setHookshotSight() { field_0x3494 = -1.0f; } - void daAlink_c::cancelHookshotShot() { if (checkHookshotItem(mEquipItem) && (mItemMode == HS_MODE_SHOOT_e || mItemMode == 5 || mItemMode == HS_MODE_FLY_e)) @@ -480,7 +489,7 @@ void daAlink_c::cancelHookshotShot() { bool daAlink_c::cancelHookshotMove() { if (mFastShotTime == 0 && mItemMode == HS_MODE_NONE_e) { if (checkHookshotAnime() && - (mTargetedActor == NULL && !checkAttentionLock() || !itemButton())) + ((mTargetedActor == NULL && !checkAttentionLock()) || !itemButton())) { resetUpperAnime(UPPER_2, -1.0f); return 1; @@ -490,7 +499,6 @@ bool daAlink_c::cancelHookshotMove() { return 0; } - BOOL daAlink_c::checkHookshotReadyMaterialOffMode() const { return mProcID == PROC_HOOKSHOT_WALL_SHOOT || mProcID == PROC_HORSE_HOOKSHOT_SUBJECT || mProcID == PROC_SWIM_HOOKSHOT_SUBJECT || mProcID == PROC_HOOKSHOT_SUBJECT; @@ -511,13 +519,12 @@ void daAlink_c::setHookshotReadyMaterial() { } } -int daAlink_c::initHookshotUpperAnimeSpeed(int param_0) { +int daAlink_c::initHookshotUpperAnimeSpeed(BOOL param_0) { if (checkHookshotWait()) { if (param_0) { - f32 tmp_0 = 0.0f; - mUpperFrameCtrl[2].setRate(tmp_0); - mUpperFrameCtrl[2].setFrame(tmp_0); - getNowAnmPackUpper(UPPER_2)->setFrame(tmp_0); + mUpperFrameCtrl[2].setRate(0.0f); + mUpperFrameCtrl[2].setFrame(0.0f); + getNowAnmPackUpper(UPPER_2)->setFrame(0.0f); } else { setWaterInAnmRate(&mUpperFrameCtrl[2], mpHIO->mItem.mHookshot.m.mWaitAnmSpeed); } @@ -531,26 +538,27 @@ int daAlink_c::initHookshotUpperAnimeSpeed(int param_0) { void daAlink_c::initHookshotReady() { mItemMode = HS_MODE_READY_e; - f32 tmp_0 = 0.0f; - field_0x33e0 = tmp_0; + field_0x33e0 = 0.0f; - dComIfGp_getVibration().StartShock(1, 1, cXyz(tmp_0, 1.0f, tmp_0)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER1, 1, cXyz(0.0f, 1.0f, 0.0f)); mItemVar0.field_0x3018 = 3; field_0x3494 = -1.0f; } void daAlink_c::setHookshotReadyAnime() { - f32 speed; - if (!checkAttentionLock() && mFastShotTime == 0) { - speed = 0.0f; - } else { - speed = mpHIO->mItem.mHookshot.m.mWaitAnmSpeed; - } + { + f32 speed; + if (!checkAttentionLock() && mFastShotTime == 0) { + speed = 0.0f; + } else { + speed = mpHIO->mItem.mHookshot.m.mWaitAnmSpeed; + } - setUpperAnimeBaseSpeed(dRes_INDEX_ALANM_BCK_HSWAIT_e, speed, 3.0f); - field_0x3020 = 0; - initHookshotReady(); + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_HSWAIT_e, speed, 3.0f); + field_0x3020 = 0; + initHookshotReady(); + } } int daAlink_c::checkUpperItemActionHookshot() { @@ -589,33 +597,33 @@ int daAlink_c::checkUpperItemActionHookshot() { mNormalSpeed = 0.0f; } } else { - f32 tmp_0 = 0.0f; - mUpperFrameCtrl[2].setRate(tmp_0); - mUpperFrameCtrl[2].setFrame(tmp_0); - getNowAnmPackUpper(UPPER_2)->setFrame(tmp_0); + mUpperFrameCtrl[2].setRate(0.0f); + mUpperFrameCtrl[2].setFrame(0.0f); + getNowAnmPackUpper(UPPER_2)->setFrame(0.0f); - mNormalSpeed = tmp_0; + mNormalSpeed = 0.0f; onModeFlg(1); - mSpeedModifier = tmp_0; - mNowAnmPackUpper[2].setRatio(tmp_0); + mSpeedModifier = 0.0f; + mNowAnmPackUpper[2].setRatio(0.0f); setSingleAnimeParam(ANM_HOOKSHOT_SHOOT, &mpHIO->mItem.mHookshot.m.mShootAnm); } if (!checkNoResetFlg3(FLG3_UNK_4)) { - f32 tmp_0 = 0.0f; - dComIfGp_getVibration().StartQuake(1, 1, cXyz(tmp_0, 1.0f, tmp_0)); + dComIfGp_getVibration().StartQuake(VIBMODE_Q_POWER1, 1, cXyz(0.0f, 1.0f, 0.0f)); onNoResetFlg3(FLG3_UNK_4); } return 1; } } else if (mItemMode == HS_MODE_NONE_e) { + #if PLATFORM_GCN if (checkModeFlg(0x400) && checkAttentionLock() && mTargetedActor == NULL) { resetUpperAnime(UPPER_2, 3.0f); dComIfGp_clearPlayerStatus0(0, 0x4000); return 1; } + #endif if (checkReadyItem() && itemButton()) { initHookshotReady(); @@ -700,19 +708,19 @@ void daAlink_c::setHookshotReturnEnd() { mNowAnmPackUpper[2].setRatio(1.0f); field_0x2060->initOldFrameMorf(3.0f, field_0x30a8, field_0x30aa); } else if (checkHookshotShootAnime()) { - setUpperAnimeBaseSpeed( - 0x18D, checkAttentionLock() ? mpHIO->mItem.mHookshot.m.mWaitAnmSpeed : 0.0f, 3.0f); + int _; + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_HSWAIT_e, checkAttentionLock() ? mpHIO->mItem.mHookshot.m.mWaitAnmSpeed : 0.0f, 3.0f); } mFastShotTime = 0; } int daAlink_c::setHookshotHangMoveBGCollect() { - cBgS_PolyInfo* poly; - if (mItemMode == 4) { - poly = &mPolyInfo3; + cBgS_PolyInfo* polyinfo; + if (mItemMode == HS_MODE_FLY_e) { + polyinfo = &mPolyInfo3; } else { - poly = &mPolyInfo2; + polyinfo = &mPolyInfo2; } fopAc_ac_c* carry_actor = mCargoCarryAcKeep.getActor(); @@ -727,28 +735,28 @@ int daAlink_c::setHookshotHangMoveBGCollect() { shape_angle.y += (s16)(mProcVar0.field_0x3008 - carry_actor->shape_angle.y); current.angle.y = shape_angle.y; mProcVar0.field_0x3008 = carry_actor->shape_angle.y; - } else if (dComIfG_Bgsp().ChkPolySafe(*poly)) { - if (!checkHookshotStickBG(*poly)) { + } else if (dComIfG_Bgsp().ChkPolySafe(*polyinfo)) { + if (!checkHookshotStickBG(*polyinfo)) { return 0; } - if (dComIfG_Bgsp().ChkMoveBG(*poly)) { - dComIfG_Bgsp().MoveBgTransPos(*poly, 1, ¤t.pos, ¤t.angle, &shape_angle); + if (dComIfG_Bgsp().ChkMoveBG(*polyinfo)) { + dComIfG_Bgsp().MoveBgTransPos(*polyinfo, 1, ¤t.pos, ¤t.angle, &shape_angle); csXyz sp8(0, field_0x3022, 0); - dComIfG_Bgsp().MoveBgTransPos(*poly, 1, &mIronBallBgChkPos, NULL, &sp8); + dComIfG_Bgsp().MoveBgTransPos(*polyinfo, 1, &mIronBallBgChkPos, NULL, &sp8); field_0x3022 = sp8.y; - s16 movebg_name = getMoveBGActorName(*poly, 1); + s16 movebg_name = getMoveBGActorName(*polyinfo, 1); if (movebg_name == PROC_Obj_SwHang) { - daObjSwHang_c* var_r26 = (daObjSwHang_c*)dComIfG_Bgsp().GetActorPointer(*poly); - var_r26->setHangPlayer(); + daObjSwHang_c* swhang = (daObjSwHang_c*)dComIfG_Bgsp().GetActorPointer(*polyinfo); + swhang->setHangPlayer(); f32 prev_y = mIronBallBgChkPos.y; - mIronBallBgChkPos.y = var_r26->getHangPos().y; + mIronBallBgChkPos.y = swhang->getHangPos().y; current.pos.y += mIronBallBgChkPos.y - prev_y; } else if (movebg_name == PROC_Obj_Chandelier) { - ((daObjChandelier_c*)dComIfG_Bgsp().GetActorPointer(*poly))->moveHookOn(); + ((daObjChandelier_c*)dComIfG_Bgsp().GetActorPointer(*polyinfo))->moveHookOn(); } } } else { @@ -784,7 +792,7 @@ void daAlink_c::setHookshotTopPosFly() { static cXyz l_hookSnowSandHitScale(0.5f, 0.5f, 0.5f); void daAlink_c::setHookshotPos() { - mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(field_0x30c0)); + mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(mLeftItemJntNo)); mDoMtx_stack_c::transM(-2.0f, 1.0f, 1.0f); mDoMtx_stack_c::XYZrotM(cM_deg2s(5.7f), cM_deg2s(162.0f), 0); @@ -796,7 +804,7 @@ void daAlink_c::setHookshotPos() { } var_r27->setBaseTRMtx(mDoMtx_stack_c::get()); - mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(field_0x30c2)); + mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(mRightItemJntNo)); mDoMtx_stack_c::transM(-2.0f, 0.0f, 1.0f); mDoMtx_stack_c::XYZrotM(cM_deg2s(-78.0f), cM_deg2s(182.0f), cM_deg2s(-99.0f)); @@ -808,8 +816,6 @@ void daAlink_c::setHookshotPos() { } var_r27_2->setBaseTRMtx(mDoMtx_stack_c::get()); - cXyz sp134; - if (mItemMode == 2 || mItemMode == HS_MODE_SHOOT_e) { field_0x33dc += 1.0f; @@ -861,15 +867,15 @@ void daAlink_c::setHookshotPos() { fopAc_ac_c* targetAc_p = mHookTargetAcKeep.getActor(); f32 return_speed; f32 shoot_speed; - f32 length; + f32 max_length; if (checkLv7BossRoom()) { return_speed = mpHIO->mItem.mHookshot.m.mBossReturnSpeed; shoot_speed = mpHIO->mItem.mHookshot.m.mBossShootSpeed; - length = mpHIO->mItem.mHookshot.m.mBossMaxLength; + max_length = mpHIO->mItem.mHookshot.m.mBossMaxLength; } else { return_speed = mpHIO->mItem.mHookshot.m.mReturnSpeed; shoot_speed = mpHIO->mItem.mHookshot.m.mShootSpeed; - length = mpHIO->mItem.mHookshot.m.mMaxLength; + max_length = mpHIO->mItem.mHookshot.m.mMaxLength; } if (mItemMode == HS_MODE_RETURN_e) { @@ -996,11 +1002,11 @@ void daAlink_c::setHookshotPos() { } else { mHookTargetAcKeep.clearData(); mItemMode = HS_MODE_RETURN_e; - dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER1, 1, cXyz(0.0f, 1.0f, 0.0f)); } } else { mItemMode = HS_MODE_RETURN_e; - dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER1, 1, cXyz(0.0f, 1.0f, 0.0f)); } } else { if (checkChaseHookshot()) { @@ -1023,14 +1029,15 @@ void daAlink_c::setHookshotPos() { f32 temp_f1 = sp17C.abs(); sp17C *= 1.0f / temp_f1; - if (temp_f1 >= length - 15.0f) { - mHookshotTopPos = mHeldItemRootPos + (sp17C * (length - 15.0f)); + f32 temp_f26 = max_length - 15.0f; + if (temp_f1 >= temp_f26) { + mHookshotTopPos = mHeldItemRootPos + (sp17C * temp_f26); mItemMode = HS_MODE_RETURN_e; } cXyz sp170; if (field_0x3828.abs2(mHeldItemRootPos) > 400.0f || - current.pos.abs2(field_0x3798) > 1.0f || shape_angle.y != field_0x2fe6) + current.pos.abs2(field_0x3798) > 1.0f || shape_angle.y != mPrevAngleY) { field_0x3028 = 1; } @@ -1069,49 +1076,48 @@ void daAlink_c::setHookshotPos() { } } else { int poly_att0 = dComIfG_Bgsp().GetPolyAtt0(mRopeLinChk); - dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER1, 1, cXyz(0.0f, 1.0f, 0.0f)); mItemMode = HS_MODE_RETURN_e; hit_se = Z2SE_HIT_HOOKSHOT_REBOUND; - cM3dGPla poly; - dComIfG_Bgsp().GetTriPla(mRopeLinChk, &poly); + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mRopeLinChk, &tripla); csXyz sp30; if (poly_att0 == 0xD || poly_att0 == 3) { u16 particle_id; if (poly_att0 == 0xD) { - particle_id = 0x881F; + particle_id = dPa_RM(ID_ZI_S_DOWNSNOW_A); } else { - particle_id = 0x881E; + particle_id = dPa_RM(ID_ZI_S_DOWNSAND_A); } - sp30.set(cM_atan2s(poly.mNormal.absXZ(), poly.mNormal.y), - poly.mNormal.atan2sX_Z(), 0); + sp30.set(cM_atan2s(tripla.mNormal.absXZ(), tripla.mNormal.y), + tripla.mNormal.atan2sX_Z(), 0); dComIfGp_particle_setPolyColor( particle_id, mRopeLinChk, mRopeLinChk.GetCrossP(), &tevStr, &sp30, (cXyz*)&l_hookSnowSandHitScale, 0, NULL, -1, NULL); if (poly_att0 == 0xD) { dComIfGp_particle_setPolyColor( - 0x8820, mRopeLinChk, mRopeLinChk.GetCrossP(), &tevStr, &sp30, + dPa_RM(ID_ZI_S_DOWNSNOW_B), mRopeLinChk, mRopeLinChk.GetCrossP(), &tevStr, &sp30, (cXyz*)&l_hookSnowSandHitScale, 0, NULL, -1, NULL); } } else { - sp30.set(cM_atan2s(poly.mNormal.y, poly.mNormal.absXZ()), - cM_atan2s(-poly.mNormal.x, -poly.mNormal.z), 0); + sp30.set(cM_atan2s(tripla.mNormal.y, tripla.mNormal.absXZ()), + cM_atan2s(-tripla.mNormal.x, -tripla.mNormal.z), 0); dComIfGp_setHitMark(9, NULL, mRopeLinChk.GetCrossP(), &sp30, NULL, 0); } } mHookshotTopPos = mRopeLinChk.GetCross() - (mIronBallCenterPos * 15.0f); - cM3dGPla poly; - dComIfG_Bgsp().GetTriPla(mRopeLinChk, &poly); - field_0x316c.set(cM_atan2s(poly.mNormal.y, poly.mNormal.absXZ()), - cM_atan2s(-poly.mNormal.x, -poly.mNormal.z), 0); + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mRopeLinChk, &tripla); + field_0x316c.set(cM_atan2s(tripla.mNormal.y, tripla.mNormal.absXZ()), + cM_atan2s(-tripla.mNormal.x, -tripla.mNormal.z), 0); - mZ2Link.startHitItemSE(hit_se, dKy_pol_sound_get(&mRopeLinChk), mpHookSound, - -1.0f); + mZ2Link.startHitItemSE(hit_se, dKy_pol_sound_get(&mRopeLinChk), mpHookSound, -1.0f); } else { seStartOnlyReverbLevel(Z2SE_LK_HS_CHAIN); } @@ -1125,7 +1131,7 @@ void daAlink_c::setHookshotPos() { if (dComIfG_Bgsp().LineCross(mpHookshotLinChk) && dComIfG_Bgsp().GetPolyAtt0(*mpHookshotLinChk) != 6) { - fopKyM_createWpillar(mpHookshotLinChk->GetCrossP(), 0.5f, 0); + fpc_ProcID id = fopKyM_createWpillar(mpHookshotLinChk->GetCrossP(), 0.5f, 0); mDoAud_seStart(Z2SE_CM_BODYFALL_WATER_S, mpHookshotLinChk->GetCrossP(), 0, mVoiceReverbIntensity); } @@ -1159,9 +1165,7 @@ void daAlink_c::setHookshotPos() { if (field_0x3024 == 0) { mDoMtx_stack_c::copy(field_0x0710->getBaseTRMtx()); - mDoMtx_stack_c::transM(cXyz(hookRoot)); - mIronBallBgChkPos = field_0x3810; } bck_frame = 0.0f; @@ -1206,14 +1210,14 @@ void daAlink_c::setHookshotWallWaitAnime() { } void daAlink_c::hookshotRoofTurn() { - BOOL play_sound = false; + BOOL is_play_sound = false; if (!dComIfGp_checkPlayerStatus0(0, 0x2000)) { f32 max_rise_y = (mIronBallBgChkPos.y + 15.0f) - 1.5f; f32 min_descend_y = mIronBallBgChkPos.y - mpHIO->mItem.mHookshot.m.mMaxLength; if (checkInputOnR()) { int stick_direction = getDirectionFromAngle(mStickAngle); - int angle = (int)(1024.0f * field_0x33ac * field_0x33ac); + int angle = (int)(1024.0f * mMoveValue * mMoveValue); if (stick_direction == DIR_LEFT) { shape_angle.y += angle; @@ -1223,15 +1227,15 @@ void daAlink_c::hookshotRoofTurn() { current.angle.y = shape_angle.y; if (stick_direction == DIR_FORWARD) { - current.pos.y += mpHIO->mItem.mHookshot.m.mRoofHangRiseSpeed * field_0x33a8; + current.pos.y += mpHIO->mItem.mHookshot.m.mRoofHangRiseSpeed * mStickValue; if (current.pos.y > max_rise_y) { current.pos.y = max_rise_y; } else { seStartOnlyReverbLevel(Z2SE_AL_HS_HANGING_UP); - play_sound = true; + is_play_sound = true; } } else if (stick_direction == DIR_BACKWARD) { - f32 descend_speed = mpHIO->mItem.mHookshot.m.mRoofHangDecendSpeed * field_0x33ac; + f32 descend_speed = mpHIO->mItem.mHookshot.m.mRoofHangDecendSpeed * mMoveValue; if (checkBootsOrArmorHeavy()) { descend_speed *= 1.5f; } @@ -1241,7 +1245,7 @@ void daAlink_c::hookshotRoofTurn() { current.pos.y = min_descend_y; } else { seStartOnlyReverbLevel(Z2SE_AL_HS_HANGING_DOWN); - play_sound = true; + is_play_sound = true; } } } @@ -1260,7 +1264,7 @@ void daAlink_c::hookshotRoofTurn() { } } - if (play_sound) { + if (is_play_sound) { if (!checkNoResetFlg3(FLG3_UNK_4)) { dComIfGp_getVibration().StartQuake(1, 1, cXyz(0.0f, 1.0f, 0.0f)); onNoResetFlg3(FLG3_UNK_4); @@ -1304,7 +1308,7 @@ int daAlink_c::checkNextHookPoint() { } else if (dComIfGp_checkPlayerStatus1(0, 0x10000) && checkHookshotRoofLv7Boss()) { if (!fopAcM_checkHookCarryNow(mCargoCarryAcKeep.getActor())) { field_0x3102 = shape_angle.y; - return procCoLargeDamageInit(-6, 1, 0, 0, NULL, 0); + return procCoLargeDamageInit(-6, TRUE, 0, 0, NULL, 0); } } @@ -1340,9 +1344,7 @@ int daAlink_c::commonHookshotRoofWait() { setJumpMode(); if (mProcVar4.field_0x3010 != 0) { mCargoCarryAcKeep.setActor(); - fopAc_ac_c* carryAc_p = mCargoCarryAcKeep.getActor(); - - if (carryAc_p == NULL || !fopAcM_checkHookCarryNow(carryAc_p)) { + if (mCargoCarryAcKeep.getActor() == NULL || !fopAcM_checkHookCarryNow(mCargoCarryAcKeep.getActor())) { return checkNextHookPoint(); } } @@ -1367,7 +1369,12 @@ int daAlink_c::commonHookshotRoofWait() { int daAlink_c::commonHookshotWallWait() { setJumpMode(); - return checkLandHookshotHang() ? TRUE : FALSE; + + if (checkLandHookshotHang()) { + return TRUE; + } else { + return FALSE; + } } int daAlink_c::procHookshotSubjectInit() { @@ -1388,10 +1395,9 @@ int daAlink_c::procHookshotSubjectInit() { return 1; } - int daAlink_c::procHookshotSubject() { if (checkHookshotWait()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } setShapeAngleToAtnActor(0); @@ -1461,7 +1467,7 @@ int daAlink_c::procHookshotFlyInit() { commonProcInit(PROC_HOOKSHOT_FLY); if (!checkNoResetFlg0(FLG0_SWIM_UP)) { - onNoResetFlg0(FLG0_UNDERWATER); + onNoResetFlg0(FLG0_WATER_IN_MOVE); } daAlink_ANM anm; @@ -1500,7 +1506,6 @@ int daAlink_c::procHookshotFlyInit() { return 1; } - int daAlink_c::procHookshotFly() { fopAc_ac_c* targetAc_p = mHookTargetAcKeep.getActor(); @@ -1511,11 +1516,11 @@ int daAlink_c::procHookshotFly() { targetAc_name = PROC_ALINK; } - BOOL var_r29 = 0; + BOOL var_r29 = FALSE; if (targetAc_name == PROC_Obj_SwHang) { int swhang_type = static_cast(targetAc_p)->getType(); if (swhang_type == 3 || swhang_type == 4) { - var_r29 = 1; + var_r29 = TRUE; } } @@ -1556,20 +1561,20 @@ int daAlink_c::procHookshotFly() { dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); return procBossBodyHangInit(targetAc_p); } else { - cM3dGPla poly; - BOOL var_r28 = 0; - BOOL var_r27 = 0; - BOOL force_fall = checkStageName("D_MN10") && fopAcM_GetRoomNo(this) == 4; + cM3dGPla tripla; + BOOL var_r28 = FALSE; + BOOL var_r27 = FALSE; + BOOL is_force_fall = checkStageName("D_MN10") && fopAcM_GetRoomNo(this) == 4; if (mProcVar2.field_0x300c == 4 && dComIfG_Bgsp().ChkPolySafe(mPolyInfo2)) { - var_r28 = dComIfG_Bgsp().GetTriPla(mPolyInfo2, &poly); - var_r27 = cBgW_CheckBRoof(poly.mNormal.y); + var_r28 = dComIfG_Bgsp().GetTriPla(mPolyInfo2, &tripla); + var_r27 = cBgW_CheckBRoof(tripla.mNormal.y); if (!checkHookshotStickBG(mPolyInfo2)) { - var_r28 = 0; + var_r28 = FALSE; } } - if (!force_fall && !mLinkAcch.ChkGroundHit() && !var_r27 && checkFrontWallTypeAction()) + if (!is_force_fall && !mLinkAcch.ChkGroundHit() && !var_r27 && checkFrontWallTypeAction()) { voiceStart(Z2SE_AL_V_CLIMB); dComIfGp_getVibration().StartShock(1, 1, cXyz(0.0f, 1.0f, 0.0f)); @@ -1587,23 +1592,22 @@ int daAlink_c::procHookshotFly() { } if (var_r28 && !var_r27) { - cXyz sp94(mHookshotTopPos.x + poly.mNormal.x * 35.0f, mHookshotTopPos.y + 5.0f, - mHookshotTopPos.z + poly.mNormal.z * 35.0f); + cXyz sp94(mHookshotTopPos.x + tripla.mNormal.x * 35.0f, mHookshotTopPos.y + 5.0f, + mHookshotTopPos.z + tripla.mNormal.z * 35.0f); mLinkGndChk.SetPos(&sp94); - if (dComIfG_Bgsp().GroundCross(&mLinkGndChk) > mHookshotTopPos.y - 150.0f || - force_fall) - { + f32 temp_f29 = dComIfG_Bgsp().GroundCross(&mLinkGndChk); + if (temp_f29 > mHookshotTopPos.y - 150.0f || is_force_fall) { current.pos.x = sp94.x; current.pos.z = sp94.z; - force_fall = true; + is_force_fall = true; } } setJumpMode(); if (mLinkAcch.ChkGroundHit()) { checkNextAction(0); - } else if (force_fall) { + } else if (is_force_fall) { procFallInit(1, 5.0f); field_0x2f99 = 0x70; } else if (targetAc_name == PROC_E_PH || targetAc_name == PROC_B_DR || var_r29) { @@ -1617,8 +1621,8 @@ int daAlink_c::procHookshotFly() { procRoofHangStartInit(mPolyInfo2, sp88, 0); } else if (var_r28 && var_r27) { procHookshotRoofWaitInit(1, NULL, mProcVar5.field_0x3012); - } else if (var_r28 && field_0x2f91 != 3 && fabsf(poly.mNormal.y) < 0.05f) { - procHookshotWallWaitInit(1, poly.mNormal.atan2sX_Z(), mProcVar5.field_0x3012); + } else if (var_r28 && field_0x2f91 != 3 && fabsf(tripla.mNormal.y) < 0.05f) { + procHookshotWallWaitInit(1, tripla.mNormal.atan2sX_Z(), mProcVar5.field_0x3012); } else { procFallInit(1, 5.0f); field_0x2f99 = 0x70; @@ -1641,8 +1645,7 @@ int daAlink_c::procHookshotFly() { return 1; } - -int daAlink_c::procHookshotRoofWaitInit(int param_0, fopAc_ac_c* param_1, int param_2) { +int daAlink_c::procHookshotRoofWaitInit(BOOL param_0, fopAc_ac_c* param_1, int param_2) { commonProcInit(PROC_HOOKSHOT_ROOF_WAIT); if (param_0) { @@ -1687,14 +1690,13 @@ int daAlink_c::procHookshotRoofWaitInit(int param_0, fopAc_ac_c* param_1, int pa mProcVar5.field_0x3012 = param_2; dComIfGp_setPlayerStatus1(0, 0x10000); - field_0x814.SetWeight(255); + mCcStts.SetWeight(255); return 1; } - int daAlink_c::procHookshotRoofWait() { if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x80)) { - if (checkSubjectEnd(1)) { + if (checkSubjectEnd(TRUE)) { dComIfGp_clearPlayerStatus0(0, 0x2000); mBodyAngle.y = 0; mBodyAngle.x = 0; @@ -1718,7 +1720,7 @@ int daAlink_c::procHookshotRoofWait() { } if (!checkHookshotRoofLv7Boss() || !checkBootsOrArmorHeavy()) { - setDoStatusEmphasys(1); + setDoStatusEmphasys(BUTTON_STATUS_LET_GO); if (doTrigger()) { return procFallInit(1, 5.0f); @@ -1735,7 +1737,7 @@ int daAlink_c::procHookshotRoofWait() { } daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - if (frameCtrl_p->checkAnmEnd() || + if (checkAnmEnd(frameCtrl_p) || ((checkInputOnR() || mProcVar5.field_0x3012 != 0 || checkHookshotRoofLv7Boss()) && frameCtrl_p->getFrame() > mpHIO->mItem.mHookshot.m.mRoofHangAnm.mCancelFrame)) { @@ -1752,7 +1754,6 @@ int daAlink_c::procHookshotRoofWait() { return 1; } - int daAlink_c::procHookshotRoofShootInit(fopAc_ac_c* param_0) { commonProcInit(PROC_HOOKSHOT_ROOF_SHOOT); @@ -1776,16 +1777,15 @@ int daAlink_c::procHookshotRoofShootInit(fopAc_ac_c* param_0) { dComIfGp_setPlayerStatus1(0, 0x10000); dComIfGp_setPlayerStatus0(0, 0x4000); - field_0x814.SetWeight(255); + mCcStts.SetWeight(255); mProcVar2.field_0x300c = 0; mProcVar3.field_0x300e = mBodyAngle.x; return 1; } - int daAlink_c::procHookshotRoofShoot() { if (checkHookshotWait()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } if (commonHookshotRoofWait()) { @@ -1846,7 +1846,6 @@ int daAlink_c::procHookshotRoofShoot() { return 1; } - int daAlink_c::procHookshotRoofBootsInit(fopAc_ac_c* param_0) { commonProcInit(PROC_HOOKSHOT_ROOF_BOOTS); @@ -1869,18 +1868,17 @@ int daAlink_c::procHookshotRoofBootsInit(fopAc_ac_c* param_0) { dComIfGp_setPlayerStatus1(0, 0x10000); - field_0x814.SetWeight(255); + mCcStts.SetWeight(255); return 1; } - int daAlink_c::procHookshotRoofBoots() { if (commonHookshotRoofWait()) { return 1; } if (!checkHookshotRoofLv7Boss() || !checkBootsOrArmorHeavy()) { - setDoStatusEmphasys(1); + setDoStatusEmphasys(BUTTON_STATUS_LET_GO); if (doTrigger()) { return procFallInit(1, 5.0f); @@ -1888,7 +1886,7 @@ int daAlink_c::procHookshotRoofBoots() { } daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - if (frameCtrl_p->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl_p)) { return procHookshotRoofWaitInit(0, mCargoCarryAcKeep.getActor(), 0); } @@ -1901,13 +1899,13 @@ int daAlink_c::procHookshotRoofBoots() { return 1; } - int daAlink_c::procHookshotWallWaitInit(int param_0, s16 param_1, int param_2) { commonProcInit(PROC_HOOKSHOT_WALL_WAIT); if (param_0) { - cXyz sp28; setOldRootQuaternion(0, -0x8000, 0); + + cXyz sp28; mDoMtx_stack_c::ZXYrotS(field_0x301c, field_0x301e, 0); mDoMtx_stack_c::multVec(&cXyz::BaseZ, &sp28); current.pos = mHookshotTopPos + (sp28 * 15.0f); @@ -1952,10 +1950,9 @@ int daAlink_c::procHookshotWallWaitInit(int param_0, s16 param_1, int param_2) { return 1; } - int daAlink_c::procHookshotWallWait() { if (dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x80)) { - if (checkSubjectEnd(1)) { + if (checkSubjectEnd(TRUE)) { dComIfGp_clearPlayerStatus0(0, 0x2000); mBodyAngle.x = 0; offModeFlg(0x60000000); @@ -1963,12 +1960,12 @@ int daAlink_c::procHookshotWallWait() { s16 old_angle = shape_angle.y; shape_angle.y = field_0x310c; setBodyAngleToCamera(); - shape_angle.y = old_angle; - if ((s16)(field_0x310c - shape_angle.y) > 0x4000) { + old_angle = field_0x310c - shape_angle.y; + if (old_angle > 0x4000) { field_0x310c = shape_angle.y + 0x4000; - } else if ((s16)(field_0x310c - shape_angle.y) < -0x4000) { + } else if (old_angle < -0x4000) { field_0x310c = shape_angle.y - 0x4000; } } @@ -1987,7 +1984,7 @@ int daAlink_c::procHookshotWallWait() { return 1; } - setDoStatusEmphasys(1); + setDoStatusEmphasys(BUTTON_STATUS_LET_GO); if (doTrigger()) { return procFallInit(1, 5.0f); @@ -2001,7 +1998,7 @@ int daAlink_c::procHookshotWallWait() { } daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - if (frameCtrl_p->checkAnmEnd() || + if (checkAnmEnd(frameCtrl_p) || ((checkInputOnR() || mProcVar5.field_0x3012 != 0) && frameCtrl_p->getFrame() > mpHIO->mItem.mHookshot.m.mWallHangAnm.mCancelFrame)) { @@ -2015,7 +2012,6 @@ int daAlink_c::procHookshotWallWait() { return 1; } - int daAlink_c::procHookshotWallShootInit() { commonProcInit(PROC_HOOKSHOT_WALL_SHOOT); @@ -2044,10 +2040,9 @@ int daAlink_c::procHookshotWallShootInit() { return 1; } - int daAlink_c::procHookshotWallShoot() { if (checkHookshotWait()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } if (commonHookshotWallWait()) { @@ -2102,9 +2097,10 @@ int daAlink_c::procHookshotWallShoot() { mProcVar2.field_0x300c = 0; } - if ((s16)(shape_angle.y - old_angle) > 0x4000) { + s16 var_r27 = shape_angle.y - old_angle; + if (var_r27 > 0x4000) { shape_angle.y = old_angle + 0x4000; - } else if ((s16)(shape_angle.y - old_angle) < -0x4000) { + } else if (var_r27 < -0x4000) { shape_angle.y = old_angle - 0x4000; } diff --git a/src/d/actor/d_a_alink_horse.inc b/src/d/actor/d_a_alink_horse.inc index 35a6b655fe..2e40fd21c4 100644 --- a/src/d/actor/d_a_alink_horse.inc +++ b/src/d/actor/d_a_alink_horse.inc @@ -10,11 +10,11 @@ #include "d/actor/d_a_obj_iceleaf.h" #include "d/actor/d_a_spinner.h" -static void* daAlink_searchBoar(fopAc_ac_c* i_actor, void*) { - if (fopAcM_GetName(i_actor) == PROC_E_WB) { - e_wb_class* e_wb_p = (e_wb_class*)i_actor; +static void* daAlink_searchBoar(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); - if (e_wb_p->getModel() != NULL) { + if (fopAcM_GetName(i_actor) == PROC_E_WB) { + if (((e_wb_class*)i_actor)->getModel() != NULL) { return i_actor; } } @@ -22,7 +22,9 @@ static void* daAlink_searchBoar(fopAc_ac_c* i_actor, void*) { return NULL; } -static fopAc_ac_c* daAlink_searchCoach(fopAc_ac_c* i_actor, void*) { +static fopAc_ac_c* daAlink_searchCoach(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); + if (fopAcM_GetName(i_actor) == PROC_NPC_COACH) { return i_actor; } @@ -40,8 +42,10 @@ BOOL daAlink_c::checkHorseZeldaBowMode() { } void daAlink_c::setHorseZeldaDamage() { + daHoZelda_c* zelda_p; + if (dComIfGp_getHorseActor() != NULL) { - daHoZelda_c* zelda_p = dComIfGp_getHorseActor()->getZeldaActor(); + zelda_p = dComIfGp_getHorseActor()->getZeldaActor(); if (zelda_p != NULL) { zelda_p->setDamageInit(); } @@ -94,9 +98,8 @@ int daAlink_c::checkReinRideBgCheck() { int direction = getReinRideDirection(); - fopAc_ac_c* temp_r4 = field_0x27f4; const Vec* offset_p; - if (fopAcM_GetName(temp_r4) == PROC_HORSE) { + if (fopAcM_GetName(field_0x27f4) == PROC_HORSE) { if (direction == DIR_BACKWARD) { offset_p = &horseLocalBack; } else if (direction == DIR_LEFT) { @@ -110,25 +113,26 @@ int daAlink_c::checkReinRideBgCheck() { offset_p = &boarLocalRight; } - cXyz sp2C; - cXyz sp38(temp_r4->current.pos.x, temp_r4->current.pos.y, temp_r4->current.pos.z); + cXyz line_start_pos; + cXyz line_end_pos(field_0x27f4->current.pos.x, field_0x27f4->current.pos.y, field_0x27f4->current.pos.z); mDoMtx_stack_c::transS(field_0x27f4->current.pos); mDoMtx_stack_c::YrotM(field_0x27f4->shape_angle.y); - mDoMtx_stack_c::multVec(offset_p, &sp2C); + mDoMtx_stack_c::multVec(offset_p, &line_start_pos); dBgS_AcchCir* acchcir_p = mAcchCir; for (int i = 0; i < 6; i++) { - sp38.y = sp2C.y = current.pos.y + acchcir_p->GetWallH(); + line_start_pos.y = current.pos.y + acchcir_p->GetWallH(); + line_end_pos.y = line_start_pos.y; - if (commonLineCheck(&sp2C, &sp38)) { + if (commonLineCheck(&line_start_pos, &line_end_pos)) { return 0; } if (i == 2) { acchcir_p = mAcchCir; - sp2C.x = current.pos.x; - sp2C.z = current.pos.z; + line_start_pos.x = current.pos.x; + line_start_pos.z = current.pos.z; } else { acchcir_p++; } @@ -152,28 +156,28 @@ void daAlink_c::commonInitForceRideRein() { } int daAlink_c::initForceRideBoar() { - e_wb_class* e_wb = (e_wb_class*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchBoar, NULL); - fopAc_ac_c* e_wb_actor = (fopAc_ac_c*)e_wb; + e_wb_class* boar = (e_wb_class*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchBoar, NULL); + fopAc_ac_c* boar_actor = (fopAc_ac_c*)boar; - if (e_wb == NULL) { + if (boar == NULL) { return 0; } commonInitForceRideRein(); - e_wb_actor->current.pos = current.pos; - e_wb_actor->shape_angle.y = shape_angle.y; - e_wb_actor->current.angle.y = shape_angle.y; - mRideStatus = 2; + boar_actor->current.pos = current.pos; + boar_actor->shape_angle.y = shape_angle.y; + boar_actor->current.angle.y = shape_angle.y; + mRideStatus = RIDETYPE_BOAR; - mRideAcKeep.setData(e_wb_actor); + mRideAcKeep.setData(boar_actor); field_0x384c = (cXyz*)&l_boarBaseAnime; - e_wb->setPlayerRide(); + boar->setPlayerRide(); return 1; } void daAlink_c::initForceRideHorse() { commonInitForceRideRein(); - mRideStatus = 1; + mRideStatus = RIDETYPE_HORSE; mRideAcKeep.setData(dComIfGp_getHorseActor()); field_0x384c = (cXyz*)&l_horseBaseAnime; dComIfGp_getHorseActor()->onRideFlg(); @@ -217,7 +221,7 @@ void daAlink_c::rideGetOff() { } mRideStatus = 0; - offNoResetFlg1(FLG1_UNK_1800); + offNoResetFlg1(daPy_FLG1(FLG1_UNK_1000 | FLG1_UNK_800)); attention_info.field_0xa = 10; shape_angle.x = 0; shape_angle.z = 0; @@ -270,16 +274,16 @@ BOOL daAlink_c::checkHorseSubjectivity() const { } void daAlink_c::setHorseSwordUpAnime() { - setUpperAnimeBaseSpeed(0xCC, mpHIO->mHorse.m.mSwordUpAnmSpeed, + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_DASHHBSUP_e, mpHIO->mHorse.m.mSwordUpAnmSpeed, mpHIO->mHorse.m.mSwordUpInterpolation); - setFaceBck(0xE8, 1, 0xFFFF); + setFacePriBck(dRes_ID_ALANM_BCK_FAT_e); } -void daAlink_c::setHorseTurnUpperAnime(int i_useLAnime) { - if (checkHorseNoUpperAnime() || (i_useLAnime == FALSE && checkHorseTurnRAnime()) || - (i_useLAnime == TRUE && checkHorseTurnLAnime())) +void daAlink_c::setHorseTurnUpperAnime(BOOL i_isTurnL) { + if (checkHorseNoUpperAnime() || (!i_isTurnL && checkHorseTurnRAnime()) || + (i_isTurnL == TRUE && checkHorseTurnLAnime())) { - setUpperAnimeBaseMorf(!i_useLAnime ? (u16)0x24C : (u16)0x24D, 4.0f); + setUpperAnimeBaseMorf(!i_isTurnL ? (u16)dRes_ID_ALANM_BCK_TURNLS_e : (u16)dRes_ID_ALANM_BCK_TURNRS_e, 4.0f); } } @@ -287,17 +291,17 @@ BOOL daAlink_c::checkHorseNoUpperAnime() const { return checkHorseTiredAnime() || checkNoUpperAnime() || checkHorseSwordUpAnime(); } -void daAlink_c::getHorseReinHandPos(cXyz* param_0, cXyz* param_1) { +void daAlink_c::getHorseReinHandPos(cXyz* o_handPosA, cXyz* o_handPosB) { int hand_type = getReinHandType(); if (hand_type == 2) { - mDoMtx_multVec(getRightHandMatrix(), &m_handRightInSidePos, param_0); - mDoMtx_multVec(getRightHandMatrix(), &m_handRightOutSidePos, param_1); + mDoMtx_multVec(getRightHandMatrix(), &m_handRightInSidePos, o_handPosA); + mDoMtx_multVec(getRightHandMatrix(), &m_handRightOutSidePos, o_handPosB); } else if (hand_type == 1) { - mDoMtx_multVec(getLeftHandMatrix(), &m_handLeftOutSidePos, param_0); - mDoMtx_multVec(getLeftHandMatrix(), &m_handLeftInSidePos, param_1); + mDoMtx_multVec(getLeftHandMatrix(), &m_handLeftOutSidePos, o_handPosA); + mDoMtx_multVec(getLeftHandMatrix(), &m_handLeftInSidePos, o_handPosB); } else { - mDoMtx_multVec(getLeftHandMatrix(), &m_handLeftOutSidePos, param_0); - mDoMtx_multVec(getRightHandMatrix(), &m_handRightOutSidePos, param_1); + mDoMtx_multVec(getLeftHandMatrix(), &m_handLeftOutSidePos, o_handPosA); + mDoMtx_multVec(getRightHandMatrix(), &m_handRightOutSidePos, o_handPosB); } } @@ -322,8 +326,8 @@ BOOL daAlink_c::checkHorseNotGrab() const { } void daAlink_c::setHorseStirrup() { - daHorse_c* temp_r3 = dComIfGp_getHorseActor(); - if (temp_r3 == NULL || (!checkHorseRide() && (mProcID != PROC_TOOL_DEMO || field_0x2fab == 0))) { + daHorse_c* horse = dComIfGp_getHorseActor(); + if (horse == NULL || (!checkHorseRide() && (mProcID != PROC_TOOL_DEMO || field_0x2fab == 0))) { return; } @@ -331,25 +335,25 @@ void daAlink_c::setHorseStirrup() { mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(field_0x30bc)); mDoMtx_stack_c::transM(-2.0f, -11.0f, 1.5f); mDoMtx_stack_c::ZXYrotM(NULL, -0x8000, 0x4000); - mDoMtx_copy(mDoMtx_stack_c::get(), temp_r3->getLeftStirrupMtx()); + mDoMtx_copy(mDoMtx_stack_c::get(), horse->getLeftStirrupMtx()); } if (field_0x2fab & 2) { mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(field_0x30be)); mDoMtx_stack_c::transM(-2.0f, 11.0f, 1.5f); mDoMtx_stack_c::ZrotM(-0x4000); - mDoMtx_copy(mDoMtx_stack_c::get(), temp_r3->getRightStirrupMtx()); + mDoMtx_copy(mDoMtx_stack_c::get(), horse->getRightStirrupMtx()); } if (field_0x2fab & 3) { - temp_r3->calcWeightEnvMtx(); + horse->calcWeightEnvMtx(); } - int temp_r3_4 = getReinHandType(); - if (temp_r3_4 == 0) { - temp_r3->setReinPosNormal(); - } else if (temp_r3_4 != -1) { - temp_r3->setReinPosHand(temp_r3_4); + int hand_type = getReinHandType(); + if (hand_type == 0) { + horse->setReinPosNormal(); + } else if (hand_type != -1) { + horse->setReinPosHand(hand_type); } } @@ -424,8 +428,8 @@ int daAlink_c::setSyncHorsePos() { } int daAlink_c::setSyncBoarPos() { - e_wb_class* e_wb_p = (e_wb_class*)mRideAcKeep.getActor(); - if (e_wb_p == NULL) { + e_wb_class* boar = (e_wb_class*)mRideAcKeep.getActor(); + if (boar == NULL) { if (mProcID == PROC_DEAD || mProcID == PROC_GET_ITEM) { return 1; } @@ -442,18 +446,18 @@ int daAlink_c::setSyncBoarPos() { } if (mProcID != PROC_DEAD && mProcID != PROC_GET_ITEM) { - if (e_wb_p == NULL || e_wb_p->checkDownDamage()) { + if (boar == NULL || boar->checkDownDamage()) { boarForceGetOff(); return 0; } - if (!e_wb_p->checkNormalRideMode() && mProcID != PROC_BOAR_RUN) { + if (!boar->checkNormalRideMode() && mProcID != PROC_BOAR_RUN) { procBoarRunInit(); return 0; } } - MtxP ride_mtx = e_wb_p->getRideMtx(); + MtxP ride_mtx = boar->getRideMtx(); field_0x2f99 = 0x60; mDoMtx_multVec(ride_mtx, &l_localBoarRidePos, ¤t.pos); @@ -470,18 +474,20 @@ int daAlink_c::setSyncBoarPos() { } int daAlink_c::setSyncBoarRunPos() { - e_wb_class* e_wb_p = (e_wb_class*)mRideAcKeep.getActor(); - if (e_wb_p == NULL || e_wb_p->checkDownDamage()) { + e_wb_class* boar = (e_wb_class*)mRideAcKeep.getActor(); + fopAc_ac_c* boar_actor = &boar->mEnemy; + + if (boar == NULL || boar->checkDownDamage()) { boarForceGetOff(); return 0; } - if (e_wb_p->checkNormalRideMode()) { + if (boar->checkNormalRideMode()) { procHorseWaitInit(); return 0; } - MtxP ride_mtx = e_wb_p->getRideMtx(); + MtxP ride_mtx = boar->getRideMtx(); field_0x2f99 = 0x60; static const Vec localOffset = {-30.0f, -18.0f, 0.0f}; @@ -495,8 +501,8 @@ int daAlink_c::setSyncBoarRunPos() { current.angle.y = shape_angle.y; if (mProcID == PROC_BOAR_RUN && mProcVar3.field_0x300e != 0) { - mUnderFrameCtrl[0].setFrame(e_wb_p->nowAnimeFrame()); - getNowAnmPackUnder(UNDER_0)->setFrame(e_wb_p->nowAnimeFrame()); + mUnderFrameCtrl[0].setFrame(boar->nowAnimeFrame()); + getNowAnmPackUnder(UNDER_0)->setFrame(boar->nowAnimeFrame()); } return 1; @@ -511,94 +517,96 @@ BOOL daAlink_c::setSyncRidePos() { } void daAlink_c::setHorseTurnAnime() { - daHorse_c* temp_r3 = dComIfGp_getHorseActor(); - u16 temp_r3_2 = temp_r3->getAnmIdx(0); + daHorse_c* horse = dComIfGp_getHorseActor(); + u16 anm_idx = horse->getAnmIdx(0); - daAlink_ANM var_r31; - if (temp_r3_2 == 0xC) { - var_r31 = ANM_HORSE_JUMP_START; - } else if (temp_r3_2 == 0xB) { - var_r31 = ANM_HORSE_JUMP; - } else if (temp_r3_2 == 0xA) { - var_r31 = ANM_HORSE_JUMP_LAND; - } else if (temp_r3_2 == 0x15) { - var_r31 = ANM_HORSE_STOP; - } else if (temp_r3_2 == 0x14) { - var_r31 = ANM_HORSE_STAND; + daAlink_ANM anm; + if (anm_idx == 12) { + anm = ANM_HORSE_JUMP_START; + } else if (anm_idx == 11) { + anm = ANM_HORSE_JUMP; + } else if (anm_idx == 10) { + anm = ANM_HORSE_JUMP_LAND; + } else if (anm_idx == 21) { + anm = ANM_HORSE_STOP; + } else if (anm_idx == 20) { + anm = ANM_HORSE_STAND; } else { - var_r31 = ANM_HORSE_STOP_TO_STAND; + anm = ANM_HORSE_STOP_TO_STAND; } - setSingleAnimeBaseMorf(var_r31, temp_r3->getMorfFrame()); + setSingleAnimeBaseMorf(anm, horse->getMorfFrame()); - f32 temp_f1 = temp_r3->getAnmFrame(0); - mUnderFrameCtrl[0].setFrame(temp_f1); - getNowAnmPackUnder(UNDER_0)->setFrame(temp_f1); + f32 anm_frame = horse->getAnmFrame(0); + mUnderFrameCtrl[0].setFrame(anm_frame); + getNowAnmPackUnder(UNDER_0)->setFrame(anm_frame); if (getNowAnmPackUnder(UNDER_0) != getNowAnmPackUpper(UPPER_0)) { - mUpperFrameCtrl[0].setFrame(temp_f1); - getNowAnmPackUpper(UPPER_0)->setFrame(temp_f1); + mUpperFrameCtrl[0].setFrame(anm_frame); + getNowAnmPackUpper(UPPER_0)->setFrame(anm_frame); } } -void daAlink_c::getBaseHorseAnime(daAlink_c::daAlink_ANM* param_0) { - daHorse_c* temp_r27 = dComIfGp_getHorseActor(); +void daAlink_c::getBaseHorseAnime(daAlink_c::daAlink_ANM* i_anmList) { + daHorse_c* horse = dComIfGp_getHorseActor(); if (checkHorseNoUpperAnime() || checkUpperHorseLieAnime()) { if (!dComIfGp_checkPlayerStatus0(0, 0x2000)) { if (checkShieldGet()) { - setRStatus(0xB); + setRStatus(BUTTON_STATUS_DEFEND); } else { - setRStatus(0x3E); + setRStatus(BUTTON_STATUS_COVER); } if (spActionButton()) { resetUpperAnime(UPPER_2, -1.0f); - param_0[0] = ANM_HORSE_CROUCH; - param_0[1] = ANM_HORSE_CROUCH; + i_anmList[0] = ANM_HORSE_CROUCH; + i_anmList[1] = ANM_HORSE_CROUCH; return; } } } - for (int i = 0; i < 3; i++, param_0++) { - u16 temp_r3_2 = temp_r27->getAnmIdx(i); - if (temp_r3_2 == 7 || temp_r27->speedF < 0.0f) { + int i; + u16 anm_idx; + for (i = 0; i < 3; i++, i_anmList++) { + anm_idx = horse->getAnmIdx(i); + if (anm_idx == 7 || horse->speedF < 0.0f) { if (i == 1) { - param_0[0] = ANM_HORSE_WALK_B; + i_anmList[0] = ANM_HORSE_WALK_B; } else { - param_0[0] = ANM_HORSE_TURN_B; + i_anmList[0] = ANM_HORSE_TURN_B; } - } else if (temp_r3_2 == 0x12) { - param_0[0] = ANM_HORSE_DASH_B; - } else if (temp_r3_2 == 0x22) { - param_0[0] = ANM_HORSE_WALK_B; - } else if (temp_r3_2 == 0x11) { - param_0[0] = ANM_HORSE_DASH_START; - } else if (temp_r3_2 == 0x13) { + } else if (anm_idx == 0x12) { + i_anmList[0] = ANM_HORSE_DASH_B; + } else if (anm_idx == 0x22) { + i_anmList[0] = ANM_HORSE_WALK_B; + } else if (anm_idx == 0x11) { + i_anmList[0] = ANM_HORSE_DASH_START; + } else if (anm_idx == 0x13) { if (checkHorseZeldaBowMode() ) { - param_0[0] = ANM_HORSE_DASH_B; + i_anmList[0] = ANM_HORSE_DASH_B; } else { - param_0[0] = ANM_HORSE_DASH_A; + i_anmList[0] = ANM_HORSE_DASH_A; } - } else if (temp_r3_2 == 0x23) { - param_0[0] = ANM_HORSE_WALK_A; - } else if (temp_r3_2 == 0x17 || temp_r3_2 == 0x18) { + } else if (anm_idx == 0x23) { + i_anmList[0] = ANM_HORSE_WALK_A; + } else if (anm_idx == 0x17 || anm_idx == 0x18) { if (i == 1) { - param_0[0] = ANM_HORSE_WALK_B; + i_anmList[0] = ANM_HORSE_WALK_B; } else { - param_0[0] = ANM_HORSE_TURN_LEFT; + i_anmList[0] = ANM_HORSE_TURN_LEFT; } - } else if (temp_r3_2 == 0x19 || temp_r3_2 == 0x1A) { + } else if (anm_idx == 0x19 || anm_idx == 0x1A) { if (i == 1) { - param_0[0] = ANM_HORSE_WALK_B; + i_anmList[0] = ANM_HORSE_WALK_B; } else { - param_0[0] = ANM_HORSE_TURN_RIGHT; + i_anmList[0] = ANM_HORSE_TURN_RIGHT; } - } else if (temp_r3_2 == 0xFFFF && i == 1) { - param_0[0] = param_0[-1]; + } else if (anm_idx == 0xFFFF && i == 1) { + i_anmList[0] = i_anmList[-1]; } else { - param_0[0] = ANM_HORSE_WAIT; + i_anmList[0] = ANM_HORSE_WAIT; } } } @@ -610,7 +618,7 @@ int daAlink_c::checkHorseSpecialProc() { return 0; } - if (checkEndResetFlg2(ERFLG2_UNK_2)) { + if (checkEndResetFlg2(ERFLG2_FORCE_HORSE_GETOFF)) { current.pos = horse_p->current.pos; return procWaitInit(); } @@ -640,27 +648,32 @@ BOOL daAlink_c::checkHorseServiceWaitAnime() { int daAlink_c::setSyncHorse(int param_0) { daHorse_c* horse_p = dComIfGp_getHorseActor(); - daPy_frameCtrl_c* sp24 = &mUnderFrameCtrl[0]; - daPy_frameCtrl_c* sp20 = &mUnderFrameCtrl[2]; - BOOL mode_1 = checkModeFlg(1) ? TRUE : FALSE; + daPy_frameCtrl_c* framectrl1 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl2 = &mUnderFrameCtrl[2]; + + BOOL sp1C; + if (checkModeFlg(1)) { + sp1C = TRUE; + } else { + sp1C = FALSE; + } setSyncHorsePos(); if (checkHorseSpecialProc()) { return 0; } - daAlink_ANM sp8[3]; - getBaseHorseAnime(sp8); + daAlink_ANM anmList[3]; + getBaseHorseAnime(anmList); if (fabsf(horse_p->speedF) < 0.001f) { - if (!mode_1) { + if (!sp1C) { field_0x3004 = 0; } else if (checkInputOnR() && horse_p->checkWait() && mProcID != PROC_HORSE_SUBJECTIVITY && - mProcID != PROC_HORSE_CUT_TURN && sp8[0] != ANM_HORSE_TURN_LEFT && - sp8[0] != ANM_HORSE_TURN_RIGHT && field_0x3004 == 0) { - s32 dir = getDirectionFromShapeAngle(); - if (dir == DIR_FORWARD) - { + mProcID != PROC_HORSE_CUT_TURN && anmList[0] != ANM_HORSE_TURN_LEFT && + anmList[0] != ANM_HORSE_TURN_RIGHT && field_0x3004 == 0) { + int dir = getDirectionFromShapeAngle(); + if (dir == DIR_FORWARD) { field_0x3004 = mpHIO->mHorse.m.mWalkOutProhibitionTime; setSingleAnimeParam(ANM_WSTARTH, &mpHIO->mHorse.m.mWalkOutAnm); offNoResetFlg1(FLG1_UNK_1000); @@ -683,16 +696,14 @@ int daAlink_c::setSyncHorse(int param_0) { } if (param_0 && field_0x30a6 == 0 && horse_p->speedF >= 0.0f && - horse_p->getAimNeckAngleY() == 0 && sp8[0] != ANM_HORSE_TURN_LEFT && - sp8[0] != ANM_HORSE_TURN_RIGHT && - (field_0x2f8c == 10 && - (checkHorseNoUpperAnime() || checkEquipAnime() || checkUpperGuardAnime()) || - (mProcID == PROC_HORSE_CUT || mProcID == PROC_HORSE_CUT_TURN || - mProcID == PROC_HORSE_CUT_CHARGE_READY))) + horse_p->getAimNeckAngleY() == 0 && anmList[0] != ANM_HORSE_TURN_LEFT && + anmList[0] != ANM_HORSE_TURN_RIGHT && + ((field_0x2f8c == 10 && (checkHorseNoUpperAnime() || checkEquipAnime() || checkUpperGuardAnime())) || + (mProcID == PROC_HORSE_CUT || mProcID == PROC_HORSE_CUT_TURN || mProcID == PROC_HORSE_CUT_CHARGE_READY))) { if (checkCowGame()) { if (checkHorseNoUpperAnime()) { - setDoStatus(40); + setDoStatus(BUTTON_STATUS_WHOOP); if (doTrigger()) { onResetFlg0(RFLG0_COW_GAME_LEASH); @@ -703,13 +714,12 @@ int daAlink_c::setSyncHorse(int param_0) { } } } else if (checkHorseDashAccept()) { - setDoStatus(9); + setDoStatus(BUTTON_STATUS_DASH); if (doTrigger()) { field_0x3004 = mpHIO->mHorse.m.mWalkOutProhibitionTime; - daAlink_ANM anm; + daAlink_ANM anm = ANM_HORSE_LASH; const daAlinkHIO_anm_c* anmparam_p = &mpHIO->mHorse.m.mWhipAnm; - anm = ANM_HORSE_LASH; if (mProcID != PROC_HORSE_CUT && mProcID != PROC_HORSE_CUT_TURN && mProcID != PROC_HORSE_CUT_CHARGE_READY) @@ -717,8 +727,7 @@ int daAlink_c::setSyncHorse(int param_0) { setSingleAnimeParam(anm, anmparam_p); } - setUnderAnimeParam(getMainBckData(anm)->m_underID, UNDER_2, - &mpHIO->mHorse.m.mWhipAnm); + setUnderAnimeParam(getMainBckData(anm)->m_underID, UNDER_2, anmparam_p); onNoResetFlg1(FLG1_UNK_1000); horse_p->offPlayerBackRideLash(); voiceStart(Z2SE_AL_V_RUSH_HORSE); @@ -733,15 +742,15 @@ int daAlink_c::setSyncHorse(int param_0) { } if ((checkHorseWalkStartAnm() && - sp24->getFrame() > mpHIO->mHorse.m.mHorseWalkStartFrame) || - (checkHorseWaitLashAnime() && sp20->getFrame() > 13.0f)) + framectrl1->getFrame() > mpHIO->mHorse.m.mHorseWalkStartFrame) || + (checkHorseWaitLashAnime() && framectrl2->getFrame() > 13.0f)) { horse_p->onMoveAccept(); } if (checkNoResetFlg1(FLG1_UNK_1000) && - ((checkHorseUnderDashStartAnime() && sp20->getFrame() > 13.0f) || - (checkHorseUnderLashAnime() && sp20->getFrame() > 13.0f))) + ((checkHorseUnderDashStartAnime() && framectrl2->getFrame() > 13.0f) || + (checkHorseUnderLashAnime() && framectrl2->getFrame() > 13.0f))) { offNoResetFlg1(FLG1_UNK_1000); horse_p->onPlayerLash(); @@ -769,43 +778,42 @@ int daAlink_c::setSyncHorse(int param_0) { } } - BOOL var_r28 = - checkAnmEnd(mUnderFrameCtrl) || - (checkHorseServiceWaitAnime() && - (!checkNoUpperAnime() || horse_p->getAimNeckAngleY() != 0 || !checkModeFlg(1))); + BOOL var_r28 = checkAnmEnd(mUnderFrameCtrl) || + (checkHorseServiceWaitAnime() && (!checkNoUpperAnime() || horse_p->getAimNeckAngleY() != 0 || !checkModeFlg(1))); - if (((var_r28 || sp8[0] == ANM_HORSE_TURN_LEFT || sp8[0] == ANM_HORSE_TURN_RIGHT || - sp8[0] == ANM_HORSE_DASH_START || - (spActionButton() && !checkHorseWalkStartAnm() && !checkHorseWaitLashAnime())) && - mProcID != PROC_HORSE_CUT_TURN) || - field_0x2f8c == 10) + if (((var_r28 || anmList[0] == ANM_HORSE_TURN_LEFT || anmList[0] == ANM_HORSE_TURN_RIGHT || + anmList[0] == ANM_HORSE_DASH_START || + (spActionButton() && !checkHorseWalkStartAnm() && !checkHorseWaitLashAnime())) + && mProcID != PROC_HORSE_CUT_TURN + ) + || field_0x2f8c == 10 + ) { if ((var_r28 || field_0x3004 != mpHIO->mHorse.m.mWalkOutProhibitionTime) && field_0x3004 != 0) { field_0x3004--; } - f32 var_f31; + f32 morf_frame; if (var_r28 && horse_p->getMorfFrame() < 4.0f) { - var_f31 = 4.0f; + morf_frame = 4.0f; } else { - var_f31 = horse_p->getMorfFrame(); + morf_frame = horse_p->getMorfFrame(); } - f32 var_f30; - if (sp8[0] == ANM_HORSE_TURN_LEFT || sp8[0] == ANM_HORSE_TURN_B || - sp8[0] == ANM_HORSE_TURN_RIGHT) - { - var_f30 = 0.0f; + f32 morf; + if (anmList[0] == ANM_HORSE_TURN_LEFT || anmList[0] == ANM_HORSE_TURN_B || anmList[0] == ANM_HORSE_TURN_RIGHT) { + morf = 0.0f; } else { - var_f30 = horse_p->getBlendRate(); + morf = horse_p->getBlendRate(); } - if (sp8[0] == ANM_HORSE_DASH_START && !checkUnderMove0BckNoArc(ANM_HORSE_DASH_START)) { + if (anmList[0] == ANM_HORSE_DASH_START && !checkUnderMove0BckNoArc(ANM_HORSE_DASH_START)) { voiceStart(Z2SE_AL_V_RUSH_HORSE); } - setDoubleAnime(var_f30, 1.0f, 1.0f, sp8[0], sp8[1], 10, var_f31); + setDoubleAnime(morf, 1.0f, 1.0f, anmList[0], anmList[1], 10, morf_frame); setBaseHorseAnimeFrame(); + if (var_r28) { setHorseSwordUp(0); } @@ -815,15 +823,21 @@ int daAlink_c::setSyncHorse(int param_0) { } int daAlink_c::setSyncBoar(int param_0) { - e_wb_class* e_wb_p = (e_wb_class*)mRideAcKeep.getActor(); - fopAc_ac_c* e_wb_actor = (fopAc_ac_c*)e_wb_p; - BOOL mode_1 = checkModeFlg(1); + e_wb_class* boar = (e_wb_class*)mRideAcKeep.getActor(); + fopAc_ac_c* boar_actor = (fopAc_ac_c*)boar; + + BOOL var_r27; + if (checkModeFlg(1)) { + var_r27 = TRUE; + } else { + var_r27 = FALSE; + } if (!setSyncBoarPos()) { return 0; } - if (fabsf(e_wb_actor->speedF) < 0.001f && mode_1 && checkInputOnR() && e_wb_p->checkWait() && + if (fabsf(boar_actor->speedF) < 0.001f && var_r27 && checkInputOnR() && boar->checkWait() && mProcID != PROC_HORSE_SUBJECTIVITY && field_0x3004 == 0) { int direction = getDirectionFromShapeAngle(); @@ -833,8 +847,8 @@ int daAlink_c::setSyncBoar(int param_0) { } } - if (param_0 && e_wb_p->getWaitRollAngle() == 0 && checkHorseNoUpperAnime()) { - setDoStatus(9); + if (param_0 && boar->getWaitRollAngle() == 0 && checkHorseNoUpperAnime()) { + setDoStatus(BUTTON_STATUS_DASH); if (doTrigger()) { changeBoarRunRide(); } @@ -844,7 +858,7 @@ int daAlink_c::setSyncBoar(int param_0) { (checkHorseServiceWaitAnime() && (!checkNoUpperAnime() || !checkModeFlg(1)))) { setBaseBoarAnime(); - } else if (mUnderAnmHeap[0].getIdx() == 0x1B3) { + } else if (mUnderAnmHeap[0].getIdx() == dRes_ID_ALANM_BCK_LASHS_e) { if (mUnderFrameCtrl[0].checkPass(10.0f)) { changeBoarRunRide(); } @@ -852,22 +866,21 @@ int daAlink_c::setSyncBoar(int param_0) { setBaseBoarAnime(); } - if (mUnderAnmHeap[0].getIdx() != 0x1B3) { - if (e_wb_p->getWaitRollAngle() > 0) { + if (mUnderAnmHeap[0].getIdx() != dRes_ID_ALANM_BCK_LASHS_e) { + if (boar->getWaitRollAngle() > 0) { setHorseTurnUpperAnime(FALSE); - } else if (e_wb_p->getWaitRollAngle() < 0) { + } else if (boar->getWaitRollAngle() < 0) { setHorseTurnUpperAnime(TRUE); } } if (checkHorseTurnAnime()) { - if (e_wb_p->getWaitRollAngle() == 0) { + if (boar->getWaitRollAngle() == 0) { resetUpperAnime(UPPER_2, 4.0f); field_0x33f0 = 0.0f; } else { - field_0x33f0 = cLib_minMaxLimit(e_wb_p->getWaitRollAngle() * 0.002f, -1.0f, 1.0f); - // supposed to be std::abs - mNowAnmPackUpper[2].setRatio(fabsf(field_0x33f0)); + field_0x33f0 = cLib_minMaxLimit(boar->getWaitRollAngle() * 0.002f, -1.0f, 1.0f); + mNowAnmPackUpper[2].setRatio(std::abs(field_0x33f0)); } } else { field_0x33f0 = 0.0f; @@ -877,13 +890,12 @@ int daAlink_c::setSyncBoar(int param_0) { } int daAlink_c::setSyncRide(int param_0) { - BOOL var_r31; - if (param_0 && mMidnaTalkDelayTimer == 0 && dComIfGp_getDoStatus() == 0 && + if (param_0 && mMidnaTalkDelayTimer == 0 && dComIfGp_getDoStatus() == BUTTON_STATUS_NONE && (!checkHorseRide() || dComIfGp_getHorseActor()->getAnmIdx(0) != 7)) { - var_r31 = TRUE; + param_0 = TRUE; } else { - var_r31 = FALSE; + param_0 = FALSE; } if (checkServiceWaitMode() && checkHorseRide() && mProcID == PROC_HORSE_WAIT && @@ -907,58 +919,61 @@ int daAlink_c::setSyncRide(int param_0) { } if (checkHorseRide()) { - return setSyncHorse(var_r31); + return setSyncHorse(param_0); } else { - return setSyncBoar(var_r31); + return setSyncBoar(param_0); } } void daAlink_c::setBaseHorseAnimeFrame() { - daHorse_c* temp_r29 = dComIfGp_getHorseActor(); - BOOL var_r27 = 0; + daHorse_c* horse = dComIfGp_getHorseActor(); + BOOL var_r27 = FALSE; - f32 var_f31; + f32 anm_frame; if (mUnderAnmHeap[0].checkNoSetArcNo()) { u16 temp_r28 = mUnderAnmHeap[0].getIdx(); if (temp_r28 == getMainBckData(ANM_HORSE_WAIT)->m_underID) { - var_f31 = mUnderFrameCtrl[0].getFrame(); - } else if ((temp_r28 == getMainBckData(ANM_HORSE_TURN_B)->m_underID && temp_r29->getAnmIdx(1) == 6) || ((temp_r28 == getMainBckData(ANM_HORSE_TURN_LEFT)->m_underID || temp_r28 == getMainBckData(ANM_HORSE_TURN_RIGHT)->m_underID) && (temp_r29->getAnmIdx(0) == 0x17 || temp_r29->getAnmIdx(0) == 0x19))) { - var_f31 = mUnderFrameCtrl[0].getEnd(); + anm_frame = mUnderFrameCtrl[0].getFrame(); + } else if ((temp_r28 == getMainBckData(ANM_HORSE_TURN_B)->m_underID && horse->getAnmIdx(1) == 6) || + ((temp_r28 == getMainBckData(ANM_HORSE_TURN_LEFT)->m_underID || temp_r28 == getMainBckData(ANM_HORSE_TURN_RIGHT)->m_underID) && + (horse->getAnmIdx(0) == 0x17 || horse->getAnmIdx(0) == 0x19))) + { + anm_frame = mUnderFrameCtrl[0].getEnd(); mUnderFrameCtrl[0].onEndFlg(); - var_r27 = 1; + var_r27 = TRUE; } else { field_0x3460 = 0.0f; - var_f31 = temp_r29->getAnmFrame(0); + anm_frame = horse->getAnmFrame(0); } } else { - var_f31 = temp_r29->getAnmFrame(0); + anm_frame = horse->getAnmFrame(0); } - getNowAnmPackUnder(UNDER_0)->setFrame(var_f31); - mUnderFrameCtrl[0].setFrame(var_f31); + getNowAnmPackUnder(UNDER_0)->setFrame(anm_frame); + mUnderFrameCtrl[0].setFrame(anm_frame); if (var_r27) { getNowAnmPackUnder(UNDER_1)->setFrame(field_0x3460); simpleAnmPlay(getNowAnmPackUnder(UNDER_1)); field_0x3460 = getNowAnmPackUnder(UNDER_1)->getFrame(); - } else if (temp_r29->getAnmIdx(1) == 0xFFFF) { - getNowAnmPackUnder(UNDER_1)->setFrame(var_f31); + } else if (horse->getAnmIdx(1) == 0xFFFF) { + getNowAnmPackUnder(UNDER_1)->setFrame(anm_frame); } else { - getNowAnmPackUnder(UNDER_1)->setFrame(temp_r29->getAnmFrame(1)); + getNowAnmPackUnder(UNDER_1)->setFrame(horse->getAnmFrame(1)); } - getNowAnmPackUpper(UPPER_0)->setFrame(var_f31); + getNowAnmPackUpper(UPPER_0)->setFrame(anm_frame); getNowAnmPackUpper(UPPER_1)->setFrame(getNowAnmPackUnder(UNDER_1)->getFrame()); } void daAlink_c::setBaseBoarAnime() { - e_wb_class* temp_r30 = (e_wb_class*)mRideAcKeep.getActor(); + e_wb_class* boar_actor = (e_wb_class*)mRideAcKeep.getActor(); f32 var_f31; if (checkEventRun() && fopAcM_getTalkEventPartner(this) == (fopAc_ac_c*)getMidnaActor()) { var_f31 = 0.0f; } else { - var_f31 = temp_r30->rideSpeedRate(); + var_f31 = boar_actor->rideSpeedRate(); } if (var_f31 < 0.2f) { @@ -973,9 +988,9 @@ void daAlink_c::setBaseBoarAnime() { void daAlink_c::setBaseRideAnime() { if (checkHorseRide()) { daHorse_c* horse_p = dComIfGp_getHorseActor(); - daAlink_ANM sp8[3]; - getBaseHorseAnime(sp8); - setDoubleAnime(horse_p->getBlendRate(), 1.0f, 1.0f, sp8[0], sp8[1], 10, + daAlink_ANM anmList[3]; + getBaseHorseAnime(anmList); + setDoubleAnime(horse_p->getBlendRate(), 1.0f, 1.0f, anmList[0], anmList[1], 10, horse_p->getMorfFrame()); setBaseHorseAnimeFrame(); } else { @@ -988,7 +1003,7 @@ bool daAlink_c::checkHorseSwordUpSpped() { return horse_p->speedF > horse_p->getLashMaxSpeedF() * 0.89999998f; } -void daAlink_c::setHorseSwordUp(int param_0) { +void daAlink_c::setHorseSwordUp(BOOL param_0) { if (checkHorseRide() && checkNoUpperAnime() && mEquipItem == 0x103 && !checkHorseZeldaBowMode() && ((param_0 && checkHorseSwordUpSpped()) || @@ -1083,7 +1098,9 @@ int daAlink_c::checkHorseGetOffDirection() { f32 check_y[3] = {0.0f, 0.0f, 0.0f}; check_y[0] = current.pos.y; check_y[1] = ride_actor_p->current.pos.y + (current.pos.y - ride_actor_p->current.pos.y) * 0.5f; - check_y[2] = ride_actor_p->current.pos.y + l_autoUpHeight; + + f32 var_f31 = ride_actor_p->current.pos.y + l_autoUpHeight; + check_y[2] = var_f31; int check_no; int i; @@ -1113,16 +1130,16 @@ int daAlink_c::checkHorseGetOffDirection() { } void daAlink_c::boarForceGetOff() { - procCoLargeDamageInit(-4, 1, 0, 0, NULL, 0); + procCoLargeDamageInit(-4, TRUE, 0, 0, NULL, 0); } void daAlink_c::horseGetOffEnd() { if (field_0x2fc0 == 0) { - shape_angle.y -= 0x4000; + shape_angle.y -= (s16)0x4000; setOldRootQuaternion(0, 0x4000, 0); mDoMtx_stack_c::YrotS(-0x4000); } else { - shape_angle.y += 0x4000; + shape_angle.y += (s16)0x4000; setOldRootQuaternion(0, -0x4000, 0); mDoMtx_stack_c::YrotS(0x4000); } @@ -1135,8 +1152,11 @@ void daAlink_c::horseGetOffEnd() { } int daAlink_c::checkNextActionHorse() { - if ((!checkGrabAnimeAndThrow() || mProcID == PROC_HORSE_GRAB_MOVE) && - checkNextActionFromButton()) + #if PLATFORM_GCN + if ((!checkGrabAnimeAndThrow() || mProcID == PROC_HORSE_GRAB_MOVE) && checkNextActionFromButton()) + #else + if (checkGrabAnimeAndThrow()) + #endif { return 1; } @@ -1175,49 +1195,47 @@ int daAlink_c::checkNextActionHorse() { } BOOL daAlink_c::checkHorseGetOff() { - return (checkHorseRide() && dComIfGp_getHorseActor() != NULL && - ((daHorse_c*)dComIfGp_getHorseActor())->checkGetOff()) || - (checkBoarRide() && ((e_wb_class*)mRideAcKeep.getActor()) != NULL && - ((e_wb_class*)mRideAcKeep.getActor())->checkGetOff()); + return (checkHorseRide() && dComIfGp_getHorseActor() != NULL && ((daHorse_c*)dComIfGp_getHorseActor())->checkGetOff()) || + (checkBoarRide() && ((e_wb_class*)mRideAcKeep.getActor()) != NULL && ((e_wb_class*)mRideAcKeep.getActor())->checkGetOff()); } int daAlink_c::checkHorseGetOffAndSetDoStatus() { - daHorse_c* temp_r29 = dComIfGp_getHorseActor(); - int var_r30 = 0; - BOOL temp_r28 = checkHorseGetOff(); + daHorse_c* horse = dComIfGp_getHorseActor(); + int off_direction = DIR_FORWARD; + BOOL isGetOff = checkHorseGetOff(); if (!(fabsf(mRideAcKeep.getActor()->speedF) < 30.0f) || !setTalkStatus()) { if (checkHorseLieAnime()) { if (!checkSpecialHorseRide()) { - setDoStatus(0x32); + setDoStatus(BUTTON_STATUS_DISMOUNT); } else { - setDoStatus(0x8C); + setDoStatus(BUTTON_STATUS_UNK_140); } - } else if ((checkHorseNoUpperAnime() || checkEquipAnime()) && mMidnaTalkDelayTimer == 0 && !checkInputOnR() && temp_r28) { + } else if ((checkHorseNoUpperAnime() || checkEquipAnime()) && mMidnaTalkDelayTimer == 0 && !checkInputOnR() && isGetOff) { if (mEquipItem == fpcNm_ITEM_NONE) { - var_r30 = checkHorseGetOffDirection(); - if ((var_r30 != DIR_LEFT || (checkHorseRide() && temp_r29->checkEnemySearch())) && field_0x2fb4 == 0) { + off_direction = checkHorseGetOffDirection(); + if ((off_direction != DIR_LEFT || (checkHorseRide() && horse->checkEnemySearch())) && field_0x2fb4 == 0) { if (!checkSpecialHorseRide()) { - setDoStatus(0x32); + setDoStatus(BUTTON_STATUS_DISMOUNT); } else { - setDoStatus(0x8C); + setDoStatus(BUTTON_STATUS_UNK_140); } } - } else if (checkHorseRide() && !checkSpecialHorseRide() && field_0x2fb4 == 0 && temp_r29->checkEnemySearch()) { - setDoStatus(0x32); + } else if (checkHorseRide() && !checkSpecialHorseRide() && field_0x2fb4 == 0 && horse->checkEnemySearch()) { + setDoStatus(BUTTON_STATUS_DISMOUNT); } else { - setDoStatus(4); + setDoStatus(BUTTON_STATUS_PUT_AWAY); } } } - return var_r30; + return off_direction; } int daAlink_c::setHorseGetOff(int param_0) { daHorse_c* horse_p = dComIfGp_getHorseActor(); - if (dComIfGp_getDoStatus() == 0x32 && doTrigger()) { + if (dComIfGp_getDoStatus() == BUTTON_STATUS_DISMOUNT && doTrigger()) { if ((checkHorseRide() && horse_p->checkEnemySearch()) || checkHorseLieAnime()) { resetUpperAnime(UPPER_2, -1.0f); procBackJumpInit(0); @@ -1231,7 +1249,7 @@ int daAlink_c::setHorseGetOff(int param_0) { } int daAlink_c::procHorseRideInit() { - BOOL var_r25 = 0; + BOOL var_r25 = FALSE; if (mEquipItem != fpcNm_ITEM_NONE) { if (mEquipItem == 0x103) { @@ -1242,67 +1260,67 @@ int daAlink_c::procHorseRideInit() { mRideAcKeep.setData(field_0x27f4); - daAlink_ANM var_r29; - MtxP var_r28; - Vec* var_r27; - u32 var_r24; + daAlink_ANM anm; + MtxP rideMtx; + Vec* localRidePos_p; + u32 mode; if (fopAcM_GetName(field_0x27f4) == PROC_HORSE) { - daHorse_c* temp_r26 = (daHorse_c*)field_0x27f4; - temp_r26->onRideStartFlg(); - var_r28 = temp_r26->getRootMtx(); - mRideStatus = 1; - var_r27 = &l_localHorseRidePos; + daHorse_c* horse = (daHorse_c*)field_0x27f4; + horse->onRideStartFlg(); + rideMtx = horse->getRootMtx(); + mRideStatus = RIDETYPE_HORSE; + localRidePos_p = &l_localHorseRidePos; field_0x384c = &l_horseBaseAnime; - var_r24 = temp_r26->checkRodeoMode(); + mode = horse->checkRodeoMode(); mZ2Link.setRiding(true); } else { - e_wb_class* temp_r23 = (e_wb_class*)field_0x27f4; - temp_r23->setPlayerRideNow(); - var_r28 = temp_r23->getRideMtx(); - mRideStatus = 2; - var_r27 = &l_localBoarRidePos; + e_wb_class* boar = (e_wb_class*)field_0x27f4; + boar->setPlayerRideNow(); + rideMtx = boar->getRideMtx(); + mRideStatus = RIDETYPE_BOAR; + localRidePos_p = &l_localBoarRidePos; field_0x384c = &l_boarBaseAnime; - var_r24 = 0; + mode = 0; } commonProcInit(PROC_HORSE_RIDE); field_0x3588 = l_waitBaseAnime; - f32 var_f30 = 1.0f; + f32 anm_speed = 1.0f; f32 var_f31; - s16 var_r22 = -1; + s16 anm_endF = -1; mProcVar2.field_0x300c = 0; setHeavyBoots(0); - int temp_r21 = getReinRideDirection(); - if (var_r24 || temp_r21 == 1) { - var_r29 = ANM_HORSE_MOUNT_BACK; + int ride_dir = getReinRideDirection(); + if (mode != 0 || ride_dir == DIR_BACKWARD) { + anm = ANM_HORSE_MOUNT_BACK; field_0x2fc0 = 2; mProcVar2.field_0x300c = 1; } else { if (checkHorseRide() && ((daHorse_c*)field_0x27f4)->checkEnemySearch()) { - var_f30 *= 1.2f; + anm_speed *= 1.2f; mProcVar2.field_0x300c = 1; - var_r22 = 0x30; + anm_endF = 0x30; } - if (temp_r21 == 2) { + if (ride_dir == DIR_LEFT) { if (checkHorseRide()) { - var_r29 = ANM_HORSE_MOUNT_LEFT; + anm = ANM_HORSE_MOUNT_LEFT; } else { - var_r29 = ANM_HORSE_RIDE_LEFT; + anm = ANM_HORSE_RIDE_LEFT; } field_0x2fc0 = 0; } else { if (checkHorseRide()) { - var_r29 = ANM_HORSE_MOUNT_RIGHT; + anm = ANM_HORSE_MOUNT_RIGHT; } else { - var_r29 = ANM_HORSE_RIDE_RIGHT; + anm = ANM_HORSE_RIDE_RIGHT; } field_0x2fc0 = 1; } - if (mDemo.getDemoMode() != 7) { + if (mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_7_e) { setOldRootQuaternion(0, (s16)(shape_angle.y - field_0x27f4->shape_angle.y), 0); } } @@ -1312,14 +1330,14 @@ int daAlink_c::procHorseRideInit() { cXyz sp2C; cXyz sp20; - mDoMtx_multVec(var_r28, var_r27, &sp2C); + mDoMtx_multVec(rideMtx, localRidePos_p, &sp2C); mDoMtx_stack_c::transS(field_0x27f4->current.pos); mDoMtx_stack_c::YrotM(field_0x27f4->shape_angle.y); mDoMtx_stack_c::XrotM(-field_0x27f4->shape_angle.x); mDoMtx_stack_c::YrotM(-field_0x27f4->shape_angle.y); mDoMtx_stack_c::transM(-field_0x27f4->current.pos.x, -field_0x27f4->current.pos.y, -field_0x27f4->current.pos.z); - mDoMtx_stack_c::concat(var_r28); - mDoMtx_stack_c::multVec(var_r27, &sp20); + mDoMtx_stack_c::concat(rideMtx); + mDoMtx_stack_c::multVec(localRidePos_p, &sp20); var_f31 = current.pos.y; current.pos = field_0x27f4->current.pos + (sp2C - sp20); @@ -1342,7 +1360,7 @@ int daAlink_c::procHorseRideInit() { current.angle.y = shape_angle.y; speed.y = 0.0f; - setSingleAnime(var_r29, var_f30, 0.0f, var_r22, 4.0f); + setSingleAnime(anm, anm_speed, 0.0f, anm_endF, 4.0f); field_0x2f99 = 0x10; field_0x2fab = 0; @@ -1355,90 +1373,90 @@ int daAlink_c::procHorseRideInit() { } int daAlink_c::procHorseRide() { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - fopAc_ac_c* temp_r3 = mRideAcKeep.getActor(); - if (temp_r3 == NULL) { + fopAc_ac_c* rideActor = mRideAcKeep.getActor(); + if (rideActor == NULL) { return checkNextAction(0); } - e_wb_class* sp8 = (e_wb_class*)temp_r3; - daHorse_c* var_r26 = (daHorse_c*)temp_r3; + e_wb_class* boar = (e_wb_class*)rideActor; + daHorse_c* horse = (daHorse_c*)rideActor; field_0x2f99 = 7; - current.pos += temp_r3->current.pos - field_0x37c8; - field_0x37c8 = temp_r3->current.pos; + current.pos += rideActor->current.pos - field_0x37c8; + field_0x37c8 = rideActor->current.pos; if (field_0x2fc0 == 2) { - if (temp_r29->getFrame() >= 25.0f) { - field_0x2f93 = 5; + if (framectrl->getFrame() >= 25.0f) { + mRightHandIndex = 5; field_0x2fab = 0x13; - } else if (temp_r29->getFrame() >= 14.0f) { - field_0x2f92 = 4; + } else if (framectrl->getFrame() >= 14.0f) { + mLeftHandIndex = 4; } - if (var_r26->checkRodeoMode()) { - if (temp_r29->getFrame() > 15.0f) { + if (horse->checkRodeoMode()) { + if (framectrl->getFrame() > 15.0f) { return procHorseRunInit(); - } else if (temp_r29->getFrame() >= 4.0f) { + } else if (framectrl->getFrame() >= 4.0f) { setSyncHorsePos(); } - } else if (temp_r29->getFrame() >= 4.0f && temp_r29->getFrame() < 8.0f) { - current.pos.y -= field_0x3478 * (0.25f * temp_r29->getRate()); - } else if (temp_r29->getFrame() > 8.0f) { + } else if (framectrl->getFrame() >= 4.0f && framectrl->getFrame() < 8.0f) { + current.pos.y -= field_0x3478 * (0.25f * framectrl->getRate()); + } else if (framectrl->getFrame() > 8.0f) { setSyncHorsePos(); - var_r26->onRideRunFlg(); - var_r26->onMoveAccept(); + horse->onRideRunFlg(); + horse->onMoveAccept(); } } else { - if (temp_r29->getFrame() >= 46.0f) { - field_0x2f92 = 4; + if (framectrl->getFrame() >= 46.0f) { + mLeftHandIndex = 4; - if (!checkBoarRide() || (field_0x2fc0 == 0) || temp_r29->getFrame() >= 53.0f) { - field_0x2f93 = 5; + if (!checkBoarRide() || field_0x2fc0 == 0 || framectrl->getFrame() >= 53.0f) { + mRightHandIndex = 5; field_0x2fab = 0x13; } else { field_0x2fab = 3; } if (checkBoarRide()) { - csXyz spC; - mDoMtx_MtxToRot(sp8->getRideMtx(), &spC); - cLib_addCalcAngleS(&shape_angle.x, -spC.z, 4, 2000, 400); + csXyz rot; + mDoMtx_MtxToRot(boar->getRideMtx(), &rot); + cLib_addCalcAngleS(&shape_angle.x, -rot.z, 4, 2000, 400); } else { - cLib_addCalcAngleS(&shape_angle.x, temp_r3->shape_angle.x, 4, 2000, 400); + cLib_addCalcAngleS(&shape_angle.x, rideActor->shape_angle.x, 4, 2000, 400); } } else { - if (temp_r29->getFrame() >= 17.0f) { + if (framectrl->getFrame() >= 17.0f) { field_0x2fab |= (u8)(1 << field_0x2fc0); if (field_0x2fc0 == 0) { - if (temp_r29->getFrame() >= 41.0f && checkHorseRide()) { - field_0x2f92 = 4; + if (framectrl->getFrame() >= 41.0f && checkHorseRide()) { + mLeftHandIndex = 4; } - } else if (temp_r29->getFrame() >= 38.0f && checkHorseRide()) { - field_0x2f93 = 5; - field_0x2fab |= 0x10; + } else if (framectrl->getFrame() >= 38.0f && checkHorseRide()) { + mRightHandIndex = 5; + field_0x2fab |= (u8)0x10; } } } - if (temp_r29->getFrame() >= 11.0f && temp_r29->getFrame() < 16.0f) { - current.pos.y -= field_0x3478 * (0.2f * temp_r29->getRate()); + if (framectrl->getFrame() >= 11.0f && framectrl->getFrame() < 16.0f) { + current.pos.y -= field_0x3478 * (0.2f * framectrl->getRate()); } - if (temp_r29->getFrame() >= 17.0f && checkHorseRide() && mProcVar2.field_0x300c != 0) { + if (framectrl->getFrame() >= 17.0f && checkHorseRide() && mProcVar2.field_0x300c != 0) { setSyncHorsePos(); - var_r26->onRideRunFlg(); - var_r26->onMoveAccept(); + horse->onRideRunFlg(); + horse->onMoveAccept(); } } - if (checkAnmEnd(temp_r29)) { + if (checkAnmEnd(framectrl)) { J3DTransformInfo* temp_r28 = field_0x2060->getOldFrameTransInfo(0); if (checkHorseRide()) { - var_r26->onRideFlg(); + horse->onRideFlg(); if (mProcVar2.field_0x300c == 0) { temp_r28->mTranslate.x += l_horseBaseAnime.x; @@ -1446,14 +1464,14 @@ int daAlink_c::procHorseRide() { temp_r28->mTranslate.z += l_horseBaseAnime.z; } } else { - sp8->setPlayerRide(); + boar->setPlayerRide(); temp_r28->mTranslate.x += l_boarBaseAnime.x; temp_r28->mTranslate.y += l_boarBaseAnime.y; temp_r28->mTranslate.z += l_boarBaseAnime.z; } - field_0x2f92 = 4; - field_0x2f93 = 5; + mLeftHandIndex = 4; + mRightHandIndex = 5; field_0x2fab = 0x13; if (field_0x2fc0 == 2) { @@ -1467,7 +1485,7 @@ int daAlink_c::procHorseRide() { field_0x30a6 = mpHIO->mHorse.m.mWhipWaitTime; field_0x3004 = mpHIO->mHorse.m.mWalkOutProhibitionTime; - var_r26->onPlayerBackRideLash(); + horse->onPlayerBackRideLash(); } } else if (mProcVar2.field_0x300c == 0 && checkHorseRide()) { setSingleAnime(ANM_HORSE_WAIT_A, 1.0f, 9.0f, -1, 4.0f); @@ -1486,6 +1504,9 @@ int daAlink_c::procHorseRide() { } int daAlink_c::procHorseGetOffInit(int param_0) { + static const Vec leftOffset = {75.0f, 102.0f, 6.224f}; + static const Vec rightOffset = {-75.0f, 102.0f, 6.221f}; + cXyz spC; commonProcInit(PROC_HORSE_GETOFF); resetUnderAnime(UNDER_2, -1.0f); @@ -1494,47 +1515,45 @@ int daAlink_c::procHorseGetOffInit(int param_0) { allUnequip(0); } - fopAc_ac_c* temp_r30 = mRideAcKeep.getActor(); + fopAc_ac_c* rideActor = mRideAcKeep.getActor(); if (checkHorseRide()) { - ((daHorse_c*)temp_r30)->offRideFlg(); + ((daHorse_c*)rideActor)->offRideFlg(); } else { - ((e_wb_class*)temp_r30)->setPlayerRideNow(); + ((e_wb_class*)rideActor)->setPlayerRideNow(); } - field_0x37d4 = temp_r30->current.pos; - mProcVar3.field_0x300e = temp_r30->shape_angle.y; + field_0x37d4 = rideActor->current.pos; + mProcVar3.field_0x300e = rideActor->shape_angle.y; field_0x2fc0 = param_0; - mDoMtx_stack_c::transS(temp_r30->current.pos.x, temp_r30->current.pos.y, temp_r30->current.pos.z); - mDoMtx_stack_c::YrotM(temp_r30->shape_angle.y); + mDoMtx_stack_c::transS(rideActor->current.pos.x, rideActor->current.pos.y, rideActor->current.pos.z); + mDoMtx_stack_c::YrotM(rideActor->shape_angle.y); - daAlink_ANM var_r29; + daAlink_ANM anm; if (field_0x2fc0 == 0) { if (checkHorseRide()) { - var_r29 = ANM_HORSE_GETOFF_LEFT; + anm = ANM_HORSE_GETOFF_LEFT; } else { - var_r29 = ANM_HORSE_FALL_LEFT; + anm = ANM_HORSE_FALL_LEFT; } - static Vec const leftOffset = {75.0f, 102.0f, 6.224f}; mDoMtx_stack_c::multVec(&leftOffset, &spC); } else { if (checkHorseRide()) { - var_r29 = ANM_HORSE_GETOFF_RIGHT; + anm = ANM_HORSE_GETOFF_RIGHT; } else { - var_r29 = ANM_HORSE_FALL_RIGHT; + anm = ANM_HORSE_FALL_RIGHT; } - static Vec const rightOffset = {-75.0f, 102.0f, 6.221f}; mDoMtx_stack_c::multVec(&rightOffset, &spC); } - setSingleAnimeBaseMorf(var_r29, 4.0f); + setSingleAnimeBaseMorf(anm, 4.0f); mLinkGndChk.SetPos(&spC); spC.y = dComIfG_Bgsp().GroundCross(&mLinkGndChk); - field_0x3478 = spC.y - temp_r30->current.pos.y; + field_0x3478 = spC.y - rideActor->current.pos.y; if (field_0x3478 < l_autoDownHeight) { mProcVar4.field_0x3010 = 1; field_0x3478 = 0.0f; @@ -1562,34 +1581,34 @@ int daAlink_c::procHorseGetOffInit(int param_0) { } int daAlink_c::procHorseGetOff() { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - fopAc_ac_c* temp_r3 = mRideAcKeep.getActor(); - if (temp_r3 != NULL) { - current.pos += temp_r3->current.pos - field_0x37d4; - field_0x37d4 = temp_r3->current.pos; - shape_angle.y += (s16)(mProcVar3.field_0x300e - temp_r3->shape_angle.y); - mProcVar3.field_0x300e = temp_r3->shape_angle.y; + fopAc_ac_c* rideActor = mRideAcKeep.getActor(); + if (rideActor != NULL) { + current.pos += rideActor->current.pos - field_0x37d4; + field_0x37d4 = rideActor->current.pos; + shape_angle.y += (s16)(mProcVar3.field_0x300e - rideActor->shape_angle.y); + mProcVar3.field_0x300e = rideActor->shape_angle.y; } cLib_addCalcAngleS(&shape_angle.z, 0, 4, 2000, 400); - if (temp_r29->getFrame() >= 35.0f) { + if (framectrl->getFrame() >= 35.0f) { field_0x2fab = 0; } else if (checkHorseRide()) { - if (temp_r29->getFrame() >= 14.0f) { + if (framectrl->getFrame() >= 14.0f) { field_0x2fab &= ~(1 << field_0x2fc0); - } else if (temp_r29->getFrame() >= 4.0f) { + } else if (framectrl->getFrame() >= 4.0f) { if (field_0x2fc0 == 0) { field_0x2fab &= ~0x2; } else { field_0x2fab &= (u8)~0x1; } } - } else if (!(temp_r29->getFrame() >= 24.0f)) { - if (temp_r29->getFrame() >= 21.0f) { + } else if (!(framectrl->getFrame() >= 24.0f)) { + if (framectrl->getFrame() >= 21.0f) { field_0x2fab &= ~(1 << field_0x2fc0); - } else if (temp_r29->getFrame() >= 3.0f) { + } else if (framectrl->getFrame() >= 3.0f) { if (field_0x2fc0 == 0) { field_0x2fab &= ~0x2; } else { @@ -1598,10 +1617,10 @@ int daAlink_c::procHorseGetOff() { } } - if (checkAnmEnd(temp_r29)) { + if (checkAnmEnd(framectrl)) { horseGetOffEnd(); checkNextAction(0); - } else if (temp_r29->getFrame() >= 32.0f) { + } else if (framectrl->getFrame() >= 32.0f) { field_0x2f99 = 5; if (checkModeFlg(0x400)) { @@ -1622,11 +1641,11 @@ int daAlink_c::procHorseGetOff() { return procLandInit(0.0f); } - if (temp_r29->getFrame() < 27.0f) { - f32 temp_f31 = temp_r29->getFrame() / 27.0f; + if (framectrl->getFrame() < 27.0f) { + f32 temp_f31 = framectrl->getFrame() / 27.0f; field_0x3588.x = (l_waitBaseAnime.x * (1.0f - temp_f31)) + (field_0x37c8.x * temp_f31); field_0x3588.z = (l_waitBaseAnime.z * (1.0f - temp_f31)) + (field_0x37c8.z * temp_f31); - } else if (temp_r29->getFrame() < 32.0f) { + } else if (framectrl->getFrame() < 32.0f) { current.pos.y += 0.2f * field_0x3478; if (mProcVar4.field_0x3010 != 0) { procFallInit(1, 4.0f); @@ -1643,7 +1662,7 @@ int daAlink_c::procHorseWaitInit() { } if (!checkHorseRide()) { - setUnderAnime(0x26E, UNDER_2, 1.0f, 0.0f, -1, -1.0f); + setUnderAnime(dRes_ID_ALANM_BCK_WAITWA_e, UNDER_2, 1.0f, 0.0f, -1, -1.0f); } else if (checkHorseUnderItemAnime()) { resetUnderAnime(UNDER_2, -1.0f); } @@ -1662,8 +1681,8 @@ int daAlink_c::procHorseWait() { return 1; } - daHorse_c* temp_r26 = (daHorse_c*)mRideAcKeep.getActor(); - if (checkHorseRide() && temp_r26->checkRodeoMode() && !checkEventRun()) { + daHorse_c* horse = (daHorse_c*)mRideAcKeep.getActor(); + if (checkHorseRide() && horse->checkRodeoMode() && !checkEventRun()) { return procHorseRunInit(); } @@ -1677,16 +1696,16 @@ int daAlink_c::procHorseWait() { } if (checkBoarSingleBattleFirst()) { - fopAc_ac_c* temp_r3 = (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchBoar, NULL); - if (temp_r3 != NULL) { - int temp_r28 = abs((s16)(cLib_targetAngleY(&temp_r3->current.pos, ¤t.pos) - temp_r3->shape_angle.y)); - f32 temp_f31 = temp_r3->current.pos.abs2XZ(current.pos); + fopAc_ac_c* boar = (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchBoar, NULL); + if (boar != NULL) { + int temp_r28 = abs((s16)(cLib_targetAngleY(&boar->current.pos, ¤t.pos) - boar->shape_angle.y)); + f32 dist_xz2 = boar->current.pos.abs2XZ(current.pos); - if (temp_r28 > 0x800 && temp_r28 < 0x5000 && temp_f31 < 360000.0f) { - setBStatus(0x2E); + if (temp_r28 > 0x800 && temp_r28 < 0x5000 && dist_xz2 < SQUARE(600.0f)) { + setBStatus(BUTTON_STATUS_CUT); } else if (checkEndResetFlg0(ERFLG0_SINGLE_BOAR_AVOID)) { - set3DStatus(0x2D, 5); - setBStatus(0x2E); + set3DStatus(BUTTON_STATUS_DODGE, 5); + setBStatus(BUTTON_STATUS_CUT); } } } @@ -1709,29 +1728,29 @@ int daAlink_c::procHorseTurnInit() { } int daAlink_c::procHorseTurn() { - daHorse_c* temp_r29 = dComIfGp_getHorseActor(); + daHorse_c* horse = dComIfGp_getHorseActor(); if (!setSyncRidePos()) { return 1; } if (mUnderFrameCtrl[0].getFrame() < 13.0f && mEquipItem == 0x103 && !checkBootsOrArmorHeavy() && checkCutTurnInputTrigger()) { - temp_r29->onCutTurnCancel(); + horse->onCutTurnCancel(); return procHorseCutTurnInit(); } - if (!temp_r29->checkStop() && !temp_r29->checkTurn()) { + if (!horse->checkStop() && !horse->checkTurn()) { mUnderFrameCtrl[0].onEndFlg(); procHorseWaitInit(); field_0x30ca = 0; - } else if (temp_r29->checkTurnCancelFrame() || temp_r29->checkStopCancelFrame()) { + } else if (horse->checkTurnCancelFrame() || horse->checkStopCancelFrame()) { onModeFlg(4); - temp_r29->onTurnCancelKeep(); + horse->onTurnCancelKeep(); if (checkHorseNoUpperAnime()) { if (checkShieldGet()) { - setRStatus(0xB); + setRStatus(BUTTON_STATUS_DEFEND); } else { - setRStatus(0x3E); + setRStatus(BUTTON_STATUS_COVER); } if (spActionButton()) { @@ -1755,24 +1774,24 @@ int daAlink_c::procHorseTurn() { if (setHorseGetOff(temp_r28)) { if (mProcID != PROC_HORSE_GETOFF) { - temp_r29->offCutTurnCancel(); + horse->offCutTurnCancel(); } return 1; } - temp_r29->offTurnCancelKeep(); + horse->offTurnCancelKeep(); } else { if (checkBootsOrArmorHeavy() && !checkEventRun() && !checkBoarSingleBattle()) { - if (temp_r29->getAnmFrame(0) >= 30.0f) { - return procCoLargeDamageInit(-4, 1, 0, 0, NULL, 0); + if (horse->getAnmFrame(0) >= 30.0f) { + return procCoLargeDamageInit(-4, TRUE, 0, 0, NULL, 0); } } else if (spActionButton() && !checkSpecialHorseRide()) { - setDoStatus(0x32); + setDoStatus(BUTTON_STATUS_DISMOUNT); if (doTrigger()) { resetUpperAnime(UPPER_2, -1.0f); - if (temp_r29->checkTurnStand()) { + if (horse->checkTurnStand()) { return procAutoJumpInit(0); } else { return procBackJumpInit(0); @@ -1860,27 +1879,27 @@ int daAlink_c::procHorseSubjectivityInit() { int daAlink_c::procHorseSubjectivity() { onResetFlg0(RFLG0_UNK_4000000); - s16 old_shape_angle = shape_angle.y; - s16 old_angle = current.angle.y; - int old_3190 = field_0x3190; + s16 prev_shape_angle = shape_angle.y; + s16 prev_angle = current.angle.y; + int prev_3190 = field_0x3190; if (!setSyncRide(0)) { return 1; } - shape_angle.y = old_shape_angle; - if (checkSubjectEnd(1)) { + shape_angle.y = prev_shape_angle; + if (checkSubjectEnd(TRUE)) { procHorseWaitInit(); } else if (checkNextActionFromButton()) { if (checkUpperReadyThrowAnime()) { - field_0x3190 = old_3190; + field_0x3190 = prev_3190; mBodyAngle.y = field_0x3190; field_0x310a = mBodyAngle.x; field_0x310c = shape_angle.y + field_0x3190; } return 1; } else { - setRideSubjectAngle(old_angle); + setRideSubjectAngle(prev_angle); } return 1; @@ -1888,7 +1907,7 @@ int daAlink_c::procHorseSubjectivity() { int daAlink_c::procHorseCutInit() { commonProcInit(PROC_HORSE_CUT); - BOOL var_r26 = 0; + int var_r26 = 0; if (checkHorseUnderItemAnime()) { resetUnderAnime(UNDER_2, -1.0f); @@ -1896,15 +1915,15 @@ int daAlink_c::procHorseCutInit() { setSyncRide(1); - fopAc_ac_c* var_r25; + fopAc_ac_c* target_actor; if (mTargetedActor != NULL) { - var_r25 = mTargetedActor; + target_actor = mTargetedActor; } else { - var_r25 = mAttention->LockonTarget(0); + target_actor = mAttention->LockonTarget(0); } - if (var_r25 != NULL) { - s16 sp8 = (s16)(cLib_targetAngleY(¤t.pos, &var_r25->eyePos) - shape_angle.y); + if (target_actor != NULL) { + s16 sp8 = (s16)(cLib_targetAngleY(¤t.pos, &target_actor->eyePos) - shape_angle.y); if (sp8 > 0x800) { var_r26 = 2; } else if (sp8 < -0x800) { @@ -1912,92 +1931,92 @@ int daAlink_c::procHorseCutInit() { } } - int var_r28; + int type; if (mComboCutCount == 1) { if (var_r26 == 3) { - var_r28 = 2; + type = 2; } else { - var_r28 = 0; + type = 0; } } else if (var_r26 == 3) { if (cM_rnd() < 0.5f) { - var_r28 = 2; + type = 2; } else { - var_r28 = 3; + type = 3; } } else if (var_r26 == 2) { if (cM_rnd() < 0.5f) { - var_r28 = 0; + type = 0; } else { - var_r28 = 1; + type = 1; } } else { - var_r28 = (int)cM_rndF(4.0f) % 4; + type = (int)cM_rndF(4.0f) % 4; } static daAlink_cutHorseParamTbl const cutParamTable[] = { { - daAlink_c::FTANM_UNK_20, - 0x91, - 0x10C, + daAlink_c::FTANM_CUTHLA, + dRes_ID_ALANM_BCK_CUTHLA_e, + dRes_ID_ALANM_BCK_FCUTHLA_e, 0x00, 0x0E, - 0x22, + CUT_TYPE_HORSE_LEFT_A, }, { - daAlink_c::FTANM_UNK_21, - 0x92, - 0x10D, + daAlink_c::FTANM_CUTHLB, + dRes_ID_ALANM_BCK_CUTHLB_e, + dRes_ID_ALANM_BCK_FCUTHLB_e, 0x00, 0x13, - 0x23, + CUT_TYPE_HORSE_LEFT_B, }, { - daAlink_c::FTANM_UNK_22, - 0x93, - 0x10E, + daAlink_c::FTANM_CUTHRA, + dRes_ID_ALANM_BCK_CUTHRA_e, + dRes_ID_ALANM_BCK_FCUTHRA_e, 0x00, 0x13, - 0x2A, + CUT_TYPE_HORSE_RIGHT_A, }, { - daAlink_c::FTANM_UNK_23, - 0x94, - 0x10F, + daAlink_c::FTANM_CUTHRB, + dRes_ID_ALANM_BCK_CUTHRB_e, + dRes_ID_ALANM_BCK_FCUTHRB_e, 0x00, 0x00, - 0x2A, + CUT_TYPE_HORSE_RIGHT_A, }, }; - const daAlinkHIO_hoCut_c1* var_r29; - const daAlink_cutHorseParamTbl* temp_r27 = &cutParamTable[var_r28]; + const daAlinkHIO_hoCut_c1* anmParams; + const daAlink_cutHorseParamTbl* cutParams = &cutParamTable[type]; field_0x2f96 = 2; - if (var_r28 == 0) { - var_r29 = &daAlinkHIO_hoCutLA_c0::m; - } else if (var_r28 == 1) { - var_r29 = &daAlinkHIO_hoCutLB_c0::m; - } else if (var_r28 == 2) { - var_r29 = &daAlinkHIO_hoCutRA_c0::m; + if (type == 0) { + anmParams = &mpHIO->mCut.mHorseCutLeftA.m; + } else if (type == 1) { + anmParams = &mpHIO->mCut.mHorseCutLeftB.m; + } else if (type == 2) { + anmParams = &mpHIO->mCut.mHorseCutRightA.m; } else { - var_r29 = &daAlinkHIO_hoCutRB_c0::m; + anmParams = &mpHIO->mCut.mHorseCutRightB.m; } - setUpperAnimeParam(temp_r27->m_upperAnm, UPPER_2, &var_r29->mCutAnm); - setFacePriTexture(temp_r27->m_faceanm); - setFacePriBck(temp_r27->m_faceBtk); - setCutType(temp_r27->m_cutType); + setUpperAnimeParam(cutParams->m_upperAnm, UPPER_2, &anmParams->mCutAnm); + setFacePriTexture(cutParams->m_faceanm); + setFacePriBck(cutParams->m_faceBtk); + setCutType(cutParams->m_cutType); - field_0x3478 = var_r29->mAttackStartFrame; - field_0x347c = var_r29->mAttackEndFrame; - field_0x3480 = var_r29->mAfterCutMorf; - field_0x3484 = var_r29->mCutAnm.mCancelFrame; + field_0x3478 = anmParams->mAttackStartFrame; + field_0x347c = anmParams->mAttackEndFrame; + field_0x3480 = anmParams->mAfterCutMorf; + field_0x3484 = anmParams->mCutAnm.mCancelFrame; if (checkBoarSingleBattle()) { - setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, mpHIO->mCut.m.mSwordLengthHorsebackFight, mpHIO->mCut.m.mSwordRadiusHorsebackFight); + setSwordAtParam(dCcG_At_Spl_UNK_0, 1, dCcD_SE_SWORD, 2, mpHIO->mCut.m.mSwordLengthHorsebackFight, mpHIO->mCut.m.mSwordRadiusHorsebackFight); } else { - setSwordAtParam(dCcG_At_Spl_UNK_0, 1, 1, 2, mpHIO->mCut.m.mSwordLengthHorseback, mpHIO->mCut.m.mSwordRadiusHorseback); + setSwordAtParam(dCcG_At_Spl_UNK_0, 1, dCcD_SE_SWORD, 2, mpHIO->mCut.m.mSwordLengthHorseback, mpHIO->mCut.m.mSwordRadiusHorseback); } voiceStart(Z2SE_AL_V_ATTACK_S); @@ -2012,7 +2031,7 @@ int daAlink_c::procHorseCutInit() { } int daAlink_c::procHorseCut() { - daPy_frameCtrl_c* temp_r30 = &mUpperFrameCtrl[2]; + daPy_frameCtrl_c* framectrl = &mUpperFrameCtrl[2]; if (setSyncRide(1) == 0) { return 1; @@ -2021,24 +2040,24 @@ int daAlink_c::procHorseCut() { setComboReserb(); checkCutTurnCharge(); - if (checkAnmEnd(temp_r30)) { - if (checkNoResetFlg2(FLG2_UNK_2)) { + if (checkAnmEnd(framectrl)) { + if (checkNoResetFlg2(FLG2_COMBO_RESERB)) { checkCutAction(); } else { resetUpperAnime(UPPER_2, 4.0f); procHorseWaitInit(); field_0x2060->initOldFrameMorf(field_0x3480, 0, 0x23); } - } else if (temp_r30->getFrame() > field_0x3484 && (checkNoResetFlg2(FLG2_UNK_2) || checkResetFlg0(RFLG0_UNK_40) || spActionButton())) { + } else if (framectrl->getFrame() > field_0x3484 && (checkNoResetFlg2(FLG2_COMBO_RESERB) || checkResetFlg0(RFLG0_UNK_40) || spActionButton())) { if (checkResetFlg0(RFLG0_UNK_40)) { procHorseCutChargeReadyInit(); - } else if (checkNoResetFlg2(FLG2_UNK_2)) { + } else if (checkNoResetFlg2(FLG2_COMBO_RESERB)) { checkCutAction(); } else { if (checkShieldGet()) { - setRStatus(0xB); + setRStatus(BUTTON_STATUS_DEFEND); } else { - setRStatus(0x3E); + setRStatus(BUTTON_STATUS_COVER); } resetUpperAnime(UPPER_2, -1.0f); @@ -2046,17 +2065,17 @@ int daAlink_c::procHorseCut() { procHorseWaitInit(); } } else { - if (temp_r30->getFrame() > field_0x3484) { + if (framectrl->getFrame() > field_0x3484) { if (checkShieldGet()) { - setRStatus(0xB); + setRStatus(BUTTON_STATUS_DEFEND); } else { - setRStatus(0x3E); + setRStatus(BUTTON_STATUS_COVER); } - resetCombo(1); + resetCombo(TRUE); } - if (temp_r30->getFrame() >= field_0x3478 && temp_r30->getFrame() < field_0x347c) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (framectrl->getFrame() >= field_0x3478 && framectrl->getFrame() < field_0x347c) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(Z2SE_AL_SWORD_SWING_S); } onResetFlg0(RFLG0_UNK_2); @@ -2068,8 +2087,8 @@ int daAlink_c::procHorseCut() { int daAlink_c::procHorseCutChargeReadyInit() { commonProcInit(PROC_HORSE_CUT_CHARGE_READY); - setUpperAnimeParam(0x96, UPPER_2, &mpHIO->mCut.mHorseCutCharge.m.mChargeAnm); - setFacePriBck(0xE8); + setUpperAnimeParam(dRes_ID_ALANM_BCK_CUTHTP_e, UPPER_2, &mpHIO->mCut.mHorseCutCharge.m.mChargeAnm); + setFacePriBck(dRes_ID_ALANM_BCK_FAT_e); field_0x2f96 = 2; setSyncRide(1); @@ -2084,16 +2103,16 @@ int daAlink_c::procHorseCutChargeReadyInit() { } int daAlink_c::procHorseCutChargeReady() { - daPy_frameCtrl_c* temp_r30 = &mUpperFrameCtrl[2]; + daPy_frameCtrl_c* framectrl = &mUpperFrameCtrl[2]; if (!setSyncRide(1)) { return 1; } setSwordChargeVoiceSe(); - BOOL var_r30 = 0; + BOOL var_r30 = FALSE; - if (checkAnmEnd(temp_r30)) { + if (checkAnmEnd(framectrl)) { if (!checkWoodSwordEquip()) { simpleAnmPlay(m_nSwordBtk); } else { @@ -2105,7 +2124,7 @@ int daAlink_c::procHorseCutChargeReady() { } if (m_nSwordBtk->getFrame() >= 14.0f || mProcVar0.field_0x3008 >= 14.0f) { - var_r30 = 1; + var_r30 = TRUE; } } @@ -2130,10 +2149,10 @@ int daAlink_c::procHorseCutTurnInit() { } setSingleAnimeParam(ANM_HORSE_CUT_TURN, &mpHIO->mCut.mHorseCutCharge.m.mSpinAnm); - setCutType(43); + setCutType(CUT_TYPE_HORSE_TURN); setSyncRide(1); field_0x3478 = mpHIO->mCut.mHorseCutCharge.m.mSpinAttackRadius; - setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, 1, 3, field_0x3478 * 0.5f, 200.0f); + setCylAtParam(getSwordAtType(), dCcG_At_Spl_UNK_1, 3, dCcD_SE_SWORD, 3, field_0x3478 * 0.5f, 200.0f); mProcVar4.field_0x3010 = mpHIO->mCut.mHorseCutCharge.m.mSpinStopTime; voiceStart(Z2SE_AL_V_KAITEN); setCutWaterDropEffect(); @@ -2142,17 +2161,17 @@ int daAlink_c::procHorseCutTurnInit() { } int daAlink_c::procHorseCutTurn() { - daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; if (!setSyncRide(1)) { return 1; } - if (checkAnmEnd(temp_r30)) { + if (checkAnmEnd(framectrl)) { procHorseWaitInit(); field_0x2060->initOldFrameMorf(4.0f, 0, 0x23); } else { - if (temp_r30->getFrame() > mpHIO->mCut.mHorseCutCharge.m.mSpinAnm.mCancelFrame) { + if (framectrl->getFrame() > mpHIO->mCut.mHorseCutCharge.m.mSpinAnm.mCancelFrame) { if (orderTalk(1)) { return 1; } @@ -2167,8 +2186,8 @@ int daAlink_c::procHorseCutTurn() { } } - if (temp_r30->getFrame() >= mpHIO->mCut.mHorseCutCharge.m.mSpinAttackStartFrame && temp_r30->getFrame() < mpHIO->mCut.mHorseCutCharge.m.mSpinAttackEndFrame) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (framectrl->getFrame() >= mpHIO->mCut.mHorseCutCharge.m.mSpinAttackStartFrame && framectrl->getFrame() < mpHIO->mCut.mHorseCutCharge.m.mSpinAttackEndFrame) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(Z2SE_AL_KAITENGIRI); } @@ -2180,7 +2199,7 @@ int daAlink_c::procHorseCutTurn() { return 1; } -int daAlink_c::procHorseDamageInit(dCcD_GObjInf* param_0) { +int daAlink_c::procHorseDamageInit(dCcD_GObjInf* i_hitObj) { commonProcInit(PROC_HORSE_DAMAGE); if (checkHorseRide()) { @@ -2189,39 +2208,41 @@ int daAlink_c::procHorseDamageInit(dCcD_GObjInf* param_0) { setSyncRide(0); - static u16 const anmIdx[] = { - 0x00BA, - 0x00B8, - 0x00BB, - 0x00BC, - 0x00B9, + static const u16 anmIdx[] = { + dRes_ID_ALANM_BCK_DAMHFS_e, + dRes_ID_ALANM_BCK_DAMHBS_e, + dRes_ID_ALANM_BCK_DAMHLS_e, + dRes_ID_ALANM_BCK_DAMHRS_e, + dRes_ID_ALANM_BCK_DAMHDS_e, }; + u16 var_r26 = mUnderAnmHeap[0].getIdx(); + if (checkUnderMove0BckNoArc(ANM_HORSE_STOP) || checkUnderMove0BckNoArc(ANM_HORSE_STOP_TO_STAND) || checkUnderMove0BckNoArc(ANM_HORSE_STAND) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_B) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_A) || checkUnderMove0BckNoArc(ANM_HORSE_DASH_START)) { mProcVar4.field_0x3010 = 0; mProcVar5.field_0x3012 = 0; setUpperAnimeParam(anmIdx[4], UPPER_2, &mpHIO->mDamage.mDamHorse.m.mNoDirectionAnm); } else { - cXyz* temp_r29 = getDamageVec(param_0); + cXyz* dmg_vec = getDamageVec(i_hitObj); f32 temp_f31 = cM_ssin(shape_angle.y); f32 temp_f1 = cM_scos(shape_angle.y); - cXyz spC((temp_r29->z * -temp_f31) + (temp_r29->x * temp_f1), temp_r29->y, (temp_r29->z * temp_f1) + (temp_r29->x * temp_f31)); + cXyz spC((dmg_vec->z * -temp_f31) + (dmg_vec->x * temp_f1), dmg_vec->y, (dmg_vec->z * temp_f1) + (dmg_vec->x * temp_f31)); mProcVar4.field_0x3010 = cLib_minMaxLimit(cM_atan2s(spC.z, spC.y), -mpHIO->mDamage.mDamHorse.m.mFrontBackBodyMaxAngle, mpHIO->mDamage.mDamHorse.m.mFrontBackBodyMaxAngle); - mProcVar5.field_0x3012 = cLib_minMaxLimit(cM_atan2s(spC.x, -JMAFastSqrt((spC.y * spC.y) + (spC.z * spC.z))), -mpHIO->mDamage.mDamHorse.m.mLeftRightBodyMaxAngle, mpHIO->mDamage.mDamHorse.m.mLeftRightBodyMaxAngle); + mProcVar5.field_0x3012 = cLib_minMaxLimit(cM_atan2s(spC.x, -JMAFastSqrt(SQUARE(spC.y) + SQUARE(spC.z))), -mpHIO->mDamage.mDamHorse.m.mLeftRightBodyMaxAngle, mpHIO->mDamage.mDamHorse.m.mLeftRightBodyMaxAngle); int direction = getDirectionFromAngle(cM_atan2s(-spC.x, -spC.z)); setUpperAnimeParam(anmIdx[direction], UPPER_2, &mpHIO->mDamage.mDamHorse.m.mWithDirectionAnm); } - setFacePriBck(0xEA); - setFacePriTexture((daAlink_c::daAlink_FTANM) 0x27); + setFacePriBck(dRes_ID_ALANM_BCK_FB_e); + setFacePriTexture(FTANM_B_A); voiceStart(Z2SE_AL_V_DAMAGE_S); seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL); - daPy_frameCtrl_c* temp_r28 = &mUpperFrameCtrl[2]; - field_0x347c = M_PI / (temp_r28->getEnd() - temp_r28->getStart()); + daPy_frameCtrl_c* framectrl = &mUpperFrameCtrl[2]; + field_0x347c = M_PI / (framectrl->getEnd() - framectrl->getStart()); setHorseZeldaDamage(); onNoResetFlg1(FLG1_UNK_10000000); return 1; @@ -2232,21 +2253,24 @@ int daAlink_c::procHorseDamage() { return 1; } - daPy_frameCtrl_c* temp_r30 = &mUpperFrameCtrl[2]; - f32 temp_f1 = cM_fsin(field_0x347c * (temp_r30->getFrame() - temp_r30->getStart())); + daPy_frameCtrl_c* framectrl = &mUpperFrameCtrl[2]; + f32 temp_f1 = cM_fsin(field_0x347c * (framectrl->getFrame() - framectrl->getStart())); mBodyAngle.x = mProcVar4.field_0x3010 * temp_f1; mBodyAngle.z = -mProcVar5.field_0x3012 * temp_f1; mBodyAngle.y = 0; - if (checkAnmEnd(temp_r30)) { + if (checkAnmEnd(framectrl)) { resetUpperAnime(UPPER_2, 4.0f); procHorseWaitInit(); } + return 1; } int daAlink_c::procHorseBowSubjectInit() { + bool var_r30 = mProcID == PROC_HORSE_BOW_MOVE; + if (!commonProcInitNotSameProc(PROC_HORSE_BOW_SUBJECT)) { return 0; } @@ -2259,7 +2283,7 @@ int daAlink_c::procHorseBowSubjectInit() { } int daAlink_c::procHorseBowSubject() { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); if (!setSyncRidePos()) { return 1; @@ -2290,7 +2314,7 @@ int daAlink_c::procHorseBowMoveInit() { } int daAlink_c::procHorseBowMove() { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); if (!setSyncRidePos()) { return 1; @@ -2365,7 +2389,7 @@ int daAlink_c::procHorseBoomerangSubject() { } if (checkBoomerangReadyAnime()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } if (!setSyncRidePos()) { @@ -2407,7 +2431,7 @@ int daAlink_c::procHorseBoomerangMove() { } if (checkBoomerangReadyAnime()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } if (!setSyncRidePos()) { @@ -2435,14 +2459,18 @@ int daAlink_c::procHorseHookshotSubjectInit() { setSyncRidePos(); setBaseRideAnime(); initHookshotUpperAnimeSpeed(1); + + #if PLATFORM_GCN setHookshotReadyMaterial(); + #endif + dComIfGp_setPlayerStatus0(0, 0x4000); return 1; } int daAlink_c::procHorseHookshotSubject() { if (checkHookshotWait()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } if (!setSyncRidePos()) { @@ -2482,7 +2510,7 @@ int daAlink_c::procHorseHookshotMove() { cancelHookshotMove(); if (checkHookshotWait()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } if (!setSyncRidePos()) { @@ -2502,7 +2530,7 @@ int daAlink_c::procHorseHookshotMove() { return 1; } -int daAlink_c::procHorseBottleDrinkInit(u16 param_0) { +int daAlink_c::procHorseBottleDrinkInit(u16 i_itemNo) { if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) { return 0; } @@ -2518,9 +2546,9 @@ int daAlink_c::procHorseBottleDrinkInit(u16 param_0) { setBaseRideAnime(); if (checkHorseRide()) { - daHorse_c* temp_r3 = dComIfGp_getHorseActor(); - temp_r3->changeOriginalDemo(); - temp_r3->changeDemoMode(0xE, 0); + daHorse_c* horse = dComIfGp_getHorseActor(); + horse->changeOriginalDemo(); + horse->changeDemoMode(0xE, 0); } else { mRideAcKeep.getActor()->speedF = 0.0f; } @@ -2529,7 +2557,7 @@ int daAlink_c::procHorseBottleDrinkInit(u16 param_0) { setFacePriAnime(ANM_BOTTLE_DRINK_START); keepItemData(); - setBottleModel(param_0); + setBottleModel(i_itemNo); dComIfGp_setPlayerStatus1(0, 0x2000); field_0x319c = 1; @@ -2539,7 +2567,7 @@ int daAlink_c::procHorseBottleDrinkInit(u16 param_0) { } int daAlink_c::procHorseBottleDrink() { - dComIfGp_getHorseActor(); + daHorse_c* horse = dComIfGp_getHorseActor(); if (!setSyncRidePos()) { resetUpperAnime(UPPER_2, 3.0f); @@ -2571,9 +2599,9 @@ int daAlink_c::procHorseKandelaarPourInit() { field_0x3478 = mRideAcKeep.getActor()->speedF; if (checkHorseRide()) { - daHorse_c* temp_r3 = dComIfGp_getHorseActor(); - temp_r3->changeOriginalDemo(); - temp_r3->changeDemoMode(1, 0); + daHorse_c* horse = dComIfGp_getHorseActor(); + horse->changeOriginalDemo(); + horse->changeDemoMode(1, 0); } else { mRideAcKeep.getActor()->speedF = 0.0f; } @@ -2603,6 +2631,7 @@ int daAlink_c::procHorseKandelaarPour() { mRideAcKeep.getActor()->speedF = field_0x3478; dComIfGp_getHorseActor()->cancelOriginalDemo(); } + return 1; } @@ -2625,12 +2654,12 @@ int daAlink_c::procHorseComeback() { field_0x2fab = 0x13; return procHorseWaitInit(); } else if (frameCtrl_p->getFrame() >= 78.0f) { - field_0x2fab |= 2; + field_0x2fab |= (u8)2; } else if (frameCtrl_p->getFrame() >= 75.0f) { - field_0x2f93 = 5; - field_0x2fab |= 0x10; + mRightHandIndex = 5; + field_0x2fab |= (u8)0x10; } else if (frameCtrl_p->getFrame() >= 68.0f) { - field_0x2fab |= 1; + field_0x2fab |= (u8)1; } else if (frameCtrl_p->checkPass(20.0f)) { voiceStart(Z2SE_AL_V_LANDING_FAIL_2); } @@ -2659,7 +2688,7 @@ int daAlink_c::procHorseRunInit() { } int daAlink_c::procHorseRun() { - daHorse_c* temp_r29 = dComIfGp_getHorseActor(); + daHorse_c* horse = dComIfGp_getHorseActor(); if (!setSyncHorsePos()) { mDoAud_changeSubBgmStatus(1); return 1; @@ -2670,41 +2699,41 @@ int daAlink_c::procHorseRun() { return 1; } - if (temp_r29->speedF > 0.0f) { + if (horse->speedF > 0.0f) { if (mProcVar3.field_0x300e != 0) { mProcVar3.field_0x300e--; } - if (temp_r29->checkRodeoLeft()) { + if (horse->checkRodeoLeft()) { if (mProcVar3.field_0x300e != 0) { - mProcVar5.field_0x3012 -= 150; + mProcVar5.field_0x3012 -= (s16)150; } else { - mProcVar5.field_0x3012 -= 600; + mProcVar5.field_0x3012 -= (s16)600; } if (mProcVar2.field_0x300c == 0) { - set3DStatus(0x7A, 4); + set3DStatus(BUTTON_STATUS_HOLD_ON, 4); } } else { if (mProcVar3.field_0x300e != 0) { - mProcVar5.field_0x3012 += 150; + mProcVar5.field_0x3012 += (s16)150; } else { - mProcVar5.field_0x3012 += 600; + mProcVar5.field_0x3012 += (s16)600; } if (mProcVar2.field_0x300c == 0) { - set3DStatus(0x7A, 1); + set3DStatus(BUTTON_STATUS_HOLD_ON, 1); } } if (checkInputOnR()) { - int temp_r3 = getDirectionFromAngle(mStickAngle); + int direction = getDirectionFromAngle(mStickAngle); s16 temp_r26 = mProcVar5.field_0x3012; - if (temp_r3 == DIR_LEFT && !temp_r29->checkRodeoLeft()) { - mProcVar5.field_0x3012 -= (600.0f + (256.0f * field_0x33a8)); - } else if (temp_r3 == DIR_RIGHT && temp_r29->checkRodeoLeft()) { - mProcVar5.field_0x3012 += (600.0f + (256.0f * field_0x33a8)); + if (direction == DIR_LEFT && !horse->checkRodeoLeft()) { + mProcVar5.field_0x3012 -= (600.0f + (256.0f * mStickValue)); + } else if (direction == DIR_RIGHT && horse->checkRodeoLeft()) { + mProcVar5.field_0x3012 += (600.0f + (256.0f * mStickValue)); } if (temp_r26 * mProcVar5.field_0x3012 <= 0) { @@ -2712,13 +2741,13 @@ int daAlink_c::procHorseRun() { } } - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; - f32 temp_f31 = temp_r28->getFrame() / temp_r28->getEnd(); + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; + f32 temp_f31 = framectrl->getFrame() / framectrl->getEnd(); mProcVar4.field_0x3010 = (field_0x3478 * (1.0f + cM_fsin((M_PI*2) * (temp_f31 - 0.69999999f)))) + (4000.0f * (1.0f - fabsf(0.000099999997f * mProcVar5.field_0x3012))); field_0x3088 = field_0x3478 * (1.0f + cM_fsin((M_PI*2) * (temp_f31 - 1.0f))); - if (temp_r28->checkPass(0.0f)) { + if (framectrl->checkPass(0.0f)) { field_0x3478 = 1000.0f - cM_rndF(500.0f); } @@ -2735,13 +2764,13 @@ int daAlink_c::procHorseRun() { mDoAud_changeSubBgmStatus(1); } } - } else if (temp_r29->getRodeoPointCnt() && temp_r29->checkTurnStand()) { - setDoStatus(0x6F); + } else if (horse->getRodeoPointCnt() && horse->checkTurnStand()) { + setDoStatus(BUTTON_STATUS_SEIZE); if (doTrigger()) { field_0x32cc = 1; - onSceneChangeArea(17, 0xFF, 0); - temp_r29->offRodeoMode(); + onSceneChangeArea(17, 0xFF, NULL); + horse->offRodeoMode(); } else { mProcVar2.field_0x300c = 1; } @@ -2750,28 +2779,30 @@ int daAlink_c::procHorseRun() { return 1; } -int daAlink_c::procHorseHangInit(dCcD_GObjInf* param_0, int param_1) { +int daAlink_c::procHorseHangInit(dCcD_GObjInf* i_hitObj, BOOL i_isPlaySE) { if (checkBoarRide()) { - return procHorseDamageInit(param_0); + return procHorseDamageInit(i_hitObj); } commonProcInit(PROC_HORSE_HANG); - daAlink_ANM var_r30; - if ((s16)(getDamageVec(param_0)->atan2sX_Z() - shape_angle.y) > 0) { - var_r30 = ANM_HORSE_DMG_LEFT; + daAlink_ANM anm; + cXyz* dmg_vec = getDamageVec(i_hitObj); + s16 var_r28 = dmg_vec->atan2sX_Z(); + if ((s16)(var_r28 - shape_angle.y) > 0) { + anm = ANM_HORSE_DMG_LEFT; field_0x32cc = 0x58; mProcVar4.field_0x3010 = 1; mProcVar5.field_0x3012 = 2; } else { - var_r30 = ANM_HORSE_DMG_RIGHT; + anm = ANM_HORSE_DMG_RIGHT; field_0x32cc = 0x59; mProcVar4.field_0x3010 = 2; mProcVar5.field_0x3012 = 1; } field_0x2fab &= ~mProcVar5.field_0x3012; - setSingleAnimeBase(var_r30); + setSingleAnimeBase(anm); mProcVar3.field_0x300e = 0; field_0x3004 = 0; field_0x3002 = 0; @@ -2780,7 +2811,7 @@ int daAlink_c::procHorseHangInit(dCcD_GObjInf* param_0, int param_1) { setSyncHorsePos(); setHorseZeldaDamage(); - if (param_1) { + if (i_isPlaySE) { voiceStart(Z2SE_AL_V_DAMAGE_ON_HORSE); seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL); } @@ -2795,7 +2826,7 @@ int daAlink_c::procHorseHang() { if (checkHorseSpecialProc()) { if (checkSpecialHorseRide()) { - field_0x2fab |= 3; + field_0x2fab |= (u8)3; } else { boarForceGetOff(); } @@ -2803,9 +2834,9 @@ int daAlink_c::procHorseHang() { return 1; } - daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - if (checkAnmEnd(temp_r30)) { + if (checkAnmEnd(framectrl)) { if (mProcVar3.field_0x300e == 0) { mProcVar3.field_0x300e = 1; voiceStart(Z2SE_AL_V_CLING_HORSE); @@ -2814,12 +2845,12 @@ int daAlink_c::procHorseHang() { checkNextActionHorse(); } } else if (mProcVar3.field_0x300e == 0) { - if (temp_r30->checkPass(7.0f)) { + if (framectrl->checkPass(7.0f)) { field_0x2fab &= ~mProcVar4.field_0x3010; - } else if (temp_r30->checkPass(36.0f)) { + } else if (framectrl->checkPass(36.0f)) { field_0x2fab |= mProcVar4.field_0x3010; } - } else if (temp_r30->checkPass(7.0f)) { + } else if (framectrl->checkPass(7.0f)) { field_0x2fab |= mProcVar5.field_0x3012; } @@ -2845,13 +2876,13 @@ int daAlink_c::procHorseGetKey() { if (checkAnmEnd(frameCtrl_p)) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else if (frameCtrl_p->getFrame() >= 34.0f) { - field_0x2f92 = 254; - field_0x2f93 = 254; + mLeftHandIndex = 254; + mRightHandIndex = 254; mProcVar2.field_0x300c = 1; } else if (frameCtrl_p->getFrame() >= 12.0f) { - field_0x2f92 = 2; + mLeftHandIndex = 2; } else if (frameCtrl_p->getFrame() >= 5.0f) { - field_0x2f92 = 3; + mLeftHandIndex = 3; } return 1; @@ -2878,6 +2909,7 @@ int daAlink_c::procHorseLookDown() { if (checkAnmEnd(mUnderFrameCtrl)) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } + return 1; } @@ -2899,8 +2931,8 @@ int daAlink_c::procBoarRunInit() { } int daAlink_c::procBoarRun() { - e_wb_class* temp_r30 = (e_wb_class*)mRideAcKeep.getActor(); - fopAc_ac_c* temp_r29 = (fopAc_ac_c*)temp_r30; + e_wb_class* boar = (e_wb_class*)mRideAcKeep.getActor(); + fopAc_ac_c* boar_actor = (fopAc_ac_c*)boar; if (mProcVar3.field_0x300e == 0 && checkAnmEnd(&mUnderFrameCtrl[0])) { setSingleAnimeBaseSpeed(ANM_HORSE_TAME_WAIT_B, 0.0f, -1.0f); @@ -2911,17 +2943,17 @@ int daAlink_c::procBoarRun() { return 1; } - if (temp_r29->speedF > 0.0f && mProcVar3.field_0x300e != 0) { - mProcVar4.field_0x3010 = (field_0x3478 * (1.0f + cM_fsin((M_PI*2) * (temp_r30->getAnimeFrameRate() - 0.2f)))) - 2000.0f; - field_0x3088 = field_0x3478 * (1.0f + cM_fsin((M_PI*2) * (temp_r30->getAnimeFrameRate() - 0.4f))); + if (boar_actor->speedF > 0.0f && mProcVar3.field_0x300e != 0) { + mProcVar4.field_0x3010 = (field_0x3478 * (1.0f + cM_fsin((M_PI*2) * (boar->getAnimeFrameRate() - 0.2f)))) - 2000.0f; + field_0x3088 = field_0x3478 * (1.0f + cM_fsin((M_PI*2) * (boar->getAnimeFrameRate() - 0.4f))); - if (temp_r30->checkAnmLoopFrame()) { + if (boar->checkAnmLoopFrame()) { field_0x3478 = 3000.0f - cM_rndF(1500.0f); } } else if (mProcVar2.field_0x300c == 0) { if (mUnderFrameCtrl[0].getFrame() >= 14.0f) { - field_0x2f92 = 0xFE; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0xFE; + mRightHandIndex = 0xFE; mProcVar2.field_0x300c = 1; } } diff --git a/src/d/actor/d_a_alink_hvyboots.inc b/src/d/actor/d_a_alink_hvyboots.inc index a1fc4f7680..ccea1765f2 100644 --- a/src/d/actor/d_a_alink_hvyboots.inc +++ b/src/d/actor/d_a_alink_hvyboots.inc @@ -18,9 +18,9 @@ void daAlink_c::concatMagneBootInvMtx() { } } -void daAlink_c::multVecMagneBootInvMtx(cXyz* vec) { +void daAlink_c::multVecMagneBootInvMtx(cXyz* o_dst) { if (checkMagneBootsOn()) { - mDoMtx_multVecSR(mMagneBootInvMtx, vec, vec); + mDoMtx_multVecSR(mMagneBootInvMtx, o_dst, o_dst); } } @@ -35,7 +35,7 @@ bool daAlink_c::commonMagneLineCheck(cXyz* i_start, cXyz* i_end) { } BOOL daAlink_c::checkBootsMoveAnime(int param_0) { - return (checkHeavyStateOn(param_0, 1) && !checkNoResetFlg0(FLG0_UNDERWATER)) || + return (checkHeavyStateOn(param_0, 1) && !checkNoResetFlg0(FLG0_WATER_IN_MOVE)) || checkDkCaught2Anime(); } @@ -56,7 +56,7 @@ int daAlink_c::setHeavyBoots(int param_0) { deleteEquipItem(TRUE, FALSE); } - if (checkNoResetFlg0(FLG0_UNDERWATER) && !dComIfGp_checkPlayerStatus1(0, 0x2000000)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE) && !dComIfGp_checkPlayerStatus1(0, 0x2000000)) { return procSwimWaitInit(0); } @@ -92,7 +92,6 @@ int daAlink_c::setHeavyBoots(int param_0) { return 0; } - s16 daAlink_c::getMagneBootsLocalAngleY(s16 param_0, int param_1) { if (param_1 == 1 || (param_1 != 2 && field_0x3114 <= 0x4000 && field_0x3114 != -0x8000)) { return param_0; @@ -107,12 +106,12 @@ s16 daAlink_c::getMagneBootsLocalAngleY(s16 param_0, int param_1) { return vec.atan2sX_Z(); } - void daAlink_c::setMagneBootsMtx(cBgS_PolyInfo* i_polyinfo, int param_1) { cM3dGPla poly; dComIfG_Bgsp().GetTriPla(*i_polyinfo, &poly); s16 var_r28 = cM_atan2s(poly.mNormal.absXZ(), poly.mNormal.y); + s16 var_r26 = field_0x3116; int temp_r3_2 = abs(var_r28); if (temp_r3_2 < 500) { var_r28 = 0; @@ -145,16 +144,14 @@ void daAlink_c::setMagneBootsMtx(cBgS_PolyInfo* i_polyinfo, int param_1) { cXyz sp44 = mMagneBootsTopVec.outprod(poly.mNormal); sp44.normalizeZP(); - f32 var_f1_2 = JMAFastSqrt(1.0f - temp_f1 * temp_f1); - f32 temp_f1_2 = cM_atan2f(var_f1_2, temp_f1); + f32 temp_f1_2 = cM_atan2f(JMAFastSqrt(1.0f - temp_f1 * temp_f1), temp_f1); f32 var_f2 = temp_f1_2 * 0.2f; if (var_f2 > 0.4f) { var_f2 = 0.4f; } else if (var_f2 < 0.025f) { var_f2 = 0.025f; - - if (0.025f > temp_f1_2) { + if (var_f2 > temp_f1_2) { var_f2 = temp_f1_2; } } @@ -167,10 +164,10 @@ void daAlink_c::setMagneBootsMtx(cBgS_PolyInfo* i_polyinfo, int param_1) { field_0x3114 = cM_atan2s(sp40.absXZ(), sp40.y); - int temp_r3_4 = abs(field_0x3114); - if (temp_r3_4 < 500) { + temp_r3_2 = abs(field_0x3114); + if (temp_r3_2 < 500) { field_0x3114 = 0; - } else if (temp_r3_4 > 0x7E0B) { + } else if (temp_r3_2 > 0x7E0B) { field_0x3114 = -0x8000; } @@ -189,7 +186,7 @@ void daAlink_c::setMagneBootsMtx(cBgS_PolyInfo* i_polyinfo, int param_1) { s16 angle = sp40.atan2sX_Z(); shape_angle.y += angle; current.angle.y += angle; - field_0x2fe6 += angle; + mPrevAngleY += angle; field_0x310c += angle; } } @@ -201,7 +198,6 @@ void daAlink_c::setMagneBootsMtx(cBgS_PolyInfo* i_polyinfo, int param_1) { mDoMtx_multVec(mMagneBootMtx, &cXyz::BaseY, &mMagneBootsTopVec); } - int daAlink_c::cancelMagneBootsOn() { offNoResetFlg0(FLG0_MAGNE_BOOTS_ON); mZ2Link.setMagnetized(false); @@ -221,10 +217,10 @@ int daAlink_c::cancelMagneBootsOn() { current.pos += mMagneBootsTopVec * 100.0f; mLinkGndChk.SetPos(¤t.pos); - f32 gnd_cross = dComIfG_Bgsp().GroundCross(&mLinkGndChk); + f32 ground_y = dComIfG_Bgsp().GroundCross(&mLinkGndChk); current.pos.y -= 100.0f; - if (gnd_cross > current.pos.y) { - current.pos.y = gnd_cross; + if (ground_y > current.pos.y) { + current.pos.y = ground_y; } old.pos = current.pos; @@ -242,7 +238,6 @@ int daAlink_c::cancelMagneBootsOn() { return 0; } - int daAlink_c::checkMagneBootsFly() { if (field_0x2fb8 != 0 && checkEquipHeavyBoots() && !checkDeadHP() && mProcID != PROC_MAGNE_BOOTS_FLY && !checkEventRun()) @@ -291,14 +286,13 @@ int daAlink_c::procBootsEquip() { onModeFlg(4); checkNextAction(1); } else if (frameCtrl_p->getFrame() >= 5.0f) { - field_0x2f92 = 1; - field_0x2f93 = 6; + mLeftHandIndex = 1; + mRightHandIndex = 6; } return 1; } - int daAlink_c::procMagneBootsFlyInit() { cXyz sp44 = field_0x369c.normZP(); cM3dGPla sp50(&sp44, -sp44.inprod(field_0x3834)); @@ -338,20 +332,27 @@ int daAlink_c::procMagneBootsFlyInit() { } field_0x3478 = 0.0f; - field_0x594 = mpHIO->mItem.mIronBoots.m.mMaxMagneFlySpeed; + mMaxSpeed = mpHIO->mItem.mIronBoots.m.mMaxMagneFlySpeed; mProcVar2.field_0x300c = 0; voiceStart(Z2SE_AL_V_MAGNET_CAUGHT); return 1; } - int daAlink_c::procMagneBootsFly() { field_0x3478 += mpHIO->mItem.mIronBoots.m.mMagneFlyAccelRate; - if (field_0x3478 > field_0x594) { - field_0x3478 = field_0x594; + if (field_0x3478 > mMaxSpeed) { + field_0x3478 = mMaxSpeed; } - if (dComIfG_Bgsp().ChkPolySafe(mPolyInfo2) && checkEquipHeavyBoots()) { + /* !@bug - If iron boots are unequipped mid-flight, player will still stick to magnetic poly + * Fixed in GCN and Wii KOR versions by adding a checkEquipHeavyBoots check + */ + if (dComIfG_Bgsp().ChkPolySafe(mPolyInfo2) + #if PLATFORM_GCN || VERSION == VERSION_WII_KOR + && checkEquipHeavyBoots() + #endif + ) + { if (dComIfG_Bgsp().ChkMoveBG(mPolyInfo2)) { cXyz old_37c8(field_0x37c8); dComIfG_Bgsp().MoveBgTransPos(mPolyInfo2, true, &field_0x37c8, NULL, NULL); @@ -377,7 +378,7 @@ int daAlink_c::procMagneBootsFly() { cLib_addCalcAngleS(&shape_angle.x, sp24.atan2sY_XZ() + -0x4000, 5, 0x1000, 0x100); cLib_addCalcAngleS(&shape_angle.y, sp24.atan2sX_Z(), 5, 0x1000, 0x100); - mProcVar2.field_0x300c += 0x1C00; + mProcVar2.field_0x300c += (s16)0x1C00; } return 1; diff --git a/src/d/actor/d_a_alink_iceleaf.inc b/src/d/actor/d_a_alink_iceleaf.inc index b65645f7ef..9959c04fef 100644 --- a/src/d/actor/d_a_alink_iceleaf.inc +++ b/src/d/actor/d_a_alink_iceleaf.inc @@ -8,6 +8,8 @@ #include "SSystem/SComponent/c_math.h" static fopAc_ac_c* daAlink_searchIceLeaf(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); + if (fopAcM_GetName(i_actor) == PROC_Obj_IceLeaf) { return i_actor; } @@ -19,8 +21,8 @@ bool daAlink_c::checkSnowCode() const { return mGndPolySpecialCode == dBgW_SPCODE_HEAVY_SNOW || mGndPolySpecialCode == dBgW_SPCODE_LIGHT_SNOW; } -bool daAlink_c::checkSnowCodePolygon(cBgS_PolyInfo& i_poly) { - int code = dComIfG_Bgsp().GetSpecialCode(i_poly); +bool daAlink_c::checkSnowCodePolygon(cBgS_PolyInfo& i_polyinfo) { + int code = dComIfG_Bgsp().GetSpecialCode(i_polyinfo); return code == dBgW_SPCODE_HEAVY_SNOW || code == dBgW_SPCODE_LIGHT_SNOW; } @@ -47,7 +49,7 @@ int daAlink_c::boardCommon(BOOL i_canMove) { for (int i = 0; i < 3; i++) { if (mAcchCir[i].ChkWallHit() && cLib_distanceAngleS(sp8, mAcchCir[i].GetWallAngleY()) <= 0x2000 && mNormalSpeed > 30.0f) { setJumpMode(); - return procCoLargeDamageInit(-4, 1, 0, 0, NULL, 0); + return procCoLargeDamageInit(-4, TRUE, 0, 0, NULL, 0); } } } @@ -66,14 +68,14 @@ int daAlink_c::boardCommon(BOOL i_canMove) { s16 var_r27; if (mLinkAcch.ChkGroundHit() && dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) { - cM3dGPla poly; - dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &poly); + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &tripla); - mProcVar3.field_0x300e = cM_atan2s(poly.mNormal.absXZ(), poly.mNormal.y); + mProcVar3.field_0x300e = cM_atan2s(tripla.mNormal.absXZ(), tripla.mNormal.y); if (mProcVar3.field_0x300e == 0) { var_r27 = shape_angle.y; } else { - var_r27 = poly.mNormal.atan2sX_Z(); + var_r27 = tripla.mNormal.atan2sX_Z(); } } else { mProcVar3.field_0x300e = 0; @@ -82,7 +84,7 @@ int daAlink_c::boardCommon(BOOL i_canMove) { if (mProcVar0.field_0x3008 != 0) { mProcVar0.field_0x3008--; - onResetFlg1(RFLG1_UNK_40); + onResetFlg1(RFLG1_BOARD_NO_FOOT_ANGLE); } f32 var_f30 = 0.0f; @@ -90,10 +92,10 @@ int daAlink_c::boardCommon(BOOL i_canMove) { s16 var_r24; if (checkInputOnR() && i_canMove) { - var_r24 = 1024.0f * field_0x33ac * cM_ssin(mStickAngle); + var_r24 = 1024.0f * mMoveValue * cM_ssin(mStickAngle); if (temp_r26 > 0x6000 && field_0x2f8c == 0xB && mProcID == PROC_BOARD_WAIT) { - f32 temp_f29 = field_0x33ac * cM_scos((0x8000 - temp_r26) * 2); + f32 temp_f29 = mMoveValue * cM_scos((0x8000 - temp_r26) * 2); f32 speed_step = temp_f29; if (speed_step < 0.15f) { @@ -178,8 +180,8 @@ int daAlink_c::boardCommon(BOOL i_canMove) { f32 temp_f26 = (var_f31 * cM_scos(var_r27)) + (mNormalSpeed * cM_scos(shape_angle.y)); mNormalSpeed = JMAFastSqrt((temp_f27 * temp_f27) + (temp_f26 * temp_f26)); - if (mNormalSpeed > field_0x594) { - mNormalSpeed = field_0x594; + if (mNormalSpeed > mMaxSpeed) { + mNormalSpeed = mMaxSpeed; } if (mNormalSpeed > 0.1f) { @@ -203,8 +205,8 @@ int daAlink_c::boardCommon(BOOL i_canMove) { setCommonBoardAnime(FALSE); } - if (mNormalSpeed > (0.7f * field_0x594)) { - cLib_chaseF(&mNormalSpeed, 0.7f * field_0x594, 1.5f); + if (mNormalSpeed > (0.7f * mMaxSpeed)) { + cLib_chaseF(&mNormalSpeed, 0.7f * mMaxSpeed, 1.5f); } } @@ -227,19 +229,27 @@ int daAlink_c::boardCommon(BOOL i_canMove) { return 0; } -void daAlink_c::setCommonBoardAnime(BOOL i_is_ride_front) { +void daAlink_c::setCommonBoardAnime(BOOL i_isRideFront) { + // Fakematch, retail should use mpHIO->mItem.mBoard.m.mStandAnmSpeed and mpHIO->mItem.mBoard.m.mStandInterpolation + #if DEBUG + setDoubleAnime( + 0.0f, + mpHIO->mItem.mBoard.m.mStandAnmSpeed, + 1.0f, + i_isRideFront ? ANM_RIDE_FRONT : ANM_RIDE_WAIT, ANM_RIDE_STOP, + 11, + mpHIO->mItem.mBoard.m.mStandInterpolation + ); + #else setDoubleAnime( 0.0f, - // Fakematch, should be - // mpHIO->mItem.mBoard.m.mStandAnmSpeed, daAlinkHIO_board_c0::m.mStandAnmSpeed, 1.0f, - i_is_ride_front ? ANM_RIDE_FRONT : ANM_RIDE_WAIT, ANM_RIDE_STOP, + i_isRideFront ? ANM_RIDE_FRONT : ANM_RIDE_WAIT, ANM_RIDE_STOP, 11, - // Fakematch, should be - // mpHIO->mItem.mBoard.m.mStandInterpolation daAlinkHIO_board_c0::m.mStandInterpolation ); + #endif } int daAlink_c::checkNextActionBoard() { @@ -296,7 +306,7 @@ int daAlink_c::procBoardRideInit() { setHeavyBoots(0); if (mEquipItem != 0x103) { - deleteEquipItem(1, 1); + deleteEquipItem(TRUE, TRUE); } else { offKandelaarModel(); } @@ -335,7 +345,8 @@ int daAlink_c::procBoardRide() { return 1; } -int daAlink_c::procBoardWaitInit(fopAc_ac_c* i_board) { +int daAlink_c::procBoardWaitInit(fopAc_ac_c* i_boardActor) { + #if PLATFORM_GCN if (mEquipItem != 0x103) { deleteEquipItem(TRUE, TRUE); } else { @@ -347,23 +358,24 @@ int daAlink_c::procBoardWaitInit(fopAc_ac_c* i_board) { if (!checkBoardRide()) { resetUpperAnime(UPPER_2, -1.0f); } + #endif - if (checkModeFlg(2) && i_board == NULL) { + if (checkModeFlg(2) && i_boardActor == NULL) { return procBoardJumpInit(0.0f, TRUE); } - BOOL prev_ride = mProcID == PROC_BOARD_RIDE; + BOOL is_prev_boardRide = mProcID == PROC_BOARD_RIDE; if (!commonProcInitNotSameProc(PROC_BOARD_WAIT)) { return 0; } current.angle.y = shape_angle.y; - if (i_board != NULL) { - mRideAcKeep.setData(i_board); - ((daObjIceLeaf_c*)i_board)->onRide(); + if (i_boardActor != NULL) { + mRideAcKeep.setData(i_boardActor); + ((daObjIceLeaf_c*)i_boardActor)->onRide(); - if (prev_ride) { + if (is_prev_boardRide) { f32 speed_ratio = mNormalSpeed / mpHIO->mMove.m.mMaxSpeed; if (speed_ratio > 1.0f) { speed_ratio = 1.0f; @@ -374,13 +386,13 @@ int daAlink_c::procBoardWaitInit(fopAc_ac_c* i_board) { mNormalSpeed = 0.0f; } - field_0x594 = mpHIO->mItem.mBoard.m.mMaxSpeed; + mMaxSpeed = mpHIO->mItem.mBoard.m.mMaxSpeed; mProcVar2.field_0x300c = 0; mProcVar3.field_0x300e = 0; setCommonBoardAnime(FALSE); } - mRideStatus = 4; + mRideStatus = RIDETYPE_BOARD; mProcVar5.field_0x3012 = 0; mProcVar1.field_0x300a = 0; return 1; @@ -423,7 +435,7 @@ int daAlink_c::procBoardWait() { return procBoardCutInit(); } else if (mProcVar5.field_0x3012 == 0) { if (!checkModeFlg(2) && mProcID != PROC_BOARD_ROW) { - setDoStatus(0xA); + setDoStatus(BUTTON_STATUS_CROUCH); if (doButton()) { f32 blend_ratio; @@ -440,7 +452,7 @@ int daAlink_c::procBoardWait() { } } else if (mProcVar5.field_0x3012 != 0) { if (mNormalSpeed > 15.0f) { - setDoStatus(0x19); + setDoStatus(BUTTON_STATUS_JUMP); } if (!doButton()) { @@ -463,7 +475,7 @@ int daAlink_c::procBoardWait() { int daAlink_c::procBoardRowInit() { commonProcInit(PROC_BOARD_ROW); setSingleAnimeBaseSpeed(ANM_RIDE_KICK, getBoardRowAnmSpeed(), mpHIO->mItem.mBoard.m.mPushInterpolation); - onResetFlg1(RFLG1_UNK_40); + onResetFlg1(RFLG1_BOARD_NO_FOOT_ANGLE); mProcVar0.field_0x3008 = 4; mProcVar4.field_0x3010 = 1; mProcVar5.field_0x3012 = 0; @@ -476,7 +488,7 @@ int daAlink_c::procBoardRow() { } if (mProcVar4.field_0x3010 != 0) { - onResetFlg1(RFLG1_UNK_40); + onResetFlg1(RFLG1_BOARD_NO_FOOT_ANGLE); mProcVar0.field_0x3008 = 4; } @@ -492,7 +504,6 @@ int daAlink_c::procBoardRow() { } } else if (frame_ctrl->checkPass(7.0f)) { mNormalSpeed += mpHIO->mItem.mBoard.m.mPushAccel; - if (mNormalSpeed > mpHIO->mItem.mBoard.m.mMaxPushSpeed) { mNormalSpeed = mpHIO->mItem.mBoard.m.mMaxPushSpeed; } @@ -530,7 +541,7 @@ int daAlink_c::procBoardTurn() { mProcVar1.field_0x300a = 1; } } else { - cLib_addCalcAngleS(&shape_angle.y, mProcVar4.field_0x3010, 5, 0x1B58, 0x7D0); + cLib_addCalcAngleS(&shape_angle.y, mProcVar4.field_0x3010, 5, 7000, 2000); current.angle.y = shape_angle.y; if (!checkModeFlg(2)) { @@ -544,7 +555,7 @@ int daAlink_c::procBoardTurn() { return 1; } -int daAlink_c::procBoardJumpInit(f32 i_jump_speed, BOOL i_no_speed_set) { +int daAlink_c::procBoardJumpInit(f32 i_jumpSpeed, BOOL i_isNoSpeed) { commonProcInit(PROC_BOARD_JUMP); mProcVar0.field_0x3008 = 0; mProcVar5.field_0x3012 = 1; @@ -554,8 +565,8 @@ int daAlink_c::procBoardJumpInit(f32 i_jump_speed, BOOL i_no_speed_set) { mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame, mpHIO->mItem.mBoard.m.mAirborneAnm.mInterpolation); - if (!i_no_speed_set) { - speed.y = cLib_minMaxLimit(i_jump_speed, mpHIO->mItem.mBoard.m.mMinJumpSpeedY, mpHIO->mItem.mBoard.m.mMaxJumpSpeedY); + if (!i_isNoSpeed) { + speed.y = cLib_minMaxLimit(i_jumpSpeed, mpHIO->mItem.mBoard.m.mMinJumpSpeedY, mpHIO->mItem.mBoard.m.mMaxJumpSpeedY); } mProcVar4.field_0x3010 = 0; @@ -588,7 +599,6 @@ int daAlink_c::procBoardSubjectivityInit() { commonProcBoardInit(PROC_BOARD_SUBJECTIVITY); setSubjectMode(); setCommonBoardAnime(FALSE); - return 1; } @@ -603,7 +613,7 @@ int daAlink_c::procBoardSubjectivity() { shape_angle.y = old_shape_angle; - if (checkSubjectEnd(1)) { + if (checkSubjectEnd(TRUE)) { procBoardWaitInit(NULL); } else { setRideSubjectAngle(old_angle); @@ -615,17 +625,10 @@ int daAlink_c::procBoardSubjectivity() { int daAlink_c::procBoardCutInit() { commonProcBoardInit(PROC_BOARD_CUT); - bool cut_charge = false; - if (checkUnderMove0BckNoArc(ANM_RIDE_CUT_TURN_CHARGE)) { - if (mUnderFrameCtrl[0].getFrame() > mpHIO->mCut.m.mNormalSwingDuration) { - cut_charge = true; - } - } - + bool isCutCharge = checkUnderMove0BckNoArc(ANM_RIDE_CUT_TURN_CHARGE) && mUnderFrameCtrl[0].getFrame() > mpHIO->mCut.m.mNormalSwingDuration; setCommonBoardAnime(FALSE); - setCutDash(1, cut_charge); + setCutDash(1, isCutCharge); mProcVar5.field_0x3012 = 0; - return 1; } @@ -660,7 +663,7 @@ int daAlink_c::procBoardCutTurnInit() { } mProcVar5.field_0x3012 = 0; - resetCombo(1); + resetCombo(TRUE); field_0x3478 = mpHIO->mCut.mCutTurn.m.mAttackRadius; field_0x347c = 0.5f * field_0x3478; @@ -680,14 +683,14 @@ int daAlink_c::procBoardCutTurn() { daPy_frameCtrl_c* frame_ctrl = &mUnderFrameCtrl[0]; if (frame_ctrl->getFrame() >= 4.0f && frame_ctrl->getFrame() < 14.0f) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { seStartSwordCut(Z2SE_AL_KAITENGIRI); } onResetFlg0(RFLG0_UNK_2); cLib_chaseF(&field_0x347c, field_0x3478, 20.0f); - field_0xFB8.SetR(field_0x347c); - onResetFlg1(RFLG1_UNK_40); + mAtSph.SetR(field_0x347c); + onResetFlg1(RFLG1_BOARD_NO_FOOT_ANGLE); } else { mProcVar5.field_0x3012 = 0; } diff --git a/src/d/actor/d_a_alink_ironball.inc b/src/d/actor/d_a_alink_ironball.inc index a716b8587e..76eb232c22 100644 --- a/src/d/actor/d_a_alink_ironball.inc +++ b/src/d/actor/d_a_alink_ironball.inc @@ -42,10 +42,11 @@ bool daAlink_c::checkIronBallGroundStop() const { void daAlink_c::setIronBallWaitUpperAnime(int param_0) { if (!checkIronBallWaitAnime() && !checkIronBallPreSwingAnime() && - (mItemVar0.field_0x3018 == 0 || mItemVar0.field_0x3018 == 8) && (param_0 || checkNoUpperAnime())) { - setUpperAnimeBaseSpeed(0x19C, mpHIO->mItem.mIronBall.m.mWaitAnmSpeed, + (mItemVar0.field_0x3018 == 0 || mItemVar0.field_0x3018 == 8) && (param_0 || checkNoUpperAnime())) + { + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_IBWAIT_e, mpHIO->mItem.mIronBall.m.mWaitAnmSpeed, mpHIO->mBasic.m.mBasicInterpolation); - setFacePriBck(0xE8); + setFacePriBck(dRes_ID_ALANM_BCK_FAT_e); field_0x2f96 = 254; field_0x2f97 = 5; mItemVar0.field_0x3018 = 0; @@ -66,7 +67,7 @@ void daAlink_c::checkIronBallDelete() { } } -void daAlink_c::setIronBallReturn(int param_0) { +void daAlink_c::setIronBallReturn(BOOL param_0) { if (param_0 && field_0x301e != 0) { field_0x301e--; } else if (mItemVar0.field_0x3018 != 7) { @@ -89,8 +90,8 @@ void daAlink_c::setIronBallBgCheckPos() { void daAlink_c::setIronBallModel() { JKRHeap* prev_heap = setItemHeap(); - mHeldItemModel = initModelEnv(loadAramBmd(0x311, 0x2800), 0); - mpItemModelData = loadAramBmd(0x317, 0x1000); + mHeldItemModel = initModelEnv(loadAramBmd(dRes_ID_ALANM_BMD_AL_IB_e, 0x2800), 0); + mpItemModelData = loadAramBmd(dRes_ID_ALANM_BMD_AL_HS_KUSARI_e, 0x1000); mpHookChain = new hsChainShape_c(); mIronBallChainPos = new cXyz[102]; @@ -113,12 +114,12 @@ void daAlink_c::setIronBallModel() { mpHookChain->setUserArea((uintptr_t)this); - field_0xFB8.SetAtType(AT_TYPE_IRON_BALL); - field_0xFB8.SetAtHitMark(3); - field_0xFB8.SetAtSe(dCcD_SE_HAMMER); - field_0xFB8.SetAtAtp(2); - field_0xFB8.SetAtMtrl(dCcD_MTRL_NONE); - field_0xFB8.SetR(mpHIO->mItem.mIronBall.m.mAttackRadius); + mAtSph.SetAtType(AT_TYPE_IRON_BALL); + mAtSph.SetAtHitMark(3); + mAtSph.SetAtSe(dCcD_SE_HAMMER); + mAtSph.SetAtAtp(2); + mAtSph.SetAtMtrl(dCcD_MTRL_NONE); + mAtSph.SetR(mpHIO->mItem.mIronBall.m.mAttackRadius); csXyz* var_r28 = mIronBallChainAngle; for (int i = 0; i < 102; i++, var_r28++) { @@ -158,7 +159,7 @@ void daAlink_c::setIronBallModel() { field_0x3024 = 0; field_0x3026 = 0; - field_0x173c.Init(0xDC, 0xFF, this); + field_0x173c.Init(220, 0xFF, this); field_0x1778.Set(l_sphSrc); field_0x1778.SetStts(&field_0x173c); field_0x1778.OffTgSetBit(); @@ -289,11 +290,11 @@ void daAlink_c::setIronBallChainPos() { *var_r26 = (*var_r29 - sp28C) * mpHIO->mItem.mIronBall.m.mChainSpeedRate; } } else if (mItemVar0.field_0x3018 == 1 || mItemVar0.field_0x3018 == 3 || mItemVar0.field_0x3018 == 4) { - daPy_frameCtrl_c* sp30 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; if (mItemVar0.field_0x3018 == 1) { - f32 temp_f25 = sp30->getEnd() - 13.0f; - f32 temp_f29 = (sp30->getFrame() - 13.0f) / temp_f25; + f32 temp_f25 = framectrl->getEnd() - 13.0f; + f32 temp_f29 = (framectrl->getFrame() - 13.0f) / temp_f25; s16 sp12 = -16384.0f - (14336.0f * temp_f29); mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0); @@ -310,7 +311,7 @@ void daAlink_c::setIronBallChainPos() { mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0); mDoMtx_stack_c::multVec(&sp268, &sp298); - sp38 = 2.0f * (1.0f + sp30->getFrame()); + sp38 = 2.0f * (1.0f + framectrl->getFrame()); } else { sp38 = -1; } @@ -448,8 +449,9 @@ BOOL daAlink_c::checkIronBallReturnChange() { if (mProcID != PROC_IRON_BALL_THROW || (!(mBodyAngle.x > 0x400) && mIronBallBgChkPos.y < (current.pos.y - 200.0f)) || (mBodyAngle.x > 0x400 && mItemMode == 0x64) || - (field_0xFB8.ChkAtHit() && field_0xFB8.GetAtHitGObj() != NULL && - static_cast(field_0xFB8.GetAtHitGObj())->ChkTgIronBallRebound())) { + (mAtSph.ChkAtHit() && mAtSph.GetAtHitGObj() != NULL && + static_cast(mAtSph.GetAtHitGObj())->ChkTgIronBallRebound())) + { setIronBallReturn(0); return true; } @@ -465,7 +467,7 @@ void daAlink_c::setIronBallPos() { cXyz spDC; cXyz spD0(mIronBallCenterPos); - mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(0xF)); + mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(15)); mDoMtx_stack_c::transM(-1.0f, -6.0f, -3.6f); mDoMtx_stack_c::XYZrotM(cM_deg2s(150.0f), cM_deg2s(-81.0f), cM_deg2s(111.0f)); @@ -478,7 +480,7 @@ void daAlink_c::setIronBallPos() { mDoMtx_stack_c::multVecZero(&mHeldItemRootPos); mDoMtx_MtxToRot(mDoMtx_stack_c::get(), &field_0x316c); mDoMtx_multVecZero(mpLinkModel->getAnmMtx(9), &sp10C); - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(0xE), &sp100); + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(14), &sp100); spE8 = (sp10C + sp100) * 0.5f; @@ -494,12 +496,12 @@ void daAlink_c::setIronBallPos() { cXyz spC4; cXyz spB8; - if (field_0xFB8.ChkAtHit()) { + if (mAtSph.ChkAtHit()) { dComIfGp_getVibration().StartShock(3, 1, cXyz(0.0f, 1.0f, 0.0f)); } if (mItemVar0.field_0x3018 == 0) { - mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(0xA)); + mDoMtx_stack_c::copy(mpLinkModel->getAnmMtx(10)); mDoMtx_stack_c::transM(-35.3f, -9.5f, -16.0f); mDoMtx_stack_c::XYZrotM(cM_deg2s(61.5f), cM_deg2s(-2.5f), cM_deg2s(50.3f)); mDoMtx_stack_c::multVecZero(mIronBallChainPos); @@ -513,8 +515,8 @@ void daAlink_c::setIronBallPos() { mItemMode = 6; } else if (mItemVar0.field_0x3018 != 1) { if (mItemVar0.field_0x3018 == 2) { - daPy_frameCtrl_c* temp_r24 = &mUpperFrameCtrl[2]; - s16 sp10 = 32768.0f - (65536.0f * (temp_r24->getFrame() / temp_r24->getEnd())); + daPy_frameCtrl_c* framectrl = &mUpperFrameCtrl[2]; + s16 sp10 = 32768.0f - (65536.0f * (framectrl->getFrame() / framectrl->getEnd())); mItemMode = 3; @@ -570,13 +572,13 @@ void daAlink_c::setIronBallPos() { spF4 = *mIronBallChainPos - mHookshotTopPos; f32 temp_f1 = spF4.abs(); - BOOL var_r26 = 0; + BOOL var_r26 = FALSE; if (temp_f1 > 1000.0f) { spF4 *= 1000.0f / temp_f1; *mIronBallChainPos = mHookshotTopPos + spF4; if (field_0x3848->abs2() < 1.0f) { - var_r26 = 1; + var_r26 = TRUE; } else { field_0x3848->x = 0.0f; field_0x3848->z = 0.0f; @@ -811,14 +813,14 @@ BOOL daAlink_c::checkIronBallAnime() const { void daAlink_c::setIronBallReadyAnime() { resetUpperAnime(UPPER_2, -1.0f); setSingleAnime(ANM_IRONBALL_ATTACK, mpHIO->mItem.mIronBall.m.mPrepareAnmSpeed, 0.0f, - 0x15, mpHIO->mItem.mIronBall.m.mPrepareInterpolation); - setUpperAnimeBaseSpeed(0x19A, mpHIO->mItem.mIronBall.m.mPrepareAnmSpeed, -1.0f); + 21, mpHIO->mItem.mIronBall.m.mPrepareInterpolation); + setUpperAnimeBaseSpeed(dRes_ID_ALANM_BCK_IBTHROW_e, mpHIO->mItem.mIronBall.m.mPrepareAnmSpeed, -1.0f); mNowAnmPackUpper[2].setRatio(0.0f); voiceStart(Z2SE_AL_V_SWING_IB); - field_0xFB8.OffAtSetBit(); - field_0xFB8.ResetAtHit(); - field_0xFB8.SetAtAtp(2); + mAtSph.OffAtSetBit(); + mAtSph.ResetAtHit(); + mAtSph.SetAtAtp(2); field_0x301e = 10; field_0x3020 = 0; @@ -845,13 +847,12 @@ BOOL daAlink_c::checkUpperItemActionIronBall() { return procIronBallThrowInit(); } - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { if (checkModeFlg(1)) { setSingleAnimeBaseSpeed(ANM_IRONBALL_TURN, mpHIO->mItem.mIronBall.m.mTurnAnmSpeed, mpHIO->mItem.mIronBall.m.mTurnInterpolation); } - u16 upperId = getMainBckData(ANM_IRONBALL_TURN)->m_upperID; - setUpperAnimeBaseSpeed(upperId, mpHIO->mItem.mIronBall.m.mTurnAnmSpeed, mpHIO->mItem.mIronBall.m.mTurnInterpolation); + setUpperAnimeBaseSpeed(getMainBckData(ANM_IRONBALL_TURN)->m_upperID, mpHIO->mItem.mIronBall.m.mTurnAnmSpeed, mpHIO->mItem.mIronBall.m.mTurnInterpolation); mItemVar0.field_0x3018 = 2; seStartOnlyReverb(Z2SE_AL_IB_SWING); return 1; @@ -912,7 +913,7 @@ int daAlink_c::procIronBallSubjectInit() { int daAlink_c::procIronBallSubject() { if (checkIronBallAnime()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } setShapeAngleToAtnActor(0); @@ -943,13 +944,13 @@ int daAlink_c::procIronBallMoveInit() { int daAlink_c::procIronBallMove() { if (checkIronBallAnime()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } setShapeAngleToAtnActor(0); if (!checkNextAction(0)) { - f32 var_f31 = -1.0f; + f32 morf = -1.0f; if (checkIronBallPreSwingAnime()) { mNormalSpeed = 0.0f; @@ -960,7 +961,7 @@ int daAlink_c::procIronBallMove() { if (field_0x2f98 != 2) { field_0x2f98 = 2; - var_f31 = mpHIO->mBasic.m.mBasicInterpolation; + morf = mpHIO->mBasic.m.mBasicInterpolation; } } else { offModeFlg(1); @@ -969,7 +970,7 @@ int daAlink_c::procIronBallMove() { if (checkModeFlg(1)) { setIronBallBaseAnime(); } else { - setBlendAtnMoveAnime(var_f31); + setBlendAtnMoveAnime(morf); } setBodyAngleXReadyAnime(0); @@ -992,12 +993,12 @@ int daAlink_c::procIronBallThrowInit() { voiceStart(Z2SE_AL_V_THROW_IB); seStartOnlyReverb(Z2SE_AL_IB_THROW); - field_0xFB8.SetAtAtp(3); + mAtSph.SetAtAtp(3); return 1; } int daAlink_c::procIronBallThrow() { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; if (mEquipItem != fpcNm_ITEM_IRONBALL) { return checkWaitAction(); @@ -1009,16 +1010,16 @@ int daAlink_c::procIronBallThrow() { return procIronBallReturnInit(); } - if (mItemVar0.field_0x3018 == 4 && temp_r29->checkPass(6.0f)) { + if (mItemVar0.field_0x3018 == 4 && framectrl->checkPass(6.0f)) { mItemVar0.field_0x3018 = 5; mDoMtx_stack_c::ZXYrotS(mBodyAngle.x, shape_angle.y, 0); - Vec sp8 = {0.0f, mpHIO->mItem.mIronBall.m.mThrowSpeedY, mpHIO->mItem.mIronBall.m.mThrowSpeedZ}; - mDoMtx_stack_c::multVec(&sp8, field_0x3848); + Vec throwVec = {0.0f, mpHIO->mItem.mIronBall.m.mThrowSpeedY, mpHIO->mItem.mIronBall.m.mThrowSpeedZ}; + mDoMtx_stack_c::multVec(&throwVec, field_0x3848); field_0x3022 = 0; } - if (checkAnmEnd(temp_r29)) { + if (checkAnmEnd(framectrl)) { if (mProcVar2.field_0x300c == 0) { mProcVar2.field_0x300c = 1; setSingleAnimeBaseSpeed(ANM_IRONBALL_THROW, mpHIO->mItem.mIronBall.m.mThrowAnmSpeed, mpHIO->mItem.mIronBall.m.mThrowInterpolation); @@ -1028,9 +1029,9 @@ int daAlink_c::procIronBallThrow() { procIronBallReturnInit(); } } else if (mProcVar2.field_0x300c != 0) { - if (temp_r29->getFrame() >= 5.0f) { - field_0x2f92 = 0xFE; - field_0x2f93 = 0xFE; + if (framectrl->getFrame() >= 5.0f) { + mLeftHandIndex = 0xFE; + mRightHandIndex = 0xFE; } } @@ -1070,7 +1071,7 @@ int daAlink_c::procIronBallReturn() { seStartOnlyReverb(Z2SE_AL_IB_CATCH); dComIfGp_getVibration().StartShock(3, 1, cXyz(0.0f, 1.0f, 0.0f)); - } else if (frameCtrl->checkAnmEnd()) { + } else if (checkAnmEnd(frameCtrl)) { if (mItemVar0.field_0x3018 == 8) { mItemVar0.field_0x3018 = 0; setIronBallWaitUpperAnime(1); diff --git a/src/d/actor/d_a_alink_kandelaar.inc b/src/d/actor/d_a_alink_kandelaar.inc index 2f4a7ff867..d2769b7f24 100644 --- a/src/d/actor/d_a_alink_kandelaar.inc +++ b/src/d/actor/d_a_alink_kandelaar.inc @@ -11,6 +11,8 @@ #include "SSystem/SComponent/c_math.h" static fopAc_ac_c* daAlink_searchTagKandelaar(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); + if (fopAcM_GetName(i_actor) == PROC_TAG_LANTERN) { return i_actor; } @@ -19,10 +21,11 @@ static fopAc_ac_c* daAlink_searchTagKandelaar(fopAc_ac_c* i_actor, void* i_data) } static fopAc_ac_c* daAlink_searchTagKtOnFire(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); daAlink_c* player_p = daAlink_getAlinkActorClass(); if (fopAcM_GetName(i_actor) == PROC_Tag_KtOnFire && - i_actor->current.pos.abs2(player_p->current.pos) < 22500.0f && + i_actor->current.pos.abs2(player_p->current.pos) < SQUARE(150.0f) && fopAcM_seenActorAngleY(player_p, i_actor) < 0x3000) { return i_actor; @@ -34,7 +37,7 @@ static fopAc_ac_c* daAlink_searchTagKtOnFire(fopAc_ac_c* i_actor, void* i_data) void daAlink_c::setKandelaarMtx(Mtx i_mtx, int param_1, int param_2) { if (mpKanteraModel != NULL) { if (checkNoResetFlg2(FLG2_UNK_1)) { - deleteEquipItem(0, 1); + deleteEquipItem(FALSE, TRUE); } onEndResetFlg1(ERFLG1_UNK_4); @@ -51,7 +54,6 @@ void daAlink_c::setKandelaarMtx(Mtx i_mtx, int param_1, int param_2) { } BOOL daAlink_c::checkWaterInKandelaarOffset(f32 param_0) { - f32 tmp_65 = 65.0f; // tmp can be removed with literals f32 base_y_pos; if (checkModeFlg(0x40)) { base_y_pos = mRightFootPos.y; @@ -59,7 +61,7 @@ BOOL daAlink_c::checkWaterInKandelaarOffset(f32 param_0) { base_y_pos = current.pos.y; } - return param_0 > tmp_65 + base_y_pos; + return param_0 > 65.0f + base_y_pos; } void daAlink_c::checkWaterInKandelaar(f32 param_0) { @@ -74,7 +76,7 @@ void daAlink_c::checkWaterInKandelaar(f32 param_0) { } void daAlink_c::offKandelaarModel() { - offNoResetFlg2(FLG2_UNK_10000001); + offNoResetFlg2(daPy_FLG2(FLG2_KANDELAAR_LIGHT_OFF | FLG2_UNK_1)); mZ2Link.setKanteraState(0); } @@ -111,7 +113,7 @@ int daAlink_c::kandelaarModelCallBack() { mDoMtx_stack_c::multVec(&sp38, &sp38); s16 var_r28 = cLib_minMaxLimit(cM_atan2s(-sp38.z, -sp38.y), -0x1800, 0x1800); - s16 var_r27 = cLib_minMaxLimit(cM_atan2s(sp38.x, JMAFastSqrt((sp38.y * sp38.y) + (sp38.z * sp38.z))), -0x1800, 0x1800); + s16 var_r27 = cLib_minMaxLimit(cM_atan2s(sp38.x, JMAFastSqrt(SQUARE(sp38.y) + SQUARE(sp38.z))), -0x1800, 0x1800); mDoMtx_stack_c::transS(sp44); if (mProcID != PROC_OPEN_TREASURE && (mProcID != PROC_GET_ITEM || mProcVar4.field_0x3010 == 0)) { @@ -124,10 +126,10 @@ int daAlink_c::kandelaarModelCallBack() { field_0x3618 = (mKandelaarFlamePos - field_0x3624) * 0.9f; if (!checkEndResetFlg1(ERFLG1_UNK_8)) { - f32 temp_f31 = JMAFastSqrt((J3DSys::mCurrentMtx[0][0] * J3DSys::mCurrentMtx[0][0]) + (J3DSys::mCurrentMtx[1][0] * J3DSys::mCurrentMtx[1][0]) + (J3DSys::mCurrentMtx[2][0] * J3DSys::mCurrentMtx[2][0])); + f32 scale = JMAFastSqrt(SQUARE(J3DSys::mCurrentMtx[0][0]) + SQUARE(J3DSys::mCurrentMtx[1][0]) + SQUARE(J3DSys::mCurrentMtx[2][0])); mDoMtx_stack_c::transS(J3DSys::mCurrentMtx[0][3], J3DSys::mCurrentMtx[1][3], J3DSys::mCurrentMtx[2][3]); mDoMtx_stack_c::ZXYrotM(var_r28, var_r29, var_r27); - mDoMtx_stack_c::scaleM(temp_f31, temp_f31, temp_f31); + mDoMtx_stack_c::scaleM(scale, scale, scale); mpKanteraModel->setAnmMtx(1, mDoMtx_stack_c::get()); cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); @@ -136,7 +138,9 @@ int daAlink_c::kandelaarModelCallBack() { return 1; } -static int daAlink_kandelaarModelCallBack(J3DJoint* param_0, int param_1) { +static int daAlink_kandelaarModelCallBack(J3DJoint* i_joint, int param_1) { + UNUSED(i_joint); + daAlink_c* player_p = (daAlink_c*)j3dSys.getModel()->getUserArea(); if (param_1 == 0) { @@ -147,7 +151,7 @@ static int daAlink_kandelaarModelCallBack(J3DJoint* param_0, int param_1) { } cXyz* daAlink_c::getKandelaarFlamePos() { - if ((!checkNoResetFlg2((daPy_FLG2)0x20001) && !checkEndResetFlg1(ERFLG1_UNK_4)) || + if ((!checkNoResetFlg2(daPy_FLG2(FLG2_UNK_20000 | FLG2_UNK_1)) && !checkEndResetFlg1(ERFLG1_UNK_4)) || checkWolf() || !checkNoResetFlg1(FLG1_UNK_80)) { return NULL; @@ -157,7 +161,7 @@ cXyz* daAlink_c::getKandelaarFlamePos() { } BOOL daAlink_c::checkKandelaarEquipAnime() const { - return checkUpperAnime(0x264) || checkUpperAnime(0x268); + return checkUpperAnime(dRes_ID_ALANM_BCK_WAITHK_e) || checkUpperAnime(dRes_ID_ALANM_BCK_WAITK_e); } void daAlink_c::preKandelaarDraw() { @@ -179,14 +183,14 @@ void daAlink_c::preKandelaarDraw() { mDoLib_project(&mKandelaarFlamePos, &proj); camera_class* camera_p = dComIfGp_getCamera(0); - f32 var_f3; + f32 trimHeight; if (camera_p != NULL) { - var_f3 = camera_p->mCamera.TrimHeight(); + trimHeight = camera_p->mCamera.TrimHeight(); } else { - var_f3 = 0.0f; + trimHeight = 0.0f; } - if (proj.x > 0.0f && proj.x < FB_WIDTH && proj.y > var_f3 && proj.y < FB_HEIGHT - var_f3) { + if (proj.x > 0.0f && proj.x < FB_WIDTH && proj.y > trimHeight && proj.y < FB_HEIGHT - trimHeight) { dComIfGd_peekZ(proj.x, proj.y, &field_0x32c8); } else { field_0x32c8 = 0; @@ -210,7 +214,7 @@ void daAlink_c::setKandelaarModel() { if (!checkNoResetFlg2(FLG2_UNK_1)) { onNoResetFlg2(FLG2_UNK_1); - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(field_0x30c0), &mKandelaarFlamePos); + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(mLeftItemJntNo), &mKandelaarFlamePos); mKandelaarFlamePos.y -= 30.0f; field_0x3630 = field_0x3624; @@ -227,7 +231,6 @@ void daAlink_c::setKandelaarModel() { mZ2Link.setKanteraState(1); } - void daAlink_c::resetOilBottleModel() { deleteEquipItem(FALSE, TRUE); @@ -270,7 +273,7 @@ int daAlink_c::commonKandelaarPour(int param_0) { current_anm = mUnderAnmHeap[0].getIdx(); } - onNoResetFlg2(FLG2_UNK_10000000); + onNoResetFlg2(FLG2_KANDELAAR_LIGHT_OFF); if (current_anm == getMainBckData(ANM_OIL_BOTTLE_POUR_START)->m_underID) { if (checkAnmEnd(frameCtrl_p)) { @@ -310,14 +313,13 @@ int daAlink_c::commonKandelaarPour(int param_0) { resetOilBottleModel(); resetSpecialEvent(); - offNoResetFlg2(FLG2_UNK_10000000); + offNoResetFlg2(FLG2_KANDELAAR_LIGHT_OFF); return 1; } return 0; } - void daAlink_c::initKandelaarSwing() { if (mEquipItem == fpcNm_ITEM_KANTERA) { if (dComIfGs_getOil() != 0) { @@ -328,19 +330,19 @@ void daAlink_c::initKandelaarSwing() { } voiceStart(Z2SE_AL_V_SWING_BOTTLE); - field_0xFB8.ResetAtHit(); + mAtSph.ResetAtHit(); if (!checkEventRun()) { dComIfGp_setItemOilCount(-mpHIO->mItem.mLantern.m.mShakeOilLoss); } - field_0xFB8.OffAtSetBit(); - field_0xFB8.SetR(50.0f); - field_0xFB8.SetAtType(AT_TYPE_LANTERN_SWING); - field_0xFB8.SetAtHitMark(0); - field_0xFB8.SetAtSe(dCcD_SE_NONE); - field_0xFB8.SetAtAtp(0); - field_0xFB8.SetAtMtrl(dCcD_MTRL_FIRE); + mAtSph.OffAtSetBit(); + mAtSph.SetR(50.0f); + mAtSph.SetAtType(AT_TYPE_LANTERN_SWING); + mAtSph.SetAtHitMark(0); + mAtSph.SetAtSe(dCcD_SE_NONE); + mAtSph.SetAtAtp(0); + mAtSph.SetAtMtrl(dCcD_MTRL_FIRE); } int daAlink_c::procKandelaarSwingInit() { @@ -383,17 +385,16 @@ int daAlink_c::procKandelaarSwingInit() { return 1; } - int daAlink_c::procKandelaarSwing() { daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - if (frameCtrl_p->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x27) { + if (checkAnmEnd(frameCtrl_p)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_KANDELAAR_SWING_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextAction(0); } - } else if (frameCtrl_p->getFrame() > field_0x3478 && mDemo.getDemoMode() != 0x27) { + } else if (frameCtrl_p->getFrame() > field_0x3478 && mDemo.getDemoMode() != daPy_demo_c::DEMO_KANDELAAR_SWING_e) { onModeFlg(4); checkNextAction(1); } @@ -402,7 +403,7 @@ int daAlink_c::procKandelaarSwing() { } int daAlink_c::procKandelaarPourInit() { - if (!dComIfGp_event_compulsory(this, 0, 0xFBFF)) { + if (!dComIfGp_event_compulsory(this, NULL, 0xFBFF)) { return 0; } diff --git a/src/d/actor/d_a_alink_link.inc b/src/d/actor/d_a_alink_link.inc index 33917c5f76..7fd3b3685f 100644 --- a/src/d/actor/d_a_alink_link.inc +++ b/src/d/actor/d_a_alink_link.inc @@ -63,38 +63,39 @@ int daAlink_c::checkSubjectAction() { return 0; } -s16 daAlink_c::checkBodyAngleX(s16 param_0) { +s16 daAlink_c::checkBodyAngleX(s16 i_angle) { if (checkWolf() || mProcID == PROC_PEEP_SUBJECTIVITY || mProcID == PROC_HOOKSHOT_WALL_SHOOT) { - return param_0; + return i_angle; } Vec sp2C = { 0.0f, 0.0f, 0.0f }; - sp2C.y = 0.5f * field_0x598; + f32 var_f31 = 0.5f * mHeight; + sp2C.y = var_f31; - cXyz sp20; - mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &sp20); - cXyz sp14; + cXyz backbone1_pos; + mDoMtx_multVecZero(mpLinkModel->getAnmMtx(1), &backbone1_pos); + cXyz check_pos; - if (param_0 >= 0) { + if (i_angle >= 0) { sp2C.z = 25.0f; } else { sp2C.z = -25.0f; } - mDoMtx_stack_c::transS(sp20); + mDoMtx_stack_c::transS(backbone1_pos); concatMagneBootMtx(); - mDoMtx_stack_c::ZXYrotM(param_0, shape_angle.y, 0); - mDoMtx_stack_c::multVec(&sp2C, &sp14); + mDoMtx_stack_c::ZXYrotM(i_angle, shape_angle.y, 0); + mDoMtx_stack_c::multVec(&sp2C, &check_pos); - if (commonLineCheck(&sp20, &sp14)) { - cXyz sp8 = sp14 - mLinkLinChk.GetCross(); - multVecMagneBootInvMtx(&sp8); + if (commonLineCheck(&backbone1_pos, &check_pos)) { + cXyz dist = check_pos - mLinkLinChk.GetCross(); + multVecMagneBootInvMtx(&dist); - current.pos.x -= sp8.x; - current.pos.z -= sp8.z; + current.pos.x -= dist.x; + current.pos.z -= dist.z; } - return param_0; + return i_angle; } BOOL daAlink_c::setBodyAngleToCamera() { @@ -105,7 +106,7 @@ BOOL daAlink_c::setBodyAngleToCamera() { s16 sp8; if (checkInputOnR()) { - f32 var_f31 = 512.0f * field_0x33ac * field_0x33ac; + f32 var_f31 = 512.0f * mMoveValue * mMoveValue; if (checkWolfEyeUp()) { var_f31 *= 0.6f; } @@ -160,11 +161,11 @@ BOOL daAlink_c::subjectCancelTrigger() { return false; } -int daAlink_c::checkSubjectEnd(BOOL i_playSound) { - setDoStatus(0x12); +BOOL daAlink_c::checkSubjectEnd(BOOL i_isPlaySe) { + setDoStatus(BUTTON_STATUS_BACK); if (checkEventRun() || checkEquipAnime() || doTrigger() || checkSetItemTrigger(fpcNm_ITEM_HAWK_EYE) || subjectCancelTrigger() || checkEndResetFlg0(ERFLG0_FORCE_SUBJECT_CANCEL) || dComIfGp_checkCameraAttentionStatus(field_0x317c, 0x2000)) { - if (i_playSound) { + if (i_isPlaySe) { seStartSystem(Z2SE_SUBJ_VIEW_OUT); } @@ -180,7 +181,8 @@ void daAlink_c::searchPeepObj(fopAc_ac_c* i_actor, void* i_data) { f32 var_f31 = current.pos.abs2(i_actor->current.pos); if (var_f31 < field_0x3478) { field_0x3478 = var_f31; - *(fopAc_ac_c**)i_data = i_actor; + fopAc_ac_c** var_r29 = (fopAc_ac_c**)i_data; + *var_r29 = i_actor; } } } @@ -195,7 +197,7 @@ int daAlink_c::procCoSubjectivityInit() { mNormalSpeed = 0.0f; setSubjectMode(); - field_0x2fe6 = shape_angle.y; + mPrevAngleY = shape_angle.y; if (checkWolf()) { setSingleAnimeWolfBaseSpeed(WANM_WAIT, 0.0f, 3.0f); @@ -310,7 +312,7 @@ int daAlink_c::procCoPeepSubjectivity() { mPeepExitID = peep->getSceneListID(); } - if (dComIfGp_event_compulsory(this, 0, 0xFFFF)) { + if (dComIfGp_event_compulsory(this, NULL, 0xFFFF)) { startPeepChange(); } } @@ -319,45 +321,45 @@ int daAlink_c::procCoPeepSubjectivity() { } u32 daAlink_c::checkBoardRide() const { - return mRideStatus == 4; + return mRideStatus == RIDETYPE_BOARD; } u32 daAlink_c::checkCanoeRide() const { - return mRideStatus == 3; + return mRideStatus == RIDETYPE_CANOE; } u32 daAlink_c::checkHorseRide() const { - return mRideStatus == 1; + return mRideStatus == RIDETYPE_HORSE; } MtxP daAlink_c::getLeftItemMatrix() { - return mpLinkModel->getAnmMtx(field_0x30c0); + return mpLinkModel->getAnmMtx(mLeftItemJntNo); } u32 daAlink_c::checkBoarRide() const { - return mRideStatus == 2; + return mRideStatus == RIDETYPE_BOAR; } u32 daAlink_c::checkSpinnerRide() const { - return mRideStatus == 5; + return mRideStatus == RIDETYPE_SPINNER; } MtxP daAlink_c::getLeftHandMatrix() { - return mpLinkModel->getAnmMtx(field_0x30b8); + return mpLinkModel->getAnmMtx(mLeftHandJntNo); } MtxP daAlink_c::getRightHandMatrix() { - return mpLinkModel->getAnmMtx(field_0x30ba); + return mpLinkModel->getAnmMtx(mRightHandJntNo); } -void daAlink_c::onSceneChangeArea(u8 exitID, u8 exitDirection, fopAc_ac_c* scexAc) { - mExitID = exitID; - mExitDirection = exitDirection; - mpScnChg = (daScex_c*)scexAc; +void daAlink_c::onSceneChangeArea(u8 i_exitID, u8 i_exitDirection, fopAc_ac_c* i_scexAc) { + mExitID = i_exitID; + mExitDirection = i_exitDirection; + mpScnChg = (daScex_c*)i_scexAc; } MtxP daAlink_c::getRightItemMatrix() { - return mpLinkModel->getAnmMtx(field_0x30c2); + return mpLinkModel->getAnmMtx(mRightItemJntNo); } u32 daAlink_c::checkPlayerNoDraw() { @@ -366,5 +368,10 @@ u32 daAlink_c::checkPlayerNoDraw() { } daAlink_c::daAlink_c() - : mAnmHeap3(0), mAnmHeap4(0), mFaceBtpHeap(0x800), mFaceBtkHeap(0x400), mFaceBckHeap(0xC00), - mAnmHeap9(0x800) {} + : mAnmHeap3(0), + mAnmHeap4(0), + mFaceBtpHeap(0x800), + mFaceBtkHeap(0x400), + mFaceBckHeap(0xC00), + mAnmHeap9(0x800) + {} diff --git a/src/d/actor/d_a_alink_spinner.inc b/src/d/actor/d_a_alink_spinner.inc index 398d4e0408..d309a6ceb8 100644 --- a/src/d/actor/d_a_alink_spinner.inc +++ b/src/d/actor/d_a_alink_spinner.inc @@ -84,7 +84,6 @@ bool daAlink_c::checkSpinnerTriggerAttack() { return false; } - void daAlink_c::setSpinnerSyncPos() { daSpinner_c* spinner = (daSpinner_c*)mRideAcKeep.getActor(); @@ -150,8 +149,8 @@ int daAlink_c::procSpinnerReady() { return 1; } -void daAlink_c::setSpinnerStatus(u8 status, u8 flag) { - dComIfGp_setDoStatus(status, flag); +void daAlink_c::setSpinnerStatus(u8 i_status, u8 i_flag) { + dComIfGp_setDoStatus(i_status, i_flag); } int daAlink_c::procSpinnerWaitInit() { @@ -159,7 +158,7 @@ int daAlink_c::procSpinnerWaitInit() { return 0; } - mRideStatus = 5; + mRideStatus = RIDETYPE_SPINNER; setBgCheckParam(); setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, mpHIO->mItem.mBoard.m.mSitAnmSpeed, 4.0f); speed.y = 0.0f; @@ -177,12 +176,12 @@ int daAlink_c::procSpinnerWaitInit() { return 1; } - int daAlink_c::procSpinnerWait() { daSpinner_c* spinner = (daSpinner_c*)mRideAcKeep.getActor(); if (spinner == NULL || spinner->getDeleteFlg() || checkWindSpeedOnXZ() || - checkEndResetFlg1(ERFLG1_UNK_1) || checkEndResetFlg0(ERFLG0_UNK_2)) { + checkEndResetFlg1(ERFLG1_NS_SCREAM) || checkEndResetFlg0(ERFLG0_FORCE_WOLF_CHANGE)) + { mNormalSpeed = 0.0f; setJumpMode(); return procFallInit(1, mpHIO->mAutoJump.m.mFallInterpolation); @@ -200,7 +199,7 @@ int daAlink_c::procSpinnerWait() { spinner->setMove(mNormalSpeed, getSpinnerRideMoveTime()); } else if (checkInputOnR()) { int direction = getDirectionFromAngle(mStickAngle); - s16 angle = field_0x33ac * 384.0f * field_0x33ac; + s16 angle = mMoveValue * 384.0f * mMoveValue; if (direction == DIR_LEFT) { shape_angle.y += angle; @@ -226,10 +225,10 @@ int daAlink_c::procSpinnerWait() { if (spinner->checkPathMoveNow() == NULL) { seStartOnlyReverbLevel(Z2SE_AL_SPINNER_RIDE); - setSpinnerStatus(ACTION_STR_ATTACK, ACTION_FLG_DEFAULT); + setSpinnerStatus(BUTTON_STATUS_ATTACK, BUTTON_STATUS_FLAG_NONE); } else { seStartOnlyReverbLevel(Z2SE_AL_SPINNER_RAIL); - setSpinnerStatus(ACTION_STR_JUMP2, ACTION_FLG_DEFAULT); + setSpinnerStatus(BUTTON_STATUS_UNK_101, BUTTON_STATUS_FLAG_NONE); } mNormalSpeed = spinner->speedF; @@ -237,7 +236,7 @@ int daAlink_c::procSpinnerWait() { if (spinner->checkSpinnerTagIntoIncRot()) { mProcVar5.field_0x3012 = 1; - setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION); + setSpinnerStatus(BUTTON_STATUS_SPIN, BUTTON_STATUS_FLAG_CONTINUATION); if (field_0x3198 != ANM_RIDE_KICK && field_0x2060->getOldFrameRate() < 0.01f) { setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, mpHIO->mItem.mBoard.m.mSitAnmSpeed, @@ -247,9 +246,9 @@ int daAlink_c::procSpinnerWait() { } } else if (spinner->checkSpinnerTagInto()) { if (mProcVar5.field_0x3012 != 0) { - setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_CONTINUATION); + setSpinnerStatus(BUTTON_STATUS_SPIN, BUTTON_STATUS_FLAG_CONTINUATION); } else { - setSpinnerStatus(ACTION_STR_SPIN, ACTION_FLG_DEFAULT); + setSpinnerStatus(BUTTON_STATUS_SPIN, BUTTON_STATUS_FLAG_NONE); } if ((field_0x3198 == ANM_RIDE_KICK && field_0x2060->getOldFrameRate() < 0.01f) || @@ -276,7 +275,7 @@ int daAlink_c::procSpinnerWait() { mpHIO->mItem.mBoard.m.mAirborneAnm.mEndFrame, -1.0f); mProcVar4.field_0x3010 = 1; } - } else if ((field_0x3198 == ANM_RIDE_JUMP_LAND && frameCtrl->checkAnmEnd()) || + } else if ((field_0x3198 == ANM_RIDE_JUMP_LAND && checkAnmEnd(frameCtrl)) || (field_0x3198 != ANM_RIDE_JUMP_LAND && field_0x3198 != ANM_RIDE_CROUCH)) { setSingleAnimeBaseSpeed(ANM_RIDE_CROUCH, mpHIO->mItem.mBoard.m.mSitAnmSpeed, mpHIO->mItem.mBoard.m.mSitInterpolation); diff --git a/src/d/actor/d_a_alink_sumou.inc b/src/d/actor/d_a_alink_sumou.inc index 4c9b9ffe79..7e40b91cb5 100644 --- a/src/d/actor/d_a_alink_sumou.inc +++ b/src/d/actor/d_a_alink_sumou.inc @@ -17,7 +17,7 @@ BOOL daAlink_c::checkSumouVsActor() { return false; } - if (mSpecialMode == 0xD || mSpecialMode == 0xB || mSpecialMode == 0xC || mSpecialMode == 0xE) { + if (mMode == 0xD || mMode == 0xB || mMode == 0xC || mMode == 0xE) { procSumouWinLoseInit(); return false; } @@ -27,15 +27,15 @@ BOOL daAlink_c::checkSumouVsActor() { void daAlink_c::cancelSumouMode() { mCargoCarryAcKeep.clearData(); - mSpecialMode = 0; + mMode = 0; } BOOL daAlink_c::sumouPunchTrigger() { - return itemTriggerCheck(BTN_B); + return swordTrigger(); } void daAlink_c::setSumouPunchStatus() { - setBStatus(ACTION_STR_SLAP); + setBStatus(BUTTON_STATUS_SLAP); } int daAlink_c::procSumouReadyInit() { @@ -49,7 +49,7 @@ int daAlink_c::procSumouReadyInit() { field_0x3588 = l_waitBaseAnime; field_0x34d4 = field_0x3588; field_0x2f99 = 4; - mSpecialMode = 1; + mMode = 1; mProcVar2.field_0x300c = 0; mProcVar3.field_0x300e = 0; deleteEquipItem(FALSE, TRUE); @@ -68,9 +68,9 @@ int daAlink_c::procSumouReady() { return 1; } - if (mSpecialMode == 2 || mSpecialMode == 3 || mSpecialMode == 4) { + if (mMode == 2 || mMode == 3 || mMode == 4) { setSumouPunchStatus(); - setDoStatusEmphasys(0x15); + setDoStatusEmphasys(BUTTON_STATUS_GRAB); dComIfGp_setAdvanceDirection(5); if (doTrigger()) { @@ -85,20 +85,20 @@ int daAlink_c::procSumouReady() { if (mUnderAnmHeap[0].getIdx() == getMainBckData(ANM_SUMOU_HAKEYOI)->m_underID && mUnderFrameCtrl[0].checkPass(7.0f)) { - field_0x2f92 = 0xFE; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0xFE; + mRightHandIndex = 0xFE; } - if (mSpecialMode == 3) { + if (mMode == 3) { setSingleAnimeBase(ANM_SUMOU_HAKEYOI); field_0x2f99 = 12; - mSpecialMode = 4; + mMode = 4; dComIfGp_clearPlayerStatus0(0, 0x2000); } else if (checkAnmEnd(mUnderFrameCtrl)) { if (checkInputOnR()) { - s16 temp_r29 = (s16)(field_0x2fe2 - shape_angle.y); + s16 temp_r29 = (s16)(mMoveAngle - shape_angle.y); int var_r30 = abs(temp_r29); - cLib_distanceAngleS(field_0x2fe2, shape_angle.y); + cLib_distanceAngleS(mMoveAngle, shape_angle.y); if (var_r30 > 0x800 && var_r30 < 0x7800) { mNormalSpeed = 1.0f; @@ -111,10 +111,9 @@ int daAlink_c::procSumouReady() { } } - if (mSpecialMode == 0x1C || mSpecialMode == 0x1B || mProcVar2.field_0x300c != 0 || + if (mMode == 0x1C || mMode == 0x1B || mProcVar2.field_0x300c != 0 || mProcVar3.field_0x300e != 0 || - (static_cast(mCargoCarryAcKeep.getActor())->getWrestlerAction() == - 3 && + (static_cast(mCargoCarryAcKeep.getActor())->getWrestlerAction() == 3 && !checkZeroSpeedF())) { procSumouActionInit(mProcVar2.field_0x300c, mProcVar3.field_0x300e, 0); @@ -126,7 +125,6 @@ int daAlink_c::procSumouReady() { return 1; } - int daAlink_c::procSumouMoveInit() { daNpcWrestler_c* wrestler_p = (daNpcWrestler_c*)mCargoCarryAcKeep.getActor(); commonProcInit(PROC_SUMOU_MOVE); @@ -135,30 +133,36 @@ int daAlink_c::procSumouMoveInit() { field_0x3478 = 1000.0f; daAlink_ANM anm; - if (mSpecialMode == 15 || mSpecialMode == 16) { - if (wrestler_p->getWrestlerType() != 0) { - anm = ANM_SUMOU_TACKLE_WAIT_GORON; - } else { + if (mMode == 15 || mMode == 16) { + #if VERSION == VERSION_SHIELD_DEBUG // probably a fakematch + if (wrestler_p->getWrestlerType() == 0) { anm = ANM_SUMOU_TACKLE_WAIT; + } else { + anm = ANM_SUMOU_TACKLE_WAIT_GORON; } - + #else + anm = wrestler_p->getWrestlerType() != 0 ? ANM_SUMOU_TACKLE_WAIT_GORON : ANM_SUMOU_TACKLE_WAIT; + #endif setSingleAnimeBase(anm); mSpeedModifier = 1.0f; - mSpecialMode = 7; + mMode = 7; mProcVar2.field_0x300c = 0xFFFF; mProcVar0.field_0x3008 = 10; field_0x3478 = 5.0f; field_0x32cc = Z2SE_AL_V_SUMO_PUSH; } else { - if (wrestler_p->getWrestlerType() != 0) { - anm = ANM_SUMOU_TACKLE_STAGGER_GORON; - } else { + #if VERSION == VERSION_SHIELD_DEBUG // probably a fakematch + if (wrestler_p->getWrestlerType() == 0) { anm = ANM_SUMOU_TACKLE_STAGGER; + } else { + anm = ANM_SUMOU_TACKLE_STAGGER_GORON; } - + #else + anm = wrestler_p->getWrestlerType() != 0 ? ANM_SUMOU_TACKLE_STAGGER_GORON : ANM_SUMOU_TACKLE_STAGGER; + #endif setSingleAnimeBase(anm); mSpeedModifier = -1.0f; - mSpecialMode = 8; + mMode = 8; mProcVar2.field_0x300c = 10; mProcVar0.field_0x3008 = 15; field_0x2f9d = 0x60; @@ -174,7 +178,6 @@ int daAlink_c::procSumouMoveInit() { return 1; } - int daAlink_c::procSumouMove() { field_0x2f99 = 4; @@ -190,7 +193,7 @@ int daAlink_c::procSumouMove() { voiceStart(field_0x32cc); } - if (mSpecialMode == 9 || mSpecialMode == 10) { + if (mMode == 9 || mMode == 10) { if (mProcVar1.field_0x300a != 0) { mProcVar1.field_0x300a--; } @@ -202,7 +205,7 @@ int daAlink_c::procSumouMove() { } f32 var_f1; - if (mSpecialMode == 10 && mProcVar1.field_0x300a == 0) { + if (mMode == 10 && mProcVar1.field_0x300a == 0) { var_f1 = 1.5f; } else { var_f1 = 0.2f; @@ -210,11 +213,11 @@ int daAlink_c::procSumouMove() { cLib_chaseF(&sp8, var_f1, 0.3f); frameCtrl_p->setRate(sp8); - } else if (mSpecialMode == 9) { + } else if (mMode == 9) { cLib_chaseF(&sp8, 1.5f, 0.3f); } else { setSingleAnimeBase(ANM_SUMOU_PUSH_BACK); - mSpecialMode = 0x23; + mMode = 0x23; mSpeedModifier = 0.0f; field_0x3478 = 13.0f; field_0x32cc = Z2SE_AL_V_SUMO_HOLD_BACK; @@ -240,26 +243,30 @@ int daAlink_c::procSumouMove() { dMeter2Info_onBlinkButton(1); - if (mSpecialMode == 0x24 || (mSpeedModifier < 0.0f && mProcVar2.field_0x300c == 0)) { + if (mMode == 0x24 || (mSpeedModifier < 0.0f && mProcVar2.field_0x300c == 0)) { mProcVar3.field_0x300e = 1; field_0x2f99 = 12; if (mSpeedModifier > 0.0f) { daAlink_ANM anm; - if (wrestler_p->getWrestlerType() != 0) { - anm = ANM_SUMOU_PULL_BACK_GORON; - } else { + #if VERSION == VERSION_SHIELD_DEBUG // probably a fakematch + if (wrestler_p->getWrestlerType() == 0) { anm = ANM_SUMOU_PULL_BACK; + } else { + anm = ANM_SUMOU_PULL_BACK_GORON; } + #else + anm = wrestler_p->getWrestlerType() != 0 ? ANM_SUMOU_PULL_BACK_GORON : ANM_SUMOU_PULL_BACK; + #endif setSingleAnimeBase(anm); - mSpecialMode = 0x24; + mMode = 0x24; field_0x3478 = 13.0f; field_0x32cc = Z2SE_AL_V_SUMO_PUSHED_BACK; field_0x3198 = anm; } else { setSingleAnimeBase(ANM_SUMOU_PUSH_BACK); - mSpecialMode = 0x23; + mMode = 0x23; field_0x3478 = 13.0f; field_0x32cc = Z2SE_AL_V_SUMO_HOLD_BACK; field_0x3198 = ANM_SUMOU_PUSH_BACK; @@ -272,7 +279,7 @@ int daAlink_c::procSumouMove() { if (mSpeedModifier > 0.0f && checkInputOnR()) { int direction = getDirectionFromAngle(mStickAngle); if (direction == DIR_LEFT || direction == DIR_RIGHT) { - var_r31 = field_0x33ac * (mpHIO->mPushpull.m.mSumoRotationAngle * field_0x33ac); + var_r31 = mMoveValue * (mpHIO->mPushpull.m.mSumoRotationAngle * mMoveValue); if (direction == DIR_RIGHT) { var_r31 = -var_r31; @@ -311,18 +318,17 @@ int daAlink_c::procSumouMove() { return 1; } - int daAlink_c::procSumouSideMoveInit() { commonProcInit(PROC_SUMOU_SIDE_MOVE); - mSpecialMode = 0x16; + mMode = 0x16; field_0x2f98 = 3; current.angle.y = shape_angle.y + -0x4000; - field_0x594 = mpHIO->mAtnMove.m.mMaxSpeed; + mMaxSpeed = mpHIO->mAtnMove.m.mMaxSpeed; setSingleAnimeBase(ANM_SUMOU_FIGHT_WAIT); field_0x3198 = 0x141; setSumouPunchStatus(); - setDoStatusEmphasys(0x15); + setDoStatusEmphasys(BUTTON_STATUS_GRAB); dComIfGp_setAdvanceDirection(5); field_0x2f99 = 12; @@ -353,8 +359,8 @@ int daAlink_c::procSumouSideMove() { current.angle.y = shape_angle.y + 0x4000; } - int temp_r30_2 = cLib_distanceAngleS(field_0x2fe2, shape_angle.y); - if (mSpecialMode == 0x1C || mSpecialMode == 0x1B || doTrigger() || sumouPunchTrigger() || + int temp_r30_2 = cLib_distanceAngleS(mMoveAngle, shape_angle.y); + if (mMode == 0x1C || mMode == 0x1B || doTrigger() || sumouPunchTrigger() || (static_cast(mCargoCarryAcKeep.getActor())->getWrestlerAction() == 3 && !checkZeroSpeedF())) { @@ -362,12 +368,12 @@ int daAlink_c::procSumouSideMove() { } setSumouPunchStatus(); - setDoStatusEmphasys(0x15); + setDoStatusEmphasys(BUTTON_STATUS_GRAB); dComIfGp_setAdvanceDirection(5); f32 var_f1; if (checkInputOnR() && temp_r30_2 > 0x800 && temp_r30_2 < 0x7800) { - if (abs((s16)(field_0x2fe2 - current.angle.y)) > 0x4000) { + if (abs((s16)(mMoveAngle - current.angle.y)) > 0x4000) { current.angle.y += 0x8000; mNormalSpeed *= -1.0f; @@ -378,8 +384,8 @@ int daAlink_c::procSumouSideMove() { } } - if (field_0x33ac > (1.0f - fabsf(mNormalSpeed / field_0x594)) * 0.3f) { - var_f1 = mpHIO->mAtnMove.m.mAcceleration * field_0x33ac; + if (mMoveValue > (1.0f - fabsf(mNormalSpeed / mMaxSpeed)) * 0.3f) { + var_f1 = mpHIO->mAtnMove.m.mAcceleration * mMoveValue; } else { var_f1 = 0.0f; } @@ -391,7 +397,7 @@ int daAlink_c::procSumouSideMove() { if (checkZeroSpeedF()) { onModeFlg(1); - mSpecialMode = 0x16; + mMode = 0x16; field_0x2f98 = 3; current.angle.y = shape_angle.y - 0x4000; @@ -417,13 +423,15 @@ int daAlink_c::procSumouSideMove() { mSpeedModifier = 1.0f; } + daPy_frameCtrl_c* framectrl = mUnderFrameCtrl; + if (field_0x2f98 == 3) { - mSpecialMode = 0x18; + mMode = 0x18; } else { - mSpecialMode = 0x17; + mMode = 0x17; } - mUnderFrameCtrl[0].setRate(mNormalSpeed / field_0x594); + framectrl->setRate(mNormalSpeed / mMaxSpeed); initBasAnime(); field_0x2f9d = 0x60; } @@ -431,8 +439,8 @@ int daAlink_c::procSumouSideMove() { return 1; } - -int daAlink_c::procSumouActionInit(BOOL i_doTrigger, BOOL i_punchTrigger, int unused) { +int daAlink_c::procSumouActionInit(BOOL i_isDoTrigger, BOOL i_isPunchTrigger, int unused) { + UNUSED(unused); commonProcInit(PROC_SUMOU_ACTION); daNpcWrestler_c* wrestler_p = (daNpcWrestler_c*)mCargoCarryAcKeep.getActor(); @@ -440,100 +448,94 @@ int daAlink_c::procSumouActionInit(BOOL i_doTrigger, BOOL i_punchTrigger, int un mProcVar5.field_0x3012 = 0; daAlink_ANM anm; - if (mSpecialMode == 0x21) { - mSpecialMode = 0x22; + if (mMode == 0x21) { + mMode = 0x22; anm = ANM_SUMOU_PUNCH_SHOCK; - } else if (mSpecialMode == 0x1C) { - i_doTrigger = FALSE; - i_punchTrigger = FALSE; - mSpecialMode = 0x1E; + } else if (mMode == 0x1C) { + i_isDoTrigger = FALSE; + i_isPunchTrigger = FALSE; + mMode = 0x1E; if (!checkZeroSpeedF()) { - daAlink_ANM var_r0; if (field_0x2f98 == 2) { - var_r0 = ANM_SUMOU_FIGHT_STEP_LEFT; + anm = ANM_SUMOU_FIGHT_STEP_LEFT; } else { - var_r0 = ANM_SUMOU_FIGHT_STEP_RIGHT; + anm = ANM_SUMOU_FIGHT_STEP_RIGHT; } - - anm = var_r0; mProcVar5.field_0x3012 = 1; } else { anm = ANM_SUMOU_PUNCH_SHOCK; } - } else if (mSpecialMode == 0x1B) { - i_doTrigger = FALSE; - i_punchTrigger = FALSE; - mSpecialMode = 0x1D; + } else if (mMode == 0x1B) { + i_isDoTrigger = FALSE; + i_isPunchTrigger = FALSE; + mMode = 0x1D; anm = ANM_SUMOU_TACKLE_SHOCK; } else if (wrestler_action == 2) { - if (i_doTrigger) { - mSpecialMode = 0x10; + if (i_isDoTrigger) { + mMode = 0x10; anm = ANM_SUMOU_DODGE_TACKLE; - } else if (i_punchTrigger) { - mSpecialMode = 0x15; + } else if (i_isPunchTrigger) { + mMode = 0x15; anm = ANM_SUMOU_PUNCH_MISS_SHOCK_RETURN; } else { - mSpecialMode = 0x1E; + mMode = 0x1E; if (!checkZeroSpeedF()) { - daAlink_ANM var_r0_2; if (field_0x2f98 == 2) { - var_r0_2 = ANM_SUMOU_FIGHT_STEP_LEFT; + anm = ANM_SUMOU_FIGHT_STEP_LEFT; } else { - var_r0_2 = ANM_SUMOU_FIGHT_STEP_RIGHT; + anm = ANM_SUMOU_FIGHT_STEP_RIGHT; } - - anm = var_r0_2; mProcVar5.field_0x3012 = 1; } else { anm = ANM_SUMOU_PUNCH_SHOCK; } } } else if (wrestler_action == 3) { - if (i_doTrigger) { - mSpecialMode = 0x12; + if (i_isDoTrigger) { + mMode = 0x12; anm = ANM_SUMOU_TACKLE_SHOCK_RETURN; - } else if (i_punchTrigger) { - mSpecialMode = 0x14; + } else if (i_isPunchTrigger) { + mMode = 0x14; anm = ANM_SUMOU_PUNCH_MISS_SHOCK; } else if (!checkZeroSpeedF()) { if (field_0x2f98 == 3) { - mSpecialMode = 0x1A; + mMode = 0x1A; anm = ANM_SUMOU_FIGHT_STEP_RIGHT; } else { - mSpecialMode = 0x19; + mMode = 0x19; anm = ANM_SUMOU_FIGHT_STEP_LEFT; } } else { - mSpecialMode = 0x1D; + mMode = 0x1D; anm = ANM_SUMOU_TACKLE_SHOCK; } } else if (wrestler_action == 1) { - if (i_doTrigger) { - mSpecialMode = 0x11; + if (i_isDoTrigger) { + mMode = 0x11; anm = ANM_SUMOU_TACKLE_MISS; } else { - mSpecialMode = 0x13; + mMode = 0x13; anm = ANM_SUMOU_PUNCH; } } else if (wrestler_p->getWrestlerType() != 0 && !checkEquipHeavyBoots()) { - if (i_doTrigger) { - mSpecialMode = 0x12; + if (i_isDoTrigger) { + mMode = 0x12; anm = ANM_SUMOU_TACKLE_SHOCK_RETURN; } else { - mSpecialMode = 0x15; + mMode = 0x15; anm = ANM_SUMOU_PUNCH_MISS_SHOCK_RETURN; } - } else if (i_doTrigger) { - mSpecialMode = 0xF; + } else if (i_isDoTrigger) { + mMode = 0xF; if (wrestler_p->getWrestlerType() == 0) { anm = ANM_SUMOU_TACKLE; } else { anm = ANM_SUMOU_TACKLE_GORON; } } else { - mSpecialMode = 0x13; + mMode = 0x13; anm = ANM_SUMOU_PUNCH; } @@ -541,19 +543,19 @@ int daAlink_c::procSumouActionInit(BOOL i_doTrigger, BOOL i_punchTrigger, int un mDoMtx_stack_c::YrotM(shape_angle.y); mProcVar3.field_0x300e = 0x82; - if (mSpecialMode == 0x19) { + if (mMode == 0x19) { dComIfGp_setAdvanceDirection(1); mProcVar4.field_0x3010 = shape_angle.y - 0x2800; field_0x2f98 = 2; - } else if (mSpecialMode == 0x1A) { + } else if (mMode == 0x1A) { field_0x2f98 = 3; dComIfGp_setAdvanceDirection(4); mProcVar4.field_0x3010 = shape_angle.y + 0x2800; - } else if (i_doTrigger) { - setDoStatusEmphasys(0x15); + } else if (i_isDoTrigger) { + setDoStatusEmphasys(BUTTON_STATUS_GRAB); mProcVar3.field_0x300e = 0x15; field_0x2f98 = 4; - } else if (i_punchTrigger) { + } else if (i_isPunchTrigger) { setSumouPunchStatus(); mProcVar3.field_0x300e = 0x44; field_0x2f98 = 4; @@ -567,13 +569,13 @@ int daAlink_c::procSumouActionInit(BOOL i_doTrigger, BOOL i_punchTrigger, int un field_0x2f98 = 4; } - f32 var_f31; + f32 anm_frame; if ((anm == ANM_SUMOU_FIGHT_STEP_RIGHT || anm == ANM_SUMOU_FIGHT_STEP_LEFT) && mUnderAnmHeap[0].getIdx() != (getMainBckData(anm)->m_underID & 0xFFF)) { - var_f31 = mUnderFrameCtrl[0].getFrame(); + anm_frame = mUnderFrameCtrl[0].getFrame(); } else { - var_f31 = 0.0f; + anm_frame = 0.0f; } mProcVar2.field_0x300c = 0; @@ -587,8 +589,8 @@ int daAlink_c::procSumouActionInit(BOOL i_doTrigger, BOOL i_punchTrigger, int un } setSingleAnime(anm, 1.0f, 0.0f, end_frame, 3.0f); - mUnderFrameCtrl[0].setFrame(var_f31); - getNowAnmPackUnder(UNDER_0)->setFrame(var_f31); + mUnderFrameCtrl[0].setFrame(anm_frame); + getNowAnmPackUnder(UNDER_0)->setFrame(anm_frame); cLib_addCalcAngleS(&shape_angle.y, cLib_targetAngleY(¤t.pos, &mCargoCarryAcKeep.getActor()->current.pos), @@ -634,7 +636,6 @@ int daAlink_c::procSumouActionInit(BOOL i_doTrigger, BOOL i_punchTrigger, int un return 1; } - int daAlink_c::procSumouAction() { field_0x2f99 = 4; @@ -650,11 +651,11 @@ int daAlink_c::procSumouAction() { mProcVar2.field_0x300c++; - if (mSpecialMode == 0x1C || mSpecialMode == 0x1B) { + if (mMode == 0x1C || mMode == 0x1B) { return procSumouActionInit(FALSE, FALSE, 0); } - if (mSpecialMode == 0x19 || mSpecialMode == 0x1A) { + if (mMode == 0x19 || mMode == 0x1A) { cLib_addCalcAngleS(&shape_angle.y, mProcVar4.field_0x3010, 2, 0x400, 0x40); current.angle.y = shape_angle.y; @@ -664,20 +665,20 @@ int daAlink_c::procSumouAction() { procSumouSideMoveInit(); } } else { - if (mSpecialMode == 0x13) { + if (mMode == 0x13) { cLib_addCalcAngleS( &shape_angle.y, cLib_targetAngleY(¤t.pos, &mCargoCarryAcKeep.getActor()->current.pos), 2, 0x2000, 0x800); current.angle.y = shape_angle.y; - } else if (mSpecialMode == 0x1E && mProcVar5.field_0x3012 != 0) { + } else if (mMode == 0x1E && mProcVar5.field_0x3012 != 0) { cLib_addCalcAngleS(&shape_angle.y, mProcVar4.field_0x3010, 2, 0x400, 0x40); current.angle.y = shape_angle.y; current.pos.set(field_0x37c8.x - field_0x3478 * cM_ssin(current.angle.y), field_0x37c8.y, field_0x37c8.z - field_0x3478 * cM_scos(current.angle.y)); - } else if (mSpecialMode == 0x1E || mSpecialMode == 0x1D) { + } else if (mMode == 0x1E || mMode == 0x1D) { cLib_addCalcAngleS( &shape_angle.y, cLib_targetAngleY(¤t.pos, &mCargoCarryAcKeep.getActor()->current.pos), 2, @@ -686,18 +687,18 @@ int daAlink_c::procSumouAction() { } if (mProcVar3.field_0x300e == 0x15) { - setDoStatusEmphasys(0x15); + setDoStatusEmphasys(BUTTON_STATUS_GRAB); } else if (mProcVar3.field_0x300e == 0x44) { setSumouPunchStatus(); } daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; if (checkAnmEnd(frameCtrl_p)) { - if (mSpecialMode == 0x1E) { + if (mMode == 0x1E) { procSumouStaggerInit(); - } else if (mSpecialMode == 0x12 || mSpecialMode == 0x22 || mSpecialMode == 0x13 || - mSpecialMode == 0x1A || mSpecialMode == 0x19 || mSpecialMode == 0x11 || - mSpecialMode == 0x15) + } else if (mMode == 0x12 || mMode == 0x22 || mMode == 0x13 || + mMode == 0x1A || mMode == 0x19 || mMode == 0x11 || + mMode == 0x15) { procSumouSideMoveInit(); } else { @@ -725,14 +726,13 @@ int daAlink_c::procSumouAction() { return 1; } - int daAlink_c::procSumouStaggerInit() { commonProcInit(PROC_SUMOU_STAGGER); - if (mSpecialMode == 0x11) { - mSpecialMode = 0x20; + if (mMode == 0x11) { + mMode = 0x20; } else { - mSpecialMode = 0x1F; + mMode = 0x1F; } setSingleAnimeBase(ANM_SUMOU_STAGGER); @@ -750,8 +750,8 @@ int daAlink_c::procSumouStagger() { } mProcVar0.field_0x3008--; - if (mSpecialMode == 0x1C || mSpecialMode == 0x21 || mSpecialMode == 0x1B) { - procSumouActionInit(0, 0, 0); + if (mMode == 0x1C || mMode == 0x21 || mMode == 0x1B) { + procSumouActionInit(FALSE, FALSE, 0); } else if (mProcVar0.field_0x3008 == 0) { procSumouSideMoveInit(); } @@ -760,7 +760,7 @@ int daAlink_c::procSumouStagger() { } int daAlink_c::procSumouWinLoseInit() { - if (mSpecialMode == 0xB && mUnderFrameCtrl[0].getAttribute() == 2) { + if (mMode == 0xB && mUnderFrameCtrl[0].getAttribute() == 2) { cancelSumouMode(); return procWaitInit(); } @@ -770,15 +770,20 @@ int daAlink_c::procSumouWinLoseInit() { field_0x3478 = 1000.0f; daAlink_ANM anm = ANM_WAIT; - if (mSpecialMode == 0xB) { + if (mMode == 0xB) { mProcVar2.field_0x300c = 1; - } else if (mSpecialMode == 0xD) { + } else if (mMode == 0xD) { field_0x2f99 = 12; - if (wrestler_p->getWrestlerType() != 0) { - anm = ANM_SUMOU_WIN_GORON; - } else { + + #if VERSION == VERSION_SHIELD_DEBUG // probably a fakematch + if (wrestler_p->getWrestlerType() == 0) { anm = ANM_SUMOU_WIN; + } else { + anm = ANM_SUMOU_WIN_GORON; } + #else + anm = wrestler_p->getWrestlerType() != 0 ? ANM_SUMOU_WIN_GORON : ANM_SUMOU_WIN; + #endif setSingleAnimeBase(anm); mProcVar2.field_0x300c = 1; @@ -787,7 +792,7 @@ int daAlink_c::procSumouWinLoseInit() { field_0x3198 = 13; } else { f32 start_frame; - if (mSpecialMode == 12) { + if (mMode == 12) { start_frame = 24.0f; voiceStart(Z2SE_AL_V_SUMO_FALL_LOSE); } else { @@ -796,11 +801,15 @@ int daAlink_c::procSumouWinLoseInit() { field_0x32cc = Z2SE_AL_V_SUMO_FALL_LOSE; } - if (wrestler_p->getWrestlerType() != 0) { - anm = ANM_SUMOU_LOSE_GORON; - } else { + #if VERSION == VERSION_SHIELD_DEBUG // probably a fakematch + if (wrestler_p->getWrestlerType() == 0) { anm = ANM_SUMOU_LOSE; + } else { + anm = ANM_SUMOU_LOSE_GORON; } + #else + anm = wrestler_p->getWrestlerType() != 0 ? ANM_SUMOU_LOSE_GORON : ANM_SUMOU_LOSE; + #endif setSingleAnime(anm, 1.0f, start_frame, -1, 3.0f); field_0x2f99 = 15; @@ -818,7 +827,6 @@ int daAlink_c::procSumouWinLoseInit() { return 1; } - int daAlink_c::procSumouWinLose() { if (mProcVar3.field_0x300e == 0) { if (mProcVar2.field_0x300c != 0) { @@ -844,7 +852,7 @@ int daAlink_c::procSumouWinLose() { field_0x3478 = 1000.0f; field_0x3198 = ANM_SUMOU_KNOCKED_DOWN; } - } else if (mProcVar3.field_0x300e == 0 && mSpecialMode == 0x25) { + } else if (mProcVar3.field_0x300e == 0 && mMode == 0x25) { setSingleAnimeBase(ANM_SUMOU_GET_UP); mProcVar3.field_0x300e = 1; field_0x3478 = 1000.0f; @@ -860,7 +868,6 @@ int daAlink_c::procSumouWinLose() { return 1; } - int daAlink_c::procSumouShikoInit() { if (!commonProcInitNotSameProc(PROC_SUMOU_SHIKO)) { return 0; @@ -872,10 +879,10 @@ int daAlink_c::procSumouShikoInit() { field_0x34d4 = field_0x3588; field_0x2f99 = 12; mProcVar2.field_0x300c = 0; - mSpecialMode = 0; + mMode = 0; setFootEffectProcType(5); - deleteEquipItem(0, 1); + deleteEquipItem(FALSE, TRUE); return 1; } @@ -885,7 +892,7 @@ int daAlink_c::procSumouShiko() { field_0x2f99 = 4; } - if (mSpecialMode == 1) { + if (mMode == 1) { return procSumouReadyInit(); } @@ -899,8 +906,8 @@ int daAlink_c::procSumouShiko() { } else if (frameCtrl_p->checkPass(65.0f)) { voiceStart(Z2SE_AL_V_SUMO_SHIKO); } else if (frameCtrl_p->checkPass(9.0f)) { - field_0x2f92 = 0xFE; - field_0x2f93 = 0xFE; + mLeftHandIndex = 0xFE; + mRightHandIndex = 0xFE; } } else { dComIfGp_evmng_cutEnd(mAlinkStaffId); diff --git a/src/d/actor/d_a_alink_swim.inc b/src/d/actor/d_a_alink_swim.inc index 4cd7a0c15b..52773e9914 100644 --- a/src/d/actor/d_a_alink_swim.inc +++ b/src/d/actor/d_a_alink_swim.inc @@ -17,7 +17,7 @@ BOOL daAlink_c::checkAcceptUseItemInWater(u16 i_itemNo) const { void daAlink_c::swimDeleteItem() { if (!checkHookshotItem(mEquipItem) && (mEquipItem != 0x103 || !checkBootsOrArmorHeavy())) { - deleteEquipItem(1, 1); + deleteEquipItem(TRUE, TRUE); } if (checkNoResetFlg2(FLG2_UNK_1)) { @@ -54,23 +54,21 @@ f32 daAlink_c::getSwimMaxFallSpeed() const { } void daAlink_c::checkOxygenTimer() { - BOOL hide_timer; + BOOL is_hide_timer; if (!checkNoResetFlg0(FLG0_SWIM_UP) || (checkModeFlg(MODE_SWIMMING) && mWaterY > 5.0f + current.pos.y)) { - hide_timer = false; + is_hide_timer = false; } else { - hide_timer = true; + is_hide_timer = true; } if (dComIfGp_getOxygenShowFlag()) { if (checkZoraWearAbility()) { offOxygenTimer(); - } else if (hide_timer) { - s32 max = dComIfGp_getMaxOxygen(); - dComIfGp_setOxygenCount(max); - + } else if (is_hide_timer) { + dComIfGp_setOxygenCount(dComIfGp_getMaxOxygen()); if (field_0x2fbe < 90) { field_0x2fbe++; } else { @@ -79,7 +77,7 @@ void daAlink_c::checkOxygenTimer() { } else if (!checkEventRun()) { dComIfGp_setOxygenCount(-1); } - } else if (!hide_timer && !checkZoraWearAbility()) { + } else if (!is_hide_timer && !checkZoraWearAbility()) { if (field_0x2fbe != 0) { field_0x2fbe--; } else { @@ -91,19 +89,19 @@ void daAlink_c::checkOxygenTimer() { void daAlink_c::offOxygenTimer() { dComIfGp_offOxygenShowFlag(); - s32 max = dComIfGp_getMaxOxygen(); - dComIfGp_setOxygen(max); + dComIfGp_setOxygen(dComIfGp_getMaxOxygen()); field_0x2fbe = 90; } BOOL daAlink_c::checkPossibleWaterInMode() const { - return checkModeFlg(MODE_VINE_CLIMB) || dComIfGp_checkPlayerStatus1(0, 0x2000000) || + return checkModeFlg(MODE_VINE_CLIMB) || + dComIfGp_checkPlayerStatus1(0, 0x2000000) || mProcID == PROC_HOOKSHOT_FLY; } void daAlink_c::setWaterInAnmRate(daPy_frameCtrl_c* i_frameCtrl, f32 i_rate) { - if (checkNoResetFlg0(FLG0_UNDERWATER)) { + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { if (checkZoraWearAbility()) { i_rate *= mpHIO->mItem.mIronBoots.m.mZoraWaterAnmSpeed; } else { @@ -121,24 +119,24 @@ void daAlink_c::swimBgCheck(f32 param_0) { return; } - cXyz start_pos(current.pos); - cXyz end_pos; + cXyz linechk_start(current.pos); + cXyz linechk_end; s16 var_r29; if (getZoraSwim()) { var_r29 = field_0x3080; } else { var_r29 = mProcVar2.field_0x300c; - start_pos.y += mpHIO->mWolf.mWlWallHang.m.mAutoWalkHeight; + linechk_start.y += mpHIO->mWolf.mWlWallHang.m.mAutoWalkHeight; } f32 var_f28 = param_0 * cM_scos(var_r29); - end_pos.set(start_pos.x + (var_f28 * cM_ssin(shape_angle.y)), - start_pos.y - param_0 * cM_ssin(var_r29), - start_pos.z + (var_f28 * cM_scos(shape_angle.y))); + linechk_end.set(linechk_start.x + (var_f28 * cM_ssin(shape_angle.y)), + linechk_start.y - param_0 * cM_ssin(var_r29), + linechk_start.z + (var_f28 * cM_scos(shape_angle.y))); - if (!commonLineCheck(&start_pos, &end_pos)) { + if (!commonLineCheck(&linechk_start, &linechk_end)) { return; } @@ -148,12 +146,9 @@ void daAlink_c::swimBgCheck(f32 param_0) { if (cBgW_CheckBWall(tri.mNormal.y) && (mProcID != PROC_METAMORPHOSE || dComIfG_Bgsp().GetWallCode(mLinkLinChk) != 7)) { - cXyz sp14 = end_pos - mLinkLinChk.GetCross(); - f32 temp_f1 = sp14.absXZ(); + cXyz sp14 = linechk_end - mLinkLinChk.GetCross(); - s16 var_r28 = sp14.atan2sX_Z(); - f32 var_f26 = cM_scos(var_r28 - cM_atan2s(-tri.mNormal.x, -tri.mNormal.z)); - f32 var_f29 = -temp_f1 * var_f26; + f32 var_f29 = -sp14.absXZ() * cM_scos(sp14.atan2sX_Z() - cM_atan2s(-tri.mNormal.x, -tri.mNormal.z)); f32 var_f31 = var_f29 * tri.mNormal.x; f32 var_f30 = var_f29 * tri.mNormal.z; @@ -165,21 +160,18 @@ void daAlink_c::swimBgCheck(f32 param_0) { onNoResetFlg1(FLG1_UNK_20000000); } - start_pos.x -= var_f31; - start_pos.z -= var_f30; - end_pos.x -= var_f31; - end_pos.z -= var_f30; + linechk_start.x -= var_f31; + linechk_start.z -= var_f30; + linechk_end.x -= var_f31; + linechk_end.z -= var_f30; - if (commonLineCheck(&start_pos, &end_pos)) { + if (commonLineCheck(&linechk_start, &linechk_end)) { dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tri); if (cBgW_CheckBWall(tri.mNormal.y)) { - sp14 = end_pos - mLinkLinChk.GetCross(); - temp_f1 = sp14.absXZ(); + sp14 = linechk_end - mLinkLinChk.GetCross(); - var_r28 = sp14.atan2sX_Z(); - var_f26 = cM_scos(var_r28 - cM_atan2s(-tri.mNormal.x, -tri.mNormal.z)); - var_f29 = -temp_f1 * var_f26; + var_f29 = -sp14.absXZ() * cM_scos(sp14.atan2sX_Z() - cM_atan2s(-tri.mNormal.x, -tri.mNormal.z)); var_f31 += var_f29 * tri.mNormal.x; var_f30 += var_f29 * tri.mNormal.z; @@ -193,35 +185,36 @@ void daAlink_c::swimBgCheck(f32 param_0) { } void daAlink_c::setSpeedAndAngleSwim() { - if (!checkBootsOrArmorHeavy() && dComIfGp_getDoStatus() == 0 && (!checkHookshotAnime() || (checkHookshotItem(mEquipItem) && (mItemMode == 0 || mItemMode == 1)))) { + if (!checkBootsOrArmorHeavy() && dComIfGp_getDoStatus() == BUTTON_STATUS_NONE && (!checkHookshotAnime() || (checkHookshotItem(mEquipItem) && (mItemMode == 0 || mItemMode == 1)))) { if (checkZoraWearAbility()) { if (checkNoResetFlg0(FLG0_SWIM_UP)) { if (field_0x2fcd == 0) { - setDoStatus(0x41); + setDoStatus(BUTTON_STATUS_DIVE); } } else { - setDoStatus(0x4C); + setDoStatus(BUTTON_STATUS_SWIM); } } else if (!checkNoResetFlg0(FLG0_SWIM_UP)) { - setDoStatus(0x97); + setDoStatus(BUTTON_STATUS_UNK_151); } else if (mProcID == PROC_SWIM_MOVE && checkUnderMove0BckNoArc(ANM_SWIM_A) && field_0x30d0 == 0 && field_0x30d2 == 0) { - setDoStatus(9); + setDoStatus(BUTTON_STATUS_DASH); } } f32 var_f31; f32 var_f30; + s16 temp_r29; if (mProcID == PROC_SWIM_HOOKSHOT_MOVE && !checkHookshotWait()) { var_f30 = 0.0f; } else if (checkZoraSwimMove()) { - s16 temp_r29 = shape_angle.y; + temp_r29 = shape_angle.y; if (mTargetedActor != NULL && current.pos.abs2XZ(mTargetedActor->eyePos) > 22500.0f) { setShapeAngleToAtnActor(0); } else if (checkInputOnR()) { s16 var_r28; if (checkEventRun()) { - var_r28 = field_0x2fe2; + var_r28 = mMoveAngle; } else { var_r28 = shape_angle.y + (16384.0f * cM_ssin(mStickAngle)); } @@ -230,24 +223,24 @@ void daAlink_c::setSpeedAndAngleSwim() { } current.angle.y = shape_angle.y; - var_f30 = 3.0f * cM_scos((shape_angle.y - temp_r29)); + var_f30 = 3.0f * cM_scos(shape_angle.y - temp_r29); } else if (!checkAttentionLock()) { if (checkInputOnR()) { - s16 temp_r29_2 = shape_angle.y; + temp_r29 = shape_angle.y; if (checkNoResetFlg0(FLG0_SWIM_UP)) { - cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mSwim.m.mTurnRate, mpHIO->mSwim.m.mMaxTurn, mpHIO->mSwim.m.mMinTurn); + cLib_addCalcAngleS(&shape_angle.y, mMoveAngle, mpHIO->mSwim.m.mTurnRate, mpHIO->mSwim.m.mMaxTurn, mpHIO->mSwim.m.mMinTurn); } else { - cLib_addCalcAngleS(&shape_angle.y, field_0x2fe2, mpHIO->mSwim.m.mUnderwaterTurnRate, mpHIO->mSwim.m.mUnderwaterMaxTurn, mpHIO->mSwim.m.mUnderwaterMinTurn); + cLib_addCalcAngleS(&shape_angle.y, mMoveAngle, mpHIO->mSwim.m.mUnderwaterTurnRate, mpHIO->mSwim.m.mUnderwaterMaxTurn, mpHIO->mSwim.m.mUnderwaterMinTurn); } f32 var_f29; if (checkUnderMove0BckNoArc(ANM_SWIM_DASH)) { var_f29 = 1.0f; } else { - var_f29 = field_0x33a8; + var_f29 = mStickValue; } - var_f30 = 3.0f * var_f29 * cM_scos((shape_angle.y - temp_r29_2)); + var_f30 = 3.0f * var_f29 * cM_scos(shape_angle.y - temp_r29); cLib_addCalcAngleS(¤t.angle.y, shape_angle.y, 2, 0x2000, 0x1000); } else { var_f30 = 0.0f; @@ -266,17 +259,17 @@ void daAlink_c::setSpeedAndAngleSwim() { } if (checkZeroSpeedF()) { - current.angle.y = field_0x2fe2; + current.angle.y = mMoveAngle; } - s16 temp_r29_3 = current.angle.y; + temp_r29 = current.angle.y; if (checkNoResetFlg0(FLG0_SWIM_UP)) { - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mSwim.m.mTurnRate, mpHIO->mSwim.m.mMaxTurn, mpHIO->mSwim.m.mMinTurn); + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, mpHIO->mSwim.m.mTurnRate, mpHIO->mSwim.m.mMaxTurn, mpHIO->mSwim.m.mMinTurn); } else { - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mSwim.m.mUnderwaterTurnRate, mpHIO->mSwim.m.mUnderwaterMaxTurn, mpHIO->mSwim.m.mUnderwaterMinTurn); + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, mpHIO->mSwim.m.mUnderwaterTurnRate, mpHIO->mSwim.m.mUnderwaterMaxTurn, mpHIO->mSwim.m.mUnderwaterMinTurn); } - var_f30 = mpHIO->mSwim.m.mAcceleration * field_0x33a8 * cM_scos((s16)(current.angle.y - temp_r29_3)); + var_f30 = mpHIO->mSwim.m.mAcceleration * mStickValue * cM_scos((s16)(current.angle.y - temp_r29)); } else { var_f30 = 0.0f; } @@ -322,7 +315,7 @@ int daAlink_c::checkNextActionSwim() { field_0x3000 = 30; } - if ((checkZoraWearAbility() && !checkHeavyStateOn(1, 1)) || checkNoResetFlg0(FLG0_SWIM_UP)) { + if ((checkZoraWearAbility() && !checkHeavyStateOn(TRUE, TRUE)) || checkNoResetFlg0(FLG0_SWIM_UP)) { setTalkStatus(); } @@ -333,7 +326,7 @@ int daAlink_c::checkNextActionSwim() { if (mAttList != NULL && mAttList->mType == fopAc_attn_ETC_e && checkNoResetFlg0(FLG0_SWIM_UP) && fopAcM_GetName(field_0x27f4) == PROC_CANOE) { - setDoStatus(0x17); + setDoStatus(BUTTON_STATUS_GET_ON); if (doTrigger()) { return procCanoeRideInit(); @@ -362,9 +355,15 @@ int daAlink_c::checkSwimAction(int param_0) { var_f31 = mpHIO->mSwim.m.mStartHeight; } - if (checkNoResetFlg0(FLG0_UNK_80) && !checkNoResetFlg0(FLG0_UNDERWATER) && !checkModeFlg(0x40000) && mProcID != PROC_MAGNE_BOOTS_FLY && ((mProcID != PROC_WOLF_LOCK_ATTACK && mProcID != PROC_WOLF_LOCK_ATTACK_TURN) || mProcVar5.field_0x3012 == 0) && mDemo.getDemoMode() != 0x11) { - f32 var_f28; + if (checkNoResetFlg0(FLG0_UNK_80) + && !checkNoResetFlg0(FLG0_WATER_IN_MOVE) + && !checkModeFlg(0x40000) + && mProcID != PROC_MAGNE_BOOTS_FLY + && ((mProcID != PROC_WOLF_LOCK_ATTACK && mProcID != PROC_WOLF_LOCK_ATTACK_TURN) || mProcVar5.field_0x3012 == 0) + && mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_17_e) + { f32 var_f29; + f32 var_f28; f32 var_f30; if (checkWolf()) { @@ -393,14 +392,14 @@ int daAlink_c::checkSwimAction(int param_0) { offNoResetFlg0(FLG0_SWIM_UP); mZ2Link.setInWater(true); - field_0x594 = var_f29; + mMaxSpeed = var_f29; if (!param_0) { mNormalSpeed *= 0.75f; } - if (mNormalSpeed >= field_0x594) { - mNormalSpeed = field_0x594; + if (mNormalSpeed >= mMaxSpeed) { + mNormalSpeed = mMaxSpeed; } swimDeleteItem(); @@ -421,7 +420,7 @@ int daAlink_c::checkSwimAction(int param_0) { } if (checkModeFlg(2) && !checkPossibleWaterInMode()) { - dComIfGp_getVibration().StartShock(2, 1, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER2, 1, cXyz(0.0f, 1.0f, 0.0f)); current.pos.y = var_f30 + var_f31; speed.y = 0.75f * field_0x3528.y; @@ -433,15 +432,15 @@ int daAlink_c::checkSwimAction(int param_0) { if (checkWolf()) { if (checkNoResetFlg2(FLG2_UNK_8)) { - daAlink_WANM var_r29; + daAlink_WANM anm; if (cM_rnd() < 0.5f) { - var_r29 = WANM_FLING_LEFT; + anm = WANM_FLING_LEFT; onNoResetFlg2(FLG2_WOLF_ENEMY_LEFT_THROW); } else { - var_r29 = WANM_FLING_RIGHT; + anm = WANM_FLING_RIGHT; offNoResetFlg2(FLG2_WOLF_ENEMY_LEFT_THROW); } - setWolfEnemyThrowUpperAnime(var_r29, 0.0f); + setWolfEnemyThrowUpperAnime(anm, 0.0f); } return procWolfSwimWaitInit(1); @@ -460,7 +459,7 @@ int daAlink_c::checkSwimAction(int param_0) { } if (checkBootsOrArmorHeavy() || checkPossibleWaterInMode()) { - onNoResetFlg0(FLG0_UNDERWATER); + onNoResetFlg0(FLG0_WATER_IN_MOVE); return 0; } @@ -541,7 +540,7 @@ int daAlink_c::checkSwimUpAction() { } else { current.pos.y = mLinkAcch.GetGroundH(); mLinkAcch.SetGroundHit(); - onNoResetFlg0(FLG0_UNDERWATER); + onNoResetFlg0(FLG0_WATER_IN_MOVE); procLandInit(0.0f); field_0x2f99 = 0x90; return 1; @@ -559,12 +558,14 @@ int daAlink_c::checkSwimUpAction() { } void daAlink_c::swimOutAfter(int param_0) { + UNUSED(param_0); + onNoResetFlg0(FLG0_SWIM_UP); onEndResetFlg1(ERFLG1_UNK_100); mZ2Link.setInWater(false); - if (checkNoResetFlg0(FLG0_UNDERWATER)) { - offNoResetFlg0(FLG0_UNDERWATER); + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { + offNoResetFlg0(FLG0_WATER_IN_MOVE); } else { field_0x2b98 = 0.0f; field_0x2f98 = 4; @@ -630,12 +631,11 @@ int daAlink_c::checkSwimOutAction() { } void daAlink_c::setSwimMoveAnime() { - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; - daPy_frameCtrl_c* temp_r27 = &mUpperFrameCtrl[2]; + daPy_frameCtrl_c* framectrl_under0 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl_upper2 = &mUpperFrameCtrl[2]; f32 var_f31; - f32 temp_f25 = temp_r28->getEnd(); - f32 var_f26 = temp_r28->getFrame() * temp_f25; + f32 var_f26 = framectrl_under0->getFrame() * framectrl_under0->getEnd(); if (field_0x3000 != 0 && !checkHookshotAnime()) { field_0x2f98 = 4; @@ -650,9 +650,9 @@ void daAlink_c::setSwimMoveAnime() { field_0x2f98 = 0; } - daAlink_ANM var_r29; - BOOL var_r26 = 1; - BOOL var_r25 = 0; + daAlink_ANM anm = (daAlink_ANM)field_0x3198; + BOOL var_r26 = TRUE; + BOOL var_r25 = FALSE; if (field_0x2f98 == 4) { f32 temp_f29 = mpHIO->mSwim.m.mUnderwaterMaxSpeed + mpHIO->mSwim.m.mUnderwaterButtonAdditionalSpeed; @@ -660,12 +660,12 @@ void daAlink_c::setSwimMoveAnime() { field_0x3478 = mpHIO->mSwim.m.mUnderwaterMinAnmSpeed; field_0x347c = mpHIO->mSwim.m.mUnderwaterMaxAnmSpeed; - if (field_0x594 < mpHIO->mSwim.m.mUnderwaterMaxSpeed) { - field_0x594 = mpHIO->mSwim.m.mUnderwaterMaxSpeed; + if (mMaxSpeed < mpHIO->mSwim.m.mUnderwaterMaxSpeed) { + mMaxSpeed = mpHIO->mSwim.m.mUnderwaterMaxSpeed; } else if (doTrigger()) { - field_0x594 += 0.75f; - if (field_0x594 > temp_f29) { - field_0x594 = temp_f29; + mMaxSpeed += 0.75f; + if (mMaxSpeed > temp_f29) { + mMaxSpeed = temp_f29; } if (!checkSwimMoveHandAnime() && !checkZoraSwimDamageAnime()) { @@ -679,77 +679,77 @@ void daAlink_c::setSwimMoveAnime() { setUpperAnime(0x23F, UPPER_2, 1.0f, 0.0f, 0x28, var_f28); mProcVar5.field_0x3012 = 0; var_r25 = 1; - } else if (temp_r27->getFrame() > 25.0f) { + } else if (framectrl_upper2->getFrame() > 25.0f) { mProcVar5.field_0x3012 = 1; } } else if (!checkSwimMoveHandAnime()) { - cLib_chaseF(&field_0x594, mpHIO->mSwim.m.mUnderwaterMaxSpeed, 0.4f); + cLib_chaseF(&mMaxSpeed, mpHIO->mSwim.m.mUnderwaterMaxSpeed, 0.4f); } var_f31 = 1.0f / mpHIO->mSwim.m.mUnderwaterMaxSpeed; - if (checkZoraWearAbility() && (field_0x3198 == ANM_SWIM_DIVE || (field_0x3198 == ANM_SWIM_ZORA_START && !checkAnmEnd(temp_r28)))) { - var_r29 = ANM_SWIM_ZORA_START; + if (checkZoraWearAbility() && (field_0x3198 == ANM_SWIM_DIVE || (field_0x3198 == ANM_SWIM_ZORA_START && !checkAnmEnd(framectrl_under0)))) { + anm = ANM_SWIM_ZORA_START; } else { - var_r29 = ANM_SWIM_C; + anm = ANM_SWIM_C; if (field_0x3198 == ANM_SWIM_ZORA_START) { - var_r26 = 0; + var_r26 = FALSE; if (mProcVar4.field_0x3010 == 1) { mProcVar4.field_0x3010 = 0; } } } } else if (field_0x2f98 == 0) { - if (checkSwimDashMode() && checkUnderMove0BckNoArc(ANM_SWIM_DASH) && !checkAnmEnd(temp_r28)) { - var_r29 = ANM_SWIM_DASH; + if (checkSwimDashMode() && checkUnderMove0BckNoArc(ANM_SWIM_DASH) && !checkAnmEnd(framectrl_under0)) { + anm = ANM_SWIM_DASH; } else if (mNormalSpeed < 3.0f || checkHookshotAnime()) { - var_r29 = ANM_SWIM_WAIT; + anm = ANM_SWIM_WAIT; field_0x30d0 = 0; } else { - var_r29 = ANM_SWIM_A; + anm = ANM_SWIM_A; } if (checkSwimDashMode()) { field_0x3478 = mpHIO->mSwim.m.mDashMinAnmSpeed; field_0x347c = mpHIO->mSwim.m.mDashMaxAnmSpeed; - field_0x594 = mpHIO->mSwim.m.mDashMaxSpeed; + mMaxSpeed = mpHIO->mSwim.m.mDashMaxSpeed; } else { field_0x3478 = mpHIO->mSwim.m.mForwardMinAnmSpeed; field_0x347c = mpHIO->mSwim.m.mForwardMaxAnmSpeed; - field_0x594 = getSwimFrontMaxSpeed(); + mMaxSpeed = getSwimFrontMaxSpeed(); } - var_f31 = 1.0f / field_0x594; + var_f31 = 1.0f / mMaxSpeed; } else if (field_0x2f98 == 1) { - var_r29 = ANM_ATN_SWIM_BACK; + anm = ANM_ATN_SWIM_BACK; field_0x3478 = mpHIO->mSwim.m.mBackwardMinAnmSpeed; field_0x347c = mpHIO->mSwim.m.mBackwardMaxAnmSpeed; if (checkZoraWearAbility()) { - field_0x594 = 10.0f; + mMaxSpeed = 10.0f; } else { - field_0x594 = mpHIO->mSwim.m.mBackwardMaxSpeed; + mMaxSpeed = mpHIO->mSwim.m.mBackwardMaxSpeed; } - var_f31 = 1.0f / field_0x594; + var_f31 = 1.0f / mMaxSpeed; } else { if (field_0x2f98 == 2) { - var_r29 = ANM_ATN_SWIM_LEFT; + anm = ANM_ATN_SWIM_LEFT; } else { - var_r29 = ANM_ATN_SWIM_RIGHT; + anm = ANM_ATN_SWIM_RIGHT; } field_0x3478 = mpHIO->mSwim.m.mStrafeMinAnmSpeed; field_0x347c = mpHIO->mSwim.m.mStrafeMaxAnmSpeed; if (checkZoraWearAbility()) { - field_0x594 = 12.0f; + mMaxSpeed = 12.0f; } else { - field_0x594 = mpHIO->mSwim.m.mStrafeMaxSpeed; + mMaxSpeed = mpHIO->mSwim.m.mStrafeMaxSpeed; } - var_f31 = 1.0f / field_0x594; + var_f31 = 1.0f / mMaxSpeed; } field_0x347c -= field_0x3478; @@ -759,55 +759,55 @@ void daAlink_c::setSwimMoveAnime() { } if (checkBootsOrArmorHeavy()) { - var_r29 = ANM_SWIM_WAIT; - field_0x594 = mpHIO->mSwim.m.mUnderwaterFallMaxSpeed; + anm = ANM_SWIM_WAIT; + mMaxSpeed = mpHIO->mSwim.m.mUnderwaterFallMaxSpeed; if (mEquipItem != fpcNm_ITEM_NONE && !checkHookshotAnime()) { - setDoStatus(4); + setDoStatus(BUTTON_STATUS_PUT_AWAY); } } - if (var_r29 != field_0x3198) { + if (anm != field_0x3198) { if (field_0x3198 == ANM_SWIM_ZORA_START) { speed.y = 0.0f; } - field_0x3198 = var_r29; + field_0x3198 = anm; if (checkUnderMove0BckNoArc(ANM_SWIM_DASH)) { field_0x30d2 = mpHIO->mSwim.m.field_0x5e; } - if (var_r29 == ANM_SWIM_WAIT) { + if (anm == ANM_SWIM_WAIT) { setSingleAnimeBaseSpeed(ANM_SWIM_WAIT, mpHIO->mSwim.m.mWaitAnmSpeed, mpHIO->mSwim.m.mWaitInterpolation); } else { - f32 var_f27; - if (var_r26 != 0) { - var_f27 = mpHIO->mSwim.m.mMoveInterpolation; + f32 morf; + if (var_r26) { + morf = mpHIO->mSwim.m.mMoveInterpolation; } else { - var_f27 = 0.0f; + morf = 0.0f; } - setSingleAnimeBaseMorf(var_r29, var_f27); + setSingleAnimeBaseMorf(anm, morf); } } - if (var_r29 != ANM_SWIM_WAIT && var_r29 != ANM_SWIM_DASH) { + if (anm != ANM_SWIM_WAIT && anm != ANM_SWIM_DASH) { f32 temp_f30 = var_f31 * fabsf(mNormalSpeed); if (temp_f30 > 1.0f && field_0x2f98 == 4) { - temp_r28->setRate(mpHIO->mSwim.m.mUnderwaterMaxAnmSpeed + ((temp_f30 - 1.0f) * mpHIO->mSwim.m.mUnderwaterAdditionalAnmSpeed)); + framectrl_under0->setRate(mpHIO->mSwim.m.mUnderwaterMaxAnmSpeed + ((temp_f30 - 1.0f) * mpHIO->mSwim.m.mUnderwaterAdditionalAnmSpeed)); } else { - temp_r28->setRate(field_0x3478 + (field_0x347c * temp_f30)); + framectrl_under0->setRate(field_0x3478 + (field_0x347c * temp_f30)); } } if (checkSwimMoveHandAnime()) { - if (temp_r27->checkPass(17.0f)) { + if (framectrl_upper2->checkPass(17.0f)) { seStartOnlyReverb(Z2SE_AL_WATER_STROKE_L); } - if (var_r29 == ANM_SWIM_C) { - temp_r27->setRate(temp_r28->getRate()); + if (anm == ANM_SWIM_C) { + framectrl_upper2->setRate(framectrl_under0->getRate()); - if (var_r25 == 0 && temp_r27->checkPass(0.0f)) { + if (!var_r25 && framectrl_upper2->checkPass(0.0f)) { if (mProcVar5.field_0x3012 != 0) { mProcVar5.field_0x3012 = 0; } else { @@ -821,7 +821,7 @@ void daAlink_c::setSwimMoveAnime() { maxFallSpeed = getSwimMaxFallSpeed(); - if (var_r29 == ANM_SWIM_C || var_r29 == ANM_SWIM_ZORA_START) { + if (anm == ANM_SWIM_C || anm == ANM_SWIM_ZORA_START) { if (!checkZoraWearAbility()) { if (field_0x3080 != -0x3800) { setOldRootQuaternion(0x4000, 0, 0); @@ -854,11 +854,11 @@ void daAlink_c::setSwimMoveAnime() { } bool daAlink_c::checkSwimButtonAccept() { - return dComIfGp_getDoStatus() == 0x41 || dComIfGp_getDoStatus() == 0x4C; + return dComIfGp_getDoStatus() == BUTTON_STATUS_DIVE || dComIfGp_getDoStatus() == BUTTON_STATUS_SWIM; } bool daAlink_c::checkUpSwimButtonAccept() { - return dComIfGp_getDoStatus() == 0x97; + return dComIfGp_getDoStatus() == BUTTON_STATUS_UNK_151; } BOOL daAlink_c::checkSwimButtonMove() { @@ -879,7 +879,7 @@ void daAlink_c::setSwimUpDownOffset() { f32 var_f1; if (checkWolf()) { - if (checkHeavyStateOn(1, 1)) { + if (checkHeavyStateOn(TRUE, TRUE)) { var_f1 = mpHIO->mWolf.mWlSwim.m.mHeavyIdleUpDownSwayAmount; } else { var_f1 = mpHIO->mWolf.mWlSwim.m.mIdleUpDownSwayAmount; @@ -946,10 +946,10 @@ int daAlink_c::procSwimUp() { int daAlink_c::procSwimWaitInit(int param_0) { daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; - u32 mode_40000 = checkModeFlg(0x40000); + u32 is_mode40000 = checkModeFlg(0x40000); - if (checkNoResetFlg0(FLG0_UNDERWATER)) { - offNoResetFlg0(FLG0_UNDERWATER); + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { + offNoResetFlg0(FLG0_WATER_IN_MOVE); current.pos.y += mpHIO->mSwim.m.mStartHeight; } @@ -959,7 +959,7 @@ int daAlink_c::procSwimWaitInit(int param_0) { seStartMapInfo(Z2SE_AL_INTO_WATER); mProcVar4.field_0x3010 = 0; field_0x3480 = mpHIO->mSwim.m.mStartHeight; - } else if (!mode_40000) { + } else if (!is_mode40000) { mProcVar4.field_0x3010 = 0; field_0x3480 = mpHIO->mSwim.m.mStartHeight; } @@ -991,18 +991,18 @@ int daAlink_c::procSwimWaitInit(int param_0) { mProcVar2.field_0x300c = 0; mProcVar0.field_0x3008 = 0; - field_0x594 = getSwimFrontMaxSpeed(); + mMaxSpeed = getSwimFrontMaxSpeed(); return 1; } int daAlink_c::procSwimWait() { - if (mDemo.getDemoMode() == 6 || mDemo.getDemoMode() == 8) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_6_e || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_8_e) { setShapeAngleToTalkActor(); current.angle.y = shape_angle.y; } maxFallSpeed = getSwimMaxFallSpeed(); - field_0x594 = getSwimFrontMaxSpeed(); + mMaxSpeed = getSwimFrontMaxSpeed(); setSpeedAndAngleSwim(); @@ -1015,7 +1015,7 @@ int daAlink_c::procSwimWait() { setSwimUpDownOffset(); if (checkEquipHeavyBoots() && mEquipItem != fpcNm_ITEM_NONE) { - setDoStatus(0x4); + setDoStatus(BUTTON_STATUS_PUT_AWAY); } if (checkSwimUpAction()) { @@ -1047,25 +1047,25 @@ int daAlink_c::procSwimWait() { } int daAlink_c::procSwimMoveInit() { - u32 mode_40000 = checkModeFlg(0x40000); - bool proc_dive_jump = mProcID == PROC_DIVE_JUMP; - bool proc_swim_dive = mProcID == PROC_SWIM_DIVE; + u32 is_mode40000 = checkModeFlg(0x40000); + bool is_prev_dive_jump = mProcID == PROC_DIVE_JUMP; + bool is_prev_swim_dive = mProcID == PROC_SWIM_DIVE; commonProcInit(PROC_SWIM_MOVE); - if (checkNoResetFlg0(FLG0_UNDERWATER)) { - offNoResetFlg0(FLG0_UNDERWATER); + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { + offNoResetFlg0(FLG0_WATER_IN_MOVE); } - if (!mode_40000) { + if (!is_mode40000) { field_0x3480 = mpHIO->mSwim.m.mStartHeight; mProcVar4.field_0x3010 = 0; } - if (proc_swim_dive || proc_dive_jump) { + if (is_prev_swim_dive || is_prev_dive_jump) { field_0x3198 = 199; - if (proc_dive_jump) { + if (is_prev_dive_jump) { field_0x3080 = 0x2800; mProcVar3.field_0x300e = field_0x3080; mProcVar4.field_0x3010 = 1; @@ -1092,6 +1092,8 @@ int daAlink_c::procSwimMoveInit() { int daAlink_c::procSwimMove() { setSpeedAndAngleSwim(); + daPy_frameCtrl_c* framectrl = mUnderFrameCtrl; + if (checkUpSwimButtonAccept() && doButton()) { field_0x3000 = 30; } @@ -1113,7 +1115,7 @@ int daAlink_c::procSwimMove() { if (checkSwimButtonAccept() && doTrigger() && !getZoraSwim()) { procSwimDiveInit(); - } else if (dComIfGp_getDoStatus() == 9 && doTrigger()) { + } else if (dComIfGp_getDoStatus() == BUTTON_STATUS_DASH && doTrigger()) { onNoResetFlg1(FLG1_DASH_MODE); field_0x30d0 = mpHIO->mSwim.m.field_0x5c; setSingleAnimeParam(ANM_SWIM_DASH, &mpHIO->mSwim.m.mDashAnm); @@ -1153,12 +1155,11 @@ int daAlink_c::procSwimDiveInit() { return 1; } - int daAlink_c::procSwimDive() { daPy_frameCtrl_c* frame_ctrl = mUnderFrameCtrl; if (mProcVar2.field_0x300c == 0) { - setDoStatus(0x4C); + setDoStatus(BUTTON_STATUS_SWIM); } else if (checkNoResetFlg0(FLG0_SWIM_UP) && frame_ctrl->getFrame() > 20.0f) { offNoResetFlg0(FLG0_SWIM_UP); mZ2Link.setInWater(true); @@ -1178,8 +1179,8 @@ int daAlink_c::procSwimDive() { fopKyM_createWpillar(&pos, 0.7f, 0); } - if (mLinkAcch.GetGroundH() > current.pos.y - field_0x598 * 0.5f) { - current.pos.y = field_0x598 * 0.5f + mLinkAcch.GetGroundH(); + if (mLinkAcch.GetGroundH() > current.pos.y - mHeight * 0.5f) { + current.pos.y = mHeight * 0.5f + mLinkAcch.GetGroundH(); } if (checkAnmEnd(frame_ctrl)) { @@ -1198,7 +1199,6 @@ int daAlink_c::procSwimDive() { return 1; } - int daAlink_c::procSwimHookshotSubjectInit() { if (!commonProcInitNotSameProc(PROC_SWIM_HOOKSHOT_SUBJECT)) { return 0; @@ -1226,23 +1226,26 @@ int daAlink_c::procSwimHookshotSubjectInit() { mProcVar2.field_0x300c = 0; mProcVar0.field_0x3008 = 0; - field_0x594 = getSwimFrontMaxSpeed(); + mMaxSpeed = getSwimFrontMaxSpeed(); field_0x3480 = mpHIO->mSwim.m.mStartHeight; mProcVar4.field_0x3010 = 0; field_0x30d0 = 0; + #if PLATFORM_GCN setHookshotReadyMaterial(); + #endif + dComIfGp_setPlayerStatus0(0, 0x104000); return 1; } int daAlink_c::procSwimHookshotSubject() { maxFallSpeed = getSwimMaxFallSpeed(); - field_0x594 = getSwimFrontMaxSpeed(); + mMaxSpeed = getSwimFrontMaxSpeed(); if (checkHookshotWait()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } setShapeAngleToAtnActor(0); @@ -1316,7 +1319,7 @@ int daAlink_c::procSwimHookshotMove() { cancelHookshotMove(); if (checkHookshotWait() && !checkZoraWearAbility()) { - setDoStatus(0x12); + setDoStatus(BUTTON_STATUS_BACK); } if (mItemVar0.field_0x3018 == 0) { @@ -1364,48 +1367,50 @@ int daAlink_c::procSwimHookshotMove() { return 1; } -int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) { +int daAlink_c::procSwimDamageInit(dCcD_GObjInf* i_hitObj) { seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL); - dComIfGp_getVibration().StartShock(2, 31, cXyz(0.0f, 1.0f, 0.0f)); + dComIfGp_getVibration().StartShock(VIBMODE_S_POWER2, 31, cXyz(0.0f, 1.0f, 0.0f)); - BOOL bvar4 = - checkNoResetFlg0(FLG0_SWIM_UP) || ((param_0 != NULL && param_0->GetTgHitAc() != NULL) && - fopAcM_GetName(param_0->GetTgHitAc()) == PROC_E_SG); + BOOL bvar4 = checkNoResetFlg0(FLG0_SWIM_UP) + || ((i_hitObj != NULL && i_hitObj->GetTgHitAc() != NULL) + && fopAcM_GetName(i_hitObj->GetTgHitAc()) == PROC_E_SG); if (!getZoraSwim() && bvar4 && mProcID != PROC_SWIM_WAIT) { return 1; } - cXyz* temp_r30; - cXyz sp30; + cXyz* dmg_vec; + cXyz work; - if (param_0 != NULL) { - temp_r30 = (cXyz*)getDamageVec(param_0); + if (i_hitObj != NULL) { + dmg_vec = (cXyz*)getDamageVec(i_hitObj); } else { - sp30.set(-cM_ssin(current.angle.y), 0.0f, -cM_scos(current.angle.y)); - temp_r30 = &sp30; + work.set(-cM_ssin(current.angle.y), 0.0f, -cM_scos(current.angle.y)); + dmg_vec = &work; } - f32 scale = - temp_r30->abs() * mpHIO->mDamage.mDamSwim.m.mAttackSpeedRate + mpHIO->mDamage.mDamSwim.m.mInitialSpeed; + f32 scale = dmg_vec->abs() * mpHIO->mDamage.mDamSwim.m.mAttackSpeedRate + mpHIO->mDamage.mDamSwim.m.mInitialSpeed; if (scale > mpHIO->mDamage.mDamSwim.m.mMaxSpeed) { scale = mpHIO->mDamage.mDamSwim.m.mMaxSpeed; } - field_0x3750 = temp_r30->normZP(); + field_0x3750 = dmg_vec->normZP(); field_0x3750 *= scale; if (getZoraSwim()) { - setUpperAnimeParam(0xBF, UPPER_2, &mpHIO->mDamage.mDamSwim.m.mSinkAnm); - setFacePriBck(0xEA); - setFacePriTexture(FTANM_UNK_27); + setUpperAnimeParam(dRes_ID_ALANM_BCK_DAMSW_e, UPPER_2, &mpHIO->mDamage.mDamSwim.m.mSinkAnm); + setFacePriBck(dRes_ID_ALANM_BCK_FB_e); + setFacePriTexture(FTANM_B_A); return 1; } commonProcInit(PROC_SWIM_DAMAGE); - cXyz sp24(temp_r30->z * -cM_ssin(shape_angle.y) + temp_r30->x * cM_scos(shape_angle.y), - temp_r30->y, - temp_r30->z * cM_scos(shape_angle.y) + temp_r30->x * cM_ssin(shape_angle.y)); + + f32 var_f30 = cM_ssin(shape_angle.y); + f32 var_f29 = cM_scos(shape_angle.y); + cXyz sp24(dmg_vec->z * -var_f30 + dmg_vec->x * var_f29, + dmg_vec->y, + dmg_vec->z * var_f29 + dmg_vec->x * var_f30); mProcVar0.field_0x3008 = cLib_minMaxLimit(cM_atan2s(sp24.z, sp24.y), (s16)-mpHIO->mDamage.mDamSwim.m.mFrontBackBodyMaxAngle, @@ -1436,7 +1441,9 @@ int daAlink_c::procSwimDamageInit(dCcD_GObjInf* param_0) { } mNormalSpeed = 0.0f; - field_0x347c = M_PI / (mUnderFrameCtrl->getEnd() - mUnderFrameCtrl->getStart()); + + daPy_frameCtrl_c* framectrl = mUnderFrameCtrl; + field_0x347c = M_PI / (framectrl->getEnd() - framectrl->getStart()); field_0x3480 = mpHIO->mSwim.m.mStartHeight; current.angle.y = shape_angle.y; @@ -1470,13 +1477,12 @@ int daAlink_c::procSwimDamage() { return 1; } - int daAlink_c::procOctaIealSpitInit() { u32 temp_r30 = checkModeFlg(MODE_SWIMMING); commonProcInit(PROC_OCTAIEAL_SPIT); - if (checkNoResetFlg0(FLG0_UNDERWATER)) { - offNoResetFlg0(FLG0_UNDERWATER); + if (checkNoResetFlg0(FLG0_WATER_IN_MOVE)) { + offNoResetFlg0(FLG0_WATER_IN_MOVE); } setSingleAnimeBase(ANM_MORPHEEL_SPIT_OUT); @@ -1519,14 +1525,14 @@ static f32 dummyFloat() { } int daAlink_c::procOctaIealSpit() { - if (mDemo.getDemoMode() == 0x2E) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_CAUGHT_e) { cancelOriginalDemo(); } cLib_addCalc(&mNormalSpeed, 0.0f, 0.5f, field_0x3478, 0.1f); field_0x2f99 = 7; - if (mUnderFrameCtrl[0].checkAnmEnd()) { + if (checkAnmEnd(mUnderFrameCtrl)) { procSwimWaitInit(0); } diff --git a/src/d/actor/d_a_alink_swindow.inc b/src/d/actor/d_a_alink_swindow.inc index 79225d79c7..d990f8a9e1 100644 --- a/src/d/actor/d_a_alink_swindow.inc +++ b/src/d/actor/d_a_alink_swindow.inc @@ -5,8 +5,9 @@ #include "d/actor/d_a_alink.h" #include "JSystem/JKernel/JKRExpHeap.h" +#include "JSystem/J3DGraphLoader/J3DAnmLoader.h" -static int daAlink_modelCallBack(J3DJoint* p_joint, int param_1); +static int daAlink_modelCallBack(J3DJoint* i_joint, int param_1); static int daAlink_headModelCallBack(J3DJoint* i_joint, int param_1); static int daAlink_wolfModelCallBack(J3DJoint* i_joint, int param_1); @@ -24,14 +25,6 @@ void daAlink_c::setArcName(BOOL i_isWolf) { } } -inline bool checkCarvingWoodShieldEquip() { - return dComIfGs_getSelectEquipShield() == fpcNm_ITEM_WOOD_SHIELD; -} - -inline bool checkShopWoodShieldEquip() { - return dComIfGs_getSelectEquipShield() == fpcNm_ITEM_SHIELD; -} - void daAlink_c::setShieldArcName() { if (checkCarvingWoodShieldEquip() || !checkShieldGet()) { mShieldArcName = l_cWShdArcName; @@ -44,8 +37,13 @@ void daAlink_c::setShieldArcName() { void daAlink_c::setOriginalHeap(JKRExpHeap** i_ppheap, u32 i_size) { if (*i_ppheap == NULL) { - *i_ppheap = - JKRExpHeap::create(ROUND(i_size, 0x10) + 0xA0, mDoExt_getGameHeap(), true); + u32 var_r29 = 0x90; + u32 var_r28 = 0x10; + u32 size = ROUND(i_size, 16); + JKRHeap* parent = mDoExt_getGameHeap(); + + JKRExpHeap* heap = JKRExpHeap::create(size + (var_r29 + var_r28), parent, true); + *i_ppheap = heap; } } @@ -91,7 +89,8 @@ int daAlink_c::loadModelDVD() { mClothesChangeWaitTimer = 0; changeLink(1); } else { - if (dComIfG_resLoad(&mPhaseReq, mArcName, mpArcHeap) == cPhs_COMPLEATE_e) { + int phase_state = dComIfG_resLoad(&mPhaseReq, mArcName, mpArcHeap); + if (phase_state == cPhs_COMPLEATE_e) { mClothesChangeWaitTimer = 0; if (mProcID == PROC_METAMORPHOSE || mProcID == PROC_METAMORPHOSE_ONLY) { @@ -134,8 +133,8 @@ int daAlink_c::loadShieldModelDVD() { mpShieldArcHeap->freeAll(); setShieldArcName(); } else if (mShieldChangeWaitTimer == 1) { - if (dComIfG_resLoad(&mShieldPhaseReq, mShieldArcName, mpShieldArcHeap) == cPhs_COMPLEATE_e) - { + int phase_state = dComIfG_resLoad(&mShieldPhaseReq, mShieldArcName, mpShieldArcHeap); + if (phase_state == cPhs_COMPLEATE_e) { mShieldChangeWaitTimer = 0; setShieldModel(); } else { @@ -151,6 +150,7 @@ int daAlink_c::loadShieldModelDVD() { void daAlink_c::changeModelDataDirect(int param_0) { u16 i; + J3DModelData* modelData; field_0x064C = mpLinkModel->getModelData(); field_0x06c0 = mpLinkFaceModel->getModelData(); @@ -164,14 +164,14 @@ void daAlink_c::changeModelDataDirect(int param_0) { field_0x064C->getJointNodePointer(i)->setCallBack(daAlink_modelCallBack); } - J3DModelData* head_modelData = mpLinkHatModel->getModelData(); - for (i = 1; i < head_modelData->getJointNum(); i++) { - head_modelData->getJointNodePointer(i)->setCallBack(daAlink_headModelCallBack); + modelData = mpLinkHatModel->getModelData(); + for (i = 1; i < modelData->getJointNum(); i++) { + modelData->getJointNodePointer(i)->setCallBack(daAlink_headModelCallBack); } if (param_0) { - if (field_0x2154 != NULL) { - field_0x06c0->entryTexNoAnimator(field_0x2154); + if (mpFaceBtp != NULL) { + field_0x06c0->entryTexNoAnimator(mpFaceBtp); } if (mpFaceBtk != NULL) { @@ -188,14 +188,14 @@ void daAlink_c::changeModelDataDirect(int param_0) { field_0x064C->getJointNodePointer(i)->setCallBack(NULL); } - J3DModelData* head_modelData = mpLinkHatModel->getModelData(); - for (i = 1; i < head_modelData->getJointNum(); i++) { - head_modelData->getJointNodePointer(i)->setCallBack(NULL); + modelData = mpLinkHatModel->getModelData(); + for (i = 1; i < modelData->getJointNum(); i++) { + modelData->getJointNodePointer(i)->setCallBack(NULL); } if (!checkNoResetFlg2(daPy_FLG2(FLG2_UNK_100000 | FLG2_UNK_80000))) { for (i = 6; i < 8; i++) { - head_modelData->getJointNodePointer(i)->setCallBack(daAlink_headModelCallBack); + modelData->getJointNodePointer(i)->setCallBack(daAlink_headModelCallBack); } } } @@ -217,8 +217,8 @@ void daAlink_c::changeModelDataDirectWolf(int param_0) { } if (param_0) { - if (field_0x2154 != NULL) { - field_0x06c0->entryTexNoAnimator(field_0x2154); + if (mpFaceBtp != NULL) { + field_0x06c0->entryTexNoAnimator(mpFaceBtp); } if (mpFaceBtk != NULL) { @@ -240,61 +240,61 @@ void daAlink_c::initStatusWindow() { onNoResetFlg2(FLG2_STATUS_WINDOW_DRAW); void* tmpBuffer = new (0x20) void*[0x500]; - JUT_ASSERT(0x18A, tmpBuffer); + JUT_ASSERT(394, tmpBuffer); - u16 var_r28, var_r31, var_r30; + u16 bckResIdx, btpResIdx, btkResIdx; if (checkWolf()) { - var_r28 = 0x2FF; - var_r31 = 0x408; - var_r30 = 0x3A7; + bckResIdx = dRes_ID_ALANM_BCK_WL_WAITA_e; + btpResIdx = dRes_ID_ALANM_BTP_WL_FA_e; + btkResIdx = dRes_ID_ALANM_BTK_WL_FA_e; changeModelDataDirectWolf(0); } else { - var_r28 = 0x26A; - var_r31 = 0x3AF; - var_r30 = 0x32C; + bckResIdx = dRes_ID_ALANM_BCK_WAITS_e; + btpResIdx = dRes_ID_ALANM_BTP_FA_e; + btkResIdx = dRes_ID_ALANM_BTK_FA_e; if (checkZoraWearAbility() && !checkZoraWearMaskDraw()) { field_0x06f0->hide(); } + changeModelDataDirect(0); } - JKRReadIdxResource(tmpBuffer, 0x1400, var_r28, dComIfGp_getAnmArchive()); + JKRReadIdxResource(tmpBuffer, 0x1400, bckResIdx, dComIfGp_getAnmArchive()); m_sWindowBck = new mDoExt_bckAnm(); - JUT_ASSERT(0x1AC, m_sWindowBck); + JUT_ASSERT(428, m_sWindowBck); - J3DAnmTransform* bck = (J3DAnmTransform*)J3DAnmLoaderDataBase::load(tmpBuffer, J3DLOADER_UNK_FLAG0); - if (!m_sWindowBck->init(bck, 1, 2, 1.0f, 0, -1, false)) { + if (!m_sWindowBck->init((J3DAnmTransform*)J3DAnmLoaderDataBase::load(tmpBuffer), TRUE, 2, 1.0f, 0, -1, false)) { JUT_ASSERT(433, FALSE); } tmpBuffer = new (0x20) void*[0x100]; - JUT_ASSERT(0x1B5, tmpBuffer); + JUT_ASSERT(437, tmpBuffer); - JKRReadIdxResource(tmpBuffer, 0x400, var_r31, dComIfGp_getAnmArchive()); + JKRReadIdxResource(tmpBuffer, 0x400, btpResIdx, dComIfGp_getAnmArchive()); J3DAnmTexPattern* btp = (J3DAnmTexPattern*)J3DAnmLoaderDataBase::load(tmpBuffer, J3DLOADER_UNK_FLAG0); btp->setFrame(0.0f); btp->searchUpdateMaterialID(field_0x06c0); field_0x06c0->entryTexNoAnimator(btp); tmpBuffer = new (0x20) void*[0x100]; - JUT_ASSERT(0x1C1, tmpBuffer); + JUT_ASSERT(449, tmpBuffer); - JKRReadIdxResource(tmpBuffer, 0x400, var_r30, dComIfGp_getAnmArchive()); + JKRReadIdxResource(tmpBuffer, 0x400, btkResIdx, dComIfGp_getAnmArchive()); J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)J3DAnmLoaderDataBase::load(tmpBuffer, J3DLOADER_UNK_FLAG0); btk->setFrame(0.0f); btk->searchUpdateMaterialID(field_0x06c0); field_0x06c0->entryTexMtxAnimator(btk); } - void daAlink_c::statusWindowExecute(const cXyz* i_pos, s16 i_angle) { if (loadModelDVD()) { if (mSwordChangeWaitTimer != 0) { mSwordChangeWaitTimer--; } + loadShieldModelDVD(); - setSelectEquipItem(1); + setSelectEquipItem(TRUE); if (mSwordChangeWaitTimer >= 30) { mSwordChangeWaitTimer = 0; @@ -367,7 +367,7 @@ void daAlink_c::resetStatusWindow() { setMatrix(); mpLinkModel->calc(); onNoResetFlg2(FLG2_STATUS_WINDOW_DRAW); - setSelectEquipItem(0); + setSelectEquipItem(FALSE); if (checkWolf()) { setWolfItemMatrix(); diff --git a/src/d/actor/d_a_alink_whistle.inc b/src/d/actor/d_a_alink_whistle.inc index 628e209a5e..43780cf58c 100644 --- a/src/d/actor/d_a_alink_whistle.inc +++ b/src/d/actor/d_a_alink_whistle.inc @@ -11,6 +11,8 @@ #include "d/actor/d_a_obj_yobikusa.h" static fopAc_ac_c* daAlink_searchWhistle(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); + if (daAlink_getAlinkActorClass()->getGrassHowlEventActor() == fopAcM_GetName(i_actor)) { return i_actor; } @@ -19,6 +21,8 @@ static fopAc_ac_c* daAlink_searchWhistle(fopAc_ac_c* i_actor, void* i_data) { } static fopAc_ac_c* daAlink_searchHawk(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); + if (fopAcM_GetName(i_actor) == PROC_NPC_TK) { return i_actor; } @@ -26,7 +30,7 @@ static fopAc_ac_c* daAlink_searchHawk(fopAc_ac_c* i_actor, void* i_data) { return NULL; } -void daAlink_c::setGrassWhistleModel(int modelType) { +void daAlink_c::setGrassWhistleModel(int i_modelType) { static const char* grassWhistleArcName[] = { "J_Tobi", "J_Umak", @@ -38,8 +42,8 @@ void daAlink_c::setGrassWhistleModel(int modelType) { JKRHeap* prev_heap = setItemHeap(); - J3DModelData* modeldata = (J3DModelData*)dComIfG_getObjectRes(grassWhistleArcName[modelType], - grassWhistleIdx[modelType]); + J3DModelData* modeldata = (J3DModelData*)dComIfG_getObjectRes(grassWhistleArcName[i_modelType], + grassWhistleIdx[i_modelType]); mHeldItemModel = mDoExt_J3DModel__create(modeldata, 0x80000, 0x11000084); mDoExt_setCurrentHeap(prev_heap); @@ -50,7 +54,7 @@ void daAlink_c::setGrassWhistleModel(int modelType) { void daAlink_c::setHorseWhistleModel() { JKRHeap* prev_heap = setItemHeap(); - mHeldItemModel = initModel(loadAramBmd(0x31A, 0x3000), 0); + mHeldItemModel = initModel(loadAramBmd(dRes_ID_ALANM_BMD_AL_PEND_e, 0x3000), 0); mDoExt_setCurrentHeap(prev_heap); mEquipItem = fpcNm_ITEM_HORSE_FLUTE; @@ -68,7 +72,7 @@ int daAlink_c::procGrassWhistleGetInit() { field_0x2f98 = 4; setSingleAnimeParam(ANM_BOTTLE_SWING_DOWN, &mpHIO->mItem.mBottle.m.mSwingDownAnm); - field_0x2f92 = 0xFE; + mLeftHandIndex = 0xFE; field_0x280c.setData(field_0x27f4); daObjYobikusa_c* yobikusa_p = (daObjYobikusa_c*)field_0x27f4; @@ -83,11 +87,10 @@ int daAlink_c::procGrassWhistleGetInit() { return 1; } - int daAlink_c::procGrassWhistleGet() { daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; - if (frameCtrl_p->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl_p)) { procGrassWhistleWaitInit(mProcVar2.field_0x300c, mProcVar3.field_0x300e, mProcVar4.field_0x3010, mProcVar5.field_0x3012, &field_0x37c8); } else if (mEquipItem == fpcNm_ITEM_NONE && frameCtrl_p->getFrame() >= 9.0f) { @@ -104,14 +107,14 @@ int daAlink_c::procGrassWhistleGet() { int daAlink_c::procGrassWhistleWaitInit(int param_0, int param_1, int param_2, s16 param_3, cXyz* param_4) { - u16 var_r6; + u16 hindFlag; if (param_0 == 3) { - var_r6 = 0xFFFF; + hindFlag = 0xFFFF; } else { - var_r6 = 0xFFF9; + hindFlag = 0xFFF9; } - if (!dComIfGp_event_compulsory(this, NULL, var_r6)) { + if (!dComIfGp_event_compulsory(this, NULL, hindFlag)) { return checkNextAction(0); } @@ -167,7 +170,6 @@ int daAlink_c::procGrassWhistleWaitInit(int param_0, int param_1, int param_2, s return 1; } - int daAlink_c::procGrassWhistleWait() { if (mProcVar5.field_0x3012 != 0) { if (checkEndMessage(field_0x32cc)) { @@ -216,16 +218,16 @@ int daAlink_c::procGrassWhistleWait() { return procWaitInit(); } - setFaceBasicTexture(FTANM_UNK_0); + setFaceBasicTexture(FTANM_0); mProcVar5.field_0x3012 = 1; return 1; } } - setGrassCancelStatus(0); + setGrassCancelStatus(BUTTON_STATUS_NONE); } else if (checkAnmEnd(&mUpperFrameCtrl[2])) { - setGrassCancelStatus(0x12); - setDoStatus(0x2C); + setGrassCancelStatus(BUTTON_STATUS_BACK); + setDoStatus(BUTTON_STATUS_BLOW); if (mProcVar2.field_0x300c == 3 || doTrigger()) { setSingleAnimeBaseMorf(ANM_GRASS_WHISTLE_PLAY, 0.0f); @@ -256,7 +258,7 @@ int daAlink_c::procGrassWhistleWait() { } } else { #if VERSION != VERSION_SHIELD_DEBUG - setGrassCancelStatus(0); + setGrassCancelStatus(BUTTON_STATUS_NONE); #endif } @@ -280,13 +282,13 @@ int daAlink_c::procCoHorseCallWaitInit(int param_0) { setSingleAnimeBaseSpeed(ANM_WAIT, mpHIO->mMove.m.mWaitAnmSpeed, 3.0f); } - setGrassCancelStatus(0); + setGrassCancelStatus(BUTTON_STATUS_NONE); dComIfGp_setPlayerStatus1(0, 0x4000000); return 1; } int daAlink_c::procCoHorseCallWait() { - setGrassCancelStatus(0); + setGrassCancelStatus(BUTTON_STATUS_NONE); mProcVar4.field_0x3010--; if (mProcVar4.field_0x3010 > 2 && dComIfGp_getHorseActor() != NULL) { @@ -322,7 +324,7 @@ int daAlink_c::procHawkCatchInit() { } int daAlink_c::procHawkCatch() { - if (mUnderFrameCtrl[0].checkAnmEnd()) { + if (checkAnmEnd(mUnderFrameCtrl)) { dComIfGp_evmng_cutEnd(mAlinkStaffId); procHawkSubjectInit(); } @@ -360,8 +362,8 @@ int daAlink_c::procHawkSubject() { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { fopAc_ac_c* temp_r29 = field_0x280c.getActor(); - setGrassCancelStatus(0x12); - setDoStatus(0x31); + setGrassCancelStatus(BUTTON_STATUS_BACK); + setDoStatus(BUTTON_STATUS_SET_FREE); if (doTrigger()) { mProcVar2.field_0x300c = 2; diff --git a/src/d/actor/d_a_alink_wolf.inc b/src/d/actor/d_a_alink_wolf.inc index 77e4b67d45..f9e3fc4136 100644 --- a/src/d/actor/d_a_alink_wolf.inc +++ b/src/d/actor/d_a_alink_wolf.inc @@ -35,6 +35,7 @@ // Forward declarations (for clangd) int daAlink_kandelaarModelCallBack(J3DJoint* param_0, int param_1); +extern BOOL l_debugMode; extern const char l_wArcName[]; extern const char l_bArcName[]; extern const char l_kArcName[]; @@ -114,9 +115,8 @@ void daAlink_c::changeCommon() { field_0x2180[1]->init(); mWolfEyeUpTimer = 0; - resetCombo(1); + resetCombo(TRUE); - i = 0; mItemTrigger = 0; mItemButton = 0; field_0x2ba4 = 0.0f; @@ -134,6 +134,7 @@ void daAlink_c::changeCommon() { mHotspringRecoverTimer = mpHIO->mBasic.m.mHotspringRecoverTime; field_0x2fc9 = 0x10; + i = 0; for (; i < 4; i++) { clearFirePointDamageEffect(i); } @@ -198,9 +199,9 @@ void daAlink_c::changeWolf() { field_0x2e44.init(this, l_wolfJntColData, mpLinkModel, 18); offNoResetFlg1(FLG1_UNK_800000); - field_0x598 = 115.0f; - mLinkAcch.SetRoofCrrHeight(field_0x598); - field_0x594 = mpHIO->mWolf.mWlMove.m.mMaxSpeed; + mHeight = 115.0f; + mLinkAcch.SetRoofCrrHeight(mHeight); + mMaxSpeed = mpHIO->mWolf.mWlMove.m.mMaxSpeed; l_autoUpHeight = mpHIO->mWolf.mWlWallHang.m.mAutoWalkHeight + 0.01f; l_autoDownHeight = -l_autoUpHeight; @@ -212,7 +213,7 @@ void daAlink_c::changeWolf() { field_0x2e44.offPassNum(16); field_0x2e44.offPassNum(15); - offNoResetFlg0(FLG0_UNDERWATER); + offNoResetFlg0(FLG0_WATER_IN_MOVE); setHeavyBoots(0); for (int i = 0; i < 3; i++) { @@ -224,7 +225,7 @@ void daAlink_c::changeWolf() { field_0x30d6 = 0; field_0x2fa6 = 0; field_0x2e54.changeWaterOffset(mpHIO->mBasic.m.mWolfWaterSurfaceEffectHeight); - field_0x2e54.changeRippleOffset(field_0x598); + field_0x2e54.changeRippleOffset(mHeight); mWoodSwordModel = NULL; field_0x3420 = 1.25f; field_0x30c6 = 40; @@ -237,10 +238,10 @@ void daAlink_c::changeWolf() { field_0x2f54 = &l_wolfLieTopUpOffset; m_swordBlur.field_0x14 = 0; resetAtCollision(0); - field_0x30b8 = 19; - field_0x30ba = 24; - field_0x30c0 = 19; - field_0x30c2 = 24; + mLeftHandJntNo = 19; + mRightHandJntNo = 24; + mLeftItemJntNo = 19; + mRightItemJntNo = 24; field_0x30c4 = 3; field_0x30b4 = 4; field_0x30bc = 31; @@ -250,7 +251,7 @@ void daAlink_c::changeWolf() { field_0x30b6 = 2; attention_info.field_0xa = 50; - dCcD_Cyl* cyl_p = field_0x850; + dCcD_Cyl* cyl_p = mTgCyls; for (int i = 0; i < 3; i++, cyl_p++) { cyl_p->OffTgShieldFrontRange(); cyl_p->OffTgSmallShield(); @@ -258,11 +259,11 @@ void daAlink_c::changeWolf() { cyl_p->OffTgShield(); } - field_0xFB8.StartCAt(current.pos); - field_0xFB8.OffAtSetBit(); - field_0xFB8.OnTgSetBit(); - field_0xFB8.OnCoSetBit(); - field_0xFB8.SetR(40.0f); + mAtSph.StartCAt(current.pos); + mAtSph.OffAtSetBit(); + mAtSph.OnTgSetBit(); + mAtSph.OnCoSetBit(); + mAtSph.SetR(40.0f); mpKanteraModel = NULL; mpLinkHatModel = NULL; @@ -271,7 +272,7 @@ void daAlink_c::changeWolf() { mMagicArmorBodyBrk = NULL; mMagicArmorHeadBrk = NULL; - field_0x2fc7 = (u8)dStage_stagInfo_GetWolfDashType(dComIfGp_getStage()->getStagInfo()); + field_0x2fc7 = dStage_stagInfo_GetWolfDashType(dComIfGp_getStage()->getStagInfo()); } void daAlink_c::changeLink(int param_0) { @@ -280,15 +281,14 @@ void daAlink_c::changeLink(int param_0) { mMagicArmorBodyBrk = NULL; mMagicArmorHeadBrk = NULL; - J3DModelData* tempModelData_r28; + J3DModelData* modelData; if (checkNoResetFlg2(FLG2_UNK_200000)) { offNoResetFlg2(FLG2_UNK_200000); onNoResetFlg2(FLG2_UNK_80000); - tempModelData_r28 = static_cast(dComIfG_getObjectRes("alSumou", 0x31)); - mpLinkModel = mDoExt_J3DModel__create(tempModelData_r28, - 0x80000, 0x11000084); + modelData = static_cast(dComIfG_getObjectRes("alSumou", 0x31)); + mpLinkModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); mpLinkHatModel = initModel(static_cast(dComIfG_getObjectRes("alSumou", 0x33)), 0); mpLinkHandModel = initModel(static_cast(dComIfG_getObjectRes("alSumou", 0x32)), 0); } else if (checkCasualWearFlg()) { @@ -337,22 +337,21 @@ void daAlink_c::changeLink(int param_0) { initModel(static_cast(dComIfG_getObjectRes(mArcName, "zl_face.bmd")), 0x20200); } - tempModelData_r28 = static_cast(dComIfG_getObjectRes(mArcName, "al_bootsH.bmd")); + modelData = static_cast(dComIfG_getObjectRes(mArcName, "al_bootsH.bmd")); u16 i; for (i = 0; i < 2; i++) { - mpLinkBootModels[i] = initModel(tempModelData_r28, 0); + mpLinkBootModels[i] = initModel(modelData, 0); } mpKanteraModel = initModelEnv(static_cast(dComIfG_getObjectRes(mArcName, "al_kantera.bmd")), 0); - tempModelData_r28 = - static_cast(dComIfG_getObjectRes(mArcName, "ef_ktGlow.bmd")); - mpKanteraGlowModel = initModel(tempModelData_r28, 0x200); + modelData = static_cast(dComIfG_getObjectRes(mArcName, "ef_ktGlow.bmd")); + mpKanteraGlowModel = initModel(modelData, 0x200); mpKanteraGlowBtk = static_cast(dComIfG_getObjectRes(mArcName, "ef_ktGlow.btk")); mpKanteraGlowBtk->setFrame(0.0f); - mpKanteraGlowBtk->searchUpdateMaterialID(tempModelData_r28); - tempModelData_r28->entryTexMtxAnimator(mpKanteraGlowBtk); + mpKanteraGlowBtk->searchUpdateMaterialID(modelData); + modelData->entryTexMtxAnimator(mpKanteraGlowBtk); mWoodSwordModel = initModel(static_cast(dComIfG_getObjectRes(mArcName, "al_SWB.bmd")), 0); @@ -430,19 +429,18 @@ void daAlink_c::changeLink(int param_0) { field_0x06d0 = field_0x06d8; field_0x06d4 = field_0x06dc; - tempModelData_r28 = mpLinkHandModel->getModelData(); + modelData = mpLinkHandModel->getModelData(); for (i = 0; i < 11; i++) { - tempModelData_r28->getMaterialNodePointer(i)->getShape()->hide(); + modelData->getMaterialNodePointer(i)->getShape()->hide(); } - tempModelData_r28 = mpLinkFaceModel->getModelData(); - tempModelData_r28->getMaterialNodePointer(2)->setMaterialAnm(field_0x2180[0]); - tempModelData_r28->getMaterialNodePointer(3)->setMaterialAnm(field_0x2180[1]); - mEyeHL1.entry(tempModelData_r28, "highlight02"); + modelData = mpLinkFaceModel->getModelData(); + modelData->getMaterialNodePointer(2)->setMaterialAnm(field_0x2180[0]); + modelData->getMaterialNodePointer(3)->setMaterialAnm(field_0x2180[1]); + mEyeHL1.entry(modelData, "highlight02"); mpKanteraModel->setUserArea((uintptr_t)this); - mpKanteraModel->getModelData()->getJointNodePointer(1)->setCallBack( - daAlink_kandelaarModelCallBack); + mpKanteraModel->getModelData()->getJointNodePointer(1)->setCallBack(daAlink_kandelaarModelCallBack); mZ2Link.setLinkState(var_r27); #if VERSION != VERSION_SHIELD_DEBUG @@ -464,9 +462,9 @@ void daAlink_c::changeLink(int param_0) { field_0x3060 = 0; field_0x3062 = shape_angle.y; - field_0x598 = 180.0f; - mLinkAcch.SetRoofCrrHeight(field_0x598); - field_0x594 = mpHIO->mMove.m.mMaxSpeed; + mHeight = 180.0f; + mLinkAcch.SetRoofCrrHeight(mHeight); + mMaxSpeed = mpHIO->mMove.m.mMaxSpeed; l_autoUpHeight = mpHIO->mWallHang.m.auto_walk_height + 0.01f; l_autoDownHeight = -l_autoUpHeight; @@ -476,7 +474,7 @@ void daAlink_c::changeLink(int param_0) { field_0x345c = -200.0f; field_0x2e54.changeWaterOffset(mpHIO->mBasic.m.mWaterSurfaceEffectHeight); - field_0x2e54.changeRippleOffset(field_0x598); + field_0x2e54.changeRippleOffset(mHeight); offWolfEyeUp(); field_0x3420 = 1.0f; @@ -499,10 +497,10 @@ void daAlink_c::changeLink(int param_0) { } mWolfLockNum = 0; - field_0x30b8 = 9; - field_0x30ba = 14; - field_0x30c0 = 10; - field_0x30c2 = 15; + mLeftHandJntNo = 9; + mRightHandJntNo = 14; + mLeftItemJntNo = 10; + mRightItemJntNo = 15; field_0x30c4 = 3; field_0x30b4 = 4; field_0x30bc = 21; @@ -512,7 +510,7 @@ void daAlink_c::changeLink(int param_0) { field_0x32c4[1] = 16; attention_info.field_0xa = 10; - dCcD_Cyl* cyl_p = field_0x850; + dCcD_Cyl* cyl_p = mTgCyls; for (int i = 0; i < 3; i++, cyl_p++) { cyl_p->OnTgShieldFrontRange(); cyl_p->OnTgSmallShield(); @@ -520,9 +518,9 @@ void daAlink_c::changeLink(int param_0) { mMagneBootsTopVec = cXyz::BaseY; - field_0xFB8.OnAtSetBit(); - field_0xFB8.OffTgSetBit(); - field_0xFB8.OffCoSetBit(); + mAtSph.OnAtSetBit(); + mAtSph.OffTgSetBit(); + mAtSph.OffCoSetBit(); mpWlMidnaModel = NULL; mpWlMidnaMaskModel = NULL; @@ -532,7 +530,7 @@ void daAlink_c::changeLink(int param_0) { } void daAlink_c::onWolfEyeUp() { - if (mWolfEyeUp == 0) { + if (!checkWolfEyeUp()) { mZ2Link.setWolfEyeOpen(true); mWolfEyeUp = mpHIO->mWolf.m.mSensesLingerTime; field_0x2fd2 = 20; @@ -540,7 +538,7 @@ void daAlink_c::onWolfEyeUp() { } void daAlink_c::offWolfEyeUp() { - if (mWolfEyeUp != 0) { + if (checkWolfEyeUp()) { mWolfEyeUp = 0; field_0x2fd2 = 20; mZ2Link.setWolfEyeOpen(false); @@ -551,25 +549,28 @@ BOOL daAlink_c::wolfSenseTrigger() { return itemTriggerCheck(BTN_X); } -void daAlink_c::setWolfSenceStatus(u8 status) { - dComIfGp_setXStatus(status, 0); +void daAlink_c::setWolfSenceStatus(u8 i_status) { + dComIfGp_setXStatus(i_status, 0); } BOOL daAlink_c::wolfClawTrigger() { return itemTriggerCheck(BTN_Y); } -void daAlink_c::setWolfDigStatus(u8 flag) { - dComIfGp_setYStatus(13, flag); +void daAlink_c::setWolfDigStatus(u8 i_flag) { + dComIfGp_setYStatus(BUTTON_STATUS_DIG, i_flag); } BOOL daAlink_c::checkWolfShapeReverse() const { - return ((mProcID == PROC_WOLF_SLIDE_READY || mProcID == PROC_WOLF_LOCK_ATTACK_TURN || - mProcID == PROC_WOLF_JUMP_AT_SLIDE_LAND) && - mProcVar2.field_0x300c != 0) || - mProcID == PROC_WOLF_SLIP_TURN_LAND || - (mProcID == PROC_WOLF_LARGE_DAMAGE_UP && field_0x3198 != 0) || - mProcID == PROC_WOLF_ROPE_TURN; + return ((mProcID == PROC_WOLF_SLIDE_READY + || mProcID == PROC_WOLF_LOCK_ATTACK_TURN + || mProcID == PROC_WOLF_JUMP_AT_SLIDE_LAND + ) + && mProcVar2.field_0x300c != 0 + ) + || mProcID == PROC_WOLF_SLIP_TURN_LAND + || (mProcID == PROC_WOLF_LARGE_DAMAGE_UP && field_0x3198 != 0) + || mProcID == PROC_WOLF_ROPE_TURN; } BOOL daAlink_c::checkWolfSideStep() const { @@ -582,9 +583,9 @@ void daAlink_c::setWolfTailAngle() { s16* var_r30 = field_0x3094; s16* var_r29 = field_0x309a; - s16 var_r27 = (s16)(shape_angle.y - field_0x2fe6); + s16 var_r27 = (s16)(shape_angle.y - mPrevAngleY); - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 3; i++, var_r30++, var_r29++) { if (checkEndResetFlg0(ERFLG0_UNK_800000)) { *var_r30 = 0; *var_r29 = 0; @@ -598,59 +599,56 @@ void daAlink_c::setWolfTailAngle() { var_r27 = (s16)(*var_r30 - sp38); *var_r29 = var_r27 * 0.5f; } - - var_r30++; - var_r29++; } } BOOL daAlink_c::checkWolfSlowDash() { - return field_0x2fc7 == 1 || field_0x2fc7 == 3 || field_0x3174 == 11; + return field_0x2fc7 == 1 || field_0x2fc7 == 3 || mGroundCode == 11; } void daAlink_c::setSpeedAndAngleWolf() { - f32 var_f31 = 0.0f; + f32 speed = 0.0f; - f32 var_f30; - f32 var_f29; - s16 var_r30; - s16 var_r29; - s16 var_r28; + f32 acceleration; + f32 deceleration; + s16 turn_rate; + s16 turn_max; + s16 turn_min; if (checkWolfDashMode()) { - var_r30 = mpHIO->mWolf.mWlMove.m.mTurnAngleRate; - var_r29 = mpHIO->mWolf.mWlMove.m.mTurnMax; - var_r28 = mpHIO->mWolf.mWlMove.m.mTurnMin; + turn_rate = mpHIO->mWolf.mWlMove.m.mTurnAngleRate; + turn_max = mpHIO->mWolf.mWlMove.m.mTurnMax; + turn_min = mpHIO->mWolf.mWlMove.m.mTurnMin; if (checkWolfSlowDash()) { - var_f30 = mpHIO->mWolf.mWlMove.m.mADashAccelerationSlow; + acceleration = mpHIO->mWolf.mWlMove.m.mADashAccelerationSlow; } else if (field_0x2fc7 == 2) { - var_f30 = mpHIO->mWolf.mWlMove.m.mADashAccelerationSlow2; + acceleration = mpHIO->mWolf.mWlMove.m.mADashAccelerationSlow2; } else { - var_f30 = mpHIO->mWolf.mWlMove.m.mADashAcceleration; + acceleration = mpHIO->mWolf.mWlMove.m.mADashAcceleration; } - var_f29 = mpHIO->mWolf.mWlMove.m.mDeceleration; + deceleration = mpHIO->mWolf.mWlMove.m.mDeceleration; } else { - var_r30 = mpHIO->mWolf.mWlMoveNoP.m.mTurnAngleRate; - var_r29 = mpHIO->mWolf.mWlMoveNoP.m.mTurnMax; - var_r28 = mpHIO->mWolf.mWlMoveNoP.m.mTurnMin; - var_f30 = mpHIO->mWolf.mWlMoveNoP.m.mAcceleration; - var_f29 = mpHIO->mWolf.mWlMoveNoP.m.mDeceleration; + turn_rate = mpHIO->mWolf.mWlMoveNoP.m.mTurnAngleRate; + turn_max = mpHIO->mWolf.mWlMoveNoP.m.mTurnMax; + turn_min = mpHIO->mWolf.mWlMoveNoP.m.mTurnMin; + acceleration = mpHIO->mWolf.mWlMoveNoP.m.mAcceleration; + deceleration = mpHIO->mWolf.mWlMoveNoP.m.mDeceleration; } - BOOL temp_r31 = checkEventRun(); + BOOL isEventRun = checkEventRun(); if (checkInputOnR()) { s16 temp_r4 = current.angle.y; - BOOL var_r26 = 0; - f32 temp_f28 = field_0x33a8 * field_0x33a8; - f32 temp_f27 = speedF / field_0x594; + BOOL var_r26 = FALSE; + f32 temp_f28 = mStickValue * mStickValue; + f32 temp_f27 = speedF / mMaxSpeed; - if (cLib_distanceAngleS(field_0x2fe2, current.angle.y) > 0x7000 && + if (cLib_distanceAngleS(mMoveAngle, current.angle.y) > 0x7000 && abs(field_0x3180) < 0x5000 && - ((!checkModeFlg(1) && !(speedF < 0.001f)) || field_0x33a8 > 0.85f)) + ((!checkModeFlg(1) && !(speedF < 0.001f)) || mStickValue > 0.85f)) { - if ((checkModeFlg(1) || speedF < 0.001f) && !temp_r31 && + if ((checkModeFlg(1) || speedF < 0.001f) && !isEventRun && (mProcID == PROC_WOLF_WAIT || mProcID == PROC_WOLF_MOVE)) { - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, var_r30, var_r29, var_r28); + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, turn_rate, turn_max, turn_min); if (mProcID == PROC_WOLF_MOVE && temp_f27 > 0.6f) { var_r26 = 1; } @@ -660,7 +658,7 @@ void daAlink_c::setSpeedAndAngleWolf() { { return; } else { - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, var_r30, var_r29, var_r28); + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, turn_rate, turn_max, turn_min); if (mProcID == PROC_WOLF_MOVE && temp_f27 > 0.6f) { var_r26 = 1; } @@ -668,102 +666,100 @@ void daAlink_c::setSpeedAndAngleWolf() { } else { s16 var_r6; s16 var_r7; - if (temp_r31 != 0) { - var_r6 = var_r29; - var_r7 = var_r28; + if (isEventRun) { + var_r6 = turn_max; + var_r7 = turn_min; } else { - var_r6 = var_r29 * temp_f28; + var_r6 = turn_max * temp_f28; if (var_r6 < 10) { var_r6 = 10; } - var_r7 = var_r28 * temp_f28; + var_r7 = turn_min * temp_f28; if (var_r7 < 1) { var_r7 = 1; } } - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, var_r30, var_r6, var_r7); + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, turn_rate, var_r6, var_r7); } if (wolfSideBgCheck(temp_r4)) { current.angle.y = temp_r4; onEndResetFlg1(ERFLG1_UNK_200000); - if (cLib_distanceAngleS(field_0x2fe2, current.angle.y) > 0x7000) { - var_r26 = 1; + if (cLib_distanceAngleS(mMoveAngle, current.angle.y) > 0x7000) { + var_r26 = TRUE; } } if (!var_r26) { f32 temp_f27_2 = getStickAngleDistanceRate(); - if (temp_r31) { - var_f31 = temp_f27_2 * (var_f30 * field_0x33a8); + if (isEventRun) { + speed = temp_f27_2 * (acceleration * mStickValue); } else { - f32 var_f26 = (1.0f - fabsf(mNormalSpeed / field_0x594)) * 0.3f; - if (checkHeavyStateOn(1, 1) != 0) { + f32 var_f26 = (1.0f - fabsf(mNormalSpeed / mMaxSpeed)) * 0.3f; + if (checkHeavyStateOn(TRUE, TRUE) != 0) { var_f26 *= mHeavySpeedMultiplier; } if ((!checkNoResetFlg1(FLG1_UNK_20000000) || cLib_distanceAngleS(current.angle.y + 0x8000, field_0x3092) >= 0xC00) && - field_0x33a8 > var_f26) + mStickValue > var_f26) { - var_f31 = temp_f27_2 * (var_f30 * temp_f28); + speed = temp_f27_2 * (acceleration * temp_f28); } } } } - if (checkInputOnR() || (mProcID == PROC_WOLF_ROLL_ATTACK_MOVE)) { + if (checkInputOnR() || mProcID == PROC_WOLF_ROLL_ATTACK_MOVE) { s16 temp_r26 = shape_angle.y; s16 var_r4; if (checkWolfShapeReverse()) { - var_r4 = field_0x2fe2 + 0x8000; + var_r4 = mMoveAngle + 0x8000; } else { - var_r4 = field_0x2fe2; + var_r4 = mMoveAngle; } - cLib_addCalcAngleS(&shape_angle.y, var_r4, var_r30, var_r29 * 2, var_r28 * 2); + cLib_addCalcAngleS(&shape_angle.y, var_r4, turn_rate, turn_max * 2, turn_min * 2); int temp_r3 = (s16)(temp_r26 - current.angle.y) * (s16)(shape_angle.y - current.angle.y); if (temp_r3 <= 0 && temp_r3 >= -0x1000000) { shape_angle.y = current.angle.y; } - } else if (temp_r31 == 0 && !checkInputOnR() && checkAttentionState() && - mProcID == PROC_WOLF_WAIT) - { + } else if (!isEventRun && !checkInputOnR() && checkAttentionState() && mProcID == PROC_WOLF_WAIT) { cLib_addCalcAngleS(&shape_angle.y, field_0x2fe4, 2, 0x2000, 0x800); current.angle.y = shape_angle.y; } - setNormalSpeedF(var_f31, var_f29); + setNormalSpeedF(speed, deceleration); } void daAlink_c::setSpeedAndAngleWolfAtn() { - f32 var_f31; - f32 var_f30; - f32 var_f29; + f32 speed; + f32 acceleration; + f32 deceleration; if (field_0x2f98 == 1) { - var_f30 = mpHIO->mWolf.mWlAtnMove.m.mRearAcceleration; - var_f29 = mpHIO->mWolf.mWlAtnMove.m.mRearDeceleration; + acceleration = mpHIO->mWolf.mWlAtnMove.m.mRearAcceleration; + deceleration = mpHIO->mWolf.mWlAtnMove.m.mRearDeceleration; } else { - var_f30 = mpHIO->mWolf.mWlAtnMove.m.mAcceleration; - var_f29 = mpHIO->mWolf.mWlAtnMove.m.mDeceleration; + acceleration = mpHIO->mWolf.mWlAtnMove.m.mAcceleration; + deceleration = mpHIO->mWolf.mWlAtnMove.m.mDeceleration; } - s16 var_r29; + s16 turn_max; if (checkFmChainGrabAnime()) { - var_r29 = 1000; + turn_max = 1000; } else { - var_r29 = mpHIO->mWolf.mWlAtnMove.m.mTurnAngleMax; + turn_max = mpHIO->mWolf.mWlAtnMove.m.mTurnAngleMax; } s16 var_r27; if (checkUnderMove0BckNoArcWolf(WANM_CHAIN_PULL_END)) { var_r27 = getChainStickAngleY(field_0x2fe4); } else { - var_r27 = field_0x2fe2; + var_r27 = mMoveAngle; } if (checkInputOnR()) { @@ -781,7 +777,7 @@ void daAlink_c::setSpeedAndAngleWolfAtn() { } s16 temp_r28 = current.angle.y; - cLib_addCalcAngleS(¤t.angle.y, var_r27, mpHIO->mWolf.mWlAtnMove.m.mTurnAngleRate, var_r29, + cLib_addCalcAngleS(¤t.angle.y, var_r27, mpHIO->mWolf.mWlAtnMove.m.mTurnAngleRate, turn_max, mpHIO->mWolf.mWlAtnMove.m.mTurnAngleMin); if (wolfSideBgCheck(temp_r28)) { @@ -789,7 +785,7 @@ void daAlink_c::setSpeedAndAngleWolfAtn() { onEndResetFlg1(ERFLG1_UNK_200000); } - var_f31 = var_f30 * field_0x33a8 * cM_scos((s16)(current.angle.y - temp_r28)); + speed = acceleration * mStickValue * cM_scos((s16)(current.angle.y - temp_r28)); } else { if (checkZeroSpeedF()) { if (!setShapeAngleToAtnActor(0) && !checkEventRun() && !checkInputOnR() && @@ -806,7 +802,7 @@ void daAlink_c::setSpeedAndAngleWolfAtn() { } } - var_f31 = 0.0f; + speed = 0.0f; } if (!checkWolfShapeReverse()) { @@ -820,14 +816,14 @@ void daAlink_c::setSpeedAndAngleWolfAtn() { } cLib_addCalcAngleS(&shape_angle.y, var_r26, mpHIO->mWolf.mWlAtnMove.m.mTurnAngleRate, - var_r29 * 2, mpHIO->mWolf.mWlAtnMove.m.mTurnAngleMin * 2); + turn_max * 2, mpHIO->mWolf.mWlAtnMove.m.mTurnAngleMin * 2); } - setNormalSpeedF(var_f31, var_f29); + setNormalSpeedF(speed, deceleration); } BOOL daAlink_c::checkWolfAtnWait() { - if ((checkEnemyGroup(mTargetedActor) || mDemo.getDemoMode() == 0x17) || + if ((checkEnemyGroup(mTargetedActor) || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_23_e) || (mTargetedActor != NULL && fopAcM_GetName(mTargetedActor) == PROC_NPC_MOI && ((daNpc_Moi_c*)mTargetedActor)->chkSFight())) { @@ -837,54 +833,63 @@ BOOL daAlink_c::checkWolfAtnWait() { return false; } -BOOL daAlink_c::checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM anm_id) const { +BOOL daAlink_c::checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM i_anm) const { return mUnderAnmHeap[0].checkNoSetArcNo() && - m_wlAnmDataTable[anm_id].field_0x0 == mUnderAnmHeap[0].getIdx(); + m_wlAnmDataTable[i_anm].m_bckID == mUnderAnmHeap[0].getIdx(); } void daAlink_c::setBlendWolfMoveAnime(f32 param_0) { f32 sp8; - if (field_0x3174 == 8) { + if (mGroundCode == 8) { sp8 = 1.0f; } else { sp8 = cM_scos(field_0x2ff0); } f32 var_f31; - f32 temp_f30 = fabsf(mNormalSpeed * sp8) / field_0x594; + f32 temp_f30 = fabsf(mNormalSpeed * sp8) / mMaxSpeed; - daPy_frameCtrl_c* sp38 = &mUnderFrameCtrl[0]; - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[1]; + daPy_frameCtrl_c* framectrl0 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl1 = &mUnderFrameCtrl[1]; - f32 sp34, sp30, sp2C, sp28, sp24, sp20, sp1C, sp18, sp14, sp10; + f32 idleAnmSpeed; + f32 walkAnmSpeed; + f32 jogAnmSpeed; + f32 runAnmSpeed; + f32 climbAnmSpeed; + f32 walkToJogRate; + f32 idleToWalkRate; + f32 jogToRunRate; + f32 walkRunMorf; + f32 runAnmMinBlendRate; if (checkWolfDashMode()) { - sp20 = mpHIO->mWolf.mWlMove.m.mWalkToBriskWalkRate; - sp14 = mpHIO->mWolf.mWlMove.m.mWalkRunInterpolation; - sp1C = mpHIO->mWolf.mWlMove.m.mIdleToWalkRate; - sp18 = mpHIO->mWolf.mWlMove.m.mStandbyRunToRunRate; - sp34 = mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed; - sp30 = mpHIO->mWolf.mWlMove.m.mWalkAnmSpeed; - sp2C = mpHIO->mWolf.mWlMove.m.mBriskWalkAnmSpeed; - sp28 = mpHIO->mWolf.mWlMove.m.mRunAnmSpeed; - sp24 = mpHIO->mWolf.mWlSlide.m.mClimbingAnmSpeed; - sp10 = mpHIO->mWolf.mWlMove.m.mRunAnmMinBlendRate; + walkToJogRate = mpHIO->mWolf.mWlMove.m.mWalkToBriskWalkRate; + walkRunMorf = mpHIO->mWolf.mWlMove.m.mWalkRunInterpolation; + idleToWalkRate = mpHIO->mWolf.mWlMove.m.mIdleToWalkRate; + jogToRunRate = mpHIO->mWolf.mWlMove.m.mStandbyRunToRunRate; + idleAnmSpeed = mpHIO->mWolf.mWlMove.m.mIdleAnmSpeed; + walkAnmSpeed = mpHIO->mWolf.mWlMove.m.mWalkAnmSpeed; + jogAnmSpeed = mpHIO->mWolf.mWlMove.m.mBriskWalkAnmSpeed; + runAnmSpeed = mpHIO->mWolf.mWlMove.m.mRunAnmSpeed; + climbAnmSpeed = mpHIO->mWolf.mWlSlide.m.mClimbingAnmSpeed; + runAnmMinBlendRate = mpHIO->mWolf.mWlMove.m.mRunAnmMinBlendRate; } else { - sp20 = mpHIO->mWolf.mWlMoveNoP.m.mWalkToJogRate; - sp14 = mpHIO->mWolf.mWlMoveNoP.m.mWalkRunInterpolation; - sp1C = mpHIO->mWolf.mWlMoveNoP.m.mIdleToWalkRate; - sp18 = mpHIO->mWolf.mWlMoveNoP.m.mJogToRunRate; - sp34 = mpHIO->mWolf.mWlMoveNoP.m.mIdleAnmSpeed; - sp30 = mpHIO->mWolf.mWlMoveNoP.m.mWalkAnmSpeed; - sp2C = mpHIO->mWolf.mWlMoveNoP.m.mJogAnmSpeed; - sp28 = mpHIO->mWolf.mWlMoveNoP.m.mRunAnmSpeed; - sp24 = mpHIO->mWolf.mWlSlide.m.mClimbingAnmSpeedWeak; - sp10 = mpHIO->mWolf.mWlMoveNoP.m.mRunAnmMinBlendRate; + walkToJogRate = mpHIO->mWolf.mWlMoveNoP.m.mWalkToJogRate; + walkRunMorf = mpHIO->mWolf.mWlMoveNoP.m.mWalkRunInterpolation; + idleToWalkRate = mpHIO->mWolf.mWlMoveNoP.m.mIdleToWalkRate; + jogToRunRate = mpHIO->mWolf.mWlMoveNoP.m.mJogToRunRate; + idleAnmSpeed = mpHIO->mWolf.mWlMoveNoP.m.mIdleAnmSpeed; + walkAnmSpeed = mpHIO->mWolf.mWlMoveNoP.m.mWalkAnmSpeed; + jogAnmSpeed = mpHIO->mWolf.mWlMoveNoP.m.mJogAnmSpeed; + runAnmSpeed = mpHIO->mWolf.mWlMoveNoP.m.mRunAnmSpeed; + climbAnmSpeed = mpHIO->mWolf.mWlSlide.m.mClimbingAnmSpeedWeak; + runAnmMinBlendRate = mpHIO->mWolf.mWlMoveNoP.m.mRunAnmMinBlendRate; } - if (temp_f30 < sp20 || checkAttentionState() || checkHeavyStateOn(1, 1) || checkSlope()) { + if (temp_f30 < walkToJogRate || checkAttentionState() || checkHeavyStateOn(TRUE, TRUE) || checkSlope()) { field_0x2fc1 = 0; - if ((temp_f30 < sp20 || checkAttentionState() || checkHeavyStateOn(1, 1)) && + if ((temp_f30 < walkToJogRate || checkAttentionState() || checkHeavyStateOn(TRUE, TRUE)) && field_0x30d0 != 0) { field_0x30d0 = 0; @@ -893,28 +898,28 @@ void daAlink_c::setBlendWolfMoveAnime(f32 param_0) { if (checkNoResetFlg1(FLG1_UNK_800000)) { offNoResetFlg1(FLG1_UNK_800000); - param_0 = sp14; + param_0 = walkRunMorf; } int var_r29 = 1; daAlink_WANM var_r27 = WANM_WAIT; daAlink_WANM var_r26; daAlink_WANM var_r25; - if (checkHeavyStateOn(1, 1)) { + if (checkHeavyStateOn(TRUE, TRUE)) { var_r26 = WANM_ATN_LOCK_WALK_FRONT; var_r25 = WANM_ATN_LOCK_WALK_FRONT; - sp30 = 1.2f; - sp2C = 1.2f; + walkAnmSpeed = 1.2f; + jogAnmSpeed = 1.2f; } else { var_r25 = WANM_WALK_B; var_r26 = WANM_WALK_A; } - if (temp_f30 < sp1C) { + if (temp_f30 < idleToWalkRate) { if (checkModeFlg(1)) { var_r29 = 2; - s16 temp_r0 = shape_angle.y - field_0x2fe6; + s16 temp_r0 = shape_angle.y - mPrevAngleY; if (abs(temp_r0) > 0 && !checkAttentionState()) { var_f31 = 0.64999998f + (0.001f * abs(temp_r0)); if (var_f31 > 1.0f) { @@ -922,38 +927,38 @@ void daAlink_c::setBlendWolfMoveAnime(f32 param_0) { } var_f31 = 1.0f - var_f31; - setDoubleAnimeWolf(var_f31, sp30, sp34, var_r26, WANM_WAIT, 2, param_0); + setDoubleAnimeWolf(var_f31, walkAnmSpeed, idleAnmSpeed, var_r26, var_r27, var_r29, param_0); return; } if (checkAttentionState()) { var_r27 = WANM_ATN; - sp34 = mpHIO->mWolf.mWlMove.m.mGazeIdleAnmSpeed; + idleAnmSpeed = mpHIO->mWolf.mWlMove.m.mGazeIdleAnmSpeed; } else if (checkWindSpeedOnXZ() && !checkEventRun()) { var_r27 = WANM_WAIT_WIND; - sp34 = 1.0f; + idleAnmSpeed = 1.0f; } } if (checkSlope()) { var_r26 = WANM_WALK_SLOPE; var_r27 = WANM_WAIT; - sp30 = sp24; + walkAnmSpeed = climbAnmSpeed; field_0x2fc1 = 2; } - var_f31 = temp_f30 / sp1C; - setDoubleAnimeWolf(var_f31, sp34, sp30, var_r27, var_r26, var_r29, param_0); + var_f31 = temp_f30 / idleToWalkRate; + setDoubleAnimeWolf(var_f31, idleAnmSpeed, walkAnmSpeed, var_r27, var_r26, var_r29, param_0); } else if (checkSlope()) { field_0x2fc1 = 2; - setDoubleAnimeWolf(1.0f, sp24, sp24, WANM_WALK_SLOPE, WANM_WALK_SLOPE, 1, param_0); + setDoubleAnimeWolf(1.0f, climbAnmSpeed, climbAnmSpeed, WANM_WALK_SLOPE, WANM_WALK_SLOPE, var_r29, param_0); field_0x2fc1 = 2; } else { - var_f31 = (temp_f30 - sp1C) / (sp20 - sp1C); + var_f31 = (temp_f30 - idleToWalkRate) / (walkToJogRate - idleToWalkRate); if (var_f31 > 1.0f) { var_f31 = 1.0f; } - setDoubleAnimeWolf(var_f31, sp30, sp2C, var_r26, var_r25, 1, param_0); + setDoubleAnimeWolf(var_f31, walkAnmSpeed, jogAnmSpeed, var_r26, var_r25, var_r29, param_0); } if (!checkBarkAnime() && var_r29 != 1) { @@ -964,26 +969,26 @@ void daAlink_c::setBlendWolfMoveAnime(f32 param_0) { if (!checkNoResetFlg1(FLG1_UNK_800000)) { onNoResetFlg1(FLG1_UNK_800000); - param_0 = sp14; + param_0 = walkRunMorf; } field_0x2fc1 = 1; - if (temp_f30 < sp18) { - var_f31 = sp10 + (((1.0f - sp10) * (temp_f30 - sp20)) / (sp18 - sp20)); - setDoubleAnimeWolf(var_f31, sp34, sp28, WANM_WAIT, WANM_DASH_A, 1, param_0); + if (temp_f30 < jogToRunRate) { + var_f31 = runAnmMinBlendRate + (((1.0f - runAnmMinBlendRate) * (temp_f30 - walkToJogRate)) / (jogToRunRate - walkToJogRate)); + setDoubleAnimeWolf(var_f31, idleAnmSpeed, runAnmSpeed, WANM_WAIT, WANM_DASH_A, 1, param_0); } else { if (!checkWolfDashMode()) { - setDoubleAnimeWolf(1.0f, sp28, sp28, WANM_DASH_A, WANM_DASH_A, 1, param_0); + setDoubleAnimeWolf(1.0f, runAnmSpeed, runAnmSpeed, WANM_DASH_A, WANM_DASH_A, 1, param_0); } else { - var_f31 = (temp_f30 - sp18) / (mpHIO->mWolf.mWlMove.m.mRunToQuickRunRate - sp18); + var_f31 = (temp_f30 - jogToRunRate) / (mpHIO->mWolf.mWlMove.m.mRunToQuickRunRate - jogToRunRate); if (var_f31 > 1.0f) { var_f31 = 1.0f; } f32 spC; if (checkNoResetFlg1(FLG1_DASH_MODE)) { - if (checkWolfSlowDash() != 0) { + if (checkWolfSlowDash()) { spC = mpHIO->mWolf.mWlMove.m.mADashQuickRunASpeedSlow; } else if (field_0x2fc7 == 2) { spC = mpHIO->mWolf.mWlMove.m.mADashQuickRunASpeedSlow2; @@ -994,28 +999,28 @@ void daAlink_c::setBlendWolfMoveAnime(f32 param_0) { spC = mpHIO->mWolf.mWlMove.m.mQuickRunAnmSpeed; } - setDoubleAnimeWolf(var_f31, sp28, spC, WANM_DASH_A, WANM_DASH_B, 1, param_0); + setDoubleAnimeWolf(var_f31, runAnmSpeed, spC, WANM_DASH_A, WANM_DASH_B, 1, param_0); } - if (temp_r28->checkPass(l_wolfFootOnFrame[1][0])) { + if (framectrl1->checkPass(l_wolfFootOnFrame[1][0])) { field_0x2f9d = 8; - } else if (temp_r28->checkPass(l_wolfFootOnFrame[1][1])) { + } else if (framectrl1->checkPass(l_wolfFootOnFrame[1][1])) { field_0x2f9d = 0x10; - } else if (temp_r28->checkPass(l_wolfFootOnFrame[1][2])) { + } else if (framectrl1->checkPass(l_wolfFootOnFrame[1][2])) { field_0x2f9d = 0x20; - } else if (temp_r28->checkPass(l_wolfFootOnFrame[1][3])) { + } else if (framectrl1->checkPass(l_wolfFootOnFrame[1][3])) { field_0x2f9d = 0x40; } if (checkWindSpeedOnAngle()) { onEndResetFlg0(ERFLG0_UNK_2000); if (checkNoSetUpperAnime()) { - setUpperAnimeBase(0x2B7); + setUpperAnimeBase(dRes_ID_ALANM_BCK_WL_DASHWIND_e); } } } - if (!checkBarkAnime() && temp_r28->checkPass(11.0f)) { + if (!checkBarkAnime() && framectrl1->checkPass(11.0f)) { voiceStart(Z2SE_WL_V_BREATH_RUN); } } @@ -1036,7 +1041,7 @@ void daAlink_c::setWolfAtnMoveDirection() { if (checkUnderMove0BckNoArcWolf(WANM_CHAIN_PULL_END)) { var_r29 = getChainStickAngleY(field_0x2fe4); } else { - var_r29 = field_0x2fe2; + var_r29 = mMoveAngle; } if ((mProcID == PROC_WOLF_ATN_AC_MOVE || mProcID == PROC_WOLF_ROLL_ATTACK_MOVE) && @@ -1060,7 +1065,7 @@ void daAlink_c::setWolfAtnMoveDirection() { } s16 temp_r27 = var_r29 - field_0x2fe4; - if (mDemo.getDemoMode() == 23) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_23_e) { field_0x2f98 = 0; } else if (checkInputOnR()) { if (checkWolfAtnMoveBack(temp_r27)) { @@ -1080,22 +1085,22 @@ void daAlink_c::setWolfAtnMoveDirection() { void daAlink_c::setBlendWolfAtnMoveAnime(f32 param_0) { if (checkSetChainPullAnime(field_0x2fe4)) { - daAlink_WANM var_r29; - if (checkEndResetFlg1(ERFLG1_UNK_2000000)) { - var_r29 = WANM_CHAIN_PULL_END; + daAlink_WANM anm; + if (checkEndResetFlg1(ERFLG1_CHAIN_PULL_END)) { + anm = WANM_CHAIN_PULL_END; } else { - var_r29 = WANM_CHAIN_PULL; + anm = WANM_CHAIN_PULL; } - if (!checkUnderMove0BckNoArcWolf(var_r29)) { - f32 var_f29; + if (!checkUnderMove0BckNoArcWolf(anm)) { + f32 anm_speed; if (checkChainBlockPushPull()) { - var_f29 = 0.7f; + anm_speed = 0.7f; } else { - var_f29 = 1.0f; + anm_speed = 1.0f; } - setSingleAnimeWolfBaseSpeed(var_r29, var_f29, 3.0f); + setSingleAnimeWolfBaseSpeed(anm, anm_speed, 3.0f); } } else if (field_0x2f98 == 1) { setBlendWolfAtnBackMoveAnime(param_0); @@ -1103,13 +1108,13 @@ void daAlink_c::setBlendWolfAtnMoveAnime(f32 param_0) { field_0x2fc1 = 0; s16 var_r28; - if (field_0x3174 == 8 || !mLinkAcch.ChkGroundHit()) { + if (mGroundCode == 8 || !mLinkAcch.ChkGroundHit()) { var_r28 = 0; } else { var_r28 = getGroundAngle(&mLinkAcch.m_gnd, current.angle.y); } - f32 var_f31 = fabsf((mNormalSpeed * cM_scos(var_r28)) / field_0x594); + f32 var_f31 = fabsf((mNormalSpeed * cM_scos(var_r28)) / mMaxSpeed); f32 var_f30; if (var_f31 < mpHIO->mWolf.mWlAtnMove.m.mWalkChangeRate) { var_f30 = var_f31 / mpHIO->mWolf.mWlAtnMove.m.mWalkChangeRate; @@ -1148,16 +1153,16 @@ void daAlink_c::setBlendWolfAtnMoveAnime(f32 param_0) { } void daAlink_c::setBlendWolfAtnBackMoveAnime(f32 param_0) { - field_0x594 = mpHIO->mWolf.mWlAtnMove.m.mRearMaxSpeed; + mMaxSpeed = mpHIO->mWolf.mWlAtnMove.m.mRearMaxSpeed; f32 var_f28; - if (field_0x3174 == 8) { + if (mGroundCode == 8) { var_f28 = 1.0f; } else { var_f28 = cM_scos(field_0x2ff0); } - f32 temp_f31 = fabsf(mNormalSpeed * var_f28) / field_0x594; + f32 temp_f31 = fabsf(mNormalSpeed * var_f28) / mMaxSpeed; f32 var_f30; field_0x2fc1 = 3; @@ -1191,16 +1196,18 @@ void daAlink_c::setBlendWolfAtnBackMoveAnime(f32 param_0) { } int daAlink_c::setDoubleAnimeWolf(f32 param_0, f32 param_1, f32 param_2, - daAlink_c::daAlink_WANM param_3, daAlink_c::daAlink_WANM param_4, - int param_5, f32 param_6) { + daAlink_c::daAlink_WANM param_3, daAlink_c::daAlink_WANM param_4, + int param_5, f32 param_6) { if (!checkWolf()) { // "Is Adult Link but setting Wolf animation\n" OS_REPORT("リンクなのに狼アニメ設定\n"); JUT_ASSERT(2091, FALSE); - } + } J3DAnmTransform* var_r25 = getNowAnmPackUnder(UNDER_0); - J3DAnmTransform* var_r29 = getAnimeResource(&mUnderAnmHeap[0], m_wlAnmDataTable[param_3].field_0x0, 0x2C00); + daPy_frameCtrl_c* framectrl0 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl1 = &mUnderFrameCtrl[1]; + J3DAnmTransform* var_r29 = getAnimeResource(&mUnderAnmHeap[0], m_wlAnmDataTable[param_3].m_bckID, 0x2C00); int var_r30; if (var_r29 == NULL) { var_r29 = getNowAnmPackUnder(UNDER_0); @@ -1209,7 +1216,7 @@ int daAlink_c::setDoubleAnimeWolf(f32 param_0, f32 param_1, f32 param_2, var_r30 = 1; } - J3DAnmTransform* var_r28 = getAnimeResource(&mUnderAnmHeap[1], m_wlAnmDataTable[param_4].field_0x0, 0x2C00); + J3DAnmTransform* var_r28 = getAnimeResource(&mUnderAnmHeap[1], m_wlAnmDataTable[param_4].m_bckID, 0x2C00); if (!var_r28) { var_r28 = getNowAnmPackUnder(UNDER_1); } else { @@ -1226,12 +1233,12 @@ int daAlink_c::setDoubleAnimeWolf(f32 param_0, f32 param_1, f32 param_2, field_0x2060->initOldFrameMorf(param_6, 0, 40); } - setFaceBasicTexture(FTANM_UNK_8B); + setFaceBasicTexture(FTANM_WL_MABA01); if (checkWolfLieCode()) { mMidnaAnm = 2; } else { - mMidnaAnm = m_wlAnmDataTable[param_3].field_0x2; + mMidnaAnm = m_wlAnmDataTable[param_3].m_midnaAnm; } daAlink_WANM var_r27; @@ -1243,8 +1250,8 @@ int daAlink_c::setDoubleAnimeWolf(f32 param_0, f32 param_1, f32 param_2, var_r27 = param_4; } - field_0x2160 = (u16*)&m_wlAnmDataTable[var_r27].field_0x4; - field_0x2fd8 = m_wlAnmDataTable[var_r27].field_0x3; + field_0x2160 = m_wlAnmDataTable[var_r27].m_voiceFrames; + field_0x2fd8 = m_wlAnmDataTable[var_r27].m_voiceIdx; return 1; } @@ -1266,10 +1273,10 @@ int daAlink_c::setSingleAnimeWolf(daAlink_c::daAlink_WANM i_anmID, f32 i_speed, if (!checkWolf()) { // "Is Adult Link but setting Wolf animation\n" OS_REPORT("リンクなのに狼アニメ設定\n"); - JUT_ASSERT(2091, FALSE); + JUT_ASSERT(2214, FALSE); } - J3DAnmTransform* var_r30 = getAnimeResource(&mUnderAnmHeap[0], m_wlAnmDataTable[i_anmID].field_0x0, 0x10800); + J3DAnmTransform* var_r30 = getAnimeResource(&mUnderAnmHeap[0], m_wlAnmDataTable[i_anmID].m_bckID, 0x10800); if (var_r30 == NULL) { var_r30 = getNowAnmPackUnder(UNDER_0); } @@ -1280,17 +1287,17 @@ int daAlink_c::setSingleAnimeWolf(daAlink_c::daAlink_WANM i_anmID, f32 i_speed, field_0x2060->initOldFrameMorf(i_morf, 0, 40); } - setFaceBasicTexture(FTANM_UNK_8B); + setFaceBasicTexture(FTANM_WL_MABA01); if (checkWolfLieCode()) { mMidnaAnm = 2; } else { - mMidnaAnm = m_wlAnmDataTable[i_anmID].field_0x2; + mMidnaAnm = m_wlAnmDataTable[i_anmID].m_midnaAnm; } field_0x215c = mUnderFrameCtrl; - field_0x2160 = (u16*)&m_wlAnmDataTable[i_anmID].field_0x4; - field_0x2fd8 = m_wlAnmDataTable[i_anmID].field_0x3; + field_0x2160 = m_wlAnmDataTable[i_anmID].m_voiceFrames; + field_0x2fd8 = m_wlAnmDataTable[i_anmID].m_voiceIdx; return 1; } @@ -1300,11 +1307,11 @@ void daAlink_c::setSingleAnimeWolfParam(daAlink_c::daAlink_WANM i_anmID, i_anmData->mInterpolation); } -int daAlink_c::checkWolfLandAction(int param_0) { +int daAlink_c::checkWolfLandAction(BOOL param_0) { f32 temp_f31 = 0.0099999998f * (mFallHeight - current.pos.y); if (checkNoLandDamageSlidePolygon() || temp_f31 < mpHIO->mWolf.mWlDamage.mFall.m.mSmallDamageHeight) { - if (param_0 != 0) { + if (param_0) { procWolfLandDamageInit(0); } else if (mProcID == PROC_WOLF_JUMP_ATTACK || mProcID == PROC_WOLF_DASH_REVERSE) { return 0; @@ -1312,14 +1319,7 @@ int daAlink_c::checkWolfLandAction(int param_0) { procWolfLandInit(); } } else { - int var_r4; - if (temp_f31 < mpHIO->mWolf.mWlDamage.mFall.m.mLargeDamageHeight) { - var_r4 = 1; - } else { - var_r4 = 2; - } - - procWolfLandDamageInit(var_r4); + procWolfLandDamageInit(temp_f31 < mpHIO->mWolf.mWlDamage.mFall.m.mLargeDamageHeight ? 1 : 2); } return 1; @@ -1336,16 +1336,21 @@ void daAlink_c::checkWolfUseAbility() { if (checkMidnaLockJumpPoint() != NULL && !checkMidnaRide()) { offWolfEyeUp(); - } else { - // event flag 0x4308: senses ability unlocked - if (dComIfGs_isEventBit(0x4308) && field_0x2fd2 == 0 && !checkEventRun() && - mWolfEyeUp < mpHIO->mWolf.m.mSensesLingerTime && wolfSenseTrigger()) - { - if (mWolfEyeUp == 0) { - onWolfEyeUp(); - } else { - offWolfEyeUp(); - } + return; + } + + if (dComIfGs_isEventBit(dSv_event_flag_c::F_0550) + && field_0x2fd2 == 0 + #if DEBUG + && !l_debugMode + #endif + && !checkEventRun() + && mWolfEyeUp < mpHIO->mWolf.m.mSensesLingerTime && wolfSenseTrigger()) + { + if (!checkWolfEyeUp()) { + onWolfEyeUp(); + } else { + offWolfEyeUp(); } } } @@ -1355,13 +1360,13 @@ int daAlink_c::checkWolfGroundSpecialMode() { checkEndResetFlg0(ERFLG0_UNK_1)) { return procCoMetamorphoseInit(); - } else if (mSpecialMode == SMODE_WOLF_PUZZLE || mSpecialMode == 0x28) { + } else if (mMode == SMODE_WOLF_PUZZLE || mMode == 0x28) { return procWolfGiantPuzzleInit(); } else if (checkCargoCarry()) { return procWolfCargoCarryInit(); } else if (checkSlideAction()) { return 1; - } else if (checkEndResetFlg1(ERFLG1_UNK_1)) { + } else if (checkEndResetFlg1(ERFLG1_NS_SCREAM)) { return procWolfScreamWaitInit(); } return 0; @@ -1396,28 +1401,28 @@ int daAlink_c::checkNextActionWolf(int param_0) { if (checkSlope()) { if (checkWolfDashMode()) { - field_0x594 = mpHIO->mWolf.mWlSlide.m.mClimbingMaxSpeed; + mMaxSpeed = mpHIO->mWolf.mWlSlide.m.mClimbingMaxSpeed; } else { - field_0x594 = mpHIO->mWolf.mWlSlide.m.mClimbingMaxSpeedWeak; + mMaxSpeed = mpHIO->mWolf.mWlSlide.m.mClimbingMaxSpeedWeak; } } else if (checkFmChainGrabAnime()) { - field_0x594 = 13.0f; + mMaxSpeed = 13.0f; } else if (mTargetedActor != NULL) { - field_0x594 = mpHIO->mWolf.mWlAtnMove.m.mMaxSpeed; + mMaxSpeed = mpHIO->mWolf.mWlAtnMove.m.mMaxSpeed; } else if (checkAttentionState()) { - field_0x594 = mpHIO->mWolf.mWlMove.m.mGazeMaxSpeed; + mMaxSpeed = mpHIO->mWolf.mWlMove.m.mGazeMaxSpeed; } else if (checkNoResetFlg1(FLG1_DASH_MODE)) { if (checkWolfSlowDash()) { - field_0x594 = mpHIO->mWolf.mWlMove.m.mADashMaxSpeedSlow; + mMaxSpeed = mpHIO->mWolf.mWlMove.m.mADashMaxSpeedSlow; } else if (field_0x2fc7 == 2) { - field_0x594 = mpHIO->mWolf.mWlMove.m.mADashMaxSpeedSlow2; + mMaxSpeed = mpHIO->mWolf.mWlMove.m.mADashMaxSpeedSlow2; } else { - field_0x594 = mpHIO->mWolf.mWlMove.m.mADashMaxSpeed; + mMaxSpeed = mpHIO->mWolf.mWlMove.m.mADashMaxSpeed; } } else if (checkWolfDashMode()) { - field_0x594 = mpHIO->mWolf.mWlMove.m.mMaxSpeed; + mMaxSpeed = mpHIO->mWolf.mWlMove.m.mMaxSpeed; } else { - field_0x594 = mpHIO->mWolf.mWlMoveNoP.m.mMaxSpeed; + mMaxSpeed = mpHIO->mWolf.mWlMoveNoP.m.mMaxSpeed; } if (checkWolfGroundSpecialMode()) { @@ -1432,9 +1437,9 @@ int daAlink_c::checkNextActionWolf(int param_0) { return 1; } - fopAc_ac_c* var_r4 = checkWolfRopeHit(&field_0x850[0], field_0x850[0].GetCP(), FALSE); + fopAc_ac_c* var_r4 = checkWolfRopeHit(&mTgCyls[0], mTgCyls[0].GetCP(), FALSE); if (var_r4 == NULL) { - var_r4 = checkWolfRopeHit(&field_0x850[1], ¤t.pos, FALSE); + var_r4 = checkWolfRopeHit(&mTgCyls[1], ¤t.pos, FALSE); } if (var_r4 != NULL) { @@ -1446,46 +1451,46 @@ int daAlink_c::checkNextActionWolf(int param_0) { return 0; } - BOOL var_r30; + BOOL rt; if (!checkInputOnR() && mProcID == PROC_WOLF_WAIT_SLIP && checkWolfWaitSlipPolygon()) { - var_r30 = 0; + rt = FALSE; } else if (checkAttentionState()) { - var_r30 = procWolfAtnActorMoveInit(); + rt = procWolfAtnActorMoveInit(); } else { field_0x2f98 = 4; if (checkZeroSpeedF()) { - if (!checkEventRun() && field_0x33a8 > 0.85f && abs(field_0x3180) < 0x5000 && + if (!checkEventRun() && mStickValue > 0.85f && abs(field_0x3180) < 0x5000 && (mProcID == PROC_WOLF_WAIT || mProcID == PROC_WOLF_MOVE) && - cLib_distanceAngleS(field_0x2fe2, current.angle.y) > 0x7000) + cLib_distanceAngleS(mMoveAngle, current.angle.y) > 0x7000) { if (checkEndResetFlg1(ERFLG1_UNK_200000)) { - var_r30 = procWolfSlipTurnInit(0); + rt = procWolfSlipTurnInit(0); } else { - var_r30 = 0; + rt = 0; } - if (var_r30 == 0 && !checkEventRun()) { - var_r30 = checkWaitAction(); + if (!rt && !checkEventRun()) { + rt = checkWaitAction(); } } else { - var_r30 = checkWaitAction(); + rt = checkWaitAction(); } } else if (checkInputOnR() && mGndPolySpecialCode != dBgW_SPCODE_ICE && abs(field_0x3180) < 0x5000 && - cLib_distanceAngleS(field_0x2fe2, current.angle.y) > 0x7000 && + cLib_distanceAngleS(mMoveAngle, current.angle.y) > 0x7000 && ((checkWolfDashMode() && - speedF / field_0x594 > mpHIO->mWolf.mWlMove.m.mSlipStartRate) || + speedF / mMaxSpeed > mpHIO->mWolf.mWlMove.m.mSlipStartRate) || (!checkWolfDashMode() && - speedF / field_0x594 > mpHIO->mWolf.mWlMoveNoP.m.mSlideStartRate))) + speedF / mMaxSpeed > mpHIO->mWolf.mWlMoveNoP.m.mSlideStartRate))) { - var_r30 = procWolfSlipInit(); + rt = procWolfSlipInit(); } else { - var_r30 = procWolfMoveInit(); + rt = procWolfMoveInit(); } } - return var_r30; + return rt; } BOOL daAlink_c::wolfSideBgCheck(s16 param_0) { @@ -1538,7 +1543,7 @@ BOOL daAlink_c::checkWolfAttackReverse(int param_0) { return procWolfAttackReverseInit(); } - if ((checkNoResetFlg0(FLG0_UNK_18) && mProcID == PROC_WOLF_DASH) || + if ((checkNoResetFlg0(daPy_FLG0(FLG0_UNK_10 | FLG0_UNK_8)) && mProcID == PROC_WOLF_DASH) || (param_0 && !checkNoResetFlg3(FLG3_UNK_400) && checkNoResetFlg1(FLG1_UNK_20000000) && cLib_distanceAngleS(field_0x3092, current.angle.y) > 0x6000)) { @@ -1571,19 +1576,19 @@ int daAlink_c::checkWolfBarrierHitReverse() { } } else { setFrontRollCrashShock(0); - return procCoLargeDamageInit(-6, 1, 0, 0, NULL, 0); + return procCoLargeDamageInit(-6, TRUE, 0, 0, NULL, 0); } } return 0; } -BOOL daAlink_c::checkWolfBarrierWallHit(cBgS_PolyInfo& i_poly) { +BOOL daAlink_c::checkWolfBarrierWallHit(cBgS_PolyInfo& i_polyinfo) { if (field_0x3100 != 0 || checkZeroSpeedF()) { return false; } - s16 bg_name = getMoveBGActorName(i_poly, TRUE); + s16 bg_name = getMoveBGActorName(i_polyinfo, TRUE); if (bg_name == PROC_OBJ_TP || bg_name == PROC_OBJ_GB || bg_name == PROC_Obj_GanonWall2) { return true; } @@ -1629,7 +1634,7 @@ void daAlink_c::wolfBgCheck() { var_r26 = 2; } - cM3dGPla sp44; + cM3dGPla tripla; for (i = 0; i < 2; i++) { sp38.set(current.pos.x, current.pos.y + mAcchCir[2].GetWallH(), current.pos.z); @@ -1658,7 +1663,7 @@ void daAlink_c::wolfBgCheck() { setWolfBarrierHitEffect(mLinkLinChk); } else { onNoResetFlg3(FLG3_UNK_800000); - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp44); + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); field_0x378c = mLinkLinChk.GetCross(); } } @@ -1676,7 +1681,7 @@ void daAlink_c::wolfBgCheck() { setWolfBarrierHitEffect(mLinkLinChk); } else { onNoResetFlg3(FLG3_UNK_800000); - dComIfG_Bgsp().GetTriPla(mLinkLinChk, &sp44); + dComIfG_Bgsp().GetTriPla(mLinkLinChk, &tripla); field_0x378c = mLinkLinChk.GetCross(); } } @@ -1725,7 +1730,7 @@ void daAlink_c::wolfBgCheck() { field_0x3092 = cM_atan2s(-sp8.x, -sp8.z); if (checkNoResetFlg3(FLG3_UNK_800000)) { - field_0x3166.set(cM_atan2s(sp44.mNormal.y, sp44.mNormal.absXZ()), cM_atan2s(-sp44.mNormal.x, -sp44.mNormal.z), 0); + field_0x3166.set(cM_atan2s(tripla.mNormal.y, tripla.mNormal.absXZ()), cM_atan2s(-tripla.mNormal.x, -tripla.mNormal.z), 0); } var_r24++; @@ -1769,12 +1774,12 @@ void daAlink_c::wolfBgCheck() { if (field_0x2fa6 == 0 && !checkEndResetFlg1(ERFLG1_UNK_200000)) { s16 var_r27 = field_0x3092 - shape_angle.y; if (var_r27 <= 0) { - var_r27 += 0x4000; + var_r27 += (s16)0x4000; } else { - var_r27 -= 0x4000; + var_r27 -= (s16)0x4000; } - field_0x2fe6 += var_r27; + mPrevAngleY += var_r27; current.angle.y += var_r27; shape_angle.y += var_r27; } @@ -1803,33 +1808,33 @@ void daAlink_c::changeWolfBlendRate(int param_0) { void daAlink_c::setWolfFootMatrix() { static const u16 fFootJoint[] = { - 0x0010, - 0x0015, + 16, + 21, }; static const u16 bFootJoint[] = { - 0x001C, - 0x0021, + 28, + 33, }; - daAlink_footData_c* var_r29 = mFootData1; + daAlink_footData_c* footData = mFootData1; int i, j; - for (i = 0; i < 2; i++, var_r29++) { + for (i = 0; i < 2; i++, footData++) { int var_r31 = fFootJoint[i]; for (j = 0; j < 3; j++, var_r31++) { - cMtx_copy(mpLinkModel->getAnmMtx(var_r31), var_r29->field_0x14[j]); + cMtx_copy(mpLinkModel->getAnmMtx(var_r31), footData->field_0x14[j]); if (j == 1) { var_r31++; } } } - var_r29 = mFootData2; + footData = mFootData2; - for (int i = 0; i < 2; i++, var_r29++) { + for (int i = 0; i < 2; i++, footData++) { int var_r31 = bFootJoint[i]; for (int j = 0; j < 3; j++, var_r31++) { - cMtx_copy(mpLinkModel->getAnmMtx(var_r31), var_r29->field_0x14[j]); + cMtx_copy(mpLinkModel->getAnmMtx(var_r31), footData->field_0x14[j]); if (j == 0) { var_r31++; } @@ -1841,58 +1846,58 @@ void daAlink_c::setWolfFootMatrix() { cXyz sp34(0.0f, 0.0f, 0.0f); cXyz sp28; - var_r29 = mFootData1; + footData = mFootData1; - for (i = 0; i < 2; i++, var_r29++) { + for (i = 0; i < 2; i++, footData++) { int var_r31 = fFootJoint[i]; for (j = 0; j < 4; j++, var_r31++) { mDoMtx_multVecZero(mpLinkModel->getAnmMtx(var_r31), &sp40[j]); } int temp_r31 = fFootJoint[i]; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), var_r29->field_0x6, 0, 0, 0, NULL); + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x6, 0, 0, 0, NULL); sp34.x = sp40[0].abs(sp40[1]); mDoMtx_stack_c::multVec(&sp34, &sp28); temp_r31++; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), var_r29->field_0x4, 0, 0, 0, &sp28); + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x4, 0, 0, 0, &sp28); sp34.x = sp40[1].abs(sp40[2]); mDoMtx_stack_c::multVec(&sp34, &sp28); temp_r31++; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), var_r29->field_0x4, 0, 0, 0, &sp28); + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x4, 0, 0, 0, &sp28); sp34.x = sp40[2].abs(sp40[3]); mDoMtx_stack_c::multVec(&sp34, &sp28); temp_r31++; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), var_r29->field_0x2, 0, 0, 0, &sp28); + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x2, 0, 0, 0, &sp28); } - var_r29 = mFootData2; + footData = mFootData2; - for (i = 0; i < 2; i++, var_r29++) { + for (i = 0; i < 2; i++, footData++) { int var_r31 = bFootJoint[i]; for (j = 0; j < 4; j++, var_r31++) { mDoMtx_multVecZero(mpLinkModel->getAnmMtx(var_r31), &sp40[j]); } int temp_r31 = bFootJoint[i]; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), var_r29->field_0x6, 0, 0, 0, NULL); + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x6, 0, 0, 0, NULL); sp34.x = sp40[0].abs(sp40[1]); mDoMtx_stack_c::multVec(&sp34, &sp28); temp_r31++; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), var_r29->field_0x6, 0, 0, 0, &sp28); + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x6, 0, 0, 0, &sp28); sp34.x = sp40[1].abs(sp40[2]); mDoMtx_stack_c::multVec(&sp34, &sp28); temp_r31++; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), var_r29->field_0x4, 0, 0, 0, &sp28); + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x4, 0, 0, 0, &sp28); sp34.x = sp40[2].abs(sp40[3]); mDoMtx_stack_c::multVec(&sp34, &sp28); temp_r31++; - setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), var_r29->field_0x2, 0, 0, 0, &sp28); + setMatrixWorldAxisRot(mpLinkModel->getAnmMtx(temp_r31), footData->field_0x2, 0, 0, 0, &sp28); } } } @@ -1930,7 +1935,7 @@ void daAlink_c::wolfFootBgCheck() { int j; int i; - daAlink_footData_c* var_r28; + daAlink_footData_c* footData; f32* sp20 = &spA0[0][0]; cXyz* var_r26 = &spC8[0]; @@ -1948,28 +1953,28 @@ void daAlink_c::wolfFootBgCheck() { for (i = 0; i < 2; i++) { if (i == 0) { - var_r28 = mFootData1; + footData = mFootData1; } else { - var_r28 = mFootData2; + footData = mFootData2; } - for (j = 0; j < 2; j++, var_r28++, sp20++, var_r26++) { + for (j = 0; j < 2; j++, footData++, sp20++, var_r26++) { if (sp24) { - var_r28->field_0x1 = 0xF; + footData->field_0x1 = 0xF; } else { - spB0 = *var_r26 - var_r28->field_0x8; - if (spB0.abs2XZ() < 100.0f && sp30 && var_r28->field_0x0 != 0) { - if (var_r28->field_0x1 != 0) { - var_r28->field_0x1--; + spB0 = *var_r26 - footData->field_0x8; + if (spB0.abs2XZ() < 100.0f && sp30 && footData->field_0x0 != 0) { + if (footData->field_0x1 != 0) { + footData->field_0x1--; } else { - *var_r26 = var_r28->field_0x8; + *var_r26 = footData->field_0x8; } } else { - var_r28->field_0x1 = 0xF; + footData->field_0x1 = 0xF; } } - var_r28->field_0x8 = *var_r26; + footData->field_0x8 = *var_r26; spBC.set(var_r26->x, temp_f29 + (50.0f + (current.pos.y + l_autoUpHeight)), var_r26->z); mLinkGndChk.SetPos(&spBC); @@ -1979,7 +1984,7 @@ void daAlink_c::wolfFootBgCheck() { if (-G_CM3D_F_INF != temp_f31 && temp_f30 < temp_f27 && temp_f30 > sp1C) { *sp20 = temp_f31; - var_r28->field_0x0 = 1; + footData->field_0x0 = 1; sp48[i][j] = getGroundAngle(&mLinkGndChk, shape_angle.y); spBC.set(var_r26->x - current.pos.x, temp_f31 - current.pos.y, var_r26->z - current.pos.z); @@ -1987,7 +1992,7 @@ void daAlink_c::wolfFootBgCheck() { *sp20 = spB0.y + current.pos.y; } else { *sp20 = current.pos.y; - var_r28->field_0x0 = 0; + footData->field_0x0 = 0; } } } @@ -2018,12 +2023,12 @@ void daAlink_c::wolfFootBgCheck() { for (i = 0; i < 2; i++) { if (i == 0) { - var_r28 = mFootData1; + footData = mFootData1; } else { - var_r28 = mFootData2; + footData = mFootData2; } - for (j = 0; j < 2; j++, var_r28++) { + for (j = 0; j < 2; j++, footData++) { if (sp24 || (i == 0 && checkUnderMove0BckNoArcWolf(WANM_SMELL))) { sp58[i][j] = 0; sp50[i][j] = 0; @@ -2034,7 +2039,7 @@ void daAlink_c::wolfFootBgCheck() { } if (temp_f30 > 0.0f || sp30) { - if (!setLegAngle(temp_f30, var_r28, &sp58[i][j], &sp50[i][j], 1)) { + if (!setLegAngle(temp_f30, footData, &sp58[i][j], &sp50[i][j], 1)) { sp58[i][j] = 0; sp50[i][j] = 0; } @@ -2044,8 +2049,8 @@ void daAlink_c::wolfFootBgCheck() { } } - cLib_addCalcAngleS(&var_r28->field_0x6, sp58[i][j], 2, 0x1800, 0x10); - cLib_addCalcAngleS(&var_r28->field_0x4, sp50[i][j], 2, 0x1800, 0x10); + cLib_addCalcAngleS(&footData->field_0x6, sp58[i][j], 2, 0x1800, 0x10); + cLib_addCalcAngleS(&footData->field_0x4, sp50[i][j], 2, 0x1800, 0x10); s16 spE; if (mProcID == PROC_WOLF_SLIDE_READY) { @@ -2054,11 +2059,11 @@ void daAlink_c::wolfFootBgCheck() { spE = -shape_angle.x; } - if (!sp24 && var_r28->field_0x0 != 0 && field_0x3174 != 8 && sp30) { + if (!sp24 && footData->field_0x0 != 0 && mGroundCode != 8 && sp30) { spE += sp48[i][j]; } - cLib_addCalcAngleS(&var_r28->field_0x2, spE, 2, 0x1800, 0x10); + cLib_addCalcAngleS(&footData->field_0x2, spE, 2, 0x1800, 0x10); } } @@ -2135,30 +2140,30 @@ void daAlink_c::wolfFootBgCheck() { } BOOL daAlink_c::checkWolfWaitSlipPolygon() { - if (!dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) || mGndPolySpecialCode == dBgW_SPCODE_HEAVY_SNOW || field_0x3174 == 8) { - return 0; + if (!dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) || mGndPolySpecialCode == dBgW_SPCODE_HEAVY_SNOW || mGroundCode == 8) { + return FALSE; } - cM3dGPla sp8; - if (!dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &sp8) || !cBgW_CheckBGround(sp8.mNormal.y)) { - return 0; + cM3dGPla tripla; + if (!dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &tripla) || !cBgW_CheckBGround(tripla.mNormal.y)) { + return FALSE; } - if (mGndPolySpecialCode == dBgW_SPCODE_LIGHT_SNOW && sp8.mNormal.y < cM_scos(cM_deg2s(mpHIO->mSlide.m.mClimbAngle))) { - return 1; + if (mGndPolySpecialCode == dBgW_SPCODE_LIGHT_SNOW && tripla.mNormal.y < cM_scos(cM_deg2s(mpHIO->mSlide.m.mClimbAngle))) { + return TRUE; } - return cM_atan2s(sp8.mNormal.absXZ(), sp8.mNormal.y) > field_0x3122; + return cM_atan2s(tripla.mNormal.absXZ(), tripla.mNormal.y) > field_0x3122; } f32 daAlink_c::setWolfWaitSlip() { - cM3dGPla sp8; - dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &sp8); + cM3dGPla tripla; + dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &tripla); - current.angle.y = sp8.mNormal.atan2sX_Z(); + current.angle.y = tripla.mNormal.atan2sX_Z(); f32 var_f31; - f32 temp_f30 = JMAFastSqrt(1.0f - sp8.mNormal.y); + f32 temp_f30 = JMAFastSqrt(1.0f - tripla.mNormal.y); if (abs((s16)(shape_angle.y - current.angle.y)) >= 0x4000) { mProcVar2.field_0x300c = 1; @@ -2168,7 +2173,7 @@ f32 daAlink_c::setWolfWaitSlip() { var_f31 = 1000.0f; } - field_0x37c8.set(current.pos.x + (temp_f30 * (var_f31 * sp8.mNormal.x)), eyePos.y - (var_f31 * sp8.mNormal.y), current.pos.z + (temp_f30 * (var_f31 * sp8.mNormal.z))); + field_0x37c8.set(current.pos.x + (temp_f30 * (var_f31 * tripla.mNormal.x)), eyePos.y - (var_f31 * tripla.mNormal.y), current.pos.z + (temp_f30 * (var_f31 * tripla.mNormal.z))); return temp_f30; } @@ -2195,14 +2200,14 @@ void daAlink_c::setWolfChainPos() { } cXyz sp78; - mDoMtx_multVec(mpLinkModel->getAnmMtx(0x11), &wolfChainBaseOffset, &sp78); + mDoMtx_multVec(mpLinkModel->getAnmMtx(17), &wolfChainBaseOffset, &sp78); cXyz sp6C; - mDoMtx_multVecSR(mpLinkModel->getAnmMtx(0x11), &cXyz::BaseZ, &sp6C); + mDoMtx_multVecSR(mpLinkModel->getAnmMtx(17), &cXyz::BaseZ, &sp6C); s16 sp12 = sp6C.atan2sX_Z(); s16 sp10 = sp6C.atan2sY_XZ(); - mDoMtx_multVecSR(mpLinkModel->getAnmMtx(0x11), &cXyz::BaseY, &sp6C); + mDoMtx_multVecSR(mpLinkModel->getAnmMtx(17), &cXyz::BaseY, &sp6C); s16 spE = (cM_atan2s(sp6C.y, sp6C.absXZ()) + 0x4000); @@ -2319,13 +2324,13 @@ void daAlink_c::setWolfAnmVoice() { Z2SE_WL_V_TURN_BACK, Z2SE_WL_V_HOLD_THROW, Z2SE_WL_V_FAILED, Z2SE_WL_V_NOSE, }; - s8* var_r29 = (s8*)field_0x2160; + const s8* var_r29 = field_0x2160; if (field_0x2fd8 >= 12 || field_0x215c == NULL) { return; } - for (int i = 0; i < 4; i++) { + for (int i = 0; i < 4; i++, var_r29++) { if (*var_r29 == -1) { return; } @@ -2333,7 +2338,6 @@ void daAlink_c::setWolfAnmVoice() { if (field_0x215c->checkPass(*var_r29)) { voiceStart(label[field_0x2fd8]); } - var_r29++; } } @@ -2349,7 +2353,7 @@ int daAlink_c::procWolfServiceWaitInit(int param_0) { } else if (param_0 == 1) { if (cM_rnd() < 0.5f) { setSingleAnimeWolfBase(WANM_SERVICE_WAIT_A); - setFaceBasicTexture(FTANM_UNK_8D); + setFaceBasicTexture(FTANM_WL_SWAITA); field_0x3198 = 0; mProcVar2.field_0x300c = 0; } else { @@ -2374,13 +2378,13 @@ int daAlink_c::procWolfServiceWaitInit(int param_0) { } int daAlink_c::procWolfServiceWait() { - daPy_frameCtrl_c* temp_r30 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; - if (mDemo.getDemoMode() != 0x5E && !checkNextActionWolf(0) && !checkFrontWallTypeAction() && ((checkEventRun() && mProcVar5.field_0x3012 == 0) || shape_angle.y != field_0x2fe6)) { - temp_r30->setRate(0.0f); + if (mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_94_e && !checkNextActionWolf(0) && !checkFrontWallTypeAction() && ((checkEventRun() && mProcVar5.field_0x3012 == 0) || shape_angle.y != mPrevAngleY)) { + framectrl->setRate(0.0f); field_0x3198 = 1; procWolfWaitInit(); - } else if (checkAnmEnd(temp_r30)) { + } else if (checkAnmEnd(framectrl)) { if (checkUnderMove0BckNoArcWolf(WANM_SERVICE_WAIT_A)) { setSingleAnimeWolfBase(WANM_WAIT_A_TO_S); field_0x3198 = 0; @@ -2400,12 +2404,12 @@ int daAlink_c::procWolfServiceWait() { field_0x3198 = 1; mProcVar2.field_0x300c = 0; } - } else if (checkUnderMove0BckNoArcWolf(WANM_SERVICE_WAIT_A) && temp_r30->checkPass(25.0f)) { + } else if (checkUnderMove0BckNoArcWolf(WANM_SERVICE_WAIT_A) && framectrl->checkPass(25.0f)) { voiceStart(Z2SE_WL_V_YAWN); } else if (checkUnderMove0BckNoArcWolf(WANM_SERVICE_WAIT_D) && mProcVar5.field_0x3012 == 0) { mProcVar0.field_0x3008--; - if (mProcVar0.field_0x3008 == 0 && mDemo.getDemoMode() != 0x5E) { + if (mProcVar0.field_0x3008 == 0 && mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_94_e) { setSingleAnimeWolfBaseSpeed(WANM_WAIT_A_TO_S, -1.0f, 3.0f); mProcVar4.field_0x3010 = 1; } @@ -2431,8 +2435,12 @@ int daAlink_c::procWolfTiredWaitInit() { int daAlink_c::procWolfTiredWait() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - if (!checkNextActionWolf(0) && frameCtrl->checkAnmEnd()) { - setSingleAnimeWolfBase(WANM_WAIT_TIRED); + if (!checkNextActionWolf(0)) { + if (checkAnmEnd(frameCtrl)) { + setSingleAnimeWolfBase(WANM_WAIT_TIRED); + } else if (frameCtrl->getAttribute() != 2) { + + } } return 1; @@ -2449,7 +2457,7 @@ int daAlink_c::procWolfMidnaRideShockInit() { } setSingleAnimeWolfBase(WANM_MIDNA_SHOCK); - setFaceBasicTexture(FTANM_UNK_9F); + setFaceBasicTexture(FTANM_WL_MDSHOCK); voiceStart(Z2SE_WL_V_MD_SHOCK); mNormalSpeed = 0.0f; @@ -2461,13 +2469,13 @@ int daAlink_c::procWolfMidnaRideShockInit() { int daAlink_c::procWolfMidnaRideShock() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - if (frameCtrl->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x32) { + if (checkAnmEnd(frameCtrl)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_WOLF_MIDNA_RIDE_SHOCK_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextActionWolf(0); } - } else if (frameCtrl->getFrame() > 11.0f && mDemo.getDemoMode() != 0x32) { + } else if (frameCtrl->getFrame() > 11.0f && mDemo.getDemoMode() != daPy_demo_c::DEMO_WOLF_MIDNA_RIDE_SHOCK_e) { checkNextActionWolf(1); } @@ -2532,9 +2540,9 @@ int daAlink_c::procWolfMoveInit() { int daAlink_c::procWolfMove() { if (!checkNextActionWolf(0) && !checkFrontWallTypeAction()) { - if (mDemo.getDemoMode() == 2) { - if (mNormalSpeed > field_0x594 * mpHIO->mWolf.mWlMoveNoP.m.mWalkToJogRate) { - mNormalSpeed = field_0x594 * mpHIO->mWolf.mWlMoveNoP.m.mWalkToJogRate; + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_2_e) { + if (mNormalSpeed > mMaxSpeed * mpHIO->mWolf.mWlMoveNoP.m.mWalkToJogRate) { + mNormalSpeed = mMaxSpeed * mpHIO->mWolf.mWlMoveNoP.m.mWalkToJogRate; } } @@ -2557,21 +2565,21 @@ int daAlink_c::procWolfDashInit() { if (checkWolfSlowDash()) { field_0x30d0 = mpHIO->mWolf.mWlMove.m.mADashDurationSlow; - field_0x594 = mpHIO->mWolf.mWlMove.m.mADashMaxSpeedSlow; + mMaxSpeed = mpHIO->mWolf.mWlMove.m.mADashMaxSpeedSlow; if (mNormalSpeed < mpHIO->mWolf.mWlMove.m.mADashInitSpeedSlow) { mNormalSpeed = mpHIO->mWolf.mWlMove.m.mADashInitSpeedSlow; } } else if (field_0x2fc7 == 2) { - field_0x594 = mpHIO->mWolf.mWlMove.m.mADashMaxSpeedSlow2; - field_0x594 = mpHIO->mWolf.mWlMove.m.mADashMaxSpeedSlow2; + mMaxSpeed = mpHIO->mWolf.mWlMove.m.mADashMaxSpeedSlow2; + mMaxSpeed = mpHIO->mWolf.mWlMove.m.mADashMaxSpeedSlow2; if (mNormalSpeed < mpHIO->mWolf.mWlMove.m.mADashInitSpeedSlow2) { mNormalSpeed = mpHIO->mWolf.mWlMove.m.mADashInitSpeedSlow2; } } else { field_0x30d0 = mpHIO->mWolf.mWlMove.m.mADashDuration; - field_0x594 = mpHIO->mWolf.mWlMove.m.mADashMaxSpeed; + mMaxSpeed = mpHIO->mWolf.mWlMove.m.mADashMaxSpeed; if (mNormalSpeed < mpHIO->mWolf.mWlMove.m.mADashInitSpeed) { mNormalSpeed = mpHIO->mWolf.mWlMove.m.mADashInitSpeed; @@ -2597,10 +2605,10 @@ int daAlink_c::procWolfDash() { } else { step_amount = mpHIO->mWolf.mWlMove.m.mADashAcceleration; } - cLib_chaseF(&mNormalSpeed, field_0x594, step_amount); + cLib_chaseF(&mNormalSpeed, mMaxSpeed, step_amount); if (checkInputOnR()) { - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mWolf.mWlMove.m.mTurnAngleRate, + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, mpHIO->mWolf.mWlMove.m.mTurnAngleRate, mpHIO->mWolf.mWlMove.m.mTurnMax, mpHIO->mWolf.mWlMove.m.mTurnMin); shape_angle.y = current.angle.y; } @@ -2647,7 +2655,7 @@ int daAlink_c::procWolfDash() { onResetFlg1(RFLG1_UNK_30); } else if (frameCtrl_p->checkPass(8.0f) || frameCtrl_p->checkPass(16.5f)) { field_0x2f9d = 0x18; - onResetFlg1(RFLG1_UNK_C); + onResetFlg1(daPy_RFLG1(RFLG1_UNK_8 | RFLG1_UNK_4)); } field_0x30a2 = field_0x2fec; @@ -2714,6 +2722,10 @@ int daAlink_c::procWolfDashReverse() { frameCtrl_p->setRate(mpHIO->mWolf.mWlMove.m.mDashReboundAnm.mSpeed); frameCtrl_p->setEnd(mpHIO->mWolf.mWlMove.m.mDashReboundAnm.mEndFrame); + #if DEBUG + mpHIO->jumpStateUpdate(&mLastJumpPos, ¤t.pos, l_jumpTop); + #endif + current.angle.y = shape_angle.y; offModeFlg(0x2); onModeFlg(0x8000); @@ -2783,7 +2795,7 @@ int daAlink_c::procWolfWaitTurnInit() { mNormalSpeed = 0.0f; } - mProcVar3.field_0x300e = field_0x2fe2; + mProcVar3.field_0x300e = mMoveAngle; current.angle.y = shape_angle.y; return 1; } @@ -2810,7 +2822,7 @@ int daAlink_c::procWolfWaitTurn() { if (var_r31 == 0) { if (checkEventRun()) { - if (mDemo.getDemoMode() == 5) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_WAIT_TURN_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextActionWolf(0); @@ -2895,7 +2907,7 @@ int daAlink_c::procWolfSideStep() { return procWolfSideStepLandInit(mProcVar5.field_0x3012); } - if (mDemo.getDemoMode() != 0x10 && + if (mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_16_e && current.pos.y < mLastJumpPos.y - mpHIO->mWolf.mWlSideStep.m.mFallHeight) { field_0x2f98 = 0; @@ -2914,12 +2926,16 @@ int daAlink_c::procWolfSideStepLandInit(s16 param_0) { field_0x3478 = mpHIO->mWolf.mWlSideStep.m.mBackLandAnm.mCancelFrame; field_0x2fcc = 10; } else { + int _; field_0x2fcc = 0; setSingleAnimeWolfParam( field_0x2f98 == 2 ? WANM_SIDE_JUMP_LEFT_END : WANM_SIDE_JUMP_RIGHT_END, - // Fakematch, should be - // &mpHIO->mWolf.mWlSideStep.m.mSideLandAnm + // Fakematch, should be &mpHIO->mWolf.mWlSideStep.m.mSideLandAnm + #if DEBUG + &mpHIO->mWolf.mWlSideStep.m.mSideLandAnm + #else &daAlinkHIO_wlSideStep_c0::m.mSideLandAnm + #endif ); field_0x3478 = mpHIO->mWolf.mWlSideStep.m.mSideLandAnm.mCancelFrame; } @@ -2927,7 +2943,7 @@ int daAlink_c::procWolfSideStepLandInit(s16 param_0) { mProcVar5.field_0x3012 = param_0; field_0x2f9d = 4; setFootEffectProcType(2); - onResetFlg1(RFLG1_UNK_C); + onResetFlg1(daPy_RFLG1(RFLG1_UNK_8 | RFLG1_UNK_4)); mNormalSpeed = 0.0f; setStepLandVibration(); @@ -2944,8 +2960,8 @@ int daAlink_c::procWolfSideStepLand() { setWolfAtnMoveDirection(); checkWolfAtnDoCharge(); - if (frameCtrl->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x10) { + if (checkAnmEnd(frameCtrl)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_16_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextActionWolf(0); @@ -3010,9 +3026,9 @@ int daAlink_c::procWolfBackJump() { backJumpSpeedDec(); - if (mUnderFrameCtrl[0].checkAnmEnd() && mLinkAcch.ChkGroundHit()) { + if (checkAnmEnd(mUnderFrameCtrl) && mLinkAcch.ChkGroundHit()) { procWolfBackJumpLandInit(mProcVar5.field_0x3012, mProcVar4.field_0x3010); - } else if (mDemo.getDemoMode() != 0x10 && + } else if (mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_16_e && current.pos.y < mLastJumpPos.y - mpHIO->mWolf.mWlBackJump.m.mFallHeight) { field_0x2f98 = 0; @@ -3049,8 +3065,8 @@ int daAlink_c::procWolfBackJumpLand() { checkWolfAtnDoCharge(); } - if (frameCtrl->checkAnmEnd()) { - if (mDemo.getDemoMode() == 0x10) { + if (checkAnmEnd(frameCtrl)) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_16_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextActionWolf(0); @@ -3102,8 +3118,8 @@ int daAlink_c::procWolfHowl() { checkNextActionWolf(1); } } else { - if ((!doButton() || mProcVar2.field_0x300c != 0) && mDemo.getDemoMode() != 0x15 && - mDemo.getDemoMode() != 0x16) + if ((!doButton() || mProcVar2.field_0x300c != 0) && mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_21_e && + mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_22_e) { if (!(frameCtrl_p->getFrame() < 38.0f)) { mProcVar2.field_0x300c = 1; @@ -3125,55 +3141,55 @@ int daAlink_c::procWolfHowl() { int daAlink_c::procWolfAutoJumpInit(int param_0) { commonProcInit(PROC_WOLF_AUTO_JUMP); - f32 var_f1; - f32 var_f31; - f32 var_f30; - s16 var_r30; + f32 anmSpeed; + f32 minSpeed; + f32 speedRate; + s16 angle; if (checkWolfDashMode() && field_0x2fc7 != 3) { - var_f1 = mpHIO->mWolf.mWlAutoJump.m.mJumpAnm.mSpeed; - field_0x594 = mpHIO->mWolf.mWlAutoJump.m.mJumpMaxSpeed; - var_f31 = mpHIO->mWolf.mWlAutoJump.m.mJumpMinSpeed; - var_f30 = mpHIO->mWolf.mWlAutoJump.m.mJumpSpeedRate; - var_r30 = mpHIO->mWolf.mWlAutoJump.m.mJumpAngle; + anmSpeed = mpHIO->mWolf.mWlAutoJump.m.mJumpAnm.mSpeed; + mMaxSpeed = mpHIO->mWolf.mWlAutoJump.m.mJumpMaxSpeed; + minSpeed = mpHIO->mWolf.mWlAutoJump.m.mJumpMinSpeed; + speedRate = mpHIO->mWolf.mWlAutoJump.m.mJumpSpeedRate; + angle = mpHIO->mWolf.mWlAutoJump.m.mJumpAngle; onNoResetFlg2(FLG2_WOLF_DASH_AUTO_JUMP); } else { - var_f1 = mpHIO->mWolf.mWlAutoJump.m.mWeakJumpAnmSpeed; - field_0x594 = mpHIO->mWolf.mWlAutoJump.m.mWeakJumpMaxSpeed; - var_f31 = mpHIO->mWolf.mWlAutoJump.m.mWeakJumpMinSpeed; - var_f30 = mpHIO->mWolf.mWlAutoJump.m.mWeakJumpSpeedRate; - var_r30 = mpHIO->mWolf.mWlAutoJump.m.mWeakJumpAngle; + anmSpeed = mpHIO->mWolf.mWlAutoJump.m.mWeakJumpAnmSpeed; + mMaxSpeed = mpHIO->mWolf.mWlAutoJump.m.mWeakJumpMaxSpeed; + minSpeed = mpHIO->mWolf.mWlAutoJump.m.mWeakJumpMinSpeed; + speedRate = mpHIO->mWolf.mWlAutoJump.m.mWeakJumpSpeedRate; + angle = mpHIO->mWolf.mWlAutoJump.m.mWeakJumpAngle; } - setSingleAnimeWolf(WANM_JUMP_ATTACK_START, var_f1, + setSingleAnimeWolf(WANM_JUMP_ATTACK_START, anmSpeed, mpHIO->mWolf.mWlAutoJump.m.mJumpAnm.mStartFrame, mpHIO->mWolf.mWlAutoJump.m.mJumpAnm.mEndFrame, mpHIO->mWolf.mWlAutoJump.m.mJumpAnm.mInterpolation); - if (speedF > field_0x594 || param_0 || mpHIO->mWolf.mWlAutoJump.m.mAlwaysMaxSpeedJump == true) { - speedF = field_0x594; - } else if (speedF < var_f31) { - speedF = var_f31; + if (speedF > mMaxSpeed || param_0 || mpHIO->mWolf.mWlAutoJump.m.mAlwaysMaxSpeedJump == true) { + speedF = mMaxSpeed; + } else if (speedF < minSpeed) { + speedF = minSpeed; } - mNormalSpeed = speedF * var_f30; - speed.y = mNormalSpeed * cM_ssin(var_r30); - mNormalSpeed *= cM_scos(var_r30); + mNormalSpeed = speedF * speedRate; + speed.y = mNormalSpeed * cM_ssin(angle); + mNormalSpeed *= cM_scos(angle); field_0x3588 = l_wolfBaseAnime; field_0x33b0 = l_wolfBaseAnime.y; current.angle.y = shape_angle.y; offNoResetFlg0(FLG0_UNK_40000); - onResetFlg0(RFLG0_UNK_100); + onResetFlg0(RFLG0_AUTO_JUMP_START); voiceStart(Z2SE_WL_V_BREATH_JUMP); mProcVar2.field_0x300c = 1; return 1; } int daAlink_c::procWolfAutoJump() { - if (mSpecialMode != 0x27) { + if (mMode != 0x27) { if (checkInputOnR() && getDirectionFromCurrentAngle() == DIR_BACKWARD) { - cLib_chaseF(&mNormalSpeed, 0.0f, field_0x33a8 * 0.2f); + cLib_chaseF(&mNormalSpeed, 0.0f, mStickValue * 0.2f); } else if (!checkInputOnR()) { cLib_chaseF(&mNormalSpeed, 0.0f, 0.1f); } @@ -3336,7 +3352,7 @@ int daAlink_c::procWolfLand() { field_0x2f99 = 4; } - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextActionWolf(0); } else if (frameCtrl->getFrame() > field_0x3478) { checkNextActionWolf(1); @@ -3375,9 +3391,9 @@ int daAlink_c::procWolfSit() { checkWolfDashMode() ? mpHIO->mWolf.mWlMove.m.mDeceleration : mpHIO->mWolf.mWlMoveNoP.m.mDeceleration); - if (!spActionButton() && mDemo.getDemoMode() != 0xF) { + if (!spActionButton() && mDemo.getDemoMode() != daPy_demo_c::DEMO_UNK_15_e) { checkNextActionWolfFromLie(); - } else if (frameCtrl->checkAnmEnd()) { + } else if (checkAnmEnd(frameCtrl)) { setSingleAnimeWolfBaseSpeed(WANM_WAIT_SIT, mpHIO->mWolf.mWlLie.m.mSittingIdleAnmSpeed, mpHIO->mWolf.mWlLie.m.mSittingIdleInterp); field_0x3198 = 1; @@ -3452,13 +3468,13 @@ int daAlink_c::procWolfSlip() { field_0x2f99 = 5; - f32 var_f2; + f32 deceleration; if (checkWolfDashMode()) { - var_f2 = mpHIO->mWolf.mWlMove.m.mSlipDeceleration; + deceleration = mpHIO->mWolf.mWlMove.m.mSlipDeceleration; } else { - var_f2 = mpHIO->mWolf.mWlMoveNoP.m.mSlideDeceleration; + deceleration = mpHIO->mWolf.mWlMoveNoP.m.mSlideDeceleration; } - cLib_chaseF(&mNormalSpeed, 0.0f, var_f2); + cLib_chaseF(&mNormalSpeed, 0.0f, deceleration); if (checkAnmEnd(frameCtrl_p)) { mNormalSpeed = 0.0f; @@ -3488,9 +3504,9 @@ int daAlink_c::procWolfSlipTurnInit(int param_0) { return 0; } - f32 var_f31; + f32 start_frame; if (param_0) { - var_f31 = mpHIO->mWolf.mWlMove.m.mReverseAnm.mStartFrame; + start_frame = mpHIO->mWolf.mWlMove.m.mReverseAnm.mStartFrame; current.angle.y = shape_angle.y + 0x8000; if (checkWolfDashMode()) { @@ -3499,21 +3515,21 @@ int daAlink_c::procWolfSlipTurnInit(int param_0) { field_0x347c = mpHIO->mWolf.mWlMoveNoP.m.mReverseSpeed; } } else { - var_f31 = mpHIO->mWolf.mWlMove.m.mIdleReverseStartFrame; - current.angle.y = field_0x2fe2; + start_frame = mpHIO->mWolf.mWlMove.m.mIdleReverseStartFrame; + current.angle.y = mMoveAngle; setOldRootQuaternion(0, (shape_angle.y - current.angle.y) - 0x8000, 0); shape_angle.y = current.angle.y + 0x8000; field_0x347c = 10.0f; } - setSingleAnimeWolf(WANM_TURN, mpHIO->mWolf.mWlMove.m.mReverseAnm.mSpeed, var_f31, 12, + setSingleAnimeWolf(WANM_TURN, mpHIO->mWolf.mWlMove.m.mReverseAnm.mSpeed, start_frame, 12, mpHIO->mWolf.mWlMove.m.mReverseAnm.mInterpolation); voiceStart(Z2SE_WL_V_BREATH_JUMP); mNormalSpeed = 0.0f; field_0x2f99 = 5; field_0x3588 = l_wolfBaseAnime; - field_0x3478 = 1.0f / (12.0f - var_f31); + field_0x3478 = 1.0f / (12.0f - start_frame); return 1; } @@ -3538,7 +3554,7 @@ int daAlink_c::procWolfSlipTurn() { { setOldRootQuaternion(0, -0x8000, 0); shape_angle.y = current.angle.y; - field_0x2fe6 = shape_angle.y; + mPrevAngleY = shape_angle.y; procWolfFallInit(2, mpHIO->mWolf.mWlMove.m.mReverseFallInterpolation); } @@ -3566,7 +3582,7 @@ int daAlink_c::procWolfSlipTurnLand() { field_0x2f99 = 5; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextActionWolf(0); } else if (frameCtrl->getFrame() > mpHIO->mWolf.mWlMove.m.mReverseAnm.mCancelFrame) { checkNextActionWolf(1); @@ -3583,12 +3599,12 @@ int daAlink_c::procWolfSlideReadyInit(s16 i_angle, int param_1) { voiceStart(Z2SE_WL_V_SLIP_ROLL); mNormalSpeed = 0.0f; - field_0x594 = mpHIO->mWolf.mWlSlide.m.mMaxSpeed; + mMaxSpeed = mpHIO->mWolf.mWlSlide.m.mMaxSpeed; field_0x3588 = l_wolfBaseAnime; field_0x3478 = 1.0f / mUnderFrameCtrl[0].getEnd(); mProcVar2.field_0x300c = 0; mProcVar3.field_0x300e = param_1; - field_0x814.SetWeight(0xFF); + mCcStts.SetWeight(255); return 1; } @@ -3602,7 +3618,8 @@ int daAlink_c::procWolfSlideReady() { cM3dGPla slide_poly; if (getSlidePolygon(&slide_poly)) { - cLib_addCalcAngleS(¤t.angle.y, slide_poly.mNormal.atan2sX_Z(), 4, 0x1000, 0x400); + s16 var_r28 = slide_poly.mNormal.atan2sX_Z(); + cLib_addCalcAngleS(¤t.angle.y, var_r28, 4, 0x1000, 0x400); cLib_addCalcAngleS(&shape_angle.y, current.angle.y, 4, 0x1000, 0x400); } @@ -3628,8 +3645,10 @@ int daAlink_c::procWolfSlideInit(s16 i_angle, int param_1) { return procWolfSlideReadyInit(i_angle, 1); } + BOOL is_prev_slideReady = mProcID == PROC_WOLF_SLIDE_READY; + commonProcInit(PROC_WOLF_SLIDE); - field_0x814.SetWeight(0xFF); + mCcStts.SetWeight(255); field_0x3090 = 8; current.angle.y = i_angle; setSingleAnimeWolfParam(WANM_SLIDE_BACKWARD, &mpHIO->mWolf.mWlSlide.m.mBackSlideAnm); @@ -3642,7 +3661,7 @@ int daAlink_c::procWolfSlideInit(s16 i_angle, int param_1) { dComIfGp_setPlayerStatus1(0, 0x200); field_0x2f9d = 0x78; setFootEffectProcType(1); - field_0x594 = mpHIO->mWolf.mWlSlide.m.mMaxSpeed; + mMaxSpeed = mpHIO->mWolf.mWlSlide.m.mMaxSpeed; return 1; } @@ -3657,8 +3676,8 @@ int daAlink_c::procWolfSlide() { mNormalSpeed += mpHIO->mWolf.mWlSlide.m.mAcceleration * ((1.0f - slide_poly.mNormal.y) * 0.5f + 1.0f) * cM_scos(current.angle.y - var_r30); - if (mNormalSpeed > field_0x594) { - mNormalSpeed = field_0x594; + if (mNormalSpeed > mMaxSpeed) { + mNormalSpeed = mMaxSpeed; } field_0x2f9d = 0x78; @@ -3674,7 +3693,7 @@ int daAlink_c::procWolfSlideLandInit() { commonProcInit(PROC_WOLF_SLIDE_LAND); setSingleAnimeWolfParam(WANM_SLIDE_BACKWARD_END, &mpHIO->mWolf.mWlSlide.m.mLandingAnm); mNormalSpeed *= 0.5f; - field_0x814.SetWeight(0xFF); + mCcStts.SetWeight(255); return 1; } @@ -3684,7 +3703,7 @@ int daAlink_c::procWolfSlideLand() { cLib_chaseF(&mNormalSpeed, 0.0f, 4.0f); - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { current.angle.y = shape_angle.y; checkNextActionWolf(0); } else if (frameCtrl->getFrame() > mpHIO->mWolf.mWlSlide.m.mLandingAnm.mCancelFrame) { @@ -3724,7 +3743,7 @@ int daAlink_c::procWolfWaitSlip() { dComIfG_Bgsp().GetTriPla(mLinkAcch.m_gnd, &tri); s16 var_r30 = tri.mNormal.atan2sX_Z(); - if (getGroundAngle(&mLinkAcch.m_gnd, field_0x2fe2) < -field_0x3122) { + if (getGroundAngle(&mLinkAcch.m_gnd, mMoveAngle) < -field_0x3122) { int var_r3 = abs((s16)(var_r30 - shape_angle.y)); if (var_r3 >= 0x6000) { @@ -3776,7 +3795,7 @@ int daAlink_c::procWolfSlopeStartInit(int param_0) { int daAlink_c::procWolfSlopeStart() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextActionWolf(0); } else if (frameCtrl->getFrame() > mpHIO->mWolf.mWlSlide.m.mSlipDownRecoveryAnm.mCancelFrame) { if (!checkNextActionWolf(1)) { @@ -3789,7 +3808,9 @@ int daAlink_c::procWolfSlopeStart() { return 1; } -static fopAc_ac_c* daAlink_searchGoldWolf(fopAc_ac_c* i_actor, void*) { +static fopAc_ac_c* daAlink_searchGoldWolf(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); + if (fopAcM_GetName(i_actor) == PROC_NPC_GWOLF) { return i_actor; } @@ -3799,15 +3820,16 @@ static fopAc_ac_c* daAlink_searchGoldWolf(fopAc_ac_c* i_actor, void*) { static void* daAlink_searchWolfHowl(fopAc_ac_c* i_actor, void* i_data) { s16 actor_name = fopAcM_GetName(i_actor); + fopAc_ac_c** var_r30 = (fopAc_ac_c**)i_data; daAlink_c* player_p = daAlink_getAlinkActorClass(); - if ((actor_name == PROC_KAGO && dComIfGs_isEventBit(0xA10)) || + if ((actor_name == PROC_KAGO && dComIfGs_isEventBit(dSv_event_flag_c::M_051)) || (actor_name == PROC_E_PM && - player_p->current.pos.abs2XZ(i_actor->current.pos) < 9000000.0f) || + player_p->current.pos.abs2XZ(i_actor->current.pos) < SQUARE(3000.0f)) || actor_name == PROC_OBJ_SEKIZOA || - (*(fopAc_ac_c**)i_data == NULL && actor_name == player_p->getGrassHowlEventActor())) + (*var_r30 == NULL && actor_name == player_p->getGrassHowlEventActor())) { - *(fopAc_ac_c**)i_data = i_actor; + *var_r30 = i_actor; } return NULL; @@ -3835,7 +3857,7 @@ void daAlink_c::setWolfHowlNotHappen(int param_0) { } int daAlink_c::procWolfHowlDemoInit() { - if (!dComIfGp_event_compulsory(this, 0, 0xFFFF)) { + if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) { return 0; } @@ -3939,7 +3961,7 @@ int daAlink_c::procWolfHowlDemoInit() { mpHIO->mWolf.mWlLie.m.mSittingIdleInterp); } else { setSingleAnimeWolfBase(WANM_LISTEN); - setFaceBasicTexture(FTANM_UNK_A2); + setFaceBasicTexture(FTANM_WL_C_A); } } @@ -3952,9 +3974,7 @@ int daAlink_c::procWolfHowlDemoInit() { mDoAud_taktModeMute(); if (checkStageName("F_SP200")) { - fopAc_ac_c* gwolf_p = - (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchGoldWolf, NULL); - field_0x280c.setData(gwolf_p); + field_0x280c.setData((fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchGoldWolf, NULL)); } else { field_0x280c.clearData(); } @@ -3967,13 +3987,13 @@ int daAlink_c::procWolfHowlDemo() { daPy_frameCtrl_c* frameCtrl_p = mUnderFrameCtrl; daNpc_GWolf_c* gwolf_p = (daNpc_GWolf_c*)field_0x280c.getActor(); - BOOL skip_edge = dComIfGp_getEvent()->checkSkipEdge(); - if (skip_edge) { + BOOL isSkipEdge = dComIfGp_getEvent()->checkSkipEdge(); + if (isSkipEdge) { mZ2WolfHowlMgr.skipCorrectDemo(); } if (checkEndMessage(field_0x32cc) || - (skip_edge && (field_0x32cc == 0x535 || field_0x32cc == 0x532))) + (isSkipEdge && (field_0x32cc == 0x535 || field_0x32cc == 0x532))) { if (mProcVar2.field_0x300c == 0) { resetSpecialEvent(); @@ -3994,7 +4014,7 @@ int daAlink_c::procWolfHowlDemo() { if (checkAnmEnd(frameCtrl_p)) { if (mProcVar4.field_0x3010 != 0) { setSingleAnimeWolfBase(WANM_LISTEN); - setFaceBasicTexture(FTANM_UNK_A2); + setFaceBasicTexture(FTANM_WL_C_A); } else { setSingleAnimeWolfBaseSpeed(WANM_WAIT_SIT, mpHIO->mWolf.mWlLie.m.mSittingIdleAnmSpeed, mpHIO->mWolf.mWlLie.m.mSittingIdleInterp); @@ -4005,9 +4025,9 @@ int daAlink_c::procWolfHowlDemo() { } else if (field_0x347c > 1.5f) { field_0x347c -= 1.0f; } else { - bool var_r26 = mDoCPd_c::getHoldA(PAD_1) != false; + bool isHowl = mDoCPd_c::getHoldA(PAD_1) != false; if (mProcVar4.field_0x3010 != 0 && mProcVar2.field_0x300c != 0) { - var_r26 = false; + isHowl = false; } if (checkUnderMove0BckNoArcWolf(WANM_HOWL_SUCCESS)) { @@ -4018,7 +4038,7 @@ int daAlink_c::procWolfHowlDemo() { if (gwolf_p == NULL) { dComIfGp_getEvent()->startCheckSkipEdge(this); } - } else if ((var_r26 || mZ2WolfHowlMgr.getTimer() != 0) && + } else if ((isHowl || mZ2WolfHowlMgr.getTimer() != 0) && mZ2WolfHowlMgr.getReleaseTimer() != 30) { if (!checkUnderMove0BckNoArcWolf(WANM_HOWL_SIT) || mProcVar1.field_0x300a == 0) { @@ -4045,7 +4065,7 @@ int daAlink_c::procWolfHowlDemo() { (checkAnmEnd(frameCtrl_p) || checkUnderMove0BckNoArcWolf(WANM_WAIT_SIT))) { setSingleAnimeWolfBase(WANM_LISTEN); - setFaceBasicTexture(FTANM_UNK_A2); + setFaceBasicTexture(FTANM_WL_C_A); } else if (checkAnmEnd(frameCtrl_p)) { setSingleAnimeWolfBaseSpeed(WANM_WAIT_SIT, mpHIO->mWolf.mWlLie.m.mSittingIdleAnmSpeed, mpHIO->mWolf.mWlLie.m.mSittingIdleInterp); @@ -4054,12 +4074,12 @@ int daAlink_c::procWolfHowlDemo() { s16 var_r25 = mProcVar3.field_0x300e; f32 stick_y = mDoCPd_c::getStickY(PAD_1); - mProcVar3.field_0x300e = mZ2WolfHowlMgr.startWolfHowlSound(0.0f, stick_y, var_r26, 0.0f); + mProcVar3.field_0x300e = mZ2WolfHowlMgr.startWolfHowlSound(0.0f, stick_y, isHowl, 0.0f); s16 var_r26_2 = 0; - if (mProcVar3.field_0x300e == -1 || skip_edge) { - if (checkUnderMove0BckNoArcWolf(WANM_HOWL_END) || skip_edge) { - if (checkAnmEnd(frameCtrl_p) || skip_edge) { + if (mProcVar3.field_0x300e == -1 || isSkipEdge) { + if (checkUnderMove0BckNoArcWolf(WANM_HOWL_END) || isSkipEdge) { + if (checkAnmEnd(frameCtrl_p) || isSkipEdge) { if (mProcVar0.mHowlExitID >= 0) { dStage_changeScene(mProcVar0.mHowlExitID, 0.0f, 0, fopAcM_GetRoomNo(this), shape_angle.y, -1); @@ -4078,33 +4098,32 @@ int daAlink_c::procWolfHowlDemo() { if (actor_p != NULL) { fopAcM_OnStatus(actor_p, 0x800); - if (fopAcM_GetName(actor_p) == PROC_KAGO) { + s16 actorName = fopAcM_GetName(actor_p); + if (actorName == PROC_KAGO) { static_cast(actor_p)->setEvent(); - static_cast(actor_p)->setKagoPath( - mProcVar5.field_0x3012); - } else if (fopAcM_GetName(actor_p) == PROC_OBJ_SEKIZOA) { + static_cast(actor_p)->setKagoPath(mProcVar5.field_0x3012); + } else if (actorName == PROC_OBJ_SEKIZOA) { static_cast(actor_p)->setWolfHowling(); - } else if (fopAcM_GetName(actor_p) == PROC_E_PM) { + } else if (actorName == PROC_E_PM) { static_cast(actor_p)->AppearSet(); - } else if (fopAcM_GetName(actor_p) == PROC_HORSE) { - int ret = static_cast(actor_p)->callHorse(¤t.pos); - + } else if (actorName == PROC_HORSE) { + daHorse_c* horse = static_cast(actor_p); + int ret = horse->callHorse(¤t.pos); if (ret == 1 || ret == 2) { mDoAud_taktModeMuteOff(); return procCoHorseCallWaitInit(ret); } if (ret != 3) { - setWolfHowlNotHappen(skip_edge); + setWolfHowlNotHappen(isSkipEdge); return 1; } - } else if (fopAcM_GetName(actor_p) == PROC_NPC_TK) { + } else if (actorName == PROC_NPC_TK) { static_cast(actor_p)->setEventWolf(); - static_cast(actor_p)->setHawkPath( - mProcVar5.field_0x3012); + static_cast(actor_p)->setHawkPath(mProcVar5.field_0x3012); } } else if (mProcVar4.field_0x3010 == 0) { - setWolfHowlNotHappen(skip_edge); + setWolfHowlNotHappen(isSkipEdge); return 1; } @@ -4134,7 +4153,7 @@ int daAlink_c::procWolfHowlDemo() { setSingleAnimeWolfBase(WANM_HOWL_SUCCESS); mUnderFrameCtrl[0].setLoop(27); mUnderFrameCtrl[0].setAttribute(2); - setFaceBasicTexture(FTANM_UNK_A1); + setFaceBasicTexture(FTANM_WL_HOWLC); if (gwolf_p != NULL) { fopAcM_OnStatus(gwolf_p, 0x800); @@ -4164,8 +4183,8 @@ fopAc_ac_c* daAlink_c::checkWolfRopeHit(dCcD_GObjInf* i_collider, cXyz const* pa if (i_collider->ChkCoHit() && rope_p != NULL && fopAcM_GetName(rope_p) == PROC_Obj_Crope) { if (param_2) { - if (rope_p->getRopeStartPos()->abs2XZ(*param_1) > 10000.0f) { - if (rope_p->getRopeEndPos()->abs2XZ(*param_1) > 10000.0f) { + if (rope_p->getRopeStartPos()->abs2XZ(*param_1) > SQUARE(100.0f)) { + if (rope_p->getRopeEndPos()->abs2XZ(*param_1) > SQUARE(100.0f)) { return rope_p; } } @@ -4189,9 +4208,9 @@ fopAc_ac_c* daAlink_c::checkWolfRopeHit(dCcD_GObjInf* i_collider, cXyz const* pa } int daAlink_c::checkWolfRopeJumpHang() { - fopAc_ac_c* hit_actor = checkWolfRopeHit(&field_0x850[0], ¤t.pos, TRUE); + fopAc_ac_c* hit_actor = checkWolfRopeHit(&mTgCyls[0], ¤t.pos, TRUE); if (hit_actor == NULL) { - hit_actor = checkWolfRopeHit(&field_0xFB8, ¤t.pos, TRUE); + hit_actor = checkWolfRopeHit(&mAtSph, ¤t.pos, TRUE); } if (hit_actor != NULL) { @@ -4204,46 +4223,49 @@ int daAlink_c::checkWolfRopeJumpHang() { f32 daAlink_c::getWolfRopeMoveSpeed() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - f32 frame = frameCtrl->getFrame(); - if (frame >= 13.5f) { - frame -= 13.5f; + f32 frame; + if (frameCtrl->getFrame() >= 13.5f) { + frame = frameCtrl->getFrame() - 13.5f; + } else { + frame = frameCtrl->getFrame(); } return mpHIO->mWolf.mWlRope.m.mMovementRate * frameCtrl->getRate() * cM_fsin(0.23271057f * frame); } int daAlink_c::setWolfRopePosY() { - daObjCrope_c* temp_r3 = (daObjCrope_c*)field_0x280c.getActor(); - cXyz* temp_r28 = temp_r3->getRopeStartPos(); - cXyz* temp_r27 = temp_r3->getRopeEndPos(); - cXyz* temp_r26 = temp_r3->getRopeVec(); - f32 temp_f30 = temp_r3->getStartRate(¤t.pos); + daObjCrope_c* rope = (daObjCrope_c*)field_0x280c.getActor(); + cXyz* ropeStartPos = rope->getRopeStartPos(); + cXyz* ropeEndPos = rope->getRopeEndPos(); + cXyz* ropeVec = rope->getRopeVec(); + f32 ropeStartRate = rope->getStartRate(¤t.pos); f32 var_f31; if (mProcID == PROC_WOLF_ROPE_MOVE && - (((var_f31 = temp_r3->getStartRate(&mLeftHandPos)) < 0.0f || var_f31 > 1.0f) || - ((var_f31 = temp_r3->getStartRate(&mRightHandPos)) < 0.0f || var_f31 > 1.0f) || - ((var_f31 = temp_r3->getStartRate(&mLeftFootPos)) < 0.0f || var_f31 > 1.0f) || - ((var_f31 = temp_r3->getStartRate(&mRightFootPos)) < 0.0f || var_f31 > 1.0f))) + (((var_f31 = rope->getStartRate(&mLeftHandPos)) < 0.0f || var_f31 > 1.0f) || + ((var_f31 = rope->getStartRate(&mRightHandPos)) < 0.0f || var_f31 > 1.0f) || + ((var_f31 = rope->getStartRate(&mLeftFootPos)) < 0.0f || var_f31 > 1.0f) || + ((var_f31 = rope->getStartRate(&mRightFootPos)) < 0.0f || var_f31 > 1.0f))) { - if (temp_r28->abs2XZ(current.pos) > temp_r27->abs2XZ(current.pos)) { - current.pos.y = temp_r27->y; + int _; + if (ropeStartPos->abs2XZ(current.pos) > ropeEndPos->abs2XZ(current.pos)) { + current.pos.y = ropeEndPos->y; } else { - current.pos.y = temp_r28->y; + current.pos.y = ropeStartPos->y; } - temp_r3->onOutFlg(); + rope->onOutFlg(); return 1; } - if (temp_f30 < 0.0f) { - current.pos.y = temp_r28->y; - } else if (temp_f30 > 1.0f) { - current.pos.y = temp_r27->y; + if (ropeStartRate < 0.0f) { + current.pos.y = ropeStartPos->y; + } else if (ropeStartRate > 1.0f) { + current.pos.y = ropeEndPos->y; } else { - current.pos.y = ((temp_r28->y + (temp_f30 * temp_r26->y)) - 40.0f) - - (10.0f * cM_fsin(M_PI * temp_f30)); + current.pos.y = ((ropeStartPos->y + (ropeStartRate * ropeVec->y)) - 40.0f) - + (10.0f * cM_fsin(M_PI * ropeStartRate)); } return 0; @@ -4251,18 +4273,14 @@ int daAlink_c::setWolfRopePosY() { s16 daAlink_c::initWolfRopeShapeAngle() { fopAc_ac_c* actor = field_0x280c.getActor(); - int a = abs((s16)(actor->shape_angle.y - shape_angle.y)); - s16 angle; - if (a < 0x4000) { + if (abs((s16)(actor->shape_angle.y - shape_angle.y)) < 0x4000) { shape_angle.y = actor->shape_angle.y; - angle = actor->shape_angle.x; + return actor->shape_angle.x; } else { shape_angle.y = actor->shape_angle.y - -0x8000; - angle = -actor->shape_angle.x; + return -actor->shape_angle.x; } - - return angle; } void daAlink_c::wolfRopeSwingInc(f32 param_0) { @@ -4299,7 +4317,7 @@ void daAlink_c::setWolfRopeOffsetY(int param_0) { } int daAlink_c::getDirectionRopeMove() const { - s16 angle = field_0x2fe2 - shape_angle.y; + s16 angle = mMoveAngle - shape_angle.y; if (abs(angle) > 0x5000) { return DIR_BACKWARD; @@ -4348,47 +4366,47 @@ int daAlink_c::procWolfRopeMoveInit(int param_0, int param_1) { } int daAlink_c::procWolfRopeMove() { - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; - daObjCrope_c* temp_r29 = (daObjCrope_c*)field_0x280c.getActor(); + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; + daObjCrope_c* rope = (daObjCrope_c*)field_0x280c.getActor(); int var_r27 = 0; f32 temp_f26 = getAnmSpeedStickRate(mpHIO->mWolf.mWlRope.m.mMovementMinAnmSpeed, mpHIO->mWolf.mWlRope.m.mMovementMaxAnmSpeed); f32 temp_f25 = -1.0f * getAnmSpeedStickRate(mpHIO->mWolf.mWlRope.m.mMovementMinAnmSpeed, mpHIO->mWolf.mWlRope.m.mBackMovementMaxAnmSpeed); - if (temp_r28->getRate() > 0.0f) { - temp_r28->setRate(temp_f26); - } else if (temp_r28->getRate() < 0.0f) { - temp_r28->setRate(temp_f25); + if (framectrl->getRate() > 0.0f) { + framectrl->setRate(temp_f26); + } else if (framectrl->getRate() < 0.0f) { + framectrl->setRate(temp_f25); } else { var_r27 = 1; } - cXyz* sp10 = temp_r29->getRopeStartPos(); - cXyz* spC = temp_r29->getRopeEndPos(); - cXyz* sp8 = temp_r29->getRopeVec(); - f32 temp_f31 = temp_r29->getStartRate(¤t.pos); + cXyz* ropeStartPos = rope->getRopeStartPos(); + cXyz* ropeEndPos = rope->getRopeEndPos(); + cXyz* ropeVec = rope->getRopeVec(); + f32 ropeStartRate = rope->getStartRate(¤t.pos); if (setTalkStatus()) { if (orderTalk(1)) { return 1; } } else if (mTargetedActor != NULL) { - setDoStatus(0x8B); + setDoStatus(BUTTON_STATUS_UNK_139); if (doTrigger()) { return procWolfJumpAttackInit(1); } } - int temp_r26 = getDirectionRopeMove(); - f32 temp_f29 = sp10->absXZ(current.pos); - f32 temp_f28 = spC->absXZ(current.pos); + int ropeMoveDirection = getDirectionRopeMove(); + f32 rope_start_distXZ = ropeStartPos->absXZ(current.pos); + f32 rope_end_distXZ = ropeEndPos->absXZ(current.pos); - if (temp_f31 > 0.0f && temp_f31 < 1.0f && temp_f29 > 100.0f && temp_f28 > 100.0f) { - if (field_0x814.GetCCMoveP()->abs2XZ() > 100.0f) { - field_0x814.ClrCcMove(); + if (ropeStartRate > 0.0f && ropeStartRate < 1.0f && rope_start_distXZ > 100.0f && rope_end_distXZ > 100.0f) { + if (mCcStts.GetCCMoveP()->abs2XZ() > SQUARE(10.0f)) { + mCcStts.ClrCcMove(); - if (field_0x814.GetCCMoveP()->atan2sX_Z() - shape_angle.y > 0) { + if (mCcStts.GetCCMoveP()->atan2sX_Z() - shape_angle.y > 0) { return procWolfRopeHangInit(2); } return procWolfRopeHangInit(3); @@ -4401,18 +4419,18 @@ int daAlink_c::procWolfRopeMove() { return procWolfRopeHangInit(3); } - if (field_0x33ac > 0.5f) { - if (temp_r26 == 2) { + if (mMoveValue > 0.5f) { + if (ropeMoveDirection == DIR_LEFT) { return procWolfRopeStaggerInit(2); - } else if (temp_r26 == 3) { + } else if (ropeMoveDirection == DIR_RIGHT) { return procWolfRopeStaggerInit(3); } } } - field_0x814.ClrCcMove(); + mCcStts.ClrCcMove(); - if (temp_f31 > 0.0f && temp_f31 < 1.0f && temp_f29 > 85.0f && temp_f28 > 85.0f) { + if (ropeStartRate > 0.0f && ropeStartRate < 1.0f && rope_start_distXZ > 85.0f && rope_end_distXZ > 85.0f) { if (!checkInputOnR() && var_r27 != 0 && checkServiceWaitMode()) { if (field_0x30ca != 0) { field_0x30ca--; @@ -4426,18 +4444,20 @@ int daAlink_c::procWolfRopeMove() { initServiceWaitTime(); } - if (var_r27 == 1 || temp_r28->checkPass(0.0f) || temp_r28->checkPass(15.0f)) { - if (checkInputOnR() && temp_r26 != 3 && temp_r26 != 2) { - if (var_r27 != 0 && field_0x33ac > 0.5f && cLib_distanceAngleS(field_0x2fe2, shape_angle.y) > 0x7000 && ((shape_angle.y == temp_r29->shape_angle.y && temp_f29 > 70.0f) || (shape_angle.y != temp_r29->shape_angle.y && temp_f28 > 70.0f))) { + if (var_r27 == 1 || framectrl->checkPass(0.0f) || framectrl->checkPass(15.0f)) { + if (checkInputOnR() && ropeMoveDirection != DIR_RIGHT && ropeMoveDirection != DIR_LEFT) { + if (var_r27 != 0 && mMoveValue > 0.5f && cLib_distanceAngleS(mMoveAngle, shape_angle.y) > 0x7000 && + ((shape_angle.y == rope->shape_angle.y && rope_start_distXZ > 70.0f) || (shape_angle.y != rope->shape_angle.y && rope_end_distXZ > 70.0f))) + { return procWolfRopeTurnInit(); } - if (temp_r26 != 1) { - temp_r28->setRate(temp_f26); - temp_r28->setLoop(0); + if (ropeMoveDirection != DIR_BACKWARD) { + framectrl->setRate(temp_f26); + framectrl->setLoop(0); } else { - temp_r28->setRate(temp_f25); - temp_r28->setLoop(temp_r28->getEnd()); + framectrl->setRate(temp_f25); + framectrl->setLoop(framectrl->getEnd()); } initBasAnime(); @@ -4472,8 +4492,8 @@ int daAlink_c::procWolfRopeMove() { } f32 var_f24 = 45.0f; - if ((temp_f31 < 0.0f && temp_f29 > var_f24) || (temp_f31 > 1.0f && temp_f28 > var_f24)) { - temp_r29->offRide(); + if ((ropeStartRate < 0.0f && rope_start_distXZ > var_f24) || (ropeStartRate > 1.0f && rope_end_distXZ > var_f24)) { + rope->offRide(); f32 var_f27; if (current.angle.y != shape_angle.y) { @@ -4490,21 +4510,21 @@ int daAlink_c::procWolfRopeMove() { setWolfRopeOffsetY(setWolfRopePosY()); - f32 temp_f30 = temp_r28->getFrame(); - if (temp_f30 < 1.0f || (temp_f30 > 12.5f && temp_f30 < 14.5f) || temp_f30 > (temp_r28->getEnd() - 1.0f)) { + f32 temp_f30 = framectrl->getFrame(); + if (temp_f30 < 1.0f || (temp_f30 > 12.5f && temp_f30 < 14.5f) || temp_f30 > (framectrl->getEnd() - 1.0f)) { if (mLeftHandPos.abs2XZ(current.pos) > mRightHandPos.abs2XZ(current.pos)) { - temp_r29->setFrontJoint(0x13); - temp_r29->setBackJoint(0x1F); + rope->setFrontJoint(19); + rope->setBackJoint(31); } else { - temp_r29->setFrontJoint(0x18); - temp_r29->setBackJoint(0x24); + rope->setFrontJoint(24); + rope->setBackJoint(36); } } else if (temp_f30 < 13.5f) { - temp_r29->setFrontJoint(0x13); - temp_r29->setBackJoint(0x24); + rope->setFrontJoint(19); + rope->setBackJoint(36); } else { - temp_r29->setFrontJoint(0x18); - temp_r29->setBackJoint(0x1F); + rope->setFrontJoint(24); + rope->setBackJoint(31); } return 1; @@ -4565,14 +4585,14 @@ int daAlink_c::procWolfRopeHangInit(int param_0) { } int daAlink_c::procWolfRopeHang() { - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; - daObjCrope_c* temp_r3 = (daObjCrope_c*)field_0x280c.getActor(); + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; + daObjCrope_c* rope = (daObjCrope_c*)field_0x280c.getActor(); - if (temp_r3 == NULL) { + if (rope == NULL) { return checkNextActionWolf(0); } - if (checkAnmEnd(temp_r28)) { + if (checkAnmEnd(framectrl)) { if (mProcVar3.field_0x300e != 0) { field_0x2060->getOldFrameTransInfo(0)->mTranslate.z -= 15.0f; @@ -4591,22 +4611,22 @@ int daAlink_c::procWolfRopeHang() { mProcVar3.field_0x300e = 1; - daAlink_WANM var_r27; + daAlink_WANM anm; if (field_0x3198 == 2) { - var_r27 = WANM_ROPE_CLIMB_LEFT; + anm = WANM_ROPE_CLIMB_LEFT; } else { - var_r27 = WANM_ROPE_CLIMB_RIGHT; + anm = WANM_ROPE_CLIMB_RIGHT; } - setSingleAnimeWolfBaseSpeed(var_r27, mpHIO->mWolf.mWlRope.m.mTwistClimbAnmSpeed, mpHIO->mWolf.mWlRope.m.mTwistClimbInterpolation); + setSingleAnimeWolfBaseSpeed(anm, mpHIO->mWolf.mWlRope.m.mTwistClimbAnmSpeed, mpHIO->mWolf.mWlRope.m.mTwistClimbInterpolation); } - f32 temp_f31 = temp_r28->getFrame(); + f32 temp_f31 = framectrl->getFrame(); if (mProcVar3.field_0x300e == 0 || temp_f31 < 22.0f) { - setDoStatus(0x33); + setDoStatus(BUTTON_STATUS_DROP_DOWN); if (doTrigger()) { - temp_r3->setCoCancelTimer(); + rope->setCoCancelTimer(); current.pos.x -= 80.0f * cM_ssin(shape_angle.y); current.pos.z -= 80.0f * cM_scos(shape_angle.y); @@ -4618,46 +4638,46 @@ int daAlink_c::procWolfRopeHang() { if (mProcVar3.field_0x300e != 0) { if (field_0x3198 == 2) { - if (temp_r28->checkPass(22.0f)) { + if (framectrl->checkPass(22.0f)) { wolfRopeSwingInc(15.0f); mProcVar0.field_0x3008 = 0; } if (temp_f31 < 1.0f) { - temp_r3->setFrontJoint(0x13); - temp_r3->setBackJoint(0x17); + rope->setFrontJoint(19); + rope->setBackJoint(23); } else if (temp_f31 < 5.0f) { - temp_r3->setFrontJoint(-1); + rope->setFrontJoint(-1); } else if (temp_f31 < 22.0f) { - temp_r3->setFrontJoint(0x12); + rope->setFrontJoint(18); } else if (temp_f31 < 41.0f) { - temp_r3->setBackJoint(0x24); + rope->setBackJoint(36); } else { - temp_r3->setFrontJoint(0x13); - temp_r3->setBackJoint(0x1F); + rope->setFrontJoint(19); + rope->setBackJoint(31); if (checkWolfGrabAnime()) { field_0x30a0 = -0x1800; } } } else { - if (temp_r28->checkPass(27.0f)) { + if (framectrl->checkPass(27.0f)) { wolfRopeSwingInc(15.0f); mProcVar0.field_0x3008 = 0; } if (temp_f31 < 1.0f) { - temp_r3->setFrontJoint(0x13); - temp_r3->setBackJoint(0x17); + rope->setFrontJoint(19); + rope->setBackJoint(23); } else if (temp_f31 < 12.0f) { - temp_r3->setFrontJoint(-1); + rope->setFrontJoint(-1); } else if (temp_f31 < 27.0f) { - temp_r3->setFrontJoint(0x12); + rope->setFrontJoint(18); } else if (temp_f31 < 46.0f) { - temp_r3->setFrontJoint(0x1F); + rope->setFrontJoint(31); } else { - temp_r3->setBackJoint(0x18); - temp_r3->setFrontJoint(0x24); + rope->setBackJoint(24); + rope->setFrontJoint(36); if (checkWolfGrabAnime()) { field_0x30a0 = -0x1800; @@ -4665,16 +4685,16 @@ int daAlink_c::procWolfRopeHang() { } } } else { - if (temp_r28->checkPass(4.0f)) { + if (framectrl->checkPass(4.0f)) { dComIfGp_getVibration().StartShock(2, 0xF, cXyz(0.0f, 1.0f, 0.0f)); } if (temp_f31 < 7.0f) { - temp_r3->rideKeep(); + rope->rideKeep(); } else if (temp_f31 < 9.0f) { - temp_r3->setFrontJoint(0x13); + rope->setFrontJoint(19); } else { - temp_r3->setBackJoint(0x17); + rope->setBackJoint(23); } } @@ -4702,42 +4722,43 @@ int daAlink_c::procWolfRopeTurnInit() { } int daAlink_c::procWolfRopeTurn() { - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; - daObjCrope_c* temp_r29 = (daObjCrope_c*)field_0x280c.getActor(); + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; + daObjCrope_c* rope = (daObjCrope_c*)field_0x280c.getActor(); field_0x2f99 = 4; - f32 temp_f30 = field_0x347c * temp_r28->getFrame(); + f32 temp_f30 = field_0x347c * framectrl->getFrame(); field_0x3588.x = l_wolfBaseAnime.x - (temp_f30 * (l_wolfBaseAnime.x + l_wolfRopeBaseAnime.x)); field_0x3588.z = l_wolfBaseAnime.z - (temp_f30 * (l_wolfBaseAnime.z + l_wolfRopeBaseAnime.z)); setWolfRopePosY(); - if (checkAnmEnd(temp_r28)) { + if (checkAnmEnd(framectrl)) { return procWolfRopeMoveInit(0, 0); } - f32 temp_f31 = temp_r28->getFrame(); - if (temp_r28->checkPass(9.0f)) { + f32 anm_frame = framectrl->getFrame(); + if (framectrl->checkPass(9.0f)) { wolfRopeSwingInc(30.0f); mProcVar0.field_0x3008 = 0; dComIfGp_getVibration().StartShock(1, 0xF, cXyz(0.0f, 1.0f, 0.0f)); - } else if (temp_r28->checkPass(13.0f)) { + } else if (framectrl->checkPass(13.0f)) { wolfRopeSwingInc(10.0f); mProcVar0.field_0x3008 = 0; } - if (!(temp_f31 < 7.0f)) { - if (temp_f31 < 9.0f) { + if (!(anm_frame < 7.0f)) { + int _; + if (anm_frame < 9.0f) { mProcVar2.field_0x300c = mProcVar3.field_0x300e; - temp_r29->setFrontJoint(0x13); - } else if (temp_f31 < 11.0f) { - temp_r29->setFrontJoint(0x18); - } else if (temp_f31 < 13.0f) { - temp_r29->setFrontJoint(0x18); - temp_r29->setBackJoint(0x1F); + rope->setFrontJoint(19); + } else if (anm_frame < 11.0f) { + rope->setFrontJoint(24); + } else if (anm_frame < 13.0f) { + rope->setFrontJoint(24); + rope->setBackJoint(31); } else { - temp_r29->setFrontJoint(0x13); - temp_r29->setBackJoint(0x1F); + rope->setFrontJoint(19); + rope->setBackJoint(31); } } @@ -4775,29 +4796,29 @@ int daAlink_c::procWolfRopeStaggerInit(int param_0) { } int daAlink_c::procWolfRopeStagger() { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; - daObjCrope_c* temp_r3 = (daObjCrope_c*)field_0x280c.getActor(); + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; + daObjCrope_c* rope = (daObjCrope_c*)field_0x280c.getActor(); - f32 temp_f31, temp_f30, temp_f29; - temp_f30 = temp_r3->getRopeStartPos()->absXZ(current.pos); - temp_f29 = temp_r3->getRopeEndPos()->absXZ(current.pos); - temp_f31 = temp_r3->getStartRate(¤t.pos); + f32 ropeStartRate, ropeStartDistXZ, ropeEndDistXZ; + ropeStartDistXZ = rope->getRopeStartPos()->absXZ(current.pos); + ropeEndDistXZ = rope->getRopeEndPos()->absXZ(current.pos); + ropeStartRate = rope->getStartRate(¤t.pos); - if (field_0x814.GetCCMoveP()->abs2XZ() > 100.0f) { - field_0x814.ClrCcMove(); + if (mCcStts.GetCCMoveP()->abs2XZ() > 100.0f) { + mCcStts.ClrCcMove(); - if ((field_0x814.GetCCMoveP()->atan2sX_Z() - shape_angle.y) > 0) { + if ((mCcStts.GetCCMoveP()->atan2sX_Z() - shape_angle.y) > 0) { return procWolfRopeHangInit(2); } else { return procWolfRopeHangInit(3); } } - if (!(temp_f31 > 0.0f) || !(temp_f31 < 1.0f) || !(temp_f30 > 85.0f) || !(temp_f29 > 85.0f)) { + if (!(ropeStartRate > 0.0f) || !(ropeStartRate < 1.0f) || !(ropeStartDistXZ > 85.0f) || !(ropeEndDistXZ > 85.0f)) { return procWolfRopeMoveInit(0, 0); } - if (checkAnmEnd(temp_r29)) { + if (checkAnmEnd(framectrl)) { if (mProcVar3.field_0x300e != 0) { return procWolfRopeMoveInit(0, 0); } else { @@ -4805,10 +4826,10 @@ int daAlink_c::procWolfRopeStagger() { } } - field_0x814.ClrCcMove(); + mCcStts.ClrCcMove(); - int temp_r26 = getDirectionRopeMove(); - if ((mProcVar3.field_0x300e != 0 && checkInputOnR()) || (mProcVar3.field_0x300e == 0 && (!checkInputOnR() || temp_r26 == 0 || temp_r26 == 1))) { + int direction = getDirectionRopeMove(); + if ((mProcVar3.field_0x300e != 0 && checkInputOnR()) || (mProcVar3.field_0x300e == 0 && (!checkInputOnR() || direction == DIR_FORWARD || direction == DIR_BACKWARD))) { return procWolfRopeMoveInit(0, 0); } @@ -4817,38 +4838,38 @@ int daAlink_c::procWolfRopeStagger() { return 1; } - if (temp_r29->checkPass(30.0f) || temp_r29->checkPass(61.0f) || temp_r29->checkPass(86.0f)) { + if (framectrl->checkPass(30.0f) || framectrl->checkPass(61.0f) || framectrl->checkPass(86.0f)) { wolfRopeSwingInc(10.0f); - } else if (temp_r29->checkPass(65.0f)) { + } else if (framectrl->checkPass(65.0f)) { voiceStart(Z2SE_WL_V_FOOTMISS); } } else { - if (temp_r29->checkPass(16.0f) || temp_r29->checkPass(33.0f) || temp_r29->checkPass(50.0f) || temp_r29->checkPass(71.0f)) { + if (framectrl->checkPass(16.0f) || framectrl->checkPass(33.0f) || framectrl->checkPass(50.0f) || framectrl->checkPass(71.0f)) { wolfRopeSwingInc(10.0f); - } else if (temp_r29->checkPass(60.0f)) { + } else if (framectrl->checkPass(60.0f)) { voiceStart(Z2SE_WL_V_BREATH_JUMP); } field_0x2f99 = 4; - daObjCrope_c* temp_r28 = (daObjCrope_c*)field_0x280c.getActor(); + daObjCrope_c* rope = (daObjCrope_c*)field_0x280c.getActor(); - if (temp_r29->getFrame() > 46.0f) { + if (framectrl->getFrame() > 46.0f) { mNormalSpeed = 0.0f; } else { - mNormalSpeed = (7.0f + (2.0f * (2 - ((int)temp_r29->getFrame() / 15)))) * fabsf(cM_fsin((M_PI * temp_r29->getFrame()) / 15.0f)); + mNormalSpeed = (7.0f + (2.0f * (2 - ((int)framectrl->getFrame() / 15)))) * fabsf(cM_fsin((M_PI * framectrl->getFrame()) / 15.0f)); } - if ((temp_r29->getFrame() >= 5.0f && temp_r29->getFrame() < 19.0f) || (temp_r29->getFrame() >= 39.0f && temp_r29->getFrame() < 51.0f)) { - temp_r28->setBackJoint(0x24); + if ((framectrl->getFrame() >= 5.0f && framectrl->getFrame() < 19.0f) || (framectrl->getFrame() >= 39.0f && framectrl->getFrame() < 51.0f)) { + rope->setBackJoint(36); } else { - temp_r28->setBackJoint(0x1F); + rope->setBackJoint(31); } - if ((temp_r29->getFrame() >= 13.0f && temp_r29->getFrame() < 30.0f) || (temp_r29->getFrame() >= 48.0f && temp_r29->getFrame() < 63.0f)) { - temp_r28->setFrontJoint(0x18); + if ((framectrl->getFrame() >= 13.0f && framectrl->getFrame() < 30.0f) || (framectrl->getFrame() >= 48.0f && framectrl->getFrame() < 63.0f)) { + rope->setFrontJoint(24); } else { - temp_r28->setFrontJoint(0x13); + rope->setFrontJoint(19); } } @@ -4857,6 +4878,8 @@ int daAlink_c::procWolfRopeStagger() { } int daAlink_c::procWolfRopeSubjectivityInit() { + fopAc_ac_c* rope = field_0x280c.getActor(); + commonProcInit(PROC_WOLF_ROPE_SUBJECTIVITY); if (!checkUnderMove0BckNoArcWolf(WANM_ROPE_WALK)) { @@ -4868,9 +4891,8 @@ int daAlink_c::procWolfRopeSubjectivityInit() { setSpecialGravity(0.0f, maxFallSpeed, 0); - f32 tmp_0 = 0.0f; - speed.y = tmp_0; - mNormalSpeed = tmp_0; + speed.y = 0.0f; + mNormalSpeed = 0.0f; setWolfRopeOffsetY(setWolfRopePosY()); @@ -4883,35 +4905,35 @@ int daAlink_c::procWolfRopeSubjectivityInit() { } int daAlink_c::procWolfRopeSubjectivity() { - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; - daObjCrope_c* temp_r3 = (daObjCrope_c*)field_0x280c.getActor(); + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; + daObjCrope_c* rope = (daObjCrope_c*)field_0x280c.getActor(); - cXyz* temp_r26 = temp_r3->getRopeStartPos(); - cXyz* temp_r25 = temp_r3->getRopeEndPos(); - cXyz* r23 = temp_r3->getRopeVec(); + cXyz* ropeStartPos = rope->getRopeStartPos(); + cXyz* ropeEndPos = rope->getRopeEndPos(); + cXyz* ropeVec = rope->getRopeVec(); - f32 temp_f31 = temp_r3->getStartRate(¤t.pos); - f32 temp_f30 = temp_r26->absXZ(current.pos); - f32 temp_f29 = temp_r25->absXZ(current.pos); + f32 ropeStartRate = rope->getStartRate(¤t.pos); + f32 ropeStartDistXZ = ropeStartPos->absXZ(current.pos); + f32 ropeEndDistXZ = ropeEndPos->absXZ(current.pos); onResetFlg0(RFLG0_UNK_4000000); - if (temp_f31 > 0.0f && temp_f31 < 1.0f && temp_f30 > 100.0f && temp_f29 > 100.0f && field_0x814.GetCCMoveP()->abs2XZ() > 100.0f) { - field_0x814.ClrCcMove(); + if (ropeStartRate > 0.0f && ropeStartRate < 1.0f && ropeStartDistXZ > 100.0f && ropeEndDistXZ > 100.0f && mCcStts.GetCCMoveP()->abs2XZ() > SQUARE(10.0f)) { + mCcStts.ClrCcMove(); - if ((field_0x814.GetCCMoveP()->atan2sX_Z() - shape_angle.y) > 0) { + if ((mCcStts.GetCCMoveP()->atan2sX_Z() - shape_angle.y) > 0) { return procWolfRopeHangInit(2); } else { return procWolfRopeHangInit(3); } } - field_0x814.ClrCcMove(); + mCcStts.ClrCcMove(); setWolfRopeOffsetY(setWolfRopePosY()); - if (checkSubjectEnd(1)) { + if (checkSubjectEnd(TRUE)) { int var_r27; - if (temp_r28->getFrame() >= 12.5f && temp_r28->getFrame() <= 14.5f) { + if (framectrl->getFrame() >= 12.5f && framectrl->getFrame() <= 14.5f) { var_r27 = 1; } else { var_r27 = 0; @@ -4954,8 +4976,7 @@ const cXyz* daAlink_c::checkMidnaLockJumpPoint() const { return NULL; } - daPy_py_c* player_p = daPy_getLinkPlayerActorClass(); - fopAc_ac_c* partner_p = fopAcM_getTalkEventPartner(player_p); + fopAc_ac_c* partner_p = fopAcM_getTalkEventPartner(daPy_getLinkPlayerActorClass()); fopAc_ac_c* wljump_p = NULL; if (checkWolfTagLockJumpReady()) { @@ -4977,30 +4998,31 @@ const cXyz* daAlink_c::checkMidnaLockJumpPoint() const { return NULL; } -int daAlink_c::procWolfTagJumpInit(fopAc_ac_c* param_0) { +int daAlink_c::procWolfTagJumpInit(fopAc_ac_c* i_tag) { commonProcInit(PROC_WOLF_TAG_JUMP); field_0x3480 = mpHIO->mWolf.mWlPoint.m.mTagJumpSpeed; field_0x3198 = 0; - if (param_0 == NULL) { + if (i_tag == NULL) { field_0x37c8.set(current.pos.x + (300.0f * cM_ssin(shape_angle.y)), current.pos.y + 200.0f, current.pos.z + (300.0f * cM_scos(shape_angle.y))); field_0x3480 = 30.0f; field_0x280c.clearData(); mProcVar1.field_0x300a = 0; field_0x3198 = 1; } else { - field_0x37c8 = *((daTagWljump_c*)param_0)->getLockPos(); + daTagWljump_c* tag = (daTagWljump_c*)i_tag; + field_0x37c8 = *tag->getLockPos(); cXyz sp14 = field_0x37c8 - current.pos; - f32 temp_f31 = ((daTagWljump_c*)param_0)->getLandArea() / sp14.absXZ(); + f32 temp_f31 = tag->getLandArea() / sp14.absXZ(); field_0x37c8.x -= sp14.x * temp_f31; field_0x37c8.z -= sp14.z * temp_f31; - field_0x280c.setData(param_0); - ((daTagWljump_c*)param_0)->onNextCheckFlg(); - mProcVar1.field_0x300a = ((daTagWljump_c*)param_0)->getNotSlideFlg(); + field_0x280c.setData(i_tag); + tag->onNextCheckFlg(); + mProcVar1.field_0x300a = tag->getNotSlideFlg(); } setSingleAnimeWolf(WANM_JUMP_ATTACK_START, mpHIO->mWolf.mWlAutoJump.m.mWeakJumpAnmSpeed, mpHIO->mWolf.mWlAutoJump.m.mJumpAnm.mStartFrame, mpHIO->mWolf.mWlAutoJump.m.mJumpAnm.mEndFrame, mpHIO->mWolf.mWlAutoJump.m.mJumpAnm.mInterpolation); @@ -5043,21 +5065,21 @@ int daAlink_c::procWolfTagJumpInit(fopAc_ac_c* param_0) { } int daAlink_c::procWolfTagJump() { - daTagWljump_c* temp_r29 = (daTagWljump_c*)field_0x280c.getActor(); - daPy_frameCtrl_c* temp_r28 = &mUnderFrameCtrl[0]; + daTagWljump_c* tag = (daTagWljump_c*)field_0x280c.getActor(); + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; mProcVar0.field_0x3008--; if (mProcVar0.field_0x3008 < 0) { - if (temp_r29 == NULL || temp_r29->getLockPos() == NULL || mProcVar0.field_0x3008 < -mpHIO->mWolf.mWlPoint.m.mLockJumpStopTime) { + if (tag == NULL || tag->getLockPos() == NULL || mProcVar0.field_0x3008 < -mpHIO->mWolf.mWlPoint.m.mLockJumpStopTime) { procWolfWaitInit(); } else { if (field_0x3198 == 0) { - onResetFlg0(RFLG0_UNK_20000); + onResetFlg0(RFLG0_WOLF_TAG_LOCK_JUMP_READY); } - field_0x3738 = *temp_r29->getLockPos(); - setDoStatus(0x93); + field_0x3738 = *tag->getLockPos(); + setDoStatus(BUTTON_STATUS_UNK_147); cLib_addCalcAngleS(&shape_angle.y, cLib_targetAngleY(¤t.pos, &field_0x3738), 2, 0x2000, 0x800); current.angle.y = shape_angle.y; @@ -5066,9 +5088,9 @@ int daAlink_c::procWolfTagJump() { mProcVar5.field_0x3012 = 1; } - if (mProcVar5.field_0x3012 && (checkModeFlg(0x100) || checkAnmEnd(temp_r28) || temp_r28->getFrame() > mpHIO->mWolf.mWlPoint.m.mLandingAnm.mCancelFrame)) { - procWolfTagJumpInit(temp_r29); - } else if (checkAnmEnd(temp_r28)) { + if (mProcVar5.field_0x3012 && (checkModeFlg(0x100) || checkAnmEnd(framectrl) || framectrl->getFrame() > mpHIO->mWolf.mWlPoint.m.mLandingAnm.mCancelFrame)) { + procWolfTagJumpInit(tag); + } else if (checkAnmEnd(framectrl)) { onModeFlg(0x100); setSingleAnimeWolfBaseSpeed(WANM_WAIT_B, mpHIO->mWolf.mWlPoint.m.mIdleAnmSpeed, mpHIO->mWolf.mWlPoint.m.mIdleInterpolation); } @@ -5086,7 +5108,7 @@ int daAlink_c::procWolfTagJump() { mProcVar2.field_0x300c = cM_atan2s(-speed.y, mNormalSpeed) >> 1; - if (checkUnderMove0BckNoArcWolf(WANM_JUMP_ATTACK_START) && checkAnmEnd(temp_r28)) { + if (checkUnderMove0BckNoArcWolf(WANM_JUMP_ATTACK_START) && checkAnmEnd(framectrl)) { field_0x2f99 = 0xC; setSingleAnimeWolfBaseSpeed(WANM_JUMP_ATTACK, 0.0f, mpHIO->mWolf.mWlAutoJump.m.mClimbAnm.mInterpolation); } @@ -5098,10 +5120,10 @@ int daAlink_c::procWolfTagJump() { current.pos = field_0x37c8; } - if (temp_r29 != NULL) { - if (temp_r29->getLockPos() != NULL) { - onResetFlg0(RFLG0_UNK_20000); - field_0x3738 = *temp_r29->getLockPos(); + if (tag != NULL) { + if (tag->getLockPos() != NULL) { + onResetFlg0(RFLG0_WOLF_TAG_LOCK_JUMP_READY); + field_0x3738 = *tag->getLockPos(); if (mProcVar1.field_0x300a != 0) { field_0x2f99 = 0x50; @@ -5115,7 +5137,7 @@ int daAlink_c::procWolfTagJump() { setFootEffectProcType(4); dComIfGp_getVibration().StartShock(2, 0xF, cXyz(0.0f, 1.0f, 0.0f)); } else { - procWolfTagJumpLandInit(temp_r29); + procWolfTagJumpLandInit(tag); } } else { procWolfTagJumpLandInit(NULL); @@ -5135,7 +5157,7 @@ int daAlink_c::procWolfTagJump() { return 1; } -int daAlink_c::procWolfTagJumpLandInit(fopAc_ac_c* param_0) { +int daAlink_c::procWolfTagJumpLandInit(fopAc_ac_c* i_tag) { commonProcInit(PROC_WOLF_TAG_JUMP_LAND); setSingleAnimeWolfParam(WANM_ATTACK_A_END_FRONT, &mpHIO->mWolf.mWlPoint.m.mTagLandingAnm); @@ -5148,8 +5170,8 @@ int daAlink_c::procWolfTagJumpLandInit(fopAc_ac_c* param_0) { speed.y = 0.0f; field_0x3588 = l_wolfBaseAnime; - if (param_0 != NULL) { - field_0x280c.setData(param_0); + if (i_tag != NULL) { + field_0x280c.setData(i_tag); } field_0x2f9d = 0x78; @@ -5165,11 +5187,11 @@ int daAlink_c::procWolfTagJumpLand() { daTagWljump_c* wljump_p = (daTagWljump_c*)field_0x280c.getActor(); if (wljump_p != NULL && wljump_p->getLockPos() != NULL) { - onResetFlg0(RFLG0_UNK_20000); + onResetFlg0(RFLG0_WOLF_TAG_LOCK_JUMP_READY); field_0x3738 = *wljump_p->getLockPos(); if (frameCtrl_p->getFrame() > mpHIO->mWolf.mWlPoint.m.mTagLandingAnm.mCancelFrame) { - setDoStatus(0x93); + setDoStatus(BUTTON_STATUS_UNK_147); if (doTrigger()) { return procWolfTagJumpInit(field_0x280c.getActor()); @@ -5202,7 +5224,7 @@ static fopAc_ac_c* daAlink_searchGiant(fopAc_ac_c* i_actor, void* i_data) { cXyz* gnd_chk_pos = static_cast(i_data); if (fopAcM_GetName(i_actor) == PROC_OBJ_SEKIZOA && - i_actor->current.pos.abs2(*gnd_chk_pos) < 40000.0f) + i_actor->current.pos.abs2(*gnd_chk_pos) < SQUARE(200.0f)) { return i_actor; } @@ -5211,6 +5233,8 @@ static fopAc_ac_c* daAlink_searchGiant(fopAc_ac_c* i_actor, void* i_data) { } static void* daAlink_searchGiantTalk(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); + if (fopAcM_GetName(i_actor) == PROC_OBJ_SEKIZOA && static_cast(i_actor)->getType() == 0) { @@ -5232,25 +5256,24 @@ int daAlink_c::procWolfGiantPuzzleInit() { mProcVar2.mPuzzleAimAngle = shape_angle.y; field_0x3478 = 0.0f; field_0x347c = mpHIO->mWolf.mWlMoveNoP.m.mDeceleration; - field_0x594 = mpHIO->mWolf.mWlMoveNoP.m.mMaxSpeed; + mMaxSpeed = mpHIO->mWolf.mWlMoveNoP.m.mMaxSpeed; offWolfEyeUp(); return 1; } int daAlink_c::procWolfGiantPuzzle() { - if (mSpecialMode == 0) { + if (mMode == 0) { return checkNextActionWolf(0); } if (!checkNoResetFlg0(FLG0_UNK_4000) && mProcVar2.field_0x300c == shape_angle.y && - mSpecialMode != 0x28 && checkZeroSpeedF()) + mMode != 0x28 && checkZeroSpeedF()) { - setDoStatusEmphasys(0x1C); + setDoStatusEmphasys(BUTTON_STATUS_SPEAK); if (doTrigger()) { - fopAc_ac_c* giant_p = - (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchGiantTalk, NULL); + fopAc_ac_c* giant_p = (fopAc_ac_c*)fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchGiantTalk, NULL); if (giant_p != NULL) { fopAcM_orderTalkEvent(this, giant_p, 0, 0); } @@ -5266,7 +5289,7 @@ int daAlink_c::procWolfGiantPuzzle() { fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchGiant, &gnd_chk_pos) == NULL) { field_0x347c = mpHIO->mWolf.mWlMoveNoP.m.mAcceleration; - field_0x3478 = field_0x594; + field_0x3478 = mMaxSpeed; } } else if (direction == DIR_LEFT) { mProcVar2.mPuzzleAimAngle += 0x4000; @@ -5318,7 +5341,7 @@ int daAlink_c::changeWolfHangEndProc() { if (current.pos.y < (field_0x33d8 + var_f1) - 1.0f) { return procWolfLandInit(); } else { - setDoStatus(0x33); + setDoStatus(BUTTON_STATUS_DROP_DOWN); if (doTrigger()) { current.pos.x -= cM_ssin(shape_angle.y) * 50.0f; @@ -5341,9 +5364,8 @@ int daAlink_c::procWolfHangReadyInit() { field_0x3198 = field_0x2f91; mProcVar2.field_0x300c = field_0x306e + 0x8000; - f32 tmp_0 = 0.0f; - mNormalSpeed = tmp_0; - speed.y = tmp_0; + mNormalSpeed = 0.0f; + speed.y = 0.0f; return 1; } @@ -5354,7 +5376,7 @@ int daAlink_c::procWolfHangReady() { cLib_addCalcAngleS(&shape_angle.y, mProcVar2.field_0x300c, 2, 0x1000, 0x400); current.angle.y = shape_angle.y; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { shape_angle.y = mProcVar2.field_0x300c; current.angle.y = shape_angle.y; @@ -5399,7 +5421,7 @@ int daAlink_c::procWolfHangWallCatchInit(int param_0) { shape_angle.y = field_0x306e + 0x8000; } else { sp18 = current.pos; - var_r29 = field_0x3174; + var_r29 = mGroundCode; } if (checkModeFlg(0x40000)) { @@ -5455,7 +5477,7 @@ int daAlink_c::procWolfHangWallCatch() { if (checkAnmEnd(frameCtrl_p)) { if (mProcVar3.field_0x300e == 0) { - if (field_0x3174 == 6) { + if (mGroundCode == 6) { if (mProcVar4.field_0x3010 == 0) { setSingleAnimeWolf(WANM_HANG, mpHIO->mWolf.mWlWallHang.m.mFallGrabAnm.mSpeed, 35.0f, mpHIO->mWolf.mWlWallHang.m.mFallGrabAnm.mEndFrame, @@ -5487,14 +5509,14 @@ int daAlink_c::procWolfHangWallCatch() { return 1; } -int daAlink_c::procWolfHangFallStartInit(cM3dGPla* param_0) { +int daAlink_c::procWolfHangFallStartInit(cM3dGPla* i_tripla) { if (mProcID == PROC_WOLF_HANG_WALL_CATCH || checkNoResetFlg1(FLG1_UNK_20)) { return 0; } - s16 var_r30 = param_0->mNormal.atan2sX_Z(); - current.pos.x -= param_0->mNormal.x * 1.5f; - current.pos.z -= param_0->mNormal.z * 1.5f; + s16 var_r30 = i_tripla->mNormal.atan2sX_Z(); + current.pos.x -= i_tripla->mNormal.x * 1.5f; + current.pos.z -= i_tripla->mNormal.z * 1.5f; checkHangStartSideWall(var_r30); @@ -5568,14 +5590,14 @@ int daAlink_c::procWolfHangFallStart() { } void daAlink_c::setWolfHeadDamage() { - setUpperAnimeParam(0x2A7, UPPER_2, &mpHIO->mWolf.mWlDamage.m.mRunningAnm); + setUpperAnimeParam(dRes_ID_ALANM_BCK_WL_DAM_e, UPPER_2, &mpHIO->mWolf.mWlDamage.m.mRunningAnm); seStartOnlyReverb(Z2SE_AL_DAMAGE_NORMAL); freeGrabItem(); - setFacePriTexture(FTANM_UNK_90); + setFacePriTexture(FTANM_WL_DAM); voiceStart(Z2SE_WL_V_DAMAGE); } -int daAlink_c::procWolfDamageInit(dCcD_GObjInf* param_0) { +int daAlink_c::procWolfDamageInit(dCcD_GObjInf* i_hitObj) { commonProcInit(PROC_WOLF_DAMAGE); cXyz sp14; @@ -5583,8 +5605,8 @@ int daAlink_c::procWolfDamageInit(dCcD_GObjInf* param_0) { f32 temp_f30 = cM_scos(shape_angle.y); cXyz* var_r30; - if (param_0 != NULL) { - var_r30 = getDamageVec(param_0); + if (i_hitObj != NULL) { + var_r30 = getDamageVec(i_hitObj); } else { sp14.set(cM_ssin(field_0x311e), 0.0f, cM_scos(field_0x311e)); var_r30 = &sp14; @@ -5592,14 +5614,14 @@ int daAlink_c::procWolfDamageInit(dCcD_GObjInf* param_0) { cXyz sp8((var_r30->z * -temp_f31) + (var_r30->x * temp_f30), var_r30->y, (var_r30->z * temp_f30) + (var_r30->x * temp_f31)); - int temp_r3 = getDirectionFromAngle(cM_atan2s(-sp8.x, -sp8.z)); - if (temp_r3 == DIR_FORWARD) { + int direction = getDirectionFromAngle(cM_atan2s(-sp8.x, -sp8.z)); + if (direction == DIR_FORWARD) { setSingleAnimeWolfParam(WANM_DMG_FRONT, &mpHIO->mWolf.mWlDamage.mNormal.m.mForwardAnm); field_0x3478 = mpHIO->mWolf.mWlDamage.mNormal.m.mForwardAnm.mCancelFrame; - } else if (temp_r3 == DIR_BACKWARD) { + } else if (direction == DIR_BACKWARD) { setSingleAnimeWolfParam(WANM_DMG_BACK, &mpHIO->mWolf.mWlDamage.mNormal.m.mBackwardAnm); field_0x3478 = mpHIO->mWolf.mWlDamage.mNormal.m.mBackwardAnm.mCancelFrame; - } else if (temp_r3 == DIR_LEFT) { + } else if (direction == DIR_LEFT) { setSingleAnimeWolfParam(WANM_DMG_LEFT, &mpHIO->mWolf.mWlDamage.mNormal.m.mLeftAnm); field_0x3478 = mpHIO->mWolf.mWlDamage.mNormal.m.mLeftAnm.mCancelFrame; } else { @@ -5607,7 +5629,7 @@ int daAlink_c::procWolfDamageInit(dCcD_GObjInf* param_0) { field_0x3478 = mpHIO->mWolf.mWlDamage.mNormal.m.mRightAnm.mCancelFrame; } - setFaceBasicTexture(FTANM_UNK_90); + setFaceBasicTexture(FTANM_WL_DAM); current.angle.y = var_r30->atan2sX_Z(); mProcVar4.field_0x3010 = current.angle.y; @@ -5619,12 +5641,12 @@ int daAlink_c::procWolfDamageInit(dCcD_GObjInf* param_0) { field_0x3588 = l_wolfBaseAnime; - if (param_0 == NULL || (param_0->GetTgHitGObj() != NULL && param_0->GetTgHitGObj()->GetAtMtrl() == dCcD_MTRL_ICE)) { + if (i_hitObj == NULL || (i_hitObj->GetTgHitGObj() != NULL && i_hitObj->GetTgHitGObj()->GetAtMtrl() == dCcD_MTRL_ICE)) { mUnderFrameCtrl[0].setRate(mpHIO->mWolf.mWlDamage.mNormal.m.mIceDamageAnmSpeed); mUnderFrameCtrl[0].setEnd(3); mNormalSpeed = 0.0f; mProcVar0.field_0x3008 = 90; - onNoResetFlg1(FLG1_ICE_FREEZE); + onNoResetFlg1(FLG1_FREEZE_DAMAGE); seStartOnlyReverb(Z2SE_AL_FREEZE); voiceStart(Z2SE_WL_V_DAMAGE_FREEZE); @@ -5675,11 +5697,11 @@ int daAlink_c::procWolfLargeDamageUpInit(int param_0, int param_1, s16 param_2, return 0; } - const daAlinkHIO_wlDamLaHu_c1* var_r30; + const daAlinkHIO_wlDamLaHu_c1* anmParams; if (param_1 != 0) { - var_r30 = &mpHIO->mWolf.mWlDamage.mLarge.m; + anmParams = &mpHIO->mWolf.mWlDamage.mLarge.m; } else { - var_r30 = &mpHIO->mWolf.mWlDamage.mHuge.m; + anmParams = &mpHIO->mWolf.mWlDamage.mHuge.m; } field_0x3198 = 0; @@ -5691,11 +5713,11 @@ int daAlink_c::procWolfLargeDamageUpInit(int param_0, int param_1, s16 param_2, f32 var_f31, var_f30, var_f29; + daAlink_WANM anm; + s16 var_r27; if (param_0 < 0) { - daAlink_WANM var_r28; - s16 var_r27; if (param_0 == -3) { - var_r28 = WANM_DMG_AIR_FRONT_GETUP; + anm = WANM_DMG_AIR_FRONT_GETUP; var_f29 = 0.0f; var_r27 = -1; @@ -5717,7 +5739,7 @@ int daAlink_c::procWolfLargeDamageUpInit(int param_0, int param_1, s16 param_2, var_f30 = mpHIO->mWolf.mWlDamage.mLarge.m.mFrontRiseAnm.mInterpolation; } - var_r28 = WANM_DMG_AIR_FRONT_GETUP; + anm = WANM_DMG_AIR_FRONT_GETUP; var_f29 = 16.0f; var_r27 = -1; @@ -5743,8 +5765,8 @@ int daAlink_c::procWolfLargeDamageUpInit(int param_0, int param_1, s16 param_2, } mProcVar2.field_0x300c = 1; - setSingleAnimeWolf(var_r28, var_f31, var_f29, var_r27, var_f30); - setFaceBasicTexture(FTANM_UNK_92); + setSingleAnimeWolf(anm, var_f31, var_f29, var_r27, var_f30); + setFaceBasicTexture(FTANM_WL_DAMFFBUP); field_0x347c = 9.0f; field_0x3484 = 13.0f; } else { @@ -5754,28 +5776,28 @@ int daAlink_c::procWolfLargeDamageUpInit(int param_0, int param_1, s16 param_2, field_0x2f9d = 4; if (param_0 == 0x29) { - setSingleAnimeWolfParam(WANM_DMG_AIR_BACK_GETUP, &var_r30->mBackRiseAnm); - setFaceBasicTexture(FTANM_UNK_92); - field_0x3478 = var_r30->mBackRiseAnm.mCancelFrame; + setSingleAnimeWolfParam(WANM_DMG_AIR_BACK_GETUP, &anmParams->mBackRiseAnm); + setFaceBasicTexture(FTANM_WL_DAMFFBUP); + field_0x3478 = anmParams->mBackRiseAnm.mCancelFrame; field_0x347c = 16.0f; field_0x3198 = 1; field_0x3484 = 15.0; } else if (param_0 == 0x2A) { - setSingleAnimeWolfParam(WANM_DMG_AIR_LEFT_GETUP, &var_r30->mLeftRiseAnm); - setFaceBasicTexture(FTANM_UNK_93); - field_0x3478 = var_r30->mLeftRiseAnm.mCancelFrame; + setSingleAnimeWolfParam(WANM_DMG_AIR_LEFT_GETUP, &anmParams->mLeftRiseAnm); + setFaceBasicTexture(FTANM_WL_DAMFLRUP); + field_0x3478 = anmParams->mLeftRiseAnm.mCancelFrame; field_0x347c = 11.0f; field_0x3484 = 13.0f; } else if (param_0 == 0x2B) { - setSingleAnimeWolfParam(WANM_DMG_AIR_RIGHT_GETUP, &var_r30->mRightRiseAnm); - setFaceBasicTexture(FTANM_UNK_93); - field_0x3478 = var_r30->mRightRiseAnm.mCancelFrame; + setSingleAnimeWolfParam(WANM_DMG_AIR_RIGHT_GETUP, &anmParams->mRightRiseAnm); + setFaceBasicTexture(FTANM_WL_DAMFLRUP); + field_0x3478 = anmParams->mRightRiseAnm.mCancelFrame; field_0x347c = 11.0f; field_0x3484 = 13.0f; } else { - setSingleAnimeWolfParam(WANM_DMG_AIR_FRONT_GETUP, &var_r30->mFrontRiseAnm); - setFaceBasicTexture(FTANM_UNK_92); - field_0x3478 = var_r30->mFrontRiseAnm.mCancelFrame; + setSingleAnimeWolfParam(WANM_DMG_AIR_FRONT_GETUP, &anmParams->mFrontRiseAnm); + setFaceBasicTexture(FTANM_WL_DAMFFBUP); + field_0x3478 = anmParams->mFrontRiseAnm.mCancelFrame; field_0x347c = 9.0f; field_0x3484 = 13.0f; } @@ -5796,7 +5818,7 @@ int daAlink_c::procWolfLargeDamageUpInit(int param_0, int param_1, s16 param_2, } int daAlink_c::procWolfLargeDamageUp() { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; mProcVar4.field_0x3010 = 0; if (mProcVar2.field_0x300c == 0) { @@ -5806,7 +5828,7 @@ int daAlink_c::procWolfLargeDamageUp() { } if (field_0x3198 != 0) { - f32 temp_f31 = 2.0f * (0.5f - (field_0x3480 * temp_r29->getFrame())); + f32 temp_f31 = 2.0f * (0.5f - (field_0x3480 * framectrl->getFrame())); field_0x3588.x = l_wolfBaseAnime.x * temp_f31; field_0x3588.z = l_wolfBaseAnime.z * temp_f31; } @@ -5815,7 +5837,7 @@ int daAlink_c::procWolfLargeDamageUp() { if (checkNoResetFlg2(FLG2_PRESSED_DAMAGE)) { return 1; } - temp_r29->setRate(mpHIO->mWolf.mWlDamage.mLarge.m.mFrontRiseAnm.mSpeed); + framectrl->setRate(mpHIO->mWolf.mWlDamage.mLarge.m.mFrontRiseAnm.mSpeed); } if (mProcVar0.field_0x3008 > 0) { @@ -5823,36 +5845,36 @@ int daAlink_c::procWolfLargeDamageUp() { if (mProcVar0.field_0x3008 == 0) { mProcVar0.field_0x3008 = -1; - temp_r29->setRate(mpHIO->mWolf.mWlDamage.m.mReturnWakeupAnmSpeed); - temp_r29->offEndFlg(); + framectrl->setRate(mpHIO->mWolf.mWlDamage.m.mReturnWakeupAnmSpeed); + framectrl->offEndFlg(); } } else { - if (mProcVar3.field_0x300e != 0 && temp_r29->checkPass(24.0f)) { + if (mProcVar3.field_0x300e != 0 && framectrl->checkPass(24.0f)) { voiceStart(Z2SE_WL_V_RESTART); } - if (temp_r29->getFrame() > field_0x347c) { + if (framectrl->getFrame() > field_0x347c) { offModeFlg(0x8000); } - if (checkAnmEnd(temp_r29)) { + if (checkAnmEnd(framectrl)) { if (mProcVar5.field_0x3012 != 0) { - daMidna_c* temp_r3_2 = (daMidna_c*)getMidnaActor(); - if (temp_r3_2->checkDemoPortalWarpWait()) { - temp_r3_2->changeDemoMode(0xD); + daMidna_c* midna = (daMidna_c*)getMidnaActor(); + if (midna->checkDemoPortalWarpWait()) { + midna->changeDemoMode(13); return procWolfMidnaRideShockInit(); } } - if (mDemo.getDemoMode() == 0x1B || mDemo.getDemoMode() == 9) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_27_e || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_9_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextActionWolf(0); } - } else if (temp_r29->getFrame() > field_0x3478) { + } else if (framectrl->getFrame() > field_0x3478) { checkNextActionWolf(1); - } else if (checkEndResetFlg1(ERFLG1_LARGE_DAMAGE_UP_STOP) && temp_r29->getFrame() > field_0x3484) { - temp_r29->setFrame(field_0x3484); + } else if (checkEndResetFlg1(ERFLG1_LARGE_DAMAGE_UP_STOP) && framectrl->getFrame() > field_0x3484) { + framectrl->setFrame(field_0x3484); getNowAnmPackUnder(UNDER_0)->setFrame(field_0x3484); } } @@ -5897,7 +5919,7 @@ int daAlink_c::procWolfLandDamageInit(int param_0) { setSingleAnimeWolf(WANM_FALL_LAND, mpHIO->mWolf.mWlDamage.mFall.m.mLandingAnm.mSpeed, var_f31, mpHIO->mWolf.mWlDamage.mFall.m.mLandingAnm.mEndFrame, mpHIO->mWolf.mWlDamage.mFall.m.mLandingAnm.mInterpolation); - setFaceBasicTexture(FTANM_UNK_95); + setFaceBasicTexture(FTANM_WL_LANDDAMA); field_0x3198 = 0; field_0x2f9d = 4; setFootEffectProcType(4); @@ -5908,17 +5930,17 @@ int daAlink_c::procWolfLandDamage() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; if (field_0x3198 != 0) { - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextActionWolf(0); } else if (frameCtrl->getFrame() > mpHIO->mWolf.mWlDamage.mFall.m.mRightRiseAnm.mCancelFrame) { checkNextActionWolf(1); } - } else if (frameCtrl->checkAnmEnd()) { + } else if (checkAnmEnd(frameCtrl)) { if (mProcVar0.field_0x3008 > 0) { mProcVar0.field_0x3008--; } else { setSingleAnimeWolfParam(WANM_FALL_LAND_START, &mpHIO->mWolf.mWlDamage.mFall.m.mRightRiseAnm); - setFaceBasicTexture(FTANM_UNK_96); + setFaceBasicTexture(FTANM_WL_LANDDAMAST); field_0x3198 = 1; } } @@ -5928,7 +5950,7 @@ int daAlink_c::procWolfLandDamage() { void daAlink_c::setWolfScreamWaitAnime() { setSingleAnimeWolfBase(WANM_WAIT_STUNNED); - setFaceBasicTexture(FTANM_UNK_91); + setFaceBasicTexture(FTANM_WL_B_A); voiceStart(Z2SE_WL_V_TERRORED); mProcVar2.field_0x300c = 1; @@ -5955,11 +5977,11 @@ int daAlink_c::procWolfScreamWaitInit() { int daAlink_c::procWolfScreamWait() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - if (!checkEndResetFlg1(ERFLG1_UNK_1)) { + if (!checkEndResetFlg1(ERFLG1_NS_SCREAM)) { if (mProcVar3.field_0x300e != 0) { field_0x2f99 = 5; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextActionWolf(0); } else if (frameCtrl->getFrame() > mpHIO->mWolf.mWlDamage.mLarge.m.mFrontRiseAnm.mCancelFrame) { checkNextActionWolf(1); @@ -6106,8 +6128,8 @@ int daAlink_c::procWolfLieStart() { } int daAlink_c::procWolfLieMoveInit(int param_0) { - BOOL var_r30 = mProcID == PROC_TALK; - BOOL var_r29 = checkUnderMove0BckNoArcWolf(WANM_CROUCH_WALK) == FALSE; + BOOL is_prev_talk = mProcID == PROC_TALK; + BOOL is_no_crouchWalk = checkUnderMove0BckNoArcWolf(WANM_CROUCH_WALK) == FALSE; BOOL var_r28; if (dComIfGp_checkPlayerStatus0(0, 0x2000)) { var_r28 = TRUE; @@ -6121,16 +6143,16 @@ int daAlink_c::procWolfLieMoveInit(int param_0) { mProcVar3.field_0x300e = 0; - if (!var_r29) { - if (var_r30) { - var_r29 = true; + if (!is_no_crouchWalk) { + if (is_prev_talk) { + is_no_crouchWalk = true; } else { onModeFlg(0x6000); } } else { f32 anm_speed = getWolfLieMoveAnmSpeed(); - if (mDemo.getDemoMode() == 0x2C) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_44_e) { anm_speed = 0.0f; } else if (param_0) { mProcVar3.field_0x300e = 1; @@ -6143,8 +6165,8 @@ int daAlink_c::procWolfLieMoveInit(int param_0) { setSingleAnimeWolfBaseSpeed(WANM_CROUCH_WALK, anm_speed, mpHIO->mWolf.mWlLie.m.mProneMoveInterp); } - field_0x3198 = var_r29 ^ 1; - mProcVar4.field_0x3010 = var_r30; + field_0x3198 = is_no_crouchWalk ^ 1; + mProcVar4.field_0x3010 = is_prev_talk; field_0x2f99 = 0xD; dComIfGp_setPlayerStatus0(0, 0x8000000); @@ -6162,7 +6184,7 @@ int daAlink_c::procWolfLieMoveInit(int param_0) { } int daAlink_c::procWolfLieMove() { - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; cXyz sp64; cXyz sp58; @@ -6204,26 +6226,26 @@ int daAlink_c::procWolfLieMove() { int var_r27 = 0; f32 temp_f31 = getWolfLieMoveAnmSpeed(); - if (temp_r29->getRate() > 0.0f) { - temp_r29->setRate(temp_f31); - } else if (temp_r29->getRate() < 0.0f) { - temp_r29->setRate(-temp_f31); + if (framectrl->getRate() > 0.0f) { + framectrl->setRate(temp_f31); + } else if (framectrl->getRate() < 0.0f) { + framectrl->setRate(-temp_f31); } else { var_r27 = 1; } - if (var_r27 == 1 || temp_r29->checkPass(0.0f) || temp_r29->checkPass(15.0f)) { + if (var_r27 == 1 || framectrl->checkPass(0.0f) || framectrl->checkPass(15.0f)) { if (mProcVar3.field_0x300e != 0) { mProcVar3.field_0x300e--; - temp_r29->setRate(temp_f31); - temp_r29->setLoop(0); + framectrl->setRate(temp_f31); + framectrl->setLoop(0); } else if (checkInputOnR()) { if (getDirectionFromShapeAngle() != 1) { - temp_r29->setRate(temp_f31); - temp_r29->setLoop(0); + framectrl->setRate(temp_f31); + framectrl->setLoop(0); } else { - temp_r29->setRate(-temp_f31); - temp_r29->setLoop(temp_r29->getEnd()); + framectrl->setRate(-temp_f31); + framectrl->setLoop(framectrl->getEnd()); } initBasAnime(); @@ -6245,9 +6267,9 @@ int daAlink_c::procWolfLieMove() { return 1; } else if (mProcVar3.field_0x300e == 0 && checkInputOnR()) { if (getWolfLieMoveSpeed() >= 0.0f) { - spA = field_0x2fe2; + spA = mMoveAngle; } else { - spA = field_0x2fe2 + 0x8000; + spA = mMoveAngle + 0x8000; } cLib_addCalcAngleS(&shape_angle.y, spA, mpHIO->mWolf.mWlLie.m.mProneTurnRate, mpHIO->mWolf.mWlLie.m.mProneTurnMax, mpHIO->mWolf.mWlLie.m.mProneTurnMin); @@ -6281,7 +6303,13 @@ int daAlink_c::procWolfLieMove() { } int daAlink_c::procWolfLieAutoMoveInit(int param_0, cXyz* param_1) { - BOOL var_r30 = dComIfGp_checkPlayerStatus0(0, 0x2000) != 0 ? TRUE : FALSE; + BOOL var_r30; + if (dComIfGp_checkPlayerStatus0(0, 0x2000)) { + var_r30 = TRUE; + } else { + var_r30 = FALSE; + } + commonProcInit(PROC_WOLF_LIE_AUTO_MOVE); field_0x37c8 = *param_1; @@ -6305,17 +6333,17 @@ int daAlink_c::procWolfLieAutoMoveInit(int param_0, cXyz* param_1) { int daAlink_c::procWolfLieAutoMove() { field_0x2f99 = 0xD; - daPy_frameCtrl_c* temp_r29 = &mUnderFrameCtrl[0]; + daPy_frameCtrl_c* framectrl = &mUnderFrameCtrl[0]; s16 temp_r27 = shape_angle.y; s16 temp_r26 = current.angle.y; setWolfLieMoveVoice(1); if (mProcVar0.field_0x3008 > 0) { - if (temp_r29->checkPass(0.0f) || temp_r29->checkPass(15.0f)) { + if (framectrl->checkPass(0.0f) || framectrl->checkPass(15.0f)) { stopHalfMoveAnime(15.0f); mNormalSpeed = 0.0f; - } else if (checkAnmEnd(temp_r29)) { + } else if (checkAnmEnd(framectrl)) { mNormalSpeed = 0.0f; mProcVar0.field_0x3008--; } @@ -6334,11 +6362,11 @@ int daAlink_c::procWolfLieAutoMove() { dComIfGp_setAdvanceDirection(0); if (shape_angle.y == current.angle.y) { - temp_r29->setRate(2.0f); - temp_r29->setLoop(0); + framectrl->setRate(2.0f); + framectrl->setLoop(0); } else { - temp_r29->setRate(-2.0f); - temp_r29->setLoop(temp_r29->getEnd()); + framectrl->setRate(-2.0f); + framectrl->setLoop(framectrl->getEnd()); } initBasAnime(); @@ -6391,25 +6419,26 @@ int daAlink_c::procWolfLieAutoMove() { void daAlink_c::setSpeedAndAngleSwimWolf() { if (checkWolfDashMode()) { - field_0x594 = mpHIO->mWolf.mWlSwim.m.mMaxSpeed; + mMaxSpeed = mpHIO->mWolf.mWlSwim.m.mMaxSpeed; } else { - field_0x594 = mpHIO->mWolf.mWlSwim.m.mMaxSpeedWeak; + mMaxSpeed = mpHIO->mWolf.mWlSwim.m.mMaxSpeedWeak; } - f32 var_f31; + f32 speed; + s16 prev_angle; if (checkInputOnR()) { - s16 prev_angle = current.angle.y; - cLib_addCalcAngleS(¤t.angle.y, field_0x2fe2, mpHIO->mWolf.mWlSwim.m.mTurnRate, + prev_angle = current.angle.y; + cLib_addCalcAngleS(¤t.angle.y, mMoveAngle, mpHIO->mWolf.mWlSwim.m.mTurnRate, mpHIO->mWolf.mWlSwim.m.mTurnMax, mpHIO->mWolf.mWlSwim.m.mTurnMin); - var_f31 = field_0x33a8 * 3.0f * cM_scos(current.angle.y - prev_angle); + speed = mStickValue * 3.0f * cM_scos(current.angle.y - prev_angle); shape_angle.y = current.angle.y; } else { - var_f31 = 0.0f; + speed = 0.0f; } if (checkWolfSwimDashAnime()) { - var_f31 = 3.0f; + speed = 3.0f; } if (checkAttentionState() && mProcID == PROC_WOLF_SWIM_WAIT) { @@ -6424,7 +6453,7 @@ void daAlink_c::setSpeedAndAngleSwimWolf() { current.angle.y = shape_angle.y; } - setNormalSpeedF(var_f31, mpHIO->mWolf.mWlSwim.m.mDeceleration); + setNormalSpeedF(speed, mpHIO->mWolf.mWlSwim.m.mDeceleration); if (dComIfGp_checkPlayerStatus0(0, 0x10)) { mNormalSpeed = 0.0f; @@ -6432,22 +6461,18 @@ void daAlink_c::setSpeedAndAngleSwimWolf() { } f32 daAlink_c::getWolfSwimMoveAnmSpeed() { - f32 anm_speed = fabsf(mNormalSpeed) / field_0x594; + f32 anm_speed = fabsf(mNormalSpeed) / mMaxSpeed; if (anm_speed > 1.0f) { anm_speed = 1.0f; } if (checkWolfDashMode()) { - anm_speed = - mpHIO->mWolf.mWlSwim.m.mMoveMinAnmSpeed + + return mpHIO->mWolf.mWlSwim.m.mMoveMinAnmSpeed + anm_speed * (mpHIO->mWolf.mWlSwim.m.mMoveMaxAnmSpeed - mpHIO->mWolf.mWlSwim.m.mMoveMinAnmSpeed); } else { - anm_speed = - mpHIO->mWolf.mWlSwim.m.mMoveMinAnmSpeedWeak + + return mpHIO->mWolf.mWlSwim.m.mMoveMinAnmSpeedWeak + anm_speed * (mpHIO->mWolf.mWlSwim.m.mMoveMaxAnmSpeedWeak - mpHIO->mWolf.mWlSwim.m.mMoveMinAnmSpeedWeak); } - - return anm_speed; } int daAlink_c::decideDoStatusSwimWolf() { @@ -6458,15 +6483,15 @@ int daAlink_c::decideDoStatusSwimWolf() { } if (field_0x27f4 != NULL && fopAcM_GetName(field_0x27f4) == PROC_Obj_Drop) { - setDoStatus(0x39); + setDoStatus(BUTTON_STATUS_UNK_57); if (doTrigger()) { fopAcM_setCarryNow(field_0x27f4, 0); - onResetFlg0(RFLG0_UNK_8000); + onResetFlg0(RFLG0_GRAB_UP_START); } } else if (checkNoResetFlg0(FLG0_SWIM_UP) && field_0x30d2 == 0 && !checkWolfSwimDashAnime() && mProcID == PROC_WOLF_SWIM_MOVE) { - setDoStatus(9); + setDoStatus(BUTTON_STATUS_DASH); if (doTrigger()) { onNoResetFlg1(FLG1_DASH_MODE); @@ -6500,7 +6525,7 @@ int daAlink_c::procWolfSwimUpInit() { mZ2Link.setInWater(false); setSingleAnimeWolfParam(WANM_SWIM_RESURFACE, &mpHIO->mWolf.mWlSwim.m.mSurfacingAnm); - setFaceBasicTexture(FTANM_UNK_8E); + setFaceBasicTexture(FTANM_WL_SWIMP); dComIfGp_setPlayerStatus0(0, 0x100000); seStartMapInfo(Z2SE_WL_OUTOF_WATER); mProcVar5.field_0x3012 = 1; @@ -6511,7 +6536,7 @@ int daAlink_c::procWolfSwimUp() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; setNormalSpeedF(0.0f, mpHIO->mWolf.mWlSwim.m.mDeceleration); - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { procWolfSwimWaitInit(0); } else if (checkInputOnR() && frameCtrl->getFrame() > mpHIO->mWolf.mWlSwim.m.mSurfacingAnm.mCancelFrame) @@ -6562,7 +6587,7 @@ int daAlink_c::procWolfSwimWaitInit(int param_0) { } int daAlink_c::procWolfSwimWait() { - if (mDemo.getDemoMode() == 6 || mDemo.getDemoMode() == 8) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_6_e || mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_8_e) { setShapeAngleToTalkActor(); current.angle.y = shape_angle.y; } @@ -6608,8 +6633,10 @@ int daAlink_c::procWolfSwimMoveInit() { int daAlink_c::procWolfSwimMove() { setSpeedAndAngleSwimWolf(); + daPy_frameCtrl_c* framectrl = mUnderFrameCtrl; + if (!checkWolfSwimDashAnime()) { - mUnderFrameCtrl[0].setRate(getWolfSwimMoveAnmSpeed()); + framectrl->setRate(getWolfSwimMoveAnmSpeed()); } if (checkSwimUpAction()) { @@ -6648,13 +6675,13 @@ int daAlink_c::procWolfSwimMove() { int daAlink_c::procWolfSwimEndWaitInit(int param_0) { commonProcInit(PROC_WOLF_SWIM_END_WAIT); setSingleAnimeWolfParam(WANM_WAIT_SHAKE, &mpHIO->mWolf.mWlSwim.m.mWaterSplashIdleAnm); - setFaceBasicTexture(FTANM_UNK_8F); + setFaceBasicTexture(FTANM_WL_SWAITB); mDoMtx_multVecZero(mpLinkModel->getAnmMtx(3), &field_0x37c8); if (param_0 == 0) { mProcVar3.field_0x300e = 0; - } else if (field_0x2fbb == 13) { + } else if (mGndPolyAtt0 == 13) { mProcVar3.field_0x300e = 2; } else { mProcVar3.field_0x300e = 1; @@ -6712,36 +6739,39 @@ int daAlink_c::procWolfSwimEndWait() { return 1; } -bool daAlink_c::onWolfEnemyBiteAll(fopAc_ac_c* param_0, daPy_py_c::daPy_FLG2 param_1) { +bool daAlink_c::onWolfEnemyBiteAll(fopAc_ac_c* i_enemy, daPy_py_c::daPy_FLG2 i_flag) { if (field_0x281c.getActor() != NULL) { return 0; } - if (param_1 == 8) { - if (mCutType != 0x2C && mCutType != 0x2D && mCutType != 0x31 && mCutType != 0x39 && - mCutType != 0x32) + if (i_flag == FLG2_UNK_8) { + if (mCutType != CUT_TYPE_WOLF_B_LEFT && + mCutType != CUT_TYPE_WOLF_B_RIGHT && + mCutType != CUT_TYPE_WOLF_JUMP_S && + mCutType != CUT_TYPE_WOLF_JUMP && + mCutType != CUT_TYPE_WOLF_JUMP_S_FINISH) { return 0; } - } else if (mCutType != 0x39) { + } else if (mCutType != CUT_TYPE_WOLF_JUMP) { return 0; } - onNoResetFlg2(param_1); - field_0x281c.setData(param_0); + onNoResetFlg2(i_flag); + field_0x281c.setData(i_enemy); return 1; } void daAlink_c::resetWolfEnemyBiteAll() { field_0x281c.clearData(); - offNoResetFlg2(FLG2_UNK_58); + offNoResetFlg2(daPy_FLG2(FLG2_WOLF_ENEMY_HANG_BITE | FLG2_UNK_10 | FLG2_UNK_8)); } void daAlink_c::checkWolfEnemyThrowAction() { daPy_frameCtrl_c* frameCtrl = &mUpperFrameCtrl[2]; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { resetUpperAnime(UPPER_2, 3.0f); } else if (frameCtrl->checkPass(17.0f)) { resetWolfEnemyBiteAll(); @@ -6751,9 +6781,9 @@ void daAlink_c::checkWolfEnemyThrowAction() { void daAlink_c::setWolfLockDomeModel() { JKRHeap* prev_heap = setItemHeap(); - mHeldItemModel = initModel(loadAramBmd(799, 0x1C00), 0x200); - field_0x0718 = loadAramItemBtk(0x3A6, mHeldItemModel); - field_0x0724 = loadAramItemBrk(0x324, mHeldItemModel); + mHeldItemModel = initModel(loadAramBmd(dRes_ID_ALANM_BMD_S_BALL_YAMI_e, 0x1C00), 0x200); + field_0x0718 = loadAramItemBtk(dRes_ID_ALANM_BTK_S_BALL_YAMI_e, mHeldItemModel); + field_0x0724 = loadAramItemBrk(dRes_ID_ALANM_BRK_S_BALL_YAMI_e, mHeldItemModel); mDoExt_setCurrentHeap(prev_heap); mEquipItem = 0x109; @@ -6800,21 +6830,23 @@ void daAlink_c::resetWolfBallGrab() { resetUpperAnime(UPPER_2, 3.0f); } - dComIfGp_particle_setColor(0x86CE, &mHeldItemRootPos, &tevStr, NULL, NULL, 0.0f, 0xFF); - dComIfGp_particle_setColor(0x86CF, &mHeldItemRootPos, &tevStr, NULL, NULL, 0.0f, 0xFF); + dComIfGp_particle_setColor(dPa_RM(ID_ZI_S_ID_SETC_A), &mHeldItemRootPos, &tevStr, NULL, NULL, 0.0f, 0xFF); + dComIfGp_particle_setColor(dPa_RM(ID_ZI_S_ID_SETC_B), &mHeldItemRootPos, &tevStr, NULL, NULL, 0.0f, 0xFF); onEndResetFlg0(ERFLG0_UNK_20000000); offNoResetFlg3(FLG3_UNK_200000); } } void daAlink_c::checkWolfLockData() { - for (int i = 0; i < 10; i++) { + int i; + int var_r29; + + for (i = 0; i < 10; i++) { mWolfLockAcKeep[i].setActor(); } - for (int i = 0; i < mWolfLockNum; i++) { + for (i = 0; i < mWolfLockNum; i++) { if (mWolfLockAcKeep[i].getActor() == NULL) { - int var_r29; for (var_r29 = i; var_r29 < mWolfLockNum - 1; var_r29++) { mWolfLockAcKeep[var_r29].setData(mWolfLockAcKeep[var_r29 + 1].getActor()); } @@ -6854,22 +6886,21 @@ fopAc_ac_c* daAlink_c::getWolfLockActorEnd() { } void daAlink_c::searchWolfLockEnemy(fopAc_ac_c* i_actor, void* i_data) { - fopAc_ac_c** lock_actor_pp = (fopAc_ac_c**)i_data; - for (int i = 0; i < mWolfLockNum; i++) { if (mWolfLockAcKeep[i].getActor() == i_actor) { return; } } - fopEn_enemy_c* enemy_p = static_cast(i_actor); - if (fopAcM_GetGroup(enemy_p) == 2 && enemy_p->attention_info.flags & (fopAc_AttnFlag_BATTLE_e | fopAc_AttnFlag_LOCK_e) && - !enemy_p->checkWolfNoLock()) + if (fopAcM_GetGroup(i_actor) == fopAc_ENEMY_e && i_actor->attention_info.flags & (fopAc_AttnFlag_BATTLE_e | fopAc_AttnFlag_LOCK_e) && + !((fopEn_enemy_c*)i_actor)->checkWolfNoLock()) { - f32 dist_to_enemy = current.pos.abs2(enemy_p->eyePos); + f32 enemy_dist2 = current.pos.abs2(i_actor->eyePos); - if (enemy_p->eyePos.y >= current.pos.y - 50.0f && dist_to_enemy < field_0x3478) { - field_0x3478 = dist_to_enemy; + if (i_actor->eyePos.y >= current.pos.y - 50.0f && enemy_dist2 < field_0x3478) { + field_0x3478 = enemy_dist2; + + fopAc_ac_c** lock_actor_pp = (fopAc_ac_c**)i_data; *lock_actor_pp = i_actor; } } @@ -6882,14 +6913,21 @@ static int daAlink_searchWolfLockEnemy(fopAc_ac_c* i_actor, void* i_data) { void daAlink_c::checkWolfComboCnt() { if (!dComIfGp_checkPlayerStatus1(0, 0x1000000)) { - if (mComboCutCount == 2 && checkAttentionLock() && mAtCyl.ChkAtHit()) { + if (mComboCutCount == 2 && checkAttentionLock() + && (mAtCyl.ChkAtHit() + #if DEBUG + || mpHIO->mCut.m.mForceHitCombo + #endif + ) + ) + { onNoResetFlg0(FLG0_UNK_8000); } if (field_0x307e > 0) { field_0x307e--; } else { - resetCombo(1); + resetCombo(TRUE); } } } @@ -6899,7 +6937,7 @@ BOOL daAlink_c::checkWolfAttackAction() { static int const normalType1[] = {0, 0, 0, 3, 3}; if (mComboCutCount == 4) { - resetCombo(1); + resetCombo(TRUE); } mComboCutCount++; @@ -6949,11 +6987,15 @@ BOOL daAlink_c::checkWolfAttackAction() { void daAlink_c::setWolfEnemyThrowUpperAnime(daAlink_c::daAlink_WANM i_anmID, f32 param_1) { setUpperAnime( - i_anmID == WANM_FLING_LEFT ? (u16)0x2BD : (u16)0x2BE, + i_anmID == WANM_FLING_LEFT ? (u16)dRes_ID_ALANM_BCK_WL_FLINGNECKL_e : (u16)dRes_ID_ALANM_BCK_WL_FLINGNECKR_e, UPPER_2, // Fakematch, should be // mpHIO->mWolf.mWlAttack.mWlAtBite.m.mEnemyBiteThrowAnmSpeed, + #if DEBUG + mpHIO->mWolf.mWlAttack.mWlAtBite.m.mEnemyBiteThrowAnmSpeed, + #else daAlinkHIO_wlAtBite_c0::m.mEnemyBiteThrowAnmSpeed, + #endif param_1, -1, -1.0f @@ -6970,13 +7012,13 @@ BOOL daAlink_c::setWolfEnemyHangBitePos(fopEn_enemy_c* i_enemy) { if (commonLineCheck(&field_0x3540, ¤t.pos)) { current.pos = old_pos; - return 0; + return FALSE; } else { - return 1; + return TRUE; } } - return 0; + return FALSE; } static cXyz l_wolfBiteHitMarkScale(0.5f, 0.5f, 0.5f); @@ -7008,9 +7050,12 @@ int daAlink_c::procWolfRollAttackCharge() { return 1; } + #if PLATFORM_GCN if (!itemButtonCheck(BTN_B)) { checkWolfAttackAction(); - } else if (field_0x2060->getOldFrameRate() < 0.1f) { + } else + #endif + if (field_0x2060->getOldFrameRate() < 0.1f) { procWolfRollAttackMoveInit(); } else { cLib_chaseF(&mNormalSpeed, 0.0f, mpHIO->mWolf.mWlMoveNoP.m.mDeceleration); @@ -7053,7 +7098,7 @@ int daAlink_c::procWolfRollAttackMove() { if (mProcVar0.field_0x3008 == 0) { if (mWolfLockNum != 0) { - resetCombo(1); + resetCombo(TRUE); return procWolfLockAttackInit(0); } else { return procWolfRollAttackInit(1, 0); @@ -7103,7 +7148,7 @@ int daAlink_c::procWolfRollAttackMove() { voiceStartLevel(Z2SE_WL_V_ROAR); - BOOL var_r28 = 0; + BOOL var_r28 = FALSE; f32 anm_speed = getWolfLieMoveAnmSpeed(); if (frameCtrl_p->getRate() > 0.0f) { @@ -7111,12 +7156,12 @@ int daAlink_c::procWolfRollAttackMove() { } else if (frameCtrl_p->getRate() < 0.0f) { frameCtrl_p->setRate(-anm_speed); } else { - var_r28 = 1; + var_r28 = TRUE; } setWolfAtnMoveDirection(); - if (var_r28 == true || frameCtrl_p->checkPass(0.0f) || frameCtrl_p->checkPass(15.0f)) { + if (var_r28 == TRUE || frameCtrl_p->checkPass(0.0f) || frameCtrl_p->checkPass(15.0f)) { if (checkInputOnR()) { if (field_0x2f98 != 1) { frameCtrl_p->setRate(anm_speed); @@ -7151,33 +7196,33 @@ int daAlink_c::procWolfJumpAttackInit(int param_0) { commonProcInit(PROC_WOLF_JUMP_ATTACK); mProcVar0.field_0x3008 = 0; - f32 var_f26; - f32 var_f31; - f32 var_f27; - f32 var_f28; + f32 max_vertical_speed; + f32 min_vertical_speed; + f32 min_horizontal_speed; + f32 attack_init_speed; f32 var_f30; f32 var_f29; if (param_0 == 1) { - setCutType(0x39); - setCylAtParam(0x80000000, dCcG_At_Spl_UNK_1, 3, 4, 3, mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mAttackRadius, mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mAttackHeight); - field_0x594 = mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mMaxHorizontalSpeed; - var_f26 = mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mMaxVerticalSpeed; + setCutType(CUT_TYPE_WOLF_JUMP); + setCylAtParam(AT_TYPE_WOLF_ATTACK, dCcG_At_Spl_UNK_1, 3, dCcD_SE_WOLF_BITE, 3, mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mAttackRadius, mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mAttackHeight); + mMaxSpeed = mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mMaxHorizontalSpeed; + max_vertical_speed = mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mMaxVerticalSpeed; if (mTargetedActor != NULL) { - var_f31 = mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mMinVerticalSpeed; - var_f28 = mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mAttackInitSpeed; + min_vertical_speed = mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mMinVerticalSpeed; + attack_init_speed = mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mAttackInitSpeed; } else { - var_f31 = 25.0f; - var_f28 = 26.0f; + min_vertical_speed = 25.0f; + attack_init_speed = 26.0f; } - var_f27 = mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mMinHorizontalSpeed; + min_horizontal_speed = mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mMinHorizontalSpeed; field_0x3438 = mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mAttackRadiusOffset; voiceStart(Z2SE_WL_V_ATTACK_L); seStartOnlyReverb(Z2SE_WOLFATTACK_WIND_SCREW); - if (!dComIfGs_isEventBit(0x520) && checkStageName("R_SP30")) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::M_010) && checkStageName("R_SP30")) { mProcVar0.field_0x3008 = 1; } @@ -7190,25 +7235,25 @@ int daAlink_c::procWolfJumpAttackInit(int param_0) { mProcVar4.field_0x3010 = 1; } else { if (mComboCutCount == 4) { - setCutType(0x32); - setCylAtParam(0x80000000, dCcG_At_Spl_UNK_1, 3, 4, 3, mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mAttackRadius, mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mAttackHeight); + setCutType(CUT_TYPE_WOLF_JUMP_S_FINISH); + setCylAtParam(AT_TYPE_WOLF_ATTACK, dCcG_At_Spl_UNK_1, 3, dCcD_SE_WOLF_BITE, 3, mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mAttackRadius, mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mAttackHeight); voiceStart(Z2SE_WL_V_ATTACK_L); seStartOnlyReverb(Z2SE_WOLFATTACK_WIND_SCREW); mProcVar5.field_0x3012 = 1; } else { - setCutType(0x31); - setCylAtParam(0x80000000, dCcG_At_Spl_UNK_0, 1, 4, 2, mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mAttackRadius, mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mAttackHeight); + setCutType(CUT_TYPE_WOLF_JUMP_S); + setCylAtParam(AT_TYPE_WOLF_ATTACK, dCcG_At_Spl_UNK_0, 1, dCcD_SE_WOLF_BITE, 2, mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mAttackRadius, mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mAttackHeight); voiceStart(Z2SE_WL_V_ATTACK_S); seStartOnlyReverb(Z2SE_WOLFATTACK_WIND_S); mProcVar5.field_0x3012 = 0; } - field_0x594 = mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mMaxHorizontalSpeed; - var_f27 = mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mMinHorizontalSpeed; - var_f26 = mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mMaxVerticalSpeed; - var_f31 = mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mMinVerticalSpeed; + mMaxSpeed = mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mMaxHorizontalSpeed; + min_horizontal_speed = mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mMinHorizontalSpeed; + max_vertical_speed = mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mMaxVerticalSpeed; + min_vertical_speed = mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mMinVerticalSpeed; field_0x3438 = mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mAttackRadiusOffset; - var_f28 = mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mAttackInitSpeed; + attack_init_speed = mpHIO->mWolf.mWlAttack.mWlAtNjump.m.mAttackInitSpeed; mProcVar4.field_0x3010 = 0; } @@ -7218,7 +7263,7 @@ int daAlink_c::procWolfJumpAttackInit(int param_0) { shape_angle.y = cLib_targetAngleY(¤t.pos, &mTargetedActor->eyePos); if (mComboCutCount == 1 && param_0 != 1) { - speed.y = var_f31; + speed.y = min_vertical_speed; mNormalSpeed = (-gravity * eyePos.absXZ(mTargetedActor->eyePos)) / (2.0f * speed.y); } else { var_f30 = (mTargetedActor->eyePos.y - eyePos.y) - 10.0f; @@ -7236,21 +7281,21 @@ int daAlink_c::procWolfJumpAttackInit(int param_0) { if (var_f29 >= 1.0f) { f32 temp_f25 = 1.0f / var_f29; mNormalSpeed = temp_f25 * current.pos.absXZ(mTargetedActor->eyePos); - speed.y = cLib_minMaxLimit(temp_f25 * (var_f30 - (var_f29 * (0.5f * gravity * var_f29))), var_f31, var_f26); + speed.y = cLib_minMaxLimit(temp_f25 * (var_f30 - (var_f29 * (0.5f * gravity * var_f29))), min_vertical_speed, max_vertical_speed); } else { - mNormalSpeed = var_f28; - speed.y = var_f31; + mNormalSpeed = attack_init_speed; + speed.y = min_vertical_speed; } } } else { - mNormalSpeed = var_f28; - speed.y = var_f31; + mNormalSpeed = attack_init_speed; + speed.y = min_vertical_speed; } - if (mNormalSpeed > field_0x594) { - mNormalSpeed = field_0x594; - } else if (mNormalSpeed < var_f27) { - mNormalSpeed = var_f27; + if (mNormalSpeed > mMaxSpeed) { + mNormalSpeed = mMaxSpeed; + } else if (mNormalSpeed < min_horizontal_speed) { + mNormalSpeed = min_horizontal_speed; } mProcVar1.field_0x300a = param_0; @@ -7362,10 +7407,9 @@ int daAlink_c::procWolfJumpAttackKickInit() { commonProcInit(PROC_WOLF_JUMP_AT_KICK); setSingleAnimeWolfParam(WANM_JUMP_KICK, &mpHIO->mWolf.mWlAttack.mWlAtCjump.m.mFlipKickAnm); - f32 tmp_0 = 0.0f; - speed.y = tmp_0; - mNormalSpeed = tmp_0; - setSpecialGravity(tmp_0, maxFallSpeed, 0); + speed.y = 0.0f; + mNormalSpeed = 0.0f; + setSpecialGravity(0.0f, maxFallSpeed, 0); voiceStart(Z2SE_WL_V_ATTACK_S); seStartOnlyReverb(Z2SE_WOLFATTACK_WIND_S); @@ -7374,7 +7418,7 @@ int daAlink_c::procWolfJumpAttackKickInit() { } int daAlink_c::procWolfJumpAttackKick() { - if (mUnderFrameCtrl[0].checkAnmEnd()) { + if (checkAnmEnd(mUnderFrameCtrl)) { procWolfBackJumpInit(2); dComIfGp_setPlayerStatus1(0, 0x200000); } @@ -7386,7 +7430,7 @@ int daAlink_c::procWolfJumpAttackSlideLandInit(int param_0, int param_1, int par commonProcInit(PROC_WOLF_JUMP_AT_SLIDE_LAND); if (mTargetedActor == NULL || !param_0 || - (fopAcM_GetGroup(mTargetedActor) == 2 && + (fopAcM_GetGroup(mTargetedActor) == fopAc_ENEMY_e && static_cast(mTargetedActor)->checkDeadFlg())) { mProcVar4.field_0x3010 = 0; @@ -7394,7 +7438,7 @@ int daAlink_c::procWolfJumpAttackSlideLandInit(int param_0, int param_1, int par mProcVar4.field_0x3010 = 1; } - if ((mTargetedActor != NULL && fopAcM_GetGroup(mTargetedActor) == 2 && param_0 && + if ((mTargetedActor != NULL && fopAcM_GetGroup(mTargetedActor) == fopAc_ENEMY_e && param_0 && !static_cast(mTargetedActor)->checkDeadFlg() && fopAcM_seenActorAngleY(this, mTargetedActor) > 0x5000) || param_2) @@ -7500,7 +7544,7 @@ int daAlink_c::procWolfJumpAttackNormalLand() { setComboReserb(); checkCutTurnCharge(); - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextActionWolf(0); } else if (frameCtrl->getFrame() > mpHIO->mWolf.mWlAttack.mWlAtLand.m.mNormalLandingAnm.mCancelFrame) { if (mProcVar2.field_0x300c != 0) { @@ -7559,22 +7603,22 @@ int daAlink_c::procWolfWaitAttackInit(int i_attackType) { mProcVar3.field_0x300e = 1; } - f32 var_f2; + f32 start_frame; if (mComboCutCount == 4) { - setCylAtParam(0x80000000, dCcG_At_Spl_UNK_1, 3, 4, 3, atk_hio->mAttackRadius, + setCylAtParam(AT_TYPE_WOLF_ATTACK, dCcG_At_Spl_UNK_1, 3, dCcD_SE_WOLF_BITE, 3, atk_hio->mAttackRadius, atk_hio->mAttackHeight); field_0x3478 = atk_hio->mAttackAnm.mCancelFrame; mProcVar0.field_0x3008 = atk_hio->mStopTime; - var_f2 = atk_hio->mAttackAnm.mStartFrame; + start_frame = atk_hio->mAttackAnm.mStartFrame; } else { - setCylAtParam(0x80000000, dCcG_At_Spl_UNK_0, 1, 4, 2, atk_hio->mAttackRadius, + setCylAtParam(AT_TYPE_WOLF_ATTACK, dCcG_At_Spl_UNK_0, 1, dCcD_SE_WOLF_BITE, 2, atk_hio->mAttackRadius, atk_hio->mAttackHeight); field_0x3478 = atk_hio->mComboMidCF; mProcVar0.field_0x3008 = atk_hio->mComboMidStopTime; - var_f2 = atk_hio->mComboMidStartF; + start_frame = atk_hio->mComboMidStartF; } - setSingleAnimeWolf(atk_params->m_anmID, atk_hio->mAttackAnm.mSpeed, var_f2, + setSingleAnimeWolf(atk_params->m_anmID, atk_hio->mAttackAnm.mSpeed, start_frame, atk_hio->mAttackAnm.mEndFrame, atk_hio->mAttackAnm.mInterpolation); if (mTargetedActor != NULL) { @@ -7620,9 +7664,9 @@ int daAlink_c::procWolfWaitAttack() { } if (checkAnmEnd(frameCtrl_p)) { - resetCombo(1); + resetCombo(TRUE); - if (mDemo.getDemoMode() == 0x2B) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_UNK_43_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else if (mProcVar0.field_0x3008 > 0) { if (!(frameCtrl_p->getFrame() > field_0x3478) || !checkNextActionWolf(1)) { @@ -7634,9 +7678,10 @@ int daAlink_c::procWolfWaitAttack() { } } else if (frameCtrl_p->getFrame() > field_0x3478) { if (!checkNextActionWolf(1)) { - resetCombo(1); + resetCombo(TRUE); } } else { + int _; setShapeAngleToAtnActor(1); current.angle.y = shape_angle.y; @@ -7692,7 +7737,7 @@ int daAlink_c::procWolfRollAttackInit(int param_0, int param_1) { setSingleAnimeWolfParam(anm, &mpHIO->mWolf.mWlAttack.mAtRoll.m.mAttackAnm); field_0x3478 = mpHIO->mWolf.mWlAttack.mAtRoll.m.mAttackRadius; - setCylAtParam(0x40000000, dCcG_At_Spl_UNK_1, 3, 4, 3, field_0x3478 * 0.5f, 155.0f); + setCylAtParam(AT_TYPE_WOLF_CUT_TURN, dCcG_At_Spl_UNK_1, 3, dCcD_SE_WOLF_BITE, 3, field_0x3478 * 0.5f, 155.0f); mNormalSpeed = 0.0f; mProcVar3.field_0x300e = param_1; @@ -7729,7 +7774,7 @@ int daAlink_c::procWolfRollAttack() { } else if (mProcVar3.field_0x300e == 0 && frameCtrl_p->getFrame() >= 4.0f && frameCtrl_p->getFrame() < 13.0f) { - if (!checkNoResetFlg0(FLG0_UNK_40)) { + if (!checkNoResetFlg0(FLG0_CUT_AT_FLG)) { mNormalSpeed = mpHIO->mWolf.mWlAttack.mAtRoll.m.mAttackSpeed; } @@ -7785,7 +7830,7 @@ int daAlink_c::procWolfDownAttack() { fopEn_enemy_c* enemy_p = (fopEn_enemy_c*)field_0x280c.getActor(); if (enemy_p != NULL && enemy_p->checkDownFlg() && - eyePos.abs2XZ(enemy_p->getDownPos()) < 10000.0f && + eyePos.abs2XZ(enemy_p->getDownPos()) < SQUARE(100.0f) && fabsf(enemy_p->current.pos.y - current.pos.y) < 50.0f) { procWolfDownAtLandInit(enemy_p); @@ -7830,16 +7875,16 @@ int daAlink_c::procWolfDownAtLand() { if (checkAnmEnd(frameCtrl_p)) { if (checkUnderMove0BckNoArcWolf(WANM_PULL_OUT)) { - setUpperAnime(0x2DA, UPPER_2, 0.0f, 20.0f, -1, -1.0f); + setUpperAnime(dRes_ID_ALANM_BCK_WL_PICKUPA_e, UPPER_2, 0.0f, 20.0f, -1, -1.0f); if (enemy_p != NULL) { enemy_p->onWolfDownPullEndFlg(); - dComIfGp_particle_setColor(0x86CA, &enemy_p->getDownPos(), &tevStr, NULL, NULL, + dComIfGp_particle_setColor(dPa_RM(ID_ZI_S_ID_SETB_A), &enemy_p->getDownPos(), &tevStr, NULL, NULL, 0.0f, 0xFF); - dComIfGp_particle_setColor(0x86CB, &enemy_p->getDownPos(), &tevStr, NULL, NULL, + dComIfGp_particle_setColor(dPa_RM(ID_ZI_S_ID_SETB_B), &enemy_p->getDownPos(), &tevStr, NULL, NULL, 0.0f, 0xFF); - dComIfGp_particle_setColor(0x86CC, &enemy_p->getDownPos(), &tevStr, NULL, NULL, + dComIfGp_particle_setColor(dPa_RM(ID_ZI_S_ID_SETB_C), &enemy_p->getDownPos(), &tevStr, NULL, NULL, 0.0f, 0xFF); } @@ -7860,7 +7905,7 @@ int daAlink_c::procWolfDownAtLand() { int daAlink_c::procWolfDownAtMissLandInit() { commonProcInit(PROC_WOLF_DOWN_AT_MISS_LAND); setSingleAnimeWolfParam(WANM_ATTACK_POE_MISS, &mpHIO->mWolf.mWlAttack.mWlAtDown.m.mRollOverAnm); - setFaceBasicTexture(FTANM_UNK_97); + setFaceBasicTexture(FTANM_WL_ATTACKUNG); mNormalSpeed = 0.0f; setFootEffectProcType(1); @@ -7880,7 +7925,7 @@ int daAlink_c::procWolfDownAtMissLand() { field_0x2f99 = 4; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextActionWolf(0); } else if (frameCtrl->getFrame() > mpHIO->mWolf.mWlAttack.mWlAtDown.m.mRollOverAnm.mCancelFrame) { checkNextActionWolf(1); @@ -7945,7 +7990,7 @@ int daAlink_c::procWolfLockAttackInit(int param_0) { speed.y = -gravity * var_f31; mProcVar0.field_0x3008 = var_f31; - setCylAtParam(0x8000000, dCcG_At_Spl_UNK_0, 1, 4, 6, mpHIO->mWolf.mWlAttack.mWlAtLock.m.mAttackRadius, + setCylAtParam(AT_TYPE_MIDNA_LOCK, dCcG_At_Spl_UNK_0, 1, dCcD_SE_WOLF_BITE, 6, mpHIO->mWolf.mWlAttack.mWlAtLock.m.mAttackRadius, mpHIO->mWolf.mWlAttack.mWlAtLock.m.mAttackHeight); field_0x3438 = mpHIO->mWolf.mWlAttack.mWlAtLock.m.mAttackRadiusOffset; @@ -7953,26 +7998,25 @@ int daAlink_c::procWolfLockAttackInit(int param_0) { voiceStart(Z2SE_WL_V_ATTACK_THRUST); dComIfGp_setPlayerStatus1(0, 0x1000000); - dComIfGp_particle_set(0x247, ¤t.pos, ¤t.angle, 0); + dComIfGp_particle_set(ID_ZI_J_WL_LOCKATDASH_A, ¤t.pos, ¤t.angle, 0); return 1; } int daAlink_c::procWolfLockAttack() { - BOOL var_r29 = false; + BOOL isAtShieldHit = false; - // check if any field_0x850 clylinders collided with at shields for (int i = 0; i < 3; i++) { - if (checkAtShieldHit(field_0x850[i])) { - var_r29 = true; + if (checkAtShieldHit(mTgCyls[i])) { + isAtShieldHit = true; break; } } // early return checks for colliding with at shields or if the actor hit is not freezard - if (var_r29 || (checkAtShieldHit(mAtCyl) && (mAtCyl.GetAtHitAc() == NULL || + if (isAtShieldHit || (checkAtShieldHit(mAtCyl) && (mAtCyl.GetAtHitAc() == NULL || fopAcM_GetName(mAtCyl.GetAtHitAc()) != PROC_E_FB))) { - return procCoLargeDamageInit(-4, 1, 0, 0, NULL, 2); + return procCoLargeDamageInit(-4, TRUE, 0, 0, NULL, 2); } if (checkWolfAttackReverse(1)) { @@ -8087,7 +8131,7 @@ int daAlink_c::procWolfLockAttackTurn() { int daAlink_c::procWolfAttackReverseInit() { commonProcInit(PROC_WOLF_ATTACK_REVERSE); setSingleAnimeWolfBase(WANM_ATTACK_RECOIL_START); - setFaceBasicTexture(FTANM_UNK_9A); + setFaceBasicTexture(FTANM_WL_ATTACKREST); mNormalSpeed = mpHIO->mWolf.mWlAttack.m.mJumpBackSpeedH; speed.y = mpHIO->mWolf.mWlAttack.m.mJumpBackSpeedV; @@ -8127,7 +8171,12 @@ int daAlink_c::procWolfAttackReverse() { mNormalSpeed = 0.0f; setSingleAnimeWolfParam(WANM_ATTACK_RECOIL_END, &mpHIO->mWolf.mWlAttack.m.mJumpBackLandAnm); - setFaceBasicTexture(FTANM_UNK_9B); + setFaceBasicTexture(FTANM_WL_ATTACKREED); + + #if DEBUG + mpHIO->jumpStateUpdate(&mLastJumpPos, ¤t.pos, l_jumpTop); + #endif + current.angle.y = shape_angle.y; offModeFlg(2); onModeFlg(1); @@ -8148,16 +8197,16 @@ int daAlink_c::procWolfEnemyThrowInit(int param_0) { offNoResetFlg2(FLG2_WOLF_ENEMY_LEFT_THROW); } - f32 var_f31; + f32 start_frame; if (param_0 == 4) { - var_f31 = 0.0f; + start_frame = 0.0f; } else { - var_f31 = 3.0f; + start_frame = 3.0f; } - setSingleAnimeWolf(anm, mpHIO->mWolf.mWlAttack.mWlAtBite.m.mEnemyBiteThrowAnmSpeed, var_f31, -1, + setSingleAnimeWolf(anm, mpHIO->mWolf.mWlAttack.mWlAtBite.m.mEnemyBiteThrowAnmSpeed, start_frame, -1, mpHIO->mWolf.mWlAttack.mWlAtBite.m.mEnemyBiteThrowInterpolation); - setWolfEnemyThrowUpperAnime(anm, var_f31); + setWolfEnemyThrowUpperAnime(anm, start_frame); field_0x3588 = l_wolfBaseAnime; mNormalSpeed = 0.0f; speed.y = 0.0f; @@ -8174,7 +8223,7 @@ int daAlink_c::procWolfEnemyThrow() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; field_0x2f99 = 5; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextActionWolf(0); } else if (frameCtrl->getFrame() > mpHIO->mWolf.mWlAttack.mWlAtBite.m.mEnemyBiteThrowCF) { checkNextActionWolf(1); @@ -8187,10 +8236,9 @@ int daAlink_c::procWolfEnemyHangBiteInit() { commonProcInit(PROC_WOLF_ENEMY_HANG_BITE); setSingleAnimeWolfParam(WANM_CATCH_START, &mpHIO->mWolf.mWlAttack.mWlAtBite.m.mHangingBitePreparationAnm); - f32 tmp_0 = 0.0f; - mNormalSpeed = tmp_0; - speed.y = tmp_0; - setSpecialGravity(tmp_0, maxFallSpeed, 0); + mNormalSpeed = 0.0f; + speed.y = 0.0f; + setSpecialGravity(0.0f, maxFallSpeed, 0); if (!setWolfEnemyHangBitePos((fopEn_enemy_c*)field_0x281c.getActor())) { return procWolfJumpAttackKickInit(); @@ -8348,7 +8396,7 @@ int daAlink_c::procWolfGrabUp() { } if (frameCtrl_p->checkPass(field_0x3478)) { - onResetFlg0(RFLG0_UNK_8000); + onResetFlg0(RFLG0_GRAB_UP_START); fopAcM_setStageLayer(item_p); voiceStart(Z2SE_WL_V_HOLD_MOUTH); } @@ -8378,10 +8426,10 @@ int daAlink_c::procWolfGrabPutInit() { return 0; } - BOOL grab_obj = checkWolfGrabAnimeObj(); + BOOL isGrabObjAnm = checkWolfGrabAnimeObj(); commonProcInit(PROC_WOLF_GRAB_PUT); - if (grab_obj) { + if (isGrabObjAnm) { setSingleAnimeWolfParam(WANM_PICKUP_A, &mpHIO->mWolf.mWlGrab.m.mPotReleaseAnm); field_0x3478 = 10.0f; field_0x347c = mpHIO->mWolf.mWlGrab.m.mPotReleaseAnm.mCancelFrame; @@ -8408,7 +8456,7 @@ int daAlink_c::procWolfGrabPut() { } if (checkAnmEnd(frameCtrl_p)) { - if (mDemo.getDemoMode() == 13) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_GRAB_PUT_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); } else { checkNextActionWolf(0); @@ -8418,7 +8466,7 @@ int daAlink_c::procWolfGrabPut() { } } else { if (actor_p == NULL) { - if (mDemo.getDemoMode() == 13) { + if (mDemo.getDemoMode() == daPy_demo_c::DEMO_GRAB_PUT_e) { dComIfGp_evmng_cutEnd(mAlinkStaffId); return 1; } else { @@ -8426,8 +8474,7 @@ int daAlink_c::procWolfGrabPut() { } } - if (grabLineCheck(&field_0x34e0, &actor_p->current.pos) && dBgS_CheckBWallPoly(mObjLinChk)) - { + if (grabLineCheck(&field_0x34e0, &actor_p->current.pos) && dBgS_CheckBWallPoly(mObjLinChk)) { cXyz sp8 = actor_p->current.pos - mObjLinChk.GetCross(); current.pos.x -= sp8.x * 1.5f; current.pos.z -= sp8.z * 1.5f; @@ -8456,7 +8503,7 @@ int daAlink_c::procWolfGrabThrow() { setGrabItemThrow(); } - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { checkNextActionWolf(0); } else if (frameCtrl->getFrame() > mpHIO->mWolf.mWlGrab.m.mThrowAnm.mCancelFrame) { checkNextActionWolf(1); @@ -8469,15 +8516,15 @@ int daAlink_c::procWolfPushInit() { commonProcInit(PROC_WOLF_PUSH); mProcVar3.field_0x300e = 18; - s16 var_r5; + s16 end_frame; if (fopAcM_CheckCarryType(field_0x27f4, fopAcM_CARRY_TYPE_1)) { mProcVar2.field_0x300c = 1; - var_r5 = 24; + end_frame = 24; } else { mProcVar2.field_0x300c = 0; - var_r5 = mProcVar3.field_0x300e; + end_frame = mProcVar3.field_0x300e; } - setSingleAnimeWolf(WANM_PUSH_LIGHT, 1.0f, 0.0f, var_r5, 3.0f); + setSingleAnimeWolf(WANM_PUSH_LIGHT, 1.0f, 0.0f, end_frame, 3.0f); mUnderFrameCtrl[0].setAttribute(0); mNormalSpeed = 0.0f; @@ -8505,7 +8552,7 @@ int daAlink_c::procWolfPush() { field_0x2f99 = 4; - if (frameCtrl->checkAnmEnd()) { + if (checkAnmEnd(frameCtrl)) { if (mProcVar2.field_0x300c != 0) { setSingleAnimeWolf(WANM_PUSH_LIGHT, 1.0f, 0.0f, mProcVar3.field_0x300e, 3.0f); mUnderFrameCtrl[0].setAttribute(0); @@ -8522,7 +8569,9 @@ int daAlink_c::procWolfPush() { return 1; } -static fopAc_ac_c* daAlink_searchEnemyCargo(fopAc_ac_c* i_actor, void*) { +static fopAc_ac_c* daAlink_searchEnemyCargo(fopAc_ac_c* i_actor, void* i_data) { + UNUSED(i_data); + if (fopAcM_GetName(i_actor) == PROC_E_YC) { return i_actor; } @@ -8535,10 +8584,9 @@ int daAlink_c::procWolfCargoCarryInit() { return 1; } - f32 tmp_0 = 0.0f; - mNormalSpeed = tmp_0; - speed.y = tmp_0; - setSpecialGravity(tmp_0, maxFallSpeed, 0); + mNormalSpeed = 0.0f; + speed.y = 0.0f; + setSpecialGravity(0.0f, maxFallSpeed, 0); daAlink_WANM anm; if (checkCargoCarry()) { @@ -8575,8 +8623,7 @@ int daAlink_c::procWolfCargoCarry() { return checkNextActionWolf(0); } - daKago_c* kago_p = (daKago_c*)mCargoCarryAcKeep.getActor(); - mDoMtx_stack_c::copy(kago_p->getLegR3Mtx()); + mDoMtx_stack_c::copy(((daKago_c*)mCargoCarryAcKeep.getActor())->getLegR3Mtx()); mDoMtx_stack_c::transM(-9.0f, -17.0f, -30.0f); mDoMtx_stack_c::multVecZero(¤t.pos); mDoMtx_stack_c::ZXYrotM(-0x1928, 0x3FFF, 0); @@ -8589,8 +8636,7 @@ int daAlink_c::procWolfCargoCarry() { return checkNextActionWolf(0); } - e_yc_class* yc_p = (e_yc_class*)field_0x280c.getActor(); - mDoMtx_stack_c::copy(yc_p->getLegR3Mtx()); + mDoMtx_stack_c::copy(((e_yc_class*)field_0x280c.getActor())->getLegR3Mtx()); mDoMtx_stack_c::transM(-9.0f, -7.0f, -30.0f); mDoMtx_stack_c::multVecZero(¤t.pos); mDoMtx_stack_c::ZXYrotM(0x770C, 0, -0x4C94); @@ -8620,16 +8666,18 @@ int daAlink_c::procWolfChainUpInit() { int daAlink_c::procWolfChainUp() { daPy_frameCtrl_c* frameCtrl = mUnderFrameCtrl; - setWallGrabStatus(0x96, 2); + #if PLATFORM_GCN + setWallGrabStatus(BUTTON_STATUS_UNK_150, BUTTON_STATUS_FLAG_EMPHASIS); + #endif - if (frameCtrl->checkAnmEnd() || + if (checkAnmEnd(frameCtrl) || (checkInputOnR() && frameCtrl->getFrame() > mpHIO->mWolf.mWlGrab.m.mBoneGrabAnm.mCancelFrame)) { u8 old_2fa3 = field_0x2fa3; fopAc_ac_c* old_actor = field_0x2844.getActor(); procWolfWaitInit(); - setUpperAnimeBaseSpeed(m_wlAnmDataTable[WANM_CHAIN_PULL].field_0x0, 0.0f, 3.0f); + setUpperAnimeBaseSpeed(m_wlAnmDataTable[WANM_CHAIN_PULL].m_bckID, 0.0f, 3.0f); if (old_actor != NULL) { field_0x2fa3 = old_2fa3; @@ -8641,7 +8689,7 @@ int daAlink_c::procWolfChainUp() { } int daAlink_c::procWolfGanonCatchInit() { - if (!dComIfGp_event_compulsory(this, 0, 0xFFEF)) { + if (!dComIfGp_event_compulsory(this, NULL, 0xFFEF)) { return 0; } @@ -8749,55 +8797,64 @@ int daAlink_c::procWolfChainReadyInit() { int daAlink_c::procWolfChainReady() { daObjWchain_c* chain = static_cast(field_0x280c.getActor()); + daPy_frameCtrl_c* framectrl = mUnderFrameCtrl; + if (chain == NULL || mLinkAcch.ChkWallHit()) { return procWolfFallInit(2, mpHIO->mWolf.mWlAutoJump.m.mNormalFallInterp); - } else if (mUnderFrameCtrl[0].getFrame() < 3.0f) { - s16 target_angle_y = cLib_targetAngleY(¤t.pos, &chain->getJumpAimPos()); - cLib_addCalcAngleS(&shape_angle.y, target_angle_y, 2, 0x2000, 0x800); + } else if (framectrl->getFrame() < 3.0f) { + cLib_addCalcAngleS(&shape_angle.y, cLib_targetAngleY(¤t.pos, &chain->getJumpAimPos()), 2, 0x2000, 0x800); current.angle.y = shape_angle.y; } else if (mProcVar3.field_0x300e == 0) { shape_angle.y = cLib_targetAngleY(¤t.pos, &chain->getJumpAimPos()); current.angle.y = shape_angle.y; mProcVar3.field_0x300e = 1; + cXyz vec1 = chain->getJumpAimPos() - field_0x34e0; f32 dist_xz = vec1.absXZ(); f32 dist = vec1.abs(); - s16 angle = vec1.atan2sY_XZ(); - mProcVar2.field_0x300c = angle >> 1; + mProcVar2.field_0x300c = vec1.atan2sY_XZ() >> 1; mNormalSpeed = dist_xz * 40.0f / dist + 1.0f; mProcVar0.field_0x3008 = dist_xz / mNormalSpeed + 1.0f; speed.y = (vec1.y - gravity * 0.5f * mProcVar0.field_0x3008 * mProcVar0.field_0x3008) / mProcVar0.field_0x3008; } else { mProcVar0.field_0x3008--; + if (chain->getJumpAimPos().abs2(field_0x34e0) < 10000.0f) { procWolfChainWaitInit(); } else if (mProcVar0.field_0x3008 == 0) { procWolfFallInit(2, mpHIO->mWolf.mWlAutoJump.m.mNormalFallInterp); } } + return 1; } int daAlink_c::procWolfChainWaitInit() { daObjWchain_c* chain = static_cast(field_0x280c.getActor()); + commonProcInit(PROC_WOLF_CHAIN_WAIT); setSingleAnimeWolfParam(WANM_HANDLE_HANG, &mpHIO->mWolf.mWlChain.m.mLoweringStartAnm); + mProcVar1.field_0x300a = 0; chain->onRide(); field_0x2f99 = 0x50; + current.pos = chain->getTopPos(); setSpecialGravity(0.0f, maxFallSpeed, 0); speed.y = 0.0f; + mProcVar4.field_0x3010 = 0; mProcVar0.field_0x3008 = mpHIO->mWolf.mWlChain.m.mTensionWaitTime + 20; field_0x3478 = chain->getPullLength(); current.angle.y = shape_angle.y; + if (mNormalSpeed > 30.0f) { mNormalSpeed = 15.0f; } else { mNormalSpeed *= 0.5f; } + field_0x37c8.set(mNormalSpeed * cM_ssin(shape_angle.y), 0.0f, mNormalSpeed * cM_scos(shape_angle.y)); mNormalSpeed = 0.0f; @@ -8841,14 +8898,16 @@ int daAlink_c::procWolfChainWait() { cXyz vec1 = current.pos - chain->getRoofPos(); if (checkInputOnR()) { - vec1.x += field_0x33a8 * cM_ssin(field_0x2fe2); - vec1.z += field_0x33a8 * cM_scos(field_0x2fe2); + vec1.x += mStickValue * cM_ssin(mMoveAngle); + vec1.z += mStickValue * cM_scos(mMoveAngle); } + vec1.y -= 15.0f; vec1 += field_0x37c8; vec1.normalizeZP(); current.pos = chain->getRoofPos() + vec1 * (field_0x3478 + chain->getInitOutLength()); field_0x37c8 = (current.pos - field_0x3798) * 0.95f; + mDoMtx_stack_c::YrotS(-shape_angle.y); mDoMtx_stack_c::multVec(&vec1, &vec1); shape_angle.x = cM_atan2s(-vec1.z, -vec1.y); @@ -8856,18 +8915,19 @@ int daAlink_c::procWolfChainWait() { mProcVar2.field_0x300c = shape_angle.x; daPy_frameCtrl_c* frame_ctrl = &mUnderFrameCtrl[0]; - if (mProcVar1.field_0x300a != 0 || frame_ctrl->checkAnmEnd()) { + if (mProcVar1.field_0x300a != 0 || checkAnmEnd(frame_ctrl)) { daAlink_WANM anm; - f32 f1, f2, f3; + f32 anmSpeed, morf, f3; if (checkInputOnR()) { anm = WANM_HANDLE_HANG_SW; - f1 = mpHIO->mWolf.mWlChain.m.mWaitAnmSpeed; - f2 = mpHIO->mWolf.mWlChain.m.mWaitInterp; + anmSpeed = mpHIO->mWolf.mWlChain.m.mWaitAnmSpeed; + morf = mpHIO->mWolf.mWlChain.m.mWaitInterp; } else { anm = WANM_HANDLE_HANG_WAIT; - f1 = mpHIO->mWolf.mWlChain.m.mSwingAnmSpeed; - f2 = mpHIO->mWolf.mWlChain.m.mSwingInterp; + anmSpeed = mpHIO->mWolf.mWlChain.m.mSwingAnmSpeed; + morf = mpHIO->mWolf.mWlChain.m.mSwingInterp; } + if (anm != mUnderAnmHeap[0].getIdx()) { if (mProcVar1.field_0x300a == 0) { mProcVar1.field_0x300a = 1; @@ -8875,7 +8935,7 @@ int daAlink_c::procWolfChainWait() { } else { f3 = frame_ctrl->getFrame() / frame_ctrl->getEnd(); } - setSingleAnimeWolfBaseSpeed(anm, f1, f2); + setSingleAnimeWolfBaseSpeed(anm, anmSpeed, morf); frame_ctrl->setFrame(f3 * frame_ctrl->getEnd()); } } @@ -8885,12 +8945,12 @@ int daAlink_c::procWolfChainWait() { } int daAlink_c::procWolfDigInit() { - BOOL var_r28 = 1; + BOOL var_r28 = TRUE; if (checkEndResetFlg1(ERFLG1_UNK_100000) && field_0x27f4 != NULL && fopAcM_GetName(field_0x27f4) == PROC_Obj_Digpl) { int type = ((daObjDigpl_c*)field_0x27f4)->getType(); if (type == 0 || type == 2 || type == 3) { - var_r28 = 0; + var_r28 = FALSE; } } @@ -8963,28 +9023,28 @@ int daAlink_c::procWolfDigInit() { field_0x37c8.set(current.pos.x + (50.0f * cM_ssin(shape_angle.y)), current.pos.y, current.pos.z + (50.0f * cM_scos(shape_angle.y))); } - s16 var_r26; + s16 end_frame; if (mProcVar2.mDigType == 0 || mProcVar2.mDigType == 2 || mProcVar2.mDigType == 3) { - var_r26 = 59; + end_frame = 59; field_0x3478 = 51.0f; } else if (mProcVar2.mDigType == 1) { - var_r26 = 33; + end_frame = 33; field_0x3478 = 100.0f; dCam_getBody()->SetTrimTypeForce(3); } else { - var_r26 = mpHIO->mWolf.mWlChain.m.mDigAnm.mEndFrame; + end_frame = mpHIO->mWolf.mWlChain.m.mDigAnm.mEndFrame; field_0x3478 = 66.0f; } - f32 var_f31; + f32 start_frame; if (checkEndResetFlg1(ERFLG1_UNK_100000)) { - var_f31 = 0.0f; + start_frame = 0.0f; } else { - var_f31 = 29.0f; - var_r26 = 59; + start_frame = 29.0f; + end_frame = 59; } - setSingleAnimeWolf(WANM_DIG, mpHIO->mWolf.mWlChain.m.mDigAnm.mSpeed, var_f31, var_r26, mpHIO->mWolf.mWlChain.m.mDigAnm.mInterpolation); + setSingleAnimeWolf(WANM_DIG, mpHIO->mWolf.mWlChain.m.mDigAnm.mSpeed, start_frame, end_frame, mpHIO->mWolf.mWlChain.m.mDigAnm.mInterpolation); mNormalSpeed = 0.0f; field_0x3588 = l_wolfBaseAnime; mProcVar3.mDigChangeArea = false; @@ -9035,6 +9095,7 @@ int daAlink_c::procWolfDig() { dComIfG_Bgsp().MoveBgCrrPos(mLinkAcch.m_gnd, mLinkAcch.ChkGroundHit(), &field_0x37c8, NULL, NULL, false, false); field_0x37d4 += field_0x37c8 - sp14; + BOOL var_r28 = FALSE; if (mProcVar3.mDigChangeArea) { if (frame_ctrl->getFrame() >= 25.0f) { onSceneChangeArea(mProcVar4.mDigExitID, 0xFF, NULL); @@ -9093,10 +9154,17 @@ int daAlink_c::procWolfDig() { int daAlink_c::procWolfDigThroughInit(int param_0) { static const u16 snowID[] = { - 0x884D, 0x884E, 0x8851, 0x8852, + dPa_RM(ID_ZI_S_DIGTHROUGHSNOW_A), + dPa_RM(ID_ZI_S_DIGTHROUGHSNOW_B), + dPa_RM(ID_ZI_S_DIGTHROUGHSNOW_C), + dPa_RM(ID_ZI_S_DIGTHROUGHSNOW_D), }; + static const u16 smokeID[] = { - 0x83A0, 0x83A1, 0x83A4, 0x83A5, + dPa_RM(ID_ZI_S_DIGTHROUGHA_A), + dPa_RM(ID_ZI_S_DIGTHROUGHA_B), + dPa_RM(ID_ZI_S_DIGTHROUGHA_C), + dPa_RM(ID_ZI_S_DIGTHROUGHA_D), }; if (param_0 != 0) { @@ -9109,7 +9177,7 @@ int daAlink_c::procWolfDigThroughInit(int param_0) { commonProcInit(PROC_WOLF_DIG_THROUGH); - int var_r27 = field_0x2fbb; + int poly_att = mGndPolyAtt0; if (param_0 == 0) { if (fopAcM_seenActorAngleY(field_0x27f4, this) <= 0x4000) { @@ -9135,7 +9203,7 @@ int daAlink_c::procWolfDigThroughInit(int param_0) { cXyz sp8(current.pos.x, 30.0f + field_0x27f4->current.pos.y, current.pos.z); if (fopAcM_gc_c::gndCheck(&sp8)) { - var_r27 = fopAcM_gc_c::getPolyAtt0(); + poly_att = fopAcM_gc_c::getPolyAtt0(); } } else { field_0x3198 = -1; @@ -9146,15 +9214,20 @@ int daAlink_c::procWolfDigThroughInit(int param_0) { mProcVar5.field_0x3012 = param_0; - const u16* var_r29 = var_r27 == 13 ? snowID : smokeID; - for (int i = 0; i < 4; i++) { - dComIfGp_particle_set(*var_r29, ¤t.pos, &shape_angle, NULL); - var_r29++; + const u16* effList; + if (poly_att == 13) { + effList = snowID; + } else { + effList = smokeID; + } + + for (int i = 0; i < 4; i++, effList++) { + dComIfGp_particle_set(*effList, ¤t.pos, &shape_angle, NULL); } seStartOnlyReverb(Z2SE_WOLF_DIG_HOLE_THROUGH); setSingleAnimeWolfBase(WANM_DIG_UNDER); - setFaceBasicTexture(FTANM_UNK_99); + setFaceBasicTexture(FTANM_WL_THROUGH); mNormalSpeed = 0.0f; speed.y = 0.0f; @@ -9205,28 +9278,28 @@ int daAlink_c::procWolfDigThrough() { void daAlink_c::setSmellSave() { if (dComIfGs_getCollectSmell() == fpcNm_ITEM_SMELL_MEDICINE) { - dComIfGs_offEventBit(0x2F04); // OFF: Got Medicine Scent + dComIfGs_offEventBit(dSv_event_flag_c::F_0387); } dMsgObject_setSmellType(mProcVar5.field_0x3012); if (mProcVar5.field_0x3012 == fpcNm_ITEM_SMELL_MEDICINE) { - dComIfGs_onEventBit(0x2F04); // ON: Got Medicine Scent + dComIfGs_onEventBit(dSv_event_flag_c::F_0387); } else if (mProcVar5.field_0x3012 == fpcNm_ITEM_SMELL_CHILDREN) { fopAcM_onSwitch(this, 102); } else if (mProcVar5.field_0x3012 == fpcNm_ITEM_SMELL_YELIA_POUCH) { fopAcM_onSwitch(this, 103); } else if (mProcVar5.field_0x3012 == fpcNm_ITEM_SMELL_FISH) { - dComIfGs_onEventBit(0x6120); // ON: Got Reekfish scent + dComIfGs_onEventBit(dSv_event_flag_c::F_0801); } else if (mProcVar5.field_0x3012 == fpcNm_ITEM_SMELL_POH) { - dComIfGs_onEventBit(0x6210); // ON: Got Poe scent + dComIfGs_onEventBit(dSv_event_flag_c::F_0810); } setGetSubBgm(mProcVar5.field_0x3012); } int daAlink_c::procWolfGetSmellInit() { - if (!dComIfGp_event_compulsory(this, 0, 0xFFFF)) { + if (!dComIfGp_event_compulsory(this, NULL, 0xFFFF)) { return 0; } diff --git a/src/d/actor/d_a_b_bq.cpp b/src/d/actor/d_a_b_bq.cpp index eb2d9f0247..17ef77cdf0 100644 --- a/src/d/actor/d_a_b_bq.cpp +++ b/src/d/actor/d_a_b_bq.cpp @@ -2306,7 +2306,7 @@ static int daB_BQ_Execute(b_bq_class* i_this) { dComIfG_Ccsp()->Set(&i_this->mCcCoreSph); sp50 = a_this->eyePos; - if (daPy_getPlayerActorClass()->getCutType() != 0x27 && i_this->mAction >= ACTION_DAMAGE) { + if (daPy_getPlayerActorClass()->getCutType() != daPy_py_c::CUT_TYPE_DOWN && i_this->mAction >= ACTION_DAMAGE) { sp50.y = player->current.pos.y + 70.0f + KREG_F(7); } else { sp50.x -= 20000.0f; diff --git a/src/d/actor/d_a_b_dr.cpp b/src/d/actor/d_a_b_dr.cpp index 4bb3e1c98d..b9c5fc548e 100644 --- a/src/d/actor/d_a_b_dr.cpp +++ b/src/d/actor/d_a_b_dr.cpp @@ -1813,7 +1813,7 @@ void daB_DR_c::executeWeekHit() { dComIfGp_particle_set(0x8999, &sp50, NULL, NULL); dComIfGp_particle_set(0x899A, &sp50, NULL, NULL); - if (health <= 0 || player->getCutType() == 0x20) { + if (health <= 0 || player->getCutType() == daPy_py_c::CUT_TYPE_FINISH_STAB) { health = 0; mSound.startCollisionSE(Z2SE_HIT_SWORD, 0x20); diff --git a/src/d/actor/d_a_b_gnd.cpp b/src/d/actor/d_a_b_gnd.cpp index f8e612b4b9..6349ee995a 100644 --- a/src/d/actor/d_a_b_gnd.cpp +++ b/src/d/actor/d_a_b_gnd.cpp @@ -3300,8 +3300,8 @@ static void demo_camera(b_gnd_class* i_this) { sp114.y = 0.0f; sp114.z = 135.0f; MtxPosition(&sp114, &sp108); - a_this->current.pos.x = sp108.x + player->field_0x5f8.x; - a_this->current.pos.z = sp108.z + player->field_0x5f8.z; + a_this->current.pos.x = sp108.x + player->mViewerCurrentPos.x; + a_this->current.pos.z = sp108.z + player->mViewerCurrentPos.z; a_this->current.angle.y = player->shape_angle.y + 0x8000; spF0 = a_this->current.pos + ((*player->getViewerCurrentPosP() - a_this->current.pos) * 0.5f); diff --git a/src/d/actor/d_a_b_mgn.cpp b/src/d/actor/d_a_b_mgn.cpp index 51c8fe8684..7b06127363 100644 --- a/src/d/actor/d_a_b_mgn.cpp +++ b/src/d/actor/d_a_b_mgn.cpp @@ -1115,8 +1115,8 @@ void daB_MGN_c::damage_check() { dComIfGs_onOneZoneSwitch(6, fopAcM_GetRoomNo(this)); } - if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_WOLF_ATTACK) && player->getCutType() != 44 && - player->getCutType() != 45 && player->onWolfEnemyHangBite(this)) + if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_WOLF_ATTACK) && player->getCutType() != daPy_py_c::CUT_TYPE_WOLF_B_LEFT && + player->getCutType() != daPy_py_c::CUT_TYPE_WOLF_B_RIGHT && player->onWolfEnemyHangBite(this)) { setActionMode(ACTION_DOWN_BITE_DAMAGE_e, 0); return; diff --git a/src/d/actor/d_a_b_tn.cpp b/src/d/actor/d_a_b_tn.cpp index 6febefa837..6f2ee0c701 100644 --- a/src/d/actor/d_a_b_tn.cpp +++ b/src/d/actor/d_a_b_tn.cpp @@ -1121,7 +1121,7 @@ u32 daB_TN_c::getCutType() { case daPy_py_c::CUT_TYPE_NM_RIGHT: case daPy_py_c::CUT_TYPE_FINISH_LEFT: case daPy_py_c::CUT_TYPE_FINISH_VERTICAL: - case daPy_py_c::CUT_TYPE_DASH_UNK_26: + case daPy_py_c::CUT_TYPE_DASH_RIGHT: return rv | 0x12; case daPy_py_c::CUT_TYPE_NM_STAB: @@ -1129,7 +1129,7 @@ u32 daB_TN_c::getCutType() { return rv | 0x02; case daPy_py_c::CUT_TYPE_NM_LEFT: - case daPy_py_c::CUT_TYPE_DASH_UNK_25: + case daPy_py_c::CUT_TYPE_DASH_LEFT: return rv | 0x21; case daPy_py_c::CUT_TYPE_COMBO_STAB: @@ -1344,8 +1344,8 @@ void daB_TN_c::damage_check() { if (cut_type == daPy_py_c::CUT_TYPE_LARGE_JUMP_FINISH) { return; } else if (mActionMode1 < 8) { - if (cut_type == daPy_py_c::CUT_TYPE_DASH_UNK_25 || - cut_type == daPy_py_c::CUT_TYPE_DASH_UNK_26 || + if (cut_type == daPy_py_c::CUT_TYPE_DASH_LEFT || + cut_type == daPy_py_c::CUT_TYPE_DASH_RIGHT || mAtInfo.mpCollider->ChkAtType(AT_TYPE_UNK)) { setShieldEffect(&dStack_160); @@ -1403,8 +1403,8 @@ void daB_TN_c::damage_check() { if (mTimer10 != 0 || abs((s16)(fopAcM_searchPlayerAngleY(this) - shape_angle.y)) < 0x3000 || - cut_type == daPy_py_c::CUT_TYPE_DASH_UNK_25 || - cut_type == daPy_py_c::CUT_TYPE_DASH_UNK_26) + cut_type == daPy_py_c::CUT_TYPE_DASH_LEFT || + cut_type == daPy_py_c::CUT_TYPE_DASH_RIGHT) { field_0xaa8 = false; setShieldEffect(&dStack_160); diff --git a/src/d/actor/d_a_e_bu.cpp b/src/d/actor/d_a_e_bu.cpp index 2bb44da4ba..525be53779 100644 --- a/src/d/actor/d_a_e_bu.cpp +++ b/src/d/actor/d_a_e_bu.cpp @@ -176,7 +176,7 @@ static void damage_check(e_bu_class* i_this) { if (i_this->atInfo.mpCollider->ChkAtType(AT_TYPE_HOOKSHOT)) { actor->speedF = 0.0f; i_this->head_rot_y = i_this->atInfo.mHitDirection.y; - } else if (player->getCutType() == 10 && player->checkCutJumpCancelTurn()) { + } else if (player->getCutType() == daPy_py_c::CUT_TYPE_JUMP && player->checkCutJumpCancelTurn()) { i_this->invulnerabilityTimer = NREG_S(7) + 3; actor->speedF = 0.0f; } else { diff --git a/src/d/actor/d_a_e_hm.cpp b/src/d/actor/d_a_e_hm.cpp index 4c6e5d37da..4a9e4f96c3 100644 --- a/src/d/actor/d_a_e_hm.cpp +++ b/src/d/actor/d_a_e_hm.cpp @@ -1301,7 +1301,7 @@ int daE_HM_c::Execute() { cXyz bindEffectSize(1.0f, 1.0f, 1.0f); u32 cutType = daPy_getPlayerActorClass()->getCutType(); - if (cutType == 0x36 && mSph.ChkAtSet() != 0) { + if (cutType == daPy_py_c::CUT_TYPE_WOLF_LOCK && mSph.ChkAtSet() != 0) { mSph.OffAtSetBit(); field_0x5ac = 1; } else if (field_0x5ac != 0) { diff --git a/src/d/actor/d_a_e_mm_mt.cpp b/src/d/actor/d_a_e_mm_mt.cpp index 80a264709b..c0d2a120ef 100644 --- a/src/d/actor/d_a_e_mm_mt.cpp +++ b/src/d/actor/d_a_e_mm_mt.cpp @@ -595,10 +595,10 @@ static void action(e_mm_mt_class* i_this) { fopAc_ac_c* local_a4 = at_power_check(&i_this->m_atInfo); if (i_this->m_atInfo.mHitType == 1) { - if (daPy_getPlayerActorClass()->getCutType() == 8 || - daPy_getPlayerActorClass()->getCutType() == 9 || - daPy_getPlayerActorClass()->getCutType() == 23 || - daPy_getPlayerActorClass()->getCutType() == 24) { + if (daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_TURN_RIGHT || + daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_UNK_9 || + daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_LEFT || + daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT) { actor->speedF = cM_rndF(10.0f) + 40.0f + TREG_F(16); i_this->m_spin = (s16)(cM_rndF(2000.0f) + 5500.0f); i_this->field_0x69C = (s16)(cM_rndF(1000.0f) + 5000.0f); diff --git a/src/d/actor/d_a_e_oc.cpp b/src/d/actor/d_a_e_oc.cpp index e8bb8c8f3e..35b7d097d0 100644 --- a/src/d/actor/d_a_e_oc.cpp +++ b/src/d/actor/d_a_e_oc.cpp @@ -613,13 +613,13 @@ int daE_OC_c::getCutType() { case daPy_py_c::CUT_TYPE_NM_STAB: case daPy_py_c::CUT_TYPE_NM_RIGHT: case daPy_py_c::CUT_TYPE_FINISH_STAB: - case daPy_py_c::CUT_TYPE_DASH_UNK_26: + case daPy_py_c::CUT_TYPE_DASH_RIGHT: case daPy_py_c::CUT_TYPE_NM_VERTICAL: return 0; case daPy_py_c::CUT_TYPE_COMBO_STAB: - case daPy_py_c::CUT_TYPE_HORSE_UNK_22: - case daPy_py_c::CUT_TYPE_HORSE_UNK_23: - case daPy_py_c::CUT_TYPE_DASH_UNK_25: + case daPy_py_c::CUT_TYPE_HORSE_LEFT_A: + case daPy_py_c::CUT_TYPE_HORSE_LEFT_B: + case daPy_py_c::CUT_TYPE_DASH_LEFT: case daPy_py_c::CUT_TYPE_NM_LEFT: return 1; default: diff --git a/src/d/actor/d_a_e_oct_bg.cpp b/src/d/actor/d_a_e_oct_bg.cpp index f4dde1c3cc..22b909882a 100644 --- a/src/d/actor/d_a_e_oct_bg.cpp +++ b/src/d/actor/d_a_e_oct_bg.cpp @@ -684,7 +684,7 @@ void daE_OctBg_c::damage_check() { field_0x9f8.ChkAtHit()) { if (field_0x9f8.ChkAtShieldHit()) { - if (daPy_getPlayerActorClass()->getCutType() == 41) { + if (daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_GUARD_ATTACK) { setAction(&daE_OctBg_c::damage); return; } diff --git a/src/d/actor/d_a_e_pz.cpp b/src/d/actor/d_a_e_pz.cpp index 9241a33234..bb5e1c6688 100644 --- a/src/d/actor/d_a_e_pz.cpp +++ b/src/d/actor/d_a_e_pz.cpp @@ -265,14 +265,14 @@ u8 daE_PZ_c::getCutType() { case daPy_py_c::CUT_TYPE_NM_STAB: case daPy_py_c::CUT_TYPE_NM_RIGHT: case daPy_py_c::CUT_TYPE_FINISH_VERTICAL: - case daPy_py_c::CUT_TYPE_DASH_UNK_26: + case daPy_py_c::CUT_TYPE_DASH_RIGHT: return 1; case daPy_py_c::CUT_TYPE_NM_LEFT: case daPy_py_c::CUT_TYPE_FINISH_LEFT: case daPy_py_c::CUT_TYPE_COMBO_STAB: - case daPy_py_c::CUT_TYPE_HORSE_UNK_22: - case daPy_py_c::CUT_TYPE_HORSE_UNK_23: - case daPy_py_c::CUT_TYPE_DASH_UNK_25: + case daPy_py_c::CUT_TYPE_HORSE_LEFT_A: + case daPy_py_c::CUT_TYPE_HORSE_LEFT_B: + case daPy_py_c::CUT_TYPE_DASH_LEFT: return 2; default: return 3; diff --git a/src/d/actor/d_a_e_sb.cpp b/src/d/actor/d_a_e_sb.cpp index 517672526c..b700ee094c 100644 --- a/src/d/actor/d_a_e_sb.cpp +++ b/src/d/actor/d_a_e_sb.cpp @@ -607,7 +607,7 @@ void daE_SB_c::ActionCheck() { if ( (s16) (shape_angle.y - tgt_ang) > -0x3000 && (s16) (shape_angle.y - tgt_ang) < 0x3000) { if (temp_r27 > 1U) { Hit(); - } else if (temp_r29 == 1 || temp_r29 == 10 || temp_r29 == 0x29 || dComIfGp_checkPlayerStatus0(0, 0x4000U)) { + } else if (temp_r29 == daPy_py_c::CUT_TYPE_NM_VERTICAL || temp_r29 == daPy_py_c::CUT_TYPE_JUMP || temp_r29 == daPy_py_c::CUT_TYPE_GUARD_ATTACK || dComIfGp_checkPlayerStatus0(0, 0x4000U)) { Hanekaeri(); } else { Hit(); diff --git a/src/d/actor/d_a_e_tt.cpp b/src/d/actor/d_a_e_tt.cpp index 52909dc2c4..a8ad219025 100644 --- a/src/d/actor/d_a_e_tt.cpp +++ b/src/d/actor/d_a_e_tt.cpp @@ -171,7 +171,7 @@ int daE_TT_c::getCutType() { case daPy_py_c::CUT_TYPE_NM_VERTICAL: case daPy_py_c::CUT_TYPE_NM_STAB: case daPy_py_c::CUT_TYPE_NM_RIGHT: - case daPy_py_c::CUT_TYPE_DASH_UNK_26: + case daPy_py_c::CUT_TYPE_DASH_RIGHT: return 0; default: diff --git a/src/d/actor/d_a_e_vt.cpp b/src/d/actor/d_a_e_vt.cpp index ed0c071dec..a9d716acd0 100644 --- a/src/d/actor/d_a_e_vt.cpp +++ b/src/d/actor/d_a_e_vt.cpp @@ -2759,7 +2759,7 @@ void daE_VA_c::executeOpaciDown() { break; } - if (player->getCutCount() > 1 || player->getCutType() == 10) { + if (player->getCutCount() > 1 || player->getCutType() == daPy_py_c::CUT_TYPE_JUMP) { if (mFadeAwayTimer < 30) { mFadeAwayTimer = 30; } @@ -2773,7 +2773,7 @@ void daE_VA_c::executeOpaciDown() { void daE_VA_c::executeOpaciDownDamage() { daPy_py_c* player = daPy_getPlayerActorClass(); - if (player->getCutCount() > 1 || player->getCutType() == 10) { + if (player->getCutCount() > 1 || player->getCutType() == daPy_py_c::CUT_TYPE_JUMP) { if (mFadeAwayTimer < 30) { mFadeAwayTimer = 30; } diff --git a/src/d/actor/d_a_e_ym.cpp b/src/d/actor/d_a_e_ym.cpp index e2b5c32a17..0e61fc7a0b 100644 --- a/src/d/actor/d_a_e_ym.cpp +++ b/src/d/actor/d_a_e_ym.cpp @@ -2994,7 +2994,7 @@ void daE_YM_c::checkFrinedSamePos() { void daE_YM_c::action() { int reg_r27 = 0; // set but not used - if (daPy_getPlayerActorClass()->getCutType() == 0x36) { + if (daPy_getPlayerActorClass()->getCutType() == daPy_py_c::CUT_TYPE_WOLF_LOCK) { reg_r27 = 1; field_0x700 = 0; } diff --git a/src/d/actor/d_a_kytag12.cpp b/src/d/actor/d_a_kytag12.cpp index 4cea546573..04d8c94f39 100644 --- a/src/d/actor/d_a_kytag12.cpp +++ b/src/d/actor/d_a_kytag12.cpp @@ -30,7 +30,7 @@ static BOOL d_kytag12_cut_normal_check() { daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0); BOOL var_r3 = true; if (player != NULL && - (player->getCutType() == 0x28 || player->getCutType() == daPy_py_c::CUT_TYPE_GUARD_ATTACK)) + (player->getCutType() == daPy_py_c::CUT_TYPE_UNK_28 || player->getCutType() == daPy_py_c::CUT_TYPE_GUARD_ATTACK)) { var_r3 = false; } diff --git a/src/d/actor/d_a_obj_kanban2.cpp b/src/d/actor/d_a_obj_kanban2.cpp index b59d130f83..46fbae0f18 100644 --- a/src/d/actor/d_a_obj_kanban2.cpp +++ b/src/d/actor/d_a_obj_kanban2.cpp @@ -332,7 +332,7 @@ int daObj_Kanban2_c::getKanbanCutType() { case daPy_py_c::CUT_TYPE_NM_VERTICAL: case daPy_py_c::CUT_TYPE_NM_RIGHT: case daPy_py_c::CUT_TYPE_FINISH_LEFT: - case daPy_py_c::CUT_TYPE_DASH_UNK_26: + case daPy_py_c::CUT_TYPE_DASH_RIGHT: if (angle_to_player < 0x3800) { return DAMAGE_TLBR_DIAGONAL; } @@ -351,7 +351,7 @@ int daObj_Kanban2_c::getKanbanCutType() { } return DAMAGE_HORIZONTAL_SPLIT; case daPy_py_c::CUT_TYPE_NM_LEFT: - case daPy_py_c::CUT_TYPE_DASH_UNK_25: + case daPy_py_c::CUT_TYPE_DASH_LEFT: return DAMAGE_HORIZONTAL_SPLIT; case daPy_py_c::CUT_TYPE_TURN_RIGHT: case daPy_py_c::CUT_TYPE_LARGE_JUMP_INIT: diff --git a/src/d/actor/d_a_player.cpp b/src/d/actor/d_a_player.cpp index dacbcd0735..8d9a056c4a 100644 --- a/src/d/actor/d_a_player.cpp +++ b/src/d/actor/d_a_player.cpp @@ -33,8 +33,7 @@ void daPy_frameCtrl_c::updateFrame() { offNowSetFlg(); } -void daPy_frameCtrl_c::setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32 i_rate, - f32 i_frame) { +void daPy_frameCtrl_c::setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32 i_rate, f32 i_frame) { setAttribute(i_attribute); setEnd(i_end); setRate(i_rate); @@ -50,15 +49,15 @@ void daPy_frameCtrl_c::setFrameCtrl(u8 i_attribute, s16 i_start, s16 i_end, f32 offEndFlg(); } -void daPy_boomerangMove_c::initOffset(cXyz const* i_offset) { +void daPy_boomerangMove_c::initOffset(const cXyz* i_pos) { daBoomerang_c* boomerang_p = daPy_py_c::getThrowBoomerangActor(); if (boomerang_p != NULL) { - bgCheckAfterOffset(i_offset); + bgCheckAfterOffset(i_pos); boomerang_p->onWindCatch(); } else { - field_0x4 = cM_rndF(70.0f) + 30.0f; - field_0x8 = cM_rndF(50.0f) + 50.0f; + m_offsetY = cM_rndF(70.0f) + 30.0f; + m_offsetXZ = cM_rndF(50.0f) + 50.0f; field_0x2 = cM_rndF(65536.0f); } @@ -71,20 +70,20 @@ s16 daPy_boomerangMove_c::m_dropAngleY; s16 daPy_boomerangMove_c::m_eventKeepFlg; -int daPy_boomerangMove_c::posMove(cXyz* param_0, s16* param_1, fopAc_ac_c* param_2, s16 param_3) { +int daPy_boomerangMove_c::posMove(cXyz* o_pos, s16* o_rotY, fopAc_ac_c* i_objActor, s16 i_rotStep) { daBoomerang_c* boomerang_p = daPy_py_c::getThrowBoomerangActor(); - field_0x2 -= param_3; - *param_1 -= param_3; + field_0x2 -= i_rotStep; + *o_rotY -= i_rotStep; - if (field_0x8 > 300.0f) { - field_0x8 = 300.0f; + if (m_offsetXZ > 300.0f) { + m_offsetXZ = 300.0f; } - if (field_0x4 < -700.0f) { - field_0x4 = -700.0f; - } else if (field_0x4 > 50.0f) { - field_0x4 = 50.0f; + if (m_offsetY < -700.0f) { + m_offsetY = -700.0f; + } else if (m_offsetY > 50.0f) { + m_offsetY = 50.0f; } if (boomerang_p != NULL) { @@ -98,39 +97,39 @@ int daPy_boomerangMove_c::posMove(cXyz* param_0, s16* param_1, fopAc_ac_c* param return 0; } - param_0->set(boomerang_p->current.pos.x + field_0x8 * cM_ssin(field_0x2), - boomerang_p->current.pos.y + field_0x4, - boomerang_p->current.pos.z + field_0x8 * cM_scos(field_0x2)); + o_pos->set(boomerang_p->current.pos.x + m_offsetXZ * cM_ssin(field_0x2), + boomerang_p->current.pos.y + m_offsetY, + boomerang_p->current.pos.z + m_offsetXZ * cM_scos(field_0x2)); boomerang_p->onWindCatch(); return 1; } daAlink_c* player_p = daAlink_getAlinkActorClass(); - if ((param_2 == NULL || !player_p->checkBoomerangCarry(param_2)) && + if ((i_objActor == NULL || !player_p->checkBoomerangCarry(i_objActor)) && (m_eventKeepFlg == 0 || field_0x0 != 0)) { s16 tmp = (m_dropAngleY + player_p->shape_angle.y) + cM_rndF(2048.0f); - param_0->x = player_p->current.pos.x + field_0x8 * cM_ssin(tmp); - param_0->z = player_p->current.pos.z + field_0x8 * cM_scos(tmp); + o_pos->x = player_p->current.pos.x + m_offsetXZ * cM_ssin(tmp); + o_pos->z = player_p->current.pos.z + m_offsetXZ * cM_scos(tmp); m_dropAngleY += 0x2000; } return 0; } -void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* i_offset) { +void daPy_boomerangMove_c::bgCheckAfterOffset(const cXyz* i_pos) { daBoomerang_c* boomerang_p = daPy_py_c::getThrowBoomerangActor(); if (boomerang_p != NULL) { - field_0x4 = i_offset->y - boomerang_p->current.pos.y; - field_0x8 = boomerang_p->current.pos.absXZ(*i_offset); - field_0x2 = cM_atan2s(i_offset->x - boomerang_p->current.pos.x, - i_offset->z - boomerang_p->current.pos.z); + m_offsetY = i_pos->y - boomerang_p->current.pos.y; + m_offsetXZ = boomerang_p->current.pos.absXZ(*i_pos); + field_0x2 = cM_atan2s(i_pos->x - boomerang_p->current.pos.x, + i_pos->z - boomerang_p->current.pos.z); } } -u32 daPy_py_c::setParamData(int param_0, int param_1, int param_2, int param_3) { - return param_3 | (param_0 & 0x3F | (param_1 & 0x1F) << 0xC | param_2 << 0x18); +u32 daPy_py_c::setParamData(int i_roomNo, int i_mode, int param_2, int param_3) { + return (i_roomNo & 0x3F) | (i_mode & 0x1F) << 0xC | ((param_2 & 0xFF) << 0x18) | param_3; } BOOL daPy_py_c::checkFishingRodItem(int i_itemNo) { @@ -142,16 +141,23 @@ BOOL daPy_py_c::checkBombItem(int i_itemNo) { } BOOL daPy_py_c::checkBottleItem(int i_itemNo) { - return (i_itemNo >= fpcNm_ITEM_EMPTY_BOTTLE && i_itemNo <= fpcNm_ITEM_FAIRY) || i_itemNo == fpcNm_ITEM_BEE_CHILD || - i_itemNo == fpcNm_ITEM_WORM || i_itemNo == fpcNm_ITEM_FAIRY_DROP || i_itemNo == fpcNm_ITEM_CHUCHU_BLACK || - (i_itemNo >= fpcNm_ITEM_CHUCHU_RARE && i_itemNo <= fpcNm_ITEM_LV3_SOUP); + return (i_itemNo >= fpcNm_ITEM_EMPTY_BOTTLE && i_itemNo <= fpcNm_ITEM_FAIRY) + || i_itemNo == fpcNm_ITEM_BEE_CHILD + || i_itemNo == fpcNm_ITEM_WORM + || i_itemNo == fpcNm_ITEM_FAIRY_DROP + || i_itemNo == fpcNm_ITEM_CHUCHU_BLACK + || (i_itemNo >= fpcNm_ITEM_CHUCHU_RARE && i_itemNo <= fpcNm_ITEM_LV3_SOUP); } BOOL daPy_py_c::checkDrinkBottleItem(int i_itemNo) { - return (i_itemNo >= fpcNm_ITEM_RED_BOTTLE && i_itemNo <= fpcNm_ITEM_HALF_MILK_BOTTLE) || i_itemNo == fpcNm_ITEM_RED_BOTTLE_2 || - i_itemNo == fpcNm_ITEM_UGLY_SOUP || i_itemNo == fpcNm_ITEM_HOT_SPRING || i_itemNo == fpcNm_ITEM_BEE_CHILD || - i_itemNo == fpcNm_ITEM_CHUCHU_BLACK || i_itemNo == fpcNm_ITEM_FAIRY_DROP || - (i_itemNo >= fpcNm_ITEM_CHUCHU_RARE && i_itemNo != fpcNm_ITEM_CHUCHU_YELLOW && i_itemNo <= fpcNm_ITEM_LV3_SOUP); + return (i_itemNo >= fpcNm_ITEM_RED_BOTTLE && i_itemNo <= fpcNm_ITEM_HALF_MILK_BOTTLE) + || i_itemNo == fpcNm_ITEM_RED_BOTTLE_2 + || i_itemNo == fpcNm_ITEM_UGLY_SOUP + || i_itemNo == fpcNm_ITEM_HOT_SPRING + || i_itemNo == fpcNm_ITEM_BEE_CHILD + || i_itemNo == fpcNm_ITEM_CHUCHU_BLACK + || i_itemNo == fpcNm_ITEM_FAIRY_DROP + || (i_itemNo >= fpcNm_ITEM_CHUCHU_RARE && i_itemNo != fpcNm_ITEM_CHUCHU_YELLOW && i_itemNo <= fpcNm_ITEM_LV3_SOUP); } BOOL daPy_py_c::checkOilBottleItem(int i_itemNo) { @@ -171,9 +177,13 @@ BOOL daPy_py_c::checkHookshotItem(int i_itemNo) { } BOOL daPy_py_c::checkTradeItem(int i_itemNo) { - return (i_itemNo >= fpcNm_ITEM_LETTER && i_itemNo <= fpcNm_ITEM_IRIAS_PENDANT) || i_itemNo == fpcNm_ITEM_ANCIENT_DOCUMENT || - i_itemNo == fpcNm_ITEM_AIR_LETTER || i_itemNo == fpcNm_ITEM_ANCIENT_DOCUMENT2 || i_itemNo == fpcNm_ITEM_RAFRELS_MEMO || - i_itemNo == fpcNm_ITEM_TKS_LETTER || i_itemNo == fpcNm_ITEM_ASHS_SCRIBBLING; + return (i_itemNo >= fpcNm_ITEM_LETTER && i_itemNo <= fpcNm_ITEM_IRIAS_PENDANT) + || i_itemNo == fpcNm_ITEM_ANCIENT_DOCUMENT + || i_itemNo == fpcNm_ITEM_AIR_LETTER + || i_itemNo == fpcNm_ITEM_ANCIENT_DOCUMENT2 + || i_itemNo == fpcNm_ITEM_RAFRELS_MEMO + || i_itemNo == fpcNm_ITEM_TKS_LETTER + || i_itemNo == fpcNm_ITEM_ASHS_SCRIBBLING; } BOOL daPy_py_c::checkDungeonWarpItem(int i_itemNo) { @@ -181,11 +191,10 @@ BOOL daPy_py_c::checkDungeonWarpItem(int i_itemNo) { } void daPy_actorKeep_c::setActor() { - if (mID != -1) { + if (mID != fpcM_ERROR_PROCESS_ID_e) { mActor = fopAcM_SearchByID(mID); - if (mActor == NULL) { - mID = -1; + mID = fpcM_ERROR_PROCESS_ID_e; } } else { mActor = NULL; @@ -202,7 +211,7 @@ void daPy_actorKeep_c::setData(fopAc_ac_c* i_actor) { } void daPy_actorKeep_c::clearData() { - mID = 0xffffffff; + mID = fpcM_ERROR_PROCESS_ID_e; mActor = NULL; } @@ -243,25 +252,44 @@ void daPy_anmHeap_c::createHeap(daPy_anmHeap_c::daAlinkHEAP_TYPE i_heapType) { size = 0xA0; } + char* tmpWork; + mDoExt_transAnmBas* tmpTransBas; + J3DAnmTransformKey* tmpTrans; + J3DAnmTexPattern* tmpTp; + J3DAnmTextureSRTKey* tmpTk; + JKRHeap* tmp; mAnimeHeap = mDoExt_createSolidHeapFromGameToCurrent(&tmp, size, 0x20); - + if (i_heapType == 4) { - char* tmpWork = new char[size]; + tmpWork = new char[size]; + JUT_ASSERT(669, tmpWork != NULL); } else if (i_heapType == 3) { - mDoExt_transAnmBas* tmpTransBas = new mDoExt_transAnmBas(NULL); + tmpTransBas = new mDoExt_transAnmBas(NULL); + JUT_ASSERT(672, tmpTransBas != NULL); } else if (i_heapType == 0) { - J3DAnmTransformKey* tmpTrans = new J3DAnmTransformKey(); + tmpTrans = new J3DAnmTransformKey(); + JUT_ASSERT(675, tmpTrans != NULL); } else if (i_heapType == 1) { - J3DAnmTexPattern* tmpTp = new J3DAnmTexPattern(); + tmpTp = new J3DAnmTexPattern(); + JUT_ASSERT(678, tmpTp != NULL); } else { - J3DAnmTextureSRTKey* tmpTk = new J3DAnmTextureSRTKey(); + tmpTk = new J3DAnmTextureSRTKey(); + JUT_ASSERT(681, tmpTk != NULL); } mDoExt_setCurrentHeap(tmp); mDoExt_adjustSolidHeap(mAnimeHeap); } +void daPy_aramBufferCheck(void* i_buffer, u32 i_size) { + daPy_anmHeap_c* heap = (daPy_anmHeap_c*)i_buffer; + if (heap->mBufferSize > i_size) { + OS_REPORT("%x, %x\n", heap->mBufferSize, i_size); + JUT_ASSERT(699, FALSE); + } +} + void* daPy_anmHeap_c::loadData(u16 i_resId) { static const char twglArcName[] = "TWGate_Lk"; static const char twgwArcName[] = "TWGate_Wf"; @@ -278,7 +306,11 @@ void* daPy_anmHeap_c::loadData(u16 i_resId) { }; if (mArcNo == 0xFFFF) { - dComIfGp_getAnmArchive()->readIdxResource(mBuffer, mBufferSize, i_resId); + JKRReadIdxResource(mBuffer, mBufferSize, i_resId, dComIfGp_getAnmArchive()); + #if DEBUG + daPy_aramBufferCheck(mBuffer, mBufferSize); + #endif + JKRHeap* heap = setAnimeHeap(); void* data = J3DAnmLoaderDataBase::load(mBuffer, J3DLOADER_UNK_FLAG0); mDoExt_setCurrentHeap(heap); @@ -293,48 +325,36 @@ void* daPy_anmHeap_c::loadData(u16 i_resId) { } void* daPy_anmHeap_c::loadDataIdx(u16 i_resID) { - void* data; - if (i_resID == mIdx && mArcNo == 0xFFFF) { - data = NULL; - } else { - mIdx = i_resID; - mArcNo = 0xFFFF; - if (mPriIdx == 0xFFFF) { - data = loadData(i_resID); - } else { - data = NULL; - } + return NULL; } - return data; + mIdx = i_resID; + mArcNo = 0xFFFF; + if (mPriIdx == 0xFFFF) { + return loadData(i_resID); + } + + return NULL; } void* daPy_anmHeap_c::loadDataPriIdx(u16 i_resID) { - void* data; - if (i_resID == mPriIdx || mArcNo != 0xFFFF) { - data = NULL; - } else { - mPriIdx = i_resID; - data = loadData(i_resID); + return NULL; } - return data; + mPriIdx = i_resID; + return loadData(i_resID); } void* daPy_anmHeap_c::loadDataDemoRID(u16 i_resID, u16 i_arcNo) { - void* data; - if (i_resID == mIdx && i_arcNo == mArcNo) { - data = NULL; - } else { - mIdx = i_resID; - mArcNo = i_arcNo; - data = loadData(i_resID); + return NULL; } - return data; + mIdx = i_resID; + mArcNo = i_arcNo; + return loadData(i_resID); } JKRHeap* daPy_anmHeap_c::setAnimeHeap() { @@ -370,13 +390,11 @@ void daPy_sightPacket_c::draw() { GXSetTevColor(GX_TEVREG0, reg0); GXSetTevColor(GX_TEVREG1, reg1); - u8 tmp2 = mpImg->mipmapCount; - tmp2 = tmp2 > 1; GXInitTexObj(&texObj, mpData, mpImg->width, mpImg->height, (GXTexFmt)mpImg->format, - (GXTexWrapMode)mpImg->wrapS, (GXTexWrapMode)mpImg->wrapT, (GXBool)(tmp2)); + (GXTexWrapMode)mpImg->wrapS, (GXTexWrapMode)mpImg->wrapT, mpImg->mipmapCount > 1 ? GX_ENABLE : GX_DISABLE); GXInitTexObjLOD(&texObj, GX_LINEAR, GX_LINEAR, 0.0, 0.0, 0.0, GX_FALSE, GX_FALSE, GX_ANISO_1); GXLoadTexObj(&texObj, GX_TEXMAP0); - GXLoadPosMtxImm(field_0x14, GX_PNMTX0); + GXLoadPosMtxImm(mProjMtx, GX_PNMTX0); GXSetCurrentMtx(0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); GXCallDisplayList(l_sightDL, 0x80); @@ -389,7 +407,7 @@ void daPy_sightPacket_c::setSight() { mDoLib_project(&mPos, &proj); mDoMtx_stack_c::transS(proj.x, proj.y, proj.z); mDoMtx_stack_c::scaleM(32.0f, 32.0f, 32.0f); - mDoMtx_copy(mDoMtx_stack_c::get(), field_0x14); + mDoMtx_copy(mDoMtx_stack_c::get(), mProjMtx); dComIfGd_set2DXlu(this); } @@ -399,19 +417,12 @@ void daPy_sightPacket_c::setSightImage(ResTIMG* i_img) { } BOOL daPy_py_c::checkMasterSwordEquip() { - u32 equipSword = dComIfGs_getSelectEquipSword(); - bool isMasterSword = false; - - if (equipSword == fpcNm_ITEM_MASTER_SWORD || equipSword == fpcNm_ITEM_LIGHT_SWORD) { - isMasterSword = true; - } - - return isMasterSword; + u16 equipSword = dComIfGs_getSelectEquipSword(); + return equipSword == fpcNm_ITEM_MASTER_SWORD || equipSword == fpcNm_ITEM_LIGHT_SWORD; } BOOL daPy_py_c::checkWoodShieldEquip() { u16 equipShield = dComIfGs_getSelectEquipShield(); - return equipShield == fpcNm_ITEM_WOOD_SHIELD || equipShield == fpcNm_ITEM_SHIELD; } @@ -427,13 +438,12 @@ int daPy_py_c::checkNowWolfEyeUp() { return daAlink_getAlinkActorClass()->checkWolfEyeUp(); } - -void daAlink_c::startRestartRoomFromOut(int param_0, u32 param_1, int param_2) { - startRestartRoom(param_1, param_2, param_0, dComIfGp_event_runCheck()); +void daAlink_c::startRestartRoomFromOut(int i_dmgAmount, u32 i_mode, int param_2) { + startRestartRoom(i_mode, param_2, i_dmgAmount, dComIfGp_event_runCheck()); } -void daPy_py_c::forceRestartRoom(int param_0, u32 param_1, int param_2) { - daAlink_getAlinkActorClass()->startRestartRoomFromOut(param_0, param_1, param_2); +void daPy_py_c::forceRestartRoom(int i_dmgAmount, u32 i_mode, int param_2) { + daAlink_getAlinkActorClass()->startRestartRoomFromOut(i_dmgAmount, i_mode, param_2); } BOOL daPy_py_c::setFmChainPos(fopAc_ac_c* param_0, cXyz* param_1, int param_2) { @@ -448,14 +458,13 @@ void daPy_py_c::setLookPos(cXyz* i_pos) { daAlink_getAlinkActorClass()->setLookPosFromOut(i_pos); } -void daPy_py_c::setPlayerSe(u32 i_sfxID) { - daAlink_getAlinkActorClass()->seStartOnlyReverb(i_sfxID); +void daPy_py_c::setPlayerSe(u32 i_soundID) { + daAlink_getAlinkActorClass()->seStartOnlyReverb(i_soundID); } bool daPy_py_c::linkGrabSubjectNoDraw(fopAc_ac_c* i_actor) { - return (fopAcM_checkCarryNow(i_actor) && - daPy_getPlayerActorClass()->getGrabActorID() == fopAcM_GetID(i_actor)) && - dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 2); + return (fopAcM_checkCarryNow(i_actor) && daPy_getPlayerActorClass()->getGrabActorID() == fopAcM_GetID(i_actor)) + && dComIfGp_checkCameraAttentionStatus(dComIfGp_getPlayerCameraID(0), 2); } bool daPy_py_c::wolfGrabSubjectNoDraw(fopAc_ac_c* i_actor) { @@ -463,7 +472,7 @@ bool daPy_py_c::wolfGrabSubjectNoDraw(fopAc_ac_c* i_actor) { } bool daPy_py_c::checkRoomRestartStart() { - u8 mode = getLastSceneMode(); + u32 mode = getLastSceneMode(); if (mode == 4 || mode == 8 || mode == 5) { return true; } @@ -472,9 +481,10 @@ bool daPy_py_c::checkRoomRestartStart() { } u32 daPy_py_c::checkCarryStartLightBallA() { - if (checkRoomRestartStart() || !dComIfGp_getStage() || - !dComIfGp_getStage()->getStagInfo() || - dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17) + if (checkRoomRestartStart() + || !dComIfGp_getStage() + || !dComIfGp_getStage()->getStagInfo() + || dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != dStage_SaveTbl_LV8) { return FALSE; } @@ -483,9 +493,10 @@ u32 daPy_py_c::checkCarryStartLightBallA() { } u32 daPy_py_c::checkCarryStartLightBallB() { - if (checkRoomRestartStart() || !dComIfGp_getStage() || - !dComIfGp_getStage()->getStagInfo() || - dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17) + if (checkRoomRestartStart() + || !dComIfGp_getStage() + || !dComIfGp_getStage()->getStagInfo() + || dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != dStage_SaveTbl_LV8) { return FALSE; } @@ -516,22 +527,25 @@ bool daPy_py_c::checkBoomerangCharge() { } bool daPy_py_c::checkBoomerangChargeTime() { - return 0; + return daAlink_getAlinkActorClass()->checkBoomerangChargeNow(); } daBoomerang_c* daPy_py_c::getThrowBoomerangActor() { - return static_cast( - daAlink_getAlinkActorClass()->getThrowBoomerangAcKeep()->getActor()); + return static_cast(daAlink_getAlinkActorClass()->getThrowBoomerangAcKeep()->getActor()); } void daPy_py_c::cancelBoomerangLockActor(fopAc_ac_c* i_actor) { daAlink_getAlinkActorClass()->cancelBoomerangLock(i_actor); } -void daPy_py_c::setPlayerDamage(int i_dmgAmount, int i_setDmgTimer) { +void daPy_py_c::setPlayerDamage(int i_dmgAmount, BOOL i_setDmgTimer) { daAlink_getAlinkActorClass()->setDamagePoint(i_dmgAmount, FALSE, i_setDmgTimer, 0); } +BOOL daPy_py_c::checkAcceptDungeonWarp() { + return daAlink_getAlinkActorClass()->checkAcceptDungeonWarpAlink(1); +} + void daPy_py_c::setMidnaMotionNum(int i_motionNum) { if (m_midnaActor != NULL) { m_midnaActor->setMotionNum(i_motionNum); @@ -563,5 +577,6 @@ int daPy_addCalcShort(s16* i_value, s16 i_target, s16 i_scale, s16 i_maxStep, s1 } } } + return i_target - *i_value; } diff --git a/src/d/actor/d_a_spinner.cpp b/src/d/actor/d_a_spinner.cpp index 26fee719d8..497f8a75d5 100644 --- a/src/d/actor/d_a_spinner.cpp +++ b/src/d/actor/d_a_spinner.cpp @@ -68,7 +68,7 @@ int daSpinner_c::create() { mAcchCir[0].SetWall(50.01f, 58.0f); mAcchCir[1].SetWall(129.99f, 35.0f); - mAcchCir[2].SetWall(player->field_0x598, 35.0f); + mAcchCir[2].SetWall(player->mHeight, 35.0f); mPaPo.init(&mAcch, 85.0f, 85.0f); diff --git a/src/d/actor/d_a_tag_kago_fall.cpp b/src/d/actor/d_a_tag_kago_fall.cpp index 973394d90d..64af655b64 100644 --- a/src/d/actor/d_a_tag_kago_fall.cpp +++ b/src/d/actor/d_a_tag_kago_fall.cpp @@ -188,7 +188,7 @@ void daTagKagoFall_c::actionWaitFall() { if (dComIfGs_getLife() == 0) { player->onSceneChangeAreaJump(mExitID, -1, NULL); - if (player->checkNoResetFlg2(daPy_py_c::FLG2_SCN_CHG_START) && !mPlayedSceneChangeSfx) + if (player->checkNoResetFlg2(daPy_py_c::FLG2_SCENE_CHANGE_START) && !mPlayedSceneChangeSfx) { Z2GetAudioMgr()->seStart(Z2SE_FORCE_BACK, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); player->voiceStart(Z2SE_WL_V_FALL_TO_RESTART); diff --git a/src/d/actor/d_flower.inc b/src/d/actor/d_flower.inc index de57e158ee..8f8e0b8a4e 100644 --- a/src/d/actor/d_flower.inc +++ b/src/d/actor/d_flower.inc @@ -365,7 +365,7 @@ void dFlower_data_c::WorkAt(fopAc_ac_c* i_hitActor, u32 i_massFlg, int i_roomNo, } } - if ((daPy_getPlayerActorClass()->getCutType() >= 3) && (daPy_getPlayerActorClass()->getCutType() <= 7)) { + if ((daPy_getPlayerActorClass()->getCutType() >= daPy_py_c::CUT_TYPE_NM_RIGHT) && (daPy_getPlayerActorClass()->getCutType() <= daPy_py_c::CUT_TYPE_FINISH_VERTICAL)) { if (m_pos.abs(temp_r26->current.pos) > 128.0f) { if (m_pos.abs(temp_r26->current.pos) < 200.0f) { WorkAt_NoCutAnim(i_hitActor, i_massFlg, i_roomNo, i_hitinf, hitobj_p); diff --git a/src/d/d_cc_uty.cpp b/src/d/d_cc_uty.cpp index abf801f34e..42116b967f 100644 --- a/src/d/d_cc_uty.cpp +++ b/src/d/d_cc_uty.cpp @@ -102,7 +102,7 @@ u16 cc_pl_cut_bit_get() { } else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_FINISH_VERTICAL) { bit = 0x40; } else if (player_p->getCutType() == daPy_py_c::CUT_TYPE_TURN_RIGHT || - player_p->getCutType() == 9 || player_p->getCutType() == daPy_py_c::CUT_TYPE_HORSE_TURN || + player_p->getCutType() == daPy_py_c::CUT_TYPE_UNK_9 || player_p->getCutType() == daPy_py_c::CUT_TYPE_HORSE_TURN || player_p->getCutType() == daPy_py_c::CUT_TYPE_LARGE_TURN_RIGHT) { bit = 0x80; diff --git a/src/d/d_demo.cpp b/src/d/d_demo.cpp index b4433c5e02..2a7c74f40b 100644 --- a/src/d/d_demo.cpp +++ b/src/d/d_demo.cpp @@ -193,8 +193,8 @@ u16 dDemo_c::m_branchType; const u8* dDemo_c::m_branchData; -int dDemo_actor_c::getDemoIDData(int* param_0, int* param_1, int* param_2, u16* param_3, - u8* param_4) { +int dDemo_actor_c::getDemoIDData(int* o_arg0, int* o_arg1, int* o_arg2, u16* o_resID, + u8* param_4) { JStudio::stb::TParseData_fixed<51, TValueIterator_misaligned > data(getPrm()->getData()); static JStudio::stb::TParseData_fixed<51, TValueIterator_misaligned > dummy; @@ -210,10 +210,10 @@ int dDemo_actor_c::getDemoIDData(int* param_0, int* param_1, int* param_2, u16* } u32 var_r31 = *it; - *param_0 = var_r31 >> 0x1E; - *param_1 = (var_r31 >> 0x18) & 0xF; - *param_2 = (var_r31 >> 0x10) & 0xF; - *param_3 = var_r31 & 0xFFFF; + *o_arg0 = var_r31 >> 0x1E; + *o_arg1 = (var_r31 >> 0x18) & 0xF; + *o_arg2 = (var_r31 >> 0x10) & 0xF; + *o_resID = var_r31 & 0xFFFF; if (param_4 != NULL) { *param_4 = (var_r31 >> 0x17) & 1; @@ -224,7 +224,7 @@ int dDemo_actor_c::getDemoIDData(int* param_0, int* param_1, int* param_2, u16* } #if DEBUG -s16 dDemo_c::m_branchNum = 0; +u16 dDemo_c::m_branchNum = 0; #endif static void* dDemo_getJaiPointer(char const* arcName, u32 anmID, int param_2, u16* param_3) { diff --git a/src/d/d_menu_dmap.cpp b/src/d/d_menu_dmap.cpp index 4e22a4cb12..b20fcedee0 100644 --- a/src/d/d_menu_dmap.cpp +++ b/src/d/d_menu_dmap.cpp @@ -1144,9 +1144,9 @@ void dMenu_Dmap_c::screenInit() { field_0x88[0] = new CPaneMgr(mpDrawBg->mBaseScreen, 'map000', 3, NULL); field_0x88[1] = new CPaneMgr(mpDrawBg->mBaseScreen, 'con000', 3, NULL); - if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dStage_SaveTbl_LV2) { field_0x88[2] = new CPaneMgr(mpDrawBg->mBaseScreen, 'i_key_n', 3, NULL); - } else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14) { + } else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dStage_SaveTbl_LV5) { field_0x88[2] = new CPaneMgr(mpDrawBg->mBaseScreen, 'lv5_k_n', 3, NULL); } else { field_0x88[2] = new CPaneMgr(mpDrawBg->mBaseScreen, 'nor_k_n', 3, NULL); @@ -1156,7 +1156,7 @@ void dMenu_Dmap_c::screenInit() { field_0x88[i]->scale(0.9f, 0.9f); } - if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dStage_SaveTbl_LV2) { mpDrawBg->mBaseScreen->search('lv5_k_n')->hide(); mpDrawBg->mBaseScreen->search('nor_k_n')->hide(); @@ -1195,7 +1195,7 @@ void dMenu_Dmap_c::screenInit() { ((J2DPicture*)mpDrawBg->mBaseScreen->search('c_n_1_s'))->changeTexture(tex, 0); ((J2DPicture*)mpDrawBg->mBaseScreen->search('c_n_1'))->changeTexture(tex, 0); } - } else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14) { + } else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dStage_SaveTbl_LV5) { mpDrawBg->mBaseScreen->search('i_key_n')->hide(); mpDrawBg->mBaseScreen->search('nor_k_n')->hide(); mpDrawBg->mBaseScreen->search('key_n_n')->hide(); diff --git a/src/d/d_menu_fmap.cpp b/src/d/d_menu_fmap.cpp index 7e847452cd..d38c3ae9d9 100644 --- a/src/d/d_menu_fmap.cpp +++ b/src/d/d_menu_fmap.cpp @@ -1020,7 +1020,7 @@ void dMenu_Fmap_c::portal_warp_map_proc() { } } else if (mPortalNo == 3) { if ((dMeter2Info_getMapStatus() == 3 - && dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 2 + && dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dStage_SaveTbl_FARON && dComIfGs_isOneZoneSwitch(0xf, -1)) /* dSv_event_flag_c::M_018 - Main Event - Brought Kakariko bridge back to original location */ || dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x33])) diff --git a/src/d/d_menu_item_explain.cpp b/src/d/d_menu_item_explain.cpp index 5f3dd5c2d4..b682d49351 100644 --- a/src/d/d_menu_item_explain.cpp +++ b/src/d/d_menu_item_explain.cpp @@ -360,7 +360,7 @@ void dMenu_ItemExplain_c::open_init() { u8 itemNo = field_0xe1; s32 iVar = -1; if (itemNo == 0x26) { - if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dStage_SaveTbl_LV2) { s32 itemsObtained = 0; for (int i = 0; i < 3; i++) { if (checkItemGet(i + fpcNm_ITEM_L2_KEY_PIECES1, 1) != 0) { @@ -377,7 +377,7 @@ void dMenu_ItemExplain_c::open_init() { itemNo = 0xfd; } } else { - if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dStage_SaveTbl_LV5) { itemNo = 0xf6; } } @@ -622,7 +622,7 @@ u8 dMenu_ItemExplain_c::openExplainDmap(u8 param_0, u8 param_1, u8 param_2, bool u8 ret = 0; s32 itemsObtained = 0; - if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11 && param_0 == 0x26) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dStage_SaveTbl_LV2 && param_0 == 0x26) { for (int i = 0; i < 3; i++) { if (checkItemGet(i + fpcNm_ITEM_L2_KEY_PIECES1, 1) != 0) { itemsObtained++; @@ -644,7 +644,7 @@ u8 dMenu_ItemExplain_c::openExplainDmap(u8 param_0, u8 param_1, u8 param_2, bool mStatus = 1; field_0xe1 = param_0; field_0xcc = itemNo + 0x165; - if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14 && itemNo == 0x23) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dStage_SaveTbl_LV5 && itemNo == 0x23) { field_0xcc = 0x5bf; } if (itemNo == 0x25 && dComIfGs_isDungeonItemWarp(0x16)) {