Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions include/d/actor/d_a_npc.h
Original file line number Diff line number Diff line change
Expand Up @@ -982,7 +982,7 @@ class daNpcF_c : public fopAc_ac_c {
/* 0x9F0 */ bool mIsDamaged;
/* 0x9F1 */ u8 field_0x9f1;
/* 0x9F2 */ bool mHide;
/* 0x9f3 */ u8 field_0x9f3;
/* 0x9F3 */ u8 field_0x9f3;
/* 0x9F4 */ bool mTwilight;
/* 0x9F5 */ u8 field_0x9f5;
/* 0x9F6 */ u8 field_0x9f6;
Expand Down Expand Up @@ -1098,7 +1098,7 @@ class daNpcF_c : public fopAc_ac_c {
/* 80155BE0 */ virtual bool setExpressionAnm(int i_idx, bool i_modify);
/* 80155EC8 */ virtual bool setExpressionBtp(int i_idx);
/* 80155BF0 */ virtual void setExpression(int i_expression, f32 i_morf);
/* 80155BE8 */ virtual bool setMotionAnm(int i_idx, f32 i_morf);
/* 80155BE8 */ virtual void setMotionAnm(int i_idx, f32 i_morf);
/* 80155BEC */ virtual void setMotion(int i_motion, f32 i_morf, int i_restart);
/* 80155BD0 */ virtual BOOL drawDbgInfo();
/* 80155BCC */ virtual void drawOtherMdls();
Expand Down Expand Up @@ -1136,6 +1136,7 @@ void daNpcF_onEvtBit(u32 i_idx);
BOOL daNpcF_chkTmpBit(u32 i_idx);
void daNpcF_offTmpBit(u32 i_idx);
u8 daNpcF_getDistTableIdx(int param_0, int param_1);
void daNpcF_clearMessageTmpBit();
BOOL daNpcF_chkPointInArea(cXyz, cXyz, cXyz, s16);
int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2, csXyz& param_3);
s16 daNpcF_getGroundAngle(cBgS_PolyInfo*, s16);
Expand Down
2 changes: 1 addition & 1 deletion include/d/actor/d_a_npc_ash.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ class daNpcAsh_c : public daNpcF_c {
/* 80959478 */ static BOOL ctrlJointCallBack(J3DJoint*, int);
/* 809594C4 */ bool setExpressionAnm(int, bool);
/* 809596E0 */ bool setExpressionBtp(int);
/* 809597C0 */ bool setMotionAnm(int i_idx, f32 i_morf);
/* 809597C0 */ void setMotionAnm(int i_idx, f32 i_morf);
/* 80959910 */ void reset();
/* 80959B28 */ inline bool setAction(ActionFn);
/* 80959BD0 */ inline bool isSneaking();
Expand Down
4 changes: 2 additions & 2 deletions include/d/actor/d_a_npc_ashB.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ class daNpcAshB_c : public daNpcF_c {
/* 8095EBB4 */ static BOOL ctrlJointCallBack(J3DJoint*, int);
/* 8095EC00 */ bool setExpressionAnm(int, bool);
/* 8095EE00 */ bool setExpressionBtp(int);
/* 8095EEE0 */ bool setMotionAnm(int, f32);
/* 8095EEE0 */ void setMotionAnm(int, f32);
/* 8095F0A4 */ void reset();
/* 8095F21C */ inline bool setAction(ActionFn i_actionFn);
/* 8095F2C4 */ bool wait(void*);
Expand Down Expand Up @@ -120,7 +120,7 @@ class daNpcAshB_c : public daNpcF_c {
/* 0xC88 */ dCcD_Cyl mCyl;
/* 0xDC4 */ ActionFn mpActionFn;
/* 0xDD0 */ request_of_phase_process_class mPhase[1];
/* 0xDD8 */ s32 mItemPartnerId;
/* 0xDD8 */ u32 mItemPartnerId;
/* 0xDDC */ u32 field_0xddc;
/* 0xDE0 */ u32 field_0xde0;
/* 0xDE4 */ s16 mFlowID;
Expand Down
158 changes: 130 additions & 28 deletions include/d/actor/d_a_npc_impal.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,52 +11,154 @@
* @details
*
*/
class daNpcImpal_c : public fopAc_ac_c {
class daNpcImpal_c : public daNpcF_c {
public:
typedef int (daNpcImpal_c::*cutFunc)(int);
typedef bool (daNpcImpal_c::*actionFunc)(void*);
typedef BOOL (daNpcImpal_c::*EventFn)(int);

enum Animation {
/* 0x00 */ ANM_0,
/* 0x01 */ ANM_1,
/* 0x02 */ ANM_2,
/* 0x03 */ ANM_3,
/* 0x04 */ ANM_4,
/* 0x05 */ ANM_5,
/* 0x06 */ ANM_6,
/* 0x07 */ ANM_7,
/* 0x08 */ ANM_8,
/* 0x09 */ ANM_9,
/* 0x10 */ ANM_10,
/* 0x11 */ ANM_11,
/* 0x12 */ ANM_12,
};

enum Expression {
/* 0x0 */ EXPR_0,
/* 0x1 */ EXPR_1,
/* 0x2 */ EXPR_2,
/* 0x3 */ EXPR_3,
/* 0x4 */ EXPR_4,
/* 0x5 */ EXPR_5,
/* 0x6 */ EXPR_6,
/* 0x7 */ EXPR_7,
};

enum Motion {
/* 0x00 */ MOT_0,
/* 0x01 */ MOT_1,
/* 0x02 */ MOT_2,
/* 0x03 */ MOT_3,
/* 0x04 */ MOT_4,
/* 0x05 */ MOT_5,
/* 0x06 */ MOT_6,
};

/* 80A079EC */ daNpcImpal_c();
/* 80A07C00 */ ~daNpcImpal_c();
/* 80A07DC4 */ void Create();
/* 80A080F8 */ void CreateHeap();
/* 80A08524 */ void Delete();
/* 80A08558 */ void Execute();
/* 80A0857C */ void Draw();
/* 80A085EC */ void ctrlJoint(J3DJoint*, J3DModel*);
/* 80A087BC */ void createHeapCallBack(fopAc_ac_c*);
/* 80A087DC */ void ctrlJointCallBack(J3DJoint*, int);
/* 80A08828 */ void setExpressionAnm(int, bool);
/* 80A08A68 */ void setExpressionBtp(int);
/* 80A08B48 */ bool setMotionAnm(int, f32);
/* 80A07DC4 */ int Create();
/* 80A080F8 */ BOOL CreateHeap();
/* 80A08524 */ int Delete();
/* 80A08558 */ int Execute();
/* 80A0857C */ int Draw();
/* 80A085EC */ bool ctrlJoint(J3DJoint*, J3DModel*);
/* 80A087BC */ static int createHeapCallBack(fopAc_ac_c*);
/* 80A087DC */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80A08828 */ bool setExpressionAnm(int, bool);
/* 80A08A68 */ bool setExpressionBtp(int);
/* 80A08B48 */ void setMotionAnm(int, f32);
/* 80A08CBC */ void reset();
/* 80A08EB8 */ void setAction(bool (daNpcImpal_c::*)(void*));
/* 80A090E8 */ void wait(void*);
/* 80A099B4 */ void setMotion(int, f32, int);
/* 80A08EB8 */ inline bool setAction(daNpcImpal_c::actionFunc);
/* 80A090E8 */ bool wait(void*);
/* 80A099B4 */ void setMotion(int, f32, BOOL);
/* 80A099F8 */ void setExpression(int, f32);
/* 80A09A24 */ void talk(void*);
/* 80A09F4C */ void demo(void*);
/* 80A0A1E0 */ void EvCut_ImpalAppear1(int);
/* 80A0A680 */ void EvCut_ImpalAppear2(int);
/* 80A0A950 */ void EvCut_CopyRod(int);
/* 80A09A24 */ bool talk(void*);
/* 80A09F4C */ bool demo(void*);
/* 80A0A1E0 */ BOOL EvCut_ImpalAppear1(int);
/* 80A0A680 */ BOOL EvCut_ImpalAppear2(int);
/* 80A0A950 */ BOOL EvCut_CopyRod(int);
/* 80A0ADF8 */ void setParam();
/* 80A0AEA8 */ void main();
/* 80A0B380 */ void ctrlBtk();
/* 80A0AEA8 */ BOOL main();
/* 80A0B380 */ BOOL ctrlBtk();
/* 80A0B45C */ void setAttnPos();
/* 80A0B76C */ void lookat();
/* 80A0B94C */ bool drawDbgInfo();
/* 80A0B94C */ BOOL drawDbgInfo();

static u8 mEvtSeqList[48];
s16 getMessageNo() { return shape_angle.x; }
u8 getSwitchNo() { return (fopAcM_GetParam(this) >> 8) & 0xFF; }
inline void playExpression();
inline void playMotion();
inline s16 step(s16, int);
inline void setExpressionTalkAfter();
inline BOOL chkFindPlayer();
inline void setLookMode(int i_lookMode);
inline void deleteObstacle();

static EventFn mEvtSeqList[4];

private:
/* 0x568 */ u8 field_0x568[0xdec - 0x568];
/* 0xB48 */ Z2Creature mCreatureSound;
/* 0xBD8 */ daNpcF_MatAnm_c* mpMatAnm;
/* 0xBDC */ daNpcF_Lookat_c mLookat;
/* 0xC78 */ daNpcF_ActorMngr_c mActorMngr[1];
/* 0xC80 */ fopAc_ac_c* mpTalkPartner;
/* 0xC84 */ dCcD_Cyl mCyl;
/* 0xDC0 */ actionFunc mpActionFn;
/* 0xDCC */ request_of_phase_process_class mPhase[1];
/* 0xDD4 */ u32 mItemPartnerId;
/* 0xDD8 */ u32 field_0xdd8;
/* 0xDDC */ u32 field_0xddc;
/* 0xDE0 */ s16 mFlowID;
/* 0xDE2 */ s16 field_de2;
/* 0xDE4 */ s16 mLookMode;
/* 0xDE6 */ u16 mMode;
/* 0xDE8 */ u8 field_0xde8;
/* 0xDE9 */ u8 field_0xde9;
};

STATIC_ASSERT(sizeof(daNpcImpal_c) == 0xdec);

struct daNpc_Impal_HIOParam {
/* 0x00 */ f32 mAttnOffsetY;
/* 0x04 */ f32 mGravity;
/* 0x08 */ f32 mScale;
/* 0x0C */ f32 mShadowDepth;
/* 0x10 */ f32 mCcWeight;
/* 0x14 */ f32 mCylH;
/* 0x18 */ f32 mWallH;
/* 0x1C */ f32 mWallR;
/* 0x20 */ f32 mBodyUpAngle;
/* 0x24 */ f32 mBodyDownAngle;
/* 0x28 */ f32 mBodyLeftAngle;
/* 0x2C */ f32 mBodyRightAngle;
/* 0x30 */ f32 mHeadUpAngle;
/* 0x34 */ f32 mHeadDownAngle;
/* 0x38 */ f32 mHeadLeftAngle;
/* 0x3C */ f32 mHeadRightAngle;
/* 0x40 */ f32 mNeckAngleScl;
/* 0x44 */ f32 mMorfFrames;
/* 0x48 */ s16 mSpeakDistIdx;
/* 0x4A */ s16 mSpeakAngleIdx;
/* 0x4C */ s16 mTalkDistIdx;
/* 0x4E */ s16 mTalkAngleIdx;
/* 0x50 */ f32 mAttnFovY;
/* 0x54 */ f32 mAttnRadius;
/* 0x58 */ f32 mAttnUpperY;
/* 0x5C */ f32 mAttnLowerY;
/* 0x60 */ s16 field_0x60;
/* 0x62 */ s16 mDamageTimer;
/* 0x64 */ s16 mTestExpression;
/* 0x66 */ s16 mTestMotion;
/* 0x68 */ s16 mTestLookMode;
/* 0x6A */ bool mTest;
/* 0x6C */ f32 field_0x6c;
};

class daNpcImpal_Param_c {
public:
/* 80A0C204 */ ~daNpcImpal_Param_c();
/* 80A0C204 */ virtual ~daNpcImpal_Param_c() {}

static u8 const m[112];
static daNpc_Impal_HIOParam const m;
};


#endif /* D_A_NPC_IMPAL_H */
2 changes: 1 addition & 1 deletion include/d/actor/d_a_npc_shoe.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class daNpcShoe_c : public daNpcF_c {
/* 80AE93A0 */ BOOL main();
/* 80AE9624 */ void setAttnPos();
/* 80AE9820 */ void lookat();
/* 80AE9A00 */ bool setMotionAnm(int, f32);
/* 80AE9A00 */ void setMotionAnm(int, f32);
/* 80AE9AD0 */ BOOL drawDbgInfo();
/* 80AEA340 */ void adjustShapeAngle();

Expand Down
2 changes: 1 addition & 1 deletion include/d/actor/d_a_npc_the.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ class daNpcThe_c : public daNpcF_c {
/* 80AF8114 */ static BOOL ctrlJointCallBack(J3DJoint*, int);
/* 80AF8160 */ bool setExpressionAnm(int, bool);
/* 80AF841C */ bool setExpressionBtp(int);
/* 80AF8564 */ bool setMotionAnm(int, f32);
/* 80AF8564 */ void setMotionAnm(int, f32);
/* 80AF8744 */ BOOL wait(void*);
/* 80AF8B0C */ void setMotion(int, f32, int);
/* 80AF8B50 */ void setExpression(int, f32);
Expand Down
116 changes: 63 additions & 53 deletions include/d/actor/d_a_npc_uri.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,68 @@
* @details
*
*/

struct daNpc_Uri_HIOParam {
/* 0x00 */ f32 field_0x00;
/* 0x04 */ f32 field_0x04;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ f32 field_0x3c;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ f32 field_0x44;
/* 0x48 */ s16 field_0x48;
/* 0x4A */ s16 field_0x4a;
/* 0x4C */ s16 field_0x4c;
/* 0x4E */ s16 field_0x4e;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ f32 field_0x54;
/* 0x58 */ f32 field_0x58;
/* 0x5C */ f32 field_0x5c;
/* 0x60 */ s16 field_0x60;
/* 0x62 */ s16 field_0x62;
/* 0x64 */ u8 field_0x64[8];
/* 0x6C */ f32 field_0x6c;
/* 0x70 */ u8 field_0x70[28];
/* 0x8C */ s16 field_0x8c;
/* 0x8E */ s16 field_0x8e;
/* 0x90 */ s16 field_0x90;
/* 0x92 */ s16 field_0x92;
/* 0x94 */ s16 field_0x94;
/* 0x96 */ s16 field_0x96;
/* 0x98 */ f32 field_0x98;
/* 0x9C */ f32 field_0x9c;
/* 0xA0 */ f32 field_0xa0;
/* 0xA4 */ f32 field_0xa4;
/* 0xA8 */ f32 field_0xa8;
};

class daNpc_Uri_Param_c {
public:
/* 80B2CD94 */ virtual ~daNpc_Uri_Param_c() {};

static daNpc_Uri_HIOParam const m;
};

class daNpc_Uri_HIO_c
#ifdef DEBUG
: public mDoHIO_entry_c
#endif
{
public:
void genMessage(JORMContext*);
};

class daNpc_Uri_c : public daNpcT_c {
public:
typedef int (daNpc_Uri_c::*cutFunc)(int);
Expand Down Expand Up @@ -102,7 +164,7 @@ class daNpc_Uri_c : public daNpcT_c {
static cutFunc mCutList[7];

private:
/* 0x0E40 */ int field_0xe40;
/* 0x0E40 */ daNpc_Uri_HIO_c* field_0xe40;
/* 0x0E44 */ J3DModel* mpModel[1];
/* 0x0E48 */ dCcD_Cyl mCyl;
/* 0x0F84 */ u8 mType;
Expand Down Expand Up @@ -134,56 +196,4 @@ class daNpc_Uri_c : public daNpcT_c {

STATIC_ASSERT(sizeof(daNpc_Uri_c) == 0x1018);

struct daNpc_Uri_HIOParam {
/* 0x00 */ f32 field_0x00;
/* 0x04 */ f32 field_0x04;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
/* 0x38 */ f32 field_0x38;
/* 0x3C */ f32 field_0x3c;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ f32 field_0x44;
/* 0x48 */ s16 field_0x48;
/* 0x4A */ s16 field_0x4a;
/* 0x4C */ s16 field_0x4c;
/* 0x4E */ s16 field_0x4e;
/* 0x50 */ f32 field_0x50;
/* 0x54 */ f32 field_0x54;
/* 0x58 */ f32 field_0x58;
/* 0x5C */ f32 field_0x5c;
/* 0x60 */ s16 field_0x60;
/* 0x62 */ s16 field_0x62;
/* 0x64 */ u8 field_0x64[8];
/* 0x6C */ f32 field_0x6c;
/* 0x70 */ u8 field_0x70[28];
/* 0x8C */ s16 field_0x8c;
/* 0x8E */ s16 field_0x8e;
/* 0x90 */ s16 field_0x90;
/* 0x92 */ s16 field_0x92;
/* 0x94 */ s16 field_0x94;
/* 0x96 */ s16 field_0x96;
/* 0x98 */ f32 field_0x98;
/* 0x9C */ f32 field_0x9c;
/* 0xA0 */ f32 field_0xa0;
/* 0xA4 */ f32 field_0xa4;
/* 0xA8 */ f32 field_0xa8;
};

class daNpc_Uri_Param_c {
public:
/* 80B2CD94 */ virtual ~daNpc_Uri_Param_c() {};

static daNpc_Uri_HIOParam const m;
};

#endif /* D_A_NPC_URI_H */
2 changes: 1 addition & 1 deletion include/d/actor/d_a_npc_zra.h
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ class daNpc_zrA_c : public daNpcF_c {
/* 80B7B9D4 */ bool setExpressionAnm(int, bool);
/* 80B7BD60 */ bool setExpressionBtp(int);
/* 80B7BE74 */ void setExpression(int, f32);
/* 80B7BEA0 */ bool setMotionAnm(int, f32);
/* 80B7BEA0 */ void setMotionAnm(int, f32);
/* 80B7C070 */ void setMotionWaterAnm(int);
/* 80B7C308 */ void setMotion(int, f32, BOOL);
/* 80B7C34C */ BOOL drawDbgInfo();
Expand Down
Loading