mirror of https://github.com/zeldaret/tp.git
186 lines
5.3 KiB
C++
186 lines
5.3 KiB
C++
#ifndef D_A_NPC_TK_H
|
|
#define D_A_NPC_TK_H
|
|
|
|
#include "d/actor/d_a_npc.h"
|
|
#include "d/d_cc_uty.h"
|
|
#include "d/d_path.h"
|
|
#include "d/d_spline_path.h"
|
|
|
|
struct cXyz;
|
|
class daNpc_Hanjo_c;
|
|
class fopAc_ac_c;
|
|
class J3DJoint;
|
|
class J3DModel;
|
|
|
|
/**
|
|
* @ingroup actors-npcs
|
|
* @class daNPC_TK_c
|
|
* @brief Hawk (Taka)
|
|
*
|
|
* @details
|
|
*
|
|
*/
|
|
class daNPC_TK_c : public fopAc_ac_c {
|
|
public:
|
|
void setBck(int, u8, f32, f32);
|
|
bool checkBck(int);
|
|
int draw();
|
|
int checkBeforeBg();
|
|
void setActionMode(int);
|
|
f32 setAddCalcSpeedXZ(cXyz&, cXyz const&, f32, f32, f32);
|
|
cXyz chaseTargetPos(cXyz, f32, f32, s16);
|
|
/* 80B01D84 */
|
|
fopAc_ac_c* getMasterPointer();
|
|
void setMasterShoulder(cXyz*);
|
|
void setAwayAction(int);
|
|
void setFlySE();
|
|
void executeFly();
|
|
void initPerchDemo(int);
|
|
/* 80B02B5C */
|
|
bool executePerchDemo(int);
|
|
void executePerch();
|
|
void executeHandOn();
|
|
/* 80B039A8 */
|
|
bool checkWaterSurface(f32);
|
|
void executeAttack();
|
|
void executeAway();
|
|
void setCarryActorMtx();
|
|
/* 80B04F64 */
|
|
f32 getTakePosY();
|
|
/* 80B04FA8 */
|
|
f32 getTakeOffPosY();
|
|
void executeBack();
|
|
/* 80B05BD0 */
|
|
cXyz getHanjoHandPos();
|
|
void executeStayHanjo();
|
|
void executeAttackLink();
|
|
void executeBackHanjo();
|
|
/* 80B07114 */
|
|
bool checkAttackDemo();
|
|
void executeAttackDemo();
|
|
void executeBackHanjoDemo();
|
|
void executeWolfEvent();
|
|
void calcWolfDemoCam();
|
|
void calcWolfDemoCam2();
|
|
void executeWolfPerch();
|
|
void executeResistanceDemo();
|
|
void setHawkSideCamera(cXyz);
|
|
void setHawkCamera(fopAc_ac_c*);
|
|
void endHawkCamera();
|
|
void calcDemoCamera();
|
|
void checkActionSet();
|
|
void action();
|
|
void mtx_set();
|
|
void cc_set();
|
|
int execute();
|
|
int _delete();
|
|
/* 80B0B9AC */
|
|
int ctrlJoint(J3DJoint*, J3DModel*);
|
|
static int JointCallBack(J3DJoint*, int);
|
|
int CreateHeap();
|
|
int create();
|
|
|
|
void setBump() { mFlags |= (u16)4; }
|
|
void setEventWolf() { mFlags |= (u16)0x80; }
|
|
void setEvent() { mFlags |= (u16)0x8; }
|
|
void setAway() { mFlags |= (u16)2; }
|
|
void setAttack() { mFlags |= (u16)1; }
|
|
|
|
void setHawkPath(u8 i_pathNo) {
|
|
if (i_pathNo != 0xFF) {
|
|
mpPath1 = dPath_GetRoomPath(i_pathNo, fopAcM_GetRoomNo(this));
|
|
}
|
|
}
|
|
|
|
BOOL isAttackLink() { return field_0x71a != 0; }
|
|
void setAttackLink() { mFlags |= (u16)0x10; }
|
|
void setBackHanjo() { mFlags |= (u16)0x20; }
|
|
void setHanjoHand() { mFlags |= (u16)0x40; }
|
|
void setQuickHanjoHand() { mFlags |= (u16)0x200; }
|
|
BOOL isHanjoHand() { return mIsHanjoHand != 0; }
|
|
|
|
void setResistanceDemo() { mFlags |= (u16)0x100; }
|
|
|
|
/* 0x568 */ request_of_phase_process_class mPhase;
|
|
/* 0x570 */ mDoExt_McaMorfSO* mpMorf;
|
|
/* 0x574 */ Z2Creature mSound;
|
|
/* 0x604 */ cXyz field_0x604;
|
|
/* 0x610 */ cXyz field_0x610;
|
|
/* 0x61C */ cXyz field_0x61c;
|
|
/* 0x628 */ cXyz field_0x628;
|
|
/* 0x634 */ fopAc_ac_c* field_0x634;
|
|
/* 0x638 */ daNpc_Hanjo_c* mpMaster;
|
|
/* 0x63C */ cXyz field_0x63c[5];
|
|
/* 0x678 */ f32 field_0x678;
|
|
/* 0x67D */ f32 field_0x67c;
|
|
/* 0x67E */ f32 field_0x680;
|
|
/* 0x67E */ f32 field_0x684;
|
|
/* 0x688 */ s32 field_0x688;
|
|
/* 0x68C */ s32 mActionType;
|
|
/* 0x690 */ s32 field_0x690;
|
|
/* 0x694 */ s32 field_0x694;
|
|
/* 0x698 */ s32 field_0x698;
|
|
/* 0x69C */ s16 field_0x69c;
|
|
/* 0x69E */ s16 field_0x69e;
|
|
/* 0x6A0 */ s16 field_0x6a0;
|
|
/* 0x6A2 */ s16 field_0x6a2;
|
|
/* 0x6A4 */ s16 field_0x6a4;
|
|
/* 0x6A5 */ s16 field_0x6a6;
|
|
/* 0x6A8 */ s16 field_0x6a8;
|
|
/* 0x6AA */ s16 field_0x6aa;
|
|
/* 0x6AC */ u8 mCarryType;
|
|
/* 0x6AD */ u8 mIsHanjoHand;
|
|
/* 0x6AE */ u8 field_0x6ae;
|
|
/* 0x6B0 */ s32 field_0x6b0;
|
|
/* 0x6B4 */ s32 field_0x6b4;
|
|
/* 0x6B8 */ s32 field_0x6b8;
|
|
/* 0x6BC */ bool mIsExecutingAction;
|
|
/* 0x6BD */ u8 field_0x6bd;
|
|
/* 0x6BE */ u16 mFlags;
|
|
/* 0x6C0 */ u8 field_0x6c0;
|
|
/* 0x6C1 */ u8 field_0x6c1;
|
|
/* 0x6C2 */ u8 field_0x6c2;
|
|
/* 0x6C3 */ u8 field_0x6c3;
|
|
/* 0x6C4 */ u8 field_0x6c4;
|
|
/* 0x6C5 */ u8 field_0x6c5;
|
|
/* 0x6C6 */ u8 field_0x6c6;
|
|
/* 0x6C7 */ u8 field_0x6c7;
|
|
/* 0x6C8 */ dPath* mpPath1;
|
|
/* 0x6CC */ s8 mPathStep2;
|
|
/* 0x6D0 */ dPathCurve field_0x6d0;
|
|
/* 0x6DC */ dPath* mWolfPathData;
|
|
/* 0x6E0 */ f32 field_0x6e0;
|
|
/* 0x6E4 */ f32 field_0x6e4;
|
|
/* 0x6E8 */ u8 field_0x6e8;
|
|
/* 0x6E9 */ u8 field_0x6e9;
|
|
/* 0x6EA */ u8 field_0x6ea;
|
|
/* 0x6EB */ u8 field_0x6eb;
|
|
/* 0x6EC */ fopAc_ac_c* field_0x6ec;
|
|
/* 0x6F0 */ cXyz field_0x6f0;
|
|
/* 0x6FC */ cXyz field_0x6fc;
|
|
/* 0x708 */ f32 field_0x708;
|
|
/* 0x70C */ s32 field_0x70c;
|
|
/* 0x710 */ s16 field_0x710;
|
|
/* 0x714 */ f32 field_0x714;
|
|
/* 0x718 */ u8 field_0x718;
|
|
/* 0x719 */ u8 field_0x719;
|
|
/* 0x71A */ u8 field_0x71a;
|
|
/* 0x71B */ u8 field_0x71b[0x724 - 0x71b];
|
|
/* 0x724 */ dMsgFlow_c mMsgFlow;
|
|
/* 0x770 */ dBgS_AcchCir mCircle;
|
|
/* 0x7B0 */ dBgS_ObjAcch mAcch;
|
|
/* 0x988 */ dCcD_Stts mStts;
|
|
/* 0x9C4 */ dCcD_Sph mSphere;
|
|
/* 0xAFC */ dCcU_AtInfo mAtInfo;
|
|
/* 0xB20 */ u32 field_0xb20;
|
|
/* 0xB24 */ u32 field_0xb24;
|
|
/* 0xB28 */ u32 field_0xb28[4];
|
|
/* 0x71A */ u32 field_0xb38;
|
|
/* 0xB3C */ s32 field_0xb3c;
|
|
/* 0xB40 */ u8 field_0xb40;
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(daNPC_TK_c) == 0xB44);
|
|
|
|
#endif /* D_A_NPC_TK_H */
|