diff options
| author | Max Roncace <me@caseif.net> | 2025-11-25 15:32:01 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-25 22:32:01 +0200 |
| commit | 9f76ba2f69e32317377477fdd341f4951a012cf0 (patch) | |
| tree | baeeb93b7e97f335bd4fc445817b7c00f2ea0e22 /include | |
| parent | 360bad39952e0b9ad72cfa75a2763ef9dab69064 (diff) | |
d_a_npc debug work (#2863)
* Remove d_a_npc3.cpp
This file appears to not actually be real and the asserts in its
functions all reference d_a_npc2.cpp instead.
* d_a_npc debug almost matching
Diffstat (limited to 'include')
50 files changed, 741 insertions, 697 deletions
diff --git a/include/SSystem/SComponent/c_lib.h b/include/SSystem/SComponent/c_lib.h index 1dcd862402..a93ba51aa5 100644 --- a/include/SSystem/SComponent/c_lib.h +++ b/include/SSystem/SComponent/c_lib.h @@ -92,7 +92,7 @@ T cLib_getRndValue(T min, T range) { template <typename T> T cLib_calcTimer(T* value) { if (*(T*)value != 0) { - *value = *value - 1; + --*value; } return *value; } diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index c8a8f4b1b0..59bf616126 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -6,7 +6,6 @@ #include "SSystem/SComponent/c_math.h" #include "Z2AudioLib/Z2Creature.h" #include "d/actor/d_a_player.h" -#include "d/d_bg_s_movebg_actor.h" #include "d/d_path.h" #include "d/d_msg_flow.h" #include "d/d_particle_copoly.h" @@ -151,36 +150,41 @@ public: f32, f32, f32, f32, f32, f32, cXyz*); /* 80147858 */ void calc(f32); /* 80147C38 */ void calcJntRad(f32, f32, f32); +#if DEBUG + void drawDbgInfo(); +#endif void setEyeAngleX(cXyz param_1, f32 param_2, s16 param_3) { - cXyz cStack_50; + cXyz unusedXyz; + f32 param_2_recip = 0.0f; s16 sVar3 = 0; if (mAttnPosP != NULL) { - cStack_50 = *mAttnPosP - param_1; + cXyz cStack_50 = *mAttnPosP - param_1; sVar3 = -cM_atan2s(cStack_50.y, cStack_50.absXZ()); sVar3 += param_3; } sVar3 += field_0x150.x; - mEyeAngle.x = field_0x132.x * (1.0f - 1.0f / param_2) + - sVar3 * (1.0f / param_2); + param_2_recip = 1.0f / param_2; + mEyeAngle.x = field_0x132.x * (1.0f - param_2_recip) + + sVar3 * param_2_recip; } void setEyeAngleY(cXyz param_1, s16 param_2, BOOL param_3, f32 param_4, s16 param_5) { - cXyz cStack_50; + f32 param_4_recip = 0.0f; s16 sVar3 = 0; if (mAttnPosP != NULL) { - cStack_50 = *mAttnPosP - param_1; - sVar3 = cM_atan2s(cStack_50.x, cStack_50.z); + cXyz cStack_50 = *mAttnPosP - param_1; + sVar3 += cM_atan2s(cStack_50.x, cStack_50.z); sVar3 -= param_2; - s16 diff = field_0x150.y - param_2; - sVar3 -= diff; + sVar3 -= (s16)(field_0x150.y - param_2); sVar3 += param_5; } if (param_3) { - sVar3 = -sVar3; + sVar3 = sVar3 * -1; } - mEyeAngle.y = field_0x132.y * (1.0f - 1.0f / param_4) + - sVar3 * (1.0f / param_4); + param_4_recip = 1.0f / param_4; + mEyeAngle.y = field_0x132.y * (1.0f - param_4_recip) + + sVar3 * param_4_recip; } void setEyeAngleY(s16 param_1, f32 param_2) { @@ -192,7 +196,8 @@ public: s16 getEyeAngleY() { return mEyeAngle.y; } f32 getJntRadX(int param_0) { - f32 ret = field_0xe4[2].x; + f32 ret = 0.0f; + ret = field_0xe4[2].x; if (param_0 == 0) { ret += field_0xe4[0].x * (1.0f - field_0x148); } else if (param_0 == 1) { @@ -202,7 +207,8 @@ public: } f32 getJntRadY(int param_0) { - f32 ret = field_0xe4[2].y; + f32 ret = 0.0f; + ret = field_0xe4[2].y; if (param_0 == 0) { ret += field_0xe4[0].y * (1.0f - field_0x148); } else if (param_0 == 1) { @@ -421,11 +427,10 @@ public: f32 GetH10() { return H10; } f32 GetH11() { return H11; } - // constants might be wrong, regalloc void Set(f32 param_1) { field_0x00 = param_1; + f32 cubed = param_1 * param_1 * param_1; f32 sqr = param_1 * param_1; - f32 cubed = param_1 * sqr; H00 = 1.0f + (2.0f * cubed - 3.0f * sqr); H01 = -2.0f * cubed + 3.0f * sqr; @@ -477,8 +482,7 @@ public: int getArg2() { return mPathInfo->m_points[mIdx].mArg2; } int chkClose() { - BOOL rt = dPath_ChkClose(mPathInfo); - return rt; + return dPath_ChkClose(mPathInfo); } bool chkReverse() { return mDirection == 1; } @@ -501,6 +505,10 @@ public: field_0x1E = 1; } + bool checkReverse() { + return mDirection == 1; + } + BOOL chkNextId() { return mPathInfo->m_nextID != 0xFFFF; } }; @@ -684,7 +692,10 @@ public: /* 8014BFB0 */ fopAc_ac_c* getShopItemTagP(); /* 8014C030 */ void setHitodamaPrtcl(); - /* 8014CD20 */ virtual ~daNpcT_c() {} + /* 8014CD20 */ virtual ~daNpcT_c() { + // "daNpcT_c -> destructed" + OS_REPORT("|%06d:%x|daNpcT_c -> デストラクト\n", g_Counter.mCounter0, this); + } /* 801490D4 */ virtual BOOL ctrlBtk(); /* 8014CC14 */ virtual void ctrlSubFaceMotion(int) {} /* 8014CC40 */ virtual BOOL checkChangeJoint(int) { return FALSE; } @@ -760,6 +771,10 @@ public: field_0xde4 = 0.2f; } + BOOL chkFindPlayer(BOOL param_0, s16 param_1) { + return chkFindActor(daPy_getPlayerActorClass(), param_0, param_1); + } + static dCcD_SrcGObjInf const mCcDObjData; static dCcD_SrcCyl mCcDCyl; static dCcD_SrcSph mCcDSph; @@ -817,591 +832,7 @@ BOOL daNpcT_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz* o_spawn csXyz* o_angle); int daNpcT_judgeRace(dPath* i_path, fopAc_ac_c** param_1, daNpcT_pntData_c* i_pntData, int param_3, int* param_4); BOOL daNpcT_chkActorInScreen(fopAc_ac_c* i_ActorP, f32 param_1, f32 param_2, f32 param_3, - f32 param_4, f32 param_5, f32 param_6, f32 param_7, int param_8); - -class daBaseNpc_matAnm_c : public J3DMaterialAnm { -public: - /* 80150444 */ virtual ~daBaseNpc_matAnm_c() {} - /* 8014D884 */ virtual void calc(J3DMaterial*) const; - - /* 0x0F4 */ mutable f32 field_0xF4; - /* 0x0F8 */ mutable f32 field_0xF8; - /* 0x0FC */ f32 mNowOffsetX; - /* 0x100 */ f32 mNowOffsetY; - /* 0x104 */ u8 mEyeMoveFlg; - /* 0x105 */ u8 mMorfFrm; -}; - -class daBaseNpc_acMngr_c { -public: - /* 8014D804 */ daBaseNpc_acMngr_c(); - /* 8014D81C */ void entry(fopAc_ac_c*); - /* 8014D838 */ fopAc_ac_c* getActor(); - /* 80150524 */ virtual ~daBaseNpc_acMngr_c() {} - -private: - /* 0x04 */ fpc_ProcID mActorId; -}; - -class daBaseNpc_path_c { -public: - /* 8014D998 */ daBaseNpc_path_c(); - /* 8014D9A8 */ BOOL isPath(); - /* 8014D9BC */ int setPathInfo(u8, s8, s8); - /* 8014DA48 */ void reverseDir(); - /* 8014DA64 */ s32 chkPnt(cXyz); - /* 8014DAC4 */ BOOL setNextPnt(); - /* 8014DB04 */ u16 getIdx(); - /* 8014DB0C */ void setIdx(u16); - /* 8014DB14 */ Vec getPntPos(u16); - /* 801503FC */ virtual ~daBaseNpc_path_c() {} - - static const int MAXNUMCONTROLPNT_e = 64; - -public: - /* 0x004 */ dPath* mPathInfo; - /* 0x008 */ f32 field_0x8; - /* 0x00C */ dPnt mCurvePnts[160]; - /* 0xA0C */ u8 field_0xa0c[0xA0E - 0xA0C]; - /* 0xA0E */ u16 mCurvePntNum; - /* 0xA10 */ u16 mIdx; - /* 0xA12 */ s8 mDirection; - /* 0xA13 */ u8 field_0xa13; - /* 0xA14 */ s16 field_0xa14; - /* 0xA16 */ u8 field_0xa16[2]; - /* 0xA18 */ int field_0xa18; - /* 0xA1C */ u8 field_0xa1c[8]; -}; - -class daBaseNpc_lookat_c { -public: - /* 8014DB40 */ void limitter(s16, s16*, s16, s16); - /* 8014DBB4 */ void calc(fopAc_ac_c*, f32 (*)[4], s16); - /* 8014E634 */ void setMaxJntLmt(csXyz, int); - /* 8014E658 */ void setMinJntLmt(csXyz, int); - /* 8014E67C */ void setJntPos(cXyz, int); - /* 8014E6A0 */ int setAttnPos(cXyz*); - /* 8014E6AC */ csXyz getRot(int); - /* 801502EC */ virtual ~daBaseNpc_lookat_c() {} - - /* 0x04 */ csXyz mMaxJntLmt[4]; - /* 0x1C */ csXyz mMinJntLmt[4]; - /* 0x34 */ cXyz mJntPos[4]; - /* 0x64 */ csXyz field_0x64[4]; - /* 0x7C */ csXyz mRot[4]; - /* 0x94 */ u8 field_0x94[4]; - /* 0x98 */ cXyz* mpAttnPos; -}; - -class daBaseNpc_c : public fopAc_ac_c { -public: - /* 8014E6C8 */ daBaseNpc_c(); - /* 8014EE44 */ J3DAnmTransform* getTrnsfrmKeyAnmP(char*, int); - /* 8014EE80 */ int setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int); - /* 8014EEE4 */ int setBckAnm(J3DAnmTransform*, f32, int, int, int, bool); - /* 8014EF28 */ J3DAnmTransform* getTexPtrnAnmP(char*, int); - /* 8014EF64 */ int setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int); - /* 8014EFF4 */ void orderEvent(int, char*); - /* 8014F0A0 */ void setEnvTevColor(); - /* 8014F0FC */ void setRoomNo(); - /* 8014F148 */ int checkEndAnm(f32); - /* 8014F1C8 */ int checkEndAnm(J3DFrameCtrl*); - - /* 8014E89C */ virtual ~daBaseNpc_c(); - /* 8014EAD0 */ virtual int execute(); - /* 8014EC50 */ virtual int draw(f32); - /* 8014EE3C */ virtual const char* getResName(); - /* 8014EFA4 */ virtual void attnSttsOn(int, int); - /* 8014EFF0 */ virtual void setParam(); - /* 8014F09C */ virtual void mainProc(); - /* 8014F140 */ virtual BOOL btkCtrl(); - /* 8014F228 */ virtual void allAnmPlay(); - /* 8014F38C */ virtual void adjustShapeAngle(); - /* 8014F390 */ virtual void setMtx(int); - /* 8014F4A0 */ virtual void setCollisions(); - /* 8014F4A4 */ virtual void setAttnPos(); - /* 8014F4A8 */ virtual void drawOtherMdls(); - /* 8014F4AC */ virtual bool dbgDraw(); - - static dCcD_SrcGObjInf const mCcDObj; - static dCcD_SrcCyl mCcDCyl; - static dCcD_SrcSph mCcDSph; - -public: - /* 0x56C */ dBgS_ObjAcch mAcch; - /* 0x744 */ char field_0x744; - /* 0x745 */ u8 field_0x745[0x74c - 0x745]; - /* 0x74C */ request_of_phase_process_class mPhase; - /* 0x754 */ mDoExt_McaMorfSO* mpModelMorf; - /* 0x758 */ Z2Creature mSound; - /* 0x7E8 */ u32 mShadowId; - /* 0x7EC */ mDoExt_bckAnm mBck; - /* 0x808 */ mDoExt_btpAnm mBtp; - /* 0x820 */ mDoExt_btkAnm mBtk; - /* 0x838 */ s16 field_0x838; - /* 0x83C */ u16* field_0x83c; - /* 0x840 */ u16 field_0x840; - /* 0x842 */ u16 field_0x842; - /* 0x844 */ u8 field_0x844; - /* 0x845 */ u8 field_0x845[0x848 - 0x845]; - /* 0x848 */ s32 field_0x848; - /* 0x84C */ dMsgFlow_c mMsgFlow; - /* 0x898 */ u8 field_0x898[0x89A - 0x898]; - /* 0x89A */ s16 mEvtIdx; - /* 0x89C */ dCcD_Stts mCcStts; - /* 0x8D8 */ dBgS_AcchCir mAcchCir; - /* 0x918 */ s16 field_0x918; - /* 0x91A */ csXyz field_0x91a; - /* 0x920 */ daBaseNpc_lookat_c mLookat; - /* 0x9BC */ csXyz field_0x9bc; - /* 0x9C2 */ csXyz field_0x9c2; - /* 0x9C8 */ csXyz field_0x9c8; - /* 0x9CE */ csXyz field_0x9ce; - /* 0x9D4 */ cBgS_GndChk field_0x9d4; - /* 0xA10 */ f32 mGroundY; -}; - -STATIC_ASSERT(sizeof(daBaseNpc_c) == 0xA14); - -class daBaseNpc_moveBgActor_c : public daBaseNpc_c { -public: - /* 8014F4B4 */ daBaseNpc_moveBgActor_c(); - /* 8014F518 */ int MoveBGCreateHeap(); - /* 8014F60C */ int MoveBGCreate(char const*, int, MoveBGActor_SetFunc, u32); - /* 8014F6FC */ int MoveBGDelete(); - /* 8014F770 */ int MoveBGExecute(); - int MoveBGDraw() { - int ret = Draw(); - return ret; - } - - /* 80155FB0 */ virtual ~daBaseNpc_moveBgActor_c() {} - /* 801503BC */ virtual int CreateHeap() { return 1; } - /* 801503C4 */ virtual int Create() { return 1; } - /* 801503D4 */ virtual int Execute(Mtx**) { return 1; } - /* 801503DC */ virtual int Draw() { return 1; } - /* 801503CC */ virtual int Delete() { return 1; } - /* 801503E4 */ virtual int IsDelete() { return 1; } - /* 801503EC */ virtual int ToFore() { return 1; } - /* 801503F4 */ virtual int ToBack() { return 1; } - - static const char* m_name; - static int m_dzb_id; - static MoveBGActor_SetFunc m_set_func; - -public: - /* 0xA14 */ dBgW* mpBgw; - /* 0xA18 */ Mtx mBgMtx; -}; - -class daNpcF_ActorMngr_c { -private: - /* 0x0 */ fpc_ProcID 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(); - - fpc_ProcID getPId() { return mActorID; } - - /* 80155E40 */ virtual ~daNpcF_ActorMngr_c() {} -}; - -class daNpcF_c : public fopAc_ac_c { -protected: - /* 0x568 */ mDoExt_McaMorfSO* mAnm_p; - /* 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 mStaffID; - /* 0x930 */ int mCutType; - /* 0x934 */ int mAttnIdx; - /* 0x938 */ int mAttnChangeTimer; - /* 0x93C */ int mAttnActorTimer[5]; - /* 0x950 */ int mMsgTimer; - /* 0x954 */ int mDamageTimer; - /* 0x958 */ int mTotalDamageTimer; - /* 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 */ s16 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 */ bool mIsDamaged; - /* 0x9F1 */ u8 field_0x9f1; - /* 0x9F2 */ bool mHide; - /* 0x9F3 */ u8 field_0x9f3; - /* 0x9F4 */ u8 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; - int 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, - }; - - daNpcF_c() { - FORCE_DONT_INLINE; - initialize(); - } - /* 80152014 */ BOOL execute(); - /* 801522AC */ int 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 */ BOOL hitChk2(dCcD_Cyl*, BOOL, BOOL); - /* 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() { return TRUE; } - /* 80155BD8 */ virtual BOOL ctrlBtk() { return FALSE; } - /* 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) { return true; } - /* 80155EC8 */ virtual bool setExpressionBtp(int i_idx) { return true; } - /* 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() { return TRUE; } - /* 80155BCC */ virtual void drawOtherMdls() {} - - BOOL chkActorInSpeakArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) { - return chkActorInAttnArea(i_actorCheck, i_actorArea, attention_info.distances[fopAc_attn_SPEAK_e]); - } - 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.distances[fopAc_attn_TALK_e]); - } - 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 setCutType(int i_cutType) { mCutType = i_cutType; } - void onInterrupt(u8 param_0) { field_0x9ef = param_0; } - void onHide() { mHide = true; } - void offHide() { mHide = false; } - - static dCcD_SrcGObjInf const mCcDObjInfo; - 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_onTmpBit(u32 i_idx); -void daNpcF_offTmpBit(u32 i_idx); -u8 daNpcF_getDistTableIdx(int param_0, int param_1); -#if DEBUG -class daNpcF_HIOParam; -void daNpcF_commonListenPropertyEvent(char*, int*, daNpcF_HIOParam*); -void daNpcF_commonGenMessage(JORMContext*, daNpcF_HIOParam*); -#endif -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); -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); -BOOL daNpcF_chkDoBtnEqSpeak(fopAc_ac_c* i_actor_p); - -class daNpcF_MatAnm_c : public J3DMaterialAnm { -private: - /* 0x0F4 */ mutable f32 field_0xF4; - /* 0x0F8 */ mutable f32 field_0xF8; - /* 0x0FC */ f32 mNowOffsetX; - /* 0x100 */ f32 mNowOffsetY; - /* 0x104 */ u8 mEyeMoveFlag; - /* 0x105 */ u8 mMorfFrm; - -public: - daNpcF_MatAnm_c() { initialize(); } - /* 80150738 */ void initialize(); - /* 8015075C */ void calc(J3DMaterial*) const; - /* 80155ED0 */ ~daNpcF_MatAnm_c() {} - void setNowOffsetX(float i_nowOffsetX) { mNowOffsetX = i_nowOffsetX; } - void setNowOffsetY(float i_nowOffsetY) { mNowOffsetY = i_nowOffsetY; } - void onEyeMoveFlag() { mEyeMoveFlag = 1; } - void offEyeMoveFlag() { mEyeMoveFlag = 0; } -}; - -class daNpcF_SPCurve_c { -private: - /* 0x00 */ u16 mNurbs; - /* 0x02 */ u16 field_0x02; - /* 0x04 */ u8 mIsReversed; - /* 0x05 */ u8 mIsClosed; - /* 0x08 */ dPnt mPoints[96]; - -public: - /* 80150870 */ void initialize(dPath*, int); - - daNpcF_SPCurve_c() { - initialize(NULL, 0); - } - - virtual ~daNpcF_SPCurve_c() {} -}; // Size: 0x60C - -class daNpcF_Path_c { -protected: - /* 0x00 */ u16 mIdx; - /* 0x02 */ u8 mIsReversed; - /* 0x03 */ bool mIsClosed; - /* 0x04 */ dPath* mPathInfo; - /* 0x08 */ f32 mRange; - /* 0x0C */ f32 mPosDst; - /* 0x10 */ f32 field_0x10; - /* 0x14 */ cXyz mPosition; - /* 0x20 */ daNpcF_SPCurve_c mSPCurve; - -public: - /* 80150900 */ void initialize(); - /* 8015095C */ int setPathInfo(u8, s8, u8); - /* 80150A24 */ BOOL chkPassed(cXyz); - /* 80150A7C */ BOOL chkPassedDst(cXyz); - /* 80150BBC */ void reverse(); - /* 80150BE0 */ BOOL setNextIdx(); - /* 80150C18 */ int getNextIdx(); - /* 80150C60 */ int getBeforeIdx(); - /* 80150CA8 */ BOOL getBeforePos(cXyz&); - /* 80150D44 */ BOOL getNextPos(cXyz&); - /* 80150DE0 */ BOOL getDstPos(cXyz, cXyz&); - /* 80150EB4 */ void setNextIdxDst(cXyz); - - daNpcF_Path_c() { - initialize(); - } - - virtual ~daNpcF_Path_c() {} - - int getIdx() { return mIdx; }; - void setIdx(int i_idx) { mIdx = i_idx; } - int getArg0() { return mPathInfo->m_points[mIdx].mArg0; } - u8 getArg0(int i_idx) { return mPathInfo->m_points[i_idx].mArg0; } - Vec getPntPos(int i_idx) { return mPathInfo->m_points[i_idx].m_position; } - BOOL chkClose() { return dPath_ChkClose(mPathInfo); } - BOOL chkReverse() { return mIsReversed == true; } - void onReverse() { mIsReversed = true; } - void offReverse() { mIsReversed = false; } - dPath* getPathInfo() { return mPathInfo; } - void setRange(f32 i_range) { mRange = i_range; } - u16 getNumPnts() { return mPathInfo->m_num; } -#if DEBUG - void drawDbgInfoXyz(); -#endif -}; // Size: 0x630 - -class daNpcF_Lookat_c { -private: - /* 0x00 */ cXyz mJointPos[4]; - /* 0x30 */ cXyz* mAttnPos_p; - /* 0x34 */ csXyz mAngularMoveDis[4]; - /* 0x4C */ csXyz mMinAngle[4]; - /* 0x64 */ csXyz mMaxAngle[4]; - /* 0x7C */ csXyz mRotAngle[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*, Mtx, csXyz**, BOOL, int, BOOL); - /* 801515D4 */ void adjustMoveDisAngle(s16&, s16, s16, s16); - /* 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, BOOL); - /* 80151F54 */ void setRotAngle(); - /* 80151FE0 */ void clrRotAngle(); - - daNpcF_Lookat_c() { initialize(); } - virtual ~daNpcF_Lookat_c() {} - - cXyz* getAttnPos() { return mAttnPos_p; } - void setAttnPos(cXyz* i_attnPos) { mAttnPos_p = i_attnPos; } -}; - -class daNpcF_MoveBgActor_c : public daNpcF_c { -private: -public: - /* 80155B54 */ ~daNpcF_MoveBgActor_c() {} - /* 80155E88 */ virtual bool CreateHeap() { return true; } - /* 80155E90 */ virtual bool Create() { return true; } - /* 80155EA0 */ virtual bool Execute(Mtx**) { return true; } - /* 80155EA8 */ virtual bool Draw() { return true; } - /* 80155E98 */ virtual bool Delete() { return true; } - /* 80155EB0 */ virtual bool IsDelete() { return true; } - /* 80155EB8 */ virtual bool ToFore() { return true; } - /* 80155EC0 */ virtual bool ToBack() { return true; } -}; +f32 param_4, f32 param_5, f32 param_6, f32 param_7, int param_8); struct daNpcT_HIOParam { /* 0x00 */ f32 attention_offset; @@ -1451,40 +882,4 @@ void daNpcT_cmnGenMessage(JORMContext*, daNpcT_HIOParam* param_1); void daNpcT_cmnListenPropertyEvent(char*, int*, daNpcT_HIOParam*); -struct daNpcF_HIOParam { - /* 0x00 */ f32 attention_offset; - /* 0x04 */ f32 gravity; - /* 0x08 */ f32 scale; - /* 0x0C */ f32 real_shadow_size; - /* 0x10 */ f32 weight; - /* 0x14 */ f32 height; - /* 0x18 */ f32 knee_length; - /* 0x1C */ f32 width; - /* 0x20 */ f32 body_angleX_max; - /* 0x24 */ f32 body_angleX_min; - /* 0x28 */ f32 body_angleY_max; - /* 0x2C */ f32 body_angleY_min; - /* 0x30 */ f32 head_angleX_max; - /* 0x34 */ f32 head_angleX_min; - /* 0x38 */ f32 head_angleY_max; - /* 0x3C */ f32 head_angleY_min; - /* 0x40 */ f32 neck_rotation_ratio; - /* 0x44 */ f32 morf_frame; - /* 0x48 */ s16 talk_distance; - /* 0x4A */ s16 talk_angle; - /* 0x4C */ s16 attention_distance; - /* 0x4E */ s16 attention_angle; - /* 0x50 */ f32 fov; - /* 0x54 */ f32 search_distance; - /* 0x58 */ f32 search_height; - /* 0x5C */ f32 search_depth; - /* 0x60 */ s16 attention_time; - /* 0x62 */ s16 damage_time; - /* 0x64 */ s16 face_expression; - /* 0x66 */ s16 motion; - /* 0x68 */ s16 look_mode; - /* 0x6A */ u8 debug_mode_ON; - /* 0x6B */ u8 debug_info_ON; -}; - #endif /* D_A_D_A_NPC_H */ diff --git a/include/d/actor/d_a_npc2.h b/include/d/actor/d_a_npc2.h new file mode 100644 index 0000000000..e58a8c1b7b --- /dev/null +++ b/include/d/actor/d_a_npc2.h @@ -0,0 +1,184 @@ +#ifndef D_A_NPC2 +#define D_A_NPC2 + +#include "d/d_bg_s_movebg_actor.h" +#include "d/d_msg_flow.h" +#include "d/d_path.h" + +class daBaseNpc_acMngr_c { +public: + /* 8014D804 */ daBaseNpc_acMngr_c(); + /* 8014D81C */ void entry(fopAc_ac_c*); + /* 8014D838 */ fopAc_ac_c* getActor(); + /* 80150524 */ virtual ~daBaseNpc_acMngr_c() {} + +private: + /* 0x04 */ fpc_ProcID mActorId; +}; + +class daBaseNpc_matAnm_c : public J3DMaterialAnm { +public: + /* 80150444 */ virtual ~daBaseNpc_matAnm_c() {} + /* 8014D884 */ virtual void calc(J3DMaterial*) const; + + /* 0x0F4 */ mutable f32 field_0xF4; + /* 0x0F8 */ mutable f32 field_0xF8; + /* 0x0FC */ f32 mNowOffsetX; + /* 0x100 */ f32 mNowOffsetY; + /* 0x104 */ u8 mEyeMoveFlg; + /* 0x105 */ u8 mMorfFrm; +}; + +class daBaseNpc_path_c { +public: + /* 8014D998 */ daBaseNpc_path_c(); + /* 8014D9A8 */ BOOL isPath(); + /* 8014D9BC */ int setPathInfo(u8, s8, s8); + /* 8014DA48 */ void reverseDir(); + /* 8014DA64 */ s32 chkPnt(cXyz); + /* 8014DAC4 */ BOOL setNextPnt(); + /* 8014DB04 */ u16 getIdx(); + /* 8014DB0C */ void setIdx(u16); + /* 8014DB14 */ Vec getPntPos(u16); + void dbgDraw(f32); + /* 801503FC */ virtual ~daBaseNpc_path_c() {} + + static const int MAXNUMCONTROLPNT_e = 64; + +public: + /* 0x004 */ dPath* mPathInfo; + /* 0x008 */ f32 field_0x8; + /* 0x00C */ dPnt mCurvePnts[160]; + /* 0xA0C */ u8 field_0xa0c[0xA0E - 0xA0C]; + /* 0xA0E */ u16 mCurvePntNum; + /* 0xA10 */ u16 mIdx; + /* 0xA12 */ s8 mDirection; + /* 0xA13 */ u8 field_0xa13; + /* 0xA14 */ s16 field_0xa14; + /* 0xA16 */ u8 field_0xa16[2]; + /* 0xA18 */ int field_0xa18; + /* 0xA1C */ u8 field_0xa1c[8]; +}; + +class daBaseNpc_lookat_c { +public: + /* 8014DB40 */ void limitter(s16, s16*, s16, s16); + /* 8014DBB4 */ void calc(fopAc_ac_c*, f32 (*)[4], s16); + /* 8014E634 */ void setMaxJntLmt(csXyz, int); + /* 8014E658 */ void setMinJntLmt(csXyz, int); + /* 8014E67C */ void setJntPos(cXyz, int); + /* 8014E6A0 */ int setAttnPos(cXyz*); + /* 8014E6AC */ csXyz getRot(int); + /* 801502EC */ virtual ~daBaseNpc_lookat_c() {} + + /* 0x04 */ csXyz mMaxJntLmt[4]; + /* 0x1C */ csXyz mMinJntLmt[4]; + /* 0x34 */ cXyz mJntPos[4]; + /* 0x64 */ csXyz field_0x64[4]; + /* 0x7C */ csXyz mRot[4]; + /* 0x94 */ u8 field_0x94[4]; + /* 0x98 */ cXyz* mpAttnPos; +}; + +class daBaseNpc_c : public fopAc_ac_c { +public: + /* 8014E6C8 */ daBaseNpc_c(); + /* 8014EE44 */ J3DAnmTransform* getTrnsfrmKeyAnmP(char*, int); + /* 8014EE80 */ int setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int); + /* 8014EEE4 */ int setBckAnm(J3DAnmTransform*, f32, int, int, int, bool); + /* 8014EF28 */ J3DAnmTransform* getTexPtrnAnmP(char*, int); + /* 8014EF64 */ int setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int); + /* 8014EFF4 */ void orderEvent(int, char*); + /* 8014F0A0 */ void setEnvTevColor(); + /* 8014F0FC */ void setRoomNo(); + /* 8014F148 */ int checkEndAnm(f32); + /* 8014F1C8 */ int checkEndAnm(J3DFrameCtrl*); + + /* 8014E89C */ virtual ~daBaseNpc_c(); + /* 8014EAD0 */ virtual int execute(); + /* 8014EC50 */ virtual int draw(f32); + /* 8014EE3C */ virtual const char* getResName(); + /* 8014EFA4 */ virtual void attnSttsOn(int, int); + /* 8014EFF0 */ virtual void setParam(); + /* 8014F09C */ virtual void mainProc(); + /* 8014F140 */ virtual BOOL btkCtrl(); + /* 8014F228 */ virtual void allAnmPlay(); + /* 8014F38C */ virtual void adjustShapeAngle(); + /* 8014F390 */ virtual void setMtx(int); + /* 8014F4A0 */ virtual void setCollisions(); + /* 8014F4A4 */ virtual void setAttnPos(); + /* 8014F4A8 */ virtual void drawOtherMdls(); + /* 8014F4AC */ virtual bool dbgDraw(); + + static dCcD_SrcGObjInf const mCcDObj; + static dCcD_SrcCyl mCcDCyl; + static dCcD_SrcSph mCcDSph; + +public: + /* 0x56C */ dBgS_ObjAcch mAcch; + /* 0x744 */ char field_0x744; + /* 0x745 */ u8 field_0x745[0x74c - 0x745]; + /* 0x74C */ request_of_phase_process_class mPhase; + /* 0x754 */ mDoExt_McaMorfSO* mpModelMorf; + /* 0x758 */ Z2Creature mSound; + /* 0x7E8 */ u32 mShadowId; + /* 0x7EC */ mDoExt_bckAnm mBck; + /* 0x808 */ mDoExt_btpAnm mBtp; + /* 0x820 */ mDoExt_btkAnm mBtk; + /* 0x838 */ s16 field_0x838; + /* 0x83C */ u16* field_0x83c; + /* 0x840 */ u16 field_0x840; + /* 0x842 */ u16 field_0x842; + /* 0x844 */ u8 field_0x844; + /* 0x845 */ u8 field_0x845[0x848 - 0x845]; + /* 0x848 */ s32 field_0x848; + /* 0x84C */ dMsgFlow_c mMsgFlow; + /* 0x898 */ u8 field_0x898[0x89A - 0x898]; + /* 0x89A */ s16 mEvtIdx; + /* 0x89C */ dCcD_Stts mCcStts; + /* 0x8D8 */ dBgS_AcchCir mAcchCir; + /* 0x918 */ s16 field_0x918; + /* 0x91A */ csXyz field_0x91a; + /* 0x920 */ daBaseNpc_lookat_c mLookat; + /* 0x9BC */ csXyz field_0x9bc; + /* 0x9C2 */ csXyz field_0x9c2; + /* 0x9C8 */ csXyz field_0x9c8; + /* 0x9CE */ csXyz field_0x9ce; + /* 0x9D4 */ cBgS_GndChk field_0x9d4; + /* 0xA10 */ f32 mGroundY; +}; + +STATIC_ASSERT(sizeof(daBaseNpc_c) == 0xA14); + +class daBaseNpc_moveBgActor_c : public daBaseNpc_c { +public: + /* 8014F4B4 */ daBaseNpc_moveBgActor_c(); + /* 8014F518 */ int MoveBGCreateHeap(); + /* 8014F60C */ int MoveBGCreate(char const*, int, MoveBGActor_SetFunc, u32); + /* 8014F6FC */ int MoveBGDelete(); + /* 8014F770 */ int MoveBGExecute(); + int MoveBGDraw() { + int ret = Draw(); + return ret; + } + + /* 80155FB0 */ virtual ~daBaseNpc_moveBgActor_c() {} + /* 801503BC */ virtual int CreateHeap() { return 1; } + /* 801503C4 */ virtual int Create() { return 1; } + /* 801503D4 */ virtual int Execute(Mtx**) { return 1; } + /* 801503DC */ virtual int Draw() { return 1; } + /* 801503CC */ virtual int Delete() { return 1; } + /* 801503E4 */ virtual int IsDelete() { return 1; } + /* 801503EC */ virtual int ToFore() { return 1; } + /* 801503F4 */ virtual int ToBack() { return 1; } + + static const char* m_name; + static int m_dzb_id; + static MoveBGActor_SetFunc m_set_func; + +public: + /* 0xA14 */ dBgW* mpBgw; + /* 0xA18 */ Mtx mBgMtx; +}; + +#endif /* D_A_NPC2 */ diff --git a/include/d/actor/d_a_npc4.h b/include/d/actor/d_a_npc4.h new file mode 100644 index 0000000000..69f38f4a7c --- /dev/null +++ b/include/d/actor/d_a_npc4.h @@ -0,0 +1,459 @@ +#ifndef D_A_NPC4 +#define D_A_NPC4 + +#include "d/actor/d_a_player.h" +#include "d/d_msg_flow.h" +#include "d/d_bg_s_gnd_chk.h" +#include "d/d_bg_s_lin_chk.h" +#include "d/d_path.h" +#include "f_op/f_op_actor.h" +#include "f_pc/f_pc_base.h" +#include "m_Do/m_Do_ext.h" + +class daNpcF_ActorMngr_c { +private: + /* 0x0 */ fpc_ProcID 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(); + + fpc_ProcID getPId() { return mActorID; } + + /* 80155E40 */ virtual ~daNpcF_ActorMngr_c() {} +}; + +BOOL daNpcF_chkEvtBit(u32 i_idx); +void daNpcF_onEvtBit(u32 i_idx); +BOOL daNpcF_chkTmpBit(u32 i_idx); +void daNpcF_onTmpBit(u32 i_idx); +void daNpcF_offTmpBit(u32 i_idx); +u8 daNpcF_getDistTableIdx(int param_0, int param_1); +#if DEBUG +class daNpcF_HIOParam; +void daNpcF_commonListenPropertyEvent(char*, int*, daNpcF_HIOParam*); +void daNpcF_commonGenMessage(JORMContext*, daNpcF_HIOParam*); +#endif +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); +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); +BOOL daNpcF_chkDoBtnEqSpeak(fopAc_ac_c* i_actor_p); + +class daNpcF_c : public fopAc_ac_c { +protected: + /* 0x568 */ mDoExt_McaMorfSO* mAnm_p; + /* 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 mStaffID; + /* 0x930 */ int mCutType; + /* 0x934 */ int mAttnIdx; + /* 0x938 */ int mAttnChangeTimer; + /* 0x93C */ int mAttnActorTimer[5]; + /* 0x950 */ int mMsgTimer; + /* 0x954 */ int mDamageTimer; + /* 0x958 */ int mTotalDamageTimer; + /* 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 */ s16 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 */ bool mIsDamaged; + /* 0x9F1 */ u8 field_0x9f1; + /* 0x9F2 */ bool mHide; + /* 0x9F3 */ u8 field_0x9f3; + /* 0x9F4 */ u8 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; + int 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, + }; + + daNpcF_c() { + FORCE_DONT_INLINE; + initialize(); + } + /* 80152014 */ BOOL execute(); + /* 801522AC */ int 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 */ BOOL hitChk2(dCcD_Cyl*, BOOL, BOOL); + /* 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() { return TRUE; } + /* 80155BD8 */ virtual BOOL ctrlBtk() { return FALSE; } + /* 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) { return true; } + /* 80155EC8 */ virtual bool setExpressionBtp(int i_idx) { return true; } + /* 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() { return TRUE; } + /* 80155BCC */ virtual void drawOtherMdls() {} + + BOOL chkActorInSpeakArea(fopAc_ac_c* i_actorCheck, fopAc_ac_c* i_actorArea) { + return chkActorInAttnArea(i_actorCheck, i_actorArea, attention_info.distances[fopAc_attn_SPEAK_e]); + } + 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.distances[fopAc_attn_TALK_e]); + } + 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 setCutType(int i_cutType) { mCutType = i_cutType; } + void onInterrupt(u8 param_0) { field_0x9ef = param_0; } + void onHide() { mHide = true; } + void offHide() { mHide = false; } + + static dCcD_SrcGObjInf const mCcDObjInfo; + static dCcD_SrcCyl mCcDCyl; + static dCcD_SrcSph mCcDSph; + static fopAc_ac_c* mFindActorPList[100]; + static s32 mFindCount; + static s16 mSrchActorName; + static char mFileNameBuf[0x15]; +}; + +STATIC_ASSERT(sizeof(daNpcF_c) == 0xB48); + +class daNpcF_MatAnm_c : public J3DMaterialAnm { +private: + /* 0x0F4 */ mutable f32 field_0xF4; + /* 0x0F8 */ mutable f32 field_0xF8; + /* 0x0FC */ f32 mNowOffsetX; + /* 0x100 */ f32 mNowOffsetY; + /* 0x104 */ u8 mEyeMoveFlag; + /* 0x105 */ u8 mMorfFrm; + +public: + daNpcF_MatAnm_c() { initialize(); } + /* 80150738 */ void initialize(); + /* 8015075C */ void calc(J3DMaterial*) const; + /* 80155ED0 */ ~daNpcF_MatAnm_c() {} + void setNowOffsetX(float i_nowOffsetX) { mNowOffsetX = i_nowOffsetX; } + void setNowOffsetY(float i_nowOffsetY) { mNowOffsetY = i_nowOffsetY; } + void onEyeMoveFlag() { mEyeMoveFlag = 1; } + void offEyeMoveFlag() { mEyeMoveFlag = 0; } +}; + +class daNpcF_SPCurve_c { +private: + /* 0x00 */ u16 mNurbs; + /* 0x02 */ u16 field_0x02; + /* 0x04 */ u8 mIsReversed; + /* 0x05 */ u8 mIsClosed; + /* 0x08 */ dPnt mPoints[96]; + +public: + /* 80150870 */ void initialize(dPath*, int); + + daNpcF_SPCurve_c() { + initialize(NULL, 0); + } + + virtual ~daNpcF_SPCurve_c() {} +}; // Size: 0x60C + +class daNpcF_Path_c { +protected: + /* 0x00 */ u16 mIdx; + /* 0x02 */ u8 mIsReversed; + /* 0x03 */ u8 mIsClosed; + /* 0x04 */ dPath* mPathInfo; + /* 0x08 */ f32 mRange; + /* 0x0C */ f32 mPosDst; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ cXyz mPosition; + /* 0x20 */ daNpcF_SPCurve_c mSPCurve; + +public: + /* 80150900 */ void initialize(); + /* 8015095C */ int setPathInfo(u8, s8, u8); + /* 80150A24 */ BOOL chkPassed(cXyz); + /* 80150A7C */ BOOL chkPassedDst(cXyz); + /* 80150BBC */ void reverse(); + /* 80150BE0 */ BOOL setNextIdx(); + /* 80150C18 */ int getNextIdx(); + /* 80150C60 */ int getBeforeIdx(); + /* 80150CA8 */ BOOL getBeforePos(cXyz&); + /* 80150D44 */ BOOL getNextPos(cXyz&); + /* 80150DE0 */ BOOL getDstPos(cXyz, cXyz&); + /* 80150EB4 */ void setNextIdxDst(cXyz); + + daNpcF_Path_c() { + initialize(); + } + + virtual ~daNpcF_Path_c() {} + + int getIdx() { return mIdx; }; + void setIdx(int i_idx) { mIdx = i_idx; } + int getArg0() { return mPathInfo->m_points[mIdx].mArg0; } + u8 getArg0(int i_idx) { return mPathInfo->m_points[i_idx].mArg0; } + Vec getPntPos(int i_idx) { return mPathInfo->m_points[i_idx].m_position; } + BOOL chkClose() { return dPath_ChkClose(mPathInfo); } + BOOL chkReverse() { return mIsReversed == true; } + void onReverse() { mIsReversed = true; } + void offReverse() { mIsReversed = false; } + dPath* getPathInfo() { return mPathInfo; } + void setRange(f32 i_range) { mRange = i_range; } + int getNumPnts() { return mPathInfo->m_num; } +#if DEBUG + void drawDbgInfoXyz(); +#endif +}; // Size: 0x630 + +class daNpcF_Lookat_c { +private: + /* 0x00 */ cXyz mJointPos[4]; + /* 0x30 */ cXyz* mAttnPos_p; + /* 0x34 */ csXyz mAngularMoveDis[4]; + /* 0x4C */ csXyz mMinAngle[4]; + /* 0x64 */ csXyz mMaxAngle[4]; + /* 0x7C */ csXyz mRotAngle[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*, Mtx, csXyz**, BOOL, int, BOOL); + /* 801515D4 */ void adjustMoveDisAngle(s16&, s16, s16, s16); + /* 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, BOOL); + /* 80151F54 */ void setRotAngle(); + /* 80151FE0 */ void clrRotAngle(); + + daNpcF_Lookat_c() { initialize(); } + virtual ~daNpcF_Lookat_c() {} + + cXyz* getAttnPos() { return mAttnPos_p; } + void setAttnPos(cXyz* i_attnPos) { mAttnPos_p = i_attnPos; } +}; + +class daNpcF_MoveBgActor_c : public daNpcF_c { +private: +public: + /* 80155B54 */ ~daNpcF_MoveBgActor_c() {} + /* 80155E88 */ virtual bool CreateHeap() { return true; } + /* 80155E90 */ virtual bool Create() { return true; } + /* 80155EA0 */ virtual bool Execute(Mtx**) { return true; } + /* 80155EA8 */ virtual bool Draw() { return true; } + /* 80155E98 */ virtual bool Delete() { return true; } + /* 80155EB0 */ virtual bool IsDelete() { return true; } + /* 80155EB8 */ virtual bool ToFore() { return true; } + /* 80155EC0 */ virtual bool ToBack() { return true; } +}; + +struct daNpcF_HIOParam { + /* 0x00 */ f32 attention_offset; + /* 0x04 */ f32 gravity; + /* 0x08 */ f32 scale; + /* 0x0C */ f32 real_shadow_size; + /* 0x10 */ f32 weight; + /* 0x14 */ f32 height; + /* 0x18 */ f32 knee_length; + /* 0x1C */ f32 width; + /* 0x20 */ f32 body_angleX_max; + /* 0x24 */ f32 body_angleX_min; + /* 0x28 */ f32 body_angleY_max; + /* 0x2C */ f32 body_angleY_min; + /* 0x30 */ f32 head_angleX_max; + /* 0x34 */ f32 head_angleX_min; + /* 0x38 */ f32 head_angleY_max; + /* 0x3C */ f32 head_angleY_min; + /* 0x40 */ f32 neck_rotation_ratio; + /* 0x44 */ f32 morf_frame; + /* 0x48 */ s16 talk_distance; + /* 0x4A */ s16 talk_angle; + /* 0x4C */ s16 attention_distance; + /* 0x4E */ s16 attention_angle; + /* 0x50 */ f32 fov; + /* 0x54 */ f32 search_distance; + /* 0x58 */ f32 search_height; + /* 0x5C */ f32 search_depth; + /* 0x60 */ s16 attention_time; + /* 0x62 */ s16 damage_time; + /* 0x64 */ s16 face_expression; + /* 0x66 */ s16 motion; + /* 0x68 */ s16 look_mode; + /* 0x6A */ u8 debug_mode_ON; + /* 0x6B */ u8 debug_info_ON; +}; + +#endif /* D_A_NPC4 */ diff --git a/include/d/actor/d_a_npc_ash.h b/include/d/actor/d_a_npc_ash.h index d8a892c36a..48313e79bf 100644 --- a/include/d/actor/d_a_npc_ash.h +++ b/include/d/actor/d_a_npc_ash.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_ASH_H #define D_A_NPC_ASH_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" struct daNpcAsh_HIOParam { /* 0x00 */ daNpcF_HIOParam common; diff --git a/include/d/actor/d_a_npc_ashB.h b/include/d/actor/d_a_npc_ashB.h index 490f11a2e2..0b442c0500 100644 --- a/include/d/actor/d_a_npc_ashB.h +++ b/include/d/actor/d_a_npc_ashB.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_ASHB_H #define D_A_NPC_ASHB_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" struct daNpcAshB_HIOParam { /* 0x00 */ daNpcF_HIOParam common; diff --git a/include/d/actor/d_a_npc_blue_ns.h b/include/d/actor/d_a_npc_blue_ns.h index b6735b3fa4..ed2cfb12cc 100644 --- a/include/d/actor/d_a_npc_blue_ns.h +++ b/include/d/actor/d_a_npc_blue_ns.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_BLUE_NS_H #define D_A_NPC_BLUE_NS_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" #include "d/actor/d_a_tag_yami.h" #include "d/actor/d_a_obj_carry.h" diff --git a/include/d/actor/d_a_npc_bouS.h b/include/d/actor/d_a_npc_bouS.h index eba7f50f59..c530c6fac1 100644 --- a/include/d/actor/d_a_npc_bouS.h +++ b/include/d/actor/d_a_npc_bouS.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_BOUS_H #define D_A_NPC_BOUS_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_chat.h b/include/d/actor/d_a_npc_chat.h index 39347c4849..81e8b7b381 100644 --- a/include/d/actor/d_a_npc_chat.h +++ b/include/d/actor/d_a_npc_chat.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_CHAT_H #define D_A_NPC_CHAT_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_chin.h b/include/d/actor/d_a_npc_chin.h index 175ccaddbe..b3679d080b 100644 --- a/include/d/actor/d_a_npc_chin.h +++ b/include/d/actor/d_a_npc_chin.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_CHIN_H #define D_A_NPC_CHIN_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" #include "d/actor/d_a_obj_glowSphere.h" struct daNpcChin_HIOParam { diff --git a/include/d/actor/d_a_npc_doorboy.h b/include/d/actor/d_a_npc_doorboy.h index a7173ea6da..834c521f69 100644 --- a/include/d/actor/d_a_npc_doorboy.h +++ b/include/d/actor/d_a_npc_doorboy.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_DOORBOY_H #define D_A_NPC_DOORBOY_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" #include "d/d_msg_object.h" /** diff --git a/include/d/actor/d_a_npc_drainSol.h b/include/d/actor/d_a_npc_drainSol.h index fa7559c664..6aa677f4f4 100644 --- a/include/d/actor/d_a_npc_drainSol.h +++ b/include/d/actor/d_a_npc_drainSol.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_DRAINSOL_H #define D_A_NPC_DRAINSOL_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_gra.h b/include/d/actor/d_a_npc_gra.h index 82c86509d4..a2acb2a692 100644 --- a/include/d/actor/d_a_npc_gra.h +++ b/include/d/actor/d_a_npc_gra.h @@ -1,7 +1,8 @@ #ifndef D_A_NPC_GRA_H #define D_A_NPC_GRA_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" +#include "d/d_particle_copoly.h" class daNpc_grA_HIOParam { diff --git a/include/d/actor/d_a_npc_grc.h b/include/d/actor/d_a_npc_grc.h index c49f8833fd..08ff6fedac 100644 --- a/include/d/actor/d_a_npc_grc.h +++ b/include/d/actor/d_a_npc_grc.h @@ -1,7 +1,8 @@ #ifndef D_A_NPC_GRC_H #define D_A_NPC_GRC_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" +#include "d/d_particle_copoly.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_grd.h b/include/d/actor/d_a_npc_grd.h index bb2c4d131d..055978b267 100644 --- a/include/d/actor/d_a_npc_grd.h +++ b/include/d/actor/d_a_npc_grd.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_GRD_H #define D_A_NPC_GRD_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" struct daNpc_Grd_HIOParam { /* 0x00 */ daNpcF_HIOParam common; diff --git a/include/d/actor/d_a_npc_gro.h b/include/d/actor/d_a_npc_gro.h index 1671e048e4..bf4f21a06d 100644 --- a/include/d/actor/d_a_npc_gro.h +++ b/include/d/actor/d_a_npc_gro.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_GRO_H #define D_A_NPC_GRO_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_grr.h b/include/d/actor/d_a_npc_grr.h index cd2854db1e..211f29a2b6 100644 --- a/include/d/actor/d_a_npc_grr.h +++ b/include/d/actor/d_a_npc_grr.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_GRR_H #define D_A_NPC_GRR_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_grs.h b/include/d/actor/d_a_npc_grs.h index ff5e00a509..d7729b036a 100644 --- a/include/d/actor/d_a_npc_grs.h +++ b/include/d/actor/d_a_npc_grs.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_GRS_H #define D_A_NPC_GRS_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" struct daNpc_grS_HIOParam { /* 0x000 */ daNpcF_HIOParam common; diff --git a/include/d/actor/d_a_npc_grz.h b/include/d/actor/d_a_npc_grz.h index 4e6df3d782..5b6b0f42d2 100644 --- a/include/d/actor/d_a_npc_grz.h +++ b/include/d/actor/d_a_npc_grz.h @@ -1,7 +1,8 @@ #ifndef D_A_NPC_GRZ_H #define D_A_NPC_GRZ_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" +#include "d/d_particle_copoly.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_gwolf.h b/include/d/actor/d_a_npc_gwolf.h index 7b3aa0a2e2..b140bbe56b 100644 --- a/include/d/actor/d_a_npc_gwolf.h +++ b/include/d/actor/d_a_npc_gwolf.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_GWOLF_H #define D_A_NPC_GWOLF_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_impal.h b/include/d/actor/d_a_npc_impal.h index 9745e2c74d..3b0b640567 100644 --- a/include/d/actor/d_a_npc_impal.h +++ b/include/d/actor/d_a_npc_impal.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_IMPAL_H #define D_A_NPC_IMPAL_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" struct daNpcImpal_HIOParam { /* 0x00 */ daNpcF_HIOParam common; diff --git a/include/d/actor/d_a_npc_ins.h b/include/d/actor/d_a_npc_ins.h index 601488a52b..85d316bfb7 100644 --- a/include/d/actor/d_a_npc_ins.h +++ b/include/d/actor/d_a_npc_ins.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_INS_H #define D_A_NPC_INS_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_kasi_hana.h b/include/d/actor/d_a_npc_kasi_hana.h index b31f1d57bd..64b55ea95a 100644 --- a/include/d/actor/d_a_npc_kasi_hana.h +++ b/include/d/actor/d_a_npc_kasi_hana.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_KASI_HANA_H #define D_A_NPC_KASI_HANA_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" #include "d/actor/d_a_tag_escape.h" /** diff --git a/include/d/actor/d_a_npc_kasi_kyu.h b/include/d/actor/d_a_npc_kasi_kyu.h index 310304fce1..b4ad3f5859 100644 --- a/include/d/actor/d_a_npc_kasi_kyu.h +++ b/include/d/actor/d_a_npc_kasi_kyu.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_KASI_KYU_H #define D_A_NPC_KASI_KYU_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" #include "d/actor/d_a_tag_escape.h" /** diff --git a/include/d/actor/d_a_npc_kasi_mich.h b/include/d/actor/d_a_npc_kasi_mich.h index 4db9aa41cf..00c84422f0 100644 --- a/include/d/actor/d_a_npc_kasi_mich.h +++ b/include/d/actor/d_a_npc_kasi_mich.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_KASI_MICH_H #define D_A_NPC_KASI_MICH_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" #include "d/actor/d_a_tag_escape.h" /** diff --git a/include/d/actor/d_a_npc_moir.h b/include/d/actor/d_a_npc_moir.h index 97fd762500..d3a10e6447 100644 --- a/include/d/actor/d_a_npc_moir.h +++ b/include/d/actor/d_a_npc_moir.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_MOIR_H #define D_A_NPC_MOIR_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_myna2.h b/include/d/actor/d_a_npc_myna2.h index 2c47c65aa6..837689eec1 100644 --- a/include/d/actor/d_a_npc_myna2.h +++ b/include/d/actor/d_a_npc_myna2.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_MYNA2_H #define D_A_NPC_MYNA2_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_prayer.h b/include/d/actor/d_a_npc_prayer.h index d5b145d288..d11c6d2149 100644 --- a/include/d/actor/d_a_npc_prayer.h +++ b/include/d/actor/d_a_npc_prayer.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_PRAYER_H #define D_A_NPC_PRAYER_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_rafrel.h b/include/d/actor/d_a_npc_rafrel.h index 8ca054d23c..4b39fa974d 100644 --- a/include/d/actor/d_a_npc_rafrel.h +++ b/include/d/actor/d_a_npc_rafrel.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_RAFREL_H #define D_A_NPC_RAFREL_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_shad.h b/include/d/actor/d_a_npc_shad.h index 17852f4d62..69678e06a5 100644 --- a/include/d/actor/d_a_npc_shad.h +++ b/include/d/actor/d_a_npc_shad.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_SHAD_H #define D_A_NPC_SHAD_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" struct daNpcShad_HIOParam { /* 0x00 */ daNpcF_HIOParam common; diff --git a/include/d/actor/d_a_npc_shoe.h b/include/d/actor/d_a_npc_shoe.h index 0f5e0f7a0b..d45e81bf13 100644 --- a/include/d/actor/d_a_npc_shoe.h +++ b/include/d/actor/d_a_npc_shoe.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_SHOE_H #define D_A_NPC_SHOE_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" struct daNpcShoe_HIOParam { /* 0x00 */ daNpcF_HIOParam common; diff --git a/include/d/actor/d_a_npc_soldierA.h b/include/d/actor/d_a_npc_soldierA.h index d129fe0000..4245ea6983 100644 --- a/include/d/actor/d_a_npc_soldierA.h +++ b/include/d/actor/d_a_npc_soldierA.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_SOLDIERA_H #define D_A_NPC_SOLDIERA_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_soldierB.h b/include/d/actor/d_a_npc_soldierB.h index ff6c69e252..dd01e6100c 100644 --- a/include/d/actor/d_a_npc_soldierB.h +++ b/include/d/actor/d_a_npc_soldierB.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_SOLDIERB_H #define D_A_NPC_SOLDIERB_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" struct daNpc_SoldierB_HIOParam { /* 0x00 */ daNpcF_HIOParam common; diff --git a/include/d/actor/d_a_npc_the.h b/include/d/actor/d_a_npc_the.h index 56aaf8d515..dbd999922c 100644 --- a/include/d/actor/d_a_npc_the.h +++ b/include/d/actor/d_a_npc_the.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_THE_H #define D_A_NPC_THE_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" struct daNpcThe_HIOParam { /* 0x00 */ daNpcF_HIOParam common; diff --git a/include/d/actor/d_a_npc_theB.h b/include/d/actor/d_a_npc_theB.h index 959765ec6c..8611823849 100644 --- a/include/d/actor/d_a_npc_theB.h +++ b/include/d/actor/d_a_npc_theB.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_THEB_H #define D_A_NPC_THEB_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_tk.h b/include/d/actor/d_a_npc_tk.h index de5a8d3708..c3faacb836 100644 --- a/include/d/actor/d_a_npc_tk.h +++ b/include/d/actor/d_a_npc_tk.h @@ -80,11 +80,11 @@ public: /* 80B0BBC8 */ int CreateHeap(); /* 80B0BD24 */ int create(); - void setBump() { mFlags |= 4; } - void setEventWolf() { mFlags |= 0x80; } - void setEvent() { mFlags |= 0x8; } - void setAway() { mFlags |= 2; } - void setAttack() { mFlags |= 1; } + void setBump() { mFlags |= (u16)4; } + void setEventWolf() { mFlags |= (u16)0x80; } + void setEvent() { mFlags |= (u16)0x8; } + void setAway() { mFlags |= (u16)2; } + void setAttack() { mFlags |= (u16)1; } void setHawkPath(u8 i_pathNo) { if (i_pathNo != 0xFF) { @@ -93,13 +93,13 @@ public: } BOOL isAttackLink() { return field_0x71a != 0; } - void setAttackLink() { mFlags |= 0x10; } - void setBackHanjo() { mFlags |= 0x20; } - void setHanjoHand() { mFlags |= 0x40; } - void setQuickHanjoHand() { mFlags |= 0x200; } + void setAttackLink() { mFlags |= (u16)0x10; } + void setBackHanjo() { mFlags |= (u16)0x20; } + void setHanjoHand() { mFlags |= (u16)0x40; } + void setQuickHanjoHand() { mFlags |= (u16)0x200; } BOOL isHanjoHand() { return mIsHanjoHand != 0; } - void setResistanceDemo() { mFlags |= 0x100; } + void setResistanceDemo() { mFlags |= (u16)0x100; } /* 0x568 */ request_of_phase_process_class mPhase; /* 0x570 */ mDoExt_McaMorfSO* mpMorf; diff --git a/include/d/actor/d_a_npc_tkc.h b/include/d/actor/d_a_npc_tkc.h index 1d4d4d79d3..2a5762a950 100644 --- a/include/d/actor/d_a_npc_tkc.h +++ b/include/d/actor/d_a_npc_tkc.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_TKC_H #define D_A_NPC_TKC_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_tks.h b/include/d/actor/d_a_npc_tks.h index 4c99e1b9ee..c7677ed86b 100644 --- a/include/d/actor/d_a_npc_tks.h +++ b/include/d/actor/d_a_npc_tks.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_TKS_H #define D_A_NPC_TKS_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_wrestler.h b/include/d/actor/d_a_npc_wrestler.h index a5e867545c..c8e9d5fb99 100644 --- a/include/d/actor/d_a_npc_wrestler.h +++ b/include/d/actor/d_a_npc_wrestler.h @@ -2,6 +2,7 @@ #define D_A_NPC_WRESTLER_H #include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_zra.h b/include/d/actor/d_a_npc_zra.h index d788856671..898754a558 100644 --- a/include/d/actor/d_a_npc_zra.h +++ b/include/d/actor/d_a_npc_zra.h @@ -1,7 +1,8 @@ #ifndef D_A_NPC_ZRA_H #define D_A_NPC_ZRA_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" +#include "d/d_particle_copoly.h" class daNpc_zrA_HIO_c; /** diff --git a/include/d/actor/d_a_npc_zrc.h b/include/d/actor/d_a_npc_zrc.h index a7d8811b28..ae5f6a2c33 100644 --- a/include/d/actor/d_a_npc_zrc.h +++ b/include/d/actor/d_a_npc_zrc.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_ZRC_H #define D_A_NPC_ZRC_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" /** * @ingroup actors-npcs diff --git a/include/d/actor/d_a_npc_zrz.h b/include/d/actor/d_a_npc_zrz.h index 18ffbe28d6..f78c86dbf0 100644 --- a/include/d/actor/d_a_npc_zrz.h +++ b/include/d/actor/d_a_npc_zrz.h @@ -1,7 +1,7 @@ #ifndef D_A_NPC_ZRZ_H #define D_A_NPC_ZRZ_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" class daGraveStone_c; class daObjZraRock_c; diff --git a/include/d/actor/d_a_obj_gra2.h b/include/d/actor/d_a_obj_gra2.h index c437cf198c..57c02149b9 100644 --- a/include/d/actor/d_a_obj_gra2.h +++ b/include/d/actor/d_a_obj_gra2.h @@ -1,7 +1,8 @@ #ifndef D_A_OBJ_GRA2_H #define D_A_OBJ_GRA2_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc2.h" +#include "d/d_particle_copoly.h" #include "f_op/f_op_actor_mng.h" diff --git a/include/d/actor/d_a_obj_tks.h b/include/d/actor/d_a_obj_tks.h index 7d6973c832..b4e6ebfaf4 100644 --- a/include/d/actor/d_a_obj_tks.h +++ b/include/d/actor/d_a_obj_tks.h @@ -2,7 +2,7 @@ #define D_A_OBJ_TKS_H #include "f_op/f_op_actor_mng.h" -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" struct daObjTks_HIOParam { /* 0x00 */ daNpcF_HIOParam common; diff --git a/include/d/actor/d_a_obj_zraMark.h b/include/d/actor/d_a_obj_zraMark.h index a23117ea3b..23262b0949 100644 --- a/include/d/actor/d_a_obj_zraMark.h +++ b/include/d/actor/d_a_obj_zraMark.h @@ -3,6 +3,7 @@ #include "JSystem/J3DGraphBase/J3DMaterial.h" #include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" #include "d/d_cc_d.h" #include "f_op/f_op_actor_mng.h" diff --git a/include/d/actor/d_a_startAndGoal.h b/include/d/actor/d_a_startAndGoal.h index f4984dae11..8c0b895acb 100644 --- a/include/d/actor/d_a_startAndGoal.h +++ b/include/d/actor/d_a_startAndGoal.h @@ -1,7 +1,7 @@ #ifndef D_A_STARTANDGOAL_H #define D_A_STARTANDGOAL_H -#include "d/actor/d_a_npc.h" +#include "d/actor/d_a_npc4.h" class daStartAndGoal_Path_c : public daNpcF_Path_c { public: diff --git a/include/d/d_bg_s.h b/include/d/d_bg_s.h index a925ee2720..f8cb52660d 100644 --- a/include/d/d_bg_s.h +++ b/include/d/d_bg_s.h @@ -118,7 +118,7 @@ public: s32 GetRoomPathPntNo(cBgS_PolyInfo const&); int GetGrpSoundId(cBgS_PolyInfo const&); u32 ChkGrpInf(cBgS_PolyInfo const&, u32); - s32 GetRoomId(cBgS_PolyInfo const&); + int GetRoomId(cBgS_PolyInfo const&); bool GetPolyAttackThrough(cBgS_PolyInfo const&); u32 ChkPolyHSStick(cBgS_PolyInfo const&); void WallCorrect(dBgS_Acch*); diff --git a/include/d/d_cc_d.h b/include/d/d_cc_d.h index 9d13c848b0..590f299728 100644 --- a/include/d/d_cc_d.h +++ b/include/d/d_cc_d.h @@ -241,7 +241,7 @@ public: void ClrTg() { mTg = 0; } void SetAtApid(fpc_ProcID id) { mAtApid = id; } void SetTgApid(fpc_ProcID id) { mTgApid = id; } - u8 GetRoomId() { return mRoomId; } + int GetRoomId() { return mRoomId; } void SetRoomId(int id) { mRoomId = id; } fpc_ProcID GetAtOldApid() { return mAtOldApid; } fpc_ProcID GetTgOldApid() { return mTgOldApid; } diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index a75897c346..bc3aa12e7c 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -169,8 +169,7 @@ public: J3DAnmTransform* getBckAnm() { return mAnm; } void removeJoint(J3DModelData* i_modelData, u16 i_idx) { - J3DJoint* mpJnt = i_modelData->getJointNodePointer(i_idx); - mpJnt->setMtxCalc(0); + i_modelData->getJointNodePointer(i_idx)->setMtxCalc(0); } private: diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index a2229295a6..d6b2fef63e 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -40,7 +40,7 @@ inline void mDoMtx_multVec(CMtxP m, const Vec* src, Vec* dst) { PSMTXMultVec(m, src, dst); } -inline void mDoMtx_multVecArray(Mtx m, const Vec* src, Vec* dst, u32 count) { +inline void mDoMtx_multVecArray(const Mtx m, const Vec* src, Vec* dst, u32 count) { MTXMultVecArray(m, src, dst, count); } @@ -96,7 +96,7 @@ inline void cMtx_copy(const Mtx src, Mtx dst) { mDoMtx_copy(src, dst); } -inline void cMtx_multVecArray(Mtx mtx, const Vec* src, Vec* dst, u32 count) { +inline void cMtx_multVecArray(const Mtx mtx, const Vec* src, Vec* dst, u32 count) { mDoMtx_multVecArray(mtx, src, dst, count); } |
