diff options
| author | Carco_21 <144170194+carter-ktb21@users.noreply.github.com> | 2025-05-09 16:28:43 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-09 23:28:43 +0300 |
| commit | 773c0ad60f5ecbbff8335d766d1d0f4c71280ed2 (patch) | |
| tree | a7dd1f5e0e4b55ce7cfb6511c64964cb306631d3 /include | |
| parent | efcf241825d99d7bb408780f2dea318ade0f5da0 (diff) | |
d_a_npc_cd work (#2429)
* Work on create function
* General work
* Pull request cleanup
* Remove unnecessary semicolon
---------
Co-authored-by: hatal175 <hatal175@users.noreply.github.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/actor/d_a_npc_cd.h | 123 |
1 files changed, 112 insertions, 11 deletions
diff --git a/include/d/actor/d_a_npc_cd.h b/include/d/actor/d_a_npc_cd.h index 0d64fae514..7fb19023fd 100644 --- a/include/d/actor/d_a_npc_cd.h +++ b/include/d/actor/d_a_npc_cd.h @@ -4,28 +4,128 @@ #include "Z2AudioLib/Z2Creature.h" #include "d/d_com_inf_game.h" +struct daNpcCd_HIO_Jnt_c : public JORReflexible { + /* 80157810 */ virtual ~daNpcCd_HIO_Jnt_c() {} + /* 801578B0 */ daNpcCd_HIO_Jnt_c() {} + + void genMessage(JORMContext*); + + /* 0x04 */ cXyz jntT; + /* 0x10 */ csXyz jntR; +}; + +struct daNpcCd_HIO_Child_c { + /* 801577A0 */ virtual ~daNpcCd_HIO_Child_c() {} + /* 80157858 */ daNpcCd_HIO_Child_c() {} + + /* 0x004 */ daNpcCd_HIO_Jnt_c field_0x4[12]; + /* 0x128 */ s16 mAtn; +}; + +struct daNpcCd_HIO_c : public fOpAcm_HIO_entry_c { + /* 80157600 */ daNpcCd_HIO_c(); + /* 801577A0 */ virtual ~daNpcCd_HIO_c() {} + + void genMessage(JORMContext*); + + /* 0x0004 */ daNpcCd_HIO_Child_c field_0x0004[16]; + /* 0x1648 */ daNpcCd_HIO_Child_c field_0x1648[14]; +}; + +extern daNpcCd_HIO_c l_Cd_HIO; + +inline s16 HIO_atnOfs(int param_1) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd_HIO.field_0x0004[param_1].mAtn; + } else { + rv = l_Cd_HIO.field_0x0004[param_1 - 16].mAtn; + } + return rv; +} + +inline s16 HIO_jntRX(int param_1, int param_2) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntR.x; + } else { + rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntR.x; + } + return 182.04444885253906f * rv; +} + +inline s16 HIO_jntRY(int param_1, int param_2) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntR.y; + } else { + rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntR.y; + } + return 182.04444885253906f * rv; +} + +inline s16 HIO_jntRZ(int param_1, int param_2) { + s16 rv; + if (param_1 < 16) { + rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntR.z; + } else { + rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntR.z; + } + return 182.04444885253906f * rv; +} + +static inline f32 HIO_jntTX(int param_1, int param_2) { + f32 rv; + if (param_1 < 16) { + rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntT.x; + } else { + rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntT.x; + } + return 10.0f * rv; +} + +static inline f32 HIO_jntTY(int param_1, int param_2) { + f32 rv; + if (param_1 < 16) { + rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntT.y; + } else { + rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntT.y; + } + return 10.0f * rv; +} + +static inline f32 HIO_jntTZ(int param_1, int param_2) { + f32 rv; + if (param_1 < 16) { + rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntT.z; + } else { + rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntT.z; + } + return 10.0f * rv; +} + class daNpcCd_c : public fopAc_ac_c { public: /* 8015605C */ int NpcCreate(int); /* 801561E8 */ J3DModel* ObjCreate(int); - /* 80156228 */ void isM_(); - /* 80156248 */ void getAnmP(int, int); - /* 801563C8 */ void setAttention(int); + /* 80156228 */ BOOL isM_(); + /* 80156248 */ J3DAnmTransform* getAnmP(int, int); + /* 801563C8 */ int setAttention(int); /* 80156B4C */ int loadResrc(int, int); /* 80156C50 */ int removeResrc(int, int); /* 80156D1C */ void setEnvTevCol(); /* 80156D78 */ void setRoomNo(); /* 80156DBC */ void animation(); /* 80156E20 */ void setAnm(J3DAnmTransformKey*, f32, f32, int, int, int); - /* 80156E8C */ void drawObj(int, J3DModel*, f32); - /* 80156F74 */ void drawNpc(); - /* 80157084 */ void jntNodeCB(J3DJoint*, J3DModel*); + /* 80156E8C */ int drawObj(int, J3DModel*, f32); + /* 80156F74 */ int drawNpc(); + /* 80157084 */ int jntNodeCB(J3DJoint*, J3DModel*); /* 8015736C */ void setHitodamaParticle(); /* 80157524 */ J3DModelData* getNpcMdlDataP(int); /* 80157588 */ J3DModelData* getObjMdlDataP(int); /* 80AA8694 */ virtual ~daNpcCd_c(); - static u8 const m_cylDat[68]; + static dCcD_SrcCyl const m_cylDat; /* 0x56C */ request_of_phase_process_class mPhase1; /* 0x574 */ request_of_phase_process_class mPhase2; @@ -37,13 +137,14 @@ public: /* 0x80C */ dBgS_AcchCir mAcchCir; /* 0x84C */ dCcD_Stts mStts; /* 0x888 */ dCcD_Cyl mCyl; - /* 0x9C4 */ u32 field_0x9c4; + /* 0x9C4 */ int field_0x9c4; /* 0x9C8 */ int field_0x9c8; - /* 0x9CC */ int field_0x9cc[3]; + /* 0x9CC */ int mHitodamaEmitters[2]; + /* 0x9D4 */ int field_0x9d4; /* 0x9D8 */ cXyz field_0x9d8; - /* 0x9E4 */ u16 field_0x9e4; + /* 0x9E4 */ s16 field_0x9e4; /* 0x9E6 */ s16 field_0x9e6; - /* 0x9E8 */ bool field_0x9e8; + /* 0x9E8 */ bool mIsDarkWorld; }; #endif /* A_NPC_D_A_NPC_CD_H */ |
