mirror of https://github.com/zeldaret/tp.git
113 lines
3.5 KiB
C++
113 lines
3.5 KiB
C++
#ifndef D_A_NPC_TK_H
|
|
#define D_A_NPC_TK_H
|
|
|
|
#include "d/actor/d_a_npc.h"
|
|
#include "d/d_path.h"
|
|
|
|
struct cXyz;
|
|
class fopAc_ac_c;
|
|
class J3DJoint;
|
|
class J3DModel;
|
|
|
|
/**
|
|
* @ingroup actors-npcs
|
|
* @class daNPC_TK_c
|
|
* @brief Hawk
|
|
*
|
|
* @details
|
|
*
|
|
*/
|
|
class daNPC_TK_c : public fopAc_ac_c {
|
|
public:
|
|
/* 80B01498 */ void setBck(int, u8, f32, f32);
|
|
/* 80B0153C */ void checkBck(int);
|
|
/* 80B01598 */ void draw();
|
|
/* 80B016D4 */ void checkBeforeBg();
|
|
/* 80B01878 */ void setActionMode(int);
|
|
/* 80B018F4 */ void setAddCalcSpeedXZ(cXyz&, cXyz const&, f32, f32, f32);
|
|
/* 80B01C84 */ void chaseTargetPos(cXyz, f32, f32, s16);
|
|
/* 80B01D84 */ void getMasterPointer();
|
|
/* 80B01DA0 */ void setMasterShoulder(cXyz*);
|
|
/* 80B01E48 */ void setAwayAction(int);
|
|
/* 80B01EF4 */ void setFlySE();
|
|
/* 80B02254 */ void executeFly();
|
|
/* 80B026F8 */ void initPerchDemo(int);
|
|
/* 80B02B5C */ void executePerchDemo(int);
|
|
/* 80B03658 */ void executePerch();
|
|
/* 80B03754 */ void executeHandOn();
|
|
/* 80B039A8 */ void checkWaterSurface(f32);
|
|
/* 80B03A70 */ void executeAttack();
|
|
/* 80B048BC */ void executeAway();
|
|
/* 80B04BF8 */ void setCarryActorMtx();
|
|
/* 80B04F64 */ void getTakePosY();
|
|
/* 80B04FA8 */ void getTakeOffPosY();
|
|
/* 80B04FEC */ void executeBack();
|
|
/* 80B05BD0 */ void getHanjoHandPos();
|
|
/* 80B05C7C */ void executeStayHanjo();
|
|
/* 80B05EC8 */ void executeAttackLink();
|
|
/* 80B0686C */ void executeBackHanjo();
|
|
/* 80B07114 */ void checkAttackDemo();
|
|
/* 80B072CC */ void executeAttackDemo();
|
|
/* 80B07610 */ void executeBackHanjoDemo();
|
|
/* 80B08168 */ void executeWolfEvent();
|
|
/* 80B08208 */ void calcWolfDemoCam();
|
|
/* 80B082A4 */ void calcWolfDemoCam2();
|
|
/* 80B0839C */ void executeWolfPerch();
|
|
/* 80B09A3C */ void executeResistanceDemo();
|
|
/* 80B0A444 */ void setHawkSideCamera(cXyz);
|
|
/* 80B0A500 */ void setHawkCamera(fopAc_ac_c*);
|
|
/* 80B0A568 */ void endHawkCamera();
|
|
/* 80B0A614 */ void calcDemoCamera();
|
|
/* 80B0B004 */ void checkActionSet();
|
|
/* 80B0B284 */ void action();
|
|
/* 80B0B5CC */ void mtx_set();
|
|
/* 80B0B6DC */ void cc_set();
|
|
/* 80B0B7CC */ void execute();
|
|
/* 80B0B918 */ void _delete();
|
|
/* 80B0B9AC */ void ctrlJoint(J3DJoint*, J3DModel*);
|
|
/* 80B0BB7C */ void JointCallBack(J3DJoint*, int);
|
|
/* 80B0BBC8 */ void CreateHeap();
|
|
/* 80B0BD24 */ void create();
|
|
|
|
void setBump() { mFlags |= 4; }
|
|
void setEventWolf() { mFlags |= 0x80; }
|
|
void setEvent() { mFlags |= 0x8; }
|
|
void setAway() { mFlags |= 2; }
|
|
void setAttack() { mFlags |= 1; }
|
|
|
|
void setHawkPath(u8 i_pathNo) {
|
|
if (i_pathNo != 0xFF) {
|
|
field_0x6c8 = dPath_GetRoomPath(i_pathNo, fopAcM_GetRoomNo(this));
|
|
}
|
|
}
|
|
|
|
BOOL isAttackLink() { return field_0x71a != 0; }
|
|
void setAttackLink() { mFlags |= 0x10; }
|
|
void setBackHanjo() { mFlags |= 0x20; }
|
|
void setHanjoHand() { mFlags |= 0x40; }
|
|
void setQuickHanjoHand() { mFlags |= 0x200; }
|
|
BOOL isHanjoHand() { return field_0x6ad != 0; }
|
|
|
|
private:
|
|
/* 0x568 */ u8 field_0x568[0x6ad - 0x568];
|
|
/* 0x6AD */ u8 field_0x6ad;
|
|
/* 0x568 */ u8 field_0x6ae[0x6BE - 0x6ae];
|
|
/* 0x6BE */ u16 mFlags;
|
|
/* 0x6C0 */ u8 field_0x6c0[0x6C8 - 0x6C0];
|
|
/* 0x6C8 */ dPath* field_0x6c8;
|
|
/* 0x6CC */ u8 field_0x6cc[0x71a - 0x6CC];
|
|
/* 0x71A */ u8 field_0x71a;
|
|
/* 0x6CC */ u8 field_0x71b[0xB44 - 0x71b];
|
|
};
|
|
|
|
STATIC_ASSERT(sizeof(daNPC_TK_c) == 0xB44);
|
|
|
|
class daNPC_TK_HIO_c {
|
|
public:
|
|
daNPC_TK_HIO_c();
|
|
~daNPC_TK_HIO_c();
|
|
};
|
|
|
|
|
|
#endif /* D_A_NPC_TK_H */
|