diff --git a/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h b/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h index 7b55d9cbd..d49dafa13 100644 --- a/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h +++ b/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h @@ -167,14 +167,14 @@ public: virtual ~J3DMaterialAnm() {}; virtual void calc(J3DMaterial*) const; - const J3DTexMtxAnm& getTexMtxAnm(int i) const { return *mTexMtxAnm[i]; } + const J3DTexMtxAnm* getTexMtxAnm(int i) const { return mTexMtxAnm[i]; } private: /* 0x04 */ J3DMatColorAnm * mMatColorAnm[2]; - /* 0x14 */ J3DTexMtxAnm * mTexMtxAnm[8]; - /* 0x54 */ J3DTexNoAnm * mTexNoAnm[8]; - /* 0xB4 */ J3DTevColorAnm * mTevColorAnm[4]; - /* 0xD4 */ J3DTevKColorAnm * mTevKColorAnm[4]; -}; // Size: 0xF4 + /* 0x0C */ J3DTexMtxAnm * mTexMtxAnm[8]; + /* 0x2C */ J3DTexNoAnm * mTexNoAnm[8]; + /* 0x4C */ J3DTevColorAnm * mTevColorAnm[4]; + /* 0x5C */ J3DTevKColorAnm * mTevKColorAnm[4]; +}; // Size: 0x6C #endif /* J3DMATERIALANM_H */ diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index 9d5f36feb..33a123e0f 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -19,6 +19,10 @@ public: static u8 m_eye_move_flg; static u8 m_maba_timer; static u8 m_morf_frame; + +public: + /* 0x6C */ cXy mEyePosOld; + /* 0x74 */ cXy mEyePos; }; class daPy_mtxFollowEcallBack_c : public dPa_levelEcallBack { @@ -86,6 +90,7 @@ public: daPyFlg0_PUSH_PULL_KEEP = 0x00000800, daPyFlg0_UNK1000 = 0x00001000, daPyFlg0_UNK4000 = 0x00004000, + daPyFlg0_UNK10000 = 0x00010000, daPyFlg0_UNK200000 = 0x00200000, daPyFlg0_EQUIP_HEAVY_BOOTS = 0x02000000, daPyFlg0_NO_DRAW = 0x08000000, @@ -95,6 +100,7 @@ public: enum daPy_FLG1 { daPyFlg1_EQUIP_DRAGON_SHIELD = 0x00000001, daPyFlg1_NPC_CALL_COMMAND = 0x00000002, + daPyFlg1_UNK8 = 0x00000008, daPyFlg1_FORCE_VOMIT_JUMP = 0x00000010, daPyFlg1_NPC_NOT_CHANGE = 0x00000040, daPyFlg1_UNK80 = 0x00000080, @@ -173,6 +179,8 @@ public: void offPlayerNoDraw() { offNoResetFlg0(daPyFlg0_NO_DRAW); } void onHeavyState() { onNoResetFlg0(daPyFlg0_HEAVY_STATE); } void offHeavyState() { offNoResetFlg0(daPyFlg0_HEAVY_STATE); } + bool getHeavyState() { return checkNoResetFlg0(daPyFlg0_HEAVY_STATE); } + bool getHeavyStateAndBoots() { return checkNoResetFlg0(static_cast(daPyFlg0_HEAVY_STATE | daPyFlg0_EQUIP_HEAVY_BOOTS)); } void onNoResetFlg1(daPy_FLG1 flag) { mNoResetFlg1 |= flag; } void offNoResetFlg1(daPy_FLG1 flag) { mNoResetFlg1 &= ~flag; } @@ -220,9 +228,7 @@ public: // checkUseArrowEffect__9daPy_py_cCFv // checkNpcNotChange__9daPy_py_cCFv // checkFinalMasterSwordEquip__9daPy_py_cCFv - // getHeavyState__9daPy_py_cFv // checkEquipHoverBoots__9daPy_py_cCFv - // getHeavyStateAndBoots__9daPy_py_cFv // onNpcCallCommand__9daPy_py_cFv // onForceVomitJumpShort__9daPy_py_cFv // onNoFallVoice__9daPy_py_cFv diff --git a/include/d/actor/d_a_player_link.h b/include/d/actor/d_a_player_link.h index ad0956bcf..fb1e41ad3 100644 --- a/include/d/actor/d_a_player_link.h +++ b/include/d/actor/d_a_player_link.h @@ -70,6 +70,9 @@ public: ~daPy_footEffect_c() {} daPy_footEffect_c() {} + dPa_smokeEcallBack* getSmokeCallBack() { return &mSmokeCb; } + dPa_followEcallBack* getOtherCallBack() { return &mFollowCb; } + /* 0x00 */ dPa_smokeEcallBack mSmokeCb; /* 0x20 */ dPa_followEcallBack mFollowCb; /* 0x34 */ u8 field_0x34[0x4C - 0x34]; @@ -1066,8 +1069,8 @@ public: void setAnimeUnequipItem(u16); void setAnimeUnequip(); void checkBossGomaStage(); - void checkSingleItemEquipAnime() const; - void checkItemEquipAnime() const; + BOOL checkSingleItemEquipAnime() const; + BOOL checkItemEquipAnime() const; BOOL checkEquipAnime() const; void deleteEquipItem(int); void setFallVoice(); @@ -1107,8 +1110,8 @@ public: void getDamageVec(dCcD_GObjInf*); void setOldRootQuaternion(s16, s16, s16); void checkRestHPAnime(); - void checkHeavyStateOn(); - void checkBottleItem(int) const; + BOOL checkHeavyStateOn(); + BOOL checkBottleItem(int) const; void checkDrinkBottleItem(int) const; void checkOpenBottleItem(int) const; BOOL checkBowItem(int) const; @@ -1176,7 +1179,7 @@ public: void procBackJump(); void procBackJumpLand_init(); void procBackJumpLand(); - void checkAutoJumpFlying() const; + int checkAutoJumpFlying() const; void procAutoJump_init(); void procAutoJump(); void procLand_init(f32, int); @@ -1493,7 +1496,7 @@ public: void procCrawlAutoMove(); void procCrawlEnd_init(int, s16, s16); void procCrawlEnd(); - void checkGrabSpecialHeavyState(); + BOOL checkGrabSpecialHeavyState(); void setWeaponBlur(); BOOL checkGrabBarrelSearch(int); void setGrabItemPos(); @@ -1812,6 +1815,9 @@ public: bool checkBoomerangCatchAnime() const { return m_anm_heap_upper[2].mIdx == LKANM_BCK_BOOMCATCH; }; bool checkBoomerangThrowAnime() const { return m_anm_heap_upper[2].mIdx == LKANM_BCK_BOOMTHROW; }; bool checkBoomerangReadyAnime() const { return m_anm_heap_upper[2].mIdx == LKANM_BCK_BOOMWAIT; }; + s16 checkTinkleShield() const { return mTinkleShieldTimer; } + void setTinkleShield(s16 time) { mTinkleShieldTimer = time; } + bool checkNoDamageMode() const { return checkEquipDragonShield() || checkTinkleShield() != 0; } virtual MtxP getLeftHandMatrix() { return mpCLModel->getAnmMtx(0x08); } // cl_LhandA joint virtual MtxP getRightHandMatrix() { return mpCLModel->getAnmMtx(0x0C); } // cl_RhandA joint @@ -1856,17 +1862,18 @@ public: /* 0x032C */ J3DModel* mpCLModel; /* 0x0330 */ J3DModel* mpKatsuraModel; /* 0x0334 */ J3DModel* mpYamuModel; - /* 0x0338 */ u8 field_0x0338[0x035C - 0x0338]; - /* 0x035C */ J3DAnmTexPattern* field_0x035c; - /* 0x0360 */ u8 field_0x0360[0x0364 - 0x0360]; + /* 0x0338 */ ResTIMG* m0338; + /* 0x033C */ ResTIMG m033C; + /* 0x035C */ J3DAnmTexPattern* m035C; + /* 0x0360 */ J3DTexNoAnm* mpTexNoAnm; /* 0x0364 */ J3DAnmTextureSRTKey* mpTexScrollResData; /* 0x0368 */ J3DTexMtxAnm* mpTexMtxAnm; /* 0x036C */ daPy_matAnm_c* mpTexEyeScroll[2]; /* 0x0374 */ J3DShape* mpZOffBlendShape[4]; /* 0x0384 */ J3DShape* mpZOffNoneShape[4]; /* 0x0394 */ J3DShape* mpZOnShape[4]; - /* 0x03A4 */ J3DShape* field_0x03a4; - /* 0x03A8 */ J3DShape* field_0x03a8; + /* 0x03A4 */ J3DShape* m03A4; + /* 0x03A8 */ J3DShape* m03A8; /* 0x03AC */ dBgS_AcchCir mAcchCir[3]; /* 0x046C */ dBgS_LinkAcch mAcch; /* 0x0630 */ dBgS_LinkLinChk mLinkLinChk; @@ -1876,7 +1883,7 @@ public: /* 0x07C8 */ dBgS_LinkRoofChk mRoofChk; /* 0x0814 */ dBgS_ArrowLinChk mArrowLinChk; /* 0x0880 */ dBgS_MirLightLinChk mMirLightLinChk; - /* 0x08EC */ dBgS_ObjGndChk_Spl field_0x08EC; + /* 0x08EC */ dBgS_ObjGndChk_Spl m08EC; /* 0x0940 */ cBgS_PolyInfo mPolyInfo; /* 0x0950 */ daPy_HIO_c* m_HIO; /* 0x0954 */ J3DModel* mpHandsModel; @@ -1901,7 +1908,7 @@ public: /* 0x2E90 */ JKRSolidHeap* mpItemHeaps[2]; /* 0x2E98 */ J3DModel* mpHeldItemModel; /* 0x2E9C */ mDoExt_bckAnm mSwordAnim; - /* 0x2EAC */ u8 field_0x2EAC[0x2EB0 - 0x2EAC]; + /* 0x2EAC */ u8 m2EAC[0x2EB0 - 0x2EAC]; /* 0x2EB0 */ J3DAnmTevRegKey* mpBombBrk; /* 0x2EB4 */ J3DAnmTevRegKey* mpGwp00BrkData; /* 0x2EB8 */ J3DAnmTextureSRTKey* mpGwp00BtkData; @@ -1909,7 +1916,7 @@ public: /* 0x2EC0 */ J3DAnmTextureSRTKey* mpIceArrowBtk; /* 0x2EC4 */ J3DAnmTextureSRTKey* mpLightArrowBtk; /* 0x2EC8 */ J3DAnmTextureSRTKey* mpGicer01Btk; - /* 0x2ECC */ JKRSolidHeap* field_0x2ECC; + /* 0x2ECC */ JKRSolidHeap* m2ECC; /* 0x2ED0 */ void* m_item_bck_buffer; /* 0x2ED4 */ J3DAnmTextureSRTKey* mpHeldItemModelAnimTexEx; /* 0x2ED8 */ J3DAnmTextureSRTKey* mpSwordAnimBTK; @@ -1917,11 +1924,11 @@ public: /* 0x2EE0 */ J3DModel* mpBottleContentsModel; /* 0x2EE4 */ J3DModel* mpBottleCapModel; /* 0x2EE8 */ J3DModel* mpSwordModel1; - /* 0x2EEC */ u8 field_0x2EEC[0x2EF0 - 0x2EEC]; - /* 0x2EF0 */ J3DAnmColor* field_0x2ef0; - /* 0x2EF4 */ J3DAnmTextureSRTKey* field_0x2ef4; - /* 0x2EF8 */ J3DAnmTevRegKey* field_0x2ef8; - /* 0x2EFC */ mDoExt_brkAnm field_0x2efc; + /* 0x2EEC */ J3DModel* mpSwordTipStabModel; + /* 0x2EF0 */ J3DAnmColor* m2EF0; + /* 0x2EF4 */ J3DAnmTextureSRTKey* m2EF4; + /* 0x2EF8 */ J3DAnmTevRegKey* m2EF8; + /* 0x2EFC */ mDoExt_brkAnm m2EFC; /* 0x2F14 */ J3DModel* mpSuimenMunyaModel; /* 0x2F18 */ J3DAnmTextureSRTKey* mpSuimenMunyaBtk; /* 0x2F1C */ J3DModel* mpYuchw00Model; @@ -1958,183 +1965,221 @@ public: /* 0x31B0 */ fopAc_ac_c* mpAttnActorZ; /* 0x31B4 */ mDoExt_MtxCalcOldFrame* m_old_fdata; /* 0x31B8 */ s16 mTexAnimeResIdx; - /* 0x31BA */ s16 field_0x31ba; - /* 0x31BC */ s16 field_0x31bc; - /* 0x31BE */ u8 field_0x31BE[0x31C0 - 0x31BE]; + /* 0x31BA */ s16 m31BA; + /* 0x31BC */ s16 m31BC; + /* 0x31BE */ u16 m31BE; /* 0x31C0 */ void* mpTextureAnimeResData; /* 0x31C4 */ JKRSolidHeap* mpTextureAnimeResHeap; /* 0x31C8 */ u16 mTexScrollResIdx; - /* 0x31CA */ s16 field_0x31ca; - /* 0x31CC */ s16 field_0x31cc; - /* 0x31CE */ s16 field_0x31ce; + /* 0x31CA */ s16 m31CA; + /* 0x31CC */ s16 m31CC; + /* 0x31CE */ s16 m31CE; /* 0x31D0 */ void* mpTextureScrollResData; /* 0x31D4 */ JKRSolidHeap* mpTextureScrollResHeap; /* 0x31D8 */ int mCurProcID; /* 0x31DC */ int (daPy_lk_c::*mCurProcFunc)(); - /* 0x31E8 */ daPy_footEffect_c field_0x31e8[2]; - /* 0x3280 */ dPa_rippleEcallBack field_0x3280; + /* 0x31E8 */ daPy_footEffect_c m31E8[2]; + /* 0x3280 */ dPa_rippleEcallBack m3280; /* 0x3294 */ daPy_swimTailEcallBack_c mSwimTailEcallBack[2]; - /* 0x32E4 */ daPy_mtxFollowEcallBack_c field_0x32e4; - /* 0x32F0 */ daPy_mtxFollowEcallBack_c field_0x32f0; + /* 0x32E4 */ daPy_mtxFollowEcallBack_c m32E4; + /* 0x32F0 */ daPy_mtxFollowEcallBack_c m32F0; /* 0x32FC */ dPa_smokeEcallBack mSmokeEcallBack; - /* 0x331C */ dPa_cutTurnEcallBack_c field_0x331C; - /* 0x332C */ dPa_cutTurnEcallBack_c field_0x332C; - /* 0x333C */ dPa_cutTurnEcallBack_c field_0x333C; - /* 0x334C */ daPy_waterDropEcallBack_c field_0x334C; - /* 0x336C */ daPy_waterDropEcallBack_c field_0x336C; - /* 0x338C */ daPy_followEcallBack_c field_0x338c; - /* 0x33A8 */ daPy_mtxPosFollowEcallBack_c field_0x33a8; - /* 0x33B8 */ daPy_dmEcallBack_c field_0x33b8[4]; - /* 0x33E8 */ daPy_mtxFollowEcallBack_c field_0x33E8; + /* 0x331C */ dPa_cutTurnEcallBack_c m331C; + /* 0x332C */ dPa_cutTurnEcallBack_c m332C; + /* 0x333C */ dPa_cutTurnEcallBack_c m333C; + /* 0x334C */ daPy_waterDropEcallBack_c m334C; + /* 0x336C */ daPy_waterDropEcallBack_c m336C; + /* 0x338C */ daPy_followEcallBack_c m338C; + /* 0x33A8 */ daPy_mtxPosFollowEcallBack_c m33A8; + /* 0x33B8 */ daPy_dmEcallBack_c m33B8[4]; + /* 0x33E8 */ daPy_mtxFollowEcallBack_c m33E8; /* 0x33F4 */ daPy_fanSwingEcallBack_c mFanSwingCb; - /* 0x3400 */ daPy_mtxPosFollowEcallBack_c field_0x3400; - /* 0x3410 */ daPy_followEcallBack_c field_0x3410; - /* 0x342C */ daPy_mtxFollowEcallBack_c field_0x342C; - /* 0x3438 */ daPy_followEcallBack_c field_0x3438; - /* 0x3454 */ daPy_mtxFollowEcallBack_c field_0x3454; - /* 0x3460 */ daPy_mtxPosFollowEcallBack_c field_0x3460[2]; + /* 0x3400 */ daPy_mtxPosFollowEcallBack_c m3400; + /* 0x3410 */ daPy_followEcallBack_c m3410; + /* 0x342C */ daPy_mtxFollowEcallBack_c m342C; + /* 0x3438 */ daPy_followEcallBack_c m3438; + /* 0x3454 */ daPy_mtxFollowEcallBack_c m3454; + /* 0x3460 */ daPy_mtxPosFollowEcallBack_c m3460[2]; /* 0x3480 */ dAttention_c* mpAttention; /* 0x3484 */ dAttList_c* mpAttnEntryA; /* 0x3488 */ dAttList_c* mpAttnEntryX; /* 0x348C */ dAttList_c* mpAttnEntryY; /* 0x3490 */ dAttList_c* mpAttnEntryZ; - /* 0x3494 */ u8 field_0x3494[0x3498 - 0x3494]; - /* 0x3498 */ LIGHT_INFLUENCE field_0x3498; - /* 0x34B8 */ u8 field_0x34B8[0x34B9 - 0x34B8]; + /* 0x3494 */ char* m3494; + /* 0x3498 */ LIGHT_INFLUENCE m3498; + /* 0x34B8 */ u8 m34B8; /* 0x34B9 */ u8 mFrontWallType; - /* 0x34BA */ u8 field_0x34BA[0x34BB - 0x34BA]; + /* 0x34BA */ u8 m34BA; /* 0x34BB */ u8 mCurrItemHeapIdx; - /* 0x34BC */ u8 field_0x34BC[0x34BD - 0x34BC]; + /* 0x34BC */ u8 m34BC; /* 0x34BD */ u8 mLastUsedEquipItem; - /* 0x34BE */ u8 field_0x34BE[0x34BF - 0x34BE]; - /* 0x34BF */ s8 field_0x34bf; - /* 0x34C0 */ u8 field_0x34c0; - /* 0x34C1 */ u8 field_0x34c1; - /* 0x34C2 */ u8 field_0x34c2; - /* 0x34C3 */ u8 field_0x34c3; - /* 0x34C4 */ u8 field_0x34c4; - /* 0x34C5 */ u8 field_0x34c5; - /* 0x34C6 */ u8 field_0x34C6[0x34C7 - 0x34C6]; + /* 0x34BE */ u8 m34BE; + /* 0x34BF */ s8 mReverb; + /* 0x34C0 */ u8 m34C0; + /* 0x34C1 */ u8 m34C1; + /* 0x34C2 */ u8 m34C2; + /* 0x34C3 */ u8 m34C3; + /* 0x34C4 */ u8 m34C4; + /* 0x34C5 */ u8 m34C5; + /* 0x34C6 */ u8 m34C6; /* 0x34C7 */ u8 mActivePlayerBombs; /* 0x34C8 */ u8 mPressedButtonsBitfield; - /* 0x34C9 */ u8 field_0x34C9[0x34CB - 0x34C9]; - /* 0x34CB */ u8 field_0x34CB; - /* 0x34CC */ u8 field_0x34D0[0x34D0 - 0x34CC]; - /* 0x34D0 */ s16 field_0x34d0; - /* 0x34D2 */ s16 field_0x34d2; - /* 0x34D4 */ s16 field_0x34d4; - /* 0x34D6 */ s16 field_0x34d6; - /* 0x34D8 */ s16 field_0x34d8; - /* 0x34DA */ s16 field_0x34da; - /* 0x34DC */ u8 field_0x34DC[0x34DE - 0x34DC]; - /* 0x34DE */ s16 field_0x34de; - /* 0x34E0 */ s16 field_0x34E0; - /* 0x34E2 */ s16 field_0x34E2; - /* 0x34E4 */ s16 field_0x34E4; - /* 0x34E6 */ s16 field_0x34e6; - /* 0x34E8 */ s16 field_0x34E8; - /* 0x34EA */ s16 field_0x34EA; - /* 0x34EC */ s16 field_0x34EC; - /* 0x34EE */ u16 field_0x34EE; - /* 0x34F0 */ u16 field_0x34F0; - /* 0x34F2 */ s16 field_0x34F2; - /* 0x34F4 */ s16 field_0x34F4; - /* 0x34F6 */ u8 field_0x34F6[0x3522 - 0x34F6]; - /* 0x3522 */ s16 field_0x3522; - /* 0x3524 */ u8 field_0x3524[0x352C - 0x3524]; - /* 0x352C */ s16 field_0x352c; - /* 0x352E */ s16 field_0x352e; - /* 0x3530 */ s16 field_0x3530; - /* 0x3532 */ s16 field_0x3532; - /* 0x3534 */ u8 field_0x3534[0x3544 - 0x3534]; - /* 0x3544 */ s16 field_0x3544; - /* 0x3546 */ u8 field_0x3546[0x354C - 0x3546]; - /* 0x354C */ s16 field_0x354c; - /* 0x354E */ s16 field_0x354e; - /* 0x3550 */ u8 field_0x3550[0x3554 - 0x3550]; - /* 0x3554 */ s16 field_0x3554; - /* 0x3556 */ u8 field_0x3556[0x355E - 0x3556]; - /* 0x355E */ u16 field_0x355e; + /* 0x34C9 */ u8 m34C9; + /* 0x34CA */ u8 m34CA; + /* 0x34CB */ u8 m34CB; + /* 0x34CC */ u8 m34CC[0x34D0 - 0x34CC]; + /* 0x34D0 */ s16 m34D0; + /* 0x34D2 */ s16 m34D2; + /* 0x34D4 */ s16 m34D4; + /* 0x34D6 */ s16 m34D6; + /* 0x34D8 */ s16 m34D8; + /* 0x34DA */ s16 m34DA; + /* 0x34DC */ s16 m34DC; + /* 0x34DE */ s16 m34DE; + /* 0x34E0 */ s16 m34E0; + /* 0x34E2 */ s16 m34E2; + /* 0x34E4 */ s16 m34E4; + /* 0x34E6 */ s16 m34E6; + /* 0x34E8 */ s16 m34E8; + /* 0x34EA */ s16 m34EA; + /* 0x34EC */ s16 m34EC; + /* 0x34EE */ u16 m34EE; + /* 0x34F0 */ u16 m34F0; + /* 0x34F2 */ s16 m34F2; + /* 0x34F4 */ s16 m34F4; + /* 0x34F6 */ s16 m34F6; + /* 0x34F8 */ s16 m34F8; + /* 0x34FA */ s16 m34FA; + /* 0x34FC */ s16 m34FC; + /* 0x34FE */ s16 m34FE; + /* 0x3500 */ s16 m3500; + /* 0x3502 */ s16 m3502; + /* 0x3504 */ s16 m3504; + /* 0x3506 */ s16 m3506; + /* 0x3508 */ s16 m3508; + /* 0x350A */ s16 m350A; + /* 0x350C */ s16 m350C; + /* 0x350E */ s16 m350E; + /* 0x3510 */ s16 m3510; + /* 0x3512 */ s16 m3512; + /* 0x3514 */ s16 m3514; + /* 0x3516 */ s16 m3516; + /* 0x3518 */ s16 m3518; + /* 0x351A */ s16 m351A; + /* 0x351C */ s16 m351C; + /* 0x351E */ s16 m351E; + /* 0x3520 */ u8 m3520[0x3522 - 0x3520]; + /* 0x3522 */ s16 m3522; + /* 0x3524 */ s16 m3524; + /* 0x3526 */ s16 m3526; + /* 0x3528 */ s16 m3528; + /* 0x352A */ s16 m352A; + /* 0x352C */ s16 m352C; + /* 0x352E */ s16 m352E; + /* 0x3530 */ s16 m3530; + /* 0x3532 */ s16 m3532; + /* 0x3534 */ s16 m3534; + /* 0x3536 */ s16 m3536; + /* 0x3538 */ s16 m3538; + /* 0x353A */ s16 m353A; + /* 0x353C */ s16 m353C; + /* 0x353E */ s16 m353E; + /* 0x3540 */ s16 m3540; + /* 0x3542 */ u8 m3542[0x3544 - 0x3542]; + /* 0x3544 */ s16 m3544; + /* 0x3546 */ s16 mShieldFrontRangeYAngle; + /* 0x3548 */ u8 m3548[0x354C - 0x3548]; + /* 0x354C */ s16 m354C; + /* 0x354E */ s16 mTinkleShieldTimer; + /* 0x3550 */ u8 m3550[0x3554 - 0x3550]; + /* 0x3554 */ s16 m3554; + /* 0x3556 */ u8 m3556[0x355E - 0x3556]; + /* 0x355E */ u16 m355E; /* 0x3560 */ u16 mHeldItemType; - /* 0x3562 */ u8 field_0x3562[0x3564 - 0x3562]; - /* 0x3564 */ s16 field_0x3564; - /* 0x3566 */ s16 field_0x3566; - /* 0x3568 */ s16 field_0x3568; - /* 0x356A */ u8 field_0x356A[0x356C - 0x356A]; + /* 0x3562 */ u8 m3562[0x3564 - 0x3562]; + /* 0x3564 */ s16 m3564; + /* 0x3566 */ s16 m3566; + /* 0x3568 */ s16 m3568; + /* 0x356A */ u8 m356A[0x356C - 0x356A]; /* 0x356C */ int mCameraInfoIdx; - /* 0x3570 */ int field_0x3570; - /* 0x3574 */ int field_0x3574; - /* 0x3578 */ u8 field_0x3578[0x3580 - 0x3578]; - /* 0x3580 */ int field_0x3580; + /* 0x3570 */ int m3570; + /* 0x3574 */ int m3574; + /* 0x3578 */ u8 m3578[0x3580 - 0x3578]; + /* 0x3580 */ int m3580; /* 0x3584 */ int mCurrentGroundAttributeCode; - /* 0x3588 */ u8 field_0x3588[0x358C - 0x3588]; + /* 0x3588 */ u8 m3588[0x358C - 0x3588]; /* 0x358C */ int mStaffIdx; - /* 0x3590 */ int field_0x3590; - /* 0x3594 */ int field_0x3594; - /* 0x3598 */ f32 field_0x3598; - /* 0x359C */ u8 field_0x359C[0x35A0 - 0x359C]; - /* 0x35A0 */ f32 field_0x35a0; - /* 0x35A4 */ f32 field_0x35a4; - /* 0x35A8 */ u8 field_0x35A8[0x35BC - 0x35A8]; + /* 0x3590 */ int m3590; + /* 0x3594 */ int m3594; + /* 0x3598 */ f32 m3598; + /* 0x359C */ u8 m359C[0x35A0 - 0x359C]; + /* 0x35A0 */ f32 m35A0; + /* 0x35A4 */ f32 m35A4; + /* 0x35A8 */ u8 m35A8[0x35BC - 0x35A8]; /* 0x35BC */ f32 mVelocity; - /* 0x35C0 */ u8 field_0x35C0[0x35C4 - 0x35C0]; - /* 0x35C4 */ f32 field_0x35c4; - /* 0x35C8 */ f32 field_0x35c8; - /* 0x35CC */ u8 field_0x35CC[0x35D0 - 0x35CC]; - /* 0x35D0 */ f32 field_0x35d0; - /* 0x35D4 */ u8 field_0x35D4[0x35D8 - 0x35D4]; - /* 0x35D8 */ f32 field_0x35d8; - /* 0x35DC */ u8 field_0x35DC[0x35E4 - 0x35DC]; - /* 0x35E4 */ f32 field_0x35e4; - /* 0x35E8 */ f32 field_0x35e8; - /* 0x35EC */ f32 field_0x35ec; - /* 0x35F0 */ f32 field_0x35f0; - /* 0x35F4 */ f32 field_0x35f4; - /* 0x35F8 */ u8 field_0x35F8[0x35FC - 0x35F8]; - /* 0x35FC */ f32 field_0x35fc; - /* 0x3600 */ f32 field_0x3600; - /* 0x3604 */ f32 field_0x3604; - /* 0x3608 */ f32 field_0x3608; - /* 0x360C */ f32 field_0x360C; - /* 0x3610 */ f32 field_0x3610; - /* 0x3614 */ int field_0x3614; + /* 0x35C0 */ u8 m35C0[0x35C4 - 0x35C0]; + /* 0x35C4 */ f32 m35C4; + /* 0x35C8 */ f32 m35C8; + /* 0x35CC */ u8 m35CC[0x35D0 - 0x35CC]; + /* 0x35D0 */ f32 m35D0; + /* 0x35D4 */ u8 m35D4[0x35D8 - 0x35D4]; + /* 0x35D8 */ f32 m35D8; + /* 0x35DC */ u8 m35DC[0x35E4 - 0x35DC]; + /* 0x35E4 */ f32 m35E4; + /* 0x35E8 */ f32 m35E8; + /* 0x35EC */ f32 m35EC; + /* 0x35F0 */ f32 m35F0; + /* 0x35F4 */ f32 m35F4; + /* 0x35F8 */ f32 m35F8; + /* 0x35FC */ f32 m35FC; + /* 0x3600 */ f32 m3600; + /* 0x3604 */ f32 m3604; + /* 0x3608 */ f32 m3608; + /* 0x360C */ f32 m360C; + /* 0x3610 */ f32 m3610; + /* 0x3614 */ int m3614; /* 0x3618 */ u32 mProcFlags; - /* 0x361C */ u8 field_0x361C[0x3624 - 0x361C]; - /* 0x3624 */ int field_0x3624; - /* 0x3628 */ int field_0x3628; - /* 0x362C */ u8 field_0x362C[0x3630 - 0x362C]; - /* 0x3630 */ int field_0x3630; - /* 0x3634 */ int field_0x3634; - /* 0x3638 */ u8 field_0x3638[0x3644 - 0x3638]; - /* 0x3644 */ f32 field_0x3644; - /* 0x3648 */ u8 field_0x3648[0x3668 - 0x3648]; - /* 0x3668 */ J3DTransformInfo field_0x3668; - /* 0x3688 */ cXyz field_0x3688; + /* 0x361C */ u32 mMtrlSndId; + /* 0x3620 */ u32 m3620; + /* 0x3624 */ int m3624; + /* 0x3628 */ int m3628; + /* 0x362C */ u8 m362C[0x3630 - 0x362C]; + /* 0x3630 */ int m3630; + /* 0x3634 */ int m3634; + /* 0x3638 */ int mMsgId; + /* 0x363C */ u8 m363C[0x3644 - 0x363C]; + /* 0x3644 */ f32 m3644; + /* 0x3648 */ u8 m3648[0x3668 - 0x3648]; + /* 0x3668 */ J3DTransformInfo m3668; + /* 0x3688 */ cXyz m3688; /* 0x3694 */ cXyz mOldSpeed; - /* 0x36A0 */ cXyz field_0x36a0; - /* 0x36AC */ cXyz field_0x36ac; - /* 0x36B8 */ u8 field_0x36B8[0x36C4 - 0x36B8]; - /* 0x36C4 */ cXyz field_0x36c4; - /* 0x36D0 */ u8 field_0x36D0[0x3700 - 0x36D0]; - /* 0x3700 */ cXyz field_0x3700; - /* 0x370C */ cXyz field_0x370c; - /* 0x3718 */ u8 field_0x3718[0x3724 - 0x3718]; - /* 0x3724 */ cXyz field_0x3724; - /* 0x3730 */ cXyz field_0x3730; - /* 0x373C */ u8 field_0x373C[0x3748 - 0x373C]; - /* 0x3748 */ cXyz field_0x3748; - /* 0x3754 */ u8 field_0x3754[0x37E4 - 0x3754]; + /* 0x36A0 */ cXyz m36A0; + /* 0x36AC */ cXyz m36AC; + /* 0x36B8 */ cXyz m36B8; + /* 0x36C4 */ cXyz m36C4; + /* 0x36D0 */ cXyz m36D0; + /* 0x36DC */ cXyz m36DC; + /* 0x36E8 */ cXyz m36E8; + /* 0x36F4 */ u8 m36F4[0x3700 - 0x36F4]; + /* 0x3700 */ cXyz m3700; + /* 0x370C */ cXyz m370C; + /* 0x3718 */ u8 m3718[0x3724 - 0x3718]; + /* 0x3724 */ cXyz m3724; + /* 0x3730 */ cXyz m3730; + /* 0x373C */ u8 m373C[0x3748 - 0x373C]; + /* 0x3748 */ cXyz m3748; + /* 0x3754 */ u8 m3754[0x37E4 - 0x3754]; /* 0x37E4 */ daPy_swBlur_c mSwBlur; /* 0x3DB8 */ daPy_footData_c mFootData[2]; - /* 0x3FE8 */ dCcD_Stts field_0x3fe8; - /* 0x4024 */ dCcD_Cyl field_0x4024; - /* 0x4154 */ dCcD_Cyl field_0x4154; - /* 0x4284 */ dCcD_Cyl field_0x4284; - /* 0x43B4 */ dCcD_Cyl field_0x43b4; - /* 0x44E4 */ dCcD_Cps field_0x44e4[3]; - /* 0x488C */ dCcD_Cps field_0x488c; - /* 0x49C4 */ dCcD_Sph field_0x49c4; - /* 0x4AF0 */ dCcD_Cps field_0x4af0; + /* 0x3FE8 */ dCcD_Stts mStts; + /* 0x4024 */ dCcD_Cyl m4024; + /* 0x4154 */ dCcD_Cyl m4154; + /* 0x4284 */ dCcD_Cyl m4284; + /* 0x43B4 */ dCcD_Cyl m43B4; + /* 0x44E4 */ dCcD_Cps m44E4[3]; + /* 0x488C */ dCcD_Cps m488C; + /* 0x49C4 */ dCcD_Sph m49C4; + /* 0x4AF0 */ dCcD_Cps m4AF0; typedef int (daPy_lk_c::*daPy_ProcFunc)(); diff --git a/src/d/actor/d_a_agb.cpp b/src/d/actor/d_a_agb.cpp index 202cd776e..ddef64d48 100644 --- a/src/d/actor/d_a_agb.cpp +++ b/src/d/actor/d_a_agb.cpp @@ -760,7 +760,7 @@ void daAgb_c::GbaItemUse() { case 3: daPy_lk_c* temp_r3 = daPy_getPlayerLinkActorClass(); temp_r3->onNoResetFlg0(daPy_py_c::daPyFlg0_UNK1000); - temp_r3->field_0x354c = 0x96; + temp_r3->m354C = 5*30; resetCursor(false); field_0x65c = 0x96; mBrk.setPlaySpeed(6.0f); @@ -779,7 +779,7 @@ void daAgb_c::GbaItemUse() { mEffect = 0; return; } else { - daPy_getPlayerLinkActorClass()->field_0x354e = 300; + daPy_getPlayerLinkActorClass()->setTinkleShield(300); resetCursor(false); field_0x65c = 300; mBrk.setPlaySpeed(6.0f); @@ -792,9 +792,9 @@ void daAgb_c::GbaItemUse() { } else { daPy_lk_c* temp_r4 = daPy_getPlayerLinkActorClass(); temp_r4->onNoResetFlg0(daPy_py_c::daPyFlg0_UNK1000); - temp_r4->field_0x354c = 300; + temp_r4->m354C = 300; if (!(daPy_getPlayerLinkActorClass()->checkEquipDragonShield())) { - temp_r4->field_0x354e = 300; + temp_r4->setTinkleShield(300); } resetCursor(false); @@ -812,7 +812,7 @@ void daAgb_c::GbaItemUse() { return; } - daPy_getPlayerLinkActorClass()->field_0x354e = 600; + daPy_getPlayerLinkActorClass()->setTinkleShield(600); resetCursor(false); field_0x65c = 600; @@ -953,12 +953,11 @@ int daAgb_Execute(daAgb_c* i_this) { if (i_this->field_0x66b == 3 || i_this->field_0x66b == 12) { daPy_lk_c* player_p = daPy_getPlayerLinkActorClass(); player_p->onNoResetFlg0(daPy_py_c::daPyFlg0_UNK1000); - player_p->field_0x354c = 10; + player_p->m354C = 10; } else if (i_this->field_0x66b == 4 || i_this->field_0x66b == 13 || i_this->field_0x66b == 12) { - daPy_lk_c* player_p = daPy_getPlayerLinkActorClass(); - player_p->field_0x354e = 10; + daPy_getPlayerLinkActorClass()->setTinkleShield(10); } i_this->field_0x65c = 0; diff --git a/src/d/actor/d_a_player_grab.inc b/src/d/actor/d_a_player_grab.inc index 267aca93a..1f5906868 100644 --- a/src/d/actor/d_a_player_grab.inc +++ b/src/d/actor/d_a_player_grab.inc @@ -13,7 +13,7 @@ #include "d/actor/d_a_player_link.h" /* 8013A85C-8013A890 .text checkGrabSpecialHeavyState__9daPy_lk_cFv */ -void daPy_lk_c::checkGrabSpecialHeavyState() { +BOOL daPy_lk_c::checkGrabSpecialHeavyState() { /* Nonmatching */ } diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp index 71f579f3c..5b4ea7d9b 100644 --- a/src/d/actor/d_a_player_main.cpp +++ b/src/d/actor/d_a_player_main.cpp @@ -29,28 +29,46 @@ static BOOL daPy_createHeap(fopAc_ac_c* i_this) { } /* 80102F64-80103074 .text calc__13daPy_matAnm_cCFP11J3DMaterial */ -void daPy_matAnm_c::calc(J3DMaterial*) const { - /* Nonmatching */ +void daPy_matAnm_c::calc(J3DMaterial* mat) const { + daPy_matAnm_c* i_this = const_cast(this); + + J3DMaterialAnm::calc(mat); + + for (u32 i = 0; i < 8; i++) { + if (getTexMtxAnm(i)) { + J3DTextureSRTInfo& srt = mat->getTexMtx(i)->getTexMtxInfo().mSRT; + if (m_morf_frame != 0) { + f32 temp = 1.0f / (m_morf_frame + 1); + srt.mTranslationX = mEyePosOld.x * (1.0f - temp) + (srt.mTranslationX * temp); + srt.mTranslationY = mEyePosOld.y * (1.0f - temp) + (srt.mTranslationY * temp); + } else if (m_eye_move_flg != 0) { + srt.mTranslationX = mEyePos.x; + srt.mTranslationY = mEyePos.y; + } + i_this->mEyePosOld.x = srt.mTranslationX; + i_this->mEyePosOld.y = srt.mTranslationY; + } + } } /* 80103074-801030BC .text seStartOnlyReverb__9daPy_lk_cFUl */ -void daPy_lk_c::seStartOnlyReverb(u32) { - /* Nonmatching */ +void daPy_lk_c::seStartOnlyReverb(u32 sfxID) { + mDoAud_seStart(sfxID, ¤t.pos, 0, mReverb); } /* 801030BC-80103104 .text seStartMapInfo__9daPy_lk_cFUl */ -void daPy_lk_c::seStartMapInfo(u32) { - /* Nonmatching */ +void daPy_lk_c::seStartMapInfo(u32 sfxID) { + mDoAud_seStart(sfxID, ¤t.pos, mMtrlSndId, mReverb); } /* 80103104-8010314C .text seStartSwordCut__9daPy_lk_cFUl */ -void daPy_lk_c::seStartSwordCut(u32) { - /* Nonmatching */ +void daPy_lk_c::seStartSwordCut(u32 sfxID) { + mDoAud_seStart(sfxID, &mSwordTopPos, 0, mReverb); } /* 8010314C-801031A4 .text voiceStart__9daPy_lk_cFUl */ void daPy_lk_c::voiceStart(u32 param_1) { - mDoAud_linkVoiceStart(param_1, &mEyePos, mDoAud_getLinkVoiceVowel(param_1), field_0x34bf); + mDoAud_linkVoiceStart(param_1, &mEyePos, mDoAud_getLinkVoiceVowel(param_1), mReverb); } /* 801031A4-801031DC .text itemButton__9daPy_lk_cCFv */ @@ -83,8 +101,6 @@ void daPy_lk_c::auraJointCB0(int) { /* Nonmatching */ } -class J3DNode; - /* 80103450-80103494 .text daPy_auraCallback__FP7J3DNodei */ static BOOL daPy_auraCallback(J3DNode*, int) { /* Nonmatching */ @@ -501,12 +517,12 @@ void daPy_lk_c::checkBossGomaStage() { } /* 8010C4A4-8010C4C8 .text checkSingleItemEquipAnime__9daPy_lk_cCFv */ -void daPy_lk_c::checkSingleItemEquipAnime() const { - /* Nonmatching */ +BOOL daPy_lk_c::checkSingleItemEquipAnime() const { + return m_anm_heap_upper[2].mIdx == LKANM_BCK_TAKEL || m_anm_heap_upper[2].mIdx == LKANM_BCK_TAKER; } /* 8010C4C8-8010C528 .text checkItemEquipAnime__9daPy_lk_cCFv */ -void daPy_lk_c::checkItemEquipAnime() const { +BOOL daPy_lk_c::checkItemEquipAnime() const { /* Nonmatching */ } @@ -706,13 +722,18 @@ void daPy_lk_c::checkRestHPAnime() { } /* 80111EFC-80111F5C .text checkHeavyStateOn__9daPy_lk_cFv */ -void daPy_lk_c::checkHeavyStateOn() { - /* Nonmatching */ +BOOL daPy_lk_c::checkHeavyStateOn() { + if (!dComIfGp_event_runCheck() && mDemo.getDemoType() == 0 && + (getHeavyStateAndBoots() || checkGrabSpecialHeavyState())) + { + return TRUE; + } + return FALSE; } /* 80111F5C-80111F7C .text checkBottleItem__9daPy_lk_cCFi */ -void daPy_lk_c::checkBottleItem(int) const { - /* Nonmatching */ +BOOL daPy_lk_c::checkBottleItem(int itemNo) const { + return itemNo >= EMPTY_BOTTLE && itemNo <= UNK_BOTTLE_60; } /* 80111F7C-80111FEC .text checkDrinkBottleItem__9daPy_lk_cCFi */ @@ -796,10 +817,10 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) { mMaxFallSpeed = daPy_HIO_autoJump_c0::m.field_0x10; setSmallFanModel(); mHeldItemType = DEKU_LEAF; - field_0x35f0 = field_0x3688.y; - field_0x3730 = cXyz::Zero; - field_0x34E0 = 0; - field_0x34E4 = 0; + m35F0 = m3688.y; + m3730 = cXyz::Zero; + m34E0 = 0; + m34E4 = 0; } else if (mCurProcID == 0x28) { mMaxFallSpeed = daPy_HIO_autoJump_c0::m.field_0x10; } else if (mCurProcID == 0xA9) { @@ -807,8 +828,8 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) { speed.y = 0.0f; } else if (mCurProcID == 0xAE || mCurProcID == 0xD0) { dKy_Itemgetcol_chg_off(); - if (mCurProcID == 0xAE && field_0x34d8 != 0) { - field_0x34c2 = 0xB; + if (mCurProcID == 0xAE && m34D8 != 0) { + m34C2 = 0xB; } } else if (mCurProcID == 0xC3 || mCurProcID == 0xA2) { daItemBase_c* item = (daItemBase_c*)fopAcM_getItemEventPartner(this); @@ -818,8 +839,8 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) { } else if (mCurProcID == 0xCD) { deleteEquipItem(0); } else if (mCurProcID == 0x57) { - if (field_0x33a8.getEmitter()) { - field_0x33a8.getEmitter()->setGlobalAlpha(0); + if (m33A8.getEmitter()) { + m33A8.getEmitter()->setGlobalAlpha(0); } } else if (mCurProcID == 0x8D) { deleteArrow(); @@ -830,22 +851,22 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) { temp_r28 = (mProcFlags & 0x40000) >> 0x12; if (mProcFlags & 0x10040820) { - field_0x34c2 = 0xA; + m34C2 = 0xA; } temp_r29 = ((mProcFlags & 0x2) >> 1) ^ 1; mCurProcID = procID; mCurProcFunc = procInit.mProcFunc; - field_0x3598 = 0.0f; + m3598 = 0.0f; mProcFlags = procInit.mProcFlags; - if (field_0x34c2 == 1) { - field_0x34c2 = 2; + if (m34C2 == 1) { + m34C2 = 2; } if (mProcFlags & 0x10040820) { - field_0x34c2 = 0xB; + m34C2 = 0xB; } if (mProcFlags & 0x20) { @@ -858,22 +879,22 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) { dComIfGp_clearPlayerStatus1(0, ~0xFFF48400); mGravity = daPy_HIO_autoJump_c0::m.field_0xC; - field_0x34F2 = 0; - field_0x34F4 = 0; + m34F2 = 0; + m34F4 = 0; onResetFlg0(daPyRFlg0_UNK8000000); - field_0x34c5 = 0; + m34C5 = 0; offNoResetFlg0(daPyFlg0_UNK4); offResetFlg0(daPyRFlg0_UNK2); offNoResetFlg1(daPyFlg1_UNK8000000); - field_0x3544 = 0; + m3544 = 0; mSightPacket.offDrawFlg(); mSightPacket.offLockFlg(); - field_0x35c4 = 0.0f; + m35C4 = 0.0f; mFanSwingCb.onAlphaOutFlg(); shape_angle.x = 0; shape_angle.z = 0; - field_0x34EC = 0; + m34EC = 0; if (!(checkEquipAnime() && (mProcFlags & 0x4)) && !(mProcFlags & 0x1000)) { if (!(checkGrabAnime() || checkBoomerangThrowAnime()) || !(mProcFlags & 0x4000)) { @@ -889,9 +910,9 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) { } if (temp_r29 && (mProcFlags & 2)) { - field_0x3688 = current.pos; - field_0x35f0 = field_0x3688.y; - field_0x35f4 = field_0x3688.y; + m3688 = current.pos; + m35F0 = m3688.y; + m35F4 = m3688.y; } if (mCurProcID != 0x37) { @@ -900,7 +921,7 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) { } if (!(mProcFlags & 0x40000)) { - field_0x3608 = 0.0f; + m3608 = 0.0f; } resetFootEffect(); @@ -909,19 +930,19 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) { resetDemoTextureAnime(); } - field_0x338c.end(); - field_0x33a8.end(); - field_0x32e4.end(); - field_0x32f0.end(); + m338C.end(); + m33A8.end(); + m32E4.end(); + m32F0.end(); mSmokeEcallBack.end(); if (!(field_0x2b0 < 0.0f)) { - field_0x35d8 = 0.0f; + m35D8 = 0.0f; } offNoResetFlg1(static_cast(daPyFlg1_UNK80 | daPyFlg1_UNK800000 | daPyFlg1_UNK1000000)); - field_0x35ec = 0.0f; + m35EC = 0.0f; if (mHeldItemType == HUMMER) { mSwordAnim.changeBckOnly(getItemAnimeResource(0x97)); @@ -929,7 +950,7 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) { mSwordAnim.changeBckOnly(getItemAnimeResource(0xD)); } - field_0x35e8 = 0.0f; + m35E8 = 0.0f; if (!(mProcFlags & 0x800) && mCurProcID != 0x76 && mCurProcID != 0x7D) { freeRopeItem(); @@ -945,7 +966,7 @@ BOOL daPy_lk_c::commonProcInit(daPy_lk_c::daPy_PROC procID) { setBgCheckParam(); - return true; + return TRUE; } /* 80112954-80112A24 .text procScope_init__9daPy_lk_cFi */ @@ -1229,8 +1250,8 @@ void daPy_lk_c::procBackJumpLand() { } /* 80115E88-80115EA4 .text checkAutoJumpFlying__9daPy_lk_cCFv */ -void daPy_lk_c::checkAutoJumpFlying() const { - /* Nonmatching */ +int daPy_lk_c::checkAutoJumpFlying() const { + return mCurProcID != 0x24 ? -1 : m34D0; } /* 80115EA4-8011602C .text procAutoJump_init__9daPy_lk_cFv */ @@ -1550,12 +1571,51 @@ void daPy_lk_c::setStickData() { /* 8011FF50-801200F8 .text setBgCheckParam__9daPy_lk_cFv */ void daPy_lk_c::setBgCheckParam() { - /* Nonmatching */ + mAcchCir[0].SetWallH(30.1f); + mAcchCir[1].SetWallH(89.9f); + mAcchCir[2].SetWallH(125.0f); + + if (mCurProcID == 0x7C) { + mAcchCir[0].SetWallH(-125.0f); + mAcchCir[1].SetWallH(-89.9f); + mAcchCir[2].SetWallH(0.0f); + } else if (mCurProcID == 0x6A || mProcFlags & 0x410000) { + mAcchCir[0].SetWallR(5.0f); + } else if (mProcFlags & 0x200000) { + mAcchCir[0].SetWallR(40.0f); + } else if (mProcFlags & 0x10) { + mAcchCir[0].SetWallR(daPy_HIO_wall_c0::m.field_0x50); + if (checkNoResetFlg0(daPyFlg0_UNK10000)) { + mAcchCir[2].SetWallH(89.9f); + } + } else if (mProcFlags & 0x40000) { + mAcchCir[0].SetWallR(67.5f); + mAcchCir[0].SetWallH(-5.0f); + mAcchCir[1].SetWallH(0.0f); + mAcchCir[2].SetWallH(20.0f); + } else if (mProcFlags & 0x1000000 && mCurProcID != 0x12) { + mAcchCir[0].SetWallR(30.0f); + mAcchCir[0].SetWallH(10.0f); + mAcchCir[1].SetWallH(50.0f); + mAcchCir[2].SetWallH(50.0f); + } else if (mProcFlags & 0x20) { + mAcchCir[0].SetWallR(12.5f); + mAcchCir[0].SetWallH(25.0f); + mAcchCir[1].SetWallH(25.0f); + mAcchCir[2].SetWallH(25.0f); + } else if (field_0x2b0 < 0.0f) { + mAcchCir[0].SetWallR(50.0f); + } else { + mAcchCir[0].SetWallR(35.0f); + } + + mAcchCir[1].SetWallR(mAcchCir[0].GetWallR()); + mAcchCir[2].SetWallR(mAcchCir[0].GetWallR()); } /* 801200F8-8012010C .text setParamData__9daPy_lk_cFiiii */ -u32 daPy_lk_c::setParamData(int, int, int, int) { - /* Nonmatching */ +u32 daPy_lk_c::setParamData(int roomNo, int spawnType, int evntIdx, int extraParams) { + return roomNo & 0x3F | (spawnType & 0xF) << 0xC | evntIdx << 0x18 | extraParams; } /* 8012010C-8012024C .text checkLavaFace__9daPy_lk_cFP4cXyzi */ @@ -1583,12 +1643,12 @@ BOOL daPy_lk_c::startRestartRoom(u32 param_1, int param_2, f32 param_3, int i_po dComIfGp_setNextStage("sea", 1, 48, -1, 0.0f, 0, 1, 0); mDoAud_seStart(JA_SE_FORCE_BACK, NULL, 0, 0); // daNpc_Sarace_c::ship_race_result = 3; - field_0x354e = 0; + mTinkleShieldTimer = 0; return TRUE; } else { u32 stageType = dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()); setDamagePoint(param_3); - field_0x354e = 0; + mTinkleShieldTimer = 0; if (stageType == 7 && !dComIfGs_isEventBit(0x2A08) && (current.roomNo == 11 || current.roomNo == 44) && dStage_chkPlayerId(0x80, current.roomNo)) { dComIfGp_setNextStage(dComIfGp_getStartStageName(), 0x80, current.roomNo, -1, 0.0f, param_1, 1, 0); @@ -1599,9 +1659,9 @@ BOOL daPy_lk_c::startRestartRoom(u32 param_1, int param_2, f32 param_3, int i_po } if (checkNoResetFlg0(daPyFlg0_UNK10) && mCurProcID != 0xB2) { - i_point = field_0x34CB; + i_point = m34CB; } else { - i_point = field_0x3594; + i_point = m3594; if (i_point != 0xFF && !dComIfGs_checkSeaLandingEvent(current.roomNo)) { i_point = 0xFF; } @@ -1714,50 +1774,49 @@ static BOOL daPy_IsDelete(daPy_lk_c*) { /* 80122D58-80123058 .text playerDelete__9daPy_lk_cFv */ BOOL daPy_lk_c::playerDelete() { - /* Nonmatching */ - for (int i = 0; i < (int)ARRAY_SIZE(field_0x31e8); i++) { - daPy_footEffect_c* footEffect = &field_0x31e8[i]; - footEffect->mSmokeCb.end(); - footEffect->mFollowCb.end(); + int i; + for (i = 0; i < (int)ARRAY_SIZE(m31E8); i++) { + m31E8[i].getSmokeCallBack()->end(); + m31E8[i].getOtherCallBack()->end(); } if (mFanSwingCb.mpEmitter) { mFanSwingCb.mpEmitter->clearStatus(0x40); mFanSwingCb.mpEmitter->setEmitterCallBackPtr(NULL); mFanSwingCb.mpEmitter = NULL; } - field_0x338c.end(); - field_0x33a8.end(); - field_0x3280.end(); - field_0x334C.end(); - field_0x336C.end(); + m338C.end(); + m33A8.end(); + m3280.end(); + m334C.end(); + m336C.end(); mSwimTailEcallBack[0].remove(); mSwimTailEcallBack[1].remove(); - field_0x32e4.end(); - field_0x32f0.end(); - field_0x33E8.end(); + m32E4.end(); + m32F0.end(); + m33E8.end(); mSmokeEcallBack.end(); - field_0x331C.end(); - field_0x332C.end(); - field_0x333C.end(); - field_0x3400.end(); - field_0x3410.end(); - field_0x3438.end(); - field_0x342C.end(); - field_0x3454.end(); - field_0x3460[0].end(); - field_0x3460[1].end(); + m331C.end(); + m332C.end(); + m333C.end(); + m3400.end(); + m3410.end(); + m3438.end(); + m342C.end(); + m3454.end(); + m3460[0].end(); + m3460[1].end(); endDamageEmitter(); - dKy_plight_cut(&field_0x3498); + dKy_plight_cut(&m3498); mDoAud_seDeleteObject(&mSwordTopPos); mDoAud_seDeleteObject(&mRopePos); - mDoAud_seDeleteObject(&field_0x338c.field_0x08); - mDoAud_seDeleteObject(&field_0x488c.GetEndP()); + mDoAud_seDeleteObject(&m338C.field_0x08); + mDoAud_seDeleteObject(&m488C.GetEndP()); - for (int i = 0; i < (int)ARRAY_SIZE(m_anm_heap_under); i++) { + for (i = 0; i < (int)ARRAY_SIZE(m_anm_heap_under); i++) { mDoExt_destroySolidHeap(m_anm_heap_under[i].mpAnimeHeap); } - for (int i = 0; i < (int)ARRAY_SIZE(m_anm_heap_upper); i++) { + for (i = 0; i < (int)ARRAY_SIZE(m_anm_heap_upper); i++) { mDoExt_destroySolidHeap(m_anm_heap_upper[i].mpAnimeHeap); } @@ -1765,10 +1824,14 @@ BOOL daPy_lk_c::playerDelete() { mDoExt_destroySolidHeap(mpTextureScrollResHeap); mDoExt_destroySolidHeap(mpItemHeaps[0]); mDoExt_destroySolidHeap(mpItemHeaps[1]); - mDoExt_destroySolidHeap(field_0x2ECC); + mDoExt_destroySolidHeap(m2ECC); mJAIZelAnime.stop(); + if (checkNoResetFlg1(daPyFlg1_UNK8)) { + *m0338 = m033C; + } + dComIfGp_clearPlayerStatus0(0, 0x00400000); // Waiting for the boomerang to come back dComIfGp_clearPlayerStatus1(0, 0x00040000); g_dComIfG_gameInfo.play.field_0x4947 = 0; @@ -2003,14 +2066,14 @@ int phase_3(daPy_lk_c* i_this) { } static s32 daPy_Create(fopAc_ac_c* i_this) { - static int (*l_method[3])(void*) = { - (int (*)(void*))phase_1, - (int (*)(void*))phase_2, - (int (*)(void*))phase_3, + static int (*l_method[3])(daPy_lk_c*) = { + phase_1, + phase_2, + phase_3, }; daPy_lk_c* player_link = (daPy_lk_c*)i_this; - return dComLbG_PhaseHandler(&player_link->mPhsLoad, l_method, player_link); + return dComLbG_PhaseHandler(&player_link->mPhsLoad, (cPhs__Handler*)l_method, player_link); } /* 80127BA0-80127CC0 .text setSeAnime__9daPy_lk_cFPC14daPy_anmHeap_cP12J3DFrameCtrl */ diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index 5ff9fcb16..210b6244e 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -636,15 +636,15 @@ void dComIfGp_setNextStage(const char* i_stageName, s16 i_point, s8 i_roomNo, s8 g_dComIfG_gameInfo.play.setNextStage(i_stageName, i_roomNo, i_point, i_layer, i_wipe); if (daPy_getPlayerLinkActorClass() != NULL) { - u32 mode = daPy_getPlayerLinkActorClass()->mNoResetFlg1; + daPy_lk_c* link = daPy_getPlayerLinkActorClass(); - if (mode & daPy_lk_c::daPyFlg1_EQUIP_DRAGON_SHIELD) { + if (link->checkEquipDragonShield()) { i_lastMode |= 0x8000; } - i_lastMode |= daPy_getPlayerLinkActorClass()->field_0x354e << 16; + i_lastMode |= link->checkTinkleShield() << 0x10; - if (mode & daPy_lk_c::daPyFlg1_UNK8000) { + if (link->checkNoResetFlg1(daPy_lk_c::daPyFlg1_UNK8000)) { i_lastMode |= 0x4000; } } @@ -1148,7 +1148,7 @@ void dComIfGs_setGameStartStage() { dKy_set_nexttime(120.0f); } else if (stage_type == 7) { daPy_lk_c* player_p = daPy_getPlayerLinkActorClass(); - point = player_p->field_0x3594; + point = player_p->m3594; s8 temp_r3 = player_p->current.roomNo; room_no = temp_r3; diff --git a/src/d/d_metronome.cpp b/src/d/d_metronome.cpp index d010abb36..4e2c74487 100644 --- a/src/d/d_metronome.cpp +++ b/src/d/d_metronome.cpp @@ -386,7 +386,7 @@ void dMetronome_c::melodyShow() { pos.y = 0.0f; pos.z = 0.0f; - s32 note = daPy_getPlayerLinkActorClass()->field_0x34d6; + s32 note = daPy_getPlayerLinkActorClass()->m34D6; if (pane_wn[0].mUserArea < mMelodyNum) { mNote[pane_wn[0].mUserArea] = note; melodyGuideShow(note, pane_wn[0].mUserArea);