summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorZeclos <Zeclos99@gmail.com>2026-07-05 19:11:40 +0200
committerGitHub <noreply@github.com>2026-07-05 13:11:40 -0400
commita7a5b5d6364e06e439d53a095ef6fd1ef25d7a68 (patch)
tree5f08ec2dc97854a0e8225f3705528f9cbed03737 /include
parent6051ac9b5b72f259b9d5d65fc9b7ad097d4bde38 (diff)
D_a_npc_tt (#1099)
* matching * cleanup * d_a_npc_tt matching outside of _create and rodata * matching * cleanup
Diffstat (limited to 'include')
-rw-r--r--include/d/actor/d_a_npc_tt.h179
-rw-r--r--include/d/d_snap.h2
2 files changed, 138 insertions, 43 deletions
diff --git a/include/d/actor/d_a_npc_tt.h b/include/d/actor/d_a_npc_tt.h
index 0177cf9d..07b3c790 100644
--- a/include/d/actor/d_a_npc_tt.h
+++ b/include/d/actor/d_a_npc_tt.h
@@ -2,82 +2,177 @@
#define D_A_NPC_TT_H
#include "f_op/f_op_actor.h"
+#include "d/d_npc.h"
struct tt_ke_s {
- void ke_control(float);
+ /* 0x00 */ cXyz field_0x00[10];
+ /* 0x78 */ cXyz field_0x78[10];
+ void ke_control(f32);
void ke_pos_set(cXyz*);
};
+struct lineKe {
+ tt_ke_s field_0x6C8[8];
+ mDoExt_3DlineMat0_c mLineMat;
+};
+
class daNpc_Tt_c : public fopAc_ac_c {
public:
- void ChkOrder(unsigned char) {}
- void ClrOrder() {}
- void SetOrder(unsigned char) {}
- void chkEvFlag(unsigned short) {}
- void chkFlag(unsigned short) {}
- void clrEvFlag(unsigned short) {}
- void clrFlag(unsigned short) {}
- void getBackboneJntNum() {}
- void getBackbone_x() {}
- void getBackbone_y() {}
- void getHeadJntNum() {}
- void getHead_x() {}
- void getHead_y() {}
- void incAttnSetCount() {}
- void setAction(int (daNpc_Tt_c::*)(void*), void*) {}
- void setAttentionBasePos(cXyz) {}
- void setEvFlag(unsigned short) {}
- void setEyePos(cXyz) {}
- void setFlag(unsigned short) {}
- void XyCheckCB(int);
+ enum ActionStatus {
+ ACTION_ENDING = -1,
+ ACTION_STARTING = 0,
+ ACTION_ONGOING = 1
+ };
+
+ enum TalkStates {
+ TALK_FINISHED = -1,
+ TALK_INIT = 0,
+ TALK_MSG_CREATE = 1,
+ TALK_ACTIVE = 2
+ };
+
+ typedef BOOL (daNpc_Tt_c::*ActionFunc)(void*);
+
+ bool ChkOrder(u8 flag) { return mOrderFlags & flag; }
+ void ClrOrder() { mOrderFlags = 0; }
+ void SetOrder(u8 flag) { mOrderFlags |= flag; }
+ bool chkEvFlag(u16 evFlag) { return (mEvFlags & evFlag) == evFlag; }
+ bool chkFlag(u16 flag) { return (mFlags & flag) == flag; }
+ void clrEvFlag(u16 evFlag) { mEvFlags &= ~evFlag; }
+ void clrFlag(u16 flag) { mFlags &= ~flag; }
+
+ s8 getBackboneJntNum() { return m_jnt.getBackboneJntNum(); }
+ s16 getBackbone_y() { return m_jnt.getBackbone_y(); }
+ s8 getHeadJntNum() { return m_jnt.getHeadJntNum(); }
+ s16 getHead_x() { return m_jnt.getHead_x(); }
+ s16 getHead_y() { return m_jnt.getHead_y(); }
+
+ void incAttnSetCount() {
+ if (mAttnSetCount != 0xff) {
+ mAttnSetCount++;
+ }
+ }
+
+ BOOL setAction(ActionFunc actionFunc, void* arg) {
+ if (mCurrActionFunc != actionFunc) {
+ if (mCurrActionFunc != NULL) {
+ mActionStatus = ACTION_ENDING;
+ (this->*mCurrActionFunc)(arg);
+ }
+ mCurrActionFunc = actionFunc;
+ mActionStatus = ACTION_STARTING;
+ (this->*mCurrActionFunc)(arg);
+ }
+ return TRUE;
+ }
+
+ void setAttentionBasePos(cXyz i_attnBasePos) { mAttnBasePos = i_attnBasePos; }
+ void setEvFlag(u16 evFlag) { mEvFlags |= evFlag;}
+ void setEyePos(cXyz i_eyePos) { mEyePos = i_eyePos; }
+ void setFlag(u16 flag) { mFlags |= flag; }
+
+ s16 XyCheckCB(int);
void setAnmStatus();
void eventOrder();
void checkOrder();
- void next_msgStatus(unsigned long*);
- void getMsg();
+ u16 next_msgStatus(u32*);
+ u32 getMsg();
void setCollision();
void talkInit();
void msgAnm();
void msgPushButton();
void msgContinue();
- void talk();
+ u16 talk();
void demoInitChange();
- void demoProcTact1();
+ bool demoProcTact1();
void demoInitPatten();
- void demoProcPatten();
+ bool demoProcPatten();
void demoInitSpeak();
- void demoProcSpeak();
+ bool demoProcSpeak();
void demoInitWait();
- void demoProcWait();
+ bool demoProcWait();
void demoInitCom();
void demoProcCom();
- void getNowEventAction();
- void demoProc();
- void init();
+ s32 getNowEventAction();
+ bool demoProc();
+ BOOL init();
void setAttention(bool);
void lookBack();
- void wait01();
- void talk01();
- void tact00();
- void wait_action(void*);
+ bool wait01();
+ bool talk01();
+ bool tact00();
+ BOOL wait_action(void*);
void set_ke_root(int, int, int);
void ke_execute();
BOOL _draw();
BOOL _execute();
BOOL _delete();
cPhs_State _create();
- void CreateHeap();
+ BOOL CreateHeap();
- void initTexPatternAnm(bool);
+ BOOL initTexPatternAnm(bool);
void playTexPatternAnm();
void setAnm(int);
void danceInit(int);
- void danceProc();
- void danceNext();
-
+ BOOL danceProc();
+ BOOL danceNext();
public:
- /* Place member variables here */
-};
+ /* 0x290 */ dNpc_HeadAnm_c mHeadAnm;
+ /* 0x2B4 */ s16 mEventIdx;
+ /* 0x2B6 */ u8 field_0x2B6[0x2B8 - 0x2B6];
+ /* 0x2B8 */ request_of_phase_process_class mPhs;
+ /* 0x2C0 */ mDoExt_McaMorf* mpMorf;
+ /* 0x2C4 */ u32 mShadowId;
+ /* 0x2C8 */ J3DAnmTexPattern* m_head_tex_pattern;
+ /* 0x2CC */ mDoExt_btpAnm mBtpAnm;
+ /* 0x2E0 */ u8 mBlinkFrame;
+ /* 0x2E1 */ u8 field_0x2E1[0x2E2 - 0x2E1];
+ /* 0x2E2 */ s16 mBlinkTimer;
+ /* 0x2E4 */ dBgS_ObjAcch mObjAcch;
+ /* 0x4A8 */ dBgS_AcchCir mAcchCir;
+ /* 0x4E8 */ dCcD_Stts mStts;
+ /* 0x524 */ dCcD_Cyl mCyl;
+ /* 0x654 */ s8 m_head_jnt_num;
+ /* 0x655 */ s8 m_backbone_jnt_num;
+ /* 0x656 */ u8 field_0x656[0x658 - 0x656];
+ /* 0x658 */ dNpc_JntCtrl_c m_jnt;
+ /* 0x68C */ cXyz mEyePos;
+ /* 0x698 */ cXyz mAttnBasePos;
+ /* 0x6A4 */ s16 mMaxHeadTurnVelocity;
+ /* 0x6A6 */ u8 field_0x6A6[0x6A8 - 0x6A6];
+ /* 0x6A8 */ s8 mAnmEnded;
+ /* 0x6A9 */ u8 mAttnSetCount;
+ /* 0x6AA */ u8 field_0x6AA[0x6AC - 0x6AA];
+ /* 0x6AC */ f32 mAnmTimer;
+ /* 0x6B0 */ u32 mCurrMsgNo;
+ /* 0x6B4 */ u16 mFlags;
+ /* 0x6B6 */ s16 mNoticeLinkTimer;
+ /* 0x6B8 */ ActionFunc mCurrActionFunc;
+ /* 0x6C4 */ u8 mDanceStep;
+ /* 0x6C5 */ u8 mDanceStepTimer;
+ /* 0x6C6 */ u8 field_0x6C6[0x6C8 - 0x6C6];
+ /* 0x6C8 */ lineKe mLineKe;
+ /* 0xE64 */ s8 mTexPatternIdx;
+ /* 0xE65 */ s8 mCurrAnmIdx;
+ /* 0xE66 */ s8 mAnmLoopCount;
+ /* 0xE67 */ u8 mOrderFlags;
+ /* 0xE68 */ s8 mState;
+ /* 0xE69 */ s8 mReturnToState;
+ /* 0xE6A */ u8 mType;
+ /* 0xE6B */ s8 mActionStatus;
+ /* 0xE6C */ s8 mTalkState;
+ /* 0xE6D */ u8 mMsgAnmIdx;
+ /* 0xE6E */ u8 field_0xE6E[0xE70 - 0xE6E];
+ /* 0xE70 */ u32 mMtrlSndId;
+ /* 0xE74 */ s8 mReverb;
+ /* 0xE75 */ u8 mEvFlags;
+ /* 0xE76 */ s16 mSoundTimer;
+ /* 0xE78 */ s16 mTimer;
+ /* 0xE7A */ u8 field_0xE7A;
+ /* 0xE7B */ u8 field_0xE7B[0xE7C - 0xE7B];
+ /* 0xE7C */ u32 mMsgNo;
+ /* 0xE80 */ int mStaffIdx;
+}; // Size: 0xE84
#endif /* D_A_NPC_TT_H */
diff --git a/include/d/d_snap.h b/include/d/d_snap.h
index e3a522b6..a5e0a54c 100644
--- a/include/d/d_snap.h
+++ b/include/d/d_snap.h
@@ -92,7 +92,7 @@ enum {
/* 0x54 */ DSNAP_TYPE_KB,
/* 0x55 */ DSNAP_TYPE_KAMOME,
/* 0x56 */ DSNAP_TYPE_KN,
- /* 0x57 */ DSNAP_TYPE_UNK57,
+ /* 0x57 */ DSNAP_TYPE_TT,
/* 0x58 */ DSNAP_TYPE_KM1,
/* 0x59 */ DSNAP_TYPE_UNK59,
/* 0x5A */ DSNAP_TYPE_UNK5A,