diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2025-09-27 23:59:08 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-28 09:59:08 +0300 |
| commit | e90d02ca5e7a96c68f54040cec241f536c07c15d (patch) | |
| tree | 2bef5bca8ec1c06d087d5e0e2ac90ce85421de49 /include | |
| parent | 21bff2ba2513845235413c4c36d1bba1cad91c6b (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.h | 133 |
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; }; |
