diff --git a/configure.py b/configure.py index 8a2413f0143..31ca995d934 100755 --- a/configure.py +++ b/configure.py @@ -2140,7 +2140,7 @@ def MatchingFor(*versions): ActorRel(MatchingFor("GZ2E01"), "d_a_obj_zra_freeze"), ActorRel(NonMatching, "d_a_obj_zra_rock"), ActorRel(NonMatching, "d_a_passer_mng"), - ActorRel(NonMatching, "d_a_peru"), + ActorRel(Equivalent, "d_a_peru"), ActorRel(NonMatching, "d_a_ppolamp"), ActorRel(MatchingFor("GZ2E01"), "d_a_skip_2D"), ActorRel(MatchingFor("GZ2E01"), "d_a_startAndGoal", extra_cflags=['-pragma "nosyminline off"']), diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index 2e375eb90b4..a3572b628e9 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -673,10 +673,12 @@ class daNpcT_c : public fopAc_ac_c { static s32 mFindCount; enum Mode { - /* 0 */ MODE_ENTER, - /* 1 */ MODE_INIT, - /* 2 */ MODE_RUN, - /* 3 */ MODE_EXIT, + /* 0 */ MODE_ENTER, + /* 1 */ MODE_INIT, + /* 2 */ MODE_RUN, + /* 3 */ MODE_EXIT, + /* 4 */ MODE_4, + /* -1 */ MODE_INVALID = -1, }; enum AnmFlags { diff --git a/include/d/actor/d_a_obj_catdoor.h b/include/d/actor/d_a_obj_catdoor.h index c4dfa75ecad..3a016b688eb 100644 --- a/include/d/actor/d_a_obj_catdoor.h +++ b/include/d/actor/d_a_obj_catdoor.h @@ -37,6 +37,28 @@ class daObjCatDoor_c : public fopAc_ac_c { inline int create(); inline void create_init(); + void _toDoorOpened() { + mDoor1.angle = 0x8800; + mDoor2.angle = 0x7800; + setBaseMtx(); + fopAcM_onSwitch(this, getSwitchNo()); + } + + void setDoorOpen() { + mRotSpeed = attr()[1]; + dBgW* bgw1 = &mDoor1.bgw; + if (bgw1->ChkUsed()) { + dComIfG_Bgsp().Release(bgw1); + } + + dBgW* bgw2 = &mDoor2.bgw; + if (bgw2->ChkUsed()) { + dComIfG_Bgsp().Release(bgw2); + } + + Z2GetAudioMgr()->seStart(Z2SE_OBJ_GZ_NE_DOOR_OP, ¤t.pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } + private: /* 0x568 */ request_of_phase_process_class mPhaseReq; /* 0x570 */ daObjCatDoor_Door_c mDoor1; diff --git a/include/d/actor/d_a_peru.h b/include/d/actor/d_a_peru.h index 7cb97b16a29..08d237833ff 100644 --- a/include/d/actor/d_a_peru.h +++ b/include/d/actor/d_a_peru.h @@ -1,8 +1,10 @@ #ifndef D_A_PERU_H #define D_A_PERU_H +#include "d/actor/d_a_tag_evtarea.h" #include "dolphin/types.h" #include "d/actor/d_a_npc.h" +#include "SSystem/SComponent/c_counter.h" /** * @ingroup actors-npcs @@ -12,75 +14,141 @@ * @details * */ -class daPeru_c : public fopAc_ac_c { +class daPeru_c : public daNpcT_c { public: - /* 80D46EEC */ ~daPeru_c(); - /* 80D46FCC */ void create(); - /* 80D4720C */ void CreateHeap(); - /* 80D4765C */ void typeInitialize(); - /* 80D47750 */ void Delete(); - /* 80D47784 */ void Execute(); - /* 80D477A4 */ void Draw(); - /* 80D47840 */ void createHeapCallBack(fopAc_ac_c*); - /* 80D47860 */ void ctrlJointCallBack(J3DJoint*, int); - /* 80D478B8 */ void isDelete(); + typedef int (daPeru_c::*cutAppearFunc)(int); + typedef int (daPeru_c::*actionFunc)(int); + + /* 80D46EEC */ virtual ~daPeru_c(); + /* 80D46FCC */ int create(); + /* 80D4720C */ int CreateHeap(); + /* 80D4765C */ int typeInitialize(); + /* 80D47750 */ int Delete(); + /* 80D47784 */ int Execute(); + /* 80D477A4 */ int Draw(); + /* 80D47840 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80D47860 */ static int ctrlJointCallBack(J3DJoint*, int); + /* 80D478B8 */ int isDelete(); /* 80D478EC */ void reset(); /* 80D47B20 */ void setParam(); /* 80D47C4C */ void setAfterTalkMotion(); /* 80D47CAC */ void srchActors(); - /* 80D47D5C */ void evtTalk(); - /* 80D47E48 */ void evtCutProc(); + /* 80D47D5C */ int evtTalk(); + /* 80D47E48 */ int evtCutProc(); /* 80D47F10 */ void action(); /* 80D47F5C */ void setAttnPos(); /* 80D481A4 */ void setCollision(); - /* 80D4835C */ bool drawDbgInfo(); - /* 80D48364 */ void setAction(int (daPeru_c::*)(int), int); - /* 80D48414 */ void wait(int); - /* 80D486A0 */ void is_AppearDemo_start(); + /* 80D4835C */ BOOL drawDbgInfo(); + /* 80D48364 */ int setAction(actionFunc, int); + /* 80D48414 */ int wait(int); + /* 80D486A0 */ BOOL is_AppearDemo_start(); /* 80D48720 */ void _AppearDemoTag_delete(); - /* 80D48750 */ void talk(int); - /* 80D48A7C */ void jump_st(int); - /* 80D48C58 */ void jump_ed(int); - /* 80D48E34 */ void sniff(int); - /* 80D48FA8 */ void demo_appear(int); - /* 80D4910C */ void demo_walk_to_link(int); - /* 80D492A8 */ void demo_walk_circle(int); - /* 80D49418 */ void demo_walk_to_window(int); - /* 80D4971C */ void demo_walk_to_pathway(int); - /* 80D499AC */ void cutAppear(int); - /* 80D49A40 */ void _cutAppear_Init(int const&); - /* 80D4A334 */ void _cutAppear_Main(int const&); + /* 80D48750 */ int talk(int); + /* 80D48A7C */ int jump_st(int); + /* 80D48C58 */ int jump_ed(int); + /* 80D48E34 */ int sniff(int); + /* 80D48FA8 */ int demo_appear(int); + /* 80D4910C */ int demo_walk_to_link(int); + /* 80D492A8 */ int demo_walk_circle(int); + /* 80D49418 */ int demo_walk_to_window(int); + /* 80D4971C */ int demo_walk_to_pathway(int); + /* 80D499AC */ int cutAppear(int); + /* 80D49A40 */ int _cutAppear_Init(int const&); + /* 80D4A334 */ int _cutAppear_Main(int const&); /* 80D4A840 */ void _catdoor_open(); /* 80D4A920 */ void _catdoor_open_demoskip(); - /* 80D4A984 */ void cutAppear_skip(int); - /* 80D4AA18 */ void _cutAppear_skip_Init(int const&); - /* 80D4AAF0 */ void _cutAppear_skip_Main(int const&); - /* 80D4BE2C */ daPeru_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int, - daNpcT_evtData_c const*, char**); - /* 80D4BEC4 */ s32 getEyeballMaterialNo(); - /* 80D4BECC */ s32 getHeadJointNo(); - /* 80D4BED4 */ s32 getNeckJointNo(); - /* 80D4BEDC */ bool getBackboneJointNo(); - /* 80D4BEE4 */ void checkChangeJoint(int); - /* 80D4BEF4 */ void checkRemoveJoint(int); - /* 80D4BF04 */ void beforeMove(); - - static void* mCutNameList[3]; - static u8 mCutList[36]; + /* 80D4A984 */ int cutAppear_skip(int); + /* 80D4AA18 */ int _cutAppear_skip_Init(int const&); + /* 80D4AAF0 */ int _cutAppear_skip_Main(int const&); + /* 80D4BE2C */ daPeru_c(daNpcT_faceMotionAnmData_c const* param_1, + daNpcT_motionAnmData_c const* param_2, + daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4, + daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6, + daNpcT_evtData_c const* param_7, char** param_8) + : daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) { + OS_REPORT("|%06d:%x|daPeru_c -> コンストラクト\n", g_counter, this); + } + /* 80D4BEC4 */ s32 getEyeballMaterialNo() { return 1; } + /* 80D4BECC */ s32 getHeadJointNo() { return 4; } + /* 80D4BED4 */ s32 getNeckJointNo() { return 3; } + /* 80D4BEDC */ s32 getBackboneJointNo() { return 1; } + /* 80D4BEE4 */ int checkChangeJoint(int param_1) { return param_1 == 4; } + /* 80D4BEE4 */ int checkRemoveJoint(int param_1) { return param_1 == 5; } + /* 80D4BF04 */ void beforeMove() { + if (checkHide() || mNoDraw) { + attention_info.flags = 0; + } + } + + u8 getType() { + u8 type = fopAcM_GetParam(this); + if (type == 0xff) { + type = 0; + } + return type; + } + + int getFlowNodeNo() { + u16 flowNode = home.angle.x; + if (flowNode == 0xffff) { + return -1; + } + return flowNode; + } + + bool chkAction(actionFunc func) { return mActionFunc == func; } + void _AppearDemoStart() { mEvtNo = 1; } + + BOOL decTimer() { + field_0xe6c--; + return field_0xe6c <= 0; + } + + BOOL decCnt() { + field_0xe6a--; + return field_0xe6a <= 0; + } + + void setTimer(int timer) { field_0xe6c = timer; } + void setCnt(int cnt) { field_0xe6a = cnt; } + int getCnt() { return field_0xe6a; } + + static const char* mCutNameList[3]; + static cutAppearFunc mCutList[3]; private: - /* 0x568 */ u8 field_0x568[0x112c - 0x568]; + /* 0x0E40 */ daNpcT_ActorMngr_c mActors[3]; + /* 0x0E58 */ int field_0xe58; + /* 0x0E5C */ actionFunc mActionFunc; + /* 0x0E68 */ s16 field_0xe68; + /* 0x0E6A */ s16 field_0xe6a; + /* 0x0E6C */ s16 field_0xe6c; + /* 0x0E6E */ s16 field_0xe6e; + /* 0x0E70 */ u8 field_0xe70[0xe7c - 0xe70]; + /* 0x0E7C */ s8 field_0xe7c; + /* 0x0E80 */ int field_0xe80; + /* 0x0E84 */ int field_0xe84; + /* 0x0E88 */ dCcD_Cyl mCyls[2]; + /* 0x1100 */ daNpcT_Path_c mPath; + /* 0x1128 */ u8 mType; + /* 0x1129 */ u8 field_0x1129; }; STATIC_ASSERT(sizeof(daPeru_c) == 0x112c); +struct PeruParams { + f32 field_0x00[18]; + s16 field_0x48[4]; + f32 field_0x50[4]; + s16 field_0x60[2]; + f32 field_0x64[13]; +}; + class daPeru_Param_c { public: - /* 80D4BF7C */ ~daPeru_Param_c(); + /* 80D4BF7C */ virtual ~daPeru_Param_c() {} - static u8 const m[152]; + static PeruParams const m; }; #endif /* D_A_PERU_H */ diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index ea0694e0d8b..59b1238599c 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -387,6 +387,18 @@ inline f32 fopAcM_getCullSizeSphereR(const fopAc_ac_c* i_actor) { return i_actor->cull.sphere.radius; } +inline void fopAcM_SetPosition(fopAc_ac_c* i_actor, f32 x, f32 y, f32 z) { + i_actor->current.pos.set(x, y, z); +} + +inline void fopAcM_SetOldPosition(fopAc_ac_c* i_actor, f32 x, f32 y, f32 z) { + i_actor->old.pos.set(x, y, z); +} + +inline void fopAcM_SetHomePosition(fopAc_ac_c* i_actor, f32 x, f32 y, f32 z) { + i_actor->home.pos.set(x, y, z); +} + inline void dComIfGs_onSwitch(int i_no, int i_roomNo); inline void dComIfGs_offSwitch(int i_no, int i_roomNo); inline BOOL dComIfGs_isSwitch(int i_no, int i_roomNo); diff --git a/src/d/actor/d_a_peru.cpp b/src/d/actor/d_a_peru.cpp index 3a67093f09c..490001bed0f 100644 --- a/src/d/actor/d_a_peru.cpp +++ b/src/d/actor/d_a_peru.cpp @@ -4,348 +4,43 @@ */ #include "d/actor/d_a_peru.h" -#include "dol2asm.h" - -// -// Forward References: -// - -extern "C" void __dt__8daPeru_cFv(); -extern "C" void create__8daPeru_cFv(); -extern "C" void CreateHeap__8daPeru_cFv(); -extern "C" void __dt__15J3DTevKColorAnmFv(); -extern "C" void __ct__15J3DTevKColorAnmFv(); -extern "C" void __dt__14J3DTevColorAnmFv(); -extern "C" void __ct__14J3DTevColorAnmFv(); -extern "C" void __dt__11J3DTexNoAnmFv(); -extern "C" void __ct__11J3DTexNoAnmFv(); -extern "C" void __dt__12J3DTexMtxAnmFv(); -extern "C" void __ct__12J3DTexMtxAnmFv(); -extern "C" void __dt__14J3DMatColorAnmFv(); -extern "C" void __ct__14J3DMatColorAnmFv(); -extern "C" void typeInitialize__8daPeru_cFv(); -extern "C" void Delete__8daPeru_cFv(); -extern "C" void Execute__8daPeru_cFv(); -extern "C" void Draw__8daPeru_cFv(); -extern "C" void createHeapCallBack__8daPeru_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__8daPeru_cFP8J3DJointi(); -extern "C" void isDelete__8daPeru_cFv(); -extern "C" void reset__8daPeru_cFv(); -extern "C" void setParam__8daPeru_cFv(); -extern "C" void setAfterTalkMotion__8daPeru_cFv(); -extern "C" void srchActors__8daPeru_cFv(); -extern "C" void evtTalk__8daPeru_cFv(); -extern "C" void evtCutProc__8daPeru_cFv(); -extern "C" void action__8daPeru_cFv(); -extern "C" void setAttnPos__8daPeru_cFv(); -extern "C" void setCollision__8daPeru_cFv(); -extern "C" bool drawDbgInfo__8daPeru_cFv(); -extern "C" void setAction__8daPeru_cFM8daPeru_cFPCvPvi_ii(); -extern "C" void wait__8daPeru_cFi(); -extern "C" void is_AppearDemo_start__8daPeru_cFv(); -extern "C" void _AppearDemoTag_delete__8daPeru_cFv(); -extern "C" void talk__8daPeru_cFi(); -extern "C" void jump_st__8daPeru_cFi(); -extern "C" void jump_ed__8daPeru_cFi(); -extern "C" void sniff__8daPeru_cFi(); -extern "C" void demo_appear__8daPeru_cFi(); -extern "C" void demo_walk_to_link__8daPeru_cFi(); -extern "C" void demo_walk_circle__8daPeru_cFi(); -extern "C" void demo_walk_to_window__8daPeru_cFi(); -extern "C" void demo_walk_to_pathway__8daPeru_cFi(); -extern "C" void cutAppear__8daPeru_cFi(); -extern "C" void _cutAppear_Init__8daPeru_cFRCi(); -extern "C" void _cutAppear_Main__8daPeru_cFRCi(); -extern "C" void _catdoor_open__8daPeru_cFv(); -extern "C" void _catdoor_open_demoskip__8daPeru_cFv(); -extern "C" void cutAppear_skip__8daPeru_cFi(); -extern "C" void _cutAppear_skip_Init__8daPeru_cFRCi(); -extern "C" void _cutAppear_skip_Main__8daPeru_cFRCi(); -extern "C" static void daPeru_Create__FPv(); -extern "C" static void daPeru_Delete__FPv(); -extern "C" static void daPeru_Execute__FPv(); -extern "C" static void daPeru_Draw__FPv(); -extern "C" static bool daPeru_IsDelete__FPv(); -extern "C" void calc__11J3DTexNoAnmCFPUs(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __dt__8daNpcT_cFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __dt__5csXyzFv(); -extern "C" void __dt__18daNpcT_ActorMngr_cFv(); -extern "C" void __dt__8dCcD_CylFv(); -extern "C" void __dt__13daNpcT_Path_cFv(); -extern "C" void __ct__8dCcD_CylFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __ct__18daNpcT_ActorMngr_cFv(); -extern "C" void -__ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __dt__15daNpcT_JntAnm_cFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__22daNpcT_MotionSeqMngr_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" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs(); -extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs(); -extern "C" void ctrlSubFaceMotion__8daNpcT_cFi(); -extern "C" s32 getFootLJointNo__8daNpcT_cFv(); -extern "C" s32 getFootRJointNo__8daNpcT_cFv(); -extern "C" bool getEyeballLMaterialNo__8daNpcT_cFv(); -extern "C" bool getEyeballRMaterialNo__8daNpcT_cFv(); -extern "C" void afterJntAnm__8daNpcT_cFi(); -extern "C" bool checkChangeEvt__8daNpcT_cFv(); -extern "C" bool evtEndProc__8daNpcT_cFv(); -extern "C" void afterMoved__8daNpcT_cFv(); -extern "C" bool chkXYItems__8daNpcT_cFv(); -extern "C" void decTmr__8daNpcT_cFv(); -extern "C" void drawOtherMdl__8daNpcT_cFv(); -extern "C" void drawGhost__8daNpcT_cFv(); -extern "C" bool afterSetFaceMotionAnm__8daNpcT_cFiifi(); -extern "C" bool afterSetMotionAnm__8daNpcT_cFiifi(); -extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c(); -extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c(); -extern "C" void changeAnm__8daNpcT_cFPiPi(); -extern "C" void changeBck__8daNpcT_cFPiPi(); -extern "C" void changeBtp__8daNpcT_cFPiPi(); -extern "C" void changeBtk__8daNpcT_cFPiPi(); -extern "C" void __sinit_d_a_peru_cpp(); -extern "C" void -__ct__8daPeru_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc(); -extern "C" s32 getEyeballMaterialNo__8daPeru_cFv(); -extern "C" s32 getHeadJointNo__8daPeru_cFv(); -extern "C" s32 getNeckJointNo__8daPeru_cFv(); -extern "C" bool getBackboneJointNo__8daPeru_cFv(); -extern "C" void checkChangeJoint__8daPeru_cFi(); -extern "C" void checkRemoveJoint__8daPeru_cFi(); -extern "C" void beforeMove__8daPeru_cFv(); -extern "C" void __dt__14daPeru_Param_cFv(); -extern "C" static void func_80D4BFC4(); -extern "C" static void func_80D4BFCC(); -extern "C" void chkPointInArea__15daTag_EvtArea_cF4cXyz(); -extern "C" void checkNowWolf__9daPy_py_cFv(); -extern "C" u8 const m__14daPeru_Param_c[152]; -extern "C" extern char const* const d_a_peru__stringBase0; -extern "C" void* mCutNameList__8daPeru_c[3]; -extern "C" u8 mCutList__8daPeru_c[36]; - -// -// External References: -// - -extern "C" void ZXYrotS__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAc_IsActor__FPv(); -extern "C" void fopAcM_SearchByName__FsPP10fopAc_ac_c(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void dComIfGs_wolfeye_effect_check__Fv(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getIsAddvance__16dEvent_manager_cFi(); -extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii(); -extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void Release__4cBgSFP9dBgW_Base(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWallR__12dBgS_AcchCirFf(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -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__18daNpcT_ActorMngr_cFv(); -extern "C" void entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void remove__18daNpcT_ActorMngr_cFv(); -extern "C" void getActorP__18daNpcT_ActorMngr_cFv(); -extern "C" void initialize__15daNpcT_MatAnm_cFv(); -extern "C" void initialize__22daNpcT_MotionSeqMngr_cFv(); -extern "C" void initialize__13daNpcT_Path_cFv(); -extern "C" void initialize__15daNpcT_JntAnm_cFv(); -extern "C" void setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz(); -extern "C" void calcJntRad__15daNpcT_JntAnm_cFfff(); -extern "C" void calc__19daNpcT_DmgStagger_cFi(); -extern "C" void tgHitCallBack__8daNpcT_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf(); -extern "C" void loadRes__8daNpcT_cFPCScPPCc(); -extern "C" void deleteRes__8daNpcT_cFPCScPPCc(); -extern "C" void execute__8daNpcT_cFv(); -extern "C" void draw__8daNpcT_cFiifP11_GXColorS10fiii(); -extern "C" void ctrlBtk__8daNpcT_cFv(); -extern "C" void setMtx__8daNpcT_cFv(); -extern "C" void ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel(); -extern "C" void evtProc__8daNpcT_cFv(); -extern "C" void setFootPos__8daNpcT_cFv(); -extern "C" void setFootPrtcl__8daNpcT_cFP4cXyzff(); -extern "C" bool checkCullDraw__8daNpcT_cFv(); -extern "C" void twilight__8daNpcT_cFv(); -extern "C" void evtOrder__8daNpcT_cFv(); -extern "C" void clrParam__8daNpcT_cFv(); -extern "C" void setFaceMotionAnm__8daNpcT_cFib(); -extern "C" void setMotionAnm__8daNpcT_cFifi(); -extern "C" void setAngle__8daNpcT_cFs(); -extern "C" void chkActorInSight__8daNpcT_cFP10fopAc_ac_cfs(); -extern "C" void srchPlayerActor__8daNpcT_cFv(); -extern "C" void step__8daNpcT_cFsiiii(); -extern "C" void initTalk__8daNpcT_cFiPP10fopAc_ac_c(); -extern "C" void talkProc__8daNpcT_cFPiiPP10fopAc_ac_ci(); -extern "C" void getEvtAreaTagP__8daNpcT_cFii(); -extern "C" void daNpcT_getDistTableIdx__Fii(); -extern "C" void daNpcT_onEvtBit__FUl(); -extern "C" void daNpcT_chkEvtBit__FUl(); -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 __mi__4cXyzCFRC3Vec(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rndF__Ff(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void ChkUsed__9cBgW_BgIdCFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_chaseAngleS__FPsss(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void __ct__10Z2CreatureFv(); -extern "C" void __dt__10Z2CreatureFv(); -extern "C" void init__10Z2CreatureFP3VecP3VecUcUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void getTexNo__16J3DAnmTexPatternCFUsPUs(); -extern "C" void initialize__14J3DMaterialAnmFv(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_test(); -extern "C" void __ptmf_cmpr(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_20(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_20(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_24(); -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__8daNpcT_c[68]; -extern "C" extern void* __vt__8daNpcT_c[49]; -extern "C" extern void* __vt__15daNpcT_MatAnm_c[4 + 1 /* padding */]; -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" extern void* __vt__14J3DMaterialAnm[4]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void chkPointInArea__15daTag_EvtArea_cF4cXyz4cXyz(); -extern "C" void attr__14daObjCatDoor_cCFv(); -extern "C" void setBaseMtx__14daObjCatDoor_cFv(); -extern "C" void __register_global_object(); - -// -// Declarations: -// +#include "Z2AudioLib/Z2Instances.h" +#include "d/actor/d_a_obj_catdoor.h" -/* ############################################################################################## */ -/* 80D4C1B0-80D4C1B0 000150 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D4C1B0 = ""; -SECTION_DEAD static char const* const stringBase_80D4C1B1 = "PERU_APPEAR"; -SECTION_DEAD static char const* const stringBase_80D4C1BD = "PERU_APPEAR_SKIP"; -SECTION_DEAD static char const* const stringBase_80D4C1CE = "Peru"; -#pragma pop - -/* 80D4C1DC-80D4C1E8 000000 000C+00 3/3 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80D4C1E8-80D4C1FC 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 */] = { - 0x02000201, - /* padding */ - 0x40080000, - 0x00000000, - 0x3FE00000, - 0x00000000, -}; -#pragma pop +UNK_REL_DATA /* 80D4C1FC-80D4C204 000020 0008+00 1/1 0/0 0/0 .data l_bmdData */ -SECTION_DATA static u8 l_bmdData[8] = { - 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x01, +static int l_bmdData[1][2] = { + 24, 1, }; /* 80D4C204-80D4C21C -00001 0018+00 0/1 0/0 0/0 .data l_evtList */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_evtList[6] = { - (void*)&d_a_peru__stringBase0, - (void*)NULL, - (void*)(((char*)&d_a_peru__stringBase0) + 0x1), - (void*)0x00000001, - (void*)(((char*)&d_a_peru__stringBase0) + 0xD), - (void*)0x00000001, +static daNpcT_evtData_c l_evtList[3] = { + {"", 0}, + {"PERU_APPEAR", 1}, + {"PERU_APPEAR_SKIP", 1}, }; -#pragma pop /* 80D4C21C-80D4C224 -00001 0008+00 2/3 0/0 0/0 .data l_resNameList */ -SECTION_DATA static void* l_resNameList[2] = { - (void*)&d_a_peru__stringBase0, - (void*)(((char*)&d_a_peru__stringBase0) + 0x1E), +static char* l_resNameList[2] = { + "", + "Peru", }; /* 80D4C224-80D4C228 000048 0002+02 1/0 0/0 0/0 .data l_loadResPtrn0 */ -SECTION_DATA static u16 l_loadResPtrn0[1 + 1 /* padding */] = { - 0x01FF, - /* padding */ - 0x0000, +static s8 l_loadResPtrn0[2] = { + 1, -1, }; /* 80D4C228-80D4C234 -00001 000C+00 1/2 0/0 0/0 .data l_loadResPtrnList */ -SECTION_DATA static void* l_loadResPtrnList[3] = { - (void*)&l_loadResPtrn0, - (void*)&l_loadResPtrn0, - (void*)&l_loadResPtrn0, +static s8* l_loadResPtrnList[3] = { + l_loadResPtrn0, + l_loadResPtrn0, + l_loadResPtrn0, }; /* 80D4C234-80D4C2C0 000058 008C+00 0/1 0/0 0/0 .data l_faceMotionAnmData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_faceMotionAnmData[140] = { +static u8 l_faceMotionAnmData[140] = { 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x02, @@ -356,12 +51,9 @@ SECTION_DATA static u8 l_faceMotionAnmData[140] = { 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, }; -#pragma pop /* 80D4C2C0-80D4C3F4 0000E4 0134+00 0/1 0/0 0/0 .data l_motionAnmData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_motionAnmData[308] = { +static u8 l_motionAnmData[308] = { 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, @@ -383,24 +75,18 @@ SECTION_DATA static u8 l_motionAnmData[308] = { 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, }; -#pragma pop /* 80D4C3F4-80D4C444 000218 0050+00 0/1 0/0 0/0 .data l_faceMotionSequenceData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_faceMotionSequenceData[80] = { +static u8 l_faceMotionSequenceData[80] = { 0x00, 0x01, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x02, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x04, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, }; -#pragma pop /* 80D4C444-80D4C4E4 000268 00A0+00 0/1 0/0 0/0 .data l_motionSequenceData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_motionSequenceData[160] = { +static u8 l_motionSequenceData[160] = { 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x01, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x02, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, @@ -412,1607 +98,1211 @@ SECTION_DATA static u8 l_motionSequenceData[160] = { 0x00, 0x03, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x04, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, }; -#pragma pop /* 80D4C4E4-80D4C4F0 -00001 000C+00 1/1 0/0 0/0 .data mCutNameList__8daPeru_c */ -SECTION_DATA void* daPeru_c::mCutNameList[3] = { - (void*)&d_a_peru__stringBase0, - (void*)(((char*)&d_a_peru__stringBase0) + 0x1), - (void*)(((char*)&d_a_peru__stringBase0) + 0xD), +const char* daPeru_c::mCutNameList[3] = { + "", + "PERU_APPEAR", + "PERU_APPEAR_SKIP", }; -/* 80D4C4F0-80D4C4FC -00001 000C+00 0/1 0/0 0/0 .data @3835 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3835[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutAppear__8daPeru_cFi, -}; -#pragma pop - -/* 80D4C4FC-80D4C508 -00001 000C+00 0/1 0/0 0/0 .data @3836 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3836[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutAppear_skip__8daPeru_cFi, -}; -#pragma pop - /* 80D4C508-80D4C52C 00032C 0024+00 1/2 0/0 0/0 .data mCutList__8daPeru_c */ -SECTION_DATA u8 daPeru_c::mCutList[36] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80D4C52C-80D4C538 -00001 000C+00 1/1 0/0 0/0 .data @4467 */ -SECTION_DATA static void* lit_4467[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__8daPeru_cFi, -}; - -/* 80D4C538-80D4C544 -00001 000C+00 1/1 0/0 0/0 .data @4568 */ -SECTION_DATA static void* lit_4568[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__8daPeru_cFi, -}; - -/* 80D4C544-80D4C550 -00001 000C+00 1/1 0/0 0/0 .data @4576 */ -SECTION_DATA static void* lit_4576[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__8daPeru_cFi, -}; - -/* 80D4C550-80D4C55C -00001 000C+00 1/1 0/0 0/0 .data @4938 */ -SECTION_DATA static void* lit_4938[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__8daPeru_cFi, -}; - -/* 80D4C55C-80D4C568 -00001 000C+00 1/1 0/0 0/0 .data @4943 */ -SECTION_DATA static void* lit_4943[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__8daPeru_cFi, -}; - -/* 80D4C568-80D4C574 -00001 000C+00 1/1 0/0 0/0 .data @5029 */ -SECTION_DATA static void* lit_5029[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)jump_ed__8daPeru_cFi, -}; - -/* 80D4C574-80D4C580 -00001 000C+00 1/1 0/0 0/0 .data @5082 */ -SECTION_DATA static void* lit_5082[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__8daPeru_cFi, -}; - -/* 80D4C580-80D4C58C -00001 000C+00 1/1 0/0 0/0 .data @5131 */ -SECTION_DATA static void* lit_5131[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__8daPeru_cFi, -}; - -/* 80D4C58C-80D4C598 -00001 000C+00 1/1 0/0 0/0 .data @5219 */ -SECTION_DATA static void* lit_5219[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__8daPeru_cFi, -}; - -/* 80D4C598-80D4C5A4 -00001 000C+00 1/1 0/0 0/0 .data @5259 */ -SECTION_DATA static void* lit_5259[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__8daPeru_cFi, -}; - -/* 80D4C5A4-80D4C5B0 -00001 000C+00 1/1 0/0 0/0 .data @5295 */ -SECTION_DATA static void* lit_5295[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__8daPeru_cFi, -}; - -/* 80D4C5B0-80D4C5BC -00001 000C+00 1/1 0/0 0/0 .data @5372 */ -SECTION_DATA static void* lit_5372[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__8daPeru_cFi, -}; - -/* 80D4C5BC-80D4C5C8 -00001 000C+00 0/1 0/0 0/0 .data @5460 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5460[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_appear__8daPeru_cFi, -}; -#pragma pop - -/* 80D4C5C8-80D4C5D4 -00001 000C+00 0/1 0/0 0/0 .data @5464 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5464[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_walk_to_link__8daPeru_cFi, -}; -#pragma pop - -/* 80D4C5D4-80D4C5E0 -00001 000C+00 0/1 0/0 0/0 .data @5467 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5467[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)sniff__8daPeru_cFi, -}; -#pragma pop - -/* 80D4C5E0-80D4C5EC -00001 000C+00 0/1 0/0 0/0 .data @5471 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5471[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_walk_circle__8daPeru_cFi, -}; -#pragma pop - -/* 80D4C5EC-80D4C5F8 -00001 000C+00 0/1 0/0 0/0 .data @5488 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5488[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_walk_to_window__8daPeru_cFi, -}; -#pragma pop - -/* 80D4C5F8-80D4C604 -00001 000C+00 0/1 0/0 0/0 .data @5493 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5493[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_walk_to_pathway__8daPeru_cFi, -}; -#pragma pop - -/* 80D4C604-80D4C610 -00001 000C+00 1/1 0/0 0/0 .data @5711 */ -SECTION_DATA static void* lit_5711[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)jump_st__8daPeru_cFi, -}; - -/* 80D4C610-80D4C61C -00001 000C+00 1/1 0/0 0/0 .data @5846 */ -SECTION_DATA static void* lit_5846[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__8daPeru_cFi, -}; - -/* 80D4C61C-80D4C63C -00001 0020+00 1/0 0/0 0/0 .data daPeru_MethodTable */ -static actor_method_class daPeru_MethodTable = { - (process_method_func)daPeru_Create__FPv, - (process_method_func)daPeru_Delete__FPv, - (process_method_func)daPeru_Execute__FPv, - (process_method_func)daPeru_IsDelete__FPv, - (process_method_func)daPeru_Draw__FPv, -}; - -/* 80D4C63C-80D4C66C -00001 0030+00 0/0 0/0 1/0 .data g_profile_PERU */ -extern actor_process_profile_definition g_profile_PERU = { - fpcLy_CURRENT_e, // mLayerID - 7, // mListID - fpcPi_CURRENT_e, // mListPrio - PROC_PERU, // mProcName - &g_fpcLf_Method.base, // sub_method - sizeof(daPeru_c), // mSize - 0, // mSizeOther - 0, // mParameters - &g_fopAc_Method.base, // sub_method - 694, // mPriority - &daPeru_MethodTable, // sub_method - 0x08044108, // mStatus - fopAc_NPC_e, // mActorType - fopAc_CULLBOX_CUSTOM_e, // cullType -}; - -/* 80D4C66C-80D4C678 000490 000C+00 2/2 0/0 0/0 .data __vt__11J3DTexNoAnm */ -SECTION_DATA extern void* __vt__11J3DTexNoAnm[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)calc__11J3DTexNoAnmCFPUs, -}; - -/* 80D4C678-80D4C684 00049C 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, -}; - -/* 80D4C684-80D4C690 0004A8 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, -}; - -/* 80D4C690-80D4C69C 0004B4 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, -}; - -/* 80D4C69C-80D4C6C0 0004C0 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_80D4BFCC, - (void*)NULL, - (void*)NULL, - (void*)func_80D4BFC4, -}; - -/* 80D4C6C0-80D4C6CC 0004E4 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, -}; - -/* 80D4C6CC-80D4C6D8 0004F0 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, -}; - -/* 80D4C6D8-80D4C6E4 0004FC 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, -}; - -/* 80D4C6E4-80D4C6F0 000508 000C+00 3/3 0/0 0/0 .data __vt__22daNpcT_MotionSeqMngr_c */ -SECTION_DATA extern void* __vt__22daNpcT_MotionSeqMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__22daNpcT_MotionSeqMngr_cFv, -}; - -/* 80D4C6F0-80D4C6FC 000514 000C+00 5/5 0/0 0/0 .data __vt__18daNpcT_ActorMngr_c */ -SECTION_DATA extern void* __vt__18daNpcT_ActorMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daNpcT_ActorMngr_cFv, -}; - -/* 80D4C6FC-80D4C708 000520 000C+00 3/3 0/0 0/0 .data __vt__15daNpcT_JntAnm_c */ -SECTION_DATA extern void* __vt__15daNpcT_JntAnm_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daNpcT_JntAnm_cFv, -}; - -/* 80D4C708-80D4C714 00052C 000C+00 3/3 0/0 0/0 .data __vt__13daNpcT_Path_c */ -SECTION_DATA extern void* __vt__13daNpcT_Path_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daNpcT_Path_cFv, -}; - -/* 80D4C714-80D4C7D8 000538 00C4+00 2/2 0/0 0/0 .data __vt__8daPeru_c */ -SECTION_DATA extern void* __vt__8daPeru_c[49] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8daPeru_cFv, - (void*)ctrlBtk__8daNpcT_cFv, - (void*)ctrlSubFaceMotion__8daNpcT_cFi, - (void*)checkChangeJoint__8daPeru_cFi, - (void*)checkRemoveJoint__8daPeru_cFi, - (void*)getBackboneJointNo__8daPeru_cFv, - (void*)getNeckJointNo__8daPeru_cFv, - (void*)getHeadJointNo__8daPeru_cFv, - (void*)getFootLJointNo__8daNpcT_cFv, - (void*)getFootRJointNo__8daNpcT_cFv, - (void*)getEyeballLMaterialNo__8daNpcT_cFv, - (void*)getEyeballRMaterialNo__8daNpcT_cFv, - (void*)getEyeballMaterialNo__8daPeru_cFv, - (void*)ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel, - (void*)afterJntAnm__8daNpcT_cFi, - (void*)setParam__8daPeru_cFv, - (void*)checkChangeEvt__8daNpcT_cFv, - (void*)evtTalk__8daPeru_cFv, - (void*)evtEndProc__8daNpcT_cFv, - (void*)evtCutProc__8daPeru_cFv, - (void*)setAfterTalkMotion__8daPeru_cFv, - (void*)evtProc__8daNpcT_cFv, - (void*)action__8daPeru_cFv, - (void*)beforeMove__8daPeru_cFv, - (void*)afterMoved__8daNpcT_cFv, - (void*)setAttnPos__8daPeru_cFv, - (void*)setFootPos__8daNpcT_cFv, - (void*)setCollision__8daPeru_cFv, - (void*)setFootPrtcl__8daNpcT_cFP4cXyzff, - (void*)checkCullDraw__8daNpcT_cFv, - (void*)twilight__8daNpcT_cFv, - (void*)chkXYItems__8daNpcT_cFv, - (void*)evtOrder__8daNpcT_cFv, - (void*)decTmr__8daNpcT_cFv, - (void*)clrParam__8daNpcT_cFv, - (void*)drawDbgInfo__8daPeru_cFv, - (void*)drawOtherMdl__8daNpcT_cFv, - (void*)drawGhost__8daNpcT_cFv, - (void*)afterSetFaceMotionAnm__8daNpcT_cFiifi, - (void*)afterSetMotionAnm__8daNpcT_cFiifi, - (void*)getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c, - (void*)getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c, - (void*)changeAnm__8daNpcT_cFPiPi, - (void*)changeBck__8daNpcT_cFPiPi, - (void*)changeBtp__8daNpcT_cFPiPi, - (void*)changeBtk__8daNpcT_cFPiPi, - (void*)setMotionAnm__8daNpcT_cFifi, +daPeru_c::cutAppearFunc daPeru_c::mCutList[3] = { + NULL, + &daPeru_c::cutAppear, + &daPeru_c::cutAppear_skip, }; /* 80D46EEC-80D46FCC 0000EC 00E0+00 1/0 0/0 0/0 .text __dt__8daPeru_cFv */ daPeru_c::~daPeru_c() { - // NONMATCHING + OS_REPORT("|%06d:%x|daPeru_c -> デストラクト\n", g_Counter, this); + if (heap != NULL) { + mpMorf[0]->stopZelAnime(); + } + deleteRes(l_loadResPtrnList[mType], (const char**) l_resNameList); } /* ############################################################################################## */ /* 80D4C060-80D4C0F8 000000 0098+00 19/19 0/0 0/0 .rodata m__14daPeru_Param_c */ -SECTION_RODATA u8 const daPeru_Param_c::m[152] = { - 0x42, 0x70, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0x66, 0x00, 0x00, - 0x43, 0x7F, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC1, 0xF0, 0x00, 0x00, - 0x41, 0xF0, 0x00, 0x00, 0xC1, 0xF0, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0xC2, 0x34, 0x00, 0x00, - 0x3F, 0x19, 0x99, 0x9A, 0x41, 0x40, 0x00, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x05, 0x00, 0x06, - 0x42, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +PeruParams const daPeru_Param_c::m = { + 60.0f, + -3.0f, + 1.0f, + 230.0f, + 255.0f, + 60.0f, + 30.0f, + 30.0f, + 0.0f, + 0.0f, + 30.0f, + -30.0f, + 30.0f, + -30.0f, + 45.0f, + -45.0f, + 0.6000000238418579, + 12.0f, + 3, + 6, + 5, + 6, + 110.0f, + 0.0f, + 0.0f, + 0.0f, + 60, + 8, + 0.0f, + 0.0f, + 4.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, }; -COMPILER_STRIP_GATE(0x80D4C060, &daPeru_Param_c::m); - -/* 80D4C0F8-80D4C0FC 000098 0004+00 0/2 0/0 0/0 .rodata @4050 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4050 = -300.0f; -COMPILER_STRIP_GATE(0x80D4C0F8, &lit_4050); -#pragma pop - -/* 80D4C0FC-80D4C100 00009C 0004+00 0/1 0/0 0/0 .rodata @4051 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4051 = -50.0f; -COMPILER_STRIP_GATE(0x80D4C0FC, &lit_4051); -#pragma pop - -/* 80D4C100-80D4C104 0000A0 0004+00 0/2 0/0 0/0 .rodata @4052 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4052 = 300.0f; -COMPILER_STRIP_GATE(0x80D4C100, &lit_4052); -#pragma pop - -/* 80D4C104-80D4C108 0000A4 0004+00 0/1 0/0 0/0 .rodata @4053 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4053 = 450.0f; -COMPILER_STRIP_GATE(0x80D4C104, &lit_4053); -#pragma pop /* 80D46FCC-80D4720C 0001CC 0240+00 1/1 0/0 0/0 .text create__8daPeru_cFv */ -void daPeru_c::create() { - // NONMATCHING +int daPeru_c::create() { + fopAcM_SetupActor2(this, daPeru_c, (daNpcT_faceMotionAnmData_c*)l_faceMotionAnmData, (daNpcT_motionAnmData_c*)l_motionAnmData, (daNpcT_MotionSeqMngr_c::sequenceStepData_c*)l_faceMotionSequenceData, 4, (daNpcT_MotionSeqMngr_c::sequenceStepData_c*)l_motionSequenceData, 4, l_evtList, l_resNameList); + OS_REPORT("------------ ルイーズ生成処理開始\n"); + mType = getType(); + OS_REPORT("type=%d\n", mType); + if (typeInitialize() == cPhs_ERROR_e) { + return cPhs_ERROR_e; + } + mFlowNodeNo = getFlowNodeNo(); + mTwilight = dKy_darkworld_check(); + int rv = loadRes(l_loadResPtrnList[mType], (const char**)l_resNameList); + if (rv == cPhs_COMPLEATE_e) { + if (fopAcM_entrySolidHeap(this, createHeapCallBack, 0x3200) == 0) { + return cPhs_ERROR_e; + } + OS_REPORT("\t(%s:%d) flowNo:%d<%08x> ", fopAcM_getProcNameString(this), mType, mFlowNodeNo, + fopAcM_GetParam(this)); + if (isDelete()) { + OS_REPORT("===>isDelete:TRUE\n"); + return cPhs_ERROR_e; + } + OS_REPORT("\n"); + mpMorf[0]->getModel()->getModelData(); + fopAcM_SetMtx(this, mpMorf[0]->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -300.0f, -50.0f, + -300.0f, 300.0f, + 450.0f, 300.0f); + mSound.init(¤t.pos, &eyePos, 3, 1); + 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)); + mCcStts.Init(daPeru_Param_c::m.field_0x00[4], 0, this); + for (int i = 0; i < 2; i++) { + mCyls[i].Set(mCcDCyl); + mCyls[i].SetStts(&mCcStts); + mCyls[i].SetTgHitCallback(tgHitCallBack); + } + reset(); + mCreating = true; + Execute(); + mCreating = false; + OS_REPORT("------------ ルイーズ生成\n"); + } + OS_REPORT("------------ ルイーズ生成処理終了\n"); + return rv; } -/* ############################################################################################## */ -/* 80D4C108-80D4C10C 0000A8 0004+00 5/20 0/0 0/0 .rodata @4199 */ -SECTION_RODATA static u8 const lit_4199[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D4C108, &lit_4199); - -/* 80D4C10C-80D4C110 0000AC 0004+00 0/2 0/0 0/0 .rodata @4200 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4200 = 65536.0f; -COMPILER_STRIP_GATE(0x80D4C10C, &lit_4200); -#pragma pop - -/* 80D4C110-80D4C114 0000B0 0004+00 0/3 0/0 0/0 .rodata @4201 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4201 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x80D4C110, &lit_4201); -#pragma pop - -/* 80D4C114-80D4C118 0000B4 0004+00 3/5 0/0 0/0 .rodata @4348 */ -SECTION_RODATA static f32 const lit_4348 = 1.0f; -COMPILER_STRIP_GATE(0x80D4C114, &lit_4348); - /* 80D4720C-80D474A0 00040C 0294+00 1/1 0/0 0/0 .text CreateHeap__8daPeru_cFv */ -void daPeru_c::CreateHeap() { - // NONMATCHING +int daPeru_c::CreateHeap() { + // Not sure how to force 0 assignment otherwise. + enum IdxVal {dummy_zero}; + IdxVal idx; + if (mTwilight == 1) { + idx = dummy_zero; + } else { + idx = dummy_zero; + } + J3DModelData* mdlData_p = + (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[idx][1]], l_bmdData[idx][0]); + JUT_ASSERT(660, 0 != mdlData_p); + mpMorf[0] = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, + 0x11020284); + if (mpMorf[0] != NULL && mpMorf[0]->getModel() == NULL) { + mpMorf[0]->stopZelAnime(); + mpMorf[0] = NULL; + } + + if (mpMorf[0] == NULL) { + return 0; + } + + J3DModel* model = (J3DModel*)mpMorf[0]->getModel(); + for (u16 i = 0; i < mdlData_p->getJointNum(); i++) { + mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + } + + model->setUserArea((u32)this); + mpMatAnm = new daNpcT_MatAnm_c(); + if (mpMatAnm == NULL) { + return 0; + } + + if (setFaceMotionAnm(1, false) && setMotionAnm(0, 0.0f, 0)) { + return 1; + } + + return 0; } -/* 80D474A0-80D474DC 0006A0 003C+00 1/1 0/0 0/0 .text __dt__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::~J3DTevKColorAnm() { -extern "C" void __dt__15J3DTevKColorAnmFv() { - // NONMATCHING -} - -/* 80D474DC-80D474F4 0006DC 0018+00 1/1 0/0 0/0 .text __ct__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::J3DTevKColorAnm() { -extern "C" void __ct__15J3DTevKColorAnmFv() { - // NONMATCHING -} - -/* 80D474F4-80D47530 0006F4 003C+00 1/1 0/0 0/0 .text __dt__14J3DTevColorAnmFv */ -// J3DTevColorAnm::~J3DTevColorAnm() { -extern "C" void __dt__14J3DTevColorAnmFv() { - // NONMATCHING -} - -/* 80D47530-80D47548 000730 0018+00 1/1 0/0 0/0 .text __ct__14J3DTevColorAnmFv */ -// J3DTevColorAnm::J3DTevColorAnm() { -extern "C" void __ct__14J3DTevColorAnmFv() { - // NONMATCHING -} - -/* 80D47548-80D47590 000748 0048+00 1/1 0/0 0/0 .text __dt__11J3DTexNoAnmFv */ -// J3DTexNoAnm::~J3DTexNoAnm() { -extern "C" void __dt__11J3DTexNoAnmFv() { - // NONMATCHING -} - -/* 80D47590-80D475B4 000790 0024+00 1/1 0/0 0/0 .text __ct__11J3DTexNoAnmFv */ -// J3DTexNoAnm::J3DTexNoAnm() { -extern "C" void __ct__11J3DTexNoAnmFv() { - // NONMATCHING -} - -/* 80D475B4-80D475F0 0007B4 003C+00 1/1 0/0 0/0 .text __dt__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::~J3DTexMtxAnm() { -extern "C" void __dt__12J3DTexMtxAnmFv() { - // NONMATCHING -} - -/* 80D475F0-80D47608 0007F0 0018+00 1/1 0/0 0/0 .text __ct__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::J3DTexMtxAnm() { -extern "C" void __ct__12J3DTexMtxAnmFv() { - // NONMATCHING -} - -/* 80D47608-80D47644 000808 003C+00 1/1 0/0 0/0 .text __dt__14J3DMatColorAnmFv */ -// J3DMatColorAnm::~J3DMatColorAnm() { -extern "C" void __dt__14J3DMatColorAnmFv() { - // NONMATCHING -} - -/* 80D47644-80D4765C 000844 0018+00 1/1 0/0 0/0 .text __ct__14J3DMatColorAnmFv */ -// J3DMatColorAnm::J3DMatColorAnm() { -extern "C" void __ct__14J3DMatColorAnmFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D4C118-80D4C11C 0000B8 0004+00 0/2 0/0 0/0 .rodata @4395 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4395 = 0x45345E66; -COMPILER_STRIP_GATE(0x80D4C118, &lit_4395); -#pragma pop - -/* 80D4C11C-80D4C120 0000BC 0004+00 0/2 0/0 0/0 .rodata @4396 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4396 = -880.0f; -COMPILER_STRIP_GATE(0x80D4C11C, &lit_4396); -#pragma pop - -/* 80D4C120-80D4C124 0000C0 0004+00 0/2 0/0 0/0 .rodata @4397 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4397 = 0x45AF8A66; -COMPILER_STRIP_GATE(0x80D4C120, &lit_4397); -#pragma pop - /* 80D4765C-80D47750 00085C 00F4+00 1/1 0/0 0/0 .text typeInitialize__8daPeru_cFv */ -void daPeru_c::typeInitialize() { - // NONMATCHING +int daPeru_c::typeInitialize() { + if (mType == 0) { + if (daNpcT_chkEvtBit(0x127)) { + fopAcM_SetPosition(this, 2885.9f, -880.0f, 5617.3f); + fopAcM_SetOldPosition(this, 2885.9f, -880.0f, 5617.3f); + fopAcM_SetHomePosition(this, 2885.9f, -880.0f, 5617.3f); + } + } else if (mType == 1) { + if (!daNpcT_chkEvtBit(0x183)) { + return cPhs_ERROR_e; + } + if (daNpcT_chkEvtBit(0x11f)) { + return cPhs_ERROR_e; + } + } else if (mType == 2 && daNpcT_chkEvtBit(0x183) && !daNpcT_chkEvtBit(0x11f)) { + return cPhs_ERROR_e; + } + return cPhs_COMPLEATE_e; } /* 80D47750-80D47784 000950 0034+00 1/1 0/0 0/0 .text Delete__8daPeru_cFv */ -void daPeru_c::Delete() { - // NONMATCHING +int daPeru_c::Delete() { + OS_REPORT("|%06d:%x|daPeru_c -> Delete\n", g_Counter, this); + fopAcM_GetID(this); + this->~daPeru_c(); + return 1; } /* 80D47784-80D477A4 000984 0020+00 2/2 0/0 0/0 .text Execute__8daPeru_cFv */ -void daPeru_c::Execute() { - // NONMATCHING +int daPeru_c::Execute() { + return execute(); } -/* ############################################################################################## */ -/* 80D4C124-80D4C128 0000C4 0004+00 1/1 0/0 0/0 .rodata @4430 */ -SECTION_RODATA static f32 const lit_4430 = 100.0f; -COMPILER_STRIP_GATE(0x80D4C124, &lit_4430); - /* 80D477A4-80D47840 0009A4 009C+00 1/1 0/0 0/0 .text Draw__8daPeru_cFv */ -void daPeru_c::Draw() { - // NONMATCHING +int daPeru_c::Draw() { + daNpcT_MatAnm_c* matAnm = mpMatAnm; + if (matAnm != NULL) { + J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); + u16 eyeballMat = getEyeballMaterialNo(); + modelData->getMaterialNodePointer(eyeballMat)->setMaterialAnm(matAnm); + } + draw(0, 0, daPeru_Param_c::m.field_0x00[3], NULL, 100.0f, 0, field_0xe80, 0); } /* 80D47840-80D47860 000A40 0020+00 1/1 0/0 0/0 .text createHeapCallBack__8daPeru_cFP10fopAc_ac_c */ -void daPeru_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING +int daPeru_c::createHeapCallBack(fopAc_ac_c* i_this) { + return static_cast(i_this)->CreateHeap(); } /* 80D47860-80D478B8 000A60 0058+00 1/1 0/0 0/0 .text ctrlJointCallBack__8daPeru_cFP8J3DJointi */ -void daPeru_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING +int daPeru_c::ctrlJointCallBack(J3DJoint* joint, int param_2) { + if (param_2 == 0) { + J3DModel* model = j3dSys.getModel(); + daPeru_c* peru = (daPeru_c*)model->getUserArea(); + if (peru != NULL) { + peru->ctrlJoint(joint, model); + } + } + return 1; } /* 80D478B8-80D478EC 000AB8 0034+00 1/1 0/0 0/0 .text isDelete__8daPeru_cFv */ -void daPeru_c::isDelete() { - // NONMATCHING +int daPeru_c::isDelete() { + if (mType == 0) { + return 0; + } else if (mType == 1) { + return 0; + } else if (mType == 2) { + return 0; + } else { + return 1; + } } /* 80D478EC-80D47B20 000AEC 0234+00 1/1 0/0 0/0 .text reset__8daPeru_cFv */ void daPeru_c::reset() { - // NONMATCHING + initialize(); + attention_info.distances[fopAc_attn_LOCK_e] = daNpcT_getDistTableIdx(daPeru_Param_c::m.field_0x48[2], daPeru_Param_c::m.field_0x48[3]); + attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[0]; + attention_info.distances[fopAc_attn_SPEAK_e] = daNpcT_getDistTableIdx(daPeru_Param_c::m.field_0x48[0], daPeru_Param_c::m.field_0x48[1]); + attention_info.flags = 0xa; + scale.setall(daPeru_Param_c::m.field_0x00[2]); + mCcStts.SetWeight(daPeru_Param_c::m.field_0x00[4]); + mCylH = daPeru_Param_c::m.field_0x00[5]; + mWallR = daPeru_Param_c::m.field_0x00[7]; + mAcchCir.SetWallR(mWallR); + mAcchCir.SetWallH(daPeru_Param_c::m.field_0x00[6]); + field_0xde8 = daPeru_Param_c::m.field_0x00[3]; + gravity = daPeru_Param_c::m.field_0x00[1]; + field_0xa80 = daPeru_Param_c::m.field_0x64[2]; + mMorfFrames = daPeru_Param_c::m.field_0x00[17]; + mActionFunc = NULL; + if (mpMatAnm != NULL) { + mpMatAnm->initialize(); + } + field_0xe80 = 0; + for (int i = 0; i < 3; i++) { + mActors[i].initialize(); + } + setAngle(home.angle.y); + setAction(&daPeru_c::wait, 0); } /* 80D47B20-80D47C4C 000D20 012C+00 1/0 0/0 0/0 .text setParam__8daPeru_cFv */ void daPeru_c::setParam() { - // NONMATCHING + srchActors(); + attention_info.flags = 0xa; + if (!daPy_py_c::checkNowWolf()) { + attention_info.flags = 0x2000000a; + } + if (mType == 0 && !daNpcT_chkEvtBit(0x127)) { + attention_info.flags = 0; + } + attention_info.distances[fopAc_attn_LOCK_e] = daNpcT_getDistTableIdx(daPeru_Param_c::m.field_0x48[2], daPeru_Param_c::m.field_0x48[3]); + attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[0]; + attention_info.distances[fopAc_attn_SPEAK_e] = daNpcT_getDistTableIdx(daPeru_Param_c::m.field_0x48[0], daPeru_Param_c::m.field_0x48[1]); + scale.setall(daPeru_Param_c::m.field_0x00[2]); + mCcStts.SetWeight(daPeru_Param_c::m.field_0x00[4]); + mCylH = daPeru_Param_c::m.field_0x00[5]; + mWallR = daPeru_Param_c::m.field_0x00[7]; + mAcchCir.SetWallR(mWallR); + mAcchCir.SetWallH(daPeru_Param_c::m.field_0x00[6]); + field_0xde8 = daPeru_Param_c::m.field_0x00[3]; + gravity = daPeru_Param_c::m.field_0x00[1]; + field_0xa80 = daPeru_Param_c::m.field_0x64[2]; + mMorfFrames = daPeru_Param_c::m.field_0x00[17]; } -/* ############################################################################################## */ -/* 80D4C128-80D4C12C 0000C8 0004+00 4/14 0/0 0/0 .rodata @4548 */ -SECTION_RODATA static f32 const lit_4548 = -1.0f; -COMPILER_STRIP_GATE(0x80D4C128, &lit_4548); - /* 80D47C4C-80D47CAC 000E4C 0060+00 1/0 0/0 0/0 .text setAfterTalkMotion__8daPeru_cFv */ void daPeru_c::setAfterTalkMotion() { - // NONMATCHING + mFaceMotionSeqMngr.getNo(); + mFaceMotionSeqMngr.setNo(2, -1.0f, 0, 0); } /* 80D47CAC-80D47D5C 000EAC 00B0+00 1/1 0/0 0/0 .text srchActors__8daPeru_cFv */ void daPeru_c::srchActors() { - // NONMATCHING + if (mActors[0].getActorP() == NULL) { + mActors[0].entry(getEvtAreaTagP(16, 0)); + } + + if (mActors[1].getActorP() == NULL) { + fopAc_ac_c* local_18 = NULL; + if (fopAcM_SearchByName(PROC_Obj_CatDoor, &local_18) != 0) { + mActors[1].entry(local_18); + } + } + + if (mActors[2].getActorP() == NULL) { + mActors[2].entry(daPy_getPlayerActorClass()); + } } /* 80D47D5C-80D47E48 000F5C 00EC+00 1/0 0/0 0/0 .text evtTalk__8daPeru_cFv */ -void daPeru_c::evtTalk() { - // NONMATCHING +int daPeru_c::evtTalk() { + if (chkAction(&daPeru_c::talk)) { + (this->*(mActionFunc))(0); + } else if (!g_dComIfG_gameInfo.play.mEvent.chkTalkXY() || g_dComIfG_gameInfo.play.mEvtManager.ChkPresentEnd()) { + setAction(&daPeru_c::talk, 0); + } + return 1; } /* 80D47E48-80D47F10 001048 00C8+00 1/0 0/0 0/0 .text evtCutProc__8daPeru_cFv */ -void daPeru_c::evtCutProc() { - // NONMATCHING +int daPeru_c::evtCutProc() { + int rv = 0; + int staffId = dComIfGp_getEventManager().getMyStaffId("Peru", this, -1); + if (staffId != -1) { + mStaffId = staffId; + int actIdx = dComIfGp_getEventManager().getMyActIdx(mStaffId, mCutNameList, 3, 0, 0); + if ((this->*(mCutList[actIdx]))(mStaffId)) { + dComIfGp_getEventManager().cutEnd(mStaffId); + } + rv = 1; + } + return rv; } /* 80D47F10-80D47F5C 001110 004C+00 1/0 0/0 0/0 .text action__8daPeru_cFv */ void daPeru_c::action() { - // NONMATCHING + if (mActionFunc != NULL) { + (this->*(mActionFunc))(0); + } } -/* ############################################################################################## */ -/* 80D4C12C-80D4C130 0000CC 0004+00 0/2 0/0 0/0 .rodata @4662 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4662 = 10.0f; -COMPILER_STRIP_GATE(0x80D4C12C, &lit_4662); -#pragma pop - -/* 80D4C130-80D4C134 0000D0 0004+00 0/1 0/0 0/0 .rodata @4663 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4663 = 0x38C90FDB; -COMPILER_STRIP_GATE(0x80D4C130, &lit_4663); -#pragma pop - -/* 80D4C134-80D4C138 0000D4 0004+00 0/2 0/0 0/0 .rodata @4664 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4664 = 30.0f; -COMPILER_STRIP_GATE(0x80D4C134, &lit_4664); -#pragma pop - -/* 80D4C138-80D4C140 0000D8 0008+00 1/3 0/0 0/0 .rodata @4666 */ -SECTION_RODATA static u8 const lit_4666[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D4C138, &lit_4666); - /* 80D47F5C-80D481A4 00115C 0248+00 1/0 0/0 0/0 .text setAttnPos__8daPeru_cFv */ void daPeru_c::setAttnPos() { - // NONMATCHING + cXyz acStack_3c(10.0f, 0.0f, 0.0f); + mStagger.calc(0); + f32 dVar9 = cM_s2rad(mCurAngle.y - field_0xd7e.y); + mJntAnm.setParam( + this, mpMorf[0]->getModel(), &acStack_3c, getBackboneJointNo(), getNeckJointNo(), + getHeadJointNo(), daPeru_Param_c::m.field_0x00[9], daPeru_Param_c::m.field_0x00[8], + daPeru_Param_c::m.field_0x00[11], daPeru_Param_c::m.field_0x00[10], + daPeru_Param_c::m.field_0x00[13], daPeru_Param_c::m.field_0x00[12], + daPeru_Param_c::m.field_0x00[15], daPeru_Param_c::m.field_0x00[14], + daPeru_Param_c::m.field_0x00[16], dVar9, NULL); + mJntAnm.calcJntRad(0.2f, 1.0f, dVar9); + setMtx(); + mDoMtx_stack_c::copy(mpMorf[0]->getModel()->getAnmMtx(getHeadJointNo())); + mDoMtx_stack_c::multVec(&acStack_3c, &eyePos); + mJntAnm.setEyeAngleX(eyePos, 1.0f, 0); + mJntAnm.setEyeAngleY(eyePos, + mCurAngle.y, 0, 1.0f, 0); + cXyz cStack_48(0.0f, daPeru_Param_c::m.field_0x00[0], 30.0f); + mDoMtx_stack_c::copy(mpMorf[0]->getModel()->getBaseTRMtx()); + mDoMtx_stack_c::multVec(&cStack_48, &attention_info.position); } -/* ############################################################################################## */ -/* 80D4C140-80D4C148 0000E0 0008+00 0/3 0/0 0/0 .rodata @4724 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4724[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D4C140, &lit_4724); -#pragma pop - -/* 80D4C148-80D4C150 0000E8 0008+00 0/3 0/0 0/0 .rodata @4725 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4725[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D4C148, &lit_4725); -#pragma pop - -/* 80D4C150-80D4C158 0000F0 0008+00 0/3 0/0 0/0 .rodata @4726 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4726[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D4C150, &lit_4726); -#pragma pop - -/* 80D4C158-80D4C160 0000F8 0008+00 1/1 0/0 0/0 .rodata @4737 */ -SECTION_RODATA static u8 const lit_4737[8] = { - 0x41, 0xA0, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D4C158, &lit_4737); - /* 80D481A4-80D4835C 0013A4 01B8+00 1/0 0/0 0/0 .text setCollision__8daPeru_cFv */ void daPeru_c::setCollision() { - // NONMATCHING + f32 local_48[2] = { 20.0f, -10.0f}; + if (!mHide) { + int coSPrm = 0x79; + int tgType = 0xd8fbfdff; + int tgSPrm = 0x1f; + if (dComIfGp_event_runCheck()) { + tgType = 0; + tgSPrm = 0; + coSPrm = 0; + } else if (mStagger.checkStagger()) { + tgType = 0; + tgSPrm = 0; + } + cXyz acStack_34; + cXyz cStack_40; + for (int i = 0; i < 2; i = i + 1) { + cStack_40.set(0.0f, 0.0f, local_48[i]); + mDoMtx_stack_c::copy(mpMorf[0]->getModel()->getBaseTRMtx()); + mDoMtx_stack_c::multVec(&cStack_40, &acStack_34); + mCyls[i].SetCoSPrm(coSPrm); + mCyls[i].SetTgType(tgType); + mCyls[i].SetTgSPrm(tgSPrm); + mCyls[i].OnTgNoHitMark(); + mCyls[i].SetH(mCylH); + mCyls[i].SetR(mWallR); + mCyls[i].SetC(acStack_34); + dComIfG_Ccsp()->Set(&mCyls[i]); + } + } + for (int i = 0; i < 2; i++) { + mCyls[i].ClrCoHit(); + mCyls[i].ClrTgHit(); + } } /* 80D4835C-80D48364 00155C 0008+00 1/0 0/0 0/0 .text drawDbgInfo__8daPeru_cFv */ -bool daPeru_c::drawDbgInfo() { - return false; +BOOL daPeru_c::drawDbgInfo() { + return FALSE; } /* 80D48364-80D48414 001564 00B0+00 13/13 0/0 0/0 .text setAction__8daPeru_cFM8daPeru_cFPCvPvi_ii */ -void daPeru_c::setAction(int (daPeru_c::*param_0)(int), int param_1) { - // NONMATCHING +int daPeru_c::setAction(actionFunc a_func, int param_2) { + mMode = MODE_INVALID; + if (mActionFunc != NULL) { + (this->*(mActionFunc))(0); + } + mMode = MODE_ENTER; + mActionFunc = a_func; + if (mActionFunc != NULL) { + (this->*(mActionFunc))(param_2); + } + return 1; } /* 80D48414-80D486A0 001614 028C+00 10/0 0/0 0/0 .text wait__8daPeru_cFi */ -void daPeru_c::wait(int param_0) { - // NONMATCHING +int daPeru_c::wait(int param_0) { + switch(mMode) { + case MODE_ENTER: + case MODE_INIT: + if (!mStagger.checkStagger()) { + mFaceMotionSeqMngr.setNo(2, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + mMode = MODE_RUN; + } + break; + case MODE_RUN: + if (!mStagger.checkStagger()) { + if (mPlayerActorMngr.getActorP() != NULL && !mTwilight) { + mJntAnm.lookNone(0); + if (chkActorInSight(mPlayerActorMngr.getActorP(), daPeru_Param_c::m.field_0x50[0], + mCurAngle.y)) + { + mJntAnm.lookPlayer(0); + } + + if (!srchPlayerActor() && mCurAngle.y == home.angle.y) { + mMode = MODE_INIT; + } + } else { + mJntAnm.lookNone(0); + if (home.angle.y != mCurAngle.y) { + if (field_0xe34 == 0) { + setAngle(home.angle.y); + mMode = 1; + } else if (step(home.angle.y, -1, -1, 0xf, 0) != 0) { + mMode = MODE_INIT; + } + attention_info.flags = 0; + } else if (!mTwilight) { + srchPlayerActor(); + } + } + } + + if (mType == 0 && is_AppearDemo_start()) { + _AppearDemoStart(); + _AppearDemoTag_delete(); + } + break; + case MODE_INVALID: + break; + } + return 1; } /* 80D486A0-80D48720 0018A0 0080+00 1/1 0/0 0/0 .text is_AppearDemo_start__8daPeru_cFv */ -void daPeru_c::is_AppearDemo_start() { - // NONMATCHING +BOOL daPeru_c::is_AppearDemo_start() { + if (mActors[0].getActorP() != NULL) { + daTag_EvtArea_c* evtArea = (daTag_EvtArea_c*)mActors[0].getActorP(); + if (evtArea->chkPointInArea(*fopAcM_GetPosition_p(daPy_getPlayerActorClass()))) { + return TRUE; + } + } + return FALSE; } /* 80D48720-80D48750 001920 0030+00 1/1 0/0 0/0 .text _AppearDemoTag_delete__8daPeru_cFv */ void daPeru_c::_AppearDemoTag_delete() { - // NONMATCHING + fopAc_ac_c* actor = mActors[0].getActorP(); + if (actor != NULL) { + fopAcM_delete(actor); + } } /* 80D48750-80D48A7C 001950 032C+00 2/0 0/0 0/0 .text talk__8daPeru_cFi */ -void daPeru_c::talk(int param_0) { - // NONMATCHING +int daPeru_c::talk(int param_0) { + switch(mMode) { + case MODE_ENTER: + case MODE_INIT: + if (!mStagger.checkStagger()) { + initTalk(mFlowNodeNo, NULL); + OS_REPORT("------------MSG FLOW NO = %d\n", mFlowNodeNo); + if (checkStep()) { + mStepMode = 0; + } + field_0x1129 = 0; + if (mType != 2 && daPy_getPlayerActorClass()->checkNowWolf()) { + field_0x1129 = 1; + } else { + field_0xe68 = 0x2e; + } + mMode = MODE_RUN; + } + case MODE_RUN: + if (!mStagger.checkStagger()) { + if (mTwilight || mCurAngle.y == fopAcM_searchPlayerAngleY(this)) { + if (field_0x1129 != 0) { + if (talkProc(NULL, 0, NULL, 0) != 0) { + mPlayerActorMngr.entry(daPy_getPlayerActorClass()); + dComIfGp_event_reset(); + setAction(&daPeru_c::wait, 0); + } + } else { + field_0xe68--; + if (field_0xe68 <= 0) { + dComIfGp_event_reset(); + setAction(&daPeru_c::wait, 0); + } else if (field_0xe68 == 45) { + mMotionSeqMngr.setNo(3, -1.0f, 0, 0); + mFaceMotionSeqMngr.setNo(1, -1.0f, 0, 0); + } + } + if (mTwilight) { + mJntAnm.lookNone(0); + } else { + mJntAnm.lookPlayer(0); + } + } else { + mJntAnm.lookPlayer(0); + step(fopAcM_searchPlayerAngleY(this), -1, -1, 0xf, 0); + } + } + break; + case MODE_INVALID: + break; + } + + return 0; } -/* ############################################################################################## */ -/* 80D4C160-80D4C164 000100 0004+00 0/1 0/0 0/0 .rodata @5061 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5061 = -9.0f; -COMPILER_STRIP_GATE(0x80D4C160, &lit_5061); -#pragma pop - -/* 80D4C164-80D4C168 000104 0004+00 0/1 0/0 0/0 .rodata @5062 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5062 = 22.0f; -COMPILER_STRIP_GATE(0x80D4C164, &lit_5062); -#pragma pop - -/* 80D4C168-80D4C16C 000108 0004+00 0/1 0/0 0/0 .rodata @5063 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5063 = 36.0f; -COMPILER_STRIP_GATE(0x80D4C168, &lit_5063); -#pragma pop - -/* 80D4C16C-80D4C170 00010C 0004+00 0/1 0/0 0/0 .rodata @5064 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5064 = 14.5f; -COMPILER_STRIP_GATE(0x80D4C16C, &lit_5064); -#pragma pop - -/* 80D4C170-80D4C174 000110 0004+00 0/1 0/0 0/0 .rodata @5065 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5065 = 18.0f; -COMPILER_STRIP_GATE(0x80D4C170, &lit_5065); -#pragma pop - -/* 80D4C174-80D4C178 000114 0004+00 0/1 0/0 0/0 .rodata @5066 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5066 = 4.0f; -COMPILER_STRIP_GATE(0x80D4C174, &lit_5066); -#pragma pop - /* 80D48A7C-80D48C58 001C7C 01DC+00 1/0 0/0 0/0 .text jump_st__8daPeru_cFi */ -void daPeru_c::jump_st(int param_0) { - // NONMATCHING +int daPeru_c::jump_st(int param_1) { + switch(mMode) { + case MODE_ENTER: + field_0xe58 = param_1; + case MODE_INIT: + mFaceMotionSeqMngr.setNo(2, -1.0f, 0, 0); + mMotionSeqMngr.setNo(6, -1.0f, 0, 0); + fopAcM_SetSpeedF(this, 0.0f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetGravity(this, -9.0f); + mMode = 2; + break; + case MODE_RUN: + if ((field_0xe58 & 0xf) == 2) { + mpMorf[0]->setFrame(22.0f); + } + mMode = 3; + break; + case MODE_EXIT: + if (mpMorf[0]->getFrame() >= 36.0f) { + fopAcM_SetSpeedF(this, 14.5f); + fopAcM_SetSpeed(this, 0, 18.0f, 0); + fopAcM_SetGravity(this, -9.0f); + mMode = 4; + } + break; + case MODE_4: + if (speed.y < 0.0f && mGroundH <= 4.0f) { + int actionArg = 0; + if ((field_0xe58 & 0xf) == 1) { + actionArg = 1; + } + setAction(&daPeru_c::jump_ed, actionArg); + } + break; + case MODE_INVALID: + field_0xe58 = 0; + break; + } + return 0; } /* 80D48C58-80D48E34 001E58 01DC+00 1/0 0/0 0/0 .text jump_ed__8daPeru_cFi */ -void daPeru_c::jump_ed(int param_0) { - // NONMATCHING +int daPeru_c::jump_ed(int param_1) { + switch (mMode) { + case MODE_ENTER: + field_0xe58 = param_1; + case MODE_INIT: + mFaceMotionSeqMngr.setNo(2, -1.0f, 0, 0); + mMotionSeqMngr.setNo(7, -1.0f, 0, 0); + field_0xe7c = 0; + mMode = MODE_RUN; + break; + case MODE_RUN: + if (!mAcch.ChkGroundHit()) { + break; + } + fopAcM_SetSpeedF(this, 0.0f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + if (field_0xe58 == 0) { + if (field_0xe7c == 0) { + mSound.startCreatureSound(Z2SE_GZ_NE_JUMP, 0, -1); + field_0xe7c = 1; + } + if (!mpMorf[0]->isStop()) { + break; + } + setAction(&daPeru_c::wait, 0); + return 1; + } + if (field_0xe58 == 1 && mpMorf[0]->getFrame() >= 10.0f) { + return 1; + } + break; + case MODE_INVALID: + field_0xe58 = 0; + break; + } + + return 0; } -/* ############################################################################################## */ -/* 80D4C178-80D4C17C 000118 0004+00 0/1 0/0 0/0 .rodata @5169 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5169 = 23.0f; -COMPILER_STRIP_GATE(0x80D4C178, &lit_5169); -#pragma pop - /* 80D48E34-80D48FA8 002034 0174+00 1/0 0/0 0/0 .text sniff__8daPeru_cFi */ -void daPeru_c::sniff(int param_0) { - // NONMATCHING +int daPeru_c::sniff(int param_0) { + switch(mMode) { + case MODE_ENTER: + case MODE_INIT: + mFaceMotionSeqMngr.setNo(3, -1.0f, 0, 0); + mMotionSeqMngr.setNo(4, -1.0f, 0, 0); + fopAcM_SetSpeedF(this, 0.0f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + mMode = MODE_RUN; + break; + case MODE_RUN: + if (mpMorf[0]->isStop()) { + setAction(&daPeru_c::wait, 0); + return 1; + } + if (mpMorf[0]->getFrame() == 23.0f) { + mSound.startCreatureVoice(Z2SE_GZ_NE_KNKN, -1); + } + break; + case MODE_INVALID: + break; + } + + return 0; } -/* ############################################################################################## */ -/* 80D4C17C-80D4C180 00011C 0004+00 0/1 0/0 0/0 .rodata @5207 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5207 = 6.0f / 5.0f; -COMPILER_STRIP_GATE(0x80D4C17C, &lit_5207); -#pragma pop - /* 80D48FA8-80D4910C 0021A8 0164+00 1/0 0/0 0/0 .text demo_appear__8daPeru_cFi */ -void daPeru_c::demo_appear(int param_0) { - // NONMATCHING +int daPeru_c::demo_appear(int param_0) { + switch(mMode) { + case MODE_ENTER: + case MODE_INIT: + mFaceMotionSeqMngr.setNo(2, -1.0f, 0, 0); + mMotionSeqMngr.setNo(8, -1.0f, 0, 0); + fopAcM_SetSpeedF(this, 1.2f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + setTimer(5); + mMode = MODE_RUN; + break; + case MODE_RUN: + if (decTimer()) { + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + setTimer(10); + mMode = MODE_EXIT; + } + break; + case MODE_EXIT: + if (decTimer()) { + return 1; + } + break; + case MODE_INVALID: + break; + } + + return 0; } -/* ############################################################################################## */ -/* 80D4C180-80D4C184 000120 0004+00 0/1 0/0 0/0 .rodata @5247 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5247 = 24.0f / 5.0f; -COMPILER_STRIP_GATE(0x80D4C180, &lit_5247); -#pragma pop - -/* 80D4C184-80D4C188 000124 0004+00 0/1 0/0 0/0 .rodata @5248 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5248 = 13.0f / 10.0f; -COMPILER_STRIP_GATE(0x80D4C184, &lit_5248); -#pragma pop - -/* 80D4C188-80D4C18C 000128 0004+00 0/1 0/0 0/0 .rodata @5249 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5249 = 130.0f; -COMPILER_STRIP_GATE(0x80D4C188, &lit_5249); -#pragma pop - /* 80D4910C-80D492A8 00230C 019C+00 1/0 0/0 0/0 .text demo_walk_to_link__8daPeru_cFi */ -void daPeru_c::demo_walk_to_link(int param_0) { - // NONMATCHING +int daPeru_c::demo_walk_to_link(int param_0) { + switch(mMode) { + case MODE_ENTER: + case MODE_INIT: + mFaceMotionSeqMngr.setNo(2, -1.0, 0, 0); + mMotionSeqMngr.setNo(8, -1.0, 0, 0); + fopAcM_SetSpeedF(this, 4.8f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + mStepMode = 0; + setTimer(20); + mMode = MODE_RUN; + break; + case MODE_RUN: { + mpMorf[0]->setPlaySpeed(1.3f); + fopAc_ac_c* actor = mActors[2].getActorP(); + if (actor == NULL) { + OS_REPORT("-----there is no player!!\n"); + JUT_PANIC(1948, 0); + } + cLib_chaseAngleS(&mCurAngle.y, fopAcM_searchActorAngleY(this, actor), 0x800); + current.angle.y = mCurAngle.y; + shape_angle.y = current.angle.y; + f32 dist = fopAcM_searchActorDistanceXZ(this, actor); + OS_REPORT("distance = %f\n", dist); + if (dist <= 130.0f) { + fopAcM_SetSpeedF(this, 0.0f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + mStepMode = 0; + setAction(&daPeru_c::wait, 0); + return 1; + } + break; + } + case MODE_INVALID: + break; + } + return 0; } -/* ############################################################################################## */ -/* 80D4C18C-80D4C190 00012C 0004+00 0/2 0/0 0/0 .rodata @5282 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5282 = 21.0f / 5.0f; -COMPILER_STRIP_GATE(0x80D4C18C, &lit_5282); -#pragma pop - /* 80D492A8-80D49418 0024A8 0170+00 1/0 0/0 0/0 .text demo_walk_circle__8daPeru_cFi */ -void daPeru_c::demo_walk_circle(int param_0) { - // NONMATCHING +int daPeru_c::demo_walk_circle(int param_0) { + switch(mMode) { + case MODE_ENTER: + case MODE_INIT: + mFaceMotionSeqMngr.setNo(2, -1.0, 0, 0); + mMotionSeqMngr.setNo(8, -1.0, 0, 0); + fopAcM_SetSpeedF(this, 4.2f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + mStepMode = 0; + field_0xe6e = shape_angle.y + 0x4000; + setTimer(0x3a); + mMode = MODE_RUN; + break; + case MODE_RUN: { + step(field_0xe6e, 2, 8, 1, 0); + if (decTimer()) { + fopAcM_SetSpeedF(this, 0.0f); + setAction(&daPeru_c::wait, 0); + return 1; + } + field_0xe6e -= 0x155; + break; + } + case MODE_INVALID: + break; + } + + return 0; } -/* ############################################################################################## */ -/* 80D4C190-80D4C194 000130 0004+00 0/1 0/0 0/0 .rodata @5360 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5360 = 0x45405B96; -COMPILER_STRIP_GATE(0x80D4C190, &lit_5360); -#pragma pop - -/* 80D4C194-80D4C198 000134 0004+00 0/1 0/0 0/0 .rodata @5361 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5361 = 0xC4598148; -COMPILER_STRIP_GATE(0x80D4C194, &lit_5361); -#pragma pop - -/* 80D4C198-80D4C19C 000138 0004+00 0/1 0/0 0/0 .rodata @5362 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5362 = 0x45BD3A31; -COMPILER_STRIP_GATE(0x80D4C198, &lit_5362); -#pragma pop - /* 80D49418-80D4971C 002618 0304+00 1/0 0/0 0/0 .text demo_walk_to_window__8daPeru_cFi */ -void daPeru_c::demo_walk_to_window(int param_0) { - // NONMATCHING +int daPeru_c::demo_walk_to_window(int param_0) { + switch(mMode) { + case MODE_ENTER: + case MODE_INIT: + mFaceMotionSeqMngr.setNo(2, -1.0f, 0, 0); + mMotionSeqMngr.setNo(8, -1.0f, 0, 0); + fopAcM_SetSpeedF(this, 4.2f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + mStepMode = 0; + field_0xe6e = shape_angle.y + 0x8000; + setTimer(0x37); + mMode = MODE_RUN; + break; + case MODE_RUN: + step(field_0xe6e, 2, 8, 0x14, 0); + if (decTimer()) { + field_0xe6e += 0x4000; + mStepMode = 0; + mMode = MODE_EXIT; + } + break; + case MODE_EXIT: { + cXyz acStack_30(3077.724f, -870.02f, 6055.274f); + cLib_chaseAngleS(&mCurAngle.y, cLib_targetAngleY(fopAcM_GetPosition_p(this), &acStack_30), + 0x200); + current.angle.y = mCurAngle.y; + shape_angle.y = current.angle.y; + if ((acStack_30 - current.pos).absXZ() < 30.0f) { + fopAcM_SetSpeedF(this, 0.0f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + setAction(&daPeru_c::wait, 0); + return 1; + } + break; + } + case MODE_INVALID: + break; + } + + return 0; } -/* ############################################################################################## */ -/* 80D4C19C-80D4C1A0 00013C 0004+00 0/1 0/0 0/0 .rodata @5436 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5436 = 8.0f; -COMPILER_STRIP_GATE(0x80D4C19C, &lit_5436); -#pragma pop - -/* 80D4C1A0-80D4C1A4 000140 0004+00 0/1 0/0 0/0 .rodata @5437 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5437 = 0x453305F0; -COMPILER_STRIP_GATE(0x80D4C1A0, &lit_5437); -#pragma pop - -/* 80D4C1A4-80D4C1A8 000144 0004+00 0/1 0/0 0/0 .rodata @5438 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5438 = 0xC4524EE9; -COMPILER_STRIP_GATE(0x80D4C1A4, &lit_5438); -#pragma pop - -/* 80D4C1A8-80D4C1AC 000148 0004+00 0/1 0/0 0/0 .rodata @5439 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5439 = 0x45ADFCC7; -COMPILER_STRIP_GATE(0x80D4C1A8, &lit_5439); -#pragma pop - -/* 80D4C1AC-80D4C1B0 00014C 0004+00 0/1 0/0 0/0 .rodata @5440 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5440 = 60.0f; -COMPILER_STRIP_GATE(0x80D4C1AC, &lit_5440); -#pragma pop - /* 80D4971C-80D499AC 00291C 0290+00 1/0 0/0 0/0 .text demo_walk_to_pathway__8daPeru_cFi */ -void daPeru_c::demo_walk_to_pathway(int param_0) { - // NONMATCHING + int daPeru_c::demo_walk_to_pathway(int param_0) { + switch(mMode) { + case MODE_ENTER: + case MODE_INIT: + mFaceMotionSeqMngr.setNo(2, -1.0f, 0, 0); + mMotionSeqMngr.setNo(9, -1.0f, 0, 0); + fopAcM_SetSpeedF(this, 8.0f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + mStepMode = 0; + mMode = MODE_RUN; + break; + case MODE_RUN: { + cXyz acStack_30(2864.371f, -841.233f, 5567.597f); + cLib_chaseAngleS(&mCurAngle.y, cLib_targetAngleY(fopAcM_GetPosition_p(this), &acStack_30), + 0x800); + current.angle.y = mCurAngle.y; + shape_angle.y = current.angle.y; + if ((acStack_30 - current.pos).absXZ() < 60.0f) { + fopAcM_SetSpeedF(this, 0.0f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + setAction(&daPeru_c::wait, 0); + return 1; + } + break; + } + case MODE_INVALID: + break; + } + + return 0; } -/* ############################################################################################## */ -/* 80D4C1B0-80D4C1B0 000150 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D4C1D3 = "cut_id"; -#pragma pop - /* 80D499AC-80D49A40 002BAC 0094+00 1/0 0/0 0/0 .text cutAppear__8daPeru_cFi */ -void daPeru_c::cutAppear(int param_0) { - // NONMATCHING +int daPeru_c::cutAppear(int param_1) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int* pCutId = dComIfGp_evmng_getMyIntegerP(param_1, "cut_id"); + if (pCutId == NULL) { + OS_REPORT("-----CUT FALSE\n"); + return 1; + } + + if (eventManager.getIsAddvance(param_1) != 0) { + _cutAppear_Init(*pCutId); + } + return _cutAppear_Main(*pCutId); } -/* ############################################################################################## */ -/* 80D4C7F0-80D4C7F4 000008 0001+03 1/1 0/0 0/0 .bss @1109 */ -static u8 lit_1109[1 + 3 /* padding */]; - -/* 80D4C7F4-80D4C7F8 00000C 0001+03 0/0 0/0 0/0 .bss @1107 */ -#pragma push -#pragma force_active on -static u8 lit_1107[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C7F8-80D4C7FC 000010 0001+03 0/0 0/0 0/0 .bss @1105 */ -#pragma push -#pragma force_active on -static u8 lit_1105[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C7FC-80D4C800 000014 0001+03 0/0 0/0 0/0 .bss @1104 */ -#pragma push -#pragma force_active on -static u8 lit_1104[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C800-80D4C804 000018 0001+03 0/0 0/0 0/0 .bss @1099 */ -#pragma push -#pragma force_active on -static u8 lit_1099[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C804-80D4C808 00001C 0001+03 0/0 0/0 0/0 .bss @1097 */ -#pragma push -#pragma force_active on -static u8 lit_1097[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C808-80D4C80C 000020 0001+03 0/0 0/0 0/0 .bss @1095 */ -#pragma push -#pragma force_active on -static u8 lit_1095[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C80C-80D4C810 000024 0001+03 0/0 0/0 0/0 .bss @1094 */ -#pragma push -#pragma force_active on -static u8 lit_1094[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C810-80D4C814 000028 0001+03 0/0 0/0 0/0 .bss @1057 */ -#pragma push -#pragma force_active on -static u8 lit_1057[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C814-80D4C818 00002C 0001+03 0/0 0/0 0/0 .bss @1055 */ -#pragma push -#pragma force_active on -static u8 lit_1055[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C818-80D4C81C 000030 0001+03 0/0 0/0 0/0 .bss @1053 */ -#pragma push -#pragma force_active on -static u8 lit_1053[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C81C-80D4C820 000034 0001+03 0/0 0/0 0/0 .bss @1052 */ -#pragma push -#pragma force_active on -static u8 lit_1052[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C820-80D4C824 000038 0001+03 0/0 0/0 0/0 .bss @1014 */ -#pragma push -#pragma force_active on -static u8 lit_1014[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C824-80D4C828 00003C 0001+03 0/0 0/0 0/0 .bss @1012 */ -#pragma push -#pragma force_active on -static u8 lit_1012[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C828-80D4C82C 000040 0001+03 0/0 0/0 0/0 .bss @1010 */ -#pragma push -#pragma force_active on -static u8 lit_1010[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C82C-80D4C830 000044 0001+03 0/0 0/0 0/0 .bss @1009 */ -#pragma push -#pragma force_active on -static u8 lit_1009[1 + 3 /* padding */]; -#pragma pop - -/* 80D4C830-80D4C83C 000048 000C+00 1/1 0/0 0/0 .bss @3837 */ -static u8 lit_3837[12]; +UNK_REL_BSS /* 80D4C83C-80D4C840 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 80D4C840-80D4C850 000058 000C+04 0/1 0/0 0/0 .bss @5484 */ -#pragma push -#pragma force_active on -static u8 lit_5484[12 + 4 /* padding */]; -#pragma pop - -/* 80D4C850-80D4C85C 000068 000C+00 0/1 0/0 0/0 .bss see_pos$5483 */ -#pragma push -#pragma force_active on -static u8 see_pos[12]; -#pragma pop +static daPeru_Param_c l_HIO; /* 80D49A40-80D4A334 002C40 08F4+00 1/1 0/0 0/0 .text _cutAppear_Init__8daPeru_cFRCi */ -void daPeru_c::_cutAppear_Init(int const& param_0) { - // NONMATCHING +int daPeru_c::_cutAppear_Init(int const& param_1) { + switch(param_1) { + case 10: + fopAcM_SetSpeedF(this, 0.0f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + field_0xe80 = 1; + mJntAnm.lookNone(0); + initTalk(mFlowNodeNo, NULL); + break; + case 20: + _catdoor_open(); + break; + case 30: + setCnt(3); + setAction(&daPeru_c::demo_appear, 0); + break; + case 40: + mJntAnm.lookCamera(0); + setCnt(40); + break; + case 50: + setCnt(10); + setAction(&daPeru_c::demo_walk_to_link, 0); + break; + case 70: + mJntAnm.lookNone(0); + setAction(&daPeru_c::sniff, 0); + break; + case 80: + mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + mJntAnm.lookPlayer(0); + initTalk(mFlowNodeNo, NULL); + break; + case 90: + mJntAnm.lookNone(0); + setAction(&daPeru_c::demo_walk_circle, 0); + break; + case 100: + mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0); + mMotionSeqMngr.setNo(1, -1.0f, 0, 0); + mJntAnm.lookPlayer(0); + field_0xe26 = false; + initTalk(mFlowNodeNo, NULL); + break; + case 110: + { + mFaceMotionSeqMngr.setNo(2, -1.0f, 0, 0); + fopAc_ac_c* midna = NULL; + if (fopAcM_SearchByName(PROC_MIDNA, &midna) != 0) { + if (midna == NULL) { + OS_REPORT("---- there is no midna!!\n"); + JUT_PANIC(2446, 0); + } else { + mJntAnm.lookActor(midna, 0.0, 0); + } + } + setCnt(40); + break; + } + case 120: + mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0); + initTalk(mFlowNodeNo, NULL); + break; + case 130: + mFaceMotionSeqMngr.setNo(2, -1.0f, 0, 0); + initTalk(mFlowNodeNo, NULL); + break; + case 140: + static cXyz see_pos; + see_pos.set(0.0f, -300.0f, 300.0f); + mDoMtx_stack_c::ZXYrotS(shape_angle); + mDoMtx_stack_c::multVec(&see_pos, &see_pos); + see_pos += current.pos; + mJntAnm.lookPos(&see_pos, 0); + setCnt(80); + break; + case 150: + mJntAnm.lookNone(0); + setAction(&daPeru_c::demo_walk_to_window, 0); + setCnt(40); + break; + case 160: + mJntAnm.lookPlayer(0); + mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + initTalk(mFlowNodeNo, NULL); + break; + case 170: + mJntAnm.lookPlayer(0); + mFaceMotionSeqMngr.setNo(0, -1.0F, 0, 0); + mMotionSeqMngr.setNo(1, -1.0F, 0, 0); + initTalk(mFlowNodeNo, NULL); + break; + case 180: + mJntAnm.lookNone(0); + setAction(&daPeru_c::demo_walk_to_pathway, 0); + break; + } + + return 1; } /* 80D4A334-80D4A840 003534 050C+00 1/1 0/0 0/0 .text _cutAppear_Main__8daPeru_cFRCi */ -void daPeru_c::_cutAppear_Main(int const& param_0) { - // NONMATCHING +int daPeru_c::_cutAppear_Main(int const& param_1) { + int rv = FALSE; + switch (param_1) { + case 10: + if (talkProc(NULL, FALSE, NULL, false)) { + rv = 1; + } + break; + case 20: + rv = 1; + break; + case 30: { + if ((this->*(mActionFunc))(0) != 0) { + if (decCnt()) { + rv = 1; + break; + } + int iVar1 = 1; + if (getCnt() == 1) { + field_0xe80 = 0; + iVar1 = 2; + } + setAction(&daPeru_c::jump_st, iVar1); + } + break; + } + case 40: + if (getCnt() >= 0) { + if (!decCnt()) { + break; + } + initTalk(mFlowNodeNo, NULL); + mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0); + setCnt(-1); + } else { + if (talkProc(NULL, 0, NULL, 0)) { + rv = 1; + } + break; + } + break; + case 50: + if (decCnt()) { + mJntAnm.lookNone(0); + } + rv = (this->*(mActionFunc))(0); + break; + case 70: + rv = (this->*(mActionFunc))(0); + break; + case 80: + if (talkProc(NULL, 0, NULL, 0)) { + rv = 1; + } + break; + case 90: + rv = (this->*(mActionFunc))(0); + break; + case 100: + if (talkProc(NULL, 0, NULL, 0)) { + rv = 1; + } + break; + case 110: { + if (decCnt()) { + rv = 1; + } + break; + } + case 120: + if (talkProc(NULL, 0, NULL, 0)) { + rv = 1; + } + break; + case 130: + if (talkProc(NULL, 0, NULL, 0)) { + rv = 1; + } + break; + case 140: + if (decCnt()) { + rv = 1; + break; + } + if (getCnt() != 40) { + break; + } + mJntAnm.lookNone(0); + break; + case 150: + rv = (this->*(mActionFunc))(0); + break; + case 160: + if (talkProc(NULL, 0, NULL, 0)) { + mJntAnm.lookActor(mActors[1].getActorP(), 0.0f, 0); + rv = 1; + } + break; + case 170: + if (talkProc(NULL, 0, NULL, 0)) { + rv = 1; + } + break; + case 180: + rv = (this->*(mActionFunc))(0); + break; + default: + rv = 1; + break; + } + + return rv; } /* 80D4A840-80D4A920 003A40 00E0+00 1/1 0/0 0/0 .text _catdoor_open__8daPeru_cFv */ void daPeru_c::_catdoor_open() { - // NONMATCHING + daObjCatDoor_c* pCatDoor = (daObjCatDoor_c*)mActors[1].getActorP(); + if (pCatDoor == NULL) { + OS_REPORT("---- there is no catdoor!! ----!!\n"); + JUT_PANIC(2799, 0); + } else { + pCatDoor->setDoorOpen(); + } } /* 80D4A920-80D4A984 003B20 0064+00 1/1 0/0 0/0 .text _catdoor_open_demoskip__8daPeru_cFv */ void daPeru_c::_catdoor_open_demoskip() { - // NONMATCHING + daObjCatDoor_c* pCatDoor = (daObjCatDoor_c*)mActors[1].getActorP(); + if (pCatDoor == NULL) { + OS_REPORT("---- there is no catdoor!! ----!!\n"); + JUT_PANIC(2829, 0); + } else { + pCatDoor->_toDoorOpened(); + } } /* 80D4A984-80D4AA18 003B84 0094+00 1/0 0/0 0/0 .text cutAppear_skip__8daPeru_cFi */ -void daPeru_c::cutAppear_skip(int param_0) { - // NONMATCHING +int daPeru_c::cutAppear_skip(int param_1) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int* pCutId = dComIfGp_evmng_getMyIntegerP(param_1, "cut_id"); + if (pCutId == NULL) { + OS_REPORT("---------------CUT FALSE\n"); + return 1; + } + + if (eventManager.getIsAddvance(param_1) != 0) { + _cutAppear_skip_Init(*pCutId); + } + return _cutAppear_skip_Main(*pCutId); } /* 80D4AA18-80D4AAF0 003C18 00D8+00 1/1 0/0 0/0 .text _cutAppear_skip_Init__8daPeru_cFRCi */ -void daPeru_c::_cutAppear_skip_Init(int const& param_0) { - // NONMATCHING +int daPeru_c::_cutAppear_skip_Init(int const& param_1) { + switch (param_1) { + case 10: + mCurAngle.y = 0; + current.angle.y = mCurAngle.y; + shape_angle.y = current.angle.y; + fopAcM_SetSpeedF(this, 0.0f); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetPosition(this, 2885.9f, -880.0f, 5617.3f); + fopAcM_SetOldPosition(this, 2885.9f, -880.0f, 5617.3f); + _catdoor_open_demoskip(); + field_0xe80 = 0; + daNpcT_onEvtBit(0x127); + setAction(&daPeru_c::wait, 0); + break; + } + return 0; } /* 80D4AAF0-80D4AB08 003CF0 0018+00 1/1 0/0 0/0 .text _cutAppear_skip_Main__8daPeru_cFRCi */ -void daPeru_c::_cutAppear_skip_Main(int const& param_0) { - // NONMATCHING +int daPeru_c::_cutAppear_skip_Main(int const& param_0) { + int rv = 0; + if (param_0 == 10) { + rv = 1; + } + return rv; } /* 80D4AB08-80D4AB28 003D08 0020+00 1/0 0/0 0/0 .text daPeru_Create__FPv */ -static void daPeru_Create(void* param_0) { - // NONMATCHING +static int daPeru_Create(void* i_this) { + return static_cast(i_this)->create(); } /* 80D4AB28-80D4AB48 003D28 0020+00 1/0 0/0 0/0 .text daPeru_Delete__FPv */ -static void daPeru_Delete(void* param_0) { - // NONMATCHING +static int daPeru_Delete(void* i_this) { + return static_cast(i_this)->Delete(); } /* 80D4AB48-80D4AB68 003D48 0020+00 1/0 0/0 0/0 .text daPeru_Execute__FPv */ -static void daPeru_Execute(void* param_0) { - // NONMATCHING +static int daPeru_Execute(void* i_this) { + return static_cast(i_this)->Execute(); } /* 80D4AB68-80D4AB88 003D68 0020+00 1/0 0/0 0/0 .text daPeru_Draw__FPv */ -static void daPeru_Draw(void* param_0) { - // NONMATCHING +static int daPeru_Draw(void* i_this) { + return static_cast(i_this)->Draw(); } /* 80D4AB88-80D4AB90 003D88 0008+00 1/0 0/0 0/0 .text daPeru_IsDelete__FPv */ -static bool daPeru_IsDelete(void* param_0) { - return true; -} - -/* 80D4AB90-80D4ABC0 003D90 0030+00 1/0 0/0 0/0 .text calc__11J3DTexNoAnmCFPUs */ -// void J3DTexNoAnm::calc(u16* param_0) const { -extern "C" void calc__11J3DTexNoAnmCFPUs() { - // NONMATCHING -} - -/* 80D4ABC0-80D4AC08 003DC0 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 80D4AC08-80D4AF90 003E08 0388+00 1/1 0/0 0/0 .text __dt__8daNpcT_cFv */ -// daNpcT_c::~daNpcT_c() { -extern "C" void __dt__8daNpcT_cFv() { - // NONMATCHING -} - -/* 80D4AF90-80D4AFCC 004190 003C+00 4/4 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80D4AFCC-80D4B008 0041CC 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 80D4B008-80D4B050 004208 0048+00 3/2 0/0 0/0 .text __dt__18daNpcT_ActorMngr_cFv */ -// daNpcT_ActorMngr_c::~daNpcT_ActorMngr_c() { -extern "C" void __dt__18daNpcT_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80D4B050-80D4B11C 004250 00CC+00 2/2 0/0 0/0 .text __dt__8dCcD_CylFv */ -// dCcD_Cyl::~dCcD_Cyl() { -extern "C" void __dt__8dCcD_CylFv() { - // NONMATCHING -} - -/* 80D4B11C-80D4B164 00431C 0048+00 1/0 0/0 0/0 .text __dt__13daNpcT_Path_cFv */ -// daNpcT_Path_c::~daNpcT_Path_c() { -extern "C" void __dt__13daNpcT_Path_cFv() { - // NONMATCHING -} - -/* 80D4B164-80D4B1E8 004364 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_CylFv */ -// dCcD_Cyl::dCcD_Cyl() { -extern "C" void __ct__8dCcD_CylFv() { - // NONMATCHING -} - -/* 80D4B1E8-80D4B230 0043E8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80D4B230-80D4B278 004430 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80D4B278-80D4B2B4 004478 003C+00 1/1 0/0 0/0 .text __ct__18daNpcT_ActorMngr_cFv */ -// daNpcT_ActorMngr_c::daNpcT_ActorMngr_c() { -extern "C" void __ct__18daNpcT_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80D4B2B4-80D4B6B8 0044B4 0404+00 1/1 0/0 0/0 .text - * __ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc - */ -// daNpcT_c::daNpcT_c(daNpcT_faceMotionAnmData_c const* param_0, -// daNpcT_motionAnmData_c const* param_1, -// daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, int param_3, -// daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, int param_5, -// daNpcT_evtData_c const* param_6, char** param_7) { -extern "C" void __ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc() { - // NONMATCHING -} - -/* 80D4B6B8-80D4B6BC 0048B8 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 80D4B6BC-80D4B7B8 0048BC 00FC+00 1/0 0/0 0/0 .text __dt__15daNpcT_JntAnm_cFv */ -// daNpcT_JntAnm_c::~daNpcT_JntAnm_c() { -extern "C" void __dt__15daNpcT_JntAnm_cFv() { - // NONMATCHING -} - -/* 80D4B7B8-80D4B7BC 0049B8 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 80D4B7BC-80D4B804 0049BC 0048+00 1/0 0/0 0/0 .text __dt__22daNpcT_MotionSeqMngr_cFv */ -// daNpcT_MotionSeqMngr_c::~daNpcT_MotionSeqMngr_c() { -extern "C" void __dt__22daNpcT_MotionSeqMngr_cFv() { - // NONMATCHING -} - -/* 80D4B804-80D4B874 004A04 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80D4B874-80D4B8D0 004A74 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80D4B8D0-80D4B940 004AD0 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80D4B940-80D4B988 004B40 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 80D4B988-80D4BAA4 004B88 011C+00 1/1 0/0 0/0 .text setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs */ -// void daNpcT_JntAnm_c::setEyeAngleY(cXyz param_0, s16 param_1, int param_2, f32 param_3, -// s16 param_4) { -extern "C" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs() { - // NONMATCHING -} - -/* 80D4BAA4-80D4BCAC 004CA4 0208+00 1/1 0/0 0/0 .text setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs */ -// void daNpcT_JntAnm_c::setEyeAngleX(cXyz param_0, f32 param_1, s16 param_2) { -extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs() { - // NONMATCHING -} - -/* 80D4BCAC-80D4BCB0 004EAC 0004+00 1/0 0/0 0/0 .text ctrlSubFaceMotion__8daNpcT_cFi */ -// void daNpcT_c::ctrlSubFaceMotion(int param_0) { -extern "C" void ctrlSubFaceMotion__8daNpcT_cFi() { - /* empty function */ -} - -/* 80D4BCC0-80D4BCC8 004EC0 0008+00 1/0 0/0 0/0 .text getEyeballLMaterialNo__8daNpcT_cFv - */ -// bool daNpcT_c::getEyeballLMaterialNo() { -extern "C" bool getEyeballLMaterialNo__8daNpcT_cFv() { - return false; -} - -/* 80D4BCC8-80D4BCD0 004EC8 0008+00 1/0 0/0 0/0 .text getEyeballRMaterialNo__8daNpcT_cFv - */ -// bool daNpcT_c::getEyeballRMaterialNo() { -extern "C" bool getEyeballRMaterialNo__8daNpcT_cFv() { - return false; -} - -/* 80D4BCDC-80D4BCE4 004EDC 0008+00 1/0 0/0 0/0 .text evtEndProc__8daNpcT_cFv */ -// bool daNpcT_c::evtEndProc() { -extern "C" bool evtEndProc__8daNpcT_cFv() { - return true; -} - -/* 80D4BCE8-80D4BCF0 004EE8 0008+00 1/0 0/0 0/0 .text chkXYItems__8daNpcT_cFv */ -// bool daNpcT_c::chkXYItems() { -extern "C" bool chkXYItems__8daNpcT_cFv() { - return false; -} - -/* 80D4BCF0-80D4BD08 004EF0 0018+00 1/0 0/0 0/0 .text decTmr__8daNpcT_cFv */ -// void daNpcT_c::decTmr() { -extern "C" void decTmr__8daNpcT_cFv() { - // NONMATCHING -} - -/* 80D4BD08-80D4BD0C 004F08 0004+00 1/0 0/0 0/0 .text drawOtherMdl__8daNpcT_cFv */ -// void daNpcT_c::drawOtherMdl() { -extern "C" void drawOtherMdl__8daNpcT_cFv() { - /* empty function */ -} - -/* 80D4BD0C-80D4BD10 004F0C 0004+00 1/0 0/0 0/0 .text drawGhost__8daNpcT_cFv */ -// void daNpcT_c::drawGhost() { -extern "C" void drawGhost__8daNpcT_cFv() { - /* empty function */ -} - -/* 80D4BD10-80D4BD18 004F10 0008+00 1/0 0/0 0/0 .text afterSetFaceMotionAnm__8daNpcT_cFiifi */ -// bool daNpcT_c::afterSetFaceMotionAnm(int param_0, int param_1, f32 param_2, int param_3) { -extern "C" bool afterSetFaceMotionAnm__8daNpcT_cFiifi() { - return true; -} - -/* 80D4BD18-80D4BD20 004F18 0008+00 1/0 0/0 0/0 .text afterSetMotionAnm__8daNpcT_cFiifi - */ -// bool daNpcT_c::afterSetMotionAnm(int param_0, int param_1, f32 param_2, int param_3) { -extern "C" bool afterSetMotionAnm__8daNpcT_cFiifi() { - return true; -} - -/* 80D4BD20-80D4BD50 004F20 0030+00 1/0 0/0 0/0 .text - * getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c */ -// void daNpcT_c::getFaceMotionAnm(daNpcT_faceMotionAnmData_c param_0) { -extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c() { - // NONMATCHING -} - -/* 80D4BD50-80D4BD80 004F50 0030+00 1/0 0/0 0/0 .text - * getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c */ -// void daNpcT_c::getMotionAnm(daNpcT_motionAnmData_c param_0) { -extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c() { - // NONMATCHING -} - -/* 80D4BD80-80D4BD84 004F80 0004+00 1/0 0/0 0/0 .text changeAnm__8daNpcT_cFPiPi */ -// void daNpcT_c::changeAnm(int* param_0, int* param_1) { -extern "C" void changeAnm__8daNpcT_cFPiPi() { - /* empty function */ +static int daPeru_IsDelete(void* i_this) { + return 1; } -/* 80D4BD84-80D4BD88 004F84 0004+00 1/0 0/0 0/0 .text changeBck__8daNpcT_cFPiPi */ -// void daNpcT_c::changeBck(int* param_0, int* param_1) { -extern "C" void changeBck__8daNpcT_cFPiPi() { - /* empty function */ -} +AUDIO_INSTANCES -/* 80D4BD88-80D4BD8C 004F88 0004+00 1/0 0/0 0/0 .text changeBtp__8daNpcT_cFPiPi */ -// void daNpcT_c::changeBtp(int* param_0, int* param_1) { -extern "C" void changeBtp__8daNpcT_cFPiPi() { - /* empty function */ -} -/* 80D4BD8C-80D4BD90 004F8C 0004+00 1/0 0/0 0/0 .text changeBtk__8daNpcT_cFPiPi */ -// void daNpcT_c::changeBtk(int* param_0, int* param_1) { -extern "C" void changeBtk__8daNpcT_cFPiPi() { - /* empty function */ -} - -/* ############################################################################################## */ -/* 80D4C7D8-80D4C7E4 0005FC 000C+00 2/2 0/0 0/0 .data __vt__14daPeru_Param_c */ -SECTION_DATA extern void* __vt__14daPeru_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14daPeru_Param_cFv, +/* 80D4C61C-80D4C63C -00001 0020+00 1/0 0/0 0/0 .data daPeru_MethodTable */ +static actor_method_class daPeru_MethodTable = { + (process_method_func)daPeru_Create, + (process_method_func)daPeru_Delete, + (process_method_func)daPeru_Execute, + (process_method_func)daPeru_IsDelete, + (process_method_func)daPeru_Draw, }; -/* 80D4BD90-80D4BE2C 004F90 009C+00 0/0 1/0 0/0 .text __sinit_d_a_peru_cpp */ -void __sinit_d_a_peru_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80D4BD90, __sinit_d_a_peru_cpp); -#pragma pop - -/* 80D4BE2C-80D4BEC4 00502C 0098+00 1/1 0/0 0/0 .text - * __ct__8daPeru_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc - */ -daPeru_c::daPeru_c(daNpcT_faceMotionAnmData_c const* param_0, - daNpcT_motionAnmData_c const* param_1, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, int param_3, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, int param_5, - daNpcT_evtData_c const* param_6, char** param_7) { - // NONMATCHING -} - -/* 80D4BEC4-80D4BECC 0050C4 0008+00 1/0 0/0 0/0 .text getEyeballMaterialNo__8daPeru_cFv - */ -s32 daPeru_c::getEyeballMaterialNo() { - return true; -} - -/* 80D4BECC-80D4BED4 0050CC 0008+00 1/0 0/0 0/0 .text getHeadJointNo__8daPeru_cFv */ -s32 daPeru_c::getHeadJointNo() { - return 4; -} - -/* 80D4BED4-80D4BEDC 0050D4 0008+00 1/0 0/0 0/0 .text getNeckJointNo__8daPeru_cFv */ -s32 daPeru_c::getNeckJointNo() { - return 3; -} - -/* 80D4BEDC-80D4BEE4 0050DC 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__8daPeru_cFv */ -bool daPeru_c::getBackboneJointNo() { - return true; -} - -/* 80D4BEE4-80D4BEF4 0050E4 0010+00 1/0 0/0 0/0 .text checkChangeJoint__8daPeru_cFi */ -void daPeru_c::checkChangeJoint(int param_0) { - // NONMATCHING -} - -/* 80D4BEF4-80D4BF04 0050F4 0010+00 1/0 0/0 0/0 .text checkRemoveJoint__8daPeru_cFi */ -void daPeru_c::checkRemoveJoint(int param_0) { - // NONMATCHING -} - -/* 80D4BF04-80D4BF7C 005104 0078+00 1/0 0/0 0/0 .text beforeMove__8daPeru_cFv */ -void daPeru_c::beforeMove() { - // NONMATCHING -} - -/* 80D4BF7C-80D4BFC4 00517C 0048+00 2/1 0/0 0/0 .text __dt__14daPeru_Param_cFv */ -daPeru_Param_c::~daPeru_Param_c() { - // NONMATCHING -} - -/* 80D4BFC4-80D4BFCC 0051C4 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80D4BFC4() { - // NONMATCHING -} - -/* 80D4BFCC-80D4BFD4 0051CC 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80D4BFCC() { - // NONMATCHING -} - -/* 80D4BFD4-80D4C034 0051D4 0060+00 1/1 0/0 0/0 .text chkPointInArea__15daTag_EvtArea_cF4cXyz */ -// void daTag_EvtArea_c::chkPointInArea(cXyz param_0) { -extern "C" void chkPointInArea__15daTag_EvtArea_cF4cXyz() { - // NONMATCHING -} - -/* 80D4C034-80D4C04C 005234 0018+00 1/1 0/0 0/0 .text checkNowWolf__9daPy_py_cFv */ -// void daPy_py_c::checkNowWolf() { -extern "C" void checkNowWolf__9daPy_py_cFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D4C85C-80D4C860 000074 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_80D4C85C[4]; -#pragma pop - -/* 80D4C860-80D4C864 000078 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_80D4C860[4]; -#pragma pop - -/* 80D4C864-80D4C868 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D4C864[4]; -#pragma pop - -/* 80D4C868-80D4C86C 000080 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D4C868[4]; -#pragma pop - -/* 80D4C86C-80D4C870 000084 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D4C86C[4]; -#pragma pop - -/* 80D4C870-80D4C874 000088 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D4C870[4]; -#pragma pop - -/* 80D4C874-80D4C878 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_80D4C874[4]; -#pragma pop - -/* 80D4C878-80D4C87C 000090 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80D4C878[4]; -#pragma pop - -/* 80D4C87C-80D4C880 000094 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80D4C87C[4]; -#pragma pop - -/* 80D4C880-80D4C884 000098 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_80D4C880[4]; -#pragma pop - -/* 80D4C884-80D4C888 00009C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D4C884[4]; -#pragma pop - -/* 80D4C888-80D4C88C 0000A0 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D4C888[4]; -#pragma pop - -/* 80D4C88C-80D4C890 0000A4 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D4C88C[4]; -#pragma pop - -/* 80D4C890-80D4C894 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D4C890[4]; -#pragma pop - -/* 80D4C894-80D4C898 0000AC 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80D4C894[4]; -#pragma pop - -/* 80D4C898-80D4C89C 0000B0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_80D4C898[4]; -#pragma pop - -/* 80D4C89C-80D4C8A0 0000B4 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_80D4C89C[4]; -#pragma pop - -/* 80D4C8A0-80D4C8A4 0000B8 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80D4C8A0[4]; -#pragma pop - -/* 80D4C8A4-80D4C8A8 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_80D4C8A4[4]; -#pragma pop - -/* 80D4C8A8-80D4C8AC 0000C0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D4C8A8[4]; -#pragma pop - -/* 80D4C8AC-80D4C8B0 0000C4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_80D4C8AC[4]; -#pragma pop - -/* 80D4C8B0-80D4C8B4 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D4C8B0[4]; -#pragma pop - -/* 80D4C8B4-80D4C8B8 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D4C8B4[4]; -#pragma pop - -/* 80D4C8B8-80D4C8BC 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80D4C8B8[4]; -#pragma pop - -/* 80D4C8BC-80D4C8C0 0000D4 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_80D4C8BC[4]; -#pragma pop +/* 80D4C63C-80D4C66C -00001 0030+00 0/0 0/0 1/0 .data g_profile_PERU */ +extern actor_process_profile_definition g_profile_PERU = { + fpcLy_CURRENT_e, // mLayerID + 7, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_PERU, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(daPeru_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 694, // mPriority + &daPeru_MethodTable, // sub_method + 0x08044108, // mStatus + fopAc_NPC_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +}; /* 80D4C1B0-80D4C1B0 000150 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */