diff --git a/config/GZ2E01/rels/d_a_npc_gwolf/symbols.txt b/config/GZ2E01/rels/d_a_npc_gwolf/symbols.txt index fe05cf9657c..04b694c57fa 100644 --- a/config/GZ2E01/rels/d_a_npc_gwolf/symbols.txt +++ b/config/GZ2E01/rels/d_a_npc_gwolf/symbols.txt @@ -229,6 +229,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa @4017 = .bss:0x00000048; // type:object size:0xC scope:local l_HIO = .bss:0x00000054; // type:object size:0x4 scope:global data:4byte @4815 = .bss:0x00000058; // type:object size:0xC scope:local +init$2502 = .bss:0x00000064; // type:object size:0x1 scope:local align:1 eyeOffset$4814 = .bss:0x00000068; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000074; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000078; // type:object size:0x4 scope:global diff --git a/configure.py b/configure.py index 37572d86db1..71e4494f63b 100755 --- a/configure.py +++ b/configure.py @@ -1841,7 +1841,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_npc_grs"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_grz", extra_cflags=[DANPCF_C_HACK]), ActorRel(NonMatching, "d_a_npc_guard"), - ActorRel(NonMatching, "d_a_npc_gwolf"), + ActorRel(MatchingFor("GZ2E01"), "d_a_npc_gwolf", extra_cflags=[DANPCF_C_HACK]), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_hanjo"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_henna0"), ActorRel(NonMatching, "d_a_npc_hoz"), diff --git a/include/d/actor/d_a_npc_gwolf.h b/include/d/actor/d_a_npc_gwolf.h index 1f2932ea13c..7b3aa0a2e26 100644 --- a/include/d/actor/d_a_npc_gwolf.h +++ b/include/d/actor/d_a_npc_gwolf.h @@ -10,42 +10,69 @@ * * @details * - */ +*/ + +struct daNpc_GWolf_HIOParam { + /* 0x00 */ daNpcF_HIOParam common; + /* 0x6C */ f32 attack_spd_horizontal; // 攻撃速度横 - Attack Speed Horizontal + /* 0x70 */ f32 attack_spd_vertical; // 攻撃速度縦 - Attack Speed Vertical + /* 0x74 */ f32 attack_spd_horizontal_horse; // 攻撃速度横(馬) - Attack Speed Horizontal (Horse) + /* 0x78 */ f32 attack_spd_vertical_horse; // 攻撃速度縦(馬) - Attack Speed Vertical (Horse) + /* 0x7C */ f32 demo_start_dist; // デモ開始距離 - Demo Start Distance + /* 0x80 */ f32 blur_scale; // ブラーのスケール - Blur Scale + /* 0x84 */ f32 blur_opacity; // ブラーの透明度 - Blur Opacity + /* 0x88 */ f32 warp_start_dist; // ワープ開始距離 - Warp Start Distance +}; + +class daNpc_GWolf_HIO_c : public mDoHIO_entry_c { + /* 0x8 */ daNpc_GWolf_HIOParam param; +}; + +class daNpc_GWolf_Param_c { +public: + /* 809F8488 */ virtual ~daNpc_GWolf_Param_c() {} + + static daNpc_GWolf_HIOParam const m; +}; + class daNpc_GWolf_c : public daNpcF_c { public: + typedef BOOL (daNpc_GWolf_c::*actionFunc)(void*); + typedef BOOL (daNpc_GWolf_c::*cutFunc)(int); + /* 809F30AC */ daNpc_GWolf_c(); - /* 809F34C0 */ void create(); - /* 809F37C0 */ void CreateHeap(); - /* 809F3BD8 */ void Delete(); - /* 809F3C0C */ void Execute(); - /* 809F3C2C */ void Draw(); - /* 809F3CBC */ void draw(int, int, f32, GXColorS10*, int); - /* 809F3FB8 */ void ctrlJoint(J3DJoint*, J3DModel*); - /* 809F41EC */ void createHeapCallBack(fopAc_ac_c*); - /* 809F420C */ void ctrlJointCallBack(J3DJoint*, int); - /* 809F4E38 */ void getTypeFromParam(); - /* 809F4E84 */ void getModeFromParam(); - /* 809F4F00 */ void isDelete(); + /* 809F34C0 */ cPhs__Step create(); + /* 809F37C0 */ int CreateHeap(); + /* 809F3BD8 */ int Delete(); + /* 809F3C0C */ int Execute(); + /* 809F3C2C */ int Draw(); + /* 809F3CBC */ int draw(int, int, f32, GXColorS10*, int); + /* 809F3FB8 */ int ctrlJoint(J3DJoint*, J3DModel*); + /* 809F41EC */ static int createHeapCallBack(fopAc_ac_c*); + /* 809F420C */ static int ctrlJointCallBack(J3DJoint*, int); + /* 809F420C */ u8 getTypeFromParam(); + /* 809F4E84 */ int getModeFromParam(); + /* 809F4F00 */ BOOL isDelete(); /* 809F4FF4 */ void reset(); /* 809F520C */ void playMotion(); - /* 809F55D0 */ void chkAction(int (daNpc_GWolf_c::*)(void*)); - /* 809F55FC */ void setAction(int (daNpc_GWolf_c::*)(void*)); - /* 809F56A4 */ void selectAction(); + /* 809F55D0 */ BOOL chkAction(actionFunc); + /* 809F55FC */ BOOL setAction(actionFunc); + /* 809F56A4 */ BOOL selectAction(); /* 809F5770 */ void doNormalAction(int); - /* 809F5884 */ void doEvent(); + /* 809F5884 */ BOOL doEvent(); /* 809F5B60 */ void setLookMode(int); /* 809F5B84 */ void lookat(); - /* 809F5E0C */ void ECut_attackWarp(int); - /* 809F6548 */ void ECut_attackWarpHorse(int); - /* 809F6BFC */ void ECut_howlingSessionA(int); + /* 809F5E0C */ BOOL ECut_attackWarp(int); + /* 809F6548 */ BOOL ECut_attackWarpHorse(int); + /* 809F6BFC */ BOOL ECut_howlingSessionA(int); /* 809F70A8 */ void meetGWolfSkip(); - /* 809F70EC */ void ECut_meetGWolf(int); - /* 809F71E0 */ void wait(void*); - /* 809F75C0 */ void waitHowling(void*); - /* 809F775C */ void waitBrave(void*); - /* 809F77E4 */ void talk(void*); - /* 809F797C */ void test(void*); - /* 809F7A30 */ void getGroundSlope(dBgS_ObjAcch&, s16); + /* 809F70EC */ BOOL ECut_meetGWolf(int); + /* 809F71E0 */ BOOL wait(void*); + /* 809F75C0 */ BOOL waitHowling(void*); + /* 809F775C */ BOOL waitBrave(void*); + /* 809F77E4 */ BOOL talk(void*); + /* 809F797C */ BOOL test(void*); + /* 809F7A30 */ s16 getGroundSlope(dBgS_ObjAcch&, s16); /* 809F32C0 */ virtual ~daNpc_GWolf_c(); /* 809F4258 */ virtual void setParam(); @@ -60,35 +87,41 @@ public: /* 809F4E2C */ virtual BOOL drawDbgInfo(); /* 809F4E34 */ virtual void drawOtherMdls(); + int getSwBitFromParam() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; } + u16 getSaveTableFromParam() { return home.angle.z & 0xFF; } void setHowlingEndFlag() { field_0xe1c = 2; } void setHowlingFlag() { field_0xe1c = 1; } - static void* mEvtCutNameList[5]; - static u8 mEvtCutList[60]; + static char* mEvtCutNameList[5]; + static cutFunc mEvtCutList[5]; private: /* 0xB48 */ Z2Creature mSound; /* 0xBD8 */ daNpcF_MatAnm_c* mpMatAnm; - /* 0xBDC */ daNpcF_Lookat_c mLookAt; - /* 0xC78 */ daNpcF_ActorMngr_c mActorMng[2]; - /* 0xC88 */ u8 field_0xC88[0xC8C - 0xC88]; - /* 0xC8C */ dCcD_Cyl mCcCyl; - /* 0xDC8 */ u8 field_0xDC8[0xE08 - 0xDC8]; + /* 0xBDC */ daNpcF_Lookat_c mLookat; + /* 0xC78 */ daNpcF_ActorMngr_c mActorMngrs[2]; + /* 0xC88 */ daNpc_GWolf_HIO_c* mHIO; + /* 0xC8C */ dCcD_Cyl mCyl; + /* 0xDC8 */ actionFunc mNextAction; + /* 0xDD4 */ actionFunc mAction; + /* 0xDE0 */ request_of_phase_process_class mPhases[3]; + /* 0xDF8 */ int field_0xdf8; + /* 0xDFC */ int field_0xdfc; + /* 0xE00 */ int field_0xe00; + /* 0xE04 */ int field_0xe04; /* 0xE08 */ int field_0xe08; - /* 0xE0C */ u8 field_0xE0C[0xE14 - 0xE0C]; - /* 0xE14 */ u32 field_0xe14; - /* 0xE18 */ u8 field_0xe18[0xE1C - 0xE18]; + /* 0xE0C */ s16 mLookMode; + /* 0xE0E */ u16 mMode; + /* 0xE10 */ u8 mType; + /* 0xE11 */ s8 mParamMode; + /* 0xE14 */ int mExitId; + /* 0xE18 */ int mAnm; /* 0xE1C */ u8 field_0xe1c; + /* 0xE1D */ u8 field_0xe1d; + /* 0xE1E */ u8 swBit; + /* 0xE1F */ u8 mSaveTable; }; STATIC_ASSERT(sizeof(daNpc_GWolf_c) == 0xe20); -class daNpc_GWolf_Param_c { -public: - /* 809F8488 */ ~daNpc_GWolf_Param_c(); - - static u8 const m[140]; -}; - - #endif /* D_A_NPC_GWOLF_H */ diff --git a/src/d/actor/d_a_npc_gwolf.cpp b/src/d/actor/d_a_npc_gwolf.cpp index b7f20e9b7f9..c92427a76ca 100644 --- a/src/d/actor/d_a_npc_gwolf.cpp +++ b/src/d/actor/d_a_npc_gwolf.cpp @@ -6,837 +6,1963 @@ #include "d/dolzel_rel.h" #include "d/actor/d_a_npc_gwolf.h" -#include "dolphin/types.h" -#include "dol2asm.h" +#include "Z2AudioLib/Z2Instances.h" #include "d/d_camera.h" -// -// Forward References: -// +enum GWolf_RES_File_ID { + /* BCK */ + /* 0x07 */ BCK_WL_AT = 0x7, + /* 0x08 */ BCK_WL_ATTACKA, + /* 0x09 */ BCK_WL_ATTACKAED, + /* 0x0A */ BCK_WL_ATTACKAST, + /* 0x0B */ BCK_WL_DASHA, + /* 0x0C */ BCK_WL_HOWLB, + /* 0x0D */ BCK_WL_HOWLC, + /* 0x0E */ BCK_WL_JUMPA, + /* 0x0F */ BCK_WL_JUMPAST, + /* 0x10 */ BCK_WL_WAITSIT, -extern "C" void __ct__13daNpc_GWolf_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__13daNpc_GWolf_cFv(); -extern "C" void create__13daNpc_GWolf_cFv(); -extern "C" void CreateHeap__13daNpc_GWolf_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 Delete__13daNpc_GWolf_cFv(); -extern "C" void Execute__13daNpc_GWolf_cFv(); -extern "C" void Draw__13daNpc_GWolf_cFv(); -extern "C" void draw__13daNpc_GWolf_cFiifP11_GXColorS10i(); -extern "C" void ctrlJoint__13daNpc_GWolf_cFP8J3DJointP8J3DModel(); -extern "C" void createHeapCallBack__13daNpc_GWolf_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__13daNpc_GWolf_cFP8J3DJointi(); -extern "C" void setParam__13daNpc_GWolf_cFv(); -extern "C" void main__13daNpc_GWolf_cFv(); -extern "C" void ctrlBtk__13daNpc_GWolf_cFv(); -extern "C" void adjustShapeAngle__13daNpc_GWolf_cFv(); -extern "C" void setAttnPos__13daNpc_GWolf_cFv(); -extern "C" bool setExpressionAnm__13daNpc_GWolf_cFib(); -extern "C" void setExpression__13daNpc_GWolf_cFif(); -extern "C" void setMotionAnm__13daNpc_GWolf_cFif(); -extern "C" void setMotion__13daNpc_GWolf_cFifi(); -extern "C" bool drawDbgInfo__13daNpc_GWolf_cFv(); -extern "C" void drawOtherMdls__13daNpc_GWolf_cFv(); -extern "C" void getTypeFromParam__13daNpc_GWolf_cFv(); -extern "C" void getModeFromParam__13daNpc_GWolf_cFv(); -extern "C" void isDelete__13daNpc_GWolf_cFv(); -extern "C" void reset__13daNpc_GWolf_cFv(); -extern "C" void playMotion__13daNpc_GWolf_cFv(); -extern "C" void chkAction__13daNpc_GWolf_cFM13daNpc_GWolf_cFPCvPvPv_i(); -extern "C" void setAction__13daNpc_GWolf_cFM13daNpc_GWolf_cFPCvPvPv_i(); -extern "C" void selectAction__13daNpc_GWolf_cFv(); -extern "C" void doNormalAction__13daNpc_GWolf_cFi(); -extern "C" void doEvent__13daNpc_GWolf_cFv(); -extern "C" void setLookMode__13daNpc_GWolf_cFi(); -extern "C" void lookat__13daNpc_GWolf_cFv(); -extern "C" void ECut_attackWarp__13daNpc_GWolf_cFi(); -extern "C" void ECut_attackWarpHorse__13daNpc_GWolf_cFi(); -extern "C" void ECut_howlingSessionA__13daNpc_GWolf_cFi(); -extern "C" static void callback_proc__FPvi(); -extern "C" void meetGWolfSkip__13daNpc_GWolf_cFv(); -extern "C" void ECut_meetGWolf__13daNpc_GWolf_cFi(); -extern "C" void wait__13daNpc_GWolf_cFPv(); -extern "C" void waitHowling__13daNpc_GWolf_cFPv(); -extern "C" void waitBrave__13daNpc_GWolf_cFPv(); -extern "C" void talk__13daNpc_GWolf_cFPv(); -extern "C" void test__13daNpc_GWolf_cFPv(); -extern "C" void getGroundSlope__13daNpc_GWolf_cFR12dBgS_ObjAcchs(); -extern "C" void __dt__8cM3dGPlaFv(); -extern "C" static void daNpc_GWolf_Create__FPv(); -extern "C" static void daNpc_GWolf_Delete__FPv(); -extern "C" static void daNpc_GWolf_Execute__FPv(); -extern "C" static void daNpc_GWolf_Draw__FPv(); -extern "C" static bool daNpc_GWolf_IsDelete__FPv(); -extern "C" void calc__11J3DTexNoAnmCFPUs(); -extern "C" void __dt__18daNpcF_ActorMngr_cFv(); -extern "C" void __ct__18daNpcF_ActorMngr_cFv(); -extern "C" void __dt__15daNpcF_Lookat_cFv(); -extern "C" void __dt__5csXyzFv(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__8daNpcF_cFv(); -extern "C" void __ct__8daNpcF_cFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" void setCollisions__8daNpcF_cFv(); -extern "C" bool setExpressionBtp__8daNpcF_cFi(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void func_809F8398(void* _this, int*); -extern "C" void __sinit_d_a_npc_gwolf_cpp(); -extern "C" void __dt__19daNpc_GWolf_Param_cFv(); -extern "C" static void func_809F84D0(); -extern "C" static void func_809F84D8(); -extern "C" u8 const m__19daNpc_GWolf_Param_c[140]; -extern "C" extern char const* const d_a_npc_gwolf__stringBase0; -extern "C" void* mEvtCutNameList__13daNpc_GWolf_c[5]; -extern "C" u8 mEvtCutList__13daNpc_GWolf_c[60]; + /* BMDR */ + /* 0x13 */ BMDR_GW = 0x13, -// -// External References: -// + /* BRK */ + /* 0x16 */ BRK_GW = 0x16, -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void entry__13mDoExt_btpAnmFP16J3DMaterialTables(); -extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef(); -extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef(); -extern "C" void changeBckOnly__13mDoExt_bckAnmFP15J3DAnmTransform(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void entryDL__16mDoExt_McaMorfSOFv(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -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_setEffectMtx__FPC10fopAc_ac_cPC12J3DModelData(); -extern "C" void fopAcM_getPolygonAngle__FPC8cM3dGPlas(); -extern "C" void gndCheck__11fopAcM_gc_cFPC4cXyz(); -extern "C" void dStage_changeScene__FifUlScsi(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGs_onStageSwitch__Fii(); -extern "C" void -dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); -extern "C" void dComIfGs_wolfeye_effect_check__Fv(); -extern "C" void offSwitch__10dSv_info_cFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii(); -extern "C" void onSkipFade__14dEvt_control_cFv(); -extern "C" void endCheck__16dEvent_manager_cFs(); -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 GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWallR__12dBgS_AcchCirFf(); -extern "C" void SetWall__12dBgS_AcchCirFff(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void __ct__11dBgS_GndChkFv(); -extern "C" void __dt__11dBgS_GndChkFv(); -extern "C" void __ct__11dBgS_LinChkFv(); -extern "C" void __dt__11dBgS_LinChkFv(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void daNpcT_onEvtBit__FUl(); -extern "C" void daNpcT_chkEvtBit__FUl(); -extern "C" void daNpcT_onTmpBit__FUl(); -extern "C" void daNpcT_offTmpBit__FUl(); -extern "C" void daNpcT_chkTmpBit__FUl(); -extern "C" void initialize__18daNpcF_ActorMngr_cFv(); -extern "C" void entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void remove__18daNpcF_ActorMngr_cFv(); -extern "C" void getActorP__18daNpcF_ActorMngr_cFv(); -extern "C" void initialize__15daNpcF_MatAnm_cFv(); -extern "C" void initialize__15daNpcF_Lookat_cFv(); -extern "C" void setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz(); -extern "C" void calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii(); -extern "C" void execute__8daNpcF_cFv(); -extern "C" void tgHitCallBack__8daNpcF_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf(); -extern "C" void srchAttnActor1__8daNpcF_cFPvPv(); -extern "C" void setMtx__8daNpcF_cFv(); -extern "C" void setMtx2__8daNpcF_cFv(); -extern "C" void initialize__8daNpcF_cFv(); -extern "C" void getTrnsfrmKeyAnmP__8daNpcF_cFPci(); -extern "C" void getTexSRTKeyAnmP__8daNpcF_cFPci(); -extern "C" void getTevRegKeyAnmP__8daNpcF_cFPci(); -extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii(); -extern "C" void setBtkAnm__8daNpcF_cFP19J3DAnmTextureSRTKeyP12J3DModelDatafi(); -extern "C" void setBrkAnm__8daNpcF_cFP15J3DAnmTevRegKeyP12J3DModelDatafi(); -extern "C" void setEnvTevColor__8daNpcF_cFv(); -extern "C" void setRoomNo__8daNpcF_cFv(); -extern "C" void playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); -extern "C" void setLookatMtx__8daNpcF_cFiPif(); -extern "C" void hitChk2__8daNpcF_cFP8dCcD_Cylii(); -extern "C" void setDamage__8daNpcF_cFiii(); -extern "C" void ctrlMsgAnm__8daNpcF_cFRiRiP10fopAc_ac_ci(); -extern "C" void orderEvent__8daNpcF_cFiPcUsUsUcUs(); -extern "C" void changeEvent__8daNpcF_cFPcPcUsUs(); -extern "C" void initTalk__8daNpcF_cFiPP10fopAc_ac_c(); -extern "C" void talkProc__8daNpcF_cFPiiPP10fopAc_ac_c(); -extern "C" void step__8daNpcF_cFsiii(); -extern "C" void setAngle__8daNpcF_cFs(); -extern "C" void getDistTableIdx__8daNpcF_cFii(); -extern "C" void getAttnActorP__8daNpcF_cFiPFPvPv_Pvffffsii(); -extern "C" void chkFindPlayer2__8daNpcF_cFis(); -extern "C" void StartBlure__9dCamera_cFiP10fopAc_ac_cff(); -extern "C" void dCam_getBody__Fv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -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 __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_addCalc2__FPffff(); -extern "C" void cLib_addCalcAngleS2__FPssss(); -extern "C" void cLib_chaseS__FPsss(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz(); -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 removeTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern(); -extern "C" void removeTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey(); -extern "C" void removeTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); -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_23(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_23(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" u8 mCcDCyl__8daNpcF_c[68]; -extern "C" extern void* __vt__8daNpcF_c[18]; -extern "C" extern void* __vt__15daNpcF_MatAnm_c[4 + 6 /* 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 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" f32 mGroundY__11fopAcM_gc_c; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); + /* BTK */ + /* 0x19 */ BTK_GW = 0x19, -// -// Declarations: -// + /* EVT */ + /* 0x1C */ EVT_GWOLF_EVENT_LIST = 0x1C, +}; -/* ############################################################################################## */ -/* 809F871C-809F871C 000228 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_809F871C = "ATTACK_WARP"; -SECTION_DEAD static char const* const stringBase_809F8728 = "ATTACK_WARP_HORSE"; -SECTION_DEAD static char const* const stringBase_809F873A = "HOWLING_SESSIONA"; -SECTION_DEAD static char const* const stringBase_809F874B = "HOWLING_SESSIONB"; -SECTION_DEAD static char const* const stringBase_809F875C = "HOWLING_SESSIONC"; -SECTION_DEAD static char const* const stringBase_809F876D = "HOWLING_SESSIOND"; -SECTION_DEAD static char const* const stringBase_809F877E = "HOWLING_SESSIONE"; -SECTION_DEAD static char const* const stringBase_809F878F = "HOWLING_SESSIONF"; -SECTION_DEAD static char const* const stringBase_809F87A0 = "MEET_GWOLFA"; -SECTION_DEAD static char const* const stringBase_809F87AC = "MEET_GWOLFB"; -SECTION_DEAD static char const* const stringBase_809F87B8 = "MEET_GWOLFC"; -SECTION_DEAD static char const* const stringBase_809F87C4 = "MEET_GWOLFD"; -SECTION_DEAD static char const* const stringBase_809F87D0 = "MEET_GWOLFE"; -SECTION_DEAD static char const* const stringBase_809F87DC = "MEET_GWOLFF"; -SECTION_DEAD static char const* const stringBase_809F87E8 = "GWolf"; -SECTION_DEAD static char const* const stringBase_809F87EE = ""; -#pragma pop +enum RES_Name { + /* 0x0 */ GWOLF, +}; + +enum Event { + /* 0x0 */ EVT_NONE, + /* 0x1 */ EVT_ATTACK_WARP, + /* 0x2 */ EVT_ATTACK_WARP_HORSE, + /* 0x3 */ EVT_HOWLING_SESSIONA, + /* 0x4 */ EVT_HOWLING_SESSIONB, + /* 0x5 */ EVT_HOWLING_SESSIONC, + /* 0x6 */ EVT_HOWLING_SESSIOND, + /* 0x7 */ EVT_HOWLING_SESSIONE, + /* 0x8 */ EVT_HOWLING_SESSIONF, + /* 0x9 */ EVT_MEET_GWOLFA, + /* 0xA */ EVT_MEET_GWOLFB, + /* 0xB */ EVT_MEET_GWOLFC, + /* 0xC */ EVT_MEET_GWOLFD, + /* 0xD */ EVT_MEET_GWOLFE, + /* 0xE */ EVT_MEET_GWOLFF, +}; + +enum Event_Cut_Nums { + /* 0x5 */ NUM_EVT_CUTS_e = 0x5, +}; + +enum Animation { + /* 0x2 */ ANM_WAITSIT = 0x2, + /* 0x3 */ ANM_AT, + /* 0x4 */ ANM_ATTACKAST, + /* 0x5 */ ANM_ATTACKA, + /* 0x6 */ ANM_ATTACKAED, + /* 0x7 */ ANM_HOWLB, + /* 0x8 */ ANM_HOWLC, + /* 0x9 */ ANM_JUMPAST, + /* 0xA */ ANM_JUMPA, + /* 0xB */ ANM_DASHA, +}; + +enum Motion { + /* 0x0 */ MOT_WAITSIT, + /* 0x1 */ MOT_AT, + /* 0x2 */ MOT_ATTACKAST, + /* 0x3 */ MOT_ATTACKAED, + /* 0x4 */ MOT_HOWLB, + /* 0x5 */ MOT_HOWLC, + /* 0x6 */ MOT_JUMPAST, + /* 0x7 */ MOT_JUMPA, + /* 0x8 */ MOT_DASHA, +}; + +/* 809F8F14-809F8F18 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ +static daNpc_GWolf_Param_c l_HIO; /* 809F8814-809F881C 000020 0008+00 1/1 0/0 0/0 .data l_bmdGetParamList */ -SECTION_DATA static u8 l_bmdGetParamList[8] = { - 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam1 l_bmdGetParamList[1] = { + {BMDR_GW, GWOLF}, }; /* 809F881C-809F887C 000028 0060+00 0/1 0/0 0/0 .data l_bckGetParamList */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_bckGetParamList[96] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam1 l_bckGetParamList[12] = { + {-1, GWOLF}, + {-1, GWOLF}, + {BCK_WL_WAITSIT, GWOLF}, + {BCK_WL_AT, GWOLF}, + {BCK_WL_ATTACKAST, GWOLF}, + {BCK_WL_ATTACKA, GWOLF}, + {BCK_WL_ATTACKAED, GWOLF}, + {BCK_WL_HOWLB, GWOLF}, + {BCK_WL_HOWLC, GWOLF}, + {BCK_WL_JUMPAST, GWOLF}, + {BCK_WL_JUMPA, GWOLF}, + {BCK_WL_DASHA, GWOLF}, }; -#pragma pop /* 809F887C-809F8884 000088 0008+00 1/2 0/0 0/0 .data l_btkGetParamList */ -SECTION_DATA static u8 l_btkGetParamList[8] = { - 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam1 l_btkGetParamList[1] = { + {BTK_GW, GWOLF}, }; /* 809F8884-809F888C 000090 0008+00 0/0 0/0 0/0 .data l_brkGetParamList */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_brkGetParamList[8] = { - 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam1 l_brkGetParamList[1] = { + {BRK_GW, GWOLF}, }; -#pragma pop /* 809F888C-809F8904 000098 0078+00 0/2 0/0 0/0 .data l_evtGetParamList */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_evtGetParamList[120] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam1 l_evtGetParamList[15] = { + {EVT_NONE, GWOLF}, + {EVT_ATTACK_WARP, GWOLF}, + {EVT_ATTACK_WARP_HORSE, GWOLF}, + {EVT_HOWLING_SESSIONA, GWOLF}, + {EVT_HOWLING_SESSIONB, GWOLF}, + {EVT_HOWLING_SESSIONC, GWOLF}, + {EVT_HOWLING_SESSIOND, GWOLF}, + {EVT_HOWLING_SESSIONE, GWOLF}, + {EVT_HOWLING_SESSIONF, GWOLF}, + {EVT_MEET_GWOLFA, GWOLF}, + {EVT_MEET_GWOLFB, GWOLF}, + {EVT_MEET_GWOLFC, GWOLF}, + {EVT_MEET_GWOLFD, GWOLF}, + {EVT_MEET_GWOLFE, GWOLF}, + {EVT_MEET_GWOLFF, GWOLF}, }; -#pragma pop /* 809F8904-809F8940 -00001 003C+00 0/2 0/0 0/0 .data l_evtNames */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_evtNames[15] = { - (void*)NULL, - (void*)&d_a_npc_gwolf__stringBase0, - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0xC), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0x1E), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0x2F), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0x40), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0x51), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0x62), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0x73), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0x84), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0x90), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0x9C), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0xA8), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0xB4), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0xC0), +static char* l_evtNames[15] = { + NULL, + "ATTACK_WARP", + "ATTACK_WARP_HORSE", + "HOWLING_SESSIONA", + "HOWLING_SESSIONB", + "HOWLING_SESSIONC", + "HOWLING_SESSIOND", + "HOWLING_SESSIONE", + "HOWLING_SESSIONF", + "MEET_GWOLFA", + "MEET_GWOLFB", + "MEET_GWOLFC", + "MEET_GWOLFD", + "MEET_GWOLFE", + "MEET_GWOLFF", }; -#pragma pop /* 809F8940-809F894C 00014C 000C+00 1/0 0/0 0/0 .data l_loadRes_GWOLFa */ -SECTION_DATA static u8 l_loadRes_GWOLFa[12] = { - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +static int l_loadRes_GWOLFa[3] = { + GWOLF, -1, -1, }; /* 809F894C-809F8958 000158 000C+00 1/0 0/0 0/0 .data l_loadRes_GWOLF0 */ -SECTION_DATA static u8 l_loadRes_GWOLF0[12] = { - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +static int l_loadRes_GWOLF0[3] = { + GWOLF, -1, -1, }; /* 809F8958-809F8968 -00001 0010+00 2/2 0/0 0/0 .data l_loadRes_list */ -SECTION_DATA static void* l_loadRes_list[4] = { - (void*)&l_loadRes_GWOLFa, - (void*)&l_loadRes_GWOLFa, - (void*)&l_loadRes_GWOLFa, - (void*)&l_loadRes_GWOLF0, +static int* l_loadRes_list[4] = { + l_loadRes_GWOLFa, + l_loadRes_GWOLFa, + l_loadRes_GWOLFa, + l_loadRes_GWOLF0, }; /* 809F8968-809F896C -00001 0004+00 4/7 0/0 0/0 .data l_resNames */ -SECTION_DATA static void* l_resNames = (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0xCC); +static char* l_resNames[1] = {"GWolf"}; /* 809F896C-809F8970 -00001 0004+00 0/1 0/0 0/0 .data l_myName */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_myName = (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0xCC); -#pragma pop +static char* l_myName = "GWolf"; /* 809F8970-809F8980 00017C 000E+02 3/3 0/0 0/0 .data l_appearTmpFlag */ -SECTION_DATA static u8 l_appearTmpFlag[14 + 2 /* padding */] = { - 0xFF, - 0xFF, - 0x00, - 0x5C, - 0x00, - 0x5D, - 0x00, - 0x5E, - 0x00, - 0x5F, - 0x00, - 0x60, - 0x00, - 0x61, - /* padding */ - 0x00, - 0x00, +static s16 l_appearTmpFlag[7] = { + -1, + 0x005C, // dSv_event_tmp_flag_c::T_0092 - Hero's spirit - Gold wolf identification 2 + 0x005D, // dSv_event_tmp_flag_c::T_0093 - Hero's spirit - Gold wolf identification 3 + 0x005E, // dSv_event_tmp_flag_c::T_0094 - Hero's spirit - Gold wolf identification 4 + 0x005F, // dSv_event_tmp_flag_c::T_0095 - Hero's spirit - Gold wolf identification 5 + 0x0060, // dSv_event_tmp_flag_c::T_0096 - Hero's spirit - Gold wolf identification 6 + 0x0061, // dSv_event_tmp_flag_c::T_0097 - Hero's spirit - Gold wolf identification 7 }; /* 809F8980-809F8990 00018C 000E+02 2/2 0/0 0/0 .data l_warpAppearFlag */ -SECTION_DATA static u8 l_warpAppearFlag[14 + 2 /* padding */] = { - 0xFF, - 0xFF, - 0x01, - 0xD8, - 0x01, - 0xD9, - 0x01, - 0xDA, - 0x01, - 0xDB, - 0x01, - 0xDC, - 0x01, - 0xDD, - /* padding */ - 0x00, - 0x00, +static s16 l_warpAppearFlag[7] = { + -1, + 0x01D8, // dSv_event_flag_c::F_0472 - Secret techniques - Distant howling complete (for secret technique 2) + 0x01D9, // dSv_event_flag_c::F_0473 - Secret techniques - Distant howling complete (for secret technique 3) + 0x01DA, // dSv_event_flag_c::F_0474 - Secret techniques - Distant howling complete (for secret technique 4) + 0x01DB, // dSv_event_flag_c::F_0475 - Secret techniques - Distant howling complete (for secret technique 5) + 0x01DC, // dSv_event_flag_c::F_0476 - Secret techniques - Distant howling complete (for secret technique 6) + 0x01DD, // dSv_event_flag_c::F_0477 - Secret techniques - Distant howling complete (for secret technique 7) }; /* 809F8990-809F89A4 -00001 0014+00 0/1 0/0 0/0 .data mEvtCutNameList__13daNpc_GWolf_c */ -#pragma push -#pragma force_active on -SECTION_DATA void* daNpc_GWolf_c::mEvtCutNameList[5] = { - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0xD2), - (void*)&d_a_npc_gwolf__stringBase0, - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0xC), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0x1E), - (void*)(((char*)&d_a_npc_gwolf__stringBase0) + 0x84), +char* daNpc_GWolf_c::mEvtCutNameList[5] = { + "", + "ATTACK_WARP", + "ATTACK_WARP_HORSE", + "HOWLING_SESSIONA", + "MEET_GWOLFA", }; -#pragma pop - -/* 809F89A4-809F89B0 -00001 000C+00 0/1 0/0 0/0 .data @4018 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4018[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ECut_attackWarp__13daNpc_GWolf_cFi, -}; -#pragma pop - -/* 809F89B0-809F89BC -00001 000C+00 0/1 0/0 0/0 .data @4019 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4019[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ECut_attackWarpHorse__13daNpc_GWolf_cFi, -}; -#pragma pop - -/* 809F89BC-809F89C8 -00001 000C+00 0/1 0/0 0/0 .data @4020 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4020[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ECut_howlingSessionA__13daNpc_GWolf_cFi, -}; -#pragma pop - -/* 809F89C8-809F89D4 -00001 000C+00 0/1 0/0 0/0 .data @4021 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4021[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ECut_meetGWolf__13daNpc_GWolf_cFi, -}; -#pragma pop /* 809F89D4-809F8A10 0001E0 003C+00 0/2 0/0 0/0 .data mEvtCutList__13daNpc_GWolf_c */ -#pragma push -#pragma force_active on -SECTION_DATA u8 daNpc_GWolf_c::mEvtCutList[60] = { - 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, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 809F8A10-809F8A1C -00001 000C+00 1/1 0/0 0/0 .data @4488 */ -SECTION_DATA static void* lit_4488[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)test__13daNpc_GWolf_cFPv, +daNpc_GWolf_c::cutFunc daNpc_GWolf_c::mEvtCutList[5] = { + NULL, + &daNpc_GWolf_c::ECut_attackWarp, + &daNpc_GWolf_c::ECut_attackWarpHorse, + &daNpc_GWolf_c::ECut_howlingSessionA, + &daNpc_GWolf_c::ECut_meetGWolf, }; -/* 809F8A1C-809F8A4C -00001 0030+00 1/1 0/0 0/0 .data @5014 */ -SECTION_DATA static void* lit_5014[12] = { - (void*)(((char*)setMotionAnm__13daNpc_GWolf_cFif) + 0xC8), - (void*)(((char*)setMotionAnm__13daNpc_GWolf_cFif) + 0xC8), - (void*)(((char*)setMotionAnm__13daNpc_GWolf_cFif) + 0xD0), - (void*)(((char*)setMotionAnm__13daNpc_GWolf_cFif) + 0xD0), - (void*)(((char*)setMotionAnm__13daNpc_GWolf_cFif) + 0xA0), - (void*)(((char*)setMotionAnm__13daNpc_GWolf_cFif) + 0xA8), - (void*)(((char*)setMotionAnm__13daNpc_GWolf_cFif) + 0xB0), - (void*)(((char*)setMotionAnm__13daNpc_GWolf_cFif) + 0xD0), - (void*)(((char*)setMotionAnm__13daNpc_GWolf_cFif) + 0xD0), - (void*)(((char*)setMotionAnm__13daNpc_GWolf_cFif) + 0xB8), - (void*)(((char*)setMotionAnm__13daNpc_GWolf_cFif) + 0xC0), - (void*)(((char*)setMotionAnm__13daNpc_GWolf_cFif) + 0xD0), +/* 809F30AC-809F3230 0000EC 0184+00 1/1 0/0 0/0 .text __ct__13daNpc_GWolf_cFv */ +daNpc_GWolf_c::daNpc_GWolf_c() {} + +/* 809F32C0-809F34C0 000300 0200+00 1/0 0/0 0/0 .text __dt__13daNpc_GWolf_cFv */ +daNpc_GWolf_c::~daNpc_GWolf_c() { + for (int i = 0; l_loadRes_list[mType][i] >= 0; i++) { + dComIfG_resDelete(&mPhases[i], l_resNames[l_loadRes_list[mType][i]]); + } + + if (heap != NULL) { + mpMorf->stopZelAnime(); + } +} + +/* ############################################################################################## */ +/* 809F84F4-809F8580 000000 008C+00 17/17 0/0 0/0 .rodata m__19daNpc_GWolf_Param_c */ +daNpc_GWolf_HIOParam const daNpc_GWolf_Param_c::m = { + 30.0f, + -4.0f, + 1.0f, + 600.0f, + 255.0f, + 240.0f, + 35.0f, + 60.0f, + 0.0f, + 0.0f, + 10.0f, + -10.0f, + 30.0f, + -30.0f, + 45.0f, + -45.0f, + 0.6f, + 12.0f, + 5, + 6, + 7, + 6, + 180.0f, + 500.0f, + 300.0f, + -300.0f, + 60, + 8, + 0, + 0, + 0, + false, + false, + 21.0f, + 40.5f, + 19.5f, + 38.5f, + 500.0f, + 0.99f, + 0.9f, + 120.0f, }; -/* 809F8A4C-809F8A6C -00001 0020+00 1/1 0/0 0/0 .data @5060 */ -SECTION_DATA static void* lit_5060[8] = { - (void*)(((char*)getModeFromParam__13daNpc_GWolf_cFv) + 0x74), - (void*)(((char*)getModeFromParam__13daNpc_GWolf_cFv) + 0x3C), - (void*)(((char*)getModeFromParam__13daNpc_GWolf_cFv) + 0x44), - (void*)(((char*)getModeFromParam__13daNpc_GWolf_cFv) + 0x4C), - (void*)(((char*)getModeFromParam__13daNpc_GWolf_cFv) + 0x54), - (void*)(((char*)getModeFromParam__13daNpc_GWolf_cFv) + 0x5C), - (void*)(((char*)getModeFromParam__13daNpc_GWolf_cFv) + 0x64), - (void*)(((char*)getModeFromParam__13daNpc_GWolf_cFv) + 0x6C), -}; +/* 809F34C0-809F37C0 000500 0300+00 1/1 0/0 0/0 .text create__13daNpc_GWolf_cFv */ +cPhs__Step daNpc_GWolf_c::create() { + fopAcM_SetupActor(this, daNpc_GWolf_c); -/* 809F8A6C-809F8A7C 000278 000E+02 1/1 0/0 0/0 .data l_delFlag$5064 */ -SECTION_DATA static u8 l_delFlag[14 + 2 /* padding */] = { - 0x01, - 0x53, - 0x01, - 0xEC, - 0x01, - 0xED, - 0x01, - 0xEE, - 0x01, - 0xEF, - 0x01, - 0xF0, - 0x01, - 0xF1, - /* padding */ - 0x00, - 0x00, -}; + mType = getTypeFromParam(); + mParamMode = getModeFromParam(); -/* 809F8A7C-809F8A8C 000288 000E+02 1/1 0/0 0/0 .data l_playerNoList$5071 */ -SECTION_DATA static u8 l_playerNoList[14 + 2 /* padding */] = { - 0xFF, - 0xFF, - 0x00, - 0x02, - 0x00, - 0x03, - 0x00, - 0x04, - 0x00, - 0x05, - 0x00, - 0x06, - 0x00, - 0x07, - /* padding */ - 0x00, - 0x00, -}; + mExitId = fopAcM_GetParam(this) >> 24; -/* 809F8A8C-809F8A98 -00001 000C+00 0/1 0/0 0/0 .data @5251 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5251[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)test__13daNpc_GWolf_cFPv, -}; -#pragma pop + if (home.angle.x != 0xFFFF) { + field_0xe08 = home.angle.x; + } else { + field_0xe08 = -1; + } -/* 809F8A98-809F8AA4 -00001 000C+00 0/1 0/0 0/0 .data @5255 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5255[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitBrave__13daNpc_GWolf_cFPv, -}; -#pragma pop + swBit = getSwBitFromParam(); + mSaveTable = getSaveTableFromParam(); -/* 809F8AA4-809F8AB0 -00001 000C+00 0/1 0/0 0/0 .data @5257 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5257[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitHowling__13daNpc_GWolf_cFPv, -}; -#pragma pop + if (isDelete()) { + return cPhs_ERROR_e; + } -/* 809F8AB0-809F8ABC -00001 000C+00 0/1 0/0 0/0 .data @5259 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5259[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__13daNpc_GWolf_cFPv, -}; -#pragma pop + int iVar1 = 0; + int i; + for (i = 0; l_loadRes_list[mType][i] >= 0; i++) { + cPhs__Step phase = (cPhs__Step)dComIfG_resLoad(&mPhases[i], l_resNames[l_loadRes_list[mType][i]]); + if (phase == cPhs_ERROR_e || phase == cPhs_UNK3_e) { + return cPhs_ERROR_e; + } -/* 809F8ABC-809F8AC8 -00001 000C+00 0/1 0/0 0/0 .data @5299 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5299[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__13daNpc_GWolf_cFPv, -}; -#pragma pop + if (phase == cPhs_COMPLEATE_e) { + iVar1++; + } + } -/* 809F8AC8-809F8AD4 -00001 000C+00 0/1 0/0 0/0 .data @5307 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5307[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__13daNpc_GWolf_cFPv, -}; -#pragma pop + if (iVar1 == i) { + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x3D30)) { + return cPhs_ERROR_e; + } -/* 809F8AD4-809F8B78 -00001 00A4+00 1/1 0/0 0/0 .data @5642 */ -SECTION_DATA static void* lit_5642[41] = { - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3C8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x45C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x490), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x4A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x4C8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x71C), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x6D8), -}; + mpMorf->getModel()->getModelData(); + fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -300.0f, -50.0f, -300.0f, 300.0f, 450.0f, 300.0f); -/* 809F8B78-809F8C1C -00001 00A4+00 1/1 0/0 0/0 .data @5641 */ -SECTION_DATA static void* lit_5641[41] = { - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x94), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x154), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x1A0), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x1C8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x214), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x3A8), - (void*)(((char*)ECut_attackWarp__13daNpc_GWolf_cFi) + 0x394), -}; + mSound.init(¤t.pos, &eyePos, 3, 1); -/* 809F8C1C-809F8CC0 -00001 00A4+00 1/1 0/0 0/0 .data @5817 */ -SECTION_DATA static void* lit_5817[41] = { - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x33C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x3D4), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x408), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x420), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x440), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x694), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x650), -}; + mAcchCir.SetWall(daNpc_GWolf_Param_c::m.common.width, daNpc_GWolf_Param_c::m.common.knee_length); + 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(daNpc_GWolf_Param_c::m.common.weight, 0, this); + mCyl.Set(mCcDCyl); + mCyl.SetStts(&mCcStts); + mCyl.SetTgHitCallback(tgHitCallBack); + mAcch.CrrPos(dComIfG_Bgsp()); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); + + setEnvTevColor(); + setRoomNo(); + reset(); + Execute(); -/* 809F8CC0-809F8D64 -00001 00A4+00 1/1 0/0 0/0 .data @5816 */ -SECTION_DATA static void* lit_5816[41] = { - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x94), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0xCC), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x118), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x13C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x188), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x31C), - (void*)(((char*)ECut_attackWarpHorse__13daNpc_GWolf_cFi) + 0x308), -}; + return cPhs_COMPLEATE_e; + } -/* 809F8D64-809F8D7C 000570 0018+00 1/1 0/0 0/0 .data l_warpIdList$5862 */ -SECTION_DATA static u8 l_warpIdList[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x09, - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, -}; + return cPhs_INIT_e; +} + +/* 809F37C0-809F3A1C 000800 025C+00 1/1 0/0 0/0 .text CreateHeap__13daNpc_GWolf_cFv */ +int daNpc_GWolf_c::CreateHeap() { + J3DModelData* mdlData_p = NULL; + + if (l_bmdGetParamList[0].fileIdx >= 0) { + mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNames[l_bmdGetParamList[0].arcIdx], l_bmdGetParamList[0].fileIdx); + } + + JUT_ASSERT(538, 0 != mdlData_p); + + mpMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, 0x11020284); + if (mpMorf != NULL && mpMorf->getModel() == NULL) { + mpMorf->stopZelAnime(); + mpMorf = NULL; + } + + if (mpMorf == NULL) { + return 0; + } + + J3DModel* model = mpMorf->getModel(); + for (u16 i = 0; i < mdlData_p->getJointNum(); i++) { + mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + } + model->setUserArea((uintptr_t)this); + + mpMatAnm = new daNpcF_MatAnm_c(); + if (mpMatAnm == NULL) { + return 0; + } + + setMotionAnm(ANM_WAITSIT, 0.0f); + return 1; +} + +/* 809F3BD8-809F3C0C 000C18 0034+00 1/1 0/0 0/0 .text Delete__13daNpc_GWolf_cFv */ +int daNpc_GWolf_c::Delete() { + fopAcM_GetID(this); + this->~daNpc_GWolf_c(); + return 1; +} + +/* 809F3C0C-809F3C2C 000C4C 0020+00 2/2 0/0 0/0 .text Execute__13daNpc_GWolf_cFv */ +int daNpc_GWolf_c::Execute() { + return execute(); +} + +/* 809F3C2C-809F3CBC 000C6C 0090+00 1/1 0/0 0/0 .text Draw__13daNpc_GWolf_cFv */ +int daNpc_GWolf_c::Draw() { + J3DModelData* mdlData_p = mpMorf->getModel()->getModelData(); + mdlData_p->getMaterialNodePointer(2)->setMaterialAnm(mpMatAnm); + + return draw( + chkAction(&daNpc_GWolf_c::test), FALSE, daNpc_GWolf_Param_c::m.common.real_shadow_size, NULL, 0 + ); +} + +/* 809F3CBC-809F3FB8 000CFC 02FC+00 1/1 0/0 0/0 .text draw__13daNpc_GWolf_cFiifP11_GXColorS10i */ +int daNpc_GWolf_c::draw(int param_1, int param_2, f32 param_3, _GXColorS10* i_color, int param_5) { + J3DModel* model = mpMorf->getModel(); + J3DModelData* mdlData_p = model->getModelData(); + + field_0x9f3 = 1; + if (!checkHide()) { + f32 fVar1; + if (param_5 == 0 && mDamageTimer != 0 && mTotalDamageTimer != 0) { + fVar1 = (f32)mDamageTimer / mTotalDamageTimer; + } else { + fVar1 = 0.0f; + } + + if (!(cM3d_IsZero(fVar1) > 0)) { + tevStr.TevColor.r = fVar1 * 20.0f; + tevStr.TevColor.g = 0; + } else if (param_1 != 0) { + tevStr.TevColor.g = 20; + tevStr.TevColor.r = 0; + } else if (i_color != NULL) { + tevStr.TevColor.r = i_color->r; + tevStr.TevColor.g = i_color->g; + tevStr.TevColor.b = i_color->b; + tevStr.TevColor.a = i_color->a; + } else { + tevStr.TevColor.g = 0; + tevStr.TevColor.r = 0; + } + + g_env_light.settingTevStruct(5, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(model, &tevStr); + + if (!drawDbgInfo()) { + if ((mAnmFlags & ANM_PLAY_BTP) != 0) { + mBtpAnm.entry(mdlData_p); + } + + if((mAnmFlags & ANM_PLAY_BTK) != 0) { + mBtkAnm.entry(mdlData_p); + } + + if ((mAnmFlags & ANM_PLAY_BRK) != 0) { + mBrkAnm.entry(mdlData_p); + } + + if (param_2 != 0) { + fopAcM_setEffectMtx(this, mdlData_p); + } + + mpMorf->entryDL(); + + if ((mAnmFlags & ANM_PLAY_BTP) != 0) { + mBtpAnm.remove(mdlData_p); + } + + if ((mAnmFlags & ANM_PLAY_BTK) != 0) { + mBtkAnm.remove(mdlData_p); + } + + if ((mAnmFlags & ANM_PLAY_BRK) != 0) { + mBrkAnm.remove(mdlData_p); + } + + mShadowKey = dComIfGd_setShadow(mShadowKey, 1, model, ¤t.pos, param_3, 20.0f, current.pos.y, + mGroundH, mGndChk, &tevStr, 0, 1.0f, + dDlst_shadowControl_c::getSimpleTex()); + drawOtherMdls(); + } + } + + return 1; +} + +/* 809F3FB8-809F41EC 000FF8 0234+00 1/1 0/0 0/0 .text ctrlJoint__13daNpc_GWolf_cFP8J3DJointP8J3DModel */ +int daNpc_GWolf_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { + int jntNo = i_joint->getJntNo(); + int i_jointList[3] = {1, 3, 4}; + + if (jntNo == 0) { + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1)); + mDoMtx_stack_c::multVecZero(&mLookatPos[0]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3)); + mDoMtx_stack_c::multVecZero(&mLookatPos[1]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(4)); + mDoMtx_stack_c::multVecZero(&mLookatPos[2]); + } + + mDoMtx_stack_c::copy(i_model->getAnmMtx(jntNo)); + + switch (jntNo) { + case 1: + case 3: + case 4: + setLookatMtx(jntNo, i_jointList, daNpc_GWolf_Param_c::m.common.neck_rotation_ratio); + break; + } + + if (jntNo == 1) { + mDoMtx_stack_c::YrotM(-field_0x908[0].z); + mDoMtx_stack_c::ZrotM(field_0x908[0].x); + } else if (jntNo == 4) { + mDoMtx_stack_c::YrotM(-field_0x908[2].z); + mDoMtx_stack_c::ZrotM(field_0x908[2].x); + } + + i_model->setAnmMtx(jntNo, mDoMtx_stack_c::get()); + MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + + if ((jntNo == 4 || jntNo == 0xE) && (mAnmFlags & ANM_PLAY_BCK) != 0) { + J3DAnmTransform* anm = mBckAnm.getBckAnm(); + mBckAnm.changeBckOnly(mpMorf->getAnm()); + mpMorf->changeAnm(anm); + } + + return 1; +} + +/* 809F41EC-809F420C 00122C 0020+00 1/1 0/0 0/0 .text createHeapCallBack__13daNpc_GWolf_cFP10fopAc_ac_c */ +int daNpc_GWolf_c::createHeapCallBack(fopAc_ac_c* a_this) { + return static_cast(a_this)->CreateHeap(); +} + +/* 809F420C-809F4258 00124C 004C+00 1/1 0/0 0/0 .text ctrlJointCallBack__13daNpc_GWolf_cFP8J3DJointi */ +int daNpc_GWolf_c::ctrlJointCallBack(J3DJoint* i_joint, int param_2) { + if (param_2 == 0) { + J3DModel* model = j3dSys.getModel(); + daNpc_GWolf_c* i_this = (daNpc_GWolf_c*)model->getUserArea(); + + if (i_this != NULL) { + i_this->ctrlJoint(i_joint, model); + } + } + + return 1; +} + +/* 809F4258-809F4390 001298 0138+00 1/0 0/0 0/0 .text setParam__13daNpc_GWolf_cFv */ +void daNpc_GWolf_c::setParam() { + actionFunc action = mNextAction; + u32 flag = fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e; + + selectAction(); + + if (mNextAction != action) { + for (int i = 2; i < 2; i++) { + mActorMngrs[i].initialize(); + } + } + + field_0xdf8 = 0; + field_0xdfc = 0; + + if (!daPy_py_c::checkNowWolf()) { + flag = 0; + } + + attention_info.distances[fopAc_attn_LOCK_e] = getDistTableIdx(5, 6); + attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e]; + attention_info.distances[fopAc_attn_SPEAK_e] = getDistTableIdx(3, 6); + attention_info.flags = flag; + + scale.set(daNpc_GWolf_Param_c::m.common.scale, daNpc_GWolf_Param_c::m.common.scale, daNpc_GWolf_Param_c::m.common.scale); + mAcchCir.SetWallR(daNpc_GWolf_Param_c::m.common.width); + mAcchCir.SetWallH(daNpc_GWolf_Param_c::m.common.knee_length); + + if (!dComIfGp_event_runCheck()) { + gravity = daNpc_GWolf_Param_c::m.common.gravity; + } +} + +/* 809F4390-809F4558 0013D0 01C8+00 1/0 0/0 0/0 .text main__13daNpc_GWolf_cFv */ +BOOL daNpc_GWolf_c::main() { + if (!doEvent()) { + doNormalAction(1); + } + + if (checkHide()) { + attention_info.flags = 0; + } + + if (!daNpc_GWolf_Param_c::m.common.debug_mode_ON && (!dComIfGp_event_runCheck() || (mOrderNewEvt && dComIfGp_getEvent().isOrderOK()))) { + if (mOrderEvtNo != EVT_NONE) { + eventInfo.setArchiveName(l_resNames[l_evtGetParamList[mOrderEvtNo].arcIdx]); + } + + switch (mOrderEvtNo) { + case EVT_MEET_GWOLFA: + case EVT_MEET_GWOLFB: + case EVT_MEET_GWOLFC: + case EVT_MEET_GWOLFD: + case EVT_MEET_GWOLFE: + case EVT_MEET_GWOLFF: + orderEvent(mOrderSpeakEvt, l_evtNames[l_evtGetParamList[mOrderEvtNo].fileIdx], 0xFFFF, 4, 0xFF, 3); + break; + + default: + orderEvent(mOrderSpeakEvt, l_evtNames[l_evtGetParamList[mOrderEvtNo].fileIdx], 0xFFFF, 0x28, 0xFF, 1); + break; + } + } + + if (field_0x9ee) { + mExpressionMorfOverride = 0.0f; + mMotionMorfOverride = 0.0f; + field_0x9ee = false; + } + + playMotion(); + return TRUE; +} + +/* 809F4558-809F4638 001598 00E0+00 1/0 0/0 0/0 .text ctrlBtk__13daNpc_GWolf_cFv */ +BOOL daNpc_GWolf_c::ctrlBtk() { + if (mpMatAnm != NULL) { + J3DAnmTextureSRTKey* i_btk = NULL; + + if (l_btkGetParamList[0].fileIdx >= 0) { + i_btk = getTexSRTKeyAnmP(l_resNames[l_btkGetParamList[0].arcIdx], l_btkGetParamList[0].fileIdx); + } + + if (i_btk == mBtkAnm.getBtkAnm()) { + mpMatAnm->setNowOffsetX(cM_ssin(mEyeAngle.y) * 0.2f * -1.0f); + mpMatAnm->setNowOffsetY(cM_ssin(mEyeAngle.x) * 0.2f); + mpMatAnm->onEyeMoveFlag(); + return TRUE; + } + + mpMatAnm->offEyeMoveFlag(); + } + + return FALSE; +} + +/* 809F4638-809F4698 001678 0060+00 1/0 0/0 0/0 .text adjustShapeAngle__13daNpc_GWolf_cFv */ +void daNpc_GWolf_c::adjustShapeAngle() { + s16 target = 0; + + if (mAcch.ChkGroundHit()) { + target = getGroundSlope(mAcch, shape_angle.y); + } + + cLib_addCalcAngleS2(&shape_angle.x, target, 3, 0x80); + mCurAngle.x = shape_angle.x; +} + +/* 809F4698-809F4BB0 0016D8 0518+00 1/0 0/0 0/0 .text setAttnPos__13daNpc_GWolf_cFv */ +void daNpc_GWolf_c::setAttnPos() { + static cXyz eyeOffset(35.0f, 0.0f, 0.0f); + + cXyz sp7c, sp88, sp94, spa0; + f32 attention_offset = daNpc_GWolf_Param_c::m.common.attention_offset; + + mDoMtx_stack_c::YrotS(field_0x990); + cLib_addCalc2(&field_0x984[0], 0.0f, 0.1f, 125.0f); + cLib_addCalc2(&field_0x984[2], 0.0f, 0.1f, 125.0f); + + for (int i = 0; i < 3; i++) { + sp94.set(0.0f, 0.0f, field_0x984[i] * cM_ssin(field_0x992)); + mDoMtx_stack_c::multVec(&sp94, &spa0); + field_0x908[i].x = -spa0.z; + field_0x908[i].z = -spa0.x; + } + + cLib_chaseS(&field_0x992, 0, 0x555); + + if (mLookMode == LOOK_RESET) { + for (int i = 0; i < 3; i++) { + mLookatAngle[i].setall(0); + } + } + + setMtx(); + lookat(); + + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(4)); + mDoMtx_stack_c::multVecZero(&mHeadPos); + mDoMtx_stack_c::multVec(&eyeOffset, &eyePos); + eyeOffset.y = 0.0f; + mDoMtx_stack_c::multVec(&eyeOffset, &sp94); + + mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &sp94); + mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &sp94); + + cXyz* attnPos = mLookat.getAttnPos(); + if (attnPos != NULL) { + sp88 = *attnPos - eyePos; + mEyeAngle.y = -(mLookatAngle[2].y + mCurAngle.y); + mEyeAngle.y += cM_atan2s(sp88.x, sp88.z); + mEyeAngle.x = -cM_atan2s(sp88.y, sp88.absXZ()); + mEyeAngle.x += mHeadAngle.x; + } else { + mEyeAngle.y = 0; + mEyeAngle.x = 0; + } + + f32 fVar1 = 0.0f; + f32 fVar2 = 0.0f; + + sp88.set(0.0f, 0.0f, 0.0f); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(mCurAngle.x, mCurAngle.y, mCurAngle.z); + mDoMtx_stack_c::multVec(&sp88, &sp7c); + + attention_info.position.set(mHeadPos.x, mHeadPos.y + attention_offset, mHeadPos.z); + + if (!mHide && !mTwilight && mType == 0) { + if (!mIsDamaged) { + mCyl.SetTgType(0xD8FBFDFF); + mCyl.SetTgSPrm(0x1F); + mCyl.OnTgNoHitMark(); + } else { + mCyl.SetTgType(0); + mCyl.SetTgSPrm(0); + } + + mCyl.SetC(sp7c); + mCyl.SetH(daNpc_GWolf_Param_c::m.common.height + fVar1); + mCyl.SetR(daNpc_GWolf_Param_c::m.common.width + fVar2); + dComIfG_Ccsp()->Set(&mCyl); + } + + mCyl.ClrTgHit(); +} + +/* 809F4BB0-809F4BB8 001BF0 0008+00 1/0 0/0 0/0 .text setExpressionAnm__13daNpc_GWolf_cFib */ +bool daNpc_GWolf_c::setExpressionAnm(int i_index, bool i_modify) { + return true; +} + +/* 809F4BB8-809F4BBC 001BF8 0004+00 1/0 0/0 0/0 .text setExpression__13daNpc_GWolf_cFif */ +void daNpc_GWolf_c::setExpression(int i_index, f32 i_morf) { + /* empty function */ +} + +/* 809F4BBC-809F4DE8 001BFC 022C+00 2/0 0/0 0/0 .text setMotionAnm__13daNpc_GWolf_cFif */ +void daNpc_GWolf_c::setMotionAnm(int i_index, f32 i_morf) { + J3DAnmTransformKey* i_bck = NULL; + J3DAnmTextureSRTKey* i_btk = NULL; + J3DAnmTevRegKey* i_brk = NULL; + int i_attr = J3DFrameCtrl::EMode_LOOP; + mAnmFlags &= ~ANM_MOTION_FLAGS; + + if (l_bckGetParamList[i_index].fileIdx >= 0) { + i_bck = getTrnsfrmKeyAnmP(l_resNames[l_bckGetParamList[i_index].arcIdx], l_bckGetParamList[i_index].fileIdx); + } + + mAnm = i_index; + + switch (i_index) { + case ANM_WAITSIT: + case ANM_AT: + case ANM_HOWLB: + case ANM_HOWLC: + case ANM_DASHA: + break; + + case ANM_ATTACKAST: + i_attr = J3DFrameCtrl::EMode_NONE; + break; + + case ANM_ATTACKA: + i_attr = J3DFrameCtrl::EMode_NONE; + break; + + case ANM_ATTACKAED: + i_attr = J3DFrameCtrl::EMode_NONE; + break; + + case ANM_JUMPAST: + i_attr = J3DFrameCtrl::EMode_NONE; + break; + + case ANM_JUMPA: + i_attr = J3DFrameCtrl::EMode_NONE; + break; + + default: + i_bck = NULL; + i_btk = NULL; + break; + } + + if (l_btkGetParamList[0].fileIdx >= 0) { + i_btk = getTexSRTKeyAnmP(l_resNames[l_btkGetParamList[0].arcIdx], l_btkGetParamList[0].fileIdx); + } + + if (i_btk != NULL) { + if (setBtkAnm(i_btk, mpMorf->getModel()->getModelData(), 1.0f, J3DFrameCtrl::EMode_LOOP)) { + mAnmFlags |= ANM_PLAY_BTK | ANM_PAUSE_BTK; + } + } + + if (l_brkGetParamList[0].fileIdx >= 0) { + i_brk = getTevRegKeyAnmP(l_resNames[l_brkGetParamList[0].arcIdx], l_brkGetParamList[0].fileIdx); + } + + if (i_brk != NULL) { + if (mBrkAnm.getBrkAnm() == i_brk) { + mAnmFlags |= ANM_PLAY_BRK; + } else if (setBrkAnm(i_brk, mpMorf->getModel()->getModelData(), 1.0f, J3DFrameCtrl::EMode_LOOP)) { + mAnmFlags |= ANM_PLAY_BRK | ANM_PAUSE_BRK; + } + } + + if (i_bck != NULL && setMcaMorfAnm(i_bck, 1.0f, i_morf, i_attr, 0, -1)) { + mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF; + mMotionLoops = 0; + } +} + +/* 809F4DE8-809F4E2C 001E28 0044+00 1/0 0/0 0/0 .text setMotion__13daNpc_GWolf_cFifi */ +void daNpc_GWolf_c::setMotion(int i_motion, f32 i_morf, int param_3) { + s16 motion = i_motion; + + if ((param_3 != 0 || mMotion != motion) && i_motion >= 0 && i_motion < 9) { + mMotion = motion; + mMotionMorfOverride = i_morf; + mMotionPrevPhase = -1; + mMotionPhase = 0; + } +} + +/* 809F4E2C-809F4E34 001E6C 0008+00 1/0 0/0 0/0 .text drawDbgInfo__13daNpc_GWolf_cFv */ +BOOL daNpc_GWolf_c::drawDbgInfo() { + return FALSE; +} + +/* 809F4E34-809F4E38 001E74 0004+00 1/0 0/0 0/0 .text drawOtherMdls__13daNpc_GWolf_cFv */ +void daNpc_GWolf_c::drawOtherMdls() { + /* empty function */ +} + +/* 809F4E38-809F4E84 001E78 004C+00 1/1 0/0 0/0 .text getTypeFromParam__13daNpc_GWolf_cFv */ +u8 daNpc_GWolf_c::getTypeFromParam() { + switch (fopAcM_GetParam(this) & 0xFF) { + case 0 : + return 0; + + case 1: + return 1; + case 2: + return 2; + + default: + return 0; + } +} + +/* 809F4E84-809F4F00 001EC4 007C+00 2/1 0/0 0/0 .text getModeFromParam__13daNpc_GWolf_cFv */ +int daNpc_GWolf_c::getModeFromParam() { + u8 uVar1 = (fopAcM_GetParam(this) & 0xFF00) >> 8; + + if (mType == 0 || mType == 1) { + switch (uVar1) { + case 1: + return 0; + + case 2: + return 1; + + case 3: + return 2; + + case 4: + return 3; + + case 5: + return 4; + + case 6: + return 5; + + case 7: + return 6; + } + } + + return -1; +} + +/* 809F4F00-809F4FF4 001F40 00F4+00 1/1 0/0 0/0 .text isDelete__13daNpc_GWolf_cFv */ +BOOL daNpc_GWolf_c::isDelete() { + static s16 l_delFlag[7] = { + 0x0153, 0x01EC, 0x01ED, 0x01EE, 0x01EF, 0x01F0, 0x01F1, + }; + static s16 l_playerNoList[7] = { + 0xFFFF, 2, 3, 4, 5, 6, 7, + }; + + if (mType == 3 || mType == 2) { + return FALSE; + } + + if (mType == 1) { + if (mParamMode != -1 && l_playerNoList[mParamMode] == dComIfGs_getStartPoint()) { + return FALSE; + } + } else if (mType == 0) { + if (mParamMode != -1) { + if (daNpcT_chkEvtBit(l_delFlag[mParamMode])) { + if (swBit != 0xFF) { + dComIfGs_offSwitch(swBit, fopAcM_GetRoomNo(this)); + } + } else { + return FALSE; + } + } else { + return FALSE; + } + } + + return TRUE; +} + +/* 809F4FF4-809F520C 002034 0218+00 1/1 0/0 0/0 .text reset__13daNpc_GWolf_cFv */ +void daNpc_GWolf_c::reset() { + initialize(); + mpMatAnm->initialize(); + mLookat.initialize(); + + for (int i = 0; i < 2; i++) { + mActorMngrs[i].initialize(); + } + + mNextAction = NULL; + mAction = NULL; + field_0xdf8 = 0; + field_0xdfc = 0; + field_0xe00 = 0; + field_0xe04 = 0; + mLookMode = -1; + mMode = 0; + current.pos = home.pos; + old.pos = current.pos; + current.angle.set(0, home.angle.y, 0); + old.angle = current.angle; + shape_angle = current.angle; + mCurAngle = current.angle; + mOldAngle = mCurAngle; + speedF = 0.0f; + speed.setall(0.0f); + field_0xe1c = 0; + field_0xe1d = 0; + + if (mType == 0 && ((l_warpAppearFlag[mParamMode] != -1 && !daNpcT_chkEvtBit(l_warpAppearFlag[mParamMode])) || + (l_appearTmpFlag[mParamMode] != -1 && daNpcT_chkTmpBit(l_appearTmpFlag[mParamMode])))) { + if (l_appearTmpFlag[mParamMode] != -1) { + daNpcT_offTmpBit(l_appearTmpFlag[mParamMode]); + } + + mHide = true; + } + + field_0x9ee = true; +} + +/* 809F520C-809F55D0 00224C 03C4+00 1/1 0/0 0/0 .text playMotion__13daNpc_GWolf_cFv */ +void daNpc_GWolf_c::playMotion() { + daNpcF_anmPlayData dat0 = {ANM_WAITSIT, daNpc_GWolf_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat0[1] = {&dat0}; + daNpcF_anmPlayData dat1 = {ANM_AT, daNpc_GWolf_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat1[1] = {&dat1}; + daNpcF_anmPlayData dat2a = {ANM_ATTACKAST, 3.0f, 1}; + daNpcF_anmPlayData dat2b = {ANM_ATTACKA, 0.0f, 0}; + daNpcF_anmPlayData* pDat2[2] = {&dat2a, &dat2b}; + daNpcF_anmPlayData dat3a = {ANM_ATTACKAED, 3.0f, 1}; + daNpcF_anmPlayData dat3b = {ANM_AT, daNpc_GWolf_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat3[2] = {&dat3a, &dat3b}; + daNpcF_anmPlayData dat4 = {ANM_HOWLB, daNpc_GWolf_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat4[1] = {&dat4}; + daNpcF_anmPlayData dat5 = {ANM_HOWLC, daNpc_GWolf_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat5[1] = {&dat5}; + daNpcF_anmPlayData dat6 = {ANM_JUMPAST, 0.0f, 0}; + daNpcF_anmPlayData* pDat6[1] = {&dat6}; + daNpcF_anmPlayData dat7 = {ANM_JUMPA, 0.0f, 0}; + daNpcF_anmPlayData* pDat7[1] = {&dat7}; + daNpcF_anmPlayData dat8 = {ANM_DASHA, daNpc_GWolf_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat8[1] = {&dat8}; + + daNpcF_anmPlayData** ppDat[9] = { + pDat0, + pDat1, + pDat2, + pDat3, + pDat4, + pDat5, + pDat6, + pDat7, + pDat8, + }; + + if (mMotion >= 0 && mMotion < 9) { + playMotionAnm(ppDat); + } + + if (mHide != true) { + switch (mAnm) { + case ANM_WAITSIT: + if (mpMorf->getFrame() >= 1.0f && mpMorf->getFrame() < 2.0f) { + mSound.startCreatureVoice(Z2SE_G_WLF_BREATH, -1); + } + break; + + case ANM_JUMPAST: + if (mpMorf->getFrame() >= 1.0f && mpMorf->getFrame() < 2.0f) { + mSound.startCreatureVoice(Z2SE_G_WLF_JUMP, -1); + } + break; + + case ANM_HOWLB: + if (mpMorf->getFrame() >= 1.0f && mpMorf->getFrame() < 2.0f) { + mSound.startCreatureVoice(Z2SE_G_WLF_TRANSFORM, -1); + } + break; + } + } +} + +/* 809F55D0-809F55FC 002610 002C+00 2/2 0/0 0/0 .text chkAction__13daNpc_GWolf_cFM13daNpc_GWolf_cFPCvPvPv_i */ +BOOL daNpc_GWolf_c::chkAction(actionFunc action) { + return mAction == action; +} + +/* 809F55FC-809F56A4 00263C 00A8+00 2/2 0/0 0/0 .text setAction__13daNpc_GWolf_cFM13daNpc_GWolf_cFPCvPvPv_i */ +BOOL daNpc_GWolf_c::setAction(actionFunc action) { + mMode = 3; + + if (mAction) { + (this->*mAction)(NULL); + } + + mMode = 0; + mAction = action; + + if (mAction) { + (this->*mAction)(NULL); + } + + return TRUE; +} + +/* 809F56A4-809F5770 0026E4 00CC+00 1/1 0/0 0/0 .text selectAction__13daNpc_GWolf_cFv */ +BOOL daNpc_GWolf_c::selectAction() { + mNextAction = NULL; + + if (daNpc_GWolf_Param_c::m.common.debug_mode_ON) { + mNextAction = &daNpc_GWolf_c::test; + } else { + switch (mType) { + case 2: + mNextAction = &daNpc_GWolf_c::waitBrave; + break; + + case 1: + mNextAction = &daNpc_GWolf_c::waitHowling; + break; + + default: + mNextAction = &daNpc_GWolf_c::wait; + break; + } + } + + return TRUE; +} + +/* 809F5770-809F5884 0027B0 0114+00 1/1 0/0 0/0 .text doNormalAction__13daNpc_GWolf_cFi */ +void daNpc_GWolf_c::doNormalAction(int param_1) { + if (param_1 != 0 && hitChk2(&mCyl, TRUE, FALSE)) { + int damage_time; + if (mCutType == daPy_py_c::CUT_TYPE_TURN_RIGHT) { + damage_time = 20; + } else { + damage_time = daNpc_GWolf_Param_c::m.common.damage_time; + } + + setDamage(damage_time, -1, 0); + setLookMode(LOOK_RESET); + } else if (mIsDamaged && mDamageTimer == 0) { + mMode = 0; + mIsDamaged = false; + } + + mOrderEvtNo = EVT_NONE; + + if (mNextAction) { + if (mAction == mNextAction) { + (this->*mAction)(NULL); + } else { + setAction(mNextAction); + } + } +} + +/* 809F5884-809F5B60 0028C4 02DC+00 1/1 0/0 0/0 .text doEvent__13daNpc_GWolf_cFv */ +BOOL daNpc_GWolf_c::doEvent() { + BOOL rv = FALSE; + + if (dComIfGp_event_runCheck() != FALSE) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + + if (eventInfo.checkCommandTalk() || eventInfo.checkCommandDemoAccrpt()) { + mOrderNewEvt = false; + } + + if (eventInfo.checkCommandTalk()) { + if (chkAction(&daNpc_GWolf_c::talk)) { + (this->*mAction)(NULL); + } else if (dComIfGp_event_chkTalkXY() == FALSE || dComIfGp_evmng_ChkPresentEnd()) { + setAction(&daNpc_GWolf_c::talk); + } + + rv = TRUE; + } else { + int staffId = eventManager.getMyStaffId(l_myName, NULL, 0); + if (staffId != -1) { + mStaffID = staffId; + + int evtCutNo = eventManager.getMyActIdx(staffId, mEvtCutNameList, 5, FALSE, FALSE); + + JUT_ASSERT(2087, (0 <= evtCutNo) && (evtCutNo < NUM_EVT_CUTS_e)); + JUT_ASSERT(2088, 0 != mEvtCutList[evtCutNo]); + + if ((this->*mEvtCutList[evtCutNo])(staffId)) { + eventManager.cutEnd(staffId); + } + + rv = TRUE; + } + + if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager.endCheck(mEventIdx)) { + switch (mOrderEvtNo) { + case EVT_MEET_GWOLFA: + case EVT_MEET_GWOLFB: + case EVT_MEET_GWOLFC: + case EVT_MEET_GWOLFD: + case EVT_MEET_GWOLFE: + case EVT_MEET_GWOLFF: + dComIfGp_event_reset(); + mOrderEvtNo = EVT_NONE; + mEventIdx = -1; + field_0xe1d = 1; + break; + + case EVT_HOWLING_SESSIONA: + case EVT_HOWLING_SESSIONB: + case EVT_HOWLING_SESSIONC: + case EVT_HOWLING_SESSIOND: + case EVT_HOWLING_SESSIONE: + case EVT_HOWLING_SESSIONF: + dComIfGp_event_reset(); + mOrderEvtNo = EVT_NONE; + mEventIdx = -1; + fopAcM_delete(this); + break; + + default: + dComIfGp_event_reset(); + mOrderEvtNo = EVT_NONE; + mEventIdx = -1; + break; + } + } + } + + int i_expression, i_motion; + if (ctrlMsgAnm(i_expression, i_motion, this, FALSE) && !field_0x9eb) { + setMotion(i_motion, -1.0f, 0); + } + } else { + mMsgTimer = 0; + + if (mStaffID != -1) { + mAction = NULL; + mStaffID = -1; + } + } + + return rv; +} + +/* 809F5B60-809F5B84 002BA0 0024+00 10/10 0/0 0/0 .text setLookMode__13daNpc_GWolf_cFi */ +void daNpc_GWolf_c::setLookMode(int i_lookMode) { + if (i_lookMode >= 0 && i_lookMode < 5 && i_lookMode != mLookMode) { + mLookMode = i_lookMode; + } +} + +/* 809F5B84-809F5E0C 002BC4 0288+00 1/1 0/0 0/0 .text lookat__13daNpc_GWolf_cFv */ +void daNpc_GWolf_c::lookat() { + daPy_py_c* player = NULL; + J3DModel* model = mpMorf->getModel(); + BOOL i_snap = FALSE; + f32 body_angleX_min = daNpc_GWolf_Param_c::m.common.body_angleX_min; + f32 body_angleX_max = daNpc_GWolf_Param_c::m.common.body_angleX_max; + f32 body_angleY_min = daNpc_GWolf_Param_c::m.common.body_angleY_min; + f32 body_angleY_max = daNpc_GWolf_Param_c::m.common.body_angleY_max; + f32 head_angleX_min = daNpc_GWolf_Param_c::m.common.head_angleX_min; + f32 head_angleX_max = daNpc_GWolf_Param_c::m.common.head_angleX_max; + f32 head_angleY_min = daNpc_GWolf_Param_c::m.common.head_angleY_min; + f32 head_angleY_max = daNpc_GWolf_Param_c::m.common.head_angleY_max; + s16 angle_delta = mCurAngle.y - mOldAngle.y; + cXyz lookatPos[3] = {mLookatPos[0], mLookatPos[1], mLookatPos[2]}; + csXyz* lookatAngle[3] = {&mLookatAngle[0], &mLookatAngle[1], &mLookatAngle[2]}; + cXyz spe8; + + switch (mLookMode) { + case LOOK_NONE: + break; + + case LOOK_RESET: + i_snap = TRUE; + break; + + case LOOK_PLAYER: + case LOOK_PLAYER_TALK: + player = daPy_getPlayerActorClass(); + + if (mLookMode != LOOK_PLAYER_TALK) { + break; + } + + head_angleY_min = -80.0f; + head_angleY_max = 80.0f; + break; + + case LOOK_ACTOR: + player = (daPy_py_c*)mActorMngrs[1].getActorP(); + break; + } + + if (player != NULL) { + mLookPos = player->attention_info.position; + + if (mLookMode != LOOK_PLAYER && mLookMode != LOOK_PLAYER_TALK && mLookMode != LOOK_ACTOR) { + mLookPos.y -= 40.0f; + } + + mLookat.setAttnPos(&mLookPos); + } else { + mLookat.setAttnPos(NULL); + } + + mLookat.setParam(body_angleX_min, body_angleX_max, body_angleY_min, body_angleY_max, 0.0f, 0.0f, 0.0f, 0.0f, + head_angleX_min, head_angleX_max, head_angleY_min, head_angleY_max, mCurAngle.y, lookatPos); + mLookat.calc(this, model->getBaseTRMtx(), lookatAngle, i_snap, angle_delta, FALSE); +} + +/* 809F5E0C-809F6548 002E4C 073C+00 3/0 0/0 0/0 .text ECut_attackWarp__13daNpc_GWolf_cFi */ +BOOL daNpc_GWolf_c::ECut_attackWarp(int i_staffId) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int iVar1 = 0; + daPy_py_c* player = daPy_getPlayerActorClass(); + BOOL rv = FALSE; + int prm = -1; + int iVar2 = 0; + int* piVar1 = dComIfGp_evmng_getMyIntegerP(i_staffId, "prm"); + if (piVar1 != NULL) { + prm = *piVar1; + } + + if (eventManager.getIsAddvance(i_staffId)) { + switch (prm) { + case 0: { + setMotion(MOT_WAITSIT, -1.0f, 0); + setLookMode(LOOK_NONE); + speedF = 0.0f; + cXyz sp50(0.0f, 300.0f, 400.0f); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::YrotM(mCurAngle.y); + mDoMtx_stack_c::multVec(&sp50, &sp50); + + if (fopAcM_gc_c::gndCheck(&sp50)) { + sp50.y = fopAcM_gc_c::getGroundY(); + } + + player->setPlayerPosAndAngle(&sp50, cLib_targetAngleY(&sp50, ¤t.pos), 0); + break; + } + + case 10: + setMotion(MOT_AT, -1.0f, 0); + mSound.startCreatureVoice(Z2SE_G_WLF_UNARU, -1); + break; + + case 15: + mEventTimer = 20; + dCam_getBody()->StartBlure(5000, this, daNpc_GWolf_Param_c::m.blur_opacity, daNpc_GWolf_Param_c::m.blur_scale); + break; + + case 20: + setMotion(MOT_ATTACKAST, -1.0f, 0); + mSound.startCreatureVoice(Z2SE_G_WLF_ATK, -1); + break; + + case 30: { + mCyl.OnCoNoCrrBit(); + mCyl.OnCoNoCoHitInfSet(); + speedF = daNpc_GWolf_Param_c::m.attack_spd_horizontal; + speed.y = daNpc_GWolf_Param_c::m.attack_spd_vertical; + cXyz sp5c(player->current.pos); + speed.y += (sp5c.y - current.pos.y) / ((sp5c - current.pos).absXZ() / speedF); + break; + } + + case 40: + f32 fVar3 = 0.5f; + speedF = daNpc_GWolf_Param_c::m.attack_spd_horizontal * fVar3; + break; + } + } + + switch (prm) { + case 0: { + cXyz sp68(0.0f, 300.0f, 400.0f); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::YrotM(mCurAngle.y); + mDoMtx_stack_c::multVec(&sp68, &sp68); + + if (fopAcM_gc_c::gndCheck(&sp68)) { + sp68.y = fopAcM_gc_c::getGroundY(); + } + + player->setPlayerPosAndAngle(&sp68, cLib_targetAngleY(&sp68, ¤t.pos), 0); + rv = TRUE; + break; + } + + case 10: + cLib_addCalcAngleS2(&mCurAngle.y, fopAcM_searchPlayerAngleY(this), 2, 0x800); + setAngle(mCurAngle.y); + rv = TRUE; + break; + + case 15: + if (cLib_calcTimer(&mEventTimer) == 0) { + rv = TRUE; + } + break; + + case 20: + if (mMotion == MOT_ATTACKAST && mMotionPhase > 0) { + rv = TRUE; + } + break; + + case 30: + if (mMotion == MOT_ATTACKAST && mMotionPhase > 0) { + if (mpMorf->getFrame() >= 3.0f) { + if (speed.y > 5.0f) { + mpMorf->setPlaySpeed(0.0f); + } else { + mpMorf->setPlaySpeed(1.0f); + } + } + + f32 fVar1 = (daPy_getPlayerActorClass()->current.pos - current.pos).absXZ(); + f32 fVar2 = daNpc_GWolf_Param_c::m.warp_start_dist; + if (fVar1 < fVar2) { + if (l_appearTmpFlag[mParamMode] != -1) { + daNpcT_onTmpBit(l_appearTmpFlag[mParamMode]); + } + + dStage_changeScene(mExitId, 0.0f, 0, fopAcM_GetRoomNo(this), 0, -1); + Z2GetAudioMgr()->seStart(Z2SE_SY_WARP_FADE_GW, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + mpMorf->setPlaySpeed(0.5f); + rv = TRUE; + } + } + break; + + case 40: + if (mAcch.ChkGroundHit()) { + speedF = 0.0f; + speed.zero(); + setMotion(MOT_ATTACKAED, -1.0f, 0); + } + break; + + default: + rv = TRUE; + break; + } + + return rv; +} + +/* 809F6548-809F6BFC 003588 06B4+00 3/0 0/0 0/0 .text ECut_attackWarpHorse__13daNpc_GWolf_cFi */ +BOOL daNpc_GWolf_c::ECut_attackWarpHorse(int i_staffId) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int iVar1 = 0; + daPy_py_c* player = daPy_getPlayerActorClass(); + BOOL rv = FALSE; + int prm = -1; + int* piVar1 = dComIfGp_evmng_getMyIntegerP(i_staffId, "prm"); + if (piVar1 != NULL) { + prm = *piVar1; + } + + if (eventManager.getIsAddvance(i_staffId)) { + switch (prm) { + case 0: + setMotion(MOT_WAITSIT, -1.0f, 0); + setLookMode(LOOK_NONE); + speedF = 0.0f; + break; + + case 10: + setMotion(MOT_AT, -1.0f, 0); + mSound.startCreatureVoice(Z2SE_G_WLF_UNARU, -1); + break; + + case 15: + mEventTimer = 20; + dCam_getBody()->StartBlure(5000, this, 0.9f, 0.99f); + break; + + case 20: + setMotion(MOT_ATTACKAST, -1.0f, 0); + mSound.startCreatureVoice(Z2SE_G_WLF_ATK, -1); + break; + + case 30: { + mCyl.OnCoNoCrrBit(); + mCyl.OnCoNoCoHitInfSet(); + speedF = daNpc_GWolf_Param_c::m.attack_spd_horizontal_horse; + speed.y = daNpc_GWolf_Param_c::m.attack_spd_vertical_horse; + cXyz sp54(player->current.pos); + speed.y += (sp54.y - current.pos.y) / ((sp54 - current.pos).absXZ() / speedF); + break; + } + + case 40: + f32 fVar3 = 0.5f; + speedF = daNpc_GWolf_Param_c::m.attack_spd_horizontal * fVar3; + break; + } + } + + switch (prm) { + case 0: { + cXyz sp60(0.0f, 300.0f, 400.0f); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::YrotM(mCurAngle.y); + mDoMtx_stack_c::multVec(&sp60, &sp60); + + if (fopAcM_gc_c::gndCheck(&sp60)) { + sp60.y = fopAcM_gc_c::getGroundY(); + } + + s16 sVar1 = cLib_targetAngleY(&sp60, ¤t.pos) - 0x4000; + daPy_getPlayerActorClass()->setPlayerPosAndAngle(&sp60, sVar1, 0); + rv = TRUE; + break; + } + + case 10: + cLib_addCalcAngleS2(&mCurAngle.y, fopAcM_searchPlayerAngleY(this), 2, 0x800); + setAngle(mCurAngle.y); + rv = TRUE; + break; + + + case 15: + if (cLib_calcTimer(&mEventTimer) == 0) { + rv = TRUE; + } + break; + + + case 20: + if (mMotion == MOT_ATTACKAST && mMotionPhase > 0) { + rv = TRUE; + } + break; + + + case 30: + if (mMotion == MOT_ATTACKAST && mMotionPhase > 0) { + if (mpMorf->getFrame() >= 3.0f && speed.y > 5.0f) { + if (speed.y > 5.0f) { + mpMorf->setPlaySpeed(0.0f); + } else { + mpMorf->setPlaySpeed(1.0f); + } + } + + f32 fVar1 = (daPy_getPlayerActorClass()->current.pos - current.pos).absXZ(); + f32 fVar2 = daNpc_GWolf_Param_c::m.warp_start_dist; + if (fVar1 < fVar2) { + if (l_appearTmpFlag[mParamMode] != -1) { + daNpcT_onTmpBit(l_appearTmpFlag[mParamMode]); + } + + dStage_changeScene(mExitId, 0.0f, 0, fopAcM_GetRoomNo(this), 0, -1); + mpMorf->setPlaySpeed(1.0f); + Z2GetAudioMgr()->seStart(Z2SE_SY_WARP_FADE_GW, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + rv = TRUE; + } + } + break; + + case 40: + if (mAcch.ChkGroundHit()) { + speedF = 0.0f; + speed.zero(); + setMotion(MOT_ATTACKAED, -1.0f, 0); + } + break; + + default: + rv = TRUE; + break; + } + + return rv; +} + +/* 809F6BFC-809F7084 003C3C 0488+00 1/0 0/0 0/0 .text ECut_howlingSessionA__13daNpc_GWolf_cFi */ +BOOL daNpc_GWolf_c::ECut_howlingSessionA(int i_staffId) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + daPy_getPlayerActorClass(); + BOOL rv = FALSE; + int prm = -1; + int* piVar1 = dComIfGp_evmng_getMyIntegerP(i_staffId, "prm"); + if (piVar1 != NULL) { + prm = *piVar1; + } + + if (eventManager.getIsAddvance(i_staffId)) { + switch (prm) { + case 0: + setMotion(MOT_HOWLC, -1.0f, 0); + setLookMode(LOOK_NONE); + break; + + case 10: + break; + + case 20: + break; + + case 25: + initTalk(0xBCB, NULL); + field_0x9eb = true; + break; + + case 30: + setMotion(MOT_DASHA, 3.0f, 0); + setLookMode(LOOK_NONE); + speedF = 12.0f; + break; + + case 40: + setMotion(MOT_JUMPAST, -1.0f, 0); + speed.y = 22.0f; + gravity = -2.0f; + break; + + case 50: + setMotion(MOT_JUMPA, -1.0f, 0); + mEventTimer = 60; + speedF = 20.0f; + cXyz sp38(0.0f, 25.0f, 35.0f); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(mCurAngle); + mDoMtx_stack_c::scaleM(scale); + mDoMtx_stack_c::multVec(&sp38, &sp38); + old.pos = sp38; + current.pos = old.pos; + break; + } + } + + switch (prm) { + case 0: + if (mAnm == ANM_HOWLC) { + if (mpMorf->getFrame() >= 28.0f) { + mpMorf->setLoopFrame(28.0f); + mBtpAnm.setLoopFrame(28.0f); + rv = TRUE; + } + } + break; + + case 10: + rv = TRUE; + break; + + case 20: + if (field_0xe1c == 2) { + setMotion(MOT_WAITSIT, -1.0f, 0); + setLookMode(LOOK_PLAYER); + rv = TRUE; + } + break; + + case 25: + if (talkProc(NULL, TRUE, NULL)) { + rv = TRUE; + } + break; + + case 30: + if (mAnm == ANM_DASHA) { + if (!mAcch.ChkGroundHit()) { + speedF = 0.0f; + rv = TRUE; + } + } + break; + + case 40: + if (mAnm == ANM_JUMPAST) { + if (mpMorf->isStop()) { + speedF = 20.0f; + + if (speed.y <= 4.0f) { + rv = TRUE; + } + } + } + break; + + case 50: + if (cLib_calcTimer(&mEventTimer) == 0) { + if (mParamMode != -1 && mParamMode != 0) { + daNpcT_onEvtBit(l_warpAppearFlag[mParamMode]); + } + + if (swBit != 0xFF && mSaveTable != 0xFF) { + dComIfGs_onStageSwitch(mSaveTable, swBit); + } + + if (mParamMode == -1 || mParamMode == 0) { + dStage_changeScene(0, 0.0f, 0, fopAcM_GetRoomNo(this), 0, -1); + break; + } + + static u32 l_warpIdList[6] = { + 0, 8,9, + 0xA, 0xB, 0xC, + }; + + dStage_changeScene(l_warpIdList[mParamMode - 1], 0.0f, 0, fopAcM_GetRoomNo(this), 0, -1); + } + break; + + default: + rv = TRUE; + break; + } + + return rv; +} + +/* 809F7084-809F70A8 0040C4 0024+00 1/1 0/0 0/0 .text callback_proc__FPvi */ +static BOOL callback_proc(void* i_actor, int i_data) { + static_cast(i_actor)->meetGWolfSkip(); + return TRUE; +} + +/* 809F70A8-809F70EC 0040E8 0044+00 1/1 0/0 0/0 .text meetGWolfSkip__13daNpc_GWolf_cFv */ +void daNpc_GWolf_c::meetGWolfSkip() { + mOrderEvtNo = EVT_NONE; + mEventIdx = -1; + field_0xe1d = 1; + dComIfGp_event_reset(); +} + +/* 809F70EC-809F71E0 00412C 00F4+00 1/0 0/0 0/0 .text ECut_meetGWolf__13daNpc_GWolf_cFi */ +BOOL daNpc_GWolf_c::ECut_meetGWolf(int i_staffId) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + daPy_getPlayerActorClass(); + int prm = -1; + int* piVar1 = dComIfGp_evmng_getMyIntegerP(i_staffId, "prm"); + if (piVar1 != NULL) { + prm = *piVar1; + } + + if (eventManager.getIsAddvance(i_staffId)) { + switch (prm) { + case 0: + setMotion(MOT_WAITSIT, -1.0f, 0); + setLookMode(LOOK_PLAYER); + dComIfGp_getEvent().setSkipProc(this, callback_proc, 0); + dComIfGp_getEvent().onSkipFade(); + break; + } + } + + switch (prm) { + case 0: + return TRUE; + } + + return TRUE; +} + +/* 809F71E0-809F75C0 004220 03E0+00 1/0 0/0 0/0 .text wait__13daNpc_GWolf_cFPv */ +BOOL daNpc_GWolf_c::wait(void* param_1) { + switch (mMode) { + case 0: + setMotion(MOT_WAITSIT, -1.0f, 0); + setLookMode(LOOK_NONE); + mTurnMode = 0; + field_0x9ea = true; + mMode = 2; + // fallthrough + case 2: { + cXyz sp30(daPy_getPlayerActorClass()->current.pos); + cXyz sp3c(sp30); + sp3c.y += 100.0f; + + if (fopAcM_gc_c::gndCheck(&sp3c)) { + sp30.y = fopAcM_gc_c::getGroundY(); + } + + if (!mHide && !daPy_py_c::checkNowWolf() && fabsf(sp30.y - current.pos.y) < 200.0f) { + f32 fVar1 = (sp30 - current.pos).absXZ(); + f32 fVar2 = daNpc_GWolf_Param_c::m.demo_start_dist; + + if (fVar1 < fVar2) { + if (daPy_getPlayerActorClass()->checkHorseRide()) { + mOrderEvtNo = EVT_ATTACK_WARP_HORSE; + break; + } + + mOrderEvtNo = EVT_ATTACK_WARP; + break; + } + } + + if (!mIsDamaged) { + BOOL bVar1 = mActorMngrs[0].getActorP() != NULL; + if (chkFindPlayer2(bVar1, shape_angle.y)) { + if (!bVar1) { + mActorMngrs[0].entry(daPy_getPlayerActorClass()); + mTurnMode = 0; + } + } else if (bVar1) { + mActorMngrs[0].remove(); + mTurnMode = 0; + } + + if (mActorMngrs[0].getActorP() != NULL) { + setLookMode(LOOK_PLAYER); + } else { + setLookMode(LOOK_NONE); + + if (home.angle.y != mCurAngle.y && step(home.angle.y, -1, -1, 15)) { + mMode = 0; + } + } + + if (home.angle.y == mCurAngle.y) { + bVar1 = mActorMngrs[0].getActorP() != NULL; + fopAc_ac_c* actor_p = getAttnActorP(bVar1, srchAttnActor1, daNpc_GWolf_Param_c::m.common.search_distance, + daNpc_GWolf_Param_c::m.common.search_height, daNpc_GWolf_Param_c::m.common.search_depth, + daNpc_GWolf_Param_c::m.common.fov, shape_angle.y, 0x78, TRUE); + if (actor_p != NULL) { + mActorMngrs[1].entry(actor_p); + setLookMode(LOOK_ACTOR); + } + } else { + mAttnChangeTimer = 0; + } + } + break; + } + + case 3: + break; + } + + return TRUE; +} + +/* 809F75C0-809F775C 004600 019C+00 1/0 0/0 0/0 .text waitHowling__13daNpc_GWolf_cFPv */ +BOOL daNpc_GWolf_c::waitHowling(void* param_1) { + switch (mMode) { + case 0: + setMotion(MOT_WAITSIT, -1.0f, 0); + setLookMode(LOOK_PLAYER); + mTurnMode = 0; + mMode = 2; + // fallthrough + case 2: + if (field_0xe1d == 0) { + u16 evtNo[6] = {EVT_MEET_GWOLFA, EVT_MEET_GWOLFB, EVT_MEET_GWOLFC, EVT_MEET_GWOLFD, EVT_MEET_GWOLFE, EVT_MEET_GWOLFF}; + + if (mParamMode == -1 || mParamMode == 0) { + mOrderEvtNo = EVT_MEET_GWOLFA; + } else { + mOrderEvtNo = evtNo[mParamMode - 1]; + } + + mOrderNewEvt = true; + } else if (field_0xe1c == 1) { + u16 evtNo[6] = {EVT_HOWLING_SESSIONA, EVT_HOWLING_SESSIONB, EVT_HOWLING_SESSIONC, EVT_HOWLING_SESSIOND, EVT_HOWLING_SESSIONE, EVT_HOWLING_SESSIONF}; + + if (mParamMode == -1 || mParamMode == 0) { + mOrderEvtNo = EVT_HOWLING_SESSIONA; + } else { + mOrderEvtNo = evtNo[mParamMode - 1]; + } + + changeEvent(l_resNames[l_evtGetParamList[mOrderEvtNo].arcIdx], l_evtNames[l_evtGetParamList[mOrderEvtNo].fileIdx], 2, 0xFFFF); + } + break; + + case 3: + break; + } + + return TRUE; +} + +/* 809F775C-809F77E4 00479C 0088+00 1/0 0/0 0/0 .text waitBrave__13daNpc_GWolf_cFPv */ +BOOL daNpc_GWolf_c::waitBrave(void* param_1) { + switch (mMode) { + case 0: + setMotion(MOT_WAITSIT, -1.0f, 0); + setLookMode(LOOK_PLAYER); + mTurnMode = 0; + mMode = 2; + // fallthrough + case 2: + break; + } + + return TRUE; +} + +/* 809F77E4-809F797C 004824 0198+00 2/0 0/0 0/0 .text talk__13daNpc_GWolf_cFPv */ +BOOL daNpc_GWolf_c::talk(void* param_1) { + BOOL rv = FALSE; + BOOL bVar1 = FALSE; + + switch (mMode) { + case 0: { + if (mIsDamaged) { + break; + } + + int msgNo = field_0xe08; + mOrderSpeakEvt = false; + initTalk(msgNo, NULL); + mTurnMode = 0; + mMode = 2; + // fallthrough + } + case 2: + if (field_0x9ea) { + bVar1 = TRUE; + } else { + setLookMode(LOOK_PLAYER_TALK); + mActorMngrs[0].entry(daPy_getPlayerActorClass()); + + if (mCurAngle.y == fopAcM_searchPlayerAngleY(this)) { + bVar1 = TRUE; + } else if (step(fopAcM_searchPlayerAngleY(this), -1, -1, 15)) { + setMotion(MOT_WAITSIT, -1.0f, 0); + mTurnMode = 0; + } + } + + if (bVar1 && talkProc(NULL, TRUE, NULL)) { + rv = TRUE; + } + + if (rv) { + mMode = 3; + + if (!field_0x9ec) { + dComIfGp_event_reset(); + } + + field_0x9ec = false; + } + break; + + case 3: + break; + } + + return rv; +} + +/* 809F797C-809F7A30 0049BC 00B4+00 2/0 0/0 0/0 .text test__13daNpc_GWolf_cFPv */ +BOOL daNpc_GWolf_c::test(void* param_1) { + switch (mMode) { + case 0: + speedF = 0.0f; + speed.setall(0.0f); + mMode = 2; + // fallthrough + case 2: + setMotion(daNpc_GWolf_Param_c::m.common.motion, daNpc_GWolf_Param_c::m.common.morf_frame, 0); + setLookMode(daNpc_GWolf_Param_c::m.common.look_mode); + mOrderEvtNo = EVT_NONE; + attention_info.flags = 0; + break; + + case 3: + break; + } + + return TRUE; +} + +/* 809F7A30-809F7AB0 004A70 0080+00 1/1 0/0 0/0 .text getGroundSlope__13daNpc_GWolf_cFR12dBgS_ObjAcchs */ +s16 daNpc_GWolf_c::getGroundSlope(dBgS_ObjAcch& i_acch, s16 param_2) { + cM3dGPla plane; + if (dComIfG_Bgsp().GetTriPla(i_acch.m_gnd, &plane)) { + return fopAcM_getPolygonAngle(&plane, param_2); + } + + return 0; +} + +/* 809F7AF8-809F7B18 004B38 0020+00 1/0 0/0 0/0 .text daNpc_GWolf_Create__FPv */ +static int daNpc_GWolf_Create(void* a_this) { + return static_cast(a_this)->create(); +} + +/* 809F7B18-809F7B38 004B58 0020+00 1/0 0/0 0/0 .text daNpc_GWolf_Delete__FPv */ +static int daNpc_GWolf_Delete(void* a_this) { + return static_cast(a_this)->Delete(); +} + +/* 809F7B38-809F7B58 004B78 0020+00 1/0 0/0 0/0 .text daNpc_GWolf_Execute__FPv */ +static int daNpc_GWolf_Execute(void* a_this) { + return static_cast(a_this)->Execute(); +} + +/* 809F7B58-809F7B78 004B98 0020+00 1/0 0/0 0/0 .text daNpc_GWolf_Draw__FPv */ +static int daNpc_GWolf_Draw(void* a_this) { + return static_cast(a_this)->Draw(); +} + +/* 809F7B78-809F7B80 004BB8 0008+00 1/0 0/0 0/0 .text daNpc_GWolf_IsDelete__FPv */ +static int daNpc_GWolf_IsDelete(void* a_this) { + return 1; +} + +AUDIO_INSTANCES; /* 809F8D7C-809F8D9C -00001 0020+00 1/0 0/0 0/0 .data daNpc_GWolf_MethodTable */ static actor_method_class daNpc_GWolf_MethodTable = { - (process_method_func)daNpc_GWolf_Create__FPv, - (process_method_func)daNpc_GWolf_Delete__FPv, - (process_method_func)daNpc_GWolf_Execute__FPv, - (process_method_func)daNpc_GWolf_IsDelete__FPv, - (process_method_func)daNpc_GWolf_Draw__FPv, + (process_method_func)daNpc_GWolf_Create, + (process_method_func)daNpc_GWolf_Delete, + (process_method_func)daNpc_GWolf_Execute, + (process_method_func)daNpc_GWolf_IsDelete, + (process_method_func)daNpc_GWolf_Draw, }; /* 809F8D9C-809F8DCC -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_GWOLF */ @@ -856,1303 +1982,3 @@ extern actor_process_profile_definition g_profile_NPC_GWOLF = { fopAc_NPC_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 809F8DCC-809F8DD8 0005D8 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGPla */ -SECTION_DATA extern void* __vt__8cM3dGPla[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGPlaFv, -}; - -/* 809F8DD8-809F8DE4 0005E4 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, -}; - -/* 809F8DE4-809F8E2C 0005F0 0048+00 2/2 0/0 0/0 .data __vt__13daNpc_GWolf_c */ -SECTION_DATA extern void* __vt__13daNpc_GWolf_c[18] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daNpc_GWolf_cFv, - (void*)setParam__13daNpc_GWolf_cFv, - (void*)main__13daNpc_GWolf_cFv, - (void*)ctrlBtk__13daNpc_GWolf_cFv, - (void*)adjustShapeAngle__13daNpc_GWolf_cFv, - (void*)setMtx__8daNpcF_cFv, - (void*)setMtx2__8daNpcF_cFv, - (void*)setAttnPos__13daNpc_GWolf_cFv, - (void*)setCollisions__8daNpcF_cFv, - (void*)setExpressionAnm__13daNpc_GWolf_cFib, - (void*)setExpressionBtp__8daNpcF_cFi, - (void*)setExpression__13daNpc_GWolf_cFif, - (void*)setMotionAnm__13daNpc_GWolf_cFif, - (void*)setMotion__13daNpc_GWolf_cFifi, - (void*)drawDbgInfo__13daNpc_GWolf_cFv, - (void*)drawOtherMdls__13daNpc_GWolf_cFv, -}; - -/* 809F8E2C-809F8E38 000638 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, -}; - -/* 809F8E38-809F8E5C 000644 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_809F84D8, - (void*)NULL, - (void*)NULL, - (void*)func_809F84D0, -}; - -/* 809F8E5C-809F8E68 000668 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, -}; - -/* 809F8E68-809F8E74 000674 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, -}; - -/* 809F8E74-809F8E80 000680 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, -}; - -/* 809F8E80-809F8E8C 00068C 000C+00 4/4 0/0 0/0 .data __vt__18daNpcF_ActorMngr_c */ -SECTION_DATA extern void* __vt__18daNpcF_ActorMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daNpcF_ActorMngr_cFv, -}; - -/* 809F8E8C-809F8E98 000698 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, -}; - -/* 809F8E98-809F8EA4 0006A4 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, -}; - -/* 809F8EA4-809F8EB0 0006B0 000C+00 3/3 0/0 0/0 .data __vt__15daNpcF_Lookat_c */ -SECTION_DATA extern void* __vt__15daNpcF_Lookat_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daNpcF_Lookat_cFv, -}; - -/* 809F30AC-809F3230 0000EC 0184+00 1/1 0/0 0/0 .text __ct__13daNpc_GWolf_cFv */ -daNpc_GWolf_c::daNpc_GWolf_c() { - // NONMATCHING -} - -/* 809F3230-809F3278 000270 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 809F3278-809F32C0 0002B8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 809F32C0-809F34C0 000300 0200+00 1/0 0/0 0/0 .text __dt__13daNpc_GWolf_cFv */ -daNpc_GWolf_c::~daNpc_GWolf_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F84F4-809F8580 000000 008C+00 17/17 0/0 0/0 .rodata m__19daNpc_GWolf_Param_c */ -SECTION_RODATA u8 const daNpc_GWolf_Param_c::m[140] = { - 0x41, 0xF0, 0x00, 0x00, 0xC0, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, - 0x43, 0x7F, 0x00, 0x00, 0x43, 0x70, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0xC1, 0x20, 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, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x06, - 0x43, 0x34, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x00, 0x3C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xA8, 0x00, 0x00, - 0x42, 0x22, 0x00, 0x00, 0x41, 0x9C, 0x00, 0x00, 0x42, 0x1A, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x3F, 0x7D, 0x70, 0xA4, 0x3F, 0x66, 0x66, 0x66, 0x42, 0xF0, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F84F4, &daNpc_GWolf_Param_c::m); - -/* 809F8580-809F8584 00008C 0004+00 0/1 0/0 0/0 .rodata @4401 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4401 = -300.0f; -COMPILER_STRIP_GATE(0x809F8580, &lit_4401); -#pragma pop - -/* 809F8584-809F8588 000090 0004+00 0/1 0/0 0/0 .rodata @4402 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4402 = -50.0f; -COMPILER_STRIP_GATE(0x809F8584, &lit_4402); -#pragma pop - -/* 809F8588-809F858C 000094 0004+00 0/2 0/0 0/0 .rodata @4403 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4403 = 300.0f; -COMPILER_STRIP_GATE(0x809F8588, &lit_4403); -#pragma pop - -/* 809F858C-809F8590 000098 0004+00 0/1 0/0 0/0 .rodata @4404 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4404 = 450.0f; -COMPILER_STRIP_GATE(0x809F858C, &lit_4404); -#pragma pop - -/* 809F34C0-809F37C0 000500 0300+00 1/1 0/0 0/0 .text create__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F8590-809F8594 00009C 0004+00 2/4 0/0 0/0 .rodata @4456 */ -SECTION_RODATA static f32 const lit_4456 = 1.0f; -COMPILER_STRIP_GATE(0x809F8590, &lit_4456); - -/* 809F8594-809F8598 0000A0 0004+00 4/11 0/0 0/0 .rodata @4457 */ -SECTION_RODATA static u8 const lit_4457[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x809F8594, &lit_4457); - -/* 809F37C0-809F3A1C 000800 025C+00 1/1 0/0 0/0 .text CreateHeap__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::CreateHeap() { - // NONMATCHING -} - -/* 809F3A1C-809F3A58 000A5C 003C+00 1/1 0/0 0/0 .text __dt__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::~J3DTevKColorAnm() { -extern "C" void __dt__15J3DTevKColorAnmFv() { - // NONMATCHING -} - -/* 809F3A58-809F3A70 000A98 0018+00 1/1 0/0 0/0 .text __ct__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::J3DTevKColorAnm() { -extern "C" void __ct__15J3DTevKColorAnmFv() { - // NONMATCHING -} - -/* 809F3A70-809F3AAC 000AB0 003C+00 1/1 0/0 0/0 .text __dt__14J3DTevColorAnmFv */ -// J3DTevColorAnm::~J3DTevColorAnm() { -extern "C" void __dt__14J3DTevColorAnmFv() { - // NONMATCHING -} - -/* 809F3AAC-809F3AC4 000AEC 0018+00 1/1 0/0 0/0 .text __ct__14J3DTevColorAnmFv */ -// J3DTevColorAnm::J3DTevColorAnm() { -extern "C" void __ct__14J3DTevColorAnmFv() { - // NONMATCHING -} - -/* 809F3AC4-809F3B0C 000B04 0048+00 1/1 0/0 0/0 .text __dt__11J3DTexNoAnmFv */ -// J3DTexNoAnm::~J3DTexNoAnm() { -extern "C" void __dt__11J3DTexNoAnmFv() { - // NONMATCHING -} - -/* 809F3B0C-809F3B30 000B4C 0024+00 1/1 0/0 0/0 .text __ct__11J3DTexNoAnmFv */ -// J3DTexNoAnm::J3DTexNoAnm() { -extern "C" void __ct__11J3DTexNoAnmFv() { - // NONMATCHING -} - -/* 809F3B30-809F3B6C 000B70 003C+00 1/1 0/0 0/0 .text __dt__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::~J3DTexMtxAnm() { -extern "C" void __dt__12J3DTexMtxAnmFv() { - // NONMATCHING -} - -/* 809F3B6C-809F3B84 000BAC 0018+00 1/1 0/0 0/0 .text __ct__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::J3DTexMtxAnm() { -extern "C" void __ct__12J3DTexMtxAnmFv() { - // NONMATCHING -} - -/* 809F3B84-809F3BC0 000BC4 003C+00 1/1 0/0 0/0 .text __dt__14J3DMatColorAnmFv */ -// J3DMatColorAnm::~J3DMatColorAnm() { -extern "C" void __dt__14J3DMatColorAnmFv() { - // NONMATCHING -} - -/* 809F3BC0-809F3BD8 000C00 0018+00 1/1 0/0 0/0 .text __ct__14J3DMatColorAnmFv */ -// J3DMatColorAnm::J3DMatColorAnm() { -extern "C" void __ct__14J3DMatColorAnmFv() { - // NONMATCHING -} - -/* 809F3BD8-809F3C0C 000C18 0034+00 1/1 0/0 0/0 .text Delete__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::Delete() { - // NONMATCHING -} - -/* 809F3C0C-809F3C2C 000C4C 0020+00 2/2 0/0 0/0 .text Execute__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::Execute() { - // NONMATCHING -} - -/* 809F3C2C-809F3CBC 000C6C 0090+00 1/1 0/0 0/0 .text Draw__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::Draw() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F8598-809F859C 0000A4 0004+00 0/2 0/0 0/0 .rodata @4582 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4582 = 20.0f; -COMPILER_STRIP_GATE(0x809F8598, &lit_4582); -#pragma pop - -/* 809F859C-809F85A4 0000A8 0008+00 0/1 0/0 0/0 .rodata @4584 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4584[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F859C, &lit_4584); -#pragma pop - -/* 809F3CBC-809F3FB8 000CFC 02FC+00 1/1 0/0 0/0 .text draw__13daNpc_GWolf_cFiifP11_GXColorS10i */ -void daNpc_GWolf_c::draw(int param_0, int param_1, f32 param_2, _GXColorS10* param_3, - int param_4) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F85A4-809F85B0 0000B0 000C+00 1/1 0/0 0/0 .rodata @4589 */ -SECTION_RODATA static u8 const lit_4589[12] = { - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, -}; -COMPILER_STRIP_GATE(0x809F85A4, &lit_4589); - -/* 809F3FB8-809F41EC 000FF8 0234+00 1/1 0/0 0/0 .text - * ctrlJoint__13daNpc_GWolf_cFP8J3DJointP8J3DModel */ -void daNpc_GWolf_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) { - // NONMATCHING -} - -/* 809F41EC-809F420C 00122C 0020+00 1/1 0/0 0/0 .text - * createHeapCallBack__13daNpc_GWolf_cFP10fopAc_ac_c */ -void daNpc_GWolf_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 809F420C-809F4258 00124C 004C+00 1/1 0/0 0/0 .text - * ctrlJointCallBack__13daNpc_GWolf_cFP8J3DJointi */ -void daNpc_GWolf_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING -} - -/* 809F4258-809F4390 001298 0138+00 1/0 0/0 0/0 .text setParam__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::setParam() { - // NONMATCHING -} - -/* 809F4390-809F4558 0013D0 01C8+00 1/0 0/0 0/0 .text main__13daNpc_GWolf_cFv */ -BOOL daNpc_GWolf_c::main() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F85B0-809F85B4 0000BC 0004+00 5/10 0/0 0/0 .rodata @4803 */ -SECTION_RODATA static f32 const lit_4803 = -1.0f; -COMPILER_STRIP_GATE(0x809F85B0, &lit_4803); - -/* 809F85B4-809F85B8 0000C0 0004+00 1/1 0/0 0/0 .rodata @4804 */ -SECTION_RODATA static f32 const lit_4804 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x809F85B4, &lit_4804); - -/* 809F4558-809F4638 001598 00E0+00 1/0 0/0 0/0 .text ctrlBtk__13daNpc_GWolf_cFv */ -BOOL daNpc_GWolf_c::ctrlBtk() { - // NONMATCHING -} - -/* 809F4638-809F4698 001678 0060+00 1/0 0/0 0/0 .text adjustShapeAngle__13daNpc_GWolf_cFv - */ -void daNpc_GWolf_c::adjustShapeAngle() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F85B8-809F85BC 0000C4 0004+00 0/2 0/0 0/0 .rodata @4944 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4944 = 35.0f; -COMPILER_STRIP_GATE(0x809F85B8, &lit_4944); -#pragma pop - -/* 809F85BC-809F85C0 0000C8 0004+00 0/1 0/0 0/0 .rodata @4945 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4945 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x809F85BC, &lit_4945); -#pragma pop - -/* 809F85C0-809F85C4 0000CC 0004+00 0/1 0/0 0/0 .rodata @4946 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4946 = 125.0f; -COMPILER_STRIP_GATE(0x809F85C0, &lit_4946); -#pragma pop - -/* 809F85C4-809F85CC 0000D0 0008+00 0/2 0/0 0/0 .rodata @4947 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4947[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F85C4, &lit_4947); -#pragma pop - -/* 809F85CC-809F85D4 0000D8 0008+00 0/2 0/0 0/0 .rodata @4948 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4948[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F85CC, &lit_4948); -#pragma pop - -/* 809F85D4-809F85DC 0000E0 0008+00 0/2 0/0 0/0 .rodata @4949 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4949[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F85D4, &lit_4949); -#pragma pop - -/* 809F8F08-809F8F14 000048 000C+00 1/1 0/0 0/0 .bss @4017 */ -static u8 lit_4017[12]; - -/* 809F8F14-809F8F18 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 809F8F18-809F8F28 000058 000C+04 0/1 0/0 0/0 .bss @4815 */ -#pragma push -#pragma force_active on -static u8 lit_4815[12 + 4 /* padding */]; -#pragma pop - -/* 809F8F28-809F8F34 000068 000C+00 0/1 0/0 0/0 .bss eyeOffset$4814 */ -#pragma push -#pragma force_active on -static u8 eyeOffset[12]; -#pragma pop - -/* 809F4698-809F4BB0 0016D8 0518+00 1/0 0/0 0/0 .text setAttnPos__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::setAttnPos() { - // NONMATCHING -} - -/* 809F4BB0-809F4BB8 001BF0 0008+00 1/0 0/0 0/0 .text setExpressionAnm__13daNpc_GWolf_cFib */ -bool daNpc_GWolf_c::setExpressionAnm(int param_0, bool param_1) { - return true; -} - -/* 809F4BB8-809F4BBC 001BF8 0004+00 1/0 0/0 0/0 .text setExpression__13daNpc_GWolf_cFif - */ -void daNpc_GWolf_c::setExpression(int param_0, f32 param_1) { - /* empty function */ -} - -/* 809F4BBC-809F4DE8 001BFC 022C+00 2/0 0/0 0/0 .text setMotionAnm__13daNpc_GWolf_cFif */ -void daNpc_GWolf_c::setMotionAnm(int param_0, f32 param_1) { - // NONMATCHING -} - -/* 809F4DE8-809F4E2C 001E28 0044+00 1/0 0/0 0/0 .text setMotion__13daNpc_GWolf_cFifi */ -void daNpc_GWolf_c::setMotion(int param_0, f32 param_1, int param_2) { - // NONMATCHING -} - -/* 809F4E2C-809F4E34 001E6C 0008+00 1/0 0/0 0/0 .text drawDbgInfo__13daNpc_GWolf_cFv */ -BOOL daNpc_GWolf_c::drawDbgInfo() { - return false; -} - -/* 809F4E34-809F4E38 001E74 0004+00 1/0 0/0 0/0 .text drawOtherMdls__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::drawOtherMdls() { - /* empty function */ -} - -/* 809F4E38-809F4E84 001E78 004C+00 1/1 0/0 0/0 .text getTypeFromParam__13daNpc_GWolf_cFv - */ -void daNpc_GWolf_c::getTypeFromParam() { - // NONMATCHING -} - -/* 809F4E84-809F4F00 001EC4 007C+00 2/1 0/0 0/0 .text getModeFromParam__13daNpc_GWolf_cFv - */ -void daNpc_GWolf_c::getModeFromParam() { - // NONMATCHING -} - -/* 809F4F00-809F4FF4 001F40 00F4+00 1/1 0/0 0/0 .text isDelete__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::isDelete() { - // NONMATCHING -} - -/* 809F4FF4-809F520C 002034 0218+00 1/1 0/0 0/0 .text reset__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::reset() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F85DC-809F85E8 0000E8 000C+00 0/1 0/0 0/0 .rodata @5156 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5156[12] = { - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F85DC, &lit_5156); -#pragma pop - -/* 809F85E8-809F85EC 0000F4 0004+00 0/1 0/0 0/0 .rodata @5157 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5157[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x809F85E8, &lit_5157); -#pragma pop - -/* 809F85EC-809F85F8 0000F8 000C+00 0/1 0/0 0/0 .rodata @5158 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5158[12] = { - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F85EC, &lit_5158); -#pragma pop - -/* 809F85F8-809F85FC 000104 0004+00 0/1 0/0 0/0 .rodata @5159 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5159[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x809F85F8, &lit_5159); -#pragma pop - -/* 809F85FC-809F8608 000108 000C+00 0/1 0/0 0/0 .rodata @5160 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5160[12] = { - 0x00, 0x04, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x809F85FC, &lit_5160); -#pragma pop - -/* 809F8608-809F8614 000114 000C+00 0/1 0/0 0/0 .rodata @5161 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5161[12] = { - 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F8608, &lit_5161); -#pragma pop - -/* 809F8614-809F861C 000120 0008+00 0/1 0/0 0/0 .rodata @5162 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5162[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F8614, &lit_5162); -#pragma pop - -/* 809F861C-809F8628 000128 000C+00 0/1 0/0 0/0 .rodata @5163 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5163[12] = { - 0x00, 0x06, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x809F861C, &lit_5163); -#pragma pop - -/* 809F8628-809F8634 000134 000C+00 0/1 0/0 0/0 .rodata @5164 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5164[12] = { - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F8628, &lit_5164); -#pragma pop - -/* 809F8634-809F863C 000140 0008+00 0/1 0/0 0/0 .rodata @5165 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5165[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F8634, &lit_5165); -#pragma pop - -/* 809F863C-809F8648 000148 000C+00 0/1 0/0 0/0 .rodata @5166 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5166[12] = { - 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F863C, &lit_5166); -#pragma pop - -/* 809F8648-809F864C 000154 0004+00 0/1 0/0 0/0 .rodata @5167 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5167[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x809F8648, &lit_5167); -#pragma pop - -/* 809F864C-809F8658 000158 000C+00 0/1 0/0 0/0 .rodata @5168 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5168[12] = { - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F864C, &lit_5168); -#pragma pop - -/* 809F8658-809F865C 000164 0004+00 0/1 0/0 0/0 .rodata @5169 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5169[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x809F8658, &lit_5169); -#pragma pop - -/* 809F865C-809F8668 000168 000C+00 0/1 0/0 0/0 .rodata @5170 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5170[12] = { - 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F865C, &lit_5170); -#pragma pop - -/* 809F8668-809F866C 000174 0004+00 0/1 0/0 0/0 .rodata @5171 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5171[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x809F8668, &lit_5171); -#pragma pop - -/* 809F866C-809F8678 000178 000C+00 0/1 0/0 0/0 .rodata @5172 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5172[12] = { - 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F866C, &lit_5172); -#pragma pop - -/* 809F8678-809F867C 000184 0004+00 0/1 0/0 0/0 .rodata @5173 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5173[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x809F8678, &lit_5173); -#pragma pop - -/* 809F867C-809F8688 000188 000C+00 0/1 0/0 0/0 .rodata @5174 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5174[12] = { - 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F867C, &lit_5174); -#pragma pop - -/* 809F8688-809F868C 000194 0004+00 0/1 0/0 0/0 .rodata @5175 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5175[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x809F8688, &lit_5175); -#pragma pop - -/* 809F868C-809F86B0 000198 0024+00 0/0 0/0 0/0 .rodata @5176 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5176[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, -}; -COMPILER_STRIP_GATE(0x809F868C, &lit_5176); -#pragma pop - -/* 809F86B0-809F86B4 0001BC 0004+00 0/1 0/0 0/0 .rodata @5231 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5231 = 2.0f; -COMPILER_STRIP_GATE(0x809F86B0, &lit_5231); -#pragma pop - -/* 809F520C-809F55D0 00224C 03C4+00 1/1 0/0 0/0 .text playMotion__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::playMotion() { - // NONMATCHING -} - -/* 809F55D0-809F55FC 002610 002C+00 2/2 0/0 0/0 .text - * chkAction__13daNpc_GWolf_cFM13daNpc_GWolf_cFPCvPvPv_i */ -void daNpc_GWolf_c::chkAction(int (daNpc_GWolf_c::*param_0)(void*)) { - // NONMATCHING -} - -/* 809F55FC-809F56A4 00263C 00A8+00 2/2 0/0 0/0 .text - * setAction__13daNpc_GWolf_cFM13daNpc_GWolf_cFPCvPvPv_i */ -void daNpc_GWolf_c::setAction(int (daNpc_GWolf_c::*param_0)(void*)) { - // NONMATCHING -} - -/* 809F56A4-809F5770 0026E4 00CC+00 1/1 0/0 0/0 .text selectAction__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::selectAction() { - // NONMATCHING -} - -/* 809F5770-809F5884 0027B0 0114+00 1/1 0/0 0/0 .text doNormalAction__13daNpc_GWolf_cFi - */ -void daNpc_GWolf_c::doNormalAction(int param_0) { - // NONMATCHING -} - -/* 809F5884-809F5B60 0028C4 02DC+00 1/1 0/0 0/0 .text doEvent__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::doEvent() { - // NONMATCHING -} - -/* 809F5B60-809F5B84 002BA0 0024+00 10/10 0/0 0/0 .text setLookMode__13daNpc_GWolf_cFi */ -void daNpc_GWolf_c::setLookMode(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F86B4-809F86C0 0001C0 000C+00 0/1 0/0 0/0 .rodata @5374 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5374[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809F86B4, &lit_5374); -#pragma pop - -/* 809F86C0-809F86C4 0001CC 0004+00 0/1 0/0 0/0 .rodata @5427 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5427 = -80.0f; -COMPILER_STRIP_GATE(0x809F86C0, &lit_5427); -#pragma pop - -/* 809F86C4-809F86C8 0001D0 0004+00 0/1 0/0 0/0 .rodata @5428 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5428 = 80.0f; -COMPILER_STRIP_GATE(0x809F86C4, &lit_5428); -#pragma pop - -/* 809F86C8-809F86CC 0001D4 0004+00 0/1 0/0 0/0 .rodata @5429 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5429 = 40.0f; -COMPILER_STRIP_GATE(0x809F86C8, &lit_5429); -#pragma pop - -/* 809F5B84-809F5E0C 002BC4 0288+00 1/1 0/0 0/0 .text lookat__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::lookat() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F86CC-809F86D0 0001D8 0004+00 0/1 0/0 0/0 .rodata @5637 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5637 = 400.0f; -COMPILER_STRIP_GATE(0x809F86CC, &lit_5637); -#pragma pop - -/* 809F871C-809F871C 000228 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_809F87EF = "prm"; -#pragma pop - -/* 809F5E0C-809F6548 002E4C 073C+00 3/0 0/0 0/0 .text ECut_attackWarp__13daNpc_GWolf_cFi - */ -void daNpc_GWolf_c::ECut_attackWarp(int param_0) { - // NONMATCHING -} - -/* 809F6548-809F6BFC 003588 06B4+00 3/0 0/0 0/0 .text ECut_attackWarpHorse__13daNpc_GWolf_cFi */ -void daNpc_GWolf_c::ECut_attackWarpHorse(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F86D0-809F86D4 0001DC 0004+00 0/0 0/0 0/0 .rodata @5638 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5638 = 0.5f; -COMPILER_STRIP_GATE(0x809F86D0, &lit_5638); -#pragma pop - -/* 809F86D4-809F86D8 0001E0 0004+00 0/1 0/0 0/0 .rodata @5639 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5639 = 3.0f; -COMPILER_STRIP_GATE(0x809F86D4, &lit_5639); -#pragma pop - -/* 809F86D8-809F86DC 0001E4 0004+00 0/0 0/0 0/0 .rodata @5640 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5640 = 5.0f; -COMPILER_STRIP_GATE(0x809F86D8, &lit_5640); -#pragma pop - -/* 809F86DC-809F86E0 0001E8 0004+00 0/0 0/0 0/0 .rodata @5814 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5814 = 9.0f / 10.0f; -COMPILER_STRIP_GATE(0x809F86DC, &lit_5814); -#pragma pop - -/* 809F86E0-809F86E4 0001EC 0004+00 0/0 0/0 0/0 .rodata @5815 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5815 = 99.0f / 100.0f; -COMPILER_STRIP_GATE(0x809F86E0, &lit_5815); -#pragma pop - -/* 809F86E4-809F86E8 0001F0 0004+00 0/1 0/0 0/0 .rodata @5913 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5913 = 12.0f; -COMPILER_STRIP_GATE(0x809F86E4, &lit_5913); -#pragma pop - -/* 809F86E8-809F86EC 0001F4 0004+00 0/1 0/0 0/0 .rodata @5914 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5914 = 22.0f; -COMPILER_STRIP_GATE(0x809F86E8, &lit_5914); -#pragma pop - -/* 809F86EC-809F86F0 0001F8 0004+00 0/1 0/0 0/0 .rodata @5915 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5915 = -2.0f; -COMPILER_STRIP_GATE(0x809F86EC, &lit_5915); -#pragma pop - -/* 809F86F0-809F86F4 0001FC 0004+00 0/1 0/0 0/0 .rodata @5916 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5916 = 25.0f; -COMPILER_STRIP_GATE(0x809F86F0, &lit_5916); -#pragma pop - -/* 809F86F4-809F86F8 000200 0004+00 0/1 0/0 0/0 .rodata @5917 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5917 = 28.0f; -COMPILER_STRIP_GATE(0x809F86F4, &lit_5917); -#pragma pop - -/* 809F86F8-809F86FC 000204 0004+00 0/1 0/0 0/0 .rodata @5918 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5918 = 4.0f; -COMPILER_STRIP_GATE(0x809F86F8, &lit_5918); -#pragma pop - -/* 809F6BFC-809F7084 003C3C 0488+00 1/0 0/0 0/0 .text ECut_howlingSessionA__13daNpc_GWolf_cFi */ -void daNpc_GWolf_c::ECut_howlingSessionA(int param_0) { - // NONMATCHING -} - -/* 809F7084-809F70A8 0040C4 0024+00 1/1 0/0 0/0 .text callback_proc__FPvi */ -static void callback_proc(void* param_0, int param_1) { - // NONMATCHING -} - -/* 809F70A8-809F70EC 0040E8 0044+00 1/1 0/0 0/0 .text meetGWolfSkip__13daNpc_GWolf_cFv */ -void daNpc_GWolf_c::meetGWolfSkip() { - // NONMATCHING -} - -/* 809F70EC-809F71E0 00412C 00F4+00 1/0 0/0 0/0 .text ECut_meetGWolf__13daNpc_GWolf_cFi - */ -void daNpc_GWolf_c::ECut_meetGWolf(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F86FC-809F8700 000208 0004+00 0/1 0/0 0/0 .rodata @6060 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6060 = 100.0f; -COMPILER_STRIP_GATE(0x809F86FC, &lit_6060); -#pragma pop - -/* 809F8700-809F8704 00020C 0004+00 0/1 0/0 0/0 .rodata @6061 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6061 = 200.0f; -COMPILER_STRIP_GATE(0x809F8700, &lit_6061); -#pragma pop - -/* 809F71E0-809F75C0 004220 03E0+00 1/0 0/0 0/0 .text wait__13daNpc_GWolf_cFPv */ -void daNpc_GWolf_c::wait(void* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F8704-809F8710 000210 000C+00 0/1 0/0 0/0 .rodata @6071 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6071[12] = { - 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B, 0x00, 0x0C, 0x00, 0x0D, 0x00, 0x0E, -}; -COMPILER_STRIP_GATE(0x809F8704, &lit_6071); -#pragma pop - -/* 809F8710-809F871C 00021C 000C+00 0/1 0/0 0/0 .rodata @6078 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6078[12] = { - 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x08, -}; -COMPILER_STRIP_GATE(0x809F8710, &lit_6078); -#pragma pop - -/* 809F75C0-809F775C 004600 019C+00 1/0 0/0 0/0 .text waitHowling__13daNpc_GWolf_cFPv */ -void daNpc_GWolf_c::waitHowling(void* param_0) { - // NONMATCHING -} - -/* 809F775C-809F77E4 00479C 0088+00 1/0 0/0 0/0 .text waitBrave__13daNpc_GWolf_cFPv */ -void daNpc_GWolf_c::waitBrave(void* param_0) { - // NONMATCHING -} - -/* 809F77E4-809F797C 004824 0198+00 2/0 0/0 0/0 .text talk__13daNpc_GWolf_cFPv */ -void daNpc_GWolf_c::talk(void* param_0) { - // NONMATCHING -} - -/* 809F797C-809F7A30 0049BC 00B4+00 2/0 0/0 0/0 .text test__13daNpc_GWolf_cFPv */ -void daNpc_GWolf_c::test(void* param_0) { - // NONMATCHING -} - -/* 809F7A30-809F7AB0 004A70 0080+00 1/1 0/0 0/0 .text - * getGroundSlope__13daNpc_GWolf_cFR12dBgS_ObjAcchs */ -void daNpc_GWolf_c::getGroundSlope(dBgS_ObjAcch& param_0, s16 param_1) { - // NONMATCHING -} - -/* 809F7AB0-809F7AF8 004AF0 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGPlaFv */ -// cM3dGPla::~cM3dGPla() { -extern "C" void __dt__8cM3dGPlaFv() { - // NONMATCHING -} - -/* 809F7AF8-809F7B18 004B38 0020+00 1/0 0/0 0/0 .text daNpc_GWolf_Create__FPv */ -static void daNpc_GWolf_Create(void* param_0) { - // NONMATCHING -} - -/* 809F7B18-809F7B38 004B58 0020+00 1/0 0/0 0/0 .text daNpc_GWolf_Delete__FPv */ -static void daNpc_GWolf_Delete(void* param_0) { - // NONMATCHING -} - -/* 809F7B38-809F7B58 004B78 0020+00 1/0 0/0 0/0 .text daNpc_GWolf_Execute__FPv */ -static void daNpc_GWolf_Execute(void* param_0) { - // NONMATCHING -} - -/* 809F7B58-809F7B78 004B98 0020+00 1/0 0/0 0/0 .text daNpc_GWolf_Draw__FPv */ -static void daNpc_GWolf_Draw(void* param_0) { - // NONMATCHING -} - -/* 809F7B78-809F7B80 004BB8 0008+00 1/0 0/0 0/0 .text daNpc_GWolf_IsDelete__FPv */ -static bool daNpc_GWolf_IsDelete(void* param_0) { - return true; -} - -/* 809F7B80-809F7BB0 004BC0 0030+00 1/0 0/0 0/0 .text calc__11J3DTexNoAnmCFPUs */ -// void J3DTexNoAnm::calc(u16* param_0) const { -extern "C" void calc__11J3DTexNoAnmCFPUs() { - // NONMATCHING -} - -/* 809F7BB0-809F7BF8 004BF0 0048+00 5/4 0/0 0/0 .text __dt__18daNpcF_ActorMngr_cFv */ -// daNpcF_ActorMngr_c::~daNpcF_ActorMngr_c() { -extern "C" void __dt__18daNpcF_ActorMngr_cFv() { - // NONMATCHING -} - -/* 809F7BF8-809F7C34 004C38 003C+00 2/2 0/0 0/0 .text __ct__18daNpcF_ActorMngr_cFv */ -// daNpcF_ActorMngr_c::daNpcF_ActorMngr_c() { -extern "C" void __ct__18daNpcF_ActorMngr_cFv() { - // NONMATCHING -} - -/* 809F7C34-809F7D04 004C74 00D0+00 1/0 0/0 0/0 .text __dt__15daNpcF_Lookat_cFv */ -// daNpcF_Lookat_c::~daNpcF_Lookat_c() { -extern "C" void __dt__15daNpcF_Lookat_cFv() { - // NONMATCHING -} - -/* 809F7D04-809F7D40 004D44 003C+00 5/5 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 809F7D40-809F7D44 004D80 0004+00 2/2 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 809F7D44-809F7D80 004D84 003C+00 6/6 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 809F7D80-809F7D84 004DC0 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 809F7D84-809F7FD0 004DC4 024C+00 1/1 0/0 0/0 .text __dt__8daNpcF_cFv */ -// daNpcF_c::~daNpcF_c() { -extern "C" void __dt__8daNpcF_cFv() { - // NONMATCHING -} - -/* 809F7FD0-809F81C0 005010 01F0+00 1/1 0/0 0/0 .text __ct__8daNpcF_cFv */ -// daNpcF_c::daNpcF_c() { -extern "C" void __ct__8daNpcF_cFv() { - // NONMATCHING -} - -/* 809F81C0-809F8230 005200 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 809F8230-809F828C 005270 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 809F828C-809F82FC 0052CC 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 809F82FC-809F8344 00533C 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 809F8344-809F8348 005384 0004+00 1/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */ -// void daNpcF_c::setCollisions() { -extern "C" void setCollisions__8daNpcF_cFv() { - /* empty function */ -} - -/* 809F8348-809F8350 005388 0008+00 1/0 0/0 0/0 .text setExpressionBtp__8daNpcF_cFi */ -// bool daNpcF_c::setExpressionBtp(int param_0) { -extern "C" bool setExpressionBtp__8daNpcF_cFi() { - return true; -} - -/* 809F8350-809F8398 005390 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 809F8398-809F83B4 0053D8 001C+00 3/3 0/0 0/0 .text cLib_calcTimer__FPi */ -extern "C" void func_809F8398(void* _this, int* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F8EB0-809F8EBC 0006BC 000C+00 2/2 0/0 0/0 .data __vt__19daNpc_GWolf_Param_c */ -SECTION_DATA extern void* __vt__19daNpc_GWolf_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__19daNpc_GWolf_Param_cFv, -}; - -/* 809F83B4-809F8488 0053F4 00D4+00 0/0 1/0 0/0 .text __sinit_d_a_npc_gwolf_cpp */ -void __sinit_d_a_npc_gwolf_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x809F83B4, __sinit_d_a_npc_gwolf_cpp); -#pragma pop - -/* 809F8488-809F84D0 0054C8 0048+00 2/1 0/0 0/0 .text __dt__19daNpc_GWolf_Param_cFv */ -daNpc_GWolf_Param_c::~daNpc_GWolf_Param_c() { - // NONMATCHING -} - -/* 809F84D0-809F84D8 005510 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_809F84D0() { - // NONMATCHING -} - -/* 809F84D8-809F84E0 005518 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_809F84D8() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 809F8F34-809F8F38 000074 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_809F8F34[4]; -#pragma pop - -/* 809F8F38-809F8F3C 000078 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_809F8F38[4]; -#pragma pop - -/* 809F8F3C-809F8F40 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_809F8F3C[4]; -#pragma pop - -/* 809F8F40-809F8F44 000080 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_809F8F40[4]; -#pragma pop - -/* 809F8F44-809F8F48 000084 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_809F8F44[4]; -#pragma pop - -/* 809F8F48-809F8F4C 000088 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_809F8F48[4]; -#pragma pop - -/* 809F8F4C-809F8F50 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_809F8F4C[4]; -#pragma pop - -/* 809F8F50-809F8F54 000090 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_809F8F50[4]; -#pragma pop - -/* 809F8F54-809F8F58 000094 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_809F8F54[4]; -#pragma pop - -/* 809F8F58-809F8F5C 000098 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_809F8F58[4]; -#pragma pop - -/* 809F8F5C-809F8F60 00009C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_809F8F5C[4]; -#pragma pop - -/* 809F8F60-809F8F64 0000A0 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_809F8F60[4]; -#pragma pop - -/* 809F8F64-809F8F68 0000A4 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_809F8F64[4]; -#pragma pop - -/* 809F8F68-809F8F6C 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_809F8F68[4]; -#pragma pop - -/* 809F8F6C-809F8F70 0000AC 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_809F8F6C[4]; -#pragma pop - -/* 809F8F70-809F8F74 0000B0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_809F8F70[4]; -#pragma pop - -/* 809F8F74-809F8F78 0000B4 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_809F8F74[4]; -#pragma pop - -/* 809F8F78-809F8F7C 0000B8 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_809F8F78[4]; -#pragma pop - -/* 809F8F7C-809F8F80 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_809F8F7C[4]; -#pragma pop - -/* 809F8F80-809F8F84 0000C0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_809F8F80[4]; -#pragma pop - -/* 809F8F84-809F8F88 0000C4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_809F8F84[4]; -#pragma pop - -/* 809F8F88-809F8F8C 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_809F8F88[4]; -#pragma pop - -/* 809F8F8C-809F8F90 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_809F8F8C[4]; -#pragma pop - -/* 809F8F90-809F8F94 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_809F8F90[4]; -#pragma pop - -/* 809F8F94-809F8F98 0000D4 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_809F8F94[4]; -#pragma pop - -/* 809F871C-809F871C 000228 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */