diff --git a/include/d/actor/d_a_npc_shoe.h b/include/d/actor/d_a_npc_shoe.h index 0c23a3a2542..4c78e3f3031 100644 --- a/include/d/actor/d_a_npc_shoe.h +++ b/include/d/actor/d_a_npc_shoe.h @@ -11,47 +11,147 @@ * @details * */ -class daNpcShoe_c : public fopAc_ac_c { +class daNpcShoe_c : public daNpcF_c { public: + typedef bool (daNpcShoe_c::*actionFunc)(void*); + typedef BOOL (daNpcShoe_c::*EventFn)(int); + + enum Animation { + /* 0x01 */ ANM_M_SITWAIT_A, + /* 0x02 */ ANM_M_SITTALK_A, + /* 0x03 */ ANM_M_SITTALK_A_B, + /* 0x04 */ ANM_SHOE_TALK_A, + /* 0x05 */ ANM_M_SIT_TO_WOLF_A + }; + + enum Motion { + /* 0x01 */ MOT_SITWAIT_A, + /* 0x02 */ MOT_SITTALK_A, + /* 0x03 */ MOT_SITTALK_A_B, + /* 0x04 */ MOT_SHOE_TALK_A, + /* 0x05 */ MOT_SIT_TO_WOLF_A, + }; + /* 80AE794C */ daNpcShoe_c(); /* 80AE7B60 */ ~daNpcShoe_c(); - /* 80AE7D48 */ void Create(); - /* 80AE7FD8 */ void CreateHeap(); - /* 80AE81E8 */ void Delete(); - /* 80AE821C */ void Execute(); - /* 80AE8308 */ void Draw(); - /* 80AE840C */ void ctrlJoint(J3DJoint*, J3DModel*); - /* 80AE8598 */ void createHeapCallBack(fopAc_ac_c*); - /* 80AE85B8 */ void ctrlJointCallBack(J3DJoint*, int); - /* 80AE8604 */ void setMotion(int, f32, int); + /* 80AE7D48 */ cPhs__Step Create(); + /* 80AE7FD8 */ BOOL CreateHeap(); + /* 80AE81E8 */ int Delete(); + /* 80AE821C */ int Execute(); + /* 80AE8308 */ int Draw(); + /* 80AE840C */ bool ctrlJoint(J3DJoint*, J3DModel*); + /* 80AE8598 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80AE85B8 */ static BOOL ctrlJointCallBack(J3DJoint*, int); + /* 80AE8604 */ void setMotion(int, f32, BOOL); /* 80AE864C */ void reset(); - /* 80AE895C */ void setAction(bool (daNpcShoe_c::*)(void*)); - /* 80AE8A04 */ void wait(void*); - /* 80AE8E24 */ void fear(void*); - /* 80AE8ED4 */ void talk(void*); - /* 80AE9094 */ void demo(void*); + /* 80AE895C */ inline int setAction(actionFunc); + /* 80AE8A04 */ bool wait(void*); + /* 80AE8E24 */ bool fear(void*); + /* 80AE8ED4 */ bool talk(void*); + /* 80AE9094 */ bool demo(void*); /* 80AE92E8 */ void setParam(); - /* 80AE93A0 */ void main(); + /* 80AE93A0 */ BOOL main(); /* 80AE9624 */ void setAttnPos(); /* 80AE9820 */ void lookat(); /* 80AE9A00 */ bool setMotionAnm(int, f32); - /* 80AE9AD0 */ bool drawDbgInfo(); + /* 80AE9AD0 */ BOOL drawDbgInfo(); /* 80AEA340 */ void adjustShapeAngle(); - static u8 mEvtSeqList[12]; + s16 getMessageNo() { return fopAcM_GetParam(this) >> 0x10; } + int getTime() { return getTimeMinute() + getTimeHour() * 60; } + int getTimeHour() { + if (dKy_darkworld_check() != 0) { + return dKy_getDarktime_hour(); + } else { + return dKy_getdaytime_hour(); + } + } + int getTimeMinute() { + if (dKy_darkworld_check() != 0) { + return dKy_getDarktime_minute(); + } else { + return dKy_getdaytime_minute(); + } + } + + int getStartTime() { return fopAcM_GetParam(this) & 0xff; } + int getEndTime() { return (fopAcM_GetParam(this) >> 8) & 0xff; } + + inline void setLookMode(int i_lookMode); + inline bool chkFindPlayer(); + inline void playMotion(); + + static EventFn mEvtSeqList[1]; + private: - /* 0x568 */ u8 field_0x568[0xe1c - 0x568]; + /* 0xB48 */ J3DModel* mpModel1; + /* 0xB4C */ J3DModel* mpModel2; + /* 0xB50 */ Z2CreatureCitizen mCreature; + /* 0xBF4 */ u8 field_0xbf4[0xbf8 - 0xbf4]; + /* 0xBF8 */ daNpcF_Lookat_c mLookat; + /* 0xC94 */ daNpcF_ActorMngr_c mActorMngr[1]; + /* 0xC9C */ u8 field_0xc9c[0xca0 - 0xc9c]; + /* 0xCA0 */ dCcD_Cyl mCcCyl; + /* 0xDDC */ actionFunc mpActionFn; + /* 0xDE8 */ request_of_phase_process_class mPhases[3]; + /* 0xE00 */ u32 field_0xe00; + /* 0xE04 */ u32 field_0xe04; + /* 0xE08 */ u32 field_0xe08; + /* 0xE0C */ u32 field_0xe0c; + /* 0xE10 */ s16 mLookMode; + /* 0xE12 */ u16 mStartTime; + /* 0xE14 */ u16 mEndTime; + /* 0xE16 */ u16 field_0xe16; + /* 0xE18 */ u16 mMode; + /* 0xE1A */ u8 field_0xe1a; + /* 0xE1B */ u8 field_0xe1b; // Probably isDaytime or isNighttime }; STATIC_ASSERT(sizeof(daNpcShoe_c) == 0xe1c); class daNpcShoe_Param_c { public: - /* 80AEA344 */ ~daNpcShoe_Param_c(); + /* 8095D5D4 */ virtual ~daNpcShoe_Param_c() {} - static u8 const m[108]; + 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 mDamageTimer; + /* 0x64 */ s16 mTestExpression; + /* 0x66 */ s16 mTestMotion; + /* 0x68 */ s16 mTestLookMode; + /* 0x6A */ bool mTest; + }; + + static param const m; }; +STATIC_ASSERT(sizeof(daNpcShoe_Param_c::param) == 0x6C); #endif /* D_A_NPC_SHOE_H */ diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index ce8ddfc0838..1fdb9e815fc 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -334,6 +334,7 @@ public: J3DModel* getModel() { return mpModel; } void offMorfNone() { mMorfNone = false; } void onMorfNone() { mMorfNone = true; } + inline void setTranslateScale(cXyz& i_scale) { mTranslateScale = i_scale; } J3DTransformInfo* getOldTransInfo() { return mpTransformInfo; } Quaternion* getOldQuaternion() { return mpQuat; } void offTranslate() { mTranslate = true; } diff --git a/src/d/actor/d_a_npc_shoe.cpp b/src/d/actor/d_a_npc_shoe.cpp index 12586fd1cc9..5be79b08964 100644 --- a/src/d/actor/d_a_npc_shoe.cpp +++ b/src/d/actor/d_a_npc_shoe.cpp @@ -6,216 +6,45 @@ #include "d/actor/d_a_npc_shoe.h" #include "dol2asm.h" -// -// Forward References: -// - -extern "C" void __ct__11daNpcShoe_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__11daNpcShoe_cFv(); -extern "C" void Create__11daNpcShoe_cFv(); -extern "C" void CreateHeap__11daNpcShoe_cFv(); -extern "C" void Delete__11daNpcShoe_cFv(); -extern "C" void Execute__11daNpcShoe_cFv(); -extern "C" void Draw__11daNpcShoe_cFv(); -extern "C" void ctrlJoint__11daNpcShoe_cFP8J3DJointP8J3DModel(); -extern "C" void createHeapCallBack__11daNpcShoe_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__11daNpcShoe_cFP8J3DJointi(); -extern "C" void setMotion__11daNpcShoe_cFifi(); -extern "C" void reset__11daNpcShoe_cFv(); -extern "C" void setAction__11daNpcShoe_cFM11daNpcShoe_cFPCvPvPv_b(); -extern "C" void wait__11daNpcShoe_cFPv(); -extern "C" void fear__11daNpcShoe_cFPv(); -extern "C" void talk__11daNpcShoe_cFPv(); -extern "C" void demo__11daNpcShoe_cFPv(); -extern "C" static void daNpcShoe_Create__FPv(); -extern "C" static void daNpcShoe_Delete__FPv(); -extern "C" static void daNpcShoe_Execute__FPv(); -extern "C" static void daNpcShoe_Draw__FPv(); -extern "C" static bool daNpcShoe_IsDelete__FPv(); -extern "C" void setParam__11daNpcShoe_cFv(); -extern "C" void main__11daNpcShoe_cFv(); -extern "C" void setAttnPos__11daNpcShoe_cFv(); -extern "C" void lookat__11daNpcShoe_cFv(); -extern "C" void setMotionAnm__11daNpcShoe_cFif(); -extern "C" bool drawDbgInfo__11daNpcShoe_cFv(); -extern "C" void __dt__18daNpcF_ActorMngr_cFv(); -extern "C" void __ct__18daNpcF_ActorMngr_cFv(); -extern "C" void __dt__15daNpcF_Lookat_cFv(); -extern "C" void __dt__5csXyzFv(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__8daNpcF_cFv(); -extern "C" void __ct__8daNpcF_cFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" bool ctrlBtk__8daNpcF_cFv(); -extern "C" void setCollisions__8daNpcF_cFv(); -extern "C" bool setExpressionAnm__8daNpcF_cFib(); -extern "C" bool setExpressionBtp__8daNpcF_cFi(); -extern "C" void setExpression__8daNpcF_cFif(); -extern "C" void drawOtherMdls__8daNpcF_cFv(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __sinit_d_a_npc_shoe_cpp(); -extern "C" void adjustShapeAngle__11daNpcShoe_cFv(); -extern "C" void __dt__17daNpcShoe_Param_cFv(); -extern "C" static void func_80AEA38C(); -extern "C" static void func_80AEA394(); -extern "C" u8 const m__17daNpcShoe_Param_c[108]; -extern "C" extern char const* const d_a_npc_shoe__stringBase0; -extern "C" u8 mEvtSeqList__11daNpcShoe_c[12]; - -// -// External References: -// - -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_searchActorDistanceXZ2__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void setPtI_Id__14dEvt_control_cFUi(); -extern "C" void endCheck__16dEvent_manager_cFs(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWallR__12dBgS_AcchCirFf(); -extern "C" void SetWall__12dBgS_AcchCirFff(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void __ct__11dBgS_GndChkFv(); -extern "C" void __dt__11dBgS_GndChkFv(); -extern "C" void __ct__11dBgS_LinChkFv(); -extern "C" void __dt__11dBgS_LinChkFv(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void initialize__18daNpcF_ActorMngr_cFv(); -extern "C" void entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void remove__18daNpcF_ActorMngr_cFv(); -extern "C" void getActorP__18daNpcF_ActorMngr_cFv(); -extern "C" void initialize__15daNpcF_Lookat_cFv(); -extern "C" void setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz(); -extern "C" void calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii(); -extern "C" void execute__8daNpcF_cFv(); -extern "C" void draw__8daNpcF_cFiifP11_GXColorS10i(); -extern "C" void setMtx__8daNpcF_cFv(); -extern "C" void setMtx2__8daNpcF_cFv(); -extern "C" void initialize__8daNpcF_cFv(); -extern "C" void getTrnsfrmKeyAnmP__8daNpcF_cFPci(); -extern "C" void getTexPtrnAnmP__8daNpcF_cFPci(); -extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii(); -extern "C" void setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi(); -extern "C" void setEnvTevColor__8daNpcF_cFv(); -extern "C" void setRoomNo__8daNpcF_cFv(); -extern "C" void playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); -extern "C" void setLookatMtx__8daNpcF_cFiPif(); -extern "C" void ctrlMsgAnm__8daNpcF_cFRiRiP10fopAc_ac_ci(); -extern "C" void orderEvent__8daNpcF_cFiPcUsUsUcUs(); -extern "C" void chkActorInSight__8daNpcF_cFP10fopAc_ac_cf(); -extern "C" void chkActorInAttnArea__8daNpcF_cFP10fopAc_ac_cP10fopAc_ac_ci(); -extern "C" void initTalk__8daNpcF_cFiPP10fopAc_ac_c(); -extern "C" void talkProc__8daNpcF_cFPiiPP10fopAc_ac_c(); -extern "C" void getDistTableIdx__8daNpcF_cFii(); -extern "C" void dKy_getdaytime_hour__Fv(); -extern "C" void dKy_getdaytime_minute__Fv(); -extern "C" void dKy_getDarktime_hour__Fv(); -extern "C" void dKy_getDarktime_minute__Fv(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void dKy_darkworld_check__Fv(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz(); -extern "C" void __ct__17Z2CreatureCitizenFv(); -extern "C" void __dt__17Z2CreatureCitizenFv(); -extern "C" void init__17Z2CreatureCitizenFP3VecP3VecUcUc(); -extern "C" void setMdlType__17Z2CreatureCitizenFScbb(); -extern "C" void playVoice__17Z2CreatureCitizenFi(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void checkPass__12J3DFrameCtrlFf(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_test(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" u8 mCcDCyl__8daNpcF_c[68]; -extern "C" extern void* __vt__8daNpcF_c[18]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" void __register_global_object(); - // // Declarations: // -/* ############################################################################################## */ -/* 80AEA51C-80AEA51C 00016C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80AEA51C = "shoe"; -SECTION_DEAD static char const* const stringBase_80AEA521 = "Mgeneral"; -SECTION_DEAD static char const* const stringBase_80AEA52A = "object"; -SECTION_DEAD static char const* const stringBase_80AEA531 = "Shoe"; -#pragma pop +static daNpcShoe_Param_c l_HIO; + +void daNpcShoe_c::setLookMode(int i_lookMode) { + if (mLookMode != i_lookMode) { + mLookMode = i_lookMode; + } +} + +bool daNpcShoe_c::chkFindPlayer() { + bool ret; + if (!chkActorInSight(daPy_getPlayerActorClass(), daNpcShoe_Param_c::m.mAttnFovY)) { + mActorMngr[0].remove(); + ret = false; + } else { + if (mActorMngr[0].getActorP() == NULL) { + ret = chkPlayerInSpeakArea(this); + } else { + ret = chkPlayerInTalkArea(this); + } + if (ret) { + mActorMngr[0].entry(daPy_getPlayerActorClass()); + } else { + mActorMngr[0].remove(); + } + } + return ret; +} /* 80AEA538-80AEA544 000000 000C+00 2/2 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { +static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 80AEA544-80AEA558 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ -#pragma push -#pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { +static u32 lit_1787[1 + 4 /* padding */] = { 0x02000201, /* padding */ 0x40080000, @@ -223,114 +52,759 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { 0x3FE00000, 0x00000000, }; -#pragma pop /* 80AEA558-80AEA594 000020 003C+00 1/1 0/0 0/0 .data l_bckGetParamList */ -SECTION_DATA static u8 l_bckGetParamList[60] = { - 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, +static daNpc_GetParam2 l_bckGetParamList[5] = { + { 17, 2, 1}, // m_sitwait_a + { 13, 0, 1}, // m_sittalk_a + { 14, 0, 1}, // m_sittalk_a_b + { 5, 0, 0}, // shoe_talk_a + { 11, 2, 1} // m_sit_to_wolf_a }; /* 80AEA594-80AEA5A0 00005C 000C+00 0/0 0/0 0/0 .data l_btpGetParamList */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_btpGetParamList[12] = { - 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam2 l_btpGetParamList[1] = { + { 12, 2, 0 }, // shoe }; -#pragma pop /* 80AEA5A0-80AEA5AC -00001 000C+00 5/6 0/0 0/0 .data l_arcNames */ -SECTION_DATA static void* l_arcNames[3] = { - (void*)&d_a_npc_shoe__stringBase0, - (void*)(((char*)&d_a_npc_shoe__stringBase0) + 0x5), - (void*)(((char*)&d_a_npc_shoe__stringBase0) + 0xE), +static char* l_arcNames[3] = { + "shoe", + "Mgeneral", + "object", }; /* 80AEA5AC-80AEA5B0 000074 0004+00 0/1 0/0 0/0 .data l_evtNames */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_evtNames[4] = { - 0x00, - 0x00, - 0x00, - 0x00, +static char* l_evtNames[1] = { + l_arcNames[0] }; -#pragma pop /* 80AEA5B0-80AEA5B4 -00001 0004+00 0/2 0/0 0/0 .data l_myName */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_myName = (void*)(((char*)&d_a_npc_shoe__stringBase0) + 0x15); -#pragma pop +static char* l_myName = "Shoe"; /* 80AEA5B4-80AEA5C0 00007C 000C+00 1/2 0/0 0/0 .data mEvtSeqList__11daNpcShoe_c */ -SECTION_DATA u8 daNpcShoe_c::mEvtSeqList[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcShoe_c::EventFn daNpcShoe_c::mEvtSeqList[1] = { + NULL }; -/* 80AEA5C0-80AEA5CC -00001 000C+00 1/1 0/0 0/0 .data @4424 */ -SECTION_DATA static void* lit_4424[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__11daNpcShoe_cFPv, +/* 80AE794C-80AE7AD0 0000EC 0184+00 1/1 0/0 0/0 .text __ct__11daNpcShoe_cFv */ +daNpcShoe_c::daNpcShoe_c() { + // NONMATCHING +} + +/* 80AE7B60-80AE7D48 000300 01E8+00 1/0 0/0 0/0 .text __dt__11daNpcShoe_cFv */ +daNpcShoe_c::~daNpcShoe_c() { + for (int i = 0; i < 3; i++) { + dComIfG_resDelete(&mPhases[i], l_arcNames[i]); + } + if (heap != NULL) { + mpMorf->stopZelAnime(); + } +} + +/* ############################################################################################## */ +/* 80AEA3B0-80AEA41C 000000 006C+00 11/11 0/0 0/0 .rodata m__17daNpcShoe_Param_c */ +daNpcShoe_Param_c::param const daNpcShoe_Param_c::m = { + 55.0f, + -3.0f, + 1.0f, + 300.0f, + 255.0f, + 140.0f, + 35.0f, + 30.0f, + 0.0f, + 0.0f, + 10.0f, + -10.0f, + 30.0f, + -10.0f, + 45.0f, + -45.0f, + 0.6f, + 12.0f, + 2, + 2, + 3, + 2, + 60.0f, + 500.0f, + 300.0f, + -300.0f, + 60, + 0, + 0, + 0, + 0, + false, }; -/* 80AEA5CC-80AEA5D8 -00001 000C+00 0/1 0/0 0/0 .data @4547 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4547[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__11daNpcShoe_cFPv, -}; -#pragma pop +/* 80AE7D48-80AE7FD8 0004E8 0290+00 1/1 0/0 0/0 .text Create__11daNpcShoe_cFv */ +cPhs__Step daNpcShoe_c::Create() { + cPhs__Step step; -/* 80AEA5D8-80AEA5E4 -00001 000C+00 0/1 0/0 0/0 .data @4552 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4552[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo__11daNpcShoe_cFPv, -}; -#pragma pop + fopAcM_SetupActor(this, daNpcShoe_c); -/* 80AEA5E4-80AEA5F0 -00001 000C+00 0/1 0/0 0/0 .data @4559 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4559[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)fear__11daNpcShoe_cFPv, -}; -#pragma pop + field_0xe0c = getMessageNo(); -/* 80AEA5F0-80AEA5FC -00001 000C+00 1/1 0/0 0/0 .data @4645 */ -SECTION_DATA static void* lit_4645[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__11daNpcShoe_cFPv, -}; + step = cPhs_ERROR_e; + for (int i = 0; i < 3; i++) { + step = (cPhs__Step)dComIfG_resLoad(&mPhases[i], l_arcNames[i]); + if (step != cPhs_COMPLEATE_e) { + return step; + } + } -/* 80AEA5FC-80AEA608 -00001 000C+00 0/1 0/0 0/0 .data @4684 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4684[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__11daNpcShoe_cFPv, -}; -#pragma pop + if (step == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x2920)) { + return cPhs_ERROR_e; + } + + fopAcM_SetMtx(this, mpMorf->mpModel->getBaseTRMtx()); + + fopAcM_setCullSizeBox(this, -50.0f, -10.0f, -50.0f, 50.0f, 160.0f, 50.0f); + + mCreature.init(¤t.pos, &eyePos, 3, 1); + mCreature.setMdlType(7, false, (BOOL)(dKy_darkworld_check() != 0)); + + mAcchCir.SetWall(daNpcShoe_Param_c::m.mWallR, daNpcShoe_Param_c::m.mWallH); + + mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, + fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this)); + + mAcch.CrrPos(dComIfG_Bgsp()); + mCcStts.Init((int)daNpcShoe_Param_c::m.mCcWeight, 0, this); + mCcCyl.Set(mCcDCyl); + + mCcCyl.SetStts(&mCcStts); + mCcCyl.SetTgType(0); + mCcCyl.SetTgSPrm(0); + + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.m_ground_h; + gravity = daNpcShoe_Param_c::m.mGravity; + + setEnvTevColor(); + setRoomNo(); + reset(); + execute(); + } + + return step; +} + +/* 80AE7FD8-80AE81E8 000778 0210+00 1/1 0/0 0/0 .text CreateHeap__11daNpcShoe_cFv */ +BOOL daNpcShoe_c::CreateHeap() { + J3DModelData* mdlData_p = static_cast(dComIfG_getObjectRes(l_arcNames[0], 8)); + + JUT_ASSERT(292, 0 != mdlData_p) + + mpMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, + &mCreature, 0x80000, 0x11020084); + + if (mpMorf != NULL && mpMorf->mpModel == NULL) { + mpMorf->stopZelAnime(); + mpMorf = NULL; + } + + if (mpMorf == NULL) { + return false; + } + + cXyz cstack_30(1.0f, 0.5581154f, 1.0f); + mpMorf->offTranslate(); + mpMorf->setTranslateScale(cstack_30); + + J3DModel* model = mpMorf->getModel(); + for (u16 jointNo = 0; jointNo < mdlData_p->getJointNum(); jointNo++) { + mdlData_p->getJointNodePointer(jointNo)->setCallBack(ctrlJointCallBack); + } + model->setUserArea((u32)this); + + mdlData_p = static_cast(dComIfG_getObjectRes(l_arcNames[0], 9)); + + JUT_ASSERT(331, 0 != mdlData_p) + + mpModel1 = mDoExt_J3DModel__create(mdlData_p, 0x80000, 0x11000084); + if (mpModel1 == NULL) { + return false; + } + + mdlData_p = static_cast(dComIfG_getObjectRes(l_arcNames[2], 4)); + + JUT_ASSERT(338, 0 != mdlData_p) + + mpModel2 = mDoExt_J3DModel__create(mdlData_p, 0x80000, 0x11000084); + if (mpModel2 == NULL) { + return false; + } + + setMotion(MOT_SITWAIT_A, -1.0f, 0); + + return true; +} + +/* 80AE81E8-80AE821C 000988 0034+00 1/1 0/0 0/0 .text Delete__11daNpcShoe_cFv */ +int daNpcShoe_c::Delete() { + this->~daNpcShoe_c(); + return 1; +} + +/* 80AE821C-80AE8308 0009BC 00EC+00 1/1 0/0 0/0 .text Execute__11daNpcShoe_cFv */ +int daNpcShoe_c::Execute() { + if (field_0xe1b != 0) { + fopAcM_OnStatus(this, 0x8000000); + } else { + fopAcM_OffStatus(this, 0x8000000); + } + + if (fopAcM_CheckCondition(this, fopAcCnd_NODRAW_e)) { + int time = getTime(); + if (time >= mStartTime && time < mEndTime) { + field_0xe1b = 1; + } else { + field_0xe1b = 0; + } + } else { + if (field_0xe1b != 0) { + execute(); + } + } + + return 1; +} + +/* 80AE8308-80AE840C 000AA8 0104+00 1/1 0/0 0/0 .text Draw__11daNpcShoe_cFv */ +int daNpcShoe_c::Draw() { + if (!field_0xe1b) { + return 1; + } + + draw(false, false, daNpcShoe_Param_c::m.mShadowDepth, NULL, false); + g_env_light.setLightTevColorType_MAJI(mpModel1->mModelData, &tevStr); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(11)); + mpModel1->setBaseTRMtx(mDoMtx_stack_c::get()); + mDoExt_modelUpdateDL(mpModel1); + g_env_light.setLightTevColorType_MAJI(mpModel2->mModelData, &tevStr); + mDoExt_modelUpdateDL(mpModel2); + dComIfGd_setSimpleShadow(¤t.pos, mAcch.GetGroundH(), 50.0f, mAcch.m_gnd, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + + return 1; +} + +/* 80AE840C-80AE8598 000BAC 018C+00 1/1 0/0 0/0 .text + * ctrlJoint__11daNpcShoe_cFP8J3DJointP8J3DModel */ +bool daNpcShoe_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { + int joint_no = i_joint->getJntNo(); + int lookat_joints[3] = {1, 2, 3}; + + if (joint_no == 0) { + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1)); + mDoMtx_stack_c::multVecZero(&mLookatPos[0]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(2)); + mDoMtx_stack_c::multVecZero(&mLookatPos[1]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3)); + mDoMtx_stack_c::multVecZero(&mLookatPos[2]); + } + + mDoMtx_stack_c::copy(i_model->getAnmMtx(joint_no)); + switch(joint_no) { + case 1: + case 2: + case 3: + setLookatMtx(joint_no, lookat_joints, daNpcShoe_Param_c::m.mNeckAngleScl); + break; + } + + i_model->setAnmMtx(joint_no, mDoMtx_stack_c::get()); + cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + + return true; +} + +/* 80AE8598-80AE85B8 000D38 0020+00 1/1 0/0 0/0 .text + * createHeapCallBack__11daNpcShoe_cFP10fopAc_ac_c */ +BOOL daNpcShoe_c::createHeapCallBack(fopAc_ac_c* i_this) { + return static_cast(i_this)->CreateHeap(); +} + +/* 80AE85B8-80AE8604 000D58 004C+00 1/1 0/0 0/0 .text ctrlJointCallBack__11daNpcShoe_cFP8J3DJointi + */ +BOOL daNpcShoe_c::ctrlJointCallBack(J3DJoint* i_joint, int param_1) { + if (param_1 == 0) { + J3DModel* model = j3dSys.getModel(); + daNpcShoe_c* _this = (daNpcShoe_c*)model->getUserArea(); + if (_this != NULL) { + _this->ctrlJoint(i_joint, model); + } + } + return true; +} + +/* 80AE8604-80AE864C 000DA4 0048+00 1/0 0/0 0/0 .text setMotion__11daNpcShoe_cFifi */ +void daNpcShoe_c::setMotion(int i_motion, f32 i_morf, BOOL i_restart) { + s16 motion = (s16)i_motion; + if (i_restart || mMotion != motion) { + if (i_motion >= 0 && i_motion < 5) { + mMotion = motion; + mMotionMorfOverride = i_morf; + mMotionPrevPhase = -1; + mMotionPhase = 0; + field_0xe16 = 0; + } + } +} + + +/* 80AE864C-80AE895C 000DEC 0310+00 1/1 0/0 0/0 .text reset__11daNpcShoe_cFv */ +void daNpcShoe_c::reset() { + initialize(); + mLookat.initialize(); + for (int i = 0; i < 1; i++) { + mActorMngr[i].initialize(); + } + + field_0xe04 = 0; + field_0xe08 = 0; + mpActionFn = NULL; + mLookMode = -1; + mMode = 0; + + u16 temp1; + u16 temp2; + u8 start_time = getStartTime(); + u8 end_time = getEndTime(); + if (start_time != 0xff) { + temp1 = (start_time / 10); + temp2 = (start_time % 10) * 10; + mStartTime = temp2 + temp1 * 60; + } + if (end_time != 0xff) { + temp1 = (end_time / 10); + temp2 = (end_time % 10) * 10; + mEndTime = temp2 + temp1 * 60; + } + + field_0xe1b = 0; + int time = getTime(); + if (time >= mStartTime && time < mEndTime) { + field_0xe1b = 1; + } else { + field_0xe1b = 0; + } + + current.pos.set(home.pos); + old.pos.set(current.pos); + current.angle.set(0, home.angle.y, 0); + old.angle = current.angle; + shape_angle = current.angle; + mCurAngle = current.angle; + mOldAngle = mCurAngle; + + speedF = 0.0f; + speed.setall(0.0f); + field_0xe00 = -1; + mOrderEvtNo = 0; + + J3DAnmTexPattern* btpAnm = getTexPtrnAnmP(l_arcNames[0], 12); + mAnmFlags &= ~(ANM_PAUSE_BTP | ANM_PLAY_BTP | ANM_FLAG_800); + if (setBtpAnm(btpAnm, mpMorf->getModel()->getModelData(), 1.0f, 2)) { + mAnmFlags |= ANM_PAUSE_BTP | ANM_PLAY_BTP | ANM_FLAG_800; + } + + Vec base_scale = {0.6, 0.6, 0.6}; + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mpModel2->setBaseScale(base_scale); + mpModel2->setBaseTRMtx(mDoMtx_stack_c::get()); + + setAction(&daNpcShoe_c::wait); + + mMotionMorfOverride = 0.0f; +} + + +void daNpcShoe_c::playMotion() { + daNpcF_anmPlayData dat0 = {ANM_M_SITWAIT_A, daNpcShoe_Param_c::m.mMorfFrames, 0}; + daNpcF_anmPlayData* pDat0[1] = {&dat0}; + daNpcF_anmPlayData dat1a = {ANM_M_SITTALK_A, daNpcShoe_Param_c::m.mMorfFrames, 1}; + daNpcF_anmPlayData dat1b = {ANM_M_SITWAIT_A, daNpcShoe_Param_c::m.mMorfFrames, 0}; + daNpcF_anmPlayData* pDat1[2] = {&dat1a, &dat1b}; + daNpcF_anmPlayData dat2a = {ANM_M_SITTALK_A_B, daNpcShoe_Param_c::m.mMorfFrames, 1}; + daNpcF_anmPlayData dat2b = {ANM_M_SITWAIT_A, daNpcShoe_Param_c::m.mMorfFrames, 0}; + daNpcF_anmPlayData* pDat2[2] = {&dat2a, &dat2b}; + daNpcF_anmPlayData dat3a = {ANM_SHOE_TALK_A, daNpcShoe_Param_c::m.mMorfFrames, 1}; + daNpcF_anmPlayData dat3b = {ANM_M_SITWAIT_A, daNpcShoe_Param_c::m.mMorfFrames, 0}; + daNpcF_anmPlayData* pDat3[2] = {&dat3a, &dat3b}; + daNpcF_anmPlayData dat4 = {ANM_M_SIT_TO_WOLF_A, daNpcShoe_Param_c::m.mMorfFrames, 0}; + daNpcF_anmPlayData* pDat4[1] = {&dat4}; + + daNpcF_anmPlayData** ppDat[5] = { + pDat0, + pDat1, + pDat2, + pDat3, + pDat4, + }; + if (mMotion >= 0 && mMotion < 5) { + field_0xe16 = mMotionPhase; + playMotionAnm(ppDat); + } +} + + +/* 80AE895C-80AE8A04 0010FC 00A8+00 1/1 0/0 0/0 .text + * setAction__11daNpcShoe_cFM11daNpcShoe_cFPCvPvPv_b */ +int daNpcShoe_c::setAction(bool (daNpcShoe_c::*i_actionFunc)(void*)) { + mMode = 3; + if (mpActionFn != NULL) { + (this->*mpActionFn)(NULL); + } + + mMode = 0; + mpActionFn = i_actionFunc; + if (mpActionFn != NULL) { + (this->*mpActionFn)(NULL); + } + return 1; +} + +/* 80AE8A04-80AE8E24 0011A4 0420+00 3/0 0/0 0/0 .text wait__11daNpcShoe_cFPv */ +bool daNpcShoe_c::wait(void* param_0) { + // NONMATCHING + switch (mMode) { + case 0: + setMotion(MOT_SITWAIT_A, -1.0f, false); + speedF = 0.0f; + mMode = 2; + break; + case 1: + break; + case 2: { + chkFindPlayer(); + + fopAc_ac_c* pactor = mActorMngr->getActorP(); + if (pactor != NULL) { + setLookMode(LOOK_PLAYER); + } else { + setLookMode(LOOK_NONE); + } + + if (dComIfGp_event_runCheck()) { + if (eventInfo.checkCommandTalk()) { + if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) { + setAction(&daNpcShoe_c::talk); + } + } else { + if (dComIfGp_getEventManager().getMyStaffId(l_myName, NULL, -0) != -1) { + setAction(&daNpcShoe_c::demo); + } + } + } else { + if (!dKy_darkworld_check() && daPy_py_c::checkNowWolf()) { + f32 max_distance = pow(500.0f, 2.0f); + if (fopAcM_searchPlayerDistanceXZ2(this) < max_distance) { + setAction(&daNpcShoe_c::fear); + break; + } + } + + if (mOrderEvtNo != 0) { + eventInfo.setArchiveName(l_arcNames[0]); + } + orderEvent(field_0xe1a, l_evtNames[mOrderEvtNo], 0xffff, 0x28, 0xff, 1); + } + break; + } + case 3: + break; + default: + JUT_ASSERT(1063, 0) + break; + } + + return 1; +} + + +/* 80AE8E24-80AE8ED4 0015C4 00B0+00 1/0 0/0 0/0 .text fear__11daNpcShoe_cFPv */ +bool daNpcShoe_c::fear(void* param_0) { + switch (mMode) { + case 0: + setMotion(MOT_SIT_TO_WOLF_A, -1.0f, false); + speedF = 0.0f; + mMode = 2; + break; + case 1: + break; + case 2: + if (mpMorf->checkFrame(1.0f)) { + mCreature.playVoice(2); + } + break; + case 3: + break; + default: + JUT_ASSERT(1100, 0) + break; + } + return 1; +} + +/* 80AE8ED4-80AE9094 001674 01C0+00 1/0 0/0 0/0 .text talk__11daNpcShoe_cFPv */ +bool daNpcShoe_c::talk(void* param_0) { + bool ret = 0; + switch (mMode) { + case 0: + initTalk(field_0xe0c, NULL); + mMsgTimer = 0; + field_0xe1a = 0; + setLookMode(LOOK_PLAYER_TALK); + mMode = 2; + break; + case 1: + break; + case 2: + if (talkProc(NULL, 1, NULL)) { + mActorMngr->entry(daPy_getPlayerActorClass()); + setAction(&daNpcShoe_c::wait); + ret = 1; + } else { + int expression, motion; + if (ctrlMsgAnm(expression, motion, this, false)) { + setMotion(motion, -1.0f, false); + } + } + break; + case 3: + if (field_0x9ec != 0) { + break; + } + + dComIfGp_event_reset(); + break; + default: + JUT_ASSERT(1169, 0) + break; + } + return ret; +} + +/* 80AE9094-80AE9260 001834 01CC+00 1/0 0/0 0/0 .text demo__11daNpcShoe_cFPv */ +bool daNpcShoe_c::demo(void* param_0) { + switch (mMode) { + case 0: + setMotion(MOT_SITWAIT_A, -1.0f, false); + mMode = 2; + break; + case 1: + break; + case 2: + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + s32 staff_id = eventManager.getMyStaffId(l_myName, NULL, 0); + if (staff_id != -1) { + mStaffID = staff_id; + + JUT_ASSERT(1203, 0 != mEvtSeqList[mOrderEvtNo]) + + if ((this->*(mEvtSeqList[mOrderEvtNo]))(staff_id)) { + eventManager.cutEnd(staff_id); + } + } + + if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager.endCheck(mEventIdx)) { + dComIfGp_event_reset(); + mOrderEvtNo = 0; + mEventIdx = -1; + setAction(&daNpcShoe_c::wait); + } + } + break; + case 3: + break; + default: + JUT_ASSERT(1169, 0) + break; + } + return 1; +} + +/* 80AE9260-80AE9280 001A00 0020+00 1/0 0/0 0/0 .text daNpcShoe_Create__FPv */ +static cPhs__Step daNpcShoe_Create(void* i_this) { + return static_cast(i_this)->Create(); +} + +/* 80AE9280-80AE92A0 001A20 0020+00 1/0 0/0 0/0 .text daNpcShoe_Delete__FPv */ +static int daNpcShoe_Delete(void* i_this) { + return static_cast(i_this)->Delete(); +} + +/* 80AE92A0-80AE92C0 001A40 0020+00 1/0 0/0 0/0 .text daNpcShoe_Execute__FPv */ +static int daNpcShoe_Execute(void* i_this) { + return static_cast(i_this)->Execute(); +} + +/* 80AE92C0-80AE92E0 001A60 0020+00 1/0 0/0 0/0 .text daNpcShoe_Draw__FPv */ +static int daNpcShoe_Draw(void* i_this) { + return static_cast(i_this)->Draw(); +} + +/* 80AE92E0-80AE92E8 001A80 0008+00 1/0 0/0 0/0 .text daNpcShoe_IsDelete__FPv */ +static bool daNpcShoe_IsDelete(void* param_0) { + return true; +} + +/* 80AE92E8-80AE93A0 001A88 00B8+00 1/0 0/0 0/0 .text setParam__11daNpcShoe_cFv */ +void daNpcShoe_c::setParam() { + attention_info.distances[0] = getDistTableIdx(daNpcShoe_Param_c::m.mTalkDistIdx, daNpcShoe_Param_c::m.mTalkAngleIdx); + attention_info.distances[1] = attention_info.distances[0]; + attention_info.distances[3] = getDistTableIdx(daNpcShoe_Param_c::m.mSpeakDistIdx, daNpcShoe_Param_c::m.mSpeakAngleIdx); + + attention_info.flags = (field_0xe1b != 0) ? 10 : 0; + + scale.setall(daNpcShoe_Param_c::m.mScale); + mAcchCir.SetWallR(daNpcShoe_Param_c::m.mWallR); + mAcchCir.SetWallH(daNpcShoe_Param_c::m.mWallH); + gravity = daNpcShoe_Param_c::m.mGravity; +} + +/* 80AE93A0-80AE9624 001B40 0284+00 1/0 0/0 0/0 .text main__11daNpcShoe_cFv */ +BOOL daNpcShoe_c::main() { + if (mpActionFn != NULL) { + (this->*mpActionFn)(0); + } + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk() && field_0xe00 != -1) { + dComIfGp_event_setItemPartnerId(field_0xe00); + field_0xe00 = -1; + } + playMotion(); + return 0; +} + +/* 80AE9624-80AE9820 001DC4 01FC+00 1/0 0/0 0/0 .text setAttnPos__11daNpcShoe_cFv */ +void daNpcShoe_c::setAttnPos() { + // NONMATCHING + if (mLookMode == LOOK_RESET) { + for (int i = 0; i < 3; i++) { + mLookatAngle[i].setall(0); + } + } + + setMtx(); + lookat(); + + cXyz vec(10.0f,15.0f,0.0f); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3)); + mDoMtx_stack_c::multVecZero(&mHeadPos); + mDoMtx_stack_c::multVec(&vec, &eyePos); + vec.x = 0.0f; + mDoMtx_stack_c::multVec(&vec, &vec); + + mHeadAngle.x = cLib_targetAngleX(&mHeadPos,&vec); + mHeadAngle.y = cLib_targetAngleY(&mHeadPos,&vec); + + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3)); + mDoMtx_stack_c::multVecZero(&attention_info.position); + attention_info.position.y += daNpcShoe_Param_c::m.mAttnOffsetY; + + cXyz cStack28; + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1)); + mDoMtx_stack_c::multVecZero(&cStack28); + cStack28.y = current.pos.y; + mCcCyl.SetC(cStack28); + mCcCyl.SetH(daNpcShoe_Param_c::m.mCylH); + mCcCyl.SetR(daNpcShoe_Param_c::m.mWallR); + dComIfG_Ccsp()->Set(&mCcCyl); +} + +/* 80AE9820-80AE9A00 001FC0 01E0+00 1/1 0/0 0/0 .text lookat__11daNpcShoe_cFv */ +void daNpcShoe_c::lookat() { + // NONMATCHING + fopAc_ac_c* actor = NULL; + J3DModel* model = mpMorf->getModel(); + BOOL snap = false; + f32 body_down_angle = daNpcShoe_Param_c::m.mBodyDownAngle; + f32 body_up_angle = daNpcShoe_Param_c::m.mBodyUpAngle; + f32 body_right_angle = daNpcShoe_Param_c::m.mBodyRightAngle; + f32 body_left_angle = daNpcShoe_Param_c::m.mBodyLeftAngle; + f32 head_down_angle = daNpcShoe_Param_c::m.mHeadDownAngle; + f32 head_up_angle = daNpcShoe_Param_c::m.mHeadUpAngle; + f32 head_right_angle = daNpcShoe_Param_c::m.mHeadRightAngle; + f32 head_left_angle = daNpcShoe_Param_c::m.mHeadLeftAngle; + s16 angle_delta = mCurAngle.y - mOldAngle.y; + cXyz lookat_pos[3] = {mLookatPos[0], mLookatPos[1], mLookatPos[2]}; + csXyz* lookat_angle[3] = {&mLookatAngle[0], &mLookatAngle[1], &mLookatAngle[2]}; + + switch (mLookMode) { + case LOOK_NONE: + break; + case LOOK_RESET: + snap = true; + break; + case LOOK_PLAYER: + case LOOK_PLAYER_TALK: + actor = daPy_getPlayerActorClass(); + if (mLookMode != LOOK_PLAYER_TALK) { + break; + } + head_right_angle = -80.0f; + head_left_angle = 80.0f; + break; + } + + if (actor != NULL) { + mLookPos = actor->attention_info.position; + if (mLookMode != LOOK_PLAYER && mLookMode != LOOK_PLAYER_TALK) { + mLookPos.y -= 40.0f; + } + mLookat.setAttnPos(&mLookPos); + } else { + mLookat.setAttnPos(NULL); + } + + mLookat.setParam(body_down_angle, body_up_angle, body_right_angle, body_left_angle, + 0.0f, 0.0f, 0.0f, 0.0f, + head_down_angle, head_up_angle, head_right_angle, head_left_angle, + mCurAngle.y, lookat_pos); + mLookat.calc(this, model->getBaseTRMtx(), lookat_angle, snap, angle_delta, false); +} + +/* 80AE9A00-80AE9AD0 0021A0 00D0+00 1/0 0/0 0/0 .text setMotionAnm__11daNpcShoe_cFif */ +bool daNpcShoe_c::setMotionAnm(int i_idx, f32 i_morf) { + // NONMATCHING + J3DAnmTransformKey* morfAnm = getTrnsfrmKeyAnmP(l_arcNames[l_bckGetParamList[i_idx].arcIdx], l_bckGetParamList[i_idx].fileIdx); + + int morfAttr = l_bckGetParamList[i_idx].attr; + + mAnmFlags &= ~(ANM_PAUSE_MORF | ANM_PLAY_MORF); + + if (morfAnm) { + if (setMcaMorfAnm(morfAnm, 1.0f, i_morf, morfAttr, 0, -1)) { + mAnmFlags |= ANM_PAUSE_MORF | ANM_PLAY_MORF; + mMotionLoops = 0; + } + } +} + +/* 80AE9AD0-80AE9AD8 002270 0008+00 1/0 0/0 0/0 .text drawDbgInfo__11daNpcShoe_cFv */ +BOOL daNpcShoe_c::drawDbgInfo() { + return FALSE; +} + +/* 80AEA340-80AEA344 002AE0 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__11daNpcShoe_cFv + */ +void daNpcShoe_c::adjustShapeAngle() { + /* empty function */ +} /* 80AEA608-80AEA628 -00001 0020+00 1/0 0/0 0/0 .data daNpcShoe_MethodTable */ static actor_method_class daNpcShoe_MethodTable = { - (process_method_func)daNpcShoe_Create__FPv, - (process_method_func)daNpcShoe_Delete__FPv, - (process_method_func)daNpcShoe_Execute__FPv, - (process_method_func)daNpcShoe_IsDelete__FPv, - (process_method_func)daNpcShoe_Draw__FPv, + (process_method_func)daNpcShoe_Create, + (process_method_func)daNpcShoe_Delete, + (process_method_func)daNpcShoe_Execute, + (process_method_func)daNpcShoe_IsDelete, + (process_method_func)daNpcShoe_Draw, }; /* 80AEA628-80AEA658 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_SHOE */ @@ -350,717 +824,3 @@ extern actor_process_profile_definition g_profile_NPC_SHOE = { fopAc_NPC_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80AEA658-80AEA6A0 000120 0048+00 2/2 0/0 0/0 .data __vt__11daNpcShoe_c */ -SECTION_DATA extern void* __vt__11daNpcShoe_c[18] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__11daNpcShoe_cFv, - (void*)setParam__11daNpcShoe_cFv, - (void*)main__11daNpcShoe_cFv, - (void*)ctrlBtk__8daNpcF_cFv, - (void*)adjustShapeAngle__11daNpcShoe_cFv, - (void*)setMtx__8daNpcF_cFv, - (void*)setMtx2__8daNpcF_cFv, - (void*)setAttnPos__11daNpcShoe_cFv, - (void*)setCollisions__8daNpcF_cFv, - (void*)setExpressionAnm__8daNpcF_cFib, - (void*)setExpressionBtp__8daNpcF_cFi, - (void*)setExpression__8daNpcF_cFif, - (void*)setMotionAnm__11daNpcShoe_cFif, - (void*)setMotion__11daNpcShoe_cFifi, - (void*)drawDbgInfo__11daNpcShoe_cFv, - (void*)drawOtherMdls__8daNpcF_cFv, -}; - -/* 80AEA6A0-80AEA6AC 000168 000C+00 3/3 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; - -/* 80AEA6AC-80AEA6D0 000174 0024+00 3/3 0/0 0/0 .data __vt__12dBgS_ObjAcch */ -SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_ObjAcchFv, - (void*)NULL, - (void*)NULL, - (void*)func_80AEA394, - (void*)NULL, - (void*)NULL, - (void*)func_80AEA38C, -}; - -/* 80AEA6D0-80AEA6DC 000198 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */ -SECTION_DATA extern void* __vt__10cCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10cCcD_GSttsFv, -}; - -/* 80AEA6DC-80AEA6E8 0001A4 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */ -SECTION_DATA extern void* __vt__10dCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dCcD_GSttsFv, -}; - -/* 80AEA6E8-80AEA6F4 0001B0 000C+00 2/2 0/0 0/0 .data __vt__12dBgS_AcchCir */ -SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_AcchCirFv, -}; - -/* 80AEA6F4-80AEA700 0001BC 000C+00 4/4 0/0 0/0 .data __vt__18daNpcF_ActorMngr_c */ -SECTION_DATA extern void* __vt__18daNpcF_ActorMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daNpcF_ActorMngr_cFv, -}; - -/* 80AEA700-80AEA70C 0001C8 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 80AEA70C-80AEA718 0001D4 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80AEA718-80AEA724 0001E0 000C+00 3/3 0/0 0/0 .data __vt__15daNpcF_Lookat_c */ -SECTION_DATA extern void* __vt__15daNpcF_Lookat_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daNpcF_Lookat_cFv, -}; - -/* 80AE794C-80AE7AD0 0000EC 0184+00 1/1 0/0 0/0 .text __ct__11daNpcShoe_cFv */ -daNpcShoe_c::daNpcShoe_c() { - // NONMATCHING -} - -/* 80AE7AD0-80AE7B18 000270 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80AE7B18-80AE7B60 0002B8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80AE7B60-80AE7D48 000300 01E8+00 1/0 0/0 0/0 .text __dt__11daNpcShoe_cFv */ -daNpcShoe_c::~daNpcShoe_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AEA3B0-80AEA41C 000000 006C+00 11/11 0/0 0/0 .rodata m__17daNpcShoe_Param_c */ -SECTION_RODATA u8 const daNpcShoe_Param_c::m[108] = { - 0x42, 0x5C, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, - 0x43, 0x7F, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, - 0x41, 0xF0, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0xC2, 0x34, 0x00, 0x00, - 0x3F, 0x19, 0x99, 0x9A, 0x41, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0x02, - 0x42, 0x70, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA3B0, &daNpcShoe_Param_c::m); - -/* 80AEA41C-80AEA420 00006C 0004+00 0/1 0/0 0/0 .rodata @4166 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4166 = -50.0f; -COMPILER_STRIP_GATE(0x80AEA41C, &lit_4166); -#pragma pop - -/* 80AEA420-80AEA424 000070 0004+00 0/1 0/0 0/0 .rodata @4167 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4167 = -10.0f; -COMPILER_STRIP_GATE(0x80AEA420, &lit_4167); -#pragma pop - -/* 80AEA424-80AEA428 000074 0004+00 0/2 0/0 0/0 .rodata @4168 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4168 = 50.0f; -COMPILER_STRIP_GATE(0x80AEA424, &lit_4168); -#pragma pop - -/* 80AEA428-80AEA42C 000078 0004+00 0/1 0/0 0/0 .rodata @4169 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4169 = 160.0f; -COMPILER_STRIP_GATE(0x80AEA428, &lit_4169); -#pragma pop - -/* 80AE7D48-80AE7FD8 0004E8 0290+00 1/1 0/0 0/0 .text Create__11daNpcShoe_cFv */ -void daNpcShoe_c::Create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AEA42C-80AEA430 00007C 0004+00 1/5 0/0 0/0 .rodata @4235 */ -SECTION_RODATA static f32 const lit_4235 = 1.0f; -COMPILER_STRIP_GATE(0x80AEA42C, &lit_4235); - -/* 80AEA430-80AEA434 000080 0004+00 0/1 0/0 0/0 .rodata @4236 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4236 = 0x3F0EE0A7; -COMPILER_STRIP_GATE(0x80AEA430, &lit_4236); -#pragma pop - -/* 80AEA434-80AEA438 000084 0004+00 2/5 0/0 0/0 .rodata @4237 */ -SECTION_RODATA static f32 const lit_4237 = -1.0f; -COMPILER_STRIP_GATE(0x80AEA434, &lit_4237); - -/* 80AE7FD8-80AE81E8 000778 0210+00 1/1 0/0 0/0 .text CreateHeap__11daNpcShoe_cFv */ -void daNpcShoe_c::CreateHeap() { - // NONMATCHING -} - -/* 80AE81E8-80AE821C 000988 0034+00 1/1 0/0 0/0 .text Delete__11daNpcShoe_cFv */ -void daNpcShoe_c::Delete() { - // NONMATCHING -} - -/* 80AE821C-80AE8308 0009BC 00EC+00 1/1 0/0 0/0 .text Execute__11daNpcShoe_cFv */ -void daNpcShoe_c::Execute() { - // NONMATCHING -} - -/* 80AE8308-80AE840C 000AA8 0104+00 1/1 0/0 0/0 .text Draw__11daNpcShoe_cFv */ -void daNpcShoe_c::Draw() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AEA438-80AEA444 000088 000C+00 1/1 0/0 0/0 .rodata @4302 */ -SECTION_RODATA static u8 const lit_4302[12] = { - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, -}; -COMPILER_STRIP_GATE(0x80AEA438, &lit_4302); - -/* 80AE840C-80AE8598 000BAC 018C+00 1/1 0/0 0/0 .text - * ctrlJoint__11daNpcShoe_cFP8J3DJointP8J3DModel */ -void daNpcShoe_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) { - // NONMATCHING -} - -/* 80AE8598-80AE85B8 000D38 0020+00 1/1 0/0 0/0 .text - * createHeapCallBack__11daNpcShoe_cFP10fopAc_ac_c */ -void daNpcShoe_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80AE85B8-80AE8604 000D58 004C+00 1/1 0/0 0/0 .text ctrlJointCallBack__11daNpcShoe_cFP8J3DJointi - */ -void daNpcShoe_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING -} - -/* 80AE8604-80AE864C 000DA4 0048+00 1/0 0/0 0/0 .text setMotion__11daNpcShoe_cFifi */ -void daNpcShoe_c::setMotion(int param_0, f32 param_1, int param_2) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AEA444-80AEA450 000094 000C+00 0/1 0/0 0/0 .rodata @4423 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4423[12] = { - 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x19, 0x99, 0x9A, -}; -COMPILER_STRIP_GATE(0x80AEA444, &lit_4423); -#pragma pop - -/* 80AEA450-80AEA454 0000A0 0004+00 0/5 0/0 0/0 .rodata @4480 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4480[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA450, &lit_4480); -#pragma pop - -/* 80AE864C-80AE895C 000DEC 0310+00 1/1 0/0 0/0 .text reset__11daNpcShoe_cFv */ -void daNpcShoe_c::reset() { - // NONMATCHING -} - -/* 80AE895C-80AE8A04 0010FC 00A8+00 1/1 0/0 0/0 .text - * setAction__11daNpcShoe_cFM11daNpcShoe_cFPCvPvPv_b */ -void daNpcShoe_c::setAction(bool (daNpcShoe_c::*param_0)(void*)) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AEA454-80AEA460 0000A4 000C+00 0/1 0/0 0/0 .rodata @4481 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4481[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA454, &lit_4481); -#pragma pop - -/* 80AEA460-80AEA464 0000B0 0004+00 0/1 0/0 0/0 .rodata @4482 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4482[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA460, &lit_4482); -#pragma pop - -/* 80AEA464-80AEA470 0000B4 000C+00 0/1 0/0 0/0 .rodata @4483 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4483[12] = { - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80AEA464, &lit_4483); -#pragma pop - -/* 80AEA470-80AEA47C 0000C0 000C+00 0/1 0/0 0/0 .rodata @4484 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4484[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA470, &lit_4484); -#pragma pop - -/* 80AEA47C-80AEA484 0000CC 0008+00 0/1 0/0 0/0 .rodata @4485 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4485[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA47C, &lit_4485); -#pragma pop - -/* 80AEA484-80AEA490 0000D4 000C+00 0/1 0/0 0/0 .rodata @4486 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4486[12] = { - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80AEA484, &lit_4486); -#pragma pop - -/* 80AEA490-80AEA49C 0000E0 000C+00 0/1 0/0 0/0 .rodata @4487 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4487[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA490, &lit_4487); -#pragma pop - -/* 80AEA49C-80AEA4A4 0000EC 0008+00 0/1 0/0 0/0 .rodata @4488 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4488[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA49C, &lit_4488); -#pragma pop - -/* 80AEA4A4-80AEA4B0 0000F4 000C+00 0/1 0/0 0/0 .rodata @4489 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4489[12] = { - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80AEA4A4, &lit_4489); -#pragma pop - -/* 80AEA4B0-80AEA4BC 000100 000C+00 0/1 0/0 0/0 .rodata @4490 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4490[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA4B0, &lit_4490); -#pragma pop - -/* 80AEA4BC-80AEA4C4 00010C 0008+00 0/1 0/0 0/0 .rodata @4491 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4491[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA4BC, &lit_4491); -#pragma pop - -/* 80AEA4C4-80AEA4D0 000114 000C+00 0/1 0/0 0/0 .rodata @4492 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4492[12] = { - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA4C4, &lit_4492); -#pragma pop - -/* 80AEA4D0-80AEA4D4 000120 0004+00 0/1 0/0 0/0 .rodata @4493 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4493[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA4D0, &lit_4493); -#pragma pop - -/* 80AEA4D4-80AEA4E8 000124 0014+00 0/0 0/0 0/0 .rodata @4494 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4494[20] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA4D4, &lit_4494); -#pragma pop - -/* 80AEA4E8-80AEA4F8 000138 000C+04 0/1 0/0 0/0 .rodata @4508 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4508[12 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA4E8, &lit_4508); -#pragma pop - -/* 80AEA4F8-80AEA500 000148 0008+00 0/1 0/0 0/0 .rodata @4623 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4623[8] = { - 0x40, 0x7F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA4F8, &lit_4623); -#pragma pop - -/* 80AEA500-80AEA508 000150 0008+00 0/1 0/0 0/0 .rodata @4624 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4624[8] = { - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AEA500, &lit_4624); -#pragma pop - -/* 80AE8A04-80AE8E24 0011A4 0420+00 3/0 0/0 0/0 .text wait__11daNpcShoe_cFPv */ -void daNpcShoe_c::wait(void* param_0) { - // NONMATCHING -} - -/* 80AE8E24-80AE8ED4 0015C4 00B0+00 1/0 0/0 0/0 .text fear__11daNpcShoe_cFPv */ -void daNpcShoe_c::fear(void* param_0) { - // NONMATCHING -} - -/* 80AE8ED4-80AE9094 001674 01C0+00 1/0 0/0 0/0 .text talk__11daNpcShoe_cFPv */ -void daNpcShoe_c::talk(void* param_0) { - // NONMATCHING -} - -/* 80AE9094-80AE9260 001834 01CC+00 1/0 0/0 0/0 .text demo__11daNpcShoe_cFPv */ -void daNpcShoe_c::demo(void* param_0) { - // NONMATCHING -} - -/* 80AE9260-80AE9280 001A00 0020+00 1/0 0/0 0/0 .text daNpcShoe_Create__FPv */ -static void daNpcShoe_Create(void* param_0) { - // NONMATCHING -} - -/* 80AE9280-80AE92A0 001A20 0020+00 1/0 0/0 0/0 .text daNpcShoe_Delete__FPv */ -static void daNpcShoe_Delete(void* param_0) { - // NONMATCHING -} - -/* 80AE92A0-80AE92C0 001A40 0020+00 1/0 0/0 0/0 .text daNpcShoe_Execute__FPv */ -static void daNpcShoe_Execute(void* param_0) { - // NONMATCHING -} - -/* 80AE92C0-80AE92E0 001A60 0020+00 1/0 0/0 0/0 .text daNpcShoe_Draw__FPv */ -static void daNpcShoe_Draw(void* param_0) { - // NONMATCHING -} - -/* 80AE92E0-80AE92E8 001A80 0008+00 1/0 0/0 0/0 .text daNpcShoe_IsDelete__FPv */ -static bool daNpcShoe_IsDelete(void* param_0) { - return true; -} - -/* 80AE92E8-80AE93A0 001A88 00B8+00 1/0 0/0 0/0 .text setParam__11daNpcShoe_cFv */ -void daNpcShoe_c::setParam() { - // NONMATCHING -} - -/* 80AE93A0-80AE9624 001B40 0284+00 1/0 0/0 0/0 .text main__11daNpcShoe_cFv */ -void daNpcShoe_c::main() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AEA508-80AEA50C 000158 0004+00 0/1 0/0 0/0 .rodata @4841 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4841 = 10.0f; -COMPILER_STRIP_GATE(0x80AEA508, &lit_4841); -#pragma pop - -/* 80AEA50C-80AEA510 00015C 0004+00 0/1 0/0 0/0 .rodata @4842 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4842 = 15.0f; -COMPILER_STRIP_GATE(0x80AEA50C, &lit_4842); -#pragma pop - -/* 80AE9624-80AE9820 001DC4 01FC+00 1/0 0/0 0/0 .text setAttnPos__11daNpcShoe_cFv */ -void daNpcShoe_c::setAttnPos() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AEA510-80AEA514 000160 0004+00 0/1 0/0 0/0 .rodata @4883 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4883 = -80.0f; -COMPILER_STRIP_GATE(0x80AEA510, &lit_4883); -#pragma pop - -/* 80AEA514-80AEA518 000164 0004+00 0/1 0/0 0/0 .rodata @4884 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4884 = 80.0f; -COMPILER_STRIP_GATE(0x80AEA514, &lit_4884); -#pragma pop - -/* 80AEA518-80AEA51C 000168 0004+00 0/1 0/0 0/0 .rodata @4885 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4885 = 40.0f; -COMPILER_STRIP_GATE(0x80AEA518, &lit_4885); -#pragma pop - -/* 80AE9820-80AE9A00 001FC0 01E0+00 1/1 0/0 0/0 .text lookat__11daNpcShoe_cFv */ -void daNpcShoe_c::lookat() { - // NONMATCHING -} - -/* 80AE9A00-80AE9AD0 0021A0 00D0+00 1/0 0/0 0/0 .text setMotionAnm__11daNpcShoe_cFif */ -bool daNpcShoe_c::setMotionAnm(int param_0, f32 param_1) { - // NONMATCHING -} - -/* 80AE9AD0-80AE9AD8 002270 0008+00 1/0 0/0 0/0 .text drawDbgInfo__11daNpcShoe_cFv */ -bool daNpcShoe_c::drawDbgInfo() { - return false; -} - -/* 80AE9AD8-80AE9B20 002278 0048+00 5/4 0/0 0/0 .text __dt__18daNpcF_ActorMngr_cFv */ -// daNpcF_ActorMngr_c::~daNpcF_ActorMngr_c() { -extern "C" void __dt__18daNpcF_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80AE9B20-80AE9B5C 0022C0 003C+00 2/2 0/0 0/0 .text __ct__18daNpcF_ActorMngr_cFv */ -// daNpcF_ActorMngr_c::daNpcF_ActorMngr_c() { -extern "C" void __ct__18daNpcF_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80AE9B5C-80AE9C2C 0022FC 00D0+00 1/0 0/0 0/0 .text __dt__15daNpcF_Lookat_cFv */ -// daNpcF_Lookat_c::~daNpcF_Lookat_c() { -extern "C" void __dt__15daNpcF_Lookat_cFv() { - // NONMATCHING -} - -/* 80AE9C2C-80AE9C68 0023CC 003C+00 5/5 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 80AE9C68-80AE9C6C 002408 0004+00 2/2 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 80AE9C6C-80AE9CA8 00240C 003C+00 5/5 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80AE9CA8-80AE9CAC 002448 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 80AE9CAC-80AE9EF8 00244C 024C+00 1/1 0/0 0/0 .text __dt__8daNpcF_cFv */ -// daNpcF_c::~daNpcF_c() { -extern "C" void __dt__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80AE9EF8-80AEA0E8 002698 01F0+00 1/1 0/0 0/0 .text __ct__8daNpcF_cFv */ -// daNpcF_c::daNpcF_c() { -extern "C" void __ct__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80AEA0E8-80AEA158 002888 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80AEA158-80AEA1B4 0028F8 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80AEA1B4-80AEA224 002954 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80AEA224-80AEA26C 0029C4 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 80AEA26C-80AEA274 002A0C 0008+00 1/0 0/0 0/0 .text ctrlBtk__8daNpcF_cFv */ -// bool daNpcF_c::ctrlBtk() { -extern "C" bool ctrlBtk__8daNpcF_cFv() { - return false; -} - -/* 80AEA274-80AEA278 002A14 0004+00 1/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */ -// void daNpcF_c::setCollisions() { -extern "C" void setCollisions__8daNpcF_cFv() { - /* empty function */ -} - -/* 80AEA278-80AEA280 002A18 0008+00 1/0 0/0 0/0 .text setExpressionAnm__8daNpcF_cFib */ -// bool daNpcF_c::setExpressionAnm(int param_0, bool param_1) { -extern "C" bool setExpressionAnm__8daNpcF_cFib() { - return true; -} - -/* 80AEA280-80AEA288 002A20 0008+00 1/0 0/0 0/0 .text setExpressionBtp__8daNpcF_cFi */ -// bool daNpcF_c::setExpressionBtp(int param_0) { -extern "C" bool setExpressionBtp__8daNpcF_cFi() { - return true; -} - -/* 80AEA288-80AEA28C 002A28 0004+00 1/0 0/0 0/0 .text setExpression__8daNpcF_cFif */ -// void daNpcF_c::setExpression(int param_0, f32 param_1) { -extern "C" void setExpression__8daNpcF_cFif() { - /* empty function */ -} - -/* 80AEA28C-80AEA290 002A2C 0004+00 1/0 0/0 0/0 .text drawOtherMdls__8daNpcF_cFv */ -// void daNpcF_c::drawOtherMdls() { -extern "C" void drawOtherMdls__8daNpcF_cFv() { - /* empty function */ -} - -/* 80AEA290-80AEA2D8 002A30 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AEA724-80AEA730 0001EC 000C+00 2/2 0/0 0/0 .data __vt__17daNpcShoe_Param_c */ -SECTION_DATA extern void* __vt__17daNpcShoe_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__17daNpcShoe_Param_cFv, -}; - -/* 80AEA738-80AEA744 000008 000C+00 1/1 0/0 0/0 .bss @3805 */ -static u8 lit_3805[12]; - -/* 80AEA744-80AEA748 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 80AEA2D8-80AEA340 002A78 0068+00 0/0 1/0 0/0 .text __sinit_d_a_npc_shoe_cpp */ -void __sinit_d_a_npc_shoe_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80AEA2D8, __sinit_d_a_npc_shoe_cpp); -#pragma pop - -/* 80AEA340-80AEA344 002AE0 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__11daNpcShoe_cFv - */ -void daNpcShoe_c::adjustShapeAngle() { - /* empty function */ -} - -/* 80AEA344-80AEA38C 002AE4 0048+00 2/1 0/0 0/0 .text __dt__17daNpcShoe_Param_cFv */ -daNpcShoe_Param_c::~daNpcShoe_Param_c() { - // NONMATCHING -} - -/* 80AEA38C-80AEA394 002B2C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80AEA38C() { - // NONMATCHING -} - -/* 80AEA394-80AEA39C 002B34 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80AEA394() { - // NONMATCHING -} - -/* 80AEA51C-80AEA51C 00016C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */