npc_kn mostly done (#2609)

* npc_kn mostly done

* fix shieldD

* pr fixes

* weak func fixes
This commit is contained in:
TakaRikka
2025-08-28 03:49:24 -07:00
committed by GitHub
parent 956e84b0e7
commit 5ce5bf20cc
10 changed files with 5475 additions and 2675 deletions
+24 -21
View File
@@ -11,7 +11,7 @@
* @details
*
*/
class daNpc_GWolf_c : public fopAc_ac_c {
class daNpc_GWolf_c : public daNpcF_c {
public:
/* 809F30AC */ daNpc_GWolf_c();
/* 809F34C0 */ void create();
@@ -47,18 +47,18 @@ public:
/* 809F797C */ void test(void*);
/* 809F7A30 */ void getGroundSlope(dBgS_ObjAcch&, s16);
/* 809F32C0 */ ~daNpc_GWolf_c();
/* 809F4258 */ void setParam();
/* 809F4390 */ BOOL main();
/* 809F4558 */ BOOL ctrlBtk();
/* 809F4638 */ void adjustShapeAngle();
/* 809F4698 */ void setAttnPos();
/* 809F4BB0 */ bool setExpressionAnm(int, bool);
/* 809F4BB8 */ void setExpression(int, f32);
/* 809F4BBC */ bool setMotionAnm(int, f32);
/* 809F4DE8 */ void setMotion(int, f32, int);
/* 809F4E2C */ BOOL drawDbgInfo();
/* 809F4E34 */ void drawOtherMdls();
/* 809F32C0 */ virtual ~daNpc_GWolf_c();
/* 809F4258 */ virtual void setParam();
/* 809F4390 */ virtual BOOL main();
/* 809F4558 */ virtual BOOL ctrlBtk();
/* 809F4638 */ virtual void adjustShapeAngle();
/* 809F4698 */ virtual void setAttnPos();
/* 809F4BB0 */ virtual bool setExpressionAnm(int, bool);
/* 809F4BB8 */ virtual void setExpression(int, f32);
/* 809F4BBC */ virtual void setMotionAnm(int, f32);
/* 809F4DE8 */ virtual void setMotion(int, f32, int);
/* 809F4E2C */ virtual BOOL drawDbgInfo();
/* 809F4E34 */ virtual void drawOtherMdls();
void setHowlingEndFlag() { field_0xe1c = 2; }
void setHowlingFlag() { field_0xe1c = 1; }
@@ -67,14 +67,17 @@ public:
static u8 mEvtCutList[60];
private:
// /* 0xB48 */ Z2Creature mCreature;
// /* 0xBD8 */ daNpcF_MatAnm_c* mpMatAnm;
// /* 0xBDC */ daNpcF_Lookat_c mLookAt;
// /* 0xC78 */ daNpcF_ActorMngr_c mActorMng[2];
// /* 0xC88 */ u8 field_0xc88[4];
// /* 0xC8C */ dCcD_Cyl mCyl;
// /* 0xDC8 */ u8 field_0xdc8[0xE1C - 0xdc8];
/* 0x568 */ u8 field_0xb48[0xE1C - 0x568];
/* 0xB48 */ Z2Creature mSound;
/* 0xBD8 */ daNpcF_MatAnm_c* mpMatAnm;
/* 0xBDC */ daNpcF_Lookat_c mLookAt;
/* 0xC78 */ daNpcF_ActorMngr_c mActorMng[2];
/* 0xC88 */ u8 field_0xC88[0xC8C - 0xC88];
/* 0xC8C */ dCcD_Cyl mCcCyl;
/* 0xDC8 */ u8 field_0xDC8[0xE08 - 0xDC8];
/* 0xE08 */ int field_0xe08;
/* 0xE0C */ u8 field_0xE0C[0xE14 - 0xE0C];
/* 0xE14 */ u32 field_0xe14;
/* 0xE18 */ u8 field_0xe18[0xE1C - 0xE18];
/* 0xE1C */ u8 field_0xe1c;
};
+139 -109
View File
@@ -16,6 +16,24 @@ public:
typedef int (daNpc_Kn_c::*cutFunc)(int);
typedef int (daNpc_Kn_c::*actionFunc)(void*);
enum AnmFlags {
ANM_PAUSE_MORF = 0x1,
ANM_PAUSE_BTK = 0x2,
ANM_PAUSE_BRK = 0x4,
ANM_PAUSE_BPK = 0x8,
ANM_PAUSE_BCK = 0x10,
ANM_PAUSE_BTP = 0x20,
ANM_PLAY_MORF = 0x40,
ANM_PLAY_BTK = 0x80,
ANM_PLAY_BRK = 0x100,
ANM_PLAY_BPK = 0x200,
ANM_PLAY_BCK = 0x400,
ANM_PLAY_BTP = 0x800,
ANM_FLAG_1000 = 0x1000,
ANM_PAUSE_TIMER_BTP = 0x2000,
ANM_FLAG_4000 = 0x4000,
};
class daNpc_Kn_prtclMngr_c {
public:
/* 80A2AF98 */ ~daNpc_Kn_prtclMngr_c() {};
@@ -32,9 +50,9 @@ public:
/* 0x05AC */ const daNpcT_faceMotionAnmData_c* mpFaceMotionAnmData;
/* 0x05B0 */ const daNpcT_motionAnmData_c* mpMotionAnmData;
/* 0x05B4 */ const daNpcT_evtData_c* mpEventData;
/* 0x05B8 */ char** field_0x5B8;
/* 0x05BC */ mDoExt_McaMorfSO* mpMorf[2];
/* 0x05C4 */ Z2Creature mCreature;
/* 0x05B8 */ char** mpArcNames;
/* 0x05BC */ mDoExt_McaMorfSO* mpModelMorf[2];
/* 0x05C4 */ Z2Creature mSound;
/* 0x0654 */ mDoExt_bckAnm mBckAnm;
/* 0x0670 */ mDoExt_btpAnm mBtpAnm;
/* 0x0688 */ mDoExt_btkAnm mBtkAnm;
@@ -48,70 +66,74 @@ public:
/* 0x09A0 */ daNpcT_MatAnm_c* mpMatAnm;
/* 0x09A4 */ u8 field_0x9a4[4];
/* 0x09A8 */ dMsgFlow_c mFlow;
/* 0x09F4 */ u8 field_0x9F4[0xa74 - 0x9f4];
/* 0x09F4 */ dPaPoT_c field_0x9F4;
/* 0x0A74 */ dCcD_Stts mCcStts2;
/* 0x0AB0 */ u32 mFlowNodeNo;
/* 0x0AB4 */ f32 field_0xab4;
/* 0x0AB8 */ f32 field_0xab8;
/* 0x0ABC */ u8 field_0xABC;
/* 0x0ABD */ u8 field_0xABD;
/* 0x0ABE */ u8 field_0xABE[0xAC0 - 0xABE];
/* 0x0AB4 */ f32 mExpressionMorfFrame;
/* 0x0AB8 */ f32 mMorfFrames;
/* 0x0ABC */ u8 mCreating;
/* 0x0ABD */ u8 mTwilight;
/* 0x0AC0 */ dBgS_GndChk mGndChk2;
/* 0x0B14 */ dBgS_LinChk mLinChk;
/* 0x0B84 */ daNpcT_MotionSeqMngr_c mMotionSeqMngr1;
/* 0x0BA8 */ daNpcT_MotionSeqMngr_c mMotionSeqMngr2;
/* 0x0B84 */ daNpcT_MotionSeqMngr_c mFaceMotionSeqMngr;
/* 0x0BA8 */ daNpcT_MotionSeqMngr_c mMotionSeqMngr;
/* 0x0BCC */ daNpcT_ActorMngr_c mActorMngr1;
/* 0x0BD4 */ daNpcT_ActorMngr_c mActorMngr2;
/* 0x0BDC */ daNpcT_JntAnm_c mJntAnm;
/* 0x0D3C */ daNpcT_DmgStagger_c mDmgStagger;
/* 0x0D58 */ cXyz field_0xd58;
/* 0x0D64 */ cXyz field_0xD64;
/* 0x0D70 */ cXyz field_0xD70;
/* 0x0D7C */ cXyz field_0xD7C;
/* 0x0D88 */ cXyz field_0xD88;
/* 0x0D94 */ cXyz field_0xD94;
/* 0x0D58 */ cXyz mFootLPos;
/* 0x0D64 */ cXyz mFootRPos;
/* 0x0D70 */ cXyz mFootLOffset;
/* 0x0D7C */ cXyz mFootROffset;
/* 0x0D88 */ cXyz mOldFootLOffset;
/* 0x0D94 */ cXyz mOldFootROffset;
/* 0x0DA0 */ cXyz field_0xDA0;
/* 0x0DAC */ csXyz mTargetAngle;
/* 0x0DAC */ csXyz mCurAngle;
/* 0x0DB2 */ csXyz field_0xDB2;
/* 0x0DB8 */ csXyz field_0xDB8;
/* 0x0DBE */ csXyz field_0xDBE;
/* 0x0DC4 */ s32 field_0xdc4;
/* 0x0DC4 */ fpc_ProcID mItemPartnerId;
/* 0x0DC8 */ u32 mShadowKey;
/* 0x0DCC */ u32 field_0xdcc;
/* 0x0DD0 */ u32 field_0xdd0;
/* 0x0DD4 */ s32 mStaffId;
/* 0x0DCC */ u32 mAnmFlags;
/* 0x0DD0 */ fpc_ProcID mMsgId;
/* 0x0DD4 */ int mStaffId;
/* 0x0DD8 */ int mCutType;
/* 0x0DDC */ int field_0xddc;
/* 0x0DE0 */ int field_0xde0;
/* 0x0DE0 */ int mTimerStart;
/* 0x0DE4 */ int mTimer;
/* 0x0DE8 */ int field_0xde8;
/* 0x0DE8 */ int mBtpPauseTimer;
/* 0x0DEC */ int field_0xdec;
/* 0x0DF0 */ s16 field_0xdf0;
/* 0x0DF2 */ u8 field_0xdf2[0x0DFA - 0x0DF2];
/* 0x0DFA */ s16 field_0xdfa;
/* 0x0DFC */ u8 field_0xdfc[0x0DFE - 0x0DFC];
/* 0x0DFE */ s16 field_0xdfe;
/* 0x0E00 */ s16 field_0xe00;
/* 0x0E04 */ f32 field_0xe04;
/* 0x0DF0 */ s16 mGroundAngle;
/* 0x0DF2 */ s16 field_0xdf2;
/* 0x0DF4 */ s16 mFootLPolyAngle;
/* 0x0DF5 */ u8 field_0xdf5[0x0DF8 - 0x0DF6];
/* 0x0DF8 */ s16 mFootRPolyAngle;
/* 0x0DFA */ s16 mStartAngle;
/* 0x0DFC */ s16 mTargetAngle;
/* 0x0DFE */ s16 mStepMode;
/* 0x0E00 */ s16 mTurnAmount;
/* 0x0E04 */ f32 mTurnCount;
/* 0x0E08 */ u8 field_0xe08[0x0E0C - 0x0E08];
/* 0x0E0C */ f32 field_0xe0c;
/* 0x0E10 */ f32 mRadius;
/* 0x0E14 */ f32 mGroundHeight;
/* 0x0E18 */ u8 field_0xe18[0xe24 - 0xe18];
/* 0x0E24 */ s16 field_0xe24;
/* 0x0E26 */ u16 field_0xe26;
/* 0x0E28 */ u16 field_0xe28;
/* 0x0E2A */ u16 field_0xe2a;
/* 0x0E18 */ u8 field_0xe18[0xe1c - 0xe18];
/* 0x0E1C */ u32 mHitodamaPrtclKey[2];
/* 0x0E24 */ s16 mEvtId;
/* 0x0E26 */ u16 mMorfLoops;
/* 0x0E28 */ u16 mBckLoops;
/* 0x0E2A */ u16 mMode;
/* 0x0E2C */ u8 field_0xe2c;
/* 0x0E2D */ u8 field_0xe2d;
/* 0x0E2E */ u8 field_0xe2e[0xe30 - 0xe2e];
/* 0x0E2E */ u8 mFootLOnGround;
/* 0x0E2F */ u8 mFootROnGround;
/* 0x0E30 */ u8 field_0xe30;
/* 0x0E31 */ u8 field_0xe31;
/* 0x0E32 */ u8 field_0xe32;
/* 0x0E32 */ u8 mNoDraw;
/* 0x0E33 */ u8 field_0xe33;
/* 0x0E33 */ u8 field_0xe34[0xe36 - 0xe34];
/* 0x0E36 */ u16 mEvtIdx;
/* 0x0E38 */ u8 field_0xe38;
/* 0x0E34 */ u8 field_0xe34;
/* 0x0E36 */ u16 mEvtNo;
/* 0x0E38 */ u8 mSpeakEvent;
/* 0x0E39 */ u8 field_0xe39;
/* 0x0E3A */ u8 field_0xe3a;
/* 0x0E3B */ u8 field_0xe3b;
@@ -120,27 +142,21 @@ public:
public:
void initialize() {
memset(&field_0xd58, 0, (int)&field_0xe3c - (int)&field_0xd58);
memset(&mFootLPos, 0, (int)&field_0xe3c - (int)&mFootLPos);
mMotionSeqMngr1.initialize();
mMotionSeqMngr2.initialize();
mFaceMotionSeqMngr.initialize();
mMotionSeqMngr.initialize();
mActorMngr1.initialize();
mActorMngr2.initialize();
mJntAnm.initialize();
mDmgStagger.initialize();
field_0xdc4 = -1;
mItemPartnerId = -1;
field_0xe2d = 1;
field_0x15a4 = 0;
mPodAnmFlags = 0;
}
bool checkHide() {
bool ret = false;
if (field_0xe2c != 0 || (!dComIfGs_wolfeye_effect_check() && field_0xABD != 0)) {
ret = true;
}
return ret;
return field_0xe2c != 0 || (!dComIfGs_wolfeye_effect_check() && mTwilight != 0);
}
int getHeadJointNo() {
@@ -155,16 +171,21 @@ public:
return 1;
}
bool checkChangeJoint(int i_jointNo) { return i_jointNo == 4; }
bool checkRemoveJoint(int i_jointNo) { return i_jointNo == 5; }
void setCutType(int i_type) { mCutType = i_type;}
void setActionMode(s8 i_actionMode) { mActionMode = i_actionMode;}
s8 getActionMode() { return mActionMode; }
void setTalkFlag(u8 i_flag) { field_0x15bd = i_flag; }
/* 80A2AFD4 */ s32 create();
/* 80A2B278 */ s32 CreateHeap();
/* 80A2B620 */ s32 Delete();
/* 80A2B654 */ s32 Execute();
/* 80A2B6B0 */ void Draw();
/* 80A2AFD4 */ int create();
/* 80A2B278 */ int CreateHeap();
/* 80A2B620 */ int Delete();
/* 80A2B654 */ int Execute();
/* 80A2B6B0 */ int Draw();
/* 80A2B764 */ static int createHeapCallBack(fopAc_ac_c*);
/* 80A2B784 */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80A2B7DC */ u8 getType();
@@ -184,7 +205,7 @@ public:
/* 80A2C1D0 */ void setAfterTalkMotion();
/* 80A2C230 */ void srchActors();
/* 80A2C234 */ bool evtTalk();
/* 80A2C318 */ bool evtCutProc();
/* 80A2C318 */ BOOL evtCutProc();
/* 80A2C3FC */ void action();
/* 80A2C484 */ void beforeMove();
/* 80A2C4FC */ void afterMoved();
@@ -253,18 +274,18 @@ public:
/* 80A37D20 */ void calcSwordAttackMove(int);
/* 80A3805C */ void setSe();
/* 80A38520 */ static void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
/* 80A38550 */ void getTrnsfrmAnmP(char const*, int);
/* 80A3858C */ void* getTrnsfrmKeyAnmP(char const*, int);
/* 80A385C8 */ void getTexPtrnAnmP(char const*, int);
/* 80A38604 */ void getTexSRTKeyAnmP(char const*, int);
/* 80A38640 */ void setBckAnm(J3DAnmTransform*, f32, int, int, int, bool);
/* 80A38550 */ J3DAnmTransform* getTrnsfrmAnmP(char const*, int);
/* 80A3858C */ J3DAnmTransformKey* getTrnsfrmKeyAnmP(char const*, int);
/* 80A385C8 */ J3DAnmTexPattern* getTexPtrnAnmP(char const*, int);
/* 80A38604 */ J3DAnmTextureSRTKey* getTexSRTKeyAnmP(char const*, int);
/* 80A38640 */ BOOL setBckAnm(J3DAnmTransform*, f32, int, int, int, bool);
/* 80A38684 */ int setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
/* 80A3877C */ void setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int);
/* 80A387BC */ void setBtkAnm(J3DAnmTextureSRTKey*, J3DModelData*, f32, int);
/* 80A387FC */ cPhs__Step loadRes(s8 const*, char const**);
/* 80A3877C */ BOOL setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int);
/* 80A387BC */ BOOL setBtkAnm(J3DAnmTextureSRTKey*, J3DModelData*, f32, int);
/* 80A387FC */ int loadRes(s8 const*, char const**);
/* 80A388B0 */ void deleteRes(s8 const*, char const**);
/* 80A38930 */ s32 execute();
/* 80A38BB8 */ int draw(int, int, f32, _GXColorS10*, f32, int, int, int);
/* 80A38930 */ int execute();
/* 80A38BB8 */ int draw(int, int, f32, GXColorS10*, f32, int, int, int);
/* 80A38FAC */ void setEnvTevColor();
/* 80A39008 */ void setRoomNo();
/* 80A3904C */ BOOL checkEndAnm(f32);
@@ -279,21 +300,28 @@ public:
/* 80A3A7C0 */ bool setMotionAnm(int, f32, int);
/* 80A3AA58 */ void setPos(cXyz);
/* 80A3AAF0 */ void setAngle(s16);
/* 80A3AB18 */ int chkActorInSight(fopAc_ac_c*, f32, s16);
/* 80A3AC24 */ int chkPointInArea(cXyz, cXyz, f32, f32, f32, s16);
/* 80A3ACD4 */ void chkPointInArea(cXyz, cXyz, cXyz, s16);
/* 80A3AB18 */ BOOL chkActorInSight(fopAc_ac_c*, f32, s16);
/* 80A3AC24 */ BOOL chkPointInArea(cXyz, cXyz, f32, f32, f32, s16);
/* 80A3ACD4 */ BOOL chkPointInArea(cXyz, cXyz, cXyz, s16);
/* 80A3AD50 */ int chkFindPlayer(int, s16);
/* 80A3AF64 */ BOOL srchPlayerActor();
/* 80A3B000 */ cXyz getAttnPos(fopAc_ac_c*);
/* 80A3B074 */ BOOL turn(s16, int, int);
/* 80A3B220 */ s32 step(s16, int, int, int, int);
/* 80A3B3E8 */ s32 initTalk(int, fopAc_ac_c**);
/* 80A3B220 */ int step(s16, int, int, int, int);
/* 80A3B3E8 */ int initTalk(int, fopAc_ac_c**);
/* 80A3B448 */ BOOL talkProc(int*, int, fopAc_ac_c**, int);
/* 80A3B5EC */ void setHitodamaPrtcl();
/* 80A3B82C */ daNpc_Kn_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int,
daNpcT_evtData_c const*, char**);
/* 80A3B82C */ daNpc_Kn_c(daNpcT_faceMotionAnmData_c const* param_0,
daNpcT_motionAnmData_c const* param_1,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, int param_3,
daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, int param_5,
daNpcT_evtData_c const* param_6, char** param_7)
: mpFaceMotionAnmData(param_0), mpMotionAnmData(param_1), mFaceMotionSeqMngr(param_2, param_3),
mMotionSeqMngr(param_4, param_5), mpEventData(param_6), mpArcNames(param_7)
{
OS_REPORT("|%06d:%x|daNpc_Kn_c -> コンストラクト\n", g_Counter.mCounter0, this);
initialize();
}
/* 80A3C998 */ u32 setParamTeach01();
/* 80A3CB14 */ void setCollisionTeach01();
/* 80A3CBFC */ void teach01_selectAction();
@@ -314,32 +342,33 @@ public:
/* 80A3F99C */ int ECut_secondSkillExplain(int);
/* 80A3FFB4 */ int ECut_reflectExplain(int);
/* 80A403B8 */ int ECut_secondSkillGet(int);
/* 80A3949C */ virtual int ctrlBtk();
/* 80A3B7B4 */ virtual s32 getFootLJointNo();
/* 80A3B7AC */ virtual s32 getFootRJointNo();
/* 80A3BD1C */ virtual u16 getEyeballLMaterialNo();
/* 80A3BD24 */ virtual u16 getEyeballRMaterialNo();
/* 80A3BD14 */ virtual u16 getEyeballMaterialNo();
/* 80A3B7B4 */ virtual int getFootLJointNo() { return -1; }
/* 80A3B7AC */ virtual int getFootRJointNo() { return -1; }
/* 80A3BD1C */ virtual u16 getEyeballLMaterialNo() { return 0; }
/* 80A3BD24 */ virtual u16 getEyeballRMaterialNo() { return 0; }
/* 80A3BD14 */ virtual u16 getEyeballMaterialNo() { return 0; }
/* 80A3989C */ virtual int ctrlJoint(J3DJoint*, J3DModel*);
/* 80A3B720 */ virtual void afterJntAnm(int);
/* 80A3B7A4 */ virtual BOOL checkChangeEvt();
/* 80A3B720 */ virtual void afterJntAnm(int) {}
/* 80A3B7A4 */ virtual BOOL checkChangeEvt() { return FALSE; }
/* 80A3B79C */ virtual BOOL evtEndProc() { return TRUE; }
/* 80A39BBC */ virtual int evtProc();
/* 80A3B79C */ virtual BOOL evtEndProc();
/* 80A39DBC */ virtual void setFootPos();
/* 80A39F84 */ virtual void setFootPrtcl(cXyz*, f32);
/* 80A3A254 */ virtual bool checkCullDraw();
/* 80A3A25C */ virtual void twilight();
/* 80A3B7BC */ virtual BOOL chkXYItems();
/* 80A3B7BC */ virtual BOOL chkXYItems() { return FALSE; }
/* 80A3A2A8 */ virtual void evtOrder();
/* 80A3B708 */ virtual void decTmr();
/* 80A3A504 */ virtual void clrParam();
/* 80A3B7C4 */ virtual bool afterSetFaceMotionAnm(int, int, f32, int);
/* 80A3B7C4 */ virtual bool afterSetFaceMotionAnm(int, int, f32, int) { return true; }
/* 80A3B7CC */ virtual daNpcT_faceMotionAnmData_c getFaceMotionAnm(daNpcT_faceMotionAnmData_c);
/* 80A3B7FC */ virtual daNpcT_motionAnmData_c getMotionAnm(daNpcT_motionAnmData_c);
/* 80A2AA0C */ virtual ~daNpc_Kn_c();
/* 80A2D060 */ virtual bool afterSetMotionAnm(int, int, f32, int);
static u8 const mCcDObjData[48];
static const dCcD_SrcGObjInf mCcDObjData;
static dCcD_SrcCyl mCcDCyl;
static dCcD_SrcSph mCcDSph;
static char* mCutNameList[21];
@@ -349,14 +378,14 @@ public:
static u8 mFindCount[4];
private:
/* 0x0E44 */ J3DModel* mpModel;
/* 0x0E44 */ J3DModel* mpPodModel;
/* 0x0E48 */ mDoExt_invisibleModel mInvisModel;
/* 0x0E50 */ dKy_tevstr_c mTevStr;
/* 0x11D8 */ u8 field_0x11D8[0x11DC - 0x11D8];
/* 0x11DC */ dCcD_Cyl mCylCc;
/* 0x1318 */ dCcD_Sph mSphCc[2];
/* 0x1588 */ mDoExt_bckAnm field_0x1588;
/* 0x15A4 */ u32 field_0x15a4;
/* 0x1588 */ mDoExt_bckAnm mPodBck;
/* 0x15A4 */ u32 mPodAnmFlags;
/* 0x15A8 */ u32 field_0x15A8;
/* 0x15AC */ u8 mType;
/* 0x15AD */ u8 mDivideNo;
@@ -371,16 +400,17 @@ private:
/* 0x15CD */ u8 field_0x15cd;
/* 0x15CE */ u8 field_0x15ce;
/* 0x15CF */ u8 field_0x15cf;
/* 0x15D0 */ u16 field_0x15d0;
/* 0x15D4 */ s32 field_0x15d4[3];
/* 0x15D0 */ s16 field_0x15d0;
/* 0x15D4 */ int field_0x15d4[3];
/* 0x15E0 */ daNpc_Kn_prtclMngr_c mParticleMngr[3];
/* 0x16F4 */ cXyz field_0x16f4;
/* 0x1700 */ u8 field_0x1700[0x170c - 0x1700];
/* 0x1700 */ cXyz field_0x1700;
/* 0x170C */ u8 field_0x170c;
/* 0x170D */ u8 field_0x170d;
/* 0x170E */ u8 field_0x170e;
/* 0x170F */ u8 field_0x170f;
/* 0x1710 */ u8 field_0x1710[4];
/* 0x1710 */ s16 field_0x1710;
/* 0x1712 */ s16 field_0x1712;
/* 0x1714 */ actionFunc mpTeachAction;
/* 0x1720 */ actionFunc mpActionFunc;
/* 0x172C */ daNpcT_Path_c mPath;
@@ -391,19 +421,19 @@ STATIC_ASSERT(sizeof(daNpc_Kn_c) == 0x1758);
struct daNpc_Kn_HIOParam {
/* 0x00 */ daNpcT_HIOParam common;
/* 0x8C */ s16 field_0x8c;
/* 0x8E */ s16 field_0x8e;
/* 0x90 */ s16 field_0x90;
/* 0x92 */ s16 field_0x92;
/* 0x94 */ f32 field_0x94;
/* 0x98 */ f32 field_0x98;
/* 0x9C */ f32 field_0x9c;
/* 0xA0 */ f32 field_0xa0;
/* 0xA4 */ f32 field_0xa4;
/* 0xA8 */ u32 field_0xa8;
/* 0xAC */ s16 field_0xac;
/* 0xAE */ s16 field_0xae;
/* 0xB0 */ f32 field_0xb0;
/* 0x8C */ s16 alpha;
/* 0x8E */ s16 attack_wait_time;
/* 0x90 */ s16 followup_wait_time; // ?
/* 0x94 */ f32 small_slide_distance;
/* 0x98 */ f32 big_slide_distance;
/* 0x9C */ f32 warp_distance;
/* 0xA0 */ f32 attack_disappear_speed_h; // ?
/* 0xA4 */ f32 attack_disappear_speed_v; // ?
/* 0xA8 */ s16 rotation_num;
/* 0xAA */ s16 rotation_speed;
/* 0xAC */ s16 attack_start_min_time;
/* 0xAE */ s16 attack_start_time_range;
/* 0xB0 */ f32 move_speed;
};
class daNpc_Kn_Param_c {
+1
View File
@@ -23,6 +23,7 @@ public:
/* 80C477B4 */ void hitPrtclSet();
u8 getActionMode() { return mActionMode; }
void setActionMode(u8 i_action) { mActionMode = i_action; }
private:
/* 0x568 */ u8 field_0x568[0x70c - 0x568];
+6
View File
@@ -949,6 +949,12 @@ public:
void onFishingRodReelEnd() { onEndResetFlg0(ERFLG0_UNK_20000); }
void onFishingHit() { onEndResetFlg0(ERFLG0_UNK_10000); }
void onFishingKeep() { onEndResetFlg2(ERFLG2_UNK_1); }
void onTraningCutHead() { onNoResetFlg3(FLG3_UNK_40); }
void onTraningCutFast() { onNoResetFlg3(FLG3_UNK_80); }
void onTraningCutLargeJump() { onNoResetFlg3(FLG3_UNK_200); }
void onTraningCutLargeTurn() { onNoResetFlg3(FLG3_UNK_100); }
void onTraningCutDown() { onNoResetFlg3(FLG3_UNK_10); }
void onTraningShieldAttack() { onNoResetFlg3(FLG3_UNK_8); }
BOOL checkStickArrowReset() const { return checkResetFlg0(RFLG0_UNK_1); }
u32 getCutAtFlg() const { return checkNoResetFlg0(FLG0_UNK_40); }
+1
View File
@@ -309,6 +309,7 @@ u8 dMeter2Info_getNewLetterNum();
int dMeter2Info_setNewLetterSender();
bool dMeter2Info_isItemOpenCheck();
bool dMeter2Info_isMapOpenCheck();
s16 dMeter2Info_getNowLifeGauge();
inline void dMeter2Info_Initialize() {
g_meter2_info.init();