diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2024-10-19 01:54:22 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-19 11:54:22 +0300 |
| commit | 0652b2c7b3722e40ded1a34f8846b8ae9d8fa4eb (patch) | |
| tree | 39764176734667add46d3a1f73ac76eb2650792a /include/d | |
| parent | abc4c6659ae6e9cab854ff05651c1ff119659bf6 (diff) | |
obj_Iceleaf almost done / d_a_alink work (#2217)
* obj_iceleaf almost done
* fix up d_a_alink procvars
* more d_a_alink work
* some d_a_alink error cleanup
* some more cleanup
Diffstat (limited to 'include/d')
| -rw-r--r-- | include/d/actor/d_a_alink.h | 51 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_chandelier.h | 2 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_iceleaf.h | 50 | ||||
| -rw-r--r-- | include/d/actor/d_a_player.h | 1 | ||||
| -rw-r--r-- | include/d/d_bg_w_base.h | 7 | ||||
| -rw-r--r-- | include/d/d_demo.h | 4 |
6 files changed, 89 insertions, 26 deletions
diff --git a/include/d/actor/d_a_alink.h b/include/d/actor/d_a_alink.h index 1d79ca62e8..07d580fa2d 100644 --- a/include/d/actor/d_a_alink.h +++ b/include/d/actor/d_a_alink.h @@ -2,18 +2,17 @@ #define D_A_D_A_ALINK_H #include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h" +#include "JSystem/J3DGraphBase/J3DMaterial.h" #include "JSystem/J3DGraphBase/J3DMatBlock.h" #include "Z2AudioLib/Z2Creature.h" #include "Z2AudioLib/Z2WolfHowlMgr.h" #include "d/actor/d_a_player.h" #include "d/d_eye_hl.h" #include "d/d_jnt_col.h" -#include "d/d_meter2_info.h" #include "d/d_msg_flow.h" #include "d/d_particle_copoly.h" #include "d/d_save.h" #include "f_op/f_op_actor_mng.h" -#include "d/actor/d_a_kytag05.h" #include "d/actor/d_a_tag_mmsg.h" class J2DAnmColorKey; @@ -157,6 +156,12 @@ public: /* 0x104 */ int mSetFlag; }; +// this class is mostly a complete guess +class daAlink_hsChainLight_c : public dKy_tevstr_c { +public: + GXLightObj* getLightObj() { return &mLightObj.mLightObj; } +}; + struct daAlink_BckData { /* 0x0 */ u16 m_underID; /* 0x2 */ u16 m_upperID; @@ -1704,7 +1709,7 @@ public: /* 800D1788 */ static BOOL notSwordHitVibActor(fopAc_ac_c*); /* 800D17EC */ BOOL setSwordHitVibration(dCcD_GObjInf*); /* 800D1920 */ BOOL checkAtShieldHit(dCcD_GObjInf&); - /* 800D1978 */ bool checkCutReverseAt(dCcD_GObjInf*); + /* 800D1978 */ BOOL checkCutReverseAt(dCcD_GObjInf*); /* 800D19C8 */ BOOL changeCutReverseProc(daAlink_c::daAlink_ANM); /* 800D1E1C */ void setCutDash(int, int); /* 800D20B4 */ BOOL checkForceSwordSwing(); @@ -2492,7 +2497,7 @@ public: /* 8011078C */ BOOL checkWaterInKandelaarOffset(f32); /* 801107BC */ void checkWaterInKandelaar(f32); /* 80110840 */ void offKandelaarModel(); - /* 801108EC */ void kandelaarModelCallBack(); + /* 801108EC */ int kandelaarModelCallBack(); /* 80110C6C */ BOOL checkKandelaarEquipAnime() const; /* 80110C94 */ void preKandelaarDraw(); /* 80110E84 */ void setKandelaarModel(); @@ -3173,7 +3178,7 @@ public: BOOL checkBarkAnime() const { return 0; } bool checkWolfGrabAnimeObj() const { return checkUpperAnime(0x2DA); } bool checkWolfGrabAnimeStick() const { return checkUpperAnime(0x2DB); } - bool checkWolfGrabAnime() const { return checkWolfGrabAnimeObj() || checkWolfGrabAnimeStick(); } + BOOL checkWolfGrabAnime() const { return checkWolfGrabAnimeObj() || checkWolfGrabAnimeStick(); } bool checkWolfSwimDashAnime() const { return checkUnderMove0BckNoArcWolf(WANM_SWIM_DASH); } bool checkKandelaarSwingAnime() const { return false; } bool checkBowChargeWaitAnime() const { return checkUpperAnime(0xA); } @@ -3386,6 +3391,11 @@ public: } const cXyz& getHsChainTopPos() const { return mHookshotTopPos; } + const cXyz& getHsChainRootPos() const { return mHeldItemRootPos; } + + const cXyz& getHsSubChainRootPos() const { return field_0x3810; } + + s16 getHookshotStopTime() const { return field_0x3026; } static int getBallModelIdx() { return 0x25; } static int getBallBtkIdx() { return 0x49; } @@ -3395,12 +3405,18 @@ public: bool checkRootTransZClearMode() { return field_0x2f99 & 4; } bool checkRootTransXClearMode() { return field_0x2f99 & 1; } bool checkRootTransYClearMode() { return field_0x2f99 & 2; } - s16 checkWindStoneHowl() {return mProcVar3.field_0x300e.y; } + s16 checkWindStoneHowl() {return mProcVar4.field_0x3010; } u8 getCorrectCurveID() { return mZ2WolfHowlMgr.getCorrectCurveID(); } u8 getCorrectLineNum() { return mZ2WolfHowlMgr.getCorrectLineNum(); } u32 getWolfHowlTimer() { return mZ2WolfHowlMgr.getTimer(); } s8 getOnLineNum() { return mZ2WolfHowlMgr.getOnLineNum(); } SongNote getCorrectLine(u8 param_0) { return mZ2WolfHowlMgr.getCorrectLine(param_0); } + J3DModelData* getItemModelData() { return mpItemModelData; } + + cXyz* getIronBallChainPos() const { return mIronBallChainPos; } + csXyz* getIronBallChainAngle() const { return mIronBallChainAngle; } + int getIronBallHandChainNum() const { return mItemMode; } + const cXyz& getIronBallChainHandRootPos() const { return mHookshotTopPos; } void itemHitSE(u32 param_1, u32 param_2, Z2SoundObjBase* param_3) { mZ2Link.startHitItemSE(param_1, param_2, param_3, -1.0f); } @@ -3494,7 +3510,7 @@ public: /* 0x0072C */ J3DAnmTexPattern* field_0x072c; /* 0x00730 */ mDoExt_bckAnm mItemBck; /* 0x0074C */ mDoExt_bckAnm mHookTipBck; - /* 0x00768 */ J3DModelData* mpHookKusariModelData; + /* 0x00768 */ J3DModelData* mpItemModelData; /* 0x0076C */ Z2SoundObjSimple* mpHookSound; /* 0x00770 */ hsChainShape_c* mpHookChain; /* 0x00774 */ dBgS_AcchCir* field_0x0774; @@ -3652,7 +3668,7 @@ public: /* 0x02FA5 */ u8 mPolySound; /* 0x02FA6 */ u8 field_0x2fa6; /* 0x02FA7 */ u8 field_0x2fa7; - /* 0x02FA8 */ u8 field_0x2fa8; + /* 0x02FA8 */ u8 mGndPolySpecialCode; /* 0x02FA9 */ u8 mWolfEyeUpTimer; /* 0x02FAA */ u8 mRideStatus; /* 0x02FAB */ u8 field_0x2fab; @@ -3733,14 +3749,21 @@ public: } /* 0x03008 */ mProcVar0; union { s16 field_0x300a; + s16 mBoardSwordChargeTime; } /* 0x0300A */ mProcVar1; union { s16 field_0x300c; s16 mPuzzleAimAngle; } /* 0x0300C */ mProcVar2; union { - SVec field_0x300e; + s16 field_0x300e; } /* 0x0300E */ mProcVar3; + union { + s16 field_0x3010; + } /* 0x03010 */ mProcVar4; + union { + s16 field_0x3012; + } /* 0x03012 */ mProcVar5; /* 0x03014 */ s16 mFallVoiceInit; /* 0x03016 */ u8 field_0x3016[2]; union { @@ -4049,6 +4072,16 @@ 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); +struct daAlink_cutParamTbl { + /* 0x0 */ daAlink_c::daAlink_ANM m_anmID; + /* 0x4 */ int field_0x4; + /* 0x8 */ u8 m_cutType; + /* 0x9 */ u8 m_atSe; + /* 0xA */ u8 field_0xa; + /* 0xB */ u8 field_0xb; + /* 0xC */ f32 m_morf; +}; // Size: 0x10 + struct daAlinkHIO_anm_c { /* 0x00 */ s16 mEndFrame; /* 0x04 */ f32 mSpeed; diff --git a/include/d/actor/d_a_obj_chandelier.h b/include/d/actor/d_a_obj_chandelier.h index 9bcc08d226..1e606bd8ee 100644 --- a/include/d/actor/d_a_obj_chandelier.h +++ b/include/d/actor/d_a_obj_chandelier.h @@ -47,6 +47,8 @@ public: u8 getSW_0() { return fopAcM_GetParamBit(this, 4, 8); } s32 getArg_0() { return fopAcM_GetParamBit(this, 0, 4); } + void moveHookOn() { field_0x60a = 1; } + private: /* 0x5A8 */ cXyz field_0x5a8; /* 0x5B4 */ Mtx mMtx; diff --git a/include/d/actor/d_a_obj_iceleaf.h b/include/d/actor/d_a_obj_iceleaf.h index 84b116017e..5f0a7bea18 100644 --- a/include/d/actor/d_a_obj_iceleaf.h +++ b/include/d/actor/d_a_obj_iceleaf.h @@ -15,13 +15,27 @@ */ class daObjIceLeaf_c : public fopAc_ac_c { public: + enum daObjIceLeaf_MODE { + MODE_DROP_WAIT_e, + MODE_DROP_e, + MODE_PLAYER_WAIT_e, + MODE_RIDE_e, + }; + + enum daObjIceLeaf_ACTION { + ACT_WAIT_e, + ACT_ORDER_EVENT_e, + ACT_EVENT_e, + ACT_DEAD_e, + }; + /* 80C24738 */ void initBaseMtx(); /* 80C24774 */ void setBaseMtx(); - /* 80C249E4 */ void Create(); + /* 80C249E4 */ int Create(); /* 80C24BC4 */ void setAnmPos(); - /* 80C24C9C */ void CreateHeap(); - /* 80C24E14 */ void create(); - /* 80C25158 */ void execute(); + /* 80C24C9C */ int CreateHeap(); + /* 80C24E14 */ int create(); + /* 80C25158 */ int execute(); /* 80C25360 */ void action(); /* 80C2541C */ void modeDropWait(); /* 80C25614 */ void modeDrop(); @@ -33,13 +47,19 @@ public: /* 80C25A68 */ void actionEvent(); /* 80C25AC4 */ void actionDead(); /* 80C25AC8 */ void setFallSE(); - /* 80C25BB8 */ void draw(); - /* 80C25C50 */ void _delete(); + /* 80C25BB8 */ int draw(); + /* 80C25C50 */ int _delete(); void offRide() { mRide = false; } void onRide() { mRide = true; } void setBreakEffect() { mBreakEffect = true; } - void deleteActor() { field_0x961 = 1; } + void deleteActor() { mDeleteActor = true; } + void setAction(u8 i_action) { mAction = i_action; } + void setMode(u8 i_mode) { mMode = i_mode; } + + u8 getEvId() { return fopAcM_GetParamBit(this, 0, 8); } + u8 checkRideStatus() { return fopAcM_GetParamBit(this, 0x10, 8); } + u8 getSwbit() { return fopAcM_GetParamBit(this, 8, 8); } private: /* 0x568 */ request_of_phase_process_class mPhase; @@ -49,18 +69,18 @@ private: /* 0x78C */ dCcD_Stts mStts; /* 0x7C8 */ dCcD_Cyl mCyl; /* 0x904 */ mDoExt_bckAnm* mpBck; - /* 0x908 */ J3DTransformInfo field_0x908; - /* 0x928 */ u8 mAction; - /* 0x929 */ u8 field_0x929; - /* 0x92A */ u8 field_0x92a; + /* 0x908 */ J3DTransformInfo mTransformInfo; + /* 0x928 */ u8 mMode; + /* 0x929 */ u8 mAction; + /* 0x92A */ u8 mEvId; /* 0x92B */ u8 field_0x92b; /* 0x92C */ s16 mEventID; - /* 0x930 */ Mtx field_0x930; + /* 0x930 */ Mtx mMtx; /* 0x960 */ u8 mRide; - /* 0x961 */ u8 field_0x961; + /* 0x961 */ u8 mDeleteActor; /* 0x962 */ u8 mBreakEffect; - /* 0x964 */ cXyz field_0x964; - /* 0x970 */ cXyz field_0x970; + /* 0x964 */ cXyz mFallSEPos; + /* 0x970 */ cXyz mFallStartSEPos; }; STATIC_ASSERT(sizeof(daObjIceLeaf_c) == 0x97c); diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index a87b4b87f4..cd2f7642c8 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -784,6 +784,7 @@ public: 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_UNK_800000)); } + BOOL checkBoardNoFootAngle() const { return checkResetFlg1(RFLG1_UNK_40); } void onBossRoomWait() { onEndResetFlg0(ERFLG0_BOSS_ROOM_WAIT); } void onBeeFollow() { onEndResetFlg0(ERFLG0_BEE_FOLLOW); } diff --git a/include/d/d_bg_w_base.h b/include/d/d_bg_w_base.h index f1e924e519..3382fd34f0 100644 --- a/include/d/d_bg_w_base.h +++ b/include/d/d_bg_w_base.h @@ -16,6 +16,13 @@ class dBgS_SphChk; class dBgS_SplGrpChk; class fopAc_ac_c; +enum dBgW_SpecialCode { + dBgW_SPCODE_NORMAL, + dBgW_SPCODE_LIGHT_SNOW = 5, + dBgW_SPCODE_HEAVY_SNOW = 6, + dBgW_SPCODE_ICE = 8, +}; + class dBgW_Base : public cBgW_BgId { public: enum PushPullLabel { diff --git a/include/d/d_demo.h b/include/d/d_demo.h index e334bcadca..0071b52b70 100644 --- a/include/d/d_demo.h +++ b/include/d/d_demo.h @@ -116,7 +116,7 @@ public: dDemo_system_c() { mpObject = NULL; } /* 80039AAC */ virtual ~dDemo_system_c(); - /* 80039528 */ virtual bool JSGFindObject(JStage::TObject**, char const*, + /* 80039528 */ virtual int JSGFindObject(JStage::TObject**, char const*, JStage::TEObject) const; void setObject(dDemo_object_c* i_object) { mpObject = i_object; } @@ -131,7 +131,7 @@ public: : JStudio_JParticle::TCreateObject(p_emitMgr, p_system) {} /* 80039F9C */ virtual ~dDemo_particle_c(); - /* 80039F1C */ virtual void emitter_create(u32); + /* 80039F1C */ virtual JPABaseEmitter* emitter_create(u32); }; class dDemo_light_c : public JStage::TLight { |
