mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-02 03:40:15 -04:00
108 lines
2.7 KiB
C++
108 lines
2.7 KiB
C++
#ifndef D_A_NPC_BTSW2_H
|
|
#define D_A_NPC_BTSW2_H
|
|
|
|
#include "f_op/f_op_actor.h"
|
|
#include "d/d_npc.h"
|
|
|
|
class daNpc_Btsw2_c : public fopNpc_npc_c {
|
|
public:
|
|
typedef BOOL (daNpc_Btsw2_c::*ActionFunc)(void*);
|
|
|
|
enum ActionStatus {
|
|
ACTION_STARTING = 0,
|
|
ACTION_ONGOING = 1,
|
|
ACTION_ENDING = -1,
|
|
};
|
|
|
|
void getAttentionBasePos() {}
|
|
void setAction(ActionFunc func, void* arg) {
|
|
if (mCurrActionFunc != func) {
|
|
if (mCurrActionFunc) {
|
|
mActionStatus = ACTION_ENDING;
|
|
(this->*mCurrActionFunc)(arg);
|
|
}
|
|
mCurrActionFunc = func;
|
|
mActionStatus = ACTION_STARTING;
|
|
(this->*mCurrActionFunc)(arg);
|
|
}
|
|
}
|
|
|
|
BOOL initTexPatternAnm(bool);
|
|
void playTexPatternAnm();
|
|
void setAnm(s8);
|
|
bool chkAttention(cXyz, s16);
|
|
void eventOrder();
|
|
void checkOrder();
|
|
virtual void anmAtr(u16);
|
|
virtual u32 getMsg();
|
|
virtual u16 next_msgStatus(u32*);
|
|
void setAttention();
|
|
void lookBack();
|
|
BOOL CreateHeap();
|
|
BOOL CreateInit();
|
|
void wait01();
|
|
void talk01();
|
|
void pathMove();
|
|
BOOL wait_action(void*);
|
|
cPhs_State _create();
|
|
BOOL _delete();
|
|
BOOL _execute();
|
|
BOOL _draw();
|
|
|
|
static const char m_arc_name[];
|
|
|
|
public:
|
|
/* 0x6C4 */ request_of_phase_process_class mPhs;
|
|
/* 0x6CC */ u32 mShadowId;
|
|
/* 0x6D0 */ J3DModel* mpKabanModel; // Bag
|
|
/* 0x6D4 */ J3DModel* mpTirasiModel; // Flyer
|
|
/* 0x6D8 */ J3DAnmTexPattern* m_btp;
|
|
/* 0x6DC */ mDoExt_btpAnm mBtpAnm;
|
|
/* 0x6F0 */ u8 mBtpFrame;
|
|
/* 0x6F1 */ s8 m_handL_jnt_num;
|
|
/* 0x6F2 */ s8 m_handR_jnt_num;
|
|
/* 0x6F4 */ s16 mBlinkTimer;
|
|
/* 0x6F6 */ u8 m6F6[0x704 - 0x6F6];
|
|
/* 0x704 */ cXyz mAttPos;
|
|
/* 0x710 */ u8 m710[0x714 - 0x710];
|
|
/* 0x714 */ csXyz m714;
|
|
/* 0x71A */ u8 m71A[0x71D - 0x71A];
|
|
/* 0x71D */ bool mHasAttention;
|
|
/* 0x71E */ bool m71E;
|
|
/* 0x71F */ u8 m71F[0x724 - 0x71F];
|
|
/* 0x724 */ u8 m724;
|
|
/* 0x728 */ ActionFunc mCurrActionFunc;
|
|
/* 0x734 */ s8 mPathNo;
|
|
/* 0x735 */ u8 m735;
|
|
/* 0x736 */ u8 m736;
|
|
/* 0x738 */ dPath* mpPath;
|
|
/* 0x73C */ s16 mFinalPathPntIdx;
|
|
/* 0x73E */ s16 m73E;
|
|
/* 0x740 */ s16 mPathPntIdx;
|
|
/* 0x742 */ s16 m742;
|
|
/* 0x744 */ s8 m744;
|
|
/* 0x745 */ s8 m745;
|
|
/* 0x746 */ s8 m746;
|
|
/* 0x747 */ s8 m747;
|
|
/* 0x748 */ u8 m748[0x74A - 0x748];
|
|
/* 0x74A */ s8 mActionStatus;
|
|
};
|
|
|
|
class daNpc_Btsw2_HIO_c {
|
|
public:
|
|
daNpc_Btsw2_HIO_c();
|
|
virtual ~daNpc_Btsw2_HIO_c() {}
|
|
|
|
public:
|
|
/* 0x04 */ s8 mNo;
|
|
/* 0x08 */ dNpc_HIO_c mNpc;
|
|
/* 0x30 */ s16 m30;
|
|
/* 0x32 */ s16 m32;
|
|
/* 0x34 */ f32 m34;
|
|
/* 0x38 */ f32 m38;
|
|
/* 0x3C */ s16 m3C;
|
|
/* 0x3E */ s16 m3E;
|
|
};
|
|
|
|
#endif /* D_A_NPC_BTSW2_H */
|