diff options
Diffstat (limited to 'include/d/actor')
| -rw-r--r-- | include/d/actor/d_a_npc_sv.h | 173 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_ikada.h | 20 |
2 files changed, 155 insertions, 38 deletions
diff --git a/include/d/actor/d_a_npc_sv.h b/include/d/actor/d_a_npc_sv.h index 9a36c2cf..c5532e21 100644 --- a/include/d/actor/d_a_npc_sv.h +++ b/include/d/actor/d_a_npc_sv.h @@ -1,63 +1,176 @@ #ifndef D_A_NPC_SV_H #define D_A_NPC_SV_H -#include "f_op/f_op_actor.h" #include "d/d_cc_d.h" +#include "d/d_npc.h" struct sSvAnmDat { - -}; + /* 0x00 */ u8 mBckIdx; + /* 0x01 */ u8 mMorf; + /* 0x02 */ s8 mLoopCount; +}; // Size: 0x03 -class daNpcSv_c : public fopAc_ac_c { +struct NpcDatStruct { + /* 0x00 */ s16 mMax_head_x; + /* 0x02 */ s16 mMax_head_y; + /* 0x04 */ s16 mMax_backbone_x; + /* 0x06 */ s16 mMax_backbone_y; + /* 0x08 */ s16 mMin_head_x; + /* 0x0A */ s16 mMin_head_y; + /* 0x0C */ s16 mMin_backbone_x; + /* 0x0E */ s16 mMin_backbone_y; + /* 0x10 */ s16 mMax_turn_step; + /* 0x12 */ s16 field_0x12; + /* 0x14 */ f32 mModelOfsX; + /* 0x18 */ f32 mModelOfsY; + /* 0x1C */ f32 mModelOfsZ; + /* 0x20 */ f32 mPlayerEyeOfsY; + /* 0x24 */ f32 mAttnPosOfsY; + /* 0x28 */ f32 mEyePosOfsY; + /* 0x2C */ f32 mAttnDist; + /* 0x30 */ f32 mNearDist; + /* 0x34 */ s16 mAttnAngle; + /* 0x36 */ s16 mLookAtMaxVel; + /* 0x38 */ f32 mCylRadius; + /* 0x3C */ f32 mCylHeight; + /* 0x40 */ s16 mLookResetTimer; + /* 0x42 */ u8 mbAllowBodyTurn; + /* 0x43 */ u8 mbLookOnly; +}; // size 0x44; + +class daNpcSv_c : public fopNpc_npc_c { public: - void getMsgPtn() {} - void getNpcNo() {} - void getPhaseP() {} - void setResFlag(unsigned char) {} + enum MoveProcIdx { + MOVE_PROC_WAIT = 0, + MOVE_PROC_TALK = 1, + }; + + enum LookMode { + LOOK_MODE_NONE = 0, + LOOK_MODE_ATTN = 1, + LOOK_MODE_TURN = 2, + }; + + enum CutAct { + CUT_MES_SET = 0, + CUT_GET_ITEM = 1, + CUT_SET_ANGLE = 2, + CUT_ATTENTION = 3, + CUT_TURN_OK = 4, + }; + + enum BckIdx { + BCK_IDX_0 = 0, + BCK_IDX_1 = 1, + BCK_IDX_2 = 2, + BCK_IDX_3 = 3, + BCK_IDX_4 = 4, + BCK_IDX_5 = 5, + BCK_NULL = 0xFF, + }; + + u8 getMsgPtn() { return mMsgPtn; } + u8 getNpcNo() { + return mNpcNo; + } + request_of_phase_process_class* getPhaseP() { + return &mPhase; + } + void setResFlag(u8 flag) { + mResFlag = flag; + } daNpcSv_c(); cPhs_State _create(); - void createHeap(); - void createInit(); + BOOL createHeap(); + cPhs_State createInit(); bool _delete(); bool _draw(); bool _execute(); - void executeCommon(); - void executeSetMode(unsigned char); - void executeWaitInit(); + BOOL executeCommon(); + void executeSetMode(u8); + BOOL executeWaitInit(); void executeWait(); - void executeTalkInit(); + BOOL executeTalkInit(); void executeTalk(); void checkOrder(); void eventOrder(); void eventMove(); void privateCut(); void eventMesSetInit(int); - void eventMesSet(); + bool eventMesSet(); void eventGetItemInit(int); - void eventGetItem(); + bool eventGetItem(); void eventSetAngleInit(); void eventAttentionInit(int); - void eventAttention(); + bool eventAttention(); void eventTurnOkInit(); - void talk2(int, fopAc_ac_c*); - void next_msgStatus(unsigned long*); - void getMsg(); - void setMessage(unsigned long); + u16 talk2(int, fopAc_ac_c*); + virtual u16 next_msgStatus(u32*); + virtual u32 getMsg(); + void setMessage(u32); void setAnmFromMsgTag(); - void getPrmNpcNo(); + u8 getPrmNpcNo(); void setMtx(); void chkAttention(); void lookBack(); void playAnm(); - void setAnm(unsigned char, int, float); - void setAnmTbl(sSvAnmDat*); - void setCollision(dCcD_Cyl*, cXyz, float, float); - void getTalkNo(); - void isTalkOK(); + void setAnm(u8, int, f32); + bool setAnmTbl(sSvAnmDat*); + void setCollision(dCcD_Cyl*, cXyz, f32, f32); + u8 getTalkNo(); + BOOL isTalkOK(); -public: - /* Place member variables here */ -}; + static const char m_arcname[]; + +private: + /* 0x6C4 */ request_of_phase_process_class mPhase; + /* 0x6CC */ request_of_phase_process_class mPhaseCreate; + /* 0x6D4 */ u32 mShadowId; + /* 0x6D8 */ u32 field_0x6D8; + /* 0x6DC */ u8 padding_0x6DC[0x6EC - 0x6DC]; + /* 0x6EC */ cXyz mLookAtPos; + /* 0x6F8 */ u8 padding_0x6F8[0x704 - 0x6F8]; + /* 0x704 */ sSvAnmDat* mpAnmDat; + /* 0x708 */ u32* mpMsgNo; + /* 0x70C */ f32 mAnmMorfOverride; + /* 0x710 */ f32 mAttnDist; + /* 0x714 */ u32 mItemNo; + /* 0x718 */ s32 mIkadaFrame; + /* 0x71C */ bool mHeadOnlyFollow; + /* 0x71D */ u8 field_0x71D; + /* 0x71E */ s16 mEventIdx[3]; + /* 0x724 */ s16 mLookResetTimer; + /* 0x726 */ s16 mAttnAngle; + /* 0x728 */ s16 mHomeYRot; + /* 0x72A */ s16 mAttnTimer; + /* 0x72C */ s16 mTargetAngleY; + /* 0x72E */ s16 mLookAtMaxVel; + /* 0x730 */ s16 mTurnVel; + /* 0x732 */ s16 mLookAngleY; + /* 0x734 */ u16 mTalkFlags; + /* 0x736 */ u8 mTalkOrder; + /* 0x737 */ u8 mbPlayerAttention; + /* 0x738 */ u8 mEvtOrderType; + /* 0x739 */ u8 mMoveState; + /* 0x73A */ u8 mResFlag; + /* 0x73B */ u8 mNpcNo; + /* 0x73C */ u8 mCutFlags; + /* 0x73D */ u8 mBckIdx; + /* 0x73E */ u8 mAnmFlag; + /* 0x73F */ s8 mAnmLoopCnt; + /* 0x740 */ s8 mActIdx; + /* 0x741 */ s8 mLookMode; + /* 0x742 */ u8 field_0x742; + /* 0x743 */ u8 mbAllowBodyTurn; + /* 0x744 */ u8 mbLookOnly; + /* 0x745 */ bool mbNearPlayer; + /* 0x746 */ u8 mTalkNo; + /* 0x747 */ u8 mMsgPtn; + /* 0x748 */ u8 mKyoroFlag; + /* 0x749 */ u8 mbStopMawasi; + /* 0x74A */ bool mbWasNearPlayer; + /* 0x74B */ u8 padding_0x74B[0x74C - 0x74B]; +}; // Size: 0x74C #endif /* D_A_NPC_SV_H */ diff --git a/include/d/actor/d_a_obj_ikada.h b/include/d/actor/d_a_obj_ikada.h index 5a4cc600..bfcf439b 100644 --- a/include/d/actor/d_a_obj_ikada.h +++ b/include/d/actor/d_a_obj_ikada.h @@ -18,18 +18,22 @@ public: PROC_EXEC_e = 1, }; - void getCranePos() {} - void getFrame() {} - void getMode() {} - void getSvDirection() {} + cXyz getCranePos() { + return mCranePos; + } + s32 getFrame() { + return mFrame; + } + s32 getMode() { return mCurMode; } + s32 getSvDirection() { return m1168; } bool isBonbori() { return mType == 3 || mType == 1; } bool isCrane() {return mType == 4; } bool isFlag() { return mType == 0 || mType == 4; } bool isWave() { return mType == 4 || mType == 3 || mType == 1; } void modeProcInit(int idx) { modeProc(PROC_INIT_e, idx); } void setInitPos() {} - void setStart() {} - void setStop() {} + void setStart() { m1166 = 1; } + void setStop() { m1166 = 0; } void _nodeControl(J3DNode*, J3DModel*); BOOL _pathMove(cXyz*, cXyz*, cXyz*); @@ -123,7 +127,7 @@ public: /* 0x0462 */ u8 m0462[0x0464 - 0x0462]; /* 0x0464 */ f32 mSplashScaleTimer; /* 0x0468 */ cXyz mTrackPos; - /* 0x0474 */ cXyz m0474; + /* 0x0474 */ cXyz mCranePos; /* 0x0480 */ dPa_followEcallBack mBombSmokeEasterEgg; /* 0x0494 */ csXyz mBombSmokeRot; /* 0x049A */ u8 m049A[0x049C - 0x049A]; @@ -161,7 +165,7 @@ public: /* 0x07D8 */ s32 m07D8; /* 0x07DC */ cXyz m07DC[200]; /* 0x113C */ csXyz mJointRot[4]; - /* 0x1154 */ s32 m1154; + /* 0x1154 */ s32 mFrame; /* 0x1158 */ s16 m1158; /* 0x115A */ s16 m115A; /* 0x115C */ s16 m115C; |
