Files
tww/include/d/actor/d_a_npc_hi1.h
T
Zeclos 65611e09a4 D_a_npc_hi1 matching for retail (#897)
* bit too difficult for me for now, might go back later

* progress

* getmsg

* logic matching data isnt

* data section matches

* mathubcg 100%

* cleanup

* revert this change

* final cleanup and configure.py

* nevermind cleanup

* Equivalent onstead of matching

* removed padding

* cleanup code comments and a bit more

* matching

* cleanup

* matching for retail

* little bit of cleanup
2025-12-23 23:20:37 -05:00

137 lines
3.8 KiB
C++

#ifndef D_A_NPC_HI1_H
#define D_A_NPC_HI1_H
#include "f_op/f_op_actor.h"
#include "d/d_npc.h"
class J3DNode;
class daNpc_Hi1_c : public fopNpc_npc_c {
public:
typedef int (daNpc_Hi1_c::*ActionFunc)(void*);
struct anm_prm_c {
s8 field_0x0;
s8 field_0x1;
f32 field_0x4;
f32 field_0x8;
int field_0xC;
};
void _nodeCB_Head(J3DNode*, J3DModel*);
void _nodeCB_BackBone(J3DNode*, J3DModel*);
bool init_HI1_0();
bool createInit();
void play_animation();
void setMtx(bool);
int bckResID(int);
int btpResID(int);
int btkResID(int);
bool setBtp(s8, bool);
bool setBtk(s8, bool);
bool init_texPttrnAnm(s8, bool);
void play_btp_anm();
void play_btk_anm();
void setAnm_anm(anm_prm_c*);
void setAnm_NUM(int, int);
void setAnm();
void chngAnmTag();
void ctrlAnmTag();
void chngAnmAtr(u8);
void ctrlAnmAtr();
void setAnm_ATR();
void anmAtr(u16);
u16 next_msgStatus(u32*);
u32 getMsg_HI1_0();
u32 getMsg();
void eventOrder();
void checkOrder();
bool chk_talk();
bool chk_parts_notMov();
fopAc_ac_c* searchByID(fpc_ProcID, int*);
void lookBack();
bool chkAttention();
void setAttention(bool);
bool decideType(int);
void privateCut(int);
void endEvent();
int isEventEntry();
void event_proc(int);
bool set_action(ActionFunc, void*);
void setStt(signed char);
BOOL wait_1();
BOOL talk_1();
int wait_action1(void*);
u8 demo();
void shadowDraw();
BOOL _draw();
BOOL _execute();
BOOL _delete();
cPhs_State _create();
BOOL bodyCreateHeap();
BOOL CreateHeap();
public:
/* 0x6C4 */ request_of_phase_process_class mPhs;
/* 0x6CC */ s8 m_hed_jnt_num;
/* 0x6CD */ s8 m_bbone_jnt_num;
/* 0x6CE */ char mArcName[3];
/* 0x6D4 */ u32 mShadowId;
/* 0x6D8 */ mDoExt_btkAnm mBtkAnm;
/* 0x6EC */ u8 mBtkAnmFrame;
/* 0x6F0 */ mDoExt_btpAnm mBtpAnm;
/* 0x704 */ u8 mBtpAnmFrame;
/* 0x706 */ s16 mTimer1;
/* 0x708 */ ActionFunc mCurrActionFunc;
/* 0x714 */ u8 field_0x714[0x718 - 0x714];
/* 0x718 */ u32 mPId;
/* 0x71C */ u8 field_0x71C[0x724 - 0x71C];
/* 0x724 */ cXyz field_0x724;
/* 0x730 */ csXyz field_0x730;
/* 0x736 */ csXyz field_0x736;
/* 0x73C */ u8 field_0x73C[0x744 - 0x73C];
/* 0x744 */ cXyz field_0x744;
/* 0x750 */ cXyz field_0x750;
/* 0x75C */ u8 field_0x75C[0x768 - 0x75C];
/* 0x768 */ cXyz field_0x768;
/* 0x774 */ u8 field_0x774[0x780 - 0x774];
/* 0x780 */ f32 mFrame;
/* 0x784 */ u8 field_0x784[0x788 - 0x784];
/* 0x788 */ csXyz field_0x788;
/* 0x790 */ int field_0x790;
/* 0x794 */ s16 mEventIdx[6];
/* 0x7A0 */ s16 mTimer2;
/* 0x7A2 */ u8 field_0x7A2[0x7AA - 0x7A2];
/* 0x7AA */ s16 field_0x7AA;
/* 0x7AC */ s8 field_0x7AC;
/* 0x7AD */ u8 field_0x7AD;
/* 0x7AE */ u8 mItemNo;
/* 0x7AF */ u8 field_0x7AF[0x7B0 - 0x7AF];
/* 0x7B0 */ bool field_0x7B0;
/* 0x7B1 */ bool mStateIsComplaete;
/* 0x7B2 */ bool field_0x7B2;
/* 0x7B3 */ bool field_0x7B3;
/* 0x7B4 */ bool field_0x7B4;
/* 0x7B5 */ bool field_0x7B5;
/* 0x7B6 */ bool mHasAttention;
/* 0x7B7 */ bool field_0x7B7;
/* 0x7B8 */ bool field_0x7B8;
/* 0x7B9 */ bool field_0x7B9;
/* 0x7BA */ bool field_0x7BA;
/* 0x7BB */ s8 mActIdx;
/* 0x7BC */ u8 field_0x7BC;
/* 0x7BD */ u8 field_0x7BD;
/* 0x7BE */ s8 field_0x7BE;
/* 0x7BF */ s8 field_0x7BF;
/* 0x7C0 */ s8 field_0x7C0;
/* 0x7C1 */ s8 field_0x7C1;
/* 0x7C2 */ s8 field_0x7C2;
/* 0x7C3 */ s8 field_0x7C3;
/* 0x7C4 */ s8 field_0x7C4;
/* 0x7C5 */ s8 field_0x7C5;
/* 0x7C6 */ s8 field_0x7C6;
/* 0x7C7 */ s8 field_0x7C7;
/* 0x7C8 */ s8 field_0x7C8;
}; // Size: 0x7CC
#endif /* D_A_NPC_HI1_H */