mirror of https://github.com/zeldaret/tp.git
199 lines
6.4 KiB
C++
199 lines
6.4 KiB
C++
#ifndef D_A_E_OC_H
|
|
#define D_A_E_OC_H
|
|
|
|
#include "f_op/f_op_actor_mng.h"
|
|
#include "d/d_bg_s_acch.h"
|
|
#include "d/d_cc_d.h"
|
|
|
|
|
|
/**
|
|
* @ingroup actors-enemies
|
|
* @class daE_OC_c
|
|
* @brief Bokoblin
|
|
*
|
|
* @details
|
|
*
|
|
*/
|
|
class daRotBridge_c;
|
|
|
|
class daE_OC_c : public fopEn_enemy_c {
|
|
public:
|
|
/* 8072C630 */ int ctrlJoint(J3DJoint*, J3DModel*);
|
|
/* 8072C6E8 */ static int JointCallBack(J3DJoint*, int);
|
|
/* 8072C734 */ int draw();
|
|
/* 8072CBD4 */ int getVisionAngle(fopAc_ac_c*);
|
|
/* 8072CC10 */ void searchOtherOc();
|
|
/* 8072CDA8 */ int setWatchMode();
|
|
/* 8072CE00 */ int searchPlayer();
|
|
/* 8072CF90 */ int searchPlayer2();
|
|
/* 8072D100 */ int searchPlayerShakeHead();
|
|
/* 8072D1DC */ int searchSound();
|
|
/* 8072D364 */ int checkBeforeBg();
|
|
/* 8072D640 */ int checkBeforeBgFind();
|
|
/* 8072D87C */ int checkBeforeFloorBg(f32);
|
|
/* 8072D994 */ void checkDamageBg();
|
|
/* 8072DB10 */ void setGroundAngle();
|
|
/* 8072DCBC */ void setActionMode(int, int);
|
|
/* 8072DD18 */ int getCutType();
|
|
/* 8072DD8C */ void offTgSph();
|
|
/* 8072DDF4 */ void damage_check();
|
|
/* 8072E274 */ void setBck(int, u8, f32, f32);
|
|
/* 8072E31C */ bool checkBck(int);
|
|
/* 8072E37C */ void setSpitEffect();
|
|
/* 8072E42C */ s16 getHeadAngle();
|
|
/* 8072E498 */ void setStabPos();
|
|
/* 8072E528 */ void setWaitSound();
|
|
/* 8072E5A4 */ void setWalkSound();
|
|
/* 8072E670 */ void setWalkStSound();
|
|
/* 8072E788 */ void setDashSound();
|
|
/* 8072E910 */ void setWaitStSound();
|
|
/* 8072EA58 */ void setFootNoteSound();
|
|
/* 8072EAA4 */ void executeWait();
|
|
/* 8072F1A8 */ void executeWalk();
|
|
/* 8072F5E0 */ void executeTalk();
|
|
/* 8072F914 */ void executeFind();
|
|
/* 807302E8 */ void setWeaponGroundAngle();
|
|
/* 807305C0 */ void executeAttack();
|
|
/* 80730DC0 */ void executeDamage();
|
|
/* 80731124 */ void executeBigDamage();
|
|
/* 807316F8 */ void executeWatch();
|
|
/* 807319E4 */ void executeSoundWatch();
|
|
/* 80731D18 */ int checkBeforeDeath();
|
|
/* 80731D4C */ void executeDeath();
|
|
/* 80731F5C */ void setWaterEffect();
|
|
/* 80732074 */ void executeWaterDeath();
|
|
/* 807323A4 */ void executeDemoMaster();
|
|
/* 80732B04 */ void executeDemoChild();
|
|
/* 80732E64 */ void checkFall();
|
|
/* 8073301C */ void executeFallDead();
|
|
/* 807331CC */ void executeFall();
|
|
/* 8073332C */ void executeFindStay();
|
|
/* 807335B4 */ void executeMoveOut();
|
|
/* 80733E48 */ bool checkWaterSurface();
|
|
/* 80733F20 */ void action();
|
|
/* 807345D8 */ void mtx_set();
|
|
/* 80734698 */ void cc_set();
|
|
/* 807348DC */ int execute();
|
|
/* 80734B6C */ int _delete();
|
|
/* 80734C10 */ int CreateHeap();
|
|
/* 80734DA8 */ cPhs__Step create();
|
|
|
|
u8 isHomeWait() const { return mIsHomeWait; }
|
|
u8 isBattleOn() const { return mBattleOn; }
|
|
f32 getMoveRange() const { return mMoveRange; }
|
|
f32 getPlayerRange() const { return mPlayerRange; }
|
|
int getActionMode() const { return mActionMode; }
|
|
daE_OC_c* getTalkOc() const { return mpTalk; }
|
|
|
|
private:
|
|
/* 0x5a0 */ request_of_phase_process_class mPhaseReqs[2];
|
|
/* 0x5bc */ mDoExt_McaMorfSO* mpMorf;
|
|
/* 0x5c0 */ J3DModel* mpModel;
|
|
/* 0x5c4 */ Z2CreatureEnemy mSound;
|
|
/* 0x668 */ daE_OC_c* mpBattle;
|
|
/* 0x66c */ daE_OC_c* mpDamage;
|
|
/* 0x670 */ daE_OC_c* mpTalk;
|
|
/* 0x674 */ daE_OC_c* mpParent;
|
|
/* 0x678 */ daRotBridge_c* mpBridge;
|
|
/* 0x67c */ cXyz field_0x67c;
|
|
/* 0x688 */ csXyz field_0x688;
|
|
/* 0x690 */ f32 mMoveRange;
|
|
/* 0x690 */ f32 mPlayerRange;
|
|
/* 0x698 */ f32 mWaterLvl;
|
|
/* 0x69c */ f32 field_0x69c;
|
|
/* 0x6a0 */ f32 field_0x6a0;
|
|
/* 0x6a4 */ const char* mName;
|
|
/* 0x6a8 */ int mActionMode;
|
|
/* 0x6ac */ int mOldActionMode;
|
|
/* 0x6b0 */ int mOcState;
|
|
/* 0x6b4 */ s32 field_0x6b4;
|
|
/* 0x6b8 */ u32 mShadowKey;
|
|
/* 0x6bc */ s16 field_0x6bc;
|
|
/* 0x6be */ s16 field_0x6be;
|
|
/* 0x6c0 */ s16 field_0x6c0;
|
|
/* 0x6c2 */ s16 field_0x6c2;
|
|
/* 0x6c4 */ s16 field_0x6c4;
|
|
/* 0x6c6 */ s16 field_0x6c6;
|
|
/* 0x6c8 */ s16 field_0x6c8;
|
|
/* 0x6ca */ s16 field_0x6ca;
|
|
/* 0x6cc */ s16 field_0x6cc;
|
|
/* 0x6ce */ s16 field_0x6ce;
|
|
/* 0x6d0 */ s16 field_0x6d0;
|
|
/* 0x6d2 */ s16 field_0x6d2;
|
|
/* 0x6d4 */ s16 mPrevShapeAngle;
|
|
/* 0x6d6 */ s16 field_0x6d6;
|
|
/* 0x6d8 */ s16 field_0x6d8;
|
|
/* 0x6da */ s16 field_0x6da;
|
|
/* 0x6dc */ u8 field_0x6dc;
|
|
/* 0x6dd */ u8 field_0x6dd;
|
|
/* 0x6de */ u8 field_0x6de;
|
|
/* 0x6df */ u8 field_0x6df;
|
|
/* 0x6e0 */ u8 field_0x6e0;
|
|
/* 0x6e1 */ u8 field_0x6e1;
|
|
/* 0x6e2 */ u8 field_0x6e2;
|
|
/* 0x6e3 */ u8 field_0x6e3;
|
|
/* 0x6e4 */ f32 field_0x6e4;
|
|
/* 0x6e8 */ u8 field_0x6e8;
|
|
/* 0x6e9 */ u8 mIsHomeWait;
|
|
/* 0x6ea */ u8 mBattleOn;
|
|
/* 0x6eb */ u8 field_0x6eb;
|
|
/* 0x6ec */ cXyz mPlayerPos;
|
|
/* 0x6f8 */ cXyz field_0x6f8;
|
|
/* 0x704 */ f32 field_0x704;
|
|
/* 0x708 */ dBgS_AcchCir mAcchCir;
|
|
/* 0x748 */ dBgS_ObjAcch mAcch;
|
|
/* 0x920 */ dCcD_Stts mStts;
|
|
/* 0x95c */ dCcD_Sph mSphs_cc[2];
|
|
/* 0xbcc */ dCcD_Sph mSphs_at[2];
|
|
/* 0xe3c */ cCcD_Obj* mpTgHitObj;
|
|
/* 0xe40 */ u8 field_0xe40[0xe44 - 0xe40];
|
|
/* 0xe44 */ Z2CreatureEnemy* mpSound;
|
|
/* 0xe48 */ u8 field_0xe48[0xe4a - 0xe48];
|
|
/* 0xe4a */ s16 field_0xe4a;
|
|
/* 0xe4c */ u8 field_0xe4c[0xe58 - 0xe4c];
|
|
/* 0xe58 */ u16 field_0xe58;
|
|
/* 0xe5a */ u8 field_0xe5a;
|
|
/* 0xe5b */ u8 field_0xe5b; // might be unused.
|
|
/* 0xe5c */ u8 field_0xe5c[0xe60 - 0xe5c];
|
|
/* 0xe60 */ u32 field_0xe60;
|
|
/* 0xe64 */ u32 field_0xe64;
|
|
/* 0xe68 */ u32 mParticleKey;
|
|
/* 0xe6c */ u32 field_0xe6c;
|
|
/* 0xe70 */ u32 field_0xe70[4];
|
|
/* 0xe80 */ u32 mRippleKey;
|
|
/* 0xe84 */ u8 field_0xe84;
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(daE_OC_c) == 0xe88);
|
|
|
|
class daE_OC_HIO_c {
|
|
public:
|
|
/* 8072C5CC */ daE_OC_HIO_c();
|
|
/* 80735630 */ virtual ~daE_OC_HIO_c() {}
|
|
|
|
/* 0x04 */ s8 field_0x04;
|
|
/* 0x05 */ u8 field_0x05;
|
|
/* 0x08 */ f32 field_0x08;
|
|
/* 0x0c */ f32 field_0x0c;
|
|
/* 0x10 */ f32 field_0x10;
|
|
/* 0x14 */ f32 field_0x14;
|
|
/* 0x18 */ f32 field_0x18;
|
|
/* 0x1c */ f32 field_0x1c;
|
|
/* 0x20 */ f32 field_0x20;
|
|
/* 0x24 */ f32 field_0x24;
|
|
};
|
|
|
|
struct E_OC_n {
|
|
static f32 const oc_attackb_trans[10];
|
|
static f32 const oc_attackc_trans[10];
|
|
static dCcD_SrcSph cc_sph_src;
|
|
static dCcD_SrcSph at_sph_src;
|
|
static daE_OC_c* m_battle_oc;
|
|
static daE_OC_c* m_damage_oc;
|
|
static daE_OC_c* m_death_oc;
|
|
static daE_OC_c* m_talk_oc;
|
|
};
|
|
|
|
|
|
#endif /* D_A_E_OC_H */
|