mirror of
https://github.com/zeldaret/tp
synced 2026-07-07 14:13:27 -04:00
d_a_npc_zra mostly done, misc npc work (#2140)
This commit is contained in:
+289
-265
@@ -20,7 +20,7 @@ struct daNpc_GetParam2 { // name unknown
|
||||
/* 0x8 */ int arcIdx;
|
||||
};
|
||||
|
||||
struct dPnt {};
|
||||
struct dPnt : public dStage_dPnt_c {};
|
||||
|
||||
class daNpcT_ActorMngr_c {
|
||||
private:
|
||||
@@ -421,248 +421,6 @@ STATIC_ASSERT(sizeof(daNpcT_c) == 0xE40);
|
||||
|
||||
BOOL daNpcT_chkEvtBit(u32 i_idx);
|
||||
BOOL daNpcT_chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3, int param_4);
|
||||
BOOL daNpcF_chkPointInArea(cXyz, cXyz, cXyz, s16);
|
||||
|
||||
class daNpcF_ActorMngr_c {
|
||||
private:
|
||||
/* 0x0 */ u32 mActorID;
|
||||
|
||||
public:
|
||||
daNpcF_ActorMngr_c() { initialize(); }
|
||||
|
||||
/* 801506B0 */ void initialize();
|
||||
/* 801506D8 */ void entry(unsigned int);
|
||||
/* 801506BC */ void entry(fopAc_ac_c*);
|
||||
/* 801506E0 */ void remove();
|
||||
/* 801506EC */ fopAc_ac_c* getActorP();
|
||||
|
||||
/* 80155E40 */ virtual ~daNpcF_ActorMngr_c();
|
||||
};
|
||||
|
||||
class daNpcF_c : public fopAc_ac_c {
|
||||
protected:
|
||||
/* 0x568 */ mDoExt_McaMorfSO* mpMorf;
|
||||
/* 0x56C */ mDoExt_bckAnm mBckAnm;
|
||||
/* 0x588 */ mDoExt_btpAnm mBtpAnm;
|
||||
/* 0x5A0 */ mDoExt_btkAnm mBtkAnm;
|
||||
/* 0x5B8 */ mDoExt_brkAnm mBrkAnm;
|
||||
/* 0x5D0 */ dBgS_ObjAcch mAcch;
|
||||
/* 0x7A8 */ dCcD_Stts mCcStts;
|
||||
/* 0x7E4 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x824 */ daNpcF_ActorMngr_c field_0x824;
|
||||
/* 0x82C */ daNpcF_ActorMngr_c mAttnActor[5];
|
||||
/* 0x854 */ cXyz mLookatPos[3];
|
||||
/* 0x878 */ cXyz mLookPos;
|
||||
/* 0x884 */ cXyz field_0x884;
|
||||
/* 0x890 */ cXyz field_0x890;
|
||||
/* 0x89C */ cXyz field_0x89c;
|
||||
/* 0x8A8 */ cXyz field_0x8a8;
|
||||
/* 0x8B4 */ cXyz field_0x8b4;
|
||||
/* 0x8C0 */ cXyz field_0x8c0;
|
||||
/* 0x8CC */ cXyz field_0x8cc;
|
||||
/* 0x8D8 */ cXyz field_0x8d8;
|
||||
/* 0x8E4 */ cXyz mHeadPos;
|
||||
/* 0x8F0 */ csXyz field_0x8f0;
|
||||
/* 0x8F6 */ csXyz field_0x8f6;
|
||||
/* 0x8FC */ csXyz mEyeAngle;
|
||||
/* 0x902 */ csXyz mHeadAngle;
|
||||
/* 0x908 */ csXyz field_0x908[3];
|
||||
/* 0x91A */ csXyz field_0x91a[3];
|
||||
/* 0x92C */ int mCutIndex;
|
||||
/* 0x930 */ u32 field_0x930;
|
||||
/* 0x934 */ int mAttnIdx;
|
||||
/* 0x938 */ int mAttnChangeTimer;
|
||||
/* 0x93C */ int mAttnActorTimer[5];
|
||||
/* 0x950 */ int field_0x950;
|
||||
/* 0x954 */ int field_0x954;
|
||||
/* 0x958 */ int field_0x958;
|
||||
/* 0x95C */ int field_0x95c;
|
||||
/* 0x960 */ int field_0x960;
|
||||
/* 0x964 */ int field_0x964;
|
||||
/* 0x968 */ int field_0x968;
|
||||
/* 0x96C */ int field_0x96c;
|
||||
/* 0x970 */ f32 field_0x970;
|
||||
/* 0x974 */ f32 mExpressionMorfOverride;
|
||||
/* 0x978 */ f32 mExpressionMorf;
|
||||
/* 0x97C */ f32 mMotionMorfOverride;
|
||||
/* 0x980 */ f32 field_0x980;
|
||||
/* 0x984 */ f32 field_0x984[3];
|
||||
/* 0x990 */ u16 field_0x990;
|
||||
/* 0x992 */ u16 field_0x992;
|
||||
/* 0x994 */ u16 field_0x994;
|
||||
/* 0x996 */ s16 field_0x996;
|
||||
/* 0x998 */ u16 field_0x998;
|
||||
/* 0x99C */ u32 mAnmFlags;
|
||||
/* 0x9A0 */ u32 field_0x9a0;
|
||||
/* 0x9A4 */ u32 field_0x9a4;
|
||||
/* 0x9A8 */ u32 mHitodamaParticleKey[2];
|
||||
/* 0x9B0 */ u32 field_0x9b0;
|
||||
/* 0x9B4 */ int mFlowNodeNo;
|
||||
/* 0x9B8 */ cXyz field_0x9b8;
|
||||
/* 0x9C4 */ cXyz field_0x9c4;
|
||||
/* 0x9D0 */ s16 field_0x9d0;
|
||||
/* 0x9D2 */ s16 field_0x9d2;
|
||||
/* 0x9D4 */ s16 mEventIdx;
|
||||
/* 0x9D6 */ s16 mExpressionPhase;
|
||||
/* 0x9D8 */ s16 mExpressionPrevPhase;
|
||||
/* 0x9DA */ s16 mMotionPhase;
|
||||
/* 0x9DC */ s16 mMotionPrevPhase;
|
||||
/* 0x9DE */ s16 mExpression;
|
||||
/* 0x9E0 */ s16 mMotion;
|
||||
/* 0x9E2 */ u16 mMotionLoops;
|
||||
/* 0x9E4 */ u16 mExpressionLoops;
|
||||
/* 0x9E6 */ u16 mOrderEvtNo;
|
||||
/* 0x9E8 */ s8 field_0x9e8;
|
||||
/* 0x9E9 */ u8 field_0x9e9;
|
||||
/* 0x9EA */ u8 field_0x9ea;
|
||||
/* 0x9EB */ bool field_0x9eb;
|
||||
/* 0x9EC */ u8 field_0x9ec;
|
||||
/* 0x9ED */ bool field_0x9ed;
|
||||
/* 0x9EE */ bool field_0x9ee;
|
||||
/* 0x9EF */ u8 field_0x9ef;
|
||||
/* 0x9F0 */ u8 field_0x9f0;
|
||||
/* 0x9F1 */ u8 field_0x9f1;
|
||||
/* 0x9F2 */ bool mHide;
|
||||
/* 0x9f3 */ u8 field_0x9f3;
|
||||
/* 0x9F4 */ bool mTwilight;
|
||||
/* 0x9F5 */ u8 field_0x9f5;
|
||||
/* 0x9F6 */ u8 field_0x9f6;
|
||||
/* 0x9F8 */ dMsgFlow_c mFlow;
|
||||
/* 0xA44 */ cBgS_GndChk field_0xa44;
|
||||
/* 0xA80 */ dBgS_GndChk field_0xa80;
|
||||
/* 0xAD4 */ dBgS_LinChk field_0xad4;
|
||||
|
||||
public:
|
||||
struct daNpcF_anmPlayData {
|
||||
u16 idx;
|
||||
f32 morf;
|
||||
s32 numLoops;
|
||||
};
|
||||
|
||||
enum AnmFlags {
|
||||
ANM_PAUSE_MORF = 0x0001,
|
||||
ANM_PAUSE_BTK = 0x0002,
|
||||
ANM_PAUSE_BRK = 0x0004,
|
||||
ANM_PLAY_MORF = 0x0008,
|
||||
ANM_PLAY_BTK = 0x0010,
|
||||
ANM_PLAY_BRK = 0x0020,
|
||||
ANM_PAUSE_BCK = 0x0040,
|
||||
ANM_PAUSE_BTP = 0x0080,
|
||||
ANM_PLAY_BCK = 0x0100,
|
||||
ANM_PLAY_BTP = 0x0200,
|
||||
ANM_FLAG_400 = 0x0400,
|
||||
ANM_FLAG_800 = 0x0800,
|
||||
ANM_PAUSE_EXPRESSION = 0x1000,
|
||||
ANM_MOTION_FLAGS = ANM_PAUSE_MORF | ANM_PAUSE_BTK | ANM_PAUSE_BRK | ANM_PLAY_MORF |
|
||||
ANM_PLAY_BTK | ANM_PLAY_BRK,
|
||||
ANM_EXPRESSION_FLAGS = ANM_PAUSE_BCK | ANM_PAUSE_BTP | ANM_PLAY_BCK | ANM_PLAY_BTP |
|
||||
ANM_FLAG_400 | ANM_FLAG_800 | ANM_PAUSE_EXPRESSION,
|
||||
ANM_PAUSE_ALL = ANM_PAUSE_MORF | ANM_PAUSE_BTK | ANM_PAUSE_BRK | ANM_PAUSE_BCK |
|
||||
ANM_PAUSE_BTP | ANM_PAUSE_EXPRESSION,
|
||||
};
|
||||
|
||||
/* 80152014 */ BOOL execute();
|
||||
/* 801522AC */ BOOL draw(int, int, f32, _GXColorS10*, int);
|
||||
/* 80152614 */ void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
|
||||
/* 80152654 */ static void* srchAttnActor1(void*, void*);
|
||||
/* 801526E8 */ static void* srchActor(void*, void*);
|
||||
|
||||
/* 801528C8 */ void initialize();
|
||||
/* 80152B2C */ J3DAnmTransformKey* getTrnsfrmKeyAnmP(char*, int);
|
||||
/* 80152B68 */ J3DAnmTexPattern* getTexPtrnAnmP(char*, int);
|
||||
/* 80152BA4 */ J3DAnmTextureSRTKey* getTexSRTKeyAnmP(char*, int);
|
||||
/* 80152BE0 */ J3DAnmTevRegKey* getTevRegKeyAnmP(char*, int);
|
||||
/* 80152C1C */ BOOL setMcaMorfAnm(J3DAnmTransformKey* i_anm, f32 i_rate, f32 i_morf, int i_attr,
|
||||
int i_start, int i_end);
|
||||
/* 80152C80 */ BOOL setBckAnm(J3DAnmTransform* i_bck, f32 i_rate, int i_attr, int i_start,
|
||||
int i_end, bool i_modify);
|
||||
/* 80152CC4 */ BOOL setBtpAnm(J3DAnmTexPattern* i_btp, J3DModelData* i_modelData, f32 i_rate,
|
||||
int i_attr);
|
||||
/* 80152D04 */ BOOL setBtkAnm(J3DAnmTextureSRTKey* i_btk, J3DModelData* i_modelData, f32 i_rate,
|
||||
int i_attr);
|
||||
/* 80152D44 */ BOOL setBrkAnm(J3DAnmTevRegKey* i_brk, J3DModelData* i_modelData, f32 i_rate,
|
||||
int i_attr);
|
||||
/* 80152D84 */ void setEnvTevColor();
|
||||
/* 80152DE0 */ void setRoomNo();
|
||||
/* 80152E24 */ BOOL chkEndAnm(f32);
|
||||
/* 80152EC4 */ BOOL chkEndAnm(J3DFrameCtrl*, f32);
|
||||
/* 80152F40 */ BOOL playAllAnm();
|
||||
/* 80153150 */ void playExpressionAnm(daNpcF_c::daNpcF_anmPlayData***);
|
||||
/* 80153264 */ void playMotionAnm(daNpcF_c::daNpcF_anmPlayData***);
|
||||
/* 8015337C */ void setLookatMtx(int, int*, f32);
|
||||
/* 80153578 */ void hitChk2(dCcD_Cyl*, int, int);
|
||||
/* 80153658 */ void setDamage(int, int, int);
|
||||
/* 80153718 */ int ctrlMsgAnm(int&, int&, fopAc_ac_c*, int);
|
||||
/* 8015387C */ void orderEvent(int, char*, u16, u16, u8, u16);
|
||||
/* 80153954 */ void changeEvent(char*, char*, u16, u16);
|
||||
/* 801539F0 */ BOOL chkActorInSight(fopAc_ac_c*, f32);
|
||||
/* 80153A78 */ BOOL chkActorInArea(fopAc_ac_c*, cXyz, cXyz, s16);
|
||||
/* 80153BDC */ BOOL chkActorInAttnArea(fopAc_ac_c*, fopAc_ac_c*, int);
|
||||
/* 80153D1C */ int initTalk(int, fopAc_ac_c**);
|
||||
/* 80153D84 */ BOOL talkProc(int*, BOOL, fopAc_ac_c**);
|
||||
/* 80153EF4 */ BOOL turn(s16, f32, int);
|
||||
/* 801540A4 */ BOOL step(s16, int, int, int);
|
||||
/* 80154250 */ void setAngle(s16);
|
||||
/* 80154278 */ u8 getDistTableIdx(int, int);
|
||||
/* 801542A0 */ fopAc_ac_c* getEvtAreaTagP(int, int);
|
||||
/* 8015436C */ fopAc_ac_c* getAttnActorP(int, fpcLyIt_JudgeFunc, f32, f32, f32, f32, s16,
|
||||
int, int);
|
||||
/* 80154730 */ BOOL chkActorInSight2(fopAc_ac_c*, f32, s16);
|
||||
/* 80154834 */ BOOL chkPointInArea(cXyz, cXyz, f32, f32, f32, s16);
|
||||
/* 801548F4 */ BOOL chkPointInArea(cXyz, cXyz, cXyz, s16);
|
||||
/* 8015496C */ cXyz getAttentionPos(fopAc_ac_c*);
|
||||
/* 801549E0 */ BOOL chkFindPlayer2(int, s16);
|
||||
/* 80154BD8 */ void setHitodamaPrtcl();
|
||||
|
||||
/* 80155BF4 */ virtual ~daNpcF_c();
|
||||
/* 80155BC8 */ virtual void setParam();
|
||||
/* 80155BC0 */ virtual BOOL main();
|
||||
/* 80155BD8 */ virtual BOOL ctrlBtk();
|
||||
/* 80155BBC */ virtual void adjustShapeAngle();
|
||||
/* 8015276C */ virtual void setMtx();
|
||||
/* 801527FC */ virtual void setMtx2();
|
||||
/* 80155BB8 */ virtual void setAttnPos();
|
||||
/* 80155BB4 */ virtual void setCollisions();
|
||||
/* 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 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();
|
||||
|
||||
BOOL chkActorInSpeakArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) {
|
||||
return chkActorInAttnArea(i_actorCheck, i_actorArea, attention_info.field_0x0[3]);
|
||||
}
|
||||
BOOL chkPlayerInSpeakArea(fopAc_ac_c* i_actor) {
|
||||
return chkActorInSpeakArea(daPy_getPlayerActorClass(), i_actor);
|
||||
}
|
||||
BOOL chkActorInTalkArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) {
|
||||
return chkActorInAttnArea(i_actorCheck, i_actorArea, attention_info.field_0x0[1]);
|
||||
}
|
||||
BOOL chkPlayerInTalkArea(fopAc_ac_c* i_actor) {
|
||||
return chkActorInTalkArea(daPy_getPlayerActorClass(), i_actor);
|
||||
}
|
||||
BOOL checkHide() { return mHide || (mTwilight && !dComIfGs_wolfeye_effect_check()); }
|
||||
void setIntDemander(fopAc_ac_c* i_actor) { field_0x824.entry(i_actor); }
|
||||
void setIntFlowNodeNo(int i_flowNodeNo) { mFlowNodeNo = i_flowNodeNo; }
|
||||
void onInterrupt(u8 param_0) { field_0x9ef = param_0; }
|
||||
|
||||
static u8 const mCcDObjInfo[48];
|
||||
static dCcD_SrcCyl mCcDCyl;
|
||||
static dCcD_SrcSph mCcDSph;
|
||||
static fopAc_ac_c* mFindActorPList[100];
|
||||
static s32 mFindCount;
|
||||
static s16 mSrchActorName;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpcF_c) == 0xB48);
|
||||
|
||||
BOOL daNpcF_chkEvtBit(u32 i_idx);
|
||||
BOOL daNpcF_chkTmpBit(u32 i_idx);
|
||||
void daNpcF_offTmpBit(u32 i_idx);
|
||||
int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2, csXyz& param_3);
|
||||
s16 daNpcF_getGroundAngle(cBgS_PolyInfo*, s16);
|
||||
|
||||
struct daBaseNpc_matAnm_c {
|
||||
/* 8014D884 */ void calc(J3DMaterial*) const;
|
||||
@@ -830,6 +588,266 @@ public:
|
||||
static u8 m_set_func[4];
|
||||
};
|
||||
|
||||
class daNpcF_ActorMngr_c {
|
||||
private:
|
||||
/* 0x0 */ u32 mActorID;
|
||||
|
||||
public:
|
||||
daNpcF_ActorMngr_c() { initialize(); }
|
||||
|
||||
/* 801506B0 */ void initialize();
|
||||
/* 801506D8 */ void entry(unsigned int);
|
||||
/* 801506BC */ void entry(fopAc_ac_c*);
|
||||
/* 801506E0 */ void remove();
|
||||
/* 801506EC */ fopAc_ac_c* getActorP();
|
||||
|
||||
/* 80155E40 */ virtual ~daNpcF_ActorMngr_c();
|
||||
};
|
||||
|
||||
class daNpcF_c : public fopAc_ac_c {
|
||||
protected:
|
||||
/* 0x568 */ mDoExt_McaMorfSO* mpMorf;
|
||||
/* 0x56C */ mDoExt_bckAnm mBckAnm;
|
||||
/* 0x588 */ mDoExt_btpAnm mBtpAnm;
|
||||
/* 0x5A0 */ mDoExt_btkAnm mBtkAnm;
|
||||
/* 0x5B8 */ mDoExt_brkAnm mBrkAnm;
|
||||
/* 0x5D0 */ dBgS_ObjAcch mAcch;
|
||||
/* 0x7A8 */ dCcD_Stts mCcStts;
|
||||
/* 0x7E4 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x824 */ daNpcF_ActorMngr_c field_0x824;
|
||||
/* 0x82C */ daNpcF_ActorMngr_c mAttnActor[5];
|
||||
/* 0x854 */ cXyz mLookatPos[3];
|
||||
/* 0x878 */ cXyz mLookPos;
|
||||
/* 0x884 */ cXyz field_0x884;
|
||||
/* 0x890 */ cXyz field_0x890;
|
||||
/* 0x89C */ cXyz field_0x89c;
|
||||
/* 0x8A8 */ cXyz field_0x8a8;
|
||||
/* 0x8B4 */ cXyz field_0x8b4;
|
||||
/* 0x8C0 */ cXyz field_0x8c0;
|
||||
/* 0x8CC */ cXyz field_0x8cc;
|
||||
/* 0x8D8 */ cXyz field_0x8d8;
|
||||
/* 0x8E4 */ cXyz mHeadPos;
|
||||
/* 0x8F0 */ csXyz mCurAngle;
|
||||
/* 0x8F6 */ csXyz mOldAngle;
|
||||
/* 0x8FC */ csXyz mEyeAngle;
|
||||
/* 0x902 */ csXyz mHeadAngle;
|
||||
/* 0x908 */ csXyz field_0x908[3];
|
||||
/* 0x91A */ csXyz mLookatAngle[3];
|
||||
/* 0x92C */ int mCutIndex;
|
||||
/* 0x930 */ u32 field_0x930;
|
||||
/* 0x934 */ int mAttnIdx;
|
||||
/* 0x938 */ int mAttnChangeTimer;
|
||||
/* 0x93C */ int mAttnActorTimer[5];
|
||||
/* 0x950 */ int mMsgTimer;
|
||||
/* 0x954 */ int field_0x954;
|
||||
/* 0x958 */ int field_0x958;
|
||||
/* 0x95C */ int field_0x95c;
|
||||
/* 0x960 */ int mEventTimer;
|
||||
/* 0x964 */ int mBtpTimer;
|
||||
/* 0x968 */ int mTurnAmount;
|
||||
/* 0x96C */ int mTurnMode;
|
||||
/* 0x970 */ f32 mTurnStepNum;
|
||||
/* 0x974 */ f32 mExpressionMorfOverride;
|
||||
/* 0x978 */ f32 mExpressionMorf;
|
||||
/* 0x97C */ f32 mMotionMorfOverride;
|
||||
/* 0x980 */ f32 mGroundH;
|
||||
/* 0x984 */ f32 field_0x984[3];
|
||||
/* 0x990 */ s16 field_0x990;
|
||||
/* 0x992 */ s16 field_0x992;
|
||||
/* 0x994 */ s16 mTurnStartAngle;
|
||||
/* 0x996 */ s16 mTurnTargetAngle;
|
||||
/* 0x998 */ u16 field_0x998;
|
||||
/* 0x99C */ u32 mAnmFlags;
|
||||
/* 0x9A0 */ u32 mShadowKey;
|
||||
/* 0x9A4 */ u32 field_0x9a4;
|
||||
/* 0x9A8 */ u32 mHitodamaParticleKey[2];
|
||||
/* 0x9B0 */ u32 mPolySound;
|
||||
/* 0x9B4 */ int mFlowNodeNo;
|
||||
/* 0x9B8 */ cXyz field_0x9b8;
|
||||
/* 0x9C4 */ cXyz field_0x9c4;
|
||||
/* 0x9D0 */ s16 field_0x9d0;
|
||||
/* 0x9D2 */ s16 field_0x9d2;
|
||||
/* 0x9D4 */ s16 mEventIdx;
|
||||
/* 0x9D6 */ s16 mExpressionPhase;
|
||||
/* 0x9D8 */ s16 mExpressionPrevPhase;
|
||||
/* 0x9DA */ s16 mMotionPhase;
|
||||
/* 0x9DC */ s16 mMotionPrevPhase;
|
||||
/* 0x9DE */ s16 mExpression;
|
||||
/* 0x9E0 */ s16 mMotion;
|
||||
/* 0x9E2 */ u16 mMotionLoops;
|
||||
/* 0x9E4 */ u16 mExpressionLoops;
|
||||
/* 0x9E6 */ u16 mOrderEvtNo;
|
||||
/* 0x9E8 */ s8 mReverb;
|
||||
/* 0x9E9 */ bool mOrderSpeakEvt;
|
||||
/* 0x9EA */ bool field_0x9ea;
|
||||
/* 0x9EB */ bool field_0x9eb;
|
||||
/* 0x9EC */ bool field_0x9ec;
|
||||
/* 0x9ED */ bool mOrderNewEvt;
|
||||
/* 0x9EE */ bool field_0x9ee;
|
||||
/* 0x9EF */ u8 field_0x9ef;
|
||||
/* 0x9F0 */ u8 field_0x9f0;
|
||||
/* 0x9F1 */ u8 field_0x9f1;
|
||||
/* 0x9F2 */ bool mHide;
|
||||
/* 0x9f3 */ u8 field_0x9f3;
|
||||
/* 0x9F4 */ bool mTwilight;
|
||||
/* 0x9F5 */ u8 field_0x9f5;
|
||||
/* 0x9F6 */ u8 field_0x9f6;
|
||||
/* 0x9F8 */ dMsgFlow_c mFlow;
|
||||
/* 0xA44 */ cBgS_GndChk mGndChk;
|
||||
/* 0xA80 */ dBgS_GndChk field_0xa80;
|
||||
/* 0xAD4 */ dBgS_LinChk field_0xad4;
|
||||
|
||||
public:
|
||||
struct daNpcF_anmPlayData {
|
||||
u16 idx;
|
||||
f32 morf;
|
||||
s32 numLoops;
|
||||
};
|
||||
|
||||
enum AnmFlags {
|
||||
ANM_PAUSE_MORF = 0x0001,
|
||||
ANM_PAUSE_BTK = 0x0002,
|
||||
ANM_PAUSE_BRK = 0x0004,
|
||||
ANM_PLAY_MORF = 0x0008,
|
||||
ANM_PLAY_BTK = 0x0010,
|
||||
ANM_PLAY_BRK = 0x0020,
|
||||
ANM_PAUSE_BCK = 0x0040,
|
||||
ANM_PAUSE_BTP = 0x0080,
|
||||
ANM_PLAY_BCK = 0x0100,
|
||||
ANM_PLAY_BTP = 0x0200,
|
||||
ANM_FLAG_400 = 0x0400,
|
||||
ANM_FLAG_800 = 0x0800,
|
||||
ANM_PAUSE_EXPRESSION = 0x1000,
|
||||
ANM_PAUSE_BPK = 0x2000,
|
||||
ANM_PLAY_BPK = 0x4000,
|
||||
ANM_MOTION_FLAGS = ANM_PAUSE_MORF | ANM_PAUSE_BTK | ANM_PAUSE_BRK | ANM_PLAY_MORF |
|
||||
ANM_PLAY_BTK | ANM_PLAY_BRK,
|
||||
ANM_EXPRESSION_FLAGS = ANM_PAUSE_BCK | ANM_PAUSE_BTP | ANM_PLAY_BCK | ANM_PLAY_BTP |
|
||||
ANM_FLAG_400 | ANM_FLAG_800 | ANM_PAUSE_EXPRESSION,
|
||||
ANM_PAUSE_ALL = ANM_PAUSE_MORF | ANM_PAUSE_BTK | ANM_PAUSE_BRK | ANM_PAUSE_BCK |
|
||||
ANM_PAUSE_BTP | ANM_PAUSE_EXPRESSION,
|
||||
};
|
||||
|
||||
enum LookMode {
|
||||
/* 0 */ LOOK_NONE,
|
||||
/* 1 */ LOOK_RESET,
|
||||
/* 2 */ LOOK_PLAYER,
|
||||
/* 3 */ LOOK_PLAYER_TALK,
|
||||
/* 4 */ LOOK_ACTOR,
|
||||
/* 5 */ LOOK_ATTN,
|
||||
};
|
||||
|
||||
/* 80152014 */ BOOL execute();
|
||||
/* 801522AC */ BOOL draw(BOOL, BOOL, f32, _GXColorS10*, BOOL);
|
||||
/* 80152614 */ static void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*,
|
||||
dCcD_GObjInf*);
|
||||
/* 80152654 */ static void* srchAttnActor1(void*, void*);
|
||||
/* 801526E8 */ static void* srchActor(void*, void*);
|
||||
|
||||
/* 801528C8 */ void initialize();
|
||||
/* 80152B2C */ J3DAnmTransformKey* getTrnsfrmKeyAnmP(char*, int);
|
||||
/* 80152B68 */ J3DAnmTexPattern* getTexPtrnAnmP(char*, int);
|
||||
/* 80152BA4 */ J3DAnmTextureSRTKey* getTexSRTKeyAnmP(char*, int);
|
||||
/* 80152BE0 */ J3DAnmTevRegKey* getTevRegKeyAnmP(char*, int);
|
||||
/* 80152C1C */ BOOL setMcaMorfAnm(J3DAnmTransformKey* i_anm, f32 i_rate, f32 i_morf, int i_attr,
|
||||
int i_start, int i_end);
|
||||
/* 80152C80 */ BOOL setBckAnm(J3DAnmTransform* i_bck, f32 i_rate, int i_attr, int i_start,
|
||||
int i_end, bool i_modify);
|
||||
/* 80152CC4 */ BOOL setBtpAnm(J3DAnmTexPattern* i_btp, J3DModelData* i_modelData, f32 i_rate,
|
||||
int i_attr);
|
||||
/* 80152D04 */ BOOL setBtkAnm(J3DAnmTextureSRTKey* i_btk, J3DModelData* i_modelData, f32 i_rate,
|
||||
int i_attr);
|
||||
/* 80152D44 */ BOOL setBrkAnm(J3DAnmTevRegKey* i_brk, J3DModelData* i_modelData, f32 i_rate,
|
||||
int i_attr);
|
||||
/* 80152D84 */ void setEnvTevColor();
|
||||
/* 80152DE0 */ void setRoomNo();
|
||||
/* 80152E24 */ BOOL chkEndAnm(f32);
|
||||
/* 80152EC4 */ BOOL chkEndAnm(J3DFrameCtrl*, f32);
|
||||
/* 80152F40 */ BOOL playAllAnm();
|
||||
/* 80153150 */ void playExpressionAnm(daNpcF_c::daNpcF_anmPlayData***);
|
||||
/* 80153264 */ void playMotionAnm(daNpcF_c::daNpcF_anmPlayData***);
|
||||
/* 8015337C */ void setLookatMtx(int, int*, f32);
|
||||
/* 80153578 */ void hitChk2(dCcD_Cyl*, int, int);
|
||||
/* 80153658 */ void setDamage(int, int, int);
|
||||
/* 80153718 */ int ctrlMsgAnm(int&, int&, fopAc_ac_c*, BOOL);
|
||||
/* 8015387C */ void orderEvent(int, char*, u16, u16, u8, u16);
|
||||
/* 80153954 */ void changeEvent(char*, char*, u16, u16);
|
||||
/* 801539F0 */ BOOL chkActorInSight(fopAc_ac_c*, f32);
|
||||
/* 80153A78 */ BOOL chkActorInArea(fopAc_ac_c*, cXyz, cXyz, s16);
|
||||
/* 80153BDC */ BOOL chkActorInAttnArea(fopAc_ac_c*, fopAc_ac_c*, int);
|
||||
/* 80153D1C */ BOOL initTalk(int, fopAc_ac_c**);
|
||||
/* 80153D84 */ BOOL talkProc(int*, BOOL, fopAc_ac_c**);
|
||||
/* 80153EF4 */ BOOL turn(s16, f32, int);
|
||||
/* 801540A4 */ BOOL step(s16, int, int, int);
|
||||
/* 80154250 */ void setAngle(s16);
|
||||
/* 80154278 */ u8 getDistTableIdx(int, int);
|
||||
/* 801542A0 */ fopAc_ac_c* getEvtAreaTagP(int, int);
|
||||
/* 8015436C */ fopAc_ac_c* getAttnActorP(BOOL, fpcLyIt_JudgeFunc, f32, f32, f32, f32, s16,
|
||||
int, BOOL);
|
||||
/* 80154730 */ BOOL chkActorInSight2(fopAc_ac_c*, f32, s16);
|
||||
/* 80154834 */ BOOL chkPointInArea(cXyz, cXyz, f32, f32, f32, s16);
|
||||
/* 801548F4 */ BOOL chkPointInArea(cXyz, cXyz, cXyz, s16);
|
||||
/* 8015496C */ cXyz getAttentionPos(fopAc_ac_c*);
|
||||
/* 801549E0 */ BOOL chkFindPlayer2(BOOL, s16);
|
||||
/* 80154BD8 */ void setHitodamaPrtcl();
|
||||
|
||||
/* 80155BF4 */ virtual ~daNpcF_c();
|
||||
/* 80155BC8 */ virtual void setParam();
|
||||
/* 80155BC0 */ virtual BOOL main();
|
||||
/* 80155BD8 */ virtual BOOL ctrlBtk();
|
||||
/* 80155BBC */ virtual void adjustShapeAngle();
|
||||
/* 8015276C */ virtual void setMtx();
|
||||
/* 801527FC */ virtual void setMtx2();
|
||||
/* 80155BB8 */ virtual void setAttnPos();
|
||||
/* 80155BB4 */ virtual void setCollisions();
|
||||
/* 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 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();
|
||||
|
||||
BOOL chkActorInSpeakArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) {
|
||||
return chkActorInAttnArea(i_actorCheck, i_actorArea, attention_info.field_0x0[3]);
|
||||
}
|
||||
BOOL chkPlayerInSpeakArea(fopAc_ac_c* i_actor) {
|
||||
return chkActorInSpeakArea(daPy_getPlayerActorClass(), i_actor);
|
||||
}
|
||||
BOOL chkActorInTalkArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) {
|
||||
return chkActorInAttnArea(i_actorCheck, i_actorArea, attention_info.field_0x0[1]);
|
||||
}
|
||||
BOOL chkPlayerInTalkArea(fopAc_ac_c* i_actor) {
|
||||
return chkActorInTalkArea(daPy_getPlayerActorClass(), i_actor);
|
||||
}
|
||||
BOOL checkHide() { return mHide || (mTwilight && !dComIfGs_wolfeye_effect_check()); }
|
||||
void setIntDemander(fopAc_ac_c* i_actor) { field_0x824.entry(i_actor); }
|
||||
void setIntFlowNodeNo(int i_flowNodeNo) { mFlowNodeNo = i_flowNodeNo; }
|
||||
void onInterrupt(u8 param_0) { field_0x9ef = param_0; }
|
||||
|
||||
static u8 const mCcDObjInfo[48];
|
||||
static dCcD_SrcCyl mCcDCyl;
|
||||
static dCcD_SrcSph mCcDSph;
|
||||
static fopAc_ac_c* mFindActorPList[100];
|
||||
static s32 mFindCount;
|
||||
static s16 mSrchActorName;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpcF_c) == 0xB48);
|
||||
|
||||
BOOL daNpcF_chkEvtBit(u32 i_idx);
|
||||
void daNpcF_onEvtBit(u32 i_idx);
|
||||
BOOL daNpcF_chkTmpBit(u32 i_idx);
|
||||
void daNpcF_offTmpBit(u32 i_idx);
|
||||
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);
|
||||
BOOL daNpcF_pntVsLineSegmentLengthSquare2D(f32 i_pntX, f32 i_pntZ, f32 i_startX, f32 i_startZ,
|
||||
f32 i_endX, f32 i_endZ, f32* o_projX, f32* o_projZ,
|
||||
f32* o_dist2);
|
||||
BOOL daNpcF_chkPassed(cXyz i_pos, dPnt* i_points, u16 i_idx, u16 i_num, BOOL i_isClosed,
|
||||
BOOL i_isReversed);
|
||||
|
||||
class daNpcF_MatAnm_c : public J3DMaterialAnm {
|
||||
private:
|
||||
/* 0x0F4 */ mutable f32 field_0xF4;
|
||||
@@ -854,7 +872,7 @@ class daNpcF_SPCurve_c {
|
||||
private:
|
||||
/* 0x00 */ u16 mNurbs;
|
||||
/* 0x02 */ u16 field_0x02;
|
||||
/* 0x04 */ u8 field_0x04;
|
||||
/* 0x04 */ bool mIsReversed;
|
||||
/* 0x05 */ bool mIsClosed;
|
||||
/* 0x08 */ dStage_dPnt_c mPoints[96];
|
||||
|
||||
@@ -869,13 +887,13 @@ public:
|
||||
}; // Size: 0x60C
|
||||
|
||||
class daNpcF_Path_c {
|
||||
private:
|
||||
protected:
|
||||
/* 0x00 */ u16 mIdx;
|
||||
/* 0x02 */ u8 field_0x02;
|
||||
/* 0x03 */ u8 mIsClosed;
|
||||
/* 0x02 */ u8 mIsReversed;
|
||||
/* 0x03 */ bool mIsClosed;
|
||||
/* 0x04 */ dPath* mpRoomPath;
|
||||
/* 0x08 */ f32 field_0x08;
|
||||
/* 0x0C */ f32 field_0x0C;
|
||||
/* 0x08 */ f32 mRange;
|
||||
/* 0x0C */ f32 mPosDst;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ cXyz mPosition;
|
||||
/* 0x20 */ daNpcF_SPCurve_c mSPCurve;
|
||||
@@ -883,15 +901,15 @@ private:
|
||||
public:
|
||||
/* 80150900 */ void initialize();
|
||||
/* 8015095C */ int setPathInfo(u8, s8, u8);
|
||||
/* 80150A24 */ int chkPassed(cXyz);
|
||||
/* 80150A7C */ void chkPassedDst(cXyz);
|
||||
/* 80150A24 */ BOOL chkPassed(cXyz);
|
||||
/* 80150A7C */ BOOL chkPassedDst(cXyz);
|
||||
/* 80150BBC */ void reverse();
|
||||
/* 80150BE0 */ int setNextIdx();
|
||||
/* 80150BE0 */ BOOL setNextIdx();
|
||||
/* 80150C18 */ int getNextIdx();
|
||||
/* 80150C60 */ u16 getBeforeIdx();
|
||||
/* 80150CA8 */ int getBeforePos(cXyz&);
|
||||
/* 80150D44 */ int getNextPos(cXyz&);
|
||||
/* 80150DE0 */ int getDstPos(cXyz, cXyz&);
|
||||
/* 80150C60 */ int getBeforeIdx();
|
||||
/* 80150CA8 */ BOOL getBeforePos(cXyz&);
|
||||
/* 80150D44 */ BOOL getNextPos(cXyz&);
|
||||
/* 80150DE0 */ BOOL getDstPos(cXyz, cXyz&);
|
||||
/* 80150EB4 */ void setNextIdxDst(cXyz);
|
||||
|
||||
daNpcF_Path_c() {
|
||||
@@ -901,30 +919,36 @@ public:
|
||||
virtual ~daNpcF_Path_c() {}
|
||||
|
||||
int getIdx() { return mIdx; };
|
||||
void setIdx(int i_idx) { mIdx = i_idx; }
|
||||
u8 getArg0(int i_idx) { return mpRoomPath->m_points[i_idx].mArg0; }
|
||||
Vec getPntPos(int i_idx) { return mpRoomPath->m_points[i_idx].m_position; }
|
||||
int chkClose() { return dPath_ChkClose(mpRoomPath); }
|
||||
BOOL chkClose() { return dPath_ChkClose(mpRoomPath); }
|
||||
BOOL chkReverse() { return mIsReversed == true; }
|
||||
void onReverse() { mIsReversed = true; }
|
||||
dPath* getPathInfo() { return mpRoomPath; }
|
||||
void setRange(f32 i_range) { mRange = i_range; }
|
||||
}; // Size: 0x630
|
||||
|
||||
class daNpcF_Lookat_c {
|
||||
private:
|
||||
/* 0x00 */ cXyz field_0x00[4];
|
||||
/* 0x00 */ cXyz mJointPos[4];
|
||||
/* 0x30 */ cXyz* mAttnPos;
|
||||
/* 0x34 */ csXyz field_0x34[4];
|
||||
/* 0x4C */ csXyz field_0x4c[4];
|
||||
/* 0x64 */ csXyz field_0x64[4];
|
||||
/* 0x34 */ csXyz mAngularMoveDis[4];
|
||||
/* 0x4C */ csXyz mMinAngle[4];
|
||||
/* 0x64 */ csXyz mMaxAngle[4];
|
||||
/* 0x7C */ csXyz mRotAngle[4];
|
||||
/* 0x94 */ u8 field_0x94[4];
|
||||
/* 0x94 */ bool field_0x94[4];
|
||||
/* 0x98 vtable */
|
||||
|
||||
public:
|
||||
/* 80151038 */ void initialize();
|
||||
/* 801510B8 */ void setParam(f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, s16,
|
||||
cXyz*);
|
||||
/* 80151350 */ void calc(fopAc_ac_c*, f32 (*)[4], csXyz**, int, int, int);
|
||||
/* 80151350 */ void calc(fopAc_ac_c*, Mtx, csXyz**, BOOL, int, BOOL);
|
||||
/* 801515D4 */ void adjustMoveDisAngle(s16&, s16, s16, s16);
|
||||
/* 80151648 */ void initCalc(fopAc_ac_c*, f32 (*)[4], cXyz*, csXyz*, f32*, cXyz&, int);
|
||||
/* 80151648 */ void initCalc(fopAc_ac_c*, Mtx, cXyz*, csXyz*, f32*, cXyz&, BOOL);
|
||||
/* 80151A54 */ void update(cXyz*, csXyz*, f32*);
|
||||
/* 80151B68 */ void calcMoveDisAngle(int, cXyz*, csXyz*, cXyz, int, int);
|
||||
/* 80151B68 */ void calcMoveDisAngle(int, cXyz*, csXyz*, cXyz, int, BOOL);
|
||||
/* 80151F54 */ void setRotAngle();
|
||||
/* 80151FE0 */ void clrRotAngle();
|
||||
daNpcF_Lookat_c() { initialize(); }
|
||||
|
||||
@@ -753,6 +753,14 @@ public:
|
||||
void onFogFade() { onNoResetFlg2(FLG2_UNK_4000); }
|
||||
BOOL checkStickArrowReset() const { return checkResetFlg0(RFLG0_UNK_1); }
|
||||
|
||||
void setCanoeSlider() { mSpecialMode = 0x2D; }
|
||||
|
||||
void offCanoeSlider() {
|
||||
if (checkCanoeSlider()) {
|
||||
mSpecialMode = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void offCargoCarry() {
|
||||
if (checkCargoCarry()) {
|
||||
mSpecialMode = 0;
|
||||
|
||||
@@ -3676,6 +3676,10 @@ inline int dComIfGd_setSimpleShadow(cXyz* pos, f32 param_1, f32 param_2, cXyz* p
|
||||
param_5, tex);
|
||||
}
|
||||
|
||||
inline bool dComIfGd_addRealShadow(u32 key, J3DModel* model) {
|
||||
return g_dComIfG_gameInfo.drawlist.addRealShadow(key, model);
|
||||
}
|
||||
|
||||
inline void dComIfGd_drawListItem3d() {
|
||||
g_dComIfG_gameInfo.drawlist.drawOpaListItem3d();
|
||||
g_dComIfG_gameInfo.drawlist.drawXluListItem3d();
|
||||
|
||||
@@ -141,13 +141,13 @@ public:
|
||||
};
|
||||
|
||||
struct dist_entry {
|
||||
f32 field_0x0;
|
||||
f32 field_0x4;
|
||||
f32 field_0x8;
|
||||
f32 field_0xc;
|
||||
f32 field_0x10;
|
||||
f32 field_0x14;
|
||||
u32 field_0x18;
|
||||
/* 0x00 */ f32 mRadius1;
|
||||
/* 0x04 */ f32 mRadius2;
|
||||
/* 0x08 */ f32 mDistanceAdjust;
|
||||
/* 0x0C */ f32 mUpperY;
|
||||
/* 0x10 */ f32 mLowerY;
|
||||
/* 0x14 */ f32 mWeight;
|
||||
/* 0x18 */ u32 mAngleSelect;
|
||||
}; // Size: 0x1C
|
||||
|
||||
struct type_tbl_entry {
|
||||
|
||||
@@ -369,6 +369,10 @@ public:
|
||||
param_6);
|
||||
}
|
||||
|
||||
bool addRealShadow(u32 key, J3DModel* model) {
|
||||
return mShadowControl.addReal(key, model);
|
||||
}
|
||||
|
||||
void newPeekZdata(s16 param_0, s16 param_1, u32* param_2) {
|
||||
mPeekZ.newData(param_0, param_1, param_2);
|
||||
}
|
||||
|
||||
+2
-2
@@ -11,12 +11,12 @@ struct dPath {
|
||||
/* 0x0 */ u16 m_num;
|
||||
/* 0x2 */ u16 m_nextID;
|
||||
/* 0x4 */ u8 field_0x4;
|
||||
/* 0x5 */ u8 m_closed;
|
||||
/* 0x5 */ bool m_closed;
|
||||
/* 0x6 */ u8 field_0x6;
|
||||
/* 0x8 */ dStage_dPnt_c* m_points;
|
||||
};
|
||||
|
||||
inline int dPath_ChkClose(dPath* i_path) { return (i_path->m_closed & 1); }
|
||||
inline BOOL dPath_ChkClose(dPath* i_path) { return i_path->m_closed & 1; }
|
||||
|
||||
dPath* dPath_GetRoomPath(int path_index, int room_no);
|
||||
dPath* dPath_GetNextRoomPath(dPath const* i_path, int room_no);
|
||||
|
||||
+1
-1
@@ -290,7 +290,7 @@ struct dStage_dPnt_c {
|
||||
/* 0x0 */ u8 field_0x0;
|
||||
/* 0x1 */ u8 field_0x1;
|
||||
/* 0x2 */ u8 field_0x2;
|
||||
/* 0x3 */ u8 field_0x3;
|
||||
/* 0x3 */ u8 mArg0;
|
||||
/* 0x4 */ Vec m_position;
|
||||
}; // Size: 0x10
|
||||
|
||||
|
||||
@@ -154,8 +154,8 @@ public:
|
||||
void setMsgTimeMs(u32 msgTime) { mMsgTimeMs = msgTime; }
|
||||
void setTimeMs(s32 i_time) { mTimeMs = i_time; }
|
||||
u32 getTimeMs() { return mTimeMs; }
|
||||
u8 getNowCount() { return mNowCount; }
|
||||
u8 getMaxCount() { return mMaxCount; }
|
||||
int getNowCount() { return mNowCount; }
|
||||
int getMaxCount() { return mMaxCount; }
|
||||
void setScopeZoomPointer(u8 param_0) { mScopeZoomPointer = param_0; }
|
||||
u8 getItemExplainWindowStatus() { return mItemExplainWindowStatus; }
|
||||
void setItemExplainWindowStatus(u8 i_value) { mItemExplainWindowStatus = i_value; }
|
||||
@@ -611,11 +611,11 @@ inline void dMeter2Info_setTimeMs(s32 i_time) {
|
||||
g_meter2_info.setTimeMs(i_time);
|
||||
}
|
||||
|
||||
inline u8 dMeter2Info_getNowCount() {
|
||||
inline int dMeter2Info_getNowCount() {
|
||||
return g_meter2_info.getNowCount();
|
||||
}
|
||||
|
||||
inline u8 dMeter2Info_getMaxCount() {
|
||||
inline int dMeter2Info_getMaxCount() {
|
||||
return g_meter2_info.getMaxCount();
|
||||
}
|
||||
|
||||
|
||||
@@ -128,6 +128,7 @@ public:
|
||||
}
|
||||
|
||||
int remove(J3DModelData* i_modelData) { return i_modelData->removeMatColorAnimator(mpAnm); }
|
||||
J3DAnmColor* getBpkAnm() { return mpAnm; }
|
||||
|
||||
private:
|
||||
/* 0x14 */ J3DAnmColor* mpAnm;
|
||||
|
||||
@@ -30,6 +30,13 @@ public:
|
||||
void incShapeOffsetY(f32 offset) { mShapeOffsetY += offset; }
|
||||
void incShapeAngleZ(s16 incZ) { shape_angle.z += incZ; }
|
||||
void onRodID(unsigned int i_rodID) { mRodID = i_rodID; }
|
||||
void setWaterFallDownSe() { field_0x141c.startSound(Z2SE_AL_CANOE_FALL_DW, 0, -1); }
|
||||
|
||||
void setPosAndAngle(cXyz const* i_pos, s16 i_angle) {
|
||||
field_0x14d0 = *i_pos;
|
||||
field_0x144a = i_angle;
|
||||
field_0x1446 = 1;
|
||||
}
|
||||
|
||||
/* 0x0568 */ request_of_phase_process_class mPhaseReq;
|
||||
/* 0x0570 */ J3DModel* mpModel;
|
||||
@@ -48,9 +55,9 @@ public:
|
||||
/* 0x1443 */ u8 mJumpRideFlg;
|
||||
/* 0x1444 */ u8 field_0x1444;
|
||||
/* 0x1445 */ u8 mReverb;
|
||||
/* 0x1446 */ u8 field_0x1446[0x1448 - 0x1446];
|
||||
/* 0x1446 */ u8 field_0x1446;
|
||||
/* 0x1448 */ s16 field_0x1448;
|
||||
/* 0x144A */ u8 field_0x144a[0x144C - 0x144A];
|
||||
/* 0x144A */ s16 field_0x144a;
|
||||
/* 0x144C */ s16 mAimAngle;
|
||||
/* 0x144E */ s16 field_0x144e;
|
||||
/* 0x1450 */ s16 field_0x1450;
|
||||
|
||||
@@ -12,7 +12,7 @@ struct daFmtMng_Path_c {
|
||||
/* 8083665C */ bool checkPoint(cXyz, f32);
|
||||
|
||||
bool isPathClose() { return dPath_ChkClose(mPath); }
|
||||
s8 getArg0() { return mPath->m_points[field_0x4].field_0x3; }
|
||||
s8 getArg0() { return mPath->m_points[field_0x4].mArg0; }
|
||||
s8 getArg1() { return mPath->m_points[field_0x4].field_0x0; }
|
||||
|
||||
void chgDir() {
|
||||
|
||||
@@ -3,19 +3,68 @@
|
||||
|
||||
#include "d/a/d_a_npc.h"
|
||||
|
||||
class daNpcAsh_c;
|
||||
|
||||
typedef bool (daNpcAsh_c::*daNpcAsh_actionFn)(void*);
|
||||
typedef BOOL (daNpcAsh_c::*daNpcAsh_eventFn)(int);
|
||||
|
||||
/**
|
||||
* @ingroup actors-npcs
|
||||
* @brief Ashei
|
||||
*
|
||||
*/
|
||||
class daNpcAsh_c : public daNpcF_c {
|
||||
public:
|
||||
typedef bool (daNpcAsh_c::*ActionFn)(void*);
|
||||
typedef BOOL (daNpcAsh_c::*EventFn)(int);
|
||||
|
||||
enum Type {
|
||||
/* 0 */ TYPE_BAR,
|
||||
/* 1 */ TYPE_CASTLE,
|
||||
};
|
||||
|
||||
enum Animation {
|
||||
/* 0x00 */ ANM_NONE,
|
||||
/* 0x01 */ ANM_F_TALK_A,
|
||||
/* 0x02 */ ANM_F_TALK_B,
|
||||
/* 0x03 */ ANM_F_SILENT,
|
||||
/* 0x04 */ ANM_F_COOL,
|
||||
/* 0x05 */ ANM_F_ASK,
|
||||
/* 0x06 */ ANM_F_EXPLAIN_A,
|
||||
/* 0x07 */ ANM_F_EXPLAIN_B,
|
||||
/* 0x08 */ ANM_WAIT_A,
|
||||
/* 0x09 */ ANM_WAIT_B,
|
||||
/* 0x0A */ ANM_WAIT_C,
|
||||
/* 0x0B */ ANM_STEP,
|
||||
/* 0x0C */ ANM_COOL,
|
||||
/* 0x0D */ ANM_ASK,
|
||||
/* 0x0E */ ANM_EXPLAIN_A,
|
||||
/* 0x0F */ ANM_EXPLAIN_B,
|
||||
/* 0x10 */ ANM_BOWWAIT,
|
||||
/* 0x11 */ ANM_BOWRUN,
|
||||
};
|
||||
|
||||
enum Expression {
|
||||
/* 0x0 */ EXPR_TALK_A,
|
||||
/* 0x1 */ EXPR_TALK_B,
|
||||
/* 0x2 */ EXPR_SILENT,
|
||||
/* 0x3 */ EXPR_COOL,
|
||||
/* 0x4 */ EXPR_ASK,
|
||||
/* 0x5 */ EXPR_EXPLAIN_A,
|
||||
/* 0x6 */ EXPR_EXPLAIN_B,
|
||||
/* 0x7 */ EXPR_NONE,
|
||||
};
|
||||
|
||||
enum Motion {
|
||||
/* 0x0 */ MOT_WAIT_A,
|
||||
/* 0x1 */ MOT_WAIT_B,
|
||||
/* 0x2 */ MOT_WAIT_C,
|
||||
/* 0x3 */ MOT_COOL,
|
||||
/* 0x4 */ MOT_ASK,
|
||||
/* 0x5 */ MOT_EXPLAIN_A,
|
||||
/* 0x6 */ MOT_EXPLAIN_B,
|
||||
/* 0x7 */ MOT_BOWWAIT,
|
||||
/* 0x8 */ MOT_BOWRUN,
|
||||
/* 0x9 */ MOT_STEP,
|
||||
};
|
||||
|
||||
private:
|
||||
/* 0xB48 */ Z2Creature mZ2;
|
||||
/* 0xB48 */ Z2Creature mCreatureSound;
|
||||
/* 0xBD8 */ J3DModel* mModelBow;
|
||||
/* 0xBDC */ J3DModel* mModelQuiver;
|
||||
/* 0xBE0 */ daNpcF_MatAnm_c* mpMatAnm;
|
||||
@@ -24,17 +73,17 @@ private:
|
||||
/* 0xCB0 */ fopAc_ac_c* mTalkPartner;
|
||||
/* 0xCB4 */ u32 field_0xcb4; // unused
|
||||
/* 0xCB8 */ dCcD_Cyl mCcCyl[2];
|
||||
/* 0xF30 */ daNpcAsh_actionFn mpActionFn;
|
||||
/* 0xF30 */ ActionFn mpActionFn;
|
||||
/* 0xF3C */ request_of_phase_process_class mPhase[2];
|
||||
/* 0xF4C */ u32 mItemPartnerId;
|
||||
/* 0xF50 */ u32 field_0xf50; // unused
|
||||
/* 0xF54 */ u32 field_0xf54;
|
||||
/* 0xF58 */ s16 mMessageNo;
|
||||
/* 0xF58 */ s16 mFlowID;
|
||||
/* 0xF5A */ s16 mLookMode;
|
||||
/* 0xF5C */ u16 field_0xf5c;
|
||||
/* 0xF5C */ u16 mMode;
|
||||
/* 0xF5E */ u8 mMapToolId;
|
||||
/* 0xF5F */ u8 field_0xf5f;
|
||||
/* 0xF60 */ u8 field_0xf60;
|
||||
/* 0xF60 */ u8 mType;
|
||||
|
||||
public:
|
||||
/* 809582EC */ daNpcAsh_c();
|
||||
@@ -51,8 +100,13 @@ public:
|
||||
/* 809596E0 */ bool setExpressionBtp(int);
|
||||
/* 809597C0 */ void setMotionAnm(int i_idx, f32 i_morf);
|
||||
/* 80959910 */ void reset();
|
||||
/* 80959B28 */ /* inline */ bool setAction(daNpcAsh_actionFn);
|
||||
/* 80959BD0 */ /* inline */ bool isSneaking();
|
||||
#ifdef NONMATCHING
|
||||
/* 80959B28 */ inline bool setAction(ActionFn);
|
||||
/* 80959BD0 */ inline bool isSneaking();
|
||||
#else
|
||||
/* 80959B28 */ bool setAction(ActionFn);
|
||||
/* 80959BD0 */ bool isSneaking();
|
||||
#endif
|
||||
/* 80959C40 */ bool wait_type0(void*);
|
||||
/* 8095A67C */ void setMotion(int, f32, int);
|
||||
/* 8095A6C0 */ void setExpression(int, f32);
|
||||
@@ -60,13 +114,17 @@ public:
|
||||
/* 8095A8EC */ bool talk(void*);
|
||||
/* 8095AD28 */ bool demo(void*);
|
||||
/* 8095B164 */ bool leave(void*);
|
||||
/* 8095B48C */ BOOL EvCut_Introduction(int cutIndex);
|
||||
/* 8095B58C */ BOOL EvCut_Meeting(int cutIndex);
|
||||
/* 8095B83C */ BOOL EvCut_WiretapSponsor(int cutIndex);
|
||||
/* 8095BA80 */ BOOL EvCut_WiretapEntrant(int cutIndex);
|
||||
/* 8095B48C */ BOOL EvCut_Introduction(int i_cutIndex);
|
||||
/* 8095B58C */ BOOL EvCut_Meeting(int i_cutIndex);
|
||||
/* 8095B83C */ BOOL EvCut_WiretapSponsor(int i_cutIndex);
|
||||
/* 8095BA80 */ BOOL EvCut_WiretapEntrant(int i_cutIndex);
|
||||
/* 8095BCF0 */ void setParam();
|
||||
/* 8095BF6C */ BOOL main();
|
||||
/* 8095C200 */ /* inline */ void playMotion();
|
||||
#ifdef NONMATCHING
|
||||
/* 8095C200 */ inline void playMotion();
|
||||
#else
|
||||
/* 8095C200 */ void playMotion();
|
||||
#endif
|
||||
/* 8095C520 */ BOOL ctrlBtk();
|
||||
/* 8095C5C4 */ void setAttnPos();
|
||||
/* 8095C9BC */ void lookat();
|
||||
@@ -81,11 +139,11 @@ public:
|
||||
inline bool step(s16, bool);
|
||||
inline void playExpression();
|
||||
|
||||
#ifdef NONMATCHING
|
||||
static daNpcAsh_eventFn mEvtSeqList[6];
|
||||
#else
|
||||
#ifdef NONMATCHING
|
||||
static EventFn mEvtSeqList[6];
|
||||
#else
|
||||
static u8 mEvtSeqList[72];
|
||||
#endif
|
||||
#endif
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpcAsh_c) == 0xF64);
|
||||
@@ -95,31 +153,38 @@ public:
|
||||
/* 8095D5D4 */ virtual ~daNpcAsh_Param_c();
|
||||
|
||||
struct param {
|
||||
/* 0x00 */ f32 m00;
|
||||
/* 0x00 */ f32 mAttnOffsetY;
|
||||
/* 0x04 */ f32 mGravity;
|
||||
/* 0x08 */ f32 m08;
|
||||
/* 0x0C */ f32 mShadow;
|
||||
/* 0x10 */ f32 mCcSttsWeight;
|
||||
/* 0x14 */ f32 m14;
|
||||
/* 0x18 */ f32 m18;
|
||||
/* 0x1C */ f32 m1C;
|
||||
/* 0x20 */ f32 m20;
|
||||
/* 0x24 */ f32 m24;
|
||||
/* 0x28 */ f32 m28;
|
||||
/* 0x2C */ f32 m2C;
|
||||
/* 0x30 */ f32 m30;
|
||||
/* 0x34 */ f32 m34;
|
||||
/* 0x38 */ f32 m38;
|
||||
/* 0x3C */ f32 m3C;
|
||||
/* 0x40 */ f32 mLookatScl;
|
||||
/* 0x44 */ f32 m44;
|
||||
/* 0x48 */ s16 m48;
|
||||
/* 0x4A */ s16 m4A;
|
||||
/* 0x4C */ s16 m4C;
|
||||
/* 0x4E */ s16 m4E;
|
||||
/* 0x50 */ f32 mSightAngle;
|
||||
/* 0x54 */ f32 m54[3];
|
||||
/* 0x60 */ u16 m60[6];
|
||||
/* 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 */ u16 field_0x60;
|
||||
/* 0x62 */ u16 field_0x62;
|
||||
/* 0x64 */ u16 mTestExpression;
|
||||
/* 0x66 */ u16 mTestMotion;
|
||||
/* 0x68 */ u16 mTestLookMode;
|
||||
/* 0x6A */ bool mTest;
|
||||
};
|
||||
|
||||
static param const m;
|
||||
|
||||
@@ -1,6 +1,91 @@
|
||||
#ifndef D_A_NPC_HOZ_H
|
||||
#define D_A_NPC_HOZ_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "d/a/d_a_npc.h"
|
||||
|
||||
class daNpc_Hoz_c : public daNpcT_c {
|
||||
public:
|
||||
enum Type {
|
||||
/* 0 */ TYPE_0,
|
||||
/* 1 */ TYPE_1,
|
||||
/* 2 */ TYPE_2,
|
||||
/* 3 */ TYPE_3,
|
||||
/* 4 */ TYPE_4,
|
||||
/* 5 */ TYPE_5,
|
||||
/* 6 */ TYPE_6,
|
||||
};
|
||||
|
||||
/* 80A0150C */ ~daNpc_Hoz_c();
|
||||
/* 80A01658 */ void create();
|
||||
/* 80A01904 */ void CreateHeap();
|
||||
/* 80A01D54 */ void Delete();
|
||||
/* 80A01D88 */ void Execute();
|
||||
/* 80A01DA8 */ void Draw();
|
||||
/* 80A01E44 */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80A01E64 */ void ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80A01F54 */ u8 getType();
|
||||
/* 80A01FC8 */ void getFlowNodeNo();
|
||||
/* 80A01FE4 */ bool isDelete();
|
||||
/* 80A01FEC */ void reset();
|
||||
/* 80A021DC */ void setParam();
|
||||
/* 80A0236C */ void setAfterTalkMotion();
|
||||
/* 80A02370 */ void srchActors();
|
||||
/* 80A02374 */ bool checkChangeEvt();
|
||||
/* 80A023EC */ bool evtTalk();
|
||||
/* 80A024D0 */ bool evtEndProc();
|
||||
/* 80A0260C */ bool evtCutProc();
|
||||
/* 80A026D4 */ int evtProc();
|
||||
/* 80A02918 */ void action();
|
||||
/* 80A029A0 */ void beforeMove();
|
||||
/* 80A02A18 */ void setAttnPos();
|
||||
/* 80A02C50 */ void setCollision();
|
||||
/* 80A02DD4 */ void evtOrder();
|
||||
/* 80A02F78 */ int drawDbgInfo();
|
||||
/* 80A02F80 */ void selectAction();
|
||||
/* 80A030A8 */ void chkAction(int (daNpc_Hoz_c::*)(void*));
|
||||
/* 80A030D4 */ void setAction(int (daNpc_Hoz_c::*)(void*));
|
||||
/* 80A0317C */ void wait(void*);
|
||||
/* 80A03304 */ void waitBattle(void*);
|
||||
/* 80A03578 */ void waitTwilightBattle(void*);
|
||||
/* 80A037E4 */ void waitBoat(void*);
|
||||
/* 80A03BDC */ void waitBoat2(void*);
|
||||
/* 80A03F8C */ void waitBoat1_5(void*);
|
||||
/* 80A04400 */ void waitTw(void*);
|
||||
/* 80A045FC */ void talk(void*);
|
||||
/* 80A0487C */ void ECut_boatRace(int);
|
||||
/* 80A04BE4 */ void ECut_beforeBattle(int);
|
||||
/* 80A04CDC */ void ECut_afterBattle(int);
|
||||
/* 80A04E24 */ void ECut_beforeBlast(int);
|
||||
/* 80A04F6C */ void ECut_afterBlast(int);
|
||||
/* 80A050B4 */ void ECut_yMushi(int);
|
||||
/* 80A051C8 */ void ECut_talkBreak(int);
|
||||
/* 80A064E4 */ daNpc_Hoz_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**);
|
||||
/* 80A065A4 */ bool getEyeballMaterialNo();
|
||||
/* 80A065AC */ s32 getHeadJointNo();
|
||||
/* 80A065B4 */ s32 getNeckJointNo();
|
||||
/* 80A065BC */ s32 getBackboneJointNo();
|
||||
/* 80A065C4 */ bool checkChangeJoint(int);
|
||||
/* 80A065D4 */ bool checkRemoveJoint(int);
|
||||
|
||||
bool getGameStartFlag() { return mGameStartFlag; }
|
||||
|
||||
static void* mCutNameList[8];
|
||||
static u8 mCutList[96];
|
||||
|
||||
/* 0xE40 */ u8 field_0xe40[0x14d];
|
||||
/* 0xF8D */ bool mGameStartFlag;
|
||||
/* 0xF8E */ u8 field_0xf8e[0x3a];
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpc_Hoz_c) == 0xFC8);
|
||||
|
||||
struct daNpc_Hoz_Param_c {
|
||||
/* 80A065E4 */ ~daNpc_Hoz_Param_c();
|
||||
|
||||
static u8 const m[144];
|
||||
};
|
||||
|
||||
#endif /* D_A_NPC_HOZ_H */
|
||||
|
||||
@@ -3,13 +3,78 @@
|
||||
|
||||
#include "d/a/d_a_npc.h"
|
||||
|
||||
// #define NONMATCHING
|
||||
|
||||
class daNpcThe_c : public daNpcF_c {
|
||||
public:
|
||||
typedef BOOL (daNpcThe_c::*ActionFn)(void*);
|
||||
typedef BOOL (daNpcThe_c::*EventFn)(int);
|
||||
|
||||
enum Type {
|
||||
/* 0 */ TYPE_BAR,
|
||||
/* 1 */ TYPE_1,
|
||||
/* 2 */ TYPE_KAKARIKO,
|
||||
};
|
||||
|
||||
enum Animation {
|
||||
/* 0x00 */ ANM_NONE,
|
||||
/* 0x01 */ ANM_F_TALK_A,
|
||||
/* 0x02 */ ANM_F_SMILE,
|
||||
/* 0x03 */ ANM_F_CHUCKLE,
|
||||
/* 0x04 */ ANM_F_TALK_B,
|
||||
/* 0x05 */ ANM_F_TALK_C,
|
||||
/* 0x06 */ ANM_F_LAUGH,
|
||||
/* 0x07 */ ANM_F_TALK_R,
|
||||
/* 0x08 */ ANM_FH_SMILE,
|
||||
/* 0x09 */ ANM_FH_CHUCKLE,
|
||||
/* 0x0A */ ANM_FH_TALK_B,
|
||||
/* 0x0B */ ANM_FH_TALK_C,
|
||||
/* 0x0C */ ANM_FH_LAUGH,
|
||||
/* 0x0D */ ANM_FH_TALK_R,
|
||||
/* 0x0E */ ANM_WAIT_A,
|
||||
/* 0x0F */ ANM_WAIT_LOOKING,
|
||||
/* 0x10 */ ANM_TO_WAIT_B,
|
||||
/* 0x11 */ ANM_WAIT_B,
|
||||
/* 0x12 */ ANM_WAIT_LOOKUP,
|
||||
/* 0x13 */ ANM_TALK_R,
|
||||
/* 0x14 */ ANM_TALKING_R,
|
||||
/* 0x15 */ ANM_LOOK_A,
|
||||
/* 0x16 */ ANM_LOOK,
|
||||
/* 0x17 */ ANM_KUNE_WAIT_A,
|
||||
/* 0x18 */ ANM_KUNE_TALK,
|
||||
/* 0x19 */ ANM_KUNE_WAIT_B,
|
||||
/* 0x1A */ ANM_KUNE_SHISHI,
|
||||
};
|
||||
|
||||
enum Expression {
|
||||
/* 0x0 */ EXPR_TALK_A,
|
||||
/* 0x1 */ EXPR_SMILE,
|
||||
/* 0x2 */ EXPR_CHUCKLE,
|
||||
/* 0x3 */ EXPR_TALK_B,
|
||||
/* 0x4 */ EXPR_TALK_C,
|
||||
/* 0x5 */ EXPR_LAUGH,
|
||||
/* 0x6 */ EXPR_TALK_R,
|
||||
/* 0x7 */ EXPR_H_TALK_R,
|
||||
/* 0x8 */ EXPR_H_SMILE,
|
||||
/* 0x9 */ EXPR_H_CHUCKLE,
|
||||
/* 0xA */ EXPR_H_TALK_B,
|
||||
/* 0xB */ EXPR_H_TALK_C,
|
||||
/* 0xC */ EXPR_H_LAUGH,
|
||||
/* 0xD */ EXPR_NONE,
|
||||
};
|
||||
|
||||
enum Motion {
|
||||
/* 0x0 */ MOT_WAIT_A,
|
||||
/* 0x1 */ MOT_LOOK_A,
|
||||
/* 0x2 */ MOT_TO_WAIT_B,
|
||||
/* 0x3 */ MOT_WAIT_LOOKUP,
|
||||
/* 0x4 */ MOT_KUNE_TALK,
|
||||
/* 0x5 */ MOT_KUNE_WAIT_A,
|
||||
/* 0x6 */ MOT_KUNE_SHISHI,
|
||||
/* 0x7 */ MOT_WAIT_B,
|
||||
/* 0x8 */ MOT_KUNE_WAIT_B,
|
||||
/* 0x9 */ MOT_TALK_R,
|
||||
/* 0xA */ MOT_LOOK,
|
||||
};
|
||||
|
||||
/* 80AF76CC */ daNpcThe_c();
|
||||
/* 80AF78E0 */ ~daNpcThe_c();
|
||||
/* inline */ inline BOOL CreateHeap();
|
||||
@@ -45,18 +110,18 @@ public:
|
||||
u8 getTypeFromParam() {
|
||||
switch (fopAcM_GetParam(this) & 0xff) {
|
||||
case 0:
|
||||
return 0;
|
||||
return TYPE_BAR;
|
||||
case 1:
|
||||
return 1;
|
||||
return TYPE_1;
|
||||
case 2:
|
||||
return 2;
|
||||
return TYPE_KAKARIKO;
|
||||
default:
|
||||
return 0;
|
||||
return TYPE_BAR;
|
||||
}
|
||||
}
|
||||
|
||||
bool isDelete() {
|
||||
if (mType == 0 || mType == 1 || mType == 2) {
|
||||
if (mType == TYPE_BAR || mType == TYPE_1 || mType == TYPE_KAKARIKO) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
@@ -83,12 +148,12 @@ public:
|
||||
|
||||
BOOL setAction(ActionFn action) {
|
||||
if (mpActionFn != NULL) {
|
||||
mState = 3;
|
||||
mMode = 3;
|
||||
(this->*mpActionFn)(NULL);
|
||||
}
|
||||
if (action != NULL) {
|
||||
mpActionFn = action;
|
||||
mState = 0;
|
||||
mMode = 0;
|
||||
(this->*mpActionFn)(NULL);
|
||||
}
|
||||
return true;
|
||||
@@ -106,6 +171,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0xB48 */ Z2Creature mSound;
|
||||
/* 0xBD8 */ daNpcF_MatAnm_c* mpMatAnm;
|
||||
/* 0xBDC */ daNpcF_Lookat_c mLookat;
|
||||
@@ -123,7 +189,7 @@ public:
|
||||
/* 0xE10 */ u32 field_0xe10;
|
||||
/* 0xE14 */ int mFlowID;
|
||||
/* 0xE18 */ s16 mLookMode;
|
||||
/* 0xE1A */ u16 mState;
|
||||
/* 0xE1A */ u16 mMode;
|
||||
/* 0xE1C */ bool field_0xe1c;
|
||||
/* 0xE1D */ bool field_0xe1d;
|
||||
/* 0xE1E */ u8 mType;
|
||||
@@ -141,32 +207,32 @@ STATIC_ASSERT(sizeof(daNpcThe_c) == 0xE20);
|
||||
class daNpcThe_Param_c {
|
||||
public:
|
||||
struct param {
|
||||
/* 0x00 */ f32 field_0x00;
|
||||
/* 0x00 */ f32 mAttnOffsetY;
|
||||
/* 0x04 */ f32 mGravity;
|
||||
/* 0x08 */ f32 mScale;
|
||||
/* 0x0C */ f32 field_0x0c;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x0C */ f32 mShadowDepth;
|
||||
/* 0x10 */ f32 mCcWeight;
|
||||
/* 0x14 */ f32 mCylH;
|
||||
/* 0x18 */ f32 mWallH;
|
||||
/* 0x1C */ f32 mWallR;
|
||||
/* 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 mLookatScl;
|
||||
/* 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;
|
||||
/* 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 field_0x62;
|
||||
/* 0x64 */ s16 mTestExpression;
|
||||
|
||||
@@ -1,6 +1,460 @@
|
||||
#ifndef D_A_NPC_ZRA_H
|
||||
#define D_A_NPC_ZRA_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "d/a/d_a_npc.h"
|
||||
|
||||
class daNpc_zrA_Path_c : public daNpcF_Path_c {
|
||||
public:
|
||||
/* 80B7850C */ BOOL getDstPosDst2(cXyz, cXyz&);
|
||||
/* 80B7876C */ void setNextIdxDst(cXyz);
|
||||
/* 80B788F8 */ BOOL chkPassedDstXZ(cXyz);
|
||||
/* 80B78A60 */ BOOL getDstPosDstXZ(cXyz, cXyz&);
|
||||
/* 80B78CA0 */ BOOL chkPassedChase(u16, cXyz);
|
||||
/* 80B78CFC */ int getDstPosChase(u16, cXyz, cXyz&);
|
||||
/* 80B78E08 */ f32 chkPassDst(u16, cXyz);
|
||||
/* 80B7EF88 */ ~daNpc_zrA_Path_c() {}
|
||||
int getEndIdx() { return mpRoomPath->m_num - 1; }
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpc_zrA_Path_c) == 0x630);
|
||||
|
||||
class daNpc_zrA_c : public daNpcF_c {
|
||||
public:
|
||||
typedef BOOL (daNpc_zrA_c::*ActionFn)(void*);
|
||||
typedef BOOL (daNpc_zrA_c::*EventFn)(int);
|
||||
|
||||
enum Type {
|
||||
/* 0 */ TYPE_WAIT,
|
||||
/* 1 */ TYPE_SWIM,
|
||||
/* 2 */ TYPE_WATERFALL,
|
||||
/* 3 */ TYPE_RIVER,
|
||||
/* 4 */ TYPE_TOBIKOMI,
|
||||
/* 5 */ TYPE_SEARCH,
|
||||
/* 6 */ TYPE_SPA,
|
||||
};
|
||||
|
||||
enum SoldierType {
|
||||
/* 0 */ SOLDIER_SPEAR,
|
||||
/* 1 */ SOLDIER_NOSPEAR,
|
||||
/* 2 */ SOLDIER_NONE,
|
||||
};
|
||||
|
||||
enum ActionType {
|
||||
/* 0 */ ACT_TYPE_0,
|
||||
/* 1 */ ACT_TYPE_1,
|
||||
/* 2 */ ACT_TYPE_2,
|
||||
/* 3 */ ACT_TYPE_3,
|
||||
/* 4 */ ACT_TYPE_4,
|
||||
/* 5 */ ACT_TYPE_5,
|
||||
/* 6 */ ACT_TYPE_6,
|
||||
};
|
||||
|
||||
enum GameMode {
|
||||
/* 0 */ GAME_MODE_0,
|
||||
/* 1 */ GAME_MODE_1,
|
||||
/* 2 */ GAME_MODE_2,
|
||||
/* 3 */ GAME_MODE_3,
|
||||
};
|
||||
|
||||
enum SwimMode {
|
||||
/* 0 */ SWIM_WAIT,
|
||||
/* 1 */ SWIM_RAIL,
|
||||
/* 2 */ SWIM_TURN,
|
||||
/* 3 */ SWIM_3,
|
||||
};
|
||||
|
||||
enum Animation {
|
||||
/* 0x00 */ ANM_NONE,
|
||||
/* 0x01 */ ANM_F_TALK_A,
|
||||
/* 0x02 */ ANM_F_TALK_A_SP,
|
||||
/* 0x03 */ ANM_F_WAIT_SWIM,
|
||||
/* 0x04 */ ANM_F_TALK_NOMAL,
|
||||
/* 0x05 */ ANM_FH_TALK_NOMAL,
|
||||
/* 0x06 */ ANM_FH_SADSIT_A,
|
||||
/* 0x07 */ ANM_FH_SADSIT_B,
|
||||
/* 0x08 */ ANM_FH_SADSIT_C,
|
||||
/* 0x09 */ ANM_FH_SADSIT_D,
|
||||
/* 0x0A */ ANM_FH_SADSIT_E,
|
||||
/* 0x0B */ ANM_F_LOOKING_SP,
|
||||
/* 0x0C */ ANM_FH_LOOKING_SP,
|
||||
/* 0x0D */ ANM_F_LOOKUP,
|
||||
/* 0x0E */ ANM_FH_LOOKUP,
|
||||
/* 0x0F */ ANM_F_TALK_SWIM_SP,
|
||||
/* 0x10 */ ANM_F_TALK_B_SP,
|
||||
/* 0x11 */ ANM_F_SPA_TALK_A,
|
||||
/* 0x12 */ ANM_FH_SPA_WAIT_A,
|
||||
/* 0x13 */ ANM_F_SPA_TALK_B,
|
||||
/* 0x14 */ ANM_FH_SPA_WAIT_B,
|
||||
/* 0x15 */ ANM_SWIM_TURN,
|
||||
/* 0x16 */ ANM_STILL,
|
||||
/* 0x17 */ ANM_FALLSWIM,
|
||||
/* 0x18 */ ANM_SWIM_TALK,
|
||||
/* 0x19 */ ANM_SADSIT_A,
|
||||
/* 0x1A */ ANM_SADSIT_B,
|
||||
/* 0x1B */ ANM_SADSIT_C,
|
||||
/* 0x1C */ ANM_SADSIT_D,
|
||||
/* 0x1D */ ANM_SADSIT_E,
|
||||
/* 0x1E */ ANM_TOBIKOMI_S,
|
||||
/* 0x1F */ ANM_TOBIKOMI_T,
|
||||
/* 0x20 */ ANM_TOBIKOMI_E,
|
||||
/* 0x21 */ ANM_LOOKING_SP,
|
||||
/* 0x22 */ ANM_TALK_SWIM_SP,
|
||||
/* 0x23 */ ANM_TALK_B_SP,
|
||||
/* 0x24 */ ANM_LOOKUP,
|
||||
/* 0x25 */ ANM_SPA_WAIT_B,
|
||||
/* 0x26 */ ANM_SPA_TALK_B,
|
||||
/* 0x27 */ ANM_SPA_WAIT_A,
|
||||
/* 0x28 */ ANM_SPA_TALK_A,
|
||||
/* 0x29 */ ANM_WAIT_A,
|
||||
/* 0x2A */ ANM_WALK_A,
|
||||
/* 0x2B */ ANM_TALK_A,
|
||||
/* 0x2C */ ANM_SWIM_A,
|
||||
/* 0x2D */ ANM_SWIM_B,
|
||||
/* 0x2E */ ANM_WAIT_SWIM,
|
||||
/* 0x2F */ ANM_DIVE,
|
||||
/* 0x30 */ ANM_DIVE_B,
|
||||
/* 0x31 */ ANM_FLOAT,
|
||||
/* 0x32 */ ANM_FLOAT_B,
|
||||
/* 0x33 */ ANM_STEP,
|
||||
/* 0x34 */ ANM_WAIT_SP,
|
||||
/* 0x35 */ ANM_WALK_A_SP,
|
||||
/* 0x36 */ ANM_TALK_A_SP,
|
||||
/* 0x37 */ ANM_SWIM_A_SP,
|
||||
/* 0x38 */ ANM_SWIM_B_SP,
|
||||
/* 0x39 */ ANM_WAIT_SWIM_SP,
|
||||
/* 0x3A */ ANM_DIVE_SP,
|
||||
/* 0x3B */ ANM_DIVE_B_SP,
|
||||
/* 0x3C */ ANM_FLOAT_SP,
|
||||
/* 0x3D */ ANM_FLOAT_B_SP,
|
||||
/* 0x3E */ ANM_STEP_SP,
|
||||
};
|
||||
|
||||
enum Expression {
|
||||
/* 0x00 */ EXPR_TALK_NOMAL,
|
||||
/* 0x01 */ EXPR_SADSIT_A,
|
||||
/* 0x02 */ EXPR_SADSIT_B,
|
||||
/* 0x03 */ EXPR_SADSIT_C,
|
||||
/* 0x04 */ EXPR_SADSIT_D,
|
||||
/* 0x05 */ EXPR_SADSIT_E,
|
||||
/* 0x06 */ EXPR_LOOKING_SP,
|
||||
/* 0x07 */ EXPR_LOOKUP,
|
||||
/* 0x08 */ EXPR_SPA_TALK_A,
|
||||
/* 0x09 */ EXPR_SPA_TALK_B,
|
||||
/* 0x0A */ EXPR_TALK_SWIM_SP,
|
||||
/* 0x0B */ EXPR_TALK_B_SP,
|
||||
/* 0x0C */ EXPR_TALK_A,
|
||||
/* 0x0D */ EXPR_WAIT_SWIM,
|
||||
/* 0x0E */ EXPR_TALK_A_SP,
|
||||
/* 0x0F */ EXPR_TALK_NOMAL_2,
|
||||
/* 0x10 */ EXPR_LOOKING_SP_2,
|
||||
/* 0x11 */ EXPR_LOOKUP_2,
|
||||
/* 0x12 */ EXPR_SPA_WAIT_A,
|
||||
/* 0x13 */ EXPR_SPA_WAIT_B,
|
||||
/* 0x14 */ EXPR_NONE,
|
||||
};
|
||||
|
||||
enum Motion {
|
||||
/* 0x00 */ MOT_WAIT_A,
|
||||
/* 0x01 */ MOT_WAIT_SWIM,
|
||||
/* 0x02 */ MOT_SWIM_TALK,
|
||||
/* 0x03 */ MOT_WAIT_A_2,
|
||||
/* 0x04 */ MOT_WAIT_SWIM_2,
|
||||
/* 0x05 */ MOT_TALK_A,
|
||||
/* 0x06 */ MOT_SADSIT_A,
|
||||
/* 0x07 */ MOT_SADSIT_B,
|
||||
/* 0x08 */ MOT_SADSIT_C,
|
||||
/* 0x09 */ MOT_SADSIT_D,
|
||||
/* 0x0A */ MOT_SADSIT_E,
|
||||
/* 0x0B */ MOT_LOOKING_SP,
|
||||
/* 0x0C */ MOT_LOOKUP,
|
||||
/* 0x0D */ MOT_SPA_TALK_A,
|
||||
/* 0x0E */ MOT_SPA_TALK_B,
|
||||
/* 0x0F */ MOT_TALK_SWIM_SP,
|
||||
/* 0x10 */ MOT_TALK_B_SP,
|
||||
/* 0x11 */ MOT_TALK_A_2,
|
||||
/* 0x12 */ MOT_SPA_WAIT_A,
|
||||
/* 0x13 */ MOT_SPA_WAIT_B,
|
||||
/* 0x14 */ MOT_WALK_A,
|
||||
/* 0x16 */ MOT_SWIM_A = 0x16,
|
||||
/* 0x17 */ MOT_SWIM_B,
|
||||
/* 0x18 */ MOT_DIVE_SWIM_A,
|
||||
/* 0x19 */ MOT_DIVE_B_SWIM_A,
|
||||
/* 0x1A */ MOT_DIVE_SWIM_B,
|
||||
/* 0x1B */ MOT_DIVE_B_SWIM_B,
|
||||
/* 0x1C */ MOT_STEP,
|
||||
/* 0x1D */ MOT_FLOAT,
|
||||
/* 0x1E */ MOT_FLOAT_B,
|
||||
/* 0x1F */ MOT_SWIM_TURN,
|
||||
/* 0x20 */ MOT_TOBIKOMI_S,
|
||||
/* 0x21 */ MOT_TOBIKOMI_T,
|
||||
/* 0x22 */ MOT_TOBIKOMI_E,
|
||||
/* 0x23 */ MOT_FALLSWIM,
|
||||
};
|
||||
|
||||
enum Event {
|
||||
/* 0x0 */ EVT_NONE,
|
||||
/* 0x1 */ EVT_TALK_SWIM,
|
||||
/* 0x2 */ EVT_BEFORE_BLAST_ZRR,
|
||||
/* 0x3 */ EVT_AFTER_BLAST_ZRR,
|
||||
/* 0x4 */ EVT_THANKS_BLAST,
|
||||
/* 0x5 */ EVT_RESULT_ANNOUNCE,
|
||||
/* 0x6 */ EVT_CARRY_WATERFALL,
|
||||
/* 0x7 */ EVT_CARRY_WATERFALL_NIGHT,
|
||||
/* 0x8 */ EVT_CARRY_WATERFALL_SKIP,
|
||||
/* 0x9 */ EVT_CARRY_WATERFALL_NIGHT_SKIP,
|
||||
/* 0xA */ EVT_SEARCH_PRINCE,
|
||||
/* 0xB */ EVT_TALK_MULTI,
|
||||
/* 0xC */ EVT_TALK_MULTI2,
|
||||
};
|
||||
|
||||
/* 80B7956C */ daNpc_zrA_c();
|
||||
/* 80B79828 */ ~daNpc_zrA_c();
|
||||
/* 80B79B58 */ cPhs__Step create();
|
||||
/* 80B79F38 */ int CreateHeap();
|
||||
/* 80B7A51C */ int Delete();
|
||||
/* 80B7A550 */ int Execute();
|
||||
/* 80B7A570 */ int Draw();
|
||||
/* 80B7A864 */ int ctrlJoint(J3DJoint*, J3DModel*);
|
||||
/* 80B7AB9C */ static int createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80B7ABBC */ static int ctrlJointCallBack(J3DJoint*, int);
|
||||
/* 80B7AC08 */ void setParam();
|
||||
/* 80B7ADF0 */ BOOL main();
|
||||
/* 80B7B0A4 */ BOOL ctrlBtk();
|
||||
/* 80B7B1DC */ void setAttnPos();
|
||||
/* 80B7B91C */ void setMtx();
|
||||
/* 80B7B9D4 */ bool setExpressionAnm(int, bool);
|
||||
/* 80B7BD60 */ bool setExpressionBtp(int);
|
||||
/* 80B7BE74 */ void setExpression(int, f32);
|
||||
/* 80B7BEA0 */ void setMotionAnm(int, f32);
|
||||
/* 80B7C070 */ void setMotionWaterAnm(int);
|
||||
/* 80B7C308 */ void setMotion(int, f32, BOOL);
|
||||
/* 80B7C34C */ BOOL drawDbgInfo();
|
||||
/* 80B7C354 */ void drawOtherMdls();
|
||||
/* 80B7C44C */ Type getTypeFromArgument();
|
||||
/* 80B7C4B4 */ SoldierType getSoldierTypeFromParam();
|
||||
/* 80B7C500 */ GameMode getGameModeFromParam();
|
||||
/* 80B7C524 */ ActionType getActionTypeFromParam();
|
||||
/* 80B7C5E4 */ u8 getMultiModeFromParam();
|
||||
/* 80B7C614 */ u8 getMultiNoFromParam();
|
||||
/* inline */ u8 getNoFromParam() { return (u8)fopAcM_GetParam(this); }
|
||||
/* inline */ u8 getPathNoFromParam() { return (u8)(fopAcM_GetParam(this) >> 8); }
|
||||
/* 80B7C644 */ BOOL isDelete();
|
||||
/* 80B7C71C */ void reset();
|
||||
/* 80B7CA8C */ void playExpression();
|
||||
/* 80B7D0FC */ void playMotion();
|
||||
/* 80B7DAF4 */ BOOL chkAction(ActionFn);
|
||||
/* 80B7DB20 */ bool setAction(ActionFn);
|
||||
/* 80B7DBC8 */ bool selectAction();
|
||||
/* 80B7DF40 */ BOOL doEvent();
|
||||
/* 80B7E668 */ BOOL setSkipZev(int, int);
|
||||
/* 80B7E6F4 */ void setLookMode(int);
|
||||
/* 80B7E718 */ void lookat();
|
||||
/* 80B7E9E0 */ BOOL chkFindPlayer();
|
||||
/* 80B7EA90 */ void setExpressionTalkAfter();
|
||||
/* 80B7EBA0 */ void setPrtcl();
|
||||
/* 80B7EC54 */ BOOL test(void*);
|
||||
/* 80B7F8C4 */ BOOL wait(void*);
|
||||
/* 80B7FD10 */ void walkCalc();
|
||||
/* 80B7FE18 */ void waitCalc();
|
||||
/* 80B800A4 */ BOOL waitSpa(void*);
|
||||
/* 80B80228 */ BOOL waitLake(void*);
|
||||
/* 80B80418 */ BOOL talk(void*);
|
||||
/* 80B806FC */ BOOL ECut_talkMulti(int);
|
||||
/* 80B80860 */ BOOL swim(void*);
|
||||
/* 80B80A94 */ BOOL railSwim();
|
||||
/* 80B81788 */ BOOL waitSwim();
|
||||
/* 80B81918 */ BOOL turnSwimInit();
|
||||
/* 80B81A18 */ BOOL turnSwim();
|
||||
/* 80B81CC8 */ BOOL turnSwimCheck();
|
||||
/* 80B81D68 */ BOOL evasionCalc(cXyz&, csXyz&);
|
||||
/* 80B81FB8 */ void calcBank(s16, s16, s16&, s16&);
|
||||
/* 80B8204C */ void calcWaistAngle();
|
||||
/* 80B82238 */ void calcWaistAngleInit();
|
||||
/* 80B822CC */ void calcWaistAngleStop();
|
||||
/* 80B822D8 */ BOOL calcWaistAngleCheck();
|
||||
/* 80B82300 */ void calcModulation();
|
||||
/* 80B8247C */ void resetModulation();
|
||||
/* 80B824F4 */ void calcSwimAngle(csXyz&, csXyz&, s16, s16);
|
||||
/* 80B82584 */ void calcSwimPos(cXyz&);
|
||||
/* 80B825FC */ void calcWaitSwim(BOOL);
|
||||
/* 80B826F0 */ BOOL ECut_talkSwim(int);
|
||||
/* 80B82C54 */ BOOL waitWaterfall(void*);
|
||||
/* 80B82E88 */ BOOL swimWaterfall(void*);
|
||||
/* 80B833C8 */ BOOL diveWaterfall(void*);
|
||||
/* 80B83548 */ BOOL talkSwim(void*);
|
||||
/* 80B837E8 */ BOOL ECut_carryWaterfall(int);
|
||||
/* 80B83D08 */ BOOL ECut_carryWaterfallSkip(int);
|
||||
/* 80B83FA4 */ BOOL diveCalc(s16, s16, BOOL);
|
||||
/* 80B84298 */ BOOL waitRiverDescend(void*);
|
||||
/* 80B84B74 */ BOOL swimRiverDescend(void*);
|
||||
/* 80B85B14 */ BOOL swimRiverDescend2(void*);
|
||||
/* 80B8601C */ BOOL diveRiverDescend(void*);
|
||||
/* 80B86440 */ BOOL swimGoalRiverDescend(void*);
|
||||
/* 80B86A2C */ BOOL returnRiverDescend(void*);
|
||||
/* 80B86D9C */ void moveRiverPosCalc(cXyz&);
|
||||
/* 80B86E78 */ void createRuppi();
|
||||
/* 80B86FAC */ BOOL ECut_beforeBlastzrR(int);
|
||||
/* 80B872F0 */ BOOL ECut_afterBlastzrR(int);
|
||||
/* 80B87510 */ BOOL ECut_thanksBlast(int);
|
||||
/* 80B88B04 */ BOOL ECut_resultAnnounce(int);
|
||||
/* 80B8A064 */ void calcCanoeMove(BOOL);
|
||||
/* 80B8A43C */ BOOL tobiSearch(void*);
|
||||
/* 80B8A54C */ BOOL tobiWait(void*);
|
||||
/* 80B8A648 */ BOOL tobikomi1(void*);
|
||||
/* 80B8A7F8 */ BOOL tobikomi2(void*);
|
||||
/* 80B8AA1C */ BOOL tobikomi3(void*);
|
||||
/* 80B8AB78 */ BOOL tobiJump(void*);
|
||||
/* 80B8B1FC */ BOOL tobiEnd(void*);
|
||||
/* 80B8B420 */ BOOL waitSearch(void*);
|
||||
/* 80B8B530 */ BOOL ECut_searchPrince1(int);
|
||||
/* 80B8BCE8 */ BOOL ECut_searchPrince2(int);
|
||||
/* 80B8C3E8 */ void adjustShapeAngle();
|
||||
int getType() { return mType; }
|
||||
u32 getAngleNoFromParam() { return (u8)(fopAcM_GetParam(this) >> 8); }
|
||||
|
||||
/* 0x0B48 */ Z2Creature mCreatureSound;
|
||||
/* 0x0BD8 */ J3DModel* mpObjectModel[3];
|
||||
/* 0x0BE4 */ daNpcF_MatAnm_c* mpMatAnm;
|
||||
/* 0x0BE8 */ mDoExt_btkAnm mWaterBtkAnm;
|
||||
/* 0x0C00 */ mDoExt_bpkAnm mWaterBpkAnm;
|
||||
/* 0x0C18 */ daNpc_zrA_Path_c mPath;
|
||||
/* 0x1248 */ daNpcF_Lookat_c mLookat;
|
||||
/* 0x12E4 */ dPaPo_c mPaPo;
|
||||
/* 0x131C */ daNpcF_ActorMngr_c mActorMngr[3];
|
||||
/* 0x1334 */ u8 field_0x1334[4];
|
||||
/* 0x1338 */ dCcD_Cyl mCcCyl;
|
||||
/* 0x1474 */ ActionFn mpNextActionFn;
|
||||
/* 0x1480 */ ActionFn mpActionFn;
|
||||
/* 0x148C */ request_of_phase_process_class mPhase[8];
|
||||
/* 0x14CC */ u32 mItemID;
|
||||
/* 0x14D0 */ int field_0x14d0;
|
||||
/* 0x14D4 */ int field_0x14d4;
|
||||
/* 0x14D8 */ int mSwimTurnTimer;
|
||||
/* 0x14DC */ int field_0x14dc;
|
||||
/* 0x14E0 */ int mFlowID;
|
||||
/* 0x14E4 */ s16 mLookMode;
|
||||
/* 0x14E6 */ u16 mMode;
|
||||
/* 0x14E8 */ u8 mType;
|
||||
/* 0x14E9 */ u8 mSoldierType;
|
||||
/* 0x14EC */ int mBaseMotionAnm;
|
||||
/* 0x14F0 */ int mBtkID;
|
||||
/* 0x14F4 */ int mBpkID;
|
||||
/* 0x14F8 */ u32 mWaterAnmFlags;
|
||||
/* 0x14FC */ char* mStaffName;
|
||||
/* 0x1500 */ cXyz field_0x1500;
|
||||
/* 0x150C */ u8 mMeterCount;
|
||||
/* 0x150D */ u8 mGameMode;
|
||||
/* 0x150E */ u8 mSwitch1;
|
||||
/* 0x150F */ u8 mSwitch2;
|
||||
/* 0x1510 */ int field_0x1510;
|
||||
/* 0x1514 */ int mSpinAngle;
|
||||
/* 0x1518 */ s16 field_0x1518;
|
||||
/* 0x151C */ int mSpinTimer;
|
||||
/* 0x1520 */ u8 mSwimMode;
|
||||
/* 0x1521 */ bool field_0x1521;
|
||||
/* 0x1524 */ f32 mSwimSpeedF;
|
||||
/* 0x1528 */ f32 mSwimSpeedScale;
|
||||
/* 0x152C */ u8 field_0x152c[4];
|
||||
/* 0x1530 */ csXyz mWaistAngle;
|
||||
/* 0x1536 */ csXyz mSwimAngleCalc;
|
||||
/* 0x153C */ bool field_0x153c;
|
||||
/* 0x153D */ bool field_0x153d;
|
||||
/* 0x153E */ bool field_0x153e;
|
||||
/* 0x1540 */ int mSwimFastTurnTimer;
|
||||
/* 0x1544 */ cXyz mSwimSpeed;
|
||||
/* 0x1550 */ bool field_0x1550;
|
||||
/* 0x1554 */ int field_0x1554;
|
||||
/* 0x1558 */ int field_0x1558;
|
||||
/* 0x155C */ int mModulationParam;
|
||||
/* 0x1560 */ cXyz mModulationOffset;
|
||||
/* 0x156C */ f32 mScaleFactor;
|
||||
/* 0x1570 */ int mEvasionTimer;
|
||||
/* 0x1574 */ s16 mEvasionAngle;
|
||||
/* 0x1576 */ u8 mActionType;
|
||||
/* 0x1577 */ bool mIsAboveWater;
|
||||
/* 0x1578 */ cXyz field_0x1578;
|
||||
/* 0x1584 */ cXyz field_0x1584;
|
||||
/* 0x1590 */ bool mResetWaistAngle;
|
||||
/* 0x1591 */ bool mIsTurning;
|
||||
/* 0x1592 */ u8 mCheckSwimTurnTimer;
|
||||
/* 0x1593 */ bool mCheckSwimTurn;
|
||||
/* 0x1594 */ u8 mActionSelect;
|
||||
/* 0x1595 */ int mRiverPathIdx;
|
||||
/* 0x159C */ cXyz field_0x159c[3];
|
||||
/* 0x15C0 */ u8 field_0x15c0;
|
||||
/* 0x15C1 */ bool field_0x15c1;
|
||||
|
||||
#ifdef NONMATCHING
|
||||
static char* mEvtCutNameList[11];
|
||||
static EventFn mEvtCutList[11];
|
||||
#else
|
||||
static void* mEvtCutNameList[11];
|
||||
static u8 mEvtCutList[132];
|
||||
#endif
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpc_zrA_c) == 0x15C4);
|
||||
|
||||
class daNpc_zrA_Param_c {
|
||||
public:
|
||||
struct param {
|
||||
/* 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 field_0x62;
|
||||
/* 0x64 */ s16 mTestExpression;
|
||||
/* 0x66 */ s16 mTestMotion;
|
||||
/* 0x68 */ s16 mTestLookMode;
|
||||
/* 0x6A */ bool mTest;
|
||||
/* 0x6C */ f32 mSwimSpeed;
|
||||
/* 0x70 */ f32 mMinSwimSpeedScale;
|
||||
/* 0x74 */ s16 mSwimAngleSpeed;
|
||||
/* 0x78 */ f32 mSwimAnmRate;
|
||||
/* 0x7C */ f32 field_0x7c;
|
||||
/* 0x80 */ f32 field_0x80;
|
||||
/* 0x84 */ f32 mMaxScaleFactor;
|
||||
/* 0x88 */ f32 mMinDepth;
|
||||
/* 0x8C */ f32 field_0x8c;
|
||||
/* 0x90 */ f32 field_0x90;
|
||||
/* 0x94 */ f32 mWalkSpeed;
|
||||
/* 0x98 */ s16 mWalkAngleSpeed;
|
||||
/* 0x9A */ s16 mWalkAngleScale;
|
||||
/* 0x9C */ f32 mWalkAnmRate;
|
||||
/* 0xA0 */ f32 field_0xa0;
|
||||
/* 0xA4 */ f32 field_0xa4;
|
||||
/* 0xA8 */ f32 field_0xa8;
|
||||
/* 0xAC */ f32 field_0xac;
|
||||
};
|
||||
|
||||
/* 80B8C3EC */ virtual ~daNpc_zrA_Param_c();
|
||||
|
||||
static param const m;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daNpc_zrA_Param_c::param) == 0xB0);
|
||||
|
||||
#endif /* D_A_NPC_ZRA_H */
|
||||
|
||||
@@ -1,6 +1,24 @@
|
||||
#ifndef D_A_OBJ_ZRAMARK_H
|
||||
#define D_A_OBJ_ZRAMARK_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class daObjZraMark_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 80D42678 */ void Create();
|
||||
/* 80D4287C */ void CreateHeap();
|
||||
/* 80D42A7C */ void Execute();
|
||||
/* 80D42B0C */ void Draw();
|
||||
/* 80D42C98 */ void Delete();
|
||||
/* 80D42CE0 */ void getType();
|
||||
/* 80D42D2C */ void setBaseMtx();
|
||||
/* 80D42EE0 */ void col_init();
|
||||
/* 80D42F5C */ void col_set();
|
||||
/* 80D432C8 */ void schHoz();
|
||||
/* 80D43314 */ void entryPointer(fopAc_ac_c*);
|
||||
/* 80D43370 */ void informBlast();
|
||||
|
||||
u8 getMarkNo() { return fopAcM_GetParam(this) & 0xff; }
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_ZRAMARK_H */
|
||||
|
||||
Reference in New Issue
Block a user