d_a_e_hz (Tile Worm) OK and linked (#2691)

* all funcs matched

* TU linked and some docs

* apply enums
This commit is contained in:
Trueffel 2025-09-24 18:50:36 +02:00 committed by GitHub
parent 169c7ae4a2
commit 46b1f0ee71
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 1990 additions and 1103 deletions

View File

@ -1727,7 +1727,7 @@ config.libs = [
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_hb_leaf"),
ActorRel(NonMatching, "d_a_e_hm"),
ActorRel(NonMatching, "d_a_e_hp"),
ActorRel(NonMatching, "d_a_e_hz"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_hz"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_hzelda"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_is"),
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_kg"),

View File

@ -114,6 +114,7 @@ public:
u32 checkStateFlg0(daBoomerang_FLG0 i_flag) const { return m_stateFlg0 & i_flag; }
void onStateFlg0(daBoomerang_FLG0 flag) { m_stateFlg0 |= flag; }
void offStateFlg0(daBoomerang_FLG0 flag) { m_stateFlg0 &= ~flag; }
u32 getReturnFlg() { return checkStateFlg0(FLG0_1); }
void onWindCatch() { onStateFlg0(WIND_CATCH); }
bool checkForceDelete() const { return m_forceDelete; }
void onForceDelete() { m_forceDelete = true; }

View File

@ -1,30 +1,38 @@
#ifndef D_A_E_HZ_H
#define D_A_E_HZ_H
#include "d/actor/d_a_boomerang.h"
#include "d/actor/d_a_nbomb.h"
#include "d/actor/d_a_obj_carry.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_HZ_c
* @brief Tile Worm
*
* @details
*
*
* @details Enemy - Tile Worm
*
*/
class daE_HZ_c : public fopEn_enemy_c {
public:
/* 806EA690 */ void setBck(int, u8, f32, f32);
/* 806EA734 */ void checkBck(int);
/* 806EA790 */ void draw();
/* 806EA734 */ bool checkBck(int);
/* 806EA790 */ int draw();
/* 806EAADC */ void setActionMode(int);
/* 806EAB68 */ void checkHideStart();
/* 806EAEDC */ void checkAttackStart();
/* 806EB05C */ void checkArrowCharge();
/* 806EAB68 */ bool checkHideStart();
/* 806EAEDC */ bool checkAttackStart();
/* 806EB05C */ bool checkArrowCharge();
/* 806EB0A4 */ void setTgSetBit(int);
/* 806EB0FC */ bool isWait();
/* 806EB13C */ void checkFall();
/* 806EB2E8 */ void setCloseSmokeEffect();
/* 806EB3EC */ void executeWait();
/* 806EB7B0 */ void getHideSpeed();
/* 806EB7B0 */ f32 getHideSpeed();
/* 806EB818 */ void executeHide();
/* 806EBD44 */ void executeAttack();
/* 806EC068 */ void initBackWalk();
@ -33,7 +41,7 @@ public:
/* 806ECB64 */ void executeWind();
/* 806ED5B0 */ void executeChance();
/* 806ED6C8 */ void initRollDamage();
/* 806ED7A8 */ void doRollDamage();
/* 806ED7A8 */ bool doRollDamage();
/* 806ED8A4 */ void executeDamage();
/* 806EDAA8 */ void executeDeath();
/* 806EDDCC */ void setWindChanceEnd();
@ -43,27 +51,84 @@ public:
/* 806EE3BC */ void executeWaterDeath();
/* 806EE820 */ void executeDeathWait();
/* 806EE978 */ void damage_check();
/* 806EEE10 */ void checkWaterSurface();
/* 806EEE10 */ bool checkWaterSurface();
/* 806EEEE4 */ void action();
/* 806EF144 */ void mtx_set();
/* 806EF2C8 */ void cc_set();
/* 806EF46C */ void execute();
/* 806EF6B4 */ void _delete();
/* 806EF770 */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 806EF880 */ void JointCallBack(J3DJoint*, int);
/* 806EF8CC */ void CreateHeap();
/* 806EF46C */ int execute();
/* 806EF6B4 */ int _delete();
/* 806EF770 */ int ctrlJoint(J3DJoint*, J3DModel*);
/* 806EF880 */ static int JointCallBack(J3DJoint*, int);
/* 806EF8CC */ int CreateHeap();
/* 806EFB54 */ void setInitPos();
/* 806EFC18 */ void create();
/* 806EFC18 */ int create();
private:
/* 0x5ac */ u8 field_0x5ac[0x1238 - 0x5ac];
/* 0x5AC */ request_of_phase_process_class mPhaseReq;
/* 0x5B4 */ request_of_phase_process_class mPhaseReq2;
/* 0x5BC */ mDoExt_McaMorfSO* mpMorfSO;
/* 0x5C0 */ J3DModel* mpModel;
/* 0x5C4 */ J3DModel* mpModel2;
/* 0x5C8 */ Z2CreatureEnemy mSound;
/* 0x66C */ daBoomerang_c* mpBoomerangActor;
/* 0x670 */ daNbomb_c* mpBombActor;
/* 0x674 */ daObjCarry_c* mpCarryActor;
/* 0x678 */ cXyz field_0x678;
/* 0x684 */ cXyz mSmokeEffectPosition;
/* 0x690 */ csXyz field_0x690;
/* 0x696 */ csXyz field_0x696;
/* 0x69C */ csXyz field_0x69c;
/* 0x6A4 */ f32 mPlayerDist;
/* 0x6A8 */ f32 field_0x6a8;
/* 0x6AC */ f32 mGroundCross;
/* 0x6B0 */ s16 mPlayerAngleY;
/* 0x6B2 */ s16 field_0x6b2;
/* 0x6B4 */ s16 field_0x6b4;
/* 0x6B6 */ s16 field_0x6b6;
/* 0x6B8 */ u8 field_0x6B8[0x6BC - 0x6B8];
/* 0x6BC */ char* mpName;
/* 0x6C0 */ s32 mAction;
/* 0x6C4 */ s32 mPrevAction;
/* 0x6C8 */ s32 mMode; // That's just a guess. Might need a better name for it's usage
/* 0x6CC */ s32 field_0x6cc;
/* 0x6D0 */ u32 mShadowKey;
/* 0x6D4 */ s16 mDamageDeathTimer;
/* 0x6D6 */ s16 mWaitTimer;
/* 0x6D8 */ s16 mPiyoriTimer;
/* 0x6DA */ s16 mAttackStartTimer;
/* 0x6DC */ s16 mRetentionBeforeStretchTimer;
/* 0x6DE */ s16 mAttackCooldownTimer;
/* 0x6E0 */ s16 mCameraOffTimer;
/* 0x6E2 */ s16 mCameraOnTimer;
/* 0x6E4 */ u8 field_0x6e4;
/* 0x6E5 */ u8 mSetModelAnmMtx;
/* 0x6E6 */ u8 field_0x6E6[0x6E7 - 0x6E6];
/* 0x6E7 */ u8 mDisableShadow; // Shadow is active when this is false
/* 0x6E8 */ u8 field_0x6e8;
/* 0x6E9 */ u8 field_0x6e9;
/* 0x6EA */ u8 field_0x6ea;
/* 0x6EB */ u8 mParam;
/* 0x6EC */ u8 field_0x6EC[0x6ED - 0x6EC];
/* 0x6ED */ u8 mReadyNewAction;
/* 0x6F0 */ f32 mColor;
/* 0x6F4 */ u8 mReadyChangeColor;
/* 0x6F8 */ dKy_tevstr_c mTevStr;
/* 0xA80 */ u8 field_0xA80[0xA84 - 0xA80];
/* 0xA84 */ Mtx mMtx;
/* 0xAB4 */ dBgW* mpBgW;
/* 0xAB8 */ dBgS_AcchCir mAcchCir;
/* 0xAF8 */ dBgS_ObjAcch mObjAcch;
/* 0xCD0 */ dCcD_Stts mStts;
/* 0xD0C */ dCcD_Sph mSpheres[4];
/* 0x11EC */ dCcU_AtInfo mAtInfo;
/* 0x1210 */ u32 mSmokeKey;
/* 0x1214 */ u32 mSmokeKey2;
/* 0x1218 */ u32 mJumpEffects[2];
/* 0x1220 */ u32 mWaterEffects[4];
/* 0x1230 */ u32 mEffect;
/* 0x1234 */ u8 mHIOInit;
};
STATIC_ASSERT(sizeof(daE_HZ_c) == 0x1238);
class daE_HZ_HIO_c {
/* 806EA60C */ daE_HZ_HIO_c();
/* 806F0368 */ ~daE_HZ_HIO_c();
};
#endif /* D_A_E_HZ_H */

File diff suppressed because it is too large Load Diff