summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2025-09-27 23:59:08 -0700
committerGitHub <noreply@github.com>2025-09-28 09:59:08 +0300
commite90d02ca5e7a96c68f54040cec241f536c07c15d (patch)
tree2bef5bca8ec1c06d087d5e0e2ac90ce85421de49 /include
parent21bff2ba2513845235413c4c36d1bba1cad91c6b (diff)
rafrel mostly done (#2702)
* rafrel mostly done * npc_rafrel equivalent via fakematch (#3) * pr fixes --------- Co-authored-by: YunataSavior <58997725+YunataSavior@users.noreply.github.com>
Diffstat (limited to 'include')
-rw-r--r--include/d/actor/d_a_npc_rafrel.h133
1 files changed, 94 insertions, 39 deletions
diff --git a/include/d/actor/d_a_npc_rafrel.h b/include/d/actor/d_a_npc_rafrel.h
index 9f382e21eb..8ca054d23c 100644
--- a/include/d/actor/d_a_npc_rafrel.h
+++ b/include/d/actor/d_a_npc_rafrel.h
@@ -11,57 +11,112 @@
* @details
*
*/
-class daNpcRafrel_c : public fopAc_ac_c {
+class daNpcRafrel_c : public daNpcF_c {
public:
/* 80AB962C */ daNpcRafrel_c();
- /* 80AB9840 */ ~daNpcRafrel_c();
- /* 80AB9A40 */ void Create();
- /* 80AB9E3C */ void CreateHeap();
- /* 80ABA380 */ void Delete();
- /* 80ABA3B4 */ void Execute();
- /* 80ABA3D8 */ void Draw();
- /* 80ABA4A8 */ void ctrlJoint(J3DJoint*, J3DModel*);
- /* 80ABA678 */ void createHeapCallBack(fopAc_ac_c*);
- /* 80ABA698 */ void ctrlJointCallBack(J3DJoint*, int);
- /* 80ABA6E4 */ void setExpressionAnm(int, bool);
- /* 80ABA8EC */ void setExpressionBtp(int);
- /* 80ABA9CC */ bool setMotionAnm(int, f32);
+
+ /* 80AB9A40 */ int Create();
+ /* 80AB9E3C */ int CreateHeap();
+ /* 80ABA380 */ int Delete();
+ /* 80ABA3B4 */ int Execute();
+ /* 80ABA3D8 */ int Draw();
+ /* 80ABA4A8 */ int ctrlJoint(J3DJoint*, J3DModel*);
+ /* 80ABA678 */ static int createHeapCallBack(fopAc_ac_c*);
+ /* 80ABA698 */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80ABAB88 */ void reset();
- /* 80ABADC4 */ void setWaitAction();
- /* 80ABAFBC */ void isSneaking();
- /* 80ABB014 */ void wait_type01(void*);
- /* 80ABBB10 */ void setMotion(int, f32, int);
- /* 80ABBBB0 */ void setExpression(int, f32);
- /* 80ABBBDC */ void wait_type2(void*);
- /* 80ABBE84 */ void talk(void*);
- /* 80ABC50C */ void demo(void*);
- /* 80ABCA40 */ void leave(void*);
- /* 80ABCD74 */ void EvCut_Introduction(int);
- /* 80ABCE74 */ void EvCut_Meeting(int);
- /* 80ABD124 */ void EvCut_Appear(int);
- /* 80ABD8A0 */ void EvCut_WiretapSponsor(int);
- /* 80ABDB7C */ void EvCut_WiretapEntrant(int);
- /* 80ABDE9C */ void setParam();
- /* 80ABE1D0 */ void main();
- /* 80ABE470 */ void playMotion();
- /* 80ABE9FC */ void ctrlBtk();
- /* 80ABEAD8 */ void setAttnPos();
- /* 80ABEE98 */ void lookat();
- /* 80ABF074 */ bool drawDbgInfo();
-
- static u8 mEvtSeqList[84];
+ /* 80ABADC4 */ inline void setWaitAction();
+ /* 80ABAFBC */ inline bool isSneaking();
+ /* 80ABB014 */ bool wait_type01(void*);
+ /* 80ABBBDC */ bool wait_type2(void*);
+ /* 80ABBE84 */ bool talk(void*);
+ /* 80ABC50C */ bool demo(void*);
+ /* 80ABCA40 */ bool leave(void*);
+ /* 80ABCD74 */ int EvCut_Introduction(int);
+ /* 80ABCE74 */ int EvCut_Meeting(int);
+ /* 80ABD124 */ int EvCut_Appear(int);
+ /* 80ABD8A0 */ int EvCut_WiretapSponsor(int);
+ /* 80ABDB7C */ int EvCut_WiretapEntrant(int);
+
+ /* 80ABE470 */ inline void playMotion();
+ /* 80ABEE98 */ inline void lookat();
+ inline void playExpression();
+
+ /* 80AB9840 */ virtual ~daNpcRafrel_c();
+ /* 80ABDE9C */ virtual inline void setParam();
+ /* 80ABE1D0 */ virtual inline BOOL main();
+ /* 80ABE9FC */ virtual inline BOOL ctrlBtk();
+ /* 80ABEAD8 */ virtual inline void setAttnPos();
+ /* 80ABA6E4 */ virtual bool setExpressionAnm(int, bool);
+ /* 80ABA8EC */ virtual bool setExpressionBtp(int);
+ /* 80ABBBB0 */ virtual void setExpression(int, f32);
+ /* 80ABA9CC */ virtual void setMotionAnm(int, f32);
+ /* 80ABBB10 */ virtual void setMotion(int, f32, int);
+ /* 80ABF074 */ virtual inline BOOL drawDbgInfo();
+
+ int setAction(bool (daNpcRafrel_c::*i_actionFn)(void*)) {
+ field_0xe10 = 3;
+ if (field_0xde0 != NULL) {
+ (this->*field_0xde0)(NULL);
+ }
+
+ field_0xe10 = 0;
+ field_0xde0 = i_actionFn;
+
+ if (field_0xde0 != NULL) {
+ (this->*field_0xde0)(NULL);
+ }
+
+ return 1;
+ }
+
+ inline void setLookMode(int i_lookMode, fopAc_ac_c* i_talkPartner);
+ inline bool step(s16 i_angY, int param_1, f32 param_2);
+ inline void searchActors();
+ inline BOOL chkFindPlayer();
+ inline void setExpressionTalkAfter();
+
+ s16 getMessageNo() { return (fopAcM_GetParam(this) >> 8) & 0xFFFF; }
+
+ static int (daNpcRafrel_c::*mEvtSeqList[])(int);
private:
- /* 0x568 */ u8 field_0x568[0xe18 - 0x568];
+ /* 0xB48 */ Z2Creature mSound;
+ /* 0xBD8 */ J3DModel* mpItemModel;
+ /* 0xBDC */ daNpcF_MatAnm_c* mpMatAnm;
+ /* 0xBE0 */ daNpcF_Lookat_c field_0xbe0;
+ /* 0xC7C */ daNpcF_ActorMngr_c field_0xc7c[4];
+ /* 0xC9C */ fopAc_ac_c* field_0xc9c;
+ /* 0xCA0 */ u8 field_0xCA0[0xCA4 - 0xCA0];
+ /* 0xCA4 */ dCcD_Cyl field_0xca4;
+ /* 0xDE0 */ bool (daNpcRafrel_c::*field_0xde0)(void*);
+ /* 0xDEC */ request_of_phase_process_class mPhase[2];
+ /* 0xE04 */ JPABaseEmitter* field_0xdfc;
+ /* 0xE08 */ fpc_ProcID field_0xe00;
+ /* 0xE04 */ int field_0xe04;
+ /* 0xE08 */ int field_0xe08;
+ /* 0xE0C */ s16 field_0xe0c;
+ /* 0xE0E */ s16 field_0xe0e;
+ /* 0xE10 */ u16 field_0xe10;
+ /* 0xE12 */ s16 field_0xe12;
+ /* 0xE14 */ u8 field_0xe14;
+ /* 0xE15 */ u8 field_0xe15;
+ /* 0xE16 */ u8 field_0xe16;
+ /* 0xE17 */ u8 mType;
};
STATIC_ASSERT(sizeof(daNpcRafrel_c) == 0xe18);
+struct daNpcRafrel_HIOParam {
+ /* 0x00 */ daNpcF_HIOParam common;
+ /* 0x6C */ f32 field_0x6c;
+ /* 0x70 */ u32 field_0x70;
+};
+
class daNpcRafrel_Param_c {
public:
- /* 80ABF974 */ ~daNpcRafrel_Param_c();
+ /* 80ABF974 */ virtual ~daNpcRafrel_Param_c() {}
- static u8 const m[116];
+ static const daNpcRafrel_HIOParam m;
};