e_ws mostly done (#2529)

This commit is contained in:
TakaRikka 2025-07-12 12:40:29 -07:00 committed by GitHub
parent 92e14253ca
commit 898b4fa3e3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 1024 additions and 890 deletions

View File

@ -2,6 +2,9 @@
#define D_A_E_WS_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
/**
* @ingroup actors-enemies
@ -12,15 +15,23 @@
*
*/
class daE_WS_c : public fopEn_enemy_c {
/* 807E3A6C */ void draw();
public:
enum daE_WS_Action_e {
ACTION_WAIT_e,
ACTION_ATTACK_e,
ACTION_DOWN_e,
ACTION_WIND_DOWN_e,
};
/* 807E3A6C */ int draw();
/* 807E3C20 */ void setBck(int, u8, f32, f32);
/* 807E3CC4 */ void setFootSound();
/* 807E3F90 */ void setActionMode(int);
/* 807E3FAC */ void calcTargetDist(cXyz, cXyz);
/* 807E40C8 */ void calcTargetAngle(cXyz, cXyz);
/* 807E416C */ void checkInSearchRange(cXyz, cXyz);
/* 807E4224 */ void checkPlayerPos();
/* 807E4568 */ void checkAttackEnd();
/* 807E3FAC */ f32 calcTargetDist(cXyz, cXyz);
/* 807E40C8 */ s16 calcTargetAngle(cXyz, cXyz);
/* 807E416C */ bool checkInSearchRange(cXyz, cXyz);
/* 807E4224 */ int checkPlayerPos();
/* 807E4568 */ bool checkAttackEnd();
/* 807E470C */ void executeWait();
/* 807E4AB8 */ void executeAttack();
/* 807E4E68 */ void executeDown();
@ -29,22 +40,59 @@ class daE_WS_c : public fopEn_enemy_c {
/* 807E58AC */ void action();
/* 807E5A3C */ void mtx_set();
/* 807E5AAC */ void cc_set();
/* 807E5C0C */ void execute();
/* 807E5C0C */ int execute();
/* 807E5CD8 */ void checkInitialWall();
/* 807E5FB8 */ void checkBeforeBg(s16);
/* 807E63F8 */ void checkWall();
/* 807E66B4 */ void _delete();
/* 807E6748 */ void CreateHeap();
/* 807E6860 */ void create();
private:
/* 0x5ac */ u8 field_0x5ac[0xb80 - 0x5ac];
/* 807E5FB8 */ bool checkBeforeBg(s16);
/* 807E63F8 */ bool checkWall();
/* 807E66B4 */ int _delete();
/* 807E6748 */ int CreateHeap();
/* 807E6860 */ int create();
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ mDoExt_McaMorfSO* mpModelMorf;
/* 0x5B8 */ Z2CreatureEnemy mSound;
/* 0x65C */ cXyz field_0x65c;
/* 0x668 */ csXyz field_0x668;
/* 0x66E */ csXyz field_0x66e;
/* 0x674 */ f32 mDownColor;
/* 0x678 */ f32 mBodyScale;
/* 0x67C */ int mAction;
/* 0x680 */ int mMode;
/* 0x684 */ u32 mShadowId;
/* 0x688 */ s16 mTargetAngle;
/* 0x68A */ s16 mTargetStep;
/* 0x68C */ u8 field_0x68c;
/* 0x68E */ s16 mInvulnerabilityTimer;
/* 0x690 */ u8 field_0x690;
/* 0x691 */ u8 field_0x691;
/* 0x692 */ u8 mSwbit;
/* 0x694 */ dBgS_AcchCir mAcchCir;
/* 0x6D4 */ dBgS_ObjAcch mAcch;
/* 0x8AC */ dCcD_Stts mCcStts;
/* 0x8E8 */ dCcD_Sph mCcSph;
/* 0xA20 */ dCcD_Sph mCcBokkuriSph;
/* 0xB58 */ dCcU_AtInfo mAtInfo;
/* 0xB7C */ u8 mHIOInit;
};
STATIC_ASSERT(sizeof(daE_WS_c) == 0xb80);
class daE_WS_HIO_c {
class daE_WS_HIO_c : public JORReflexible {
public:
/* 807E3A0C */ daE_WS_HIO_c();
/* 807E6E44 */ ~daE_WS_HIO_c();
/* 807E6E44 */ virtual ~daE_WS_HIO_c() {}
void genMessage(JORMContext*);
/* 0x04 */ s8 id;
/* 0x08 */ f32 base_size;
/* 0x0C */ f32 move_range;
/* 0x10 */ f32 search_range;
/* 0x14 */ f32 search_y_range;
/* 0x18 */ f32 dist_to_ground;
/* 0x1C */ f32 search_angle;
/* 0x20 */ f32 attack_speed;
/* 0x24 */ u8 debug_ON;
};

File diff suppressed because it is too large Load Diff