From 0adb35db8d6693aa2409d4771d7ea0f746a064e0 Mon Sep 17 00:00:00 2001 From: Carco_21 <144170194+carter-ktb21@users.noreply.github.com> Date: Wed, 3 Sep 2025 12:23:04 -0700 Subject: [PATCH] d_a_npc_tks almost matching (#2616) * initial work * one more demo func left * almost matching * almost matching * pr cleanup --- configure.py | 2 +- include/d/actor/d_a_npc.h | 5 + include/d/actor/d_a_npc_tkc.h | 5 +- include/d/actor/d_a_npc_tks.h | 136 +- src/d/actor/d_a_npc_tks.cpp | 5175 +++++++++++++++++++-------------- 5 files changed, 3115 insertions(+), 2208 deletions(-) diff --git a/configure.py b/configure.py index 8f2770687ed..bb7e0b89c44 100755 --- a/configure.py +++ b/configure.py @@ -1886,7 +1886,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_tk"), ActorRel(NonMatching, "d_a_npc_tkc"), ActorRel(MatchingFor("GZ2E01"), "d_a_npc_tkj2"), - ActorRel(NonMatching, "d_a_npc_tks"), + ActorRel(NonMatching, "d_a_npc_tks", extra_cflags=[DANPCF_C_HACK]), ActorRel(NonMatching, "d_a_npc_toby"), ActorRel(MatchingFor("GZ2E01"), "d_a_npc_tr"), ActorRel(NonMatching, "d_a_npc_uri"), diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index a3ed56e3c35..1842d097f2c 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -23,6 +23,11 @@ struct daNpc_GetParam2 { // name unknown /* 0x8 */ int arcIdx; }; +struct daNpc_GetParam3 { // name unknown + /* 0x0 */ int fileIdx; + /* 0x4 */ int attr; +}; + class daNpcT_ActorMngr_c { private: /* 0x0 */ fpc_ProcID mActorID; diff --git a/include/d/actor/d_a_npc_tkc.h b/include/d/actor/d_a_npc_tkc.h index d2520b4adaf..3ef7cad33e8 100644 --- a/include/d/actor/d_a_npc_tkc.h +++ b/include/d/actor/d_a_npc_tkc.h @@ -51,11 +51,14 @@ public: /* 80B0FFD4 */ bool drawDbgInfo(); void setStart() { field_0xd7a = 1; } + void callOdorokiSound() { mSound.startCreatureVoiceLevel(Z2SE_TKC_V_ODOROKI_LOOP, -1); } static u8 mEvtSeqList[48]; private: - /* 0x568 */ u8 field_0x568[0xd7a - 0x568]; + /* 0x568 */ u8 field_0x568[0xb48 - 0x568]; + /* 0xB48 */ Z2Creature mSound; + /* 0xBD8 */ u8 field_0xbd8[0xd7a - 0xbd8]; /* 0xD7A */ u8 field_0xd7a; /* 0xD7B */ u8 field_0xd7b[0xd7c - 0xd7b]; }; diff --git a/include/d/actor/d_a_npc_tks.h b/include/d/actor/d_a_npc_tks.h index fa876b1166a..4c99e1b9ee4 100644 --- a/include/d/actor/d_a_npc_tks.h +++ b/include/d/actor/d_a_npc_tks.h @@ -10,27 +10,76 @@ * * @details * - */ -class daNpcTks_c : public fopAc_ac_c { +*/ + +struct daNpcTks_HIOParam { + /* 0x00 */ daNpcF_HIOParam common; + /* 0x6C */ s32 hide_time_1; // Hide 時間 - Hide Time + /* 0x70 */ s32 hide_time_2; // Hide 時間 - Hide Time + /* 0x74 */ s32 show_up_wait_time_1; // ShowUpWait時間 - Show Up Wait Time + /* 0x78 */ s32 show_up_wait_time_2; // ShowUpWait時間 - Show Up Wait Time + /* 0x7C */ f32 area_a_dist; // エリアA距離 - Area A Distance + /* 0x80 */ f32 area_b_dist; // エリアB距離 - Area B Distance + /* 0x84 */ f32 jar_enter_exit_spd; // 壷出入り速度 - Jar Enter and Exit Speed + /* 0x88 */ f32 launch_spd; // 打ち上げ速度 - Launch Speed + /* 0x8C */ f32 movement_spd; // 移動速度 - Movement Speed + /* 0x90 */ f32 walk_spd; // 歩行速度 - Walk Speed + /* 0x94 */ f32 run_spd; // 走行速度 - Run Speed +}; + +class daNpcTks_HIO_c +#ifdef DEBUG +: public mDoHIO_entry_c +#endif +{ + /* 0x8 */ daNpcTks_HIOParam param; +}; + +class daNpcTks_Param_c { public: + /* 80B1DCEC */ virtual ~daNpcTks_Param_c() {} + + static daNpcTks_HIOParam const m; +}; + +class daNpcTksTsubo_c { +public: + /* 0x000 */ mDoExt_McaMorfSO* mpModelMorf; + /* 0x004 */ dKy_tevstr_c mTevStr; + /* 0x38C */ Z2Creature mSound; + /* 0x41C */ dCcD_Cyl mCyl; + /* 0x558 */ cBgS_PolyInfo polyBase; + /* 0x568 */ f32 mGroundH; + /* 0x56C */ u32 mShadowKey; + /* 0x570 */ u32 mAnmFlags; + /* 0x574 */ cXyz mPos; + /* 0x580 */ csXyz mAngle; + /* 0x586 */ u8 field_0x586; + /* 0x587 */ u8 mTsuboType; +}; + +class daNpcTks_c : public daNpcF_c { +public: + typedef void (daNpcTks_c::*actionFunc)(); + /* 80B1462C */ daNpcTks_c(); /* 80B14844 */ ~daNpcTks_c(); - /* 80B14AF8 */ void Create(); - /* 80B14ED0 */ void CreateHeap(); - /* 80B153D8 */ void Delete(); - /* 80B1540C */ void Execute(); - /* 80B15430 */ void Draw(); - /* 80B1548C */ void ctrlJoint(J3DJoint*, J3DModel*); - /* 80B15650 */ void createHeapCallBack(fopAc_ac_c*); - /* 80B15670 */ void ctrlJointCallBack(J3DJoint*, int); + /* 80B14AF8 */ cPhs__Step Create(); + /* 80B14ED0 */ int CreateHeap(); + /* 80B153D8 */ int Delete(); + /* 80B1540C */ int Execute(); + /* 80B15430 */ int Draw(); + /* 80B1548C */ int ctrlJoint(J3DJoint*, J3DModel*); + /* 80B15650 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80B15670 */ static int ctrlJointCallBack(J3DJoint*, int); /* 80B156BC */ void setMtx(); - /* 80B157C0 */ void setExpressionAnm(int, bool); - /* 80B1590C */ void setExpressionBtp(int); + /* 80B157C0 */ bool setExpressionAnm(int, bool); + /* 80B1590C */ bool setExpressionBtp(int); /* 80B159E0 */ void setMotion(int, f32, int); /* 80B15A24 */ void reset(); - /* 80B160A8 */ void setAction(void (daNpcTks_c::*)()); + /* 80B160A8 */ inline BOOL setAction(actionFunc); /* 80B16148 */ void wait(); - /* 80B16344 */ bool setMotionAnm(int, f32); + /* 80B16344 */ void setMotionAnm(int, f32); /* 80B16634 */ void waitNude(); /* 80B1682C */ void waitLv6(); /* 80B16B74 */ void talk(); @@ -53,24 +102,53 @@ public: /* 80B1A888 */ void demo_Lv7Start(); /* 80B1B6A0 */ void demo_Lv3PickUp(); /* 80B1BD64 */ void demo_Lv6PickUp(); - /* 80B1C480 */ void setParam(); - /* 80B1C4F8 */ void main(); - /* 80B1CB54 */ void ctrlBtk(); - /* 80B1CC28 */ void setAttnPos(); - /* 80B1CFD0 */ void lookat(); - /* 80B1D1FC */ bool drawDbgInfo(); - /* 80B1D204 */ void drawOtherMdls(); + /* 80B1C480 */ inline void setParam(); + /* 80B1C4F8 */ inline BOOL main(); + /* 80B1CB54 */ inline BOOL ctrlBtk(); + /* 80B1CC28 */ inline void setAttnPos(); + /* 80B1CFD0 */ inline void lookat(); + /* 80B1D1FC */ inline BOOL drawDbgInfo(); + /* 80B1D204 */ inline void drawOtherMdls(); + + u8 getType() { return fopAcM_GetParam(this) & 0xFF; } + u8 getSwitchNo() { return (fopAcM_GetParam(this) >> 8) & 0xFF; } + u8 getTsuboType() { return 1 - (fopAcM_GetParam(this) >> 24) == 0; } + int getMessageNo() { return shape_angle.x; } + u8 getTBoxNo() { return (fopAcM_GetParam(this) >> 16) & 0xFF; } + inline BOOL checkFindPlayer(); + inline void setLookMode(int, fopAc_ac_c*); + inline void setTsuboMotionAnm(int, f32); + inline void setExpressionTalkAfter(); + inline BOOL step(s16, int); + inline void playExpression(); + inline void playMotion(); + inline void playTsuboAnm(); + inline int getPlayerArea(); + private: - /* 0x568 */ u8 field_0x568[0x138c - 0x568]; + /* 0x0B48 */ Z2Creature mSound; + /* 0x0BD8 */ daNpcTksTsubo_c mTksTsubo; + /* 0x1160 */ daNpcF_MatAnm_c* mpMatAnm; + /* 0x1164 */ daNpcF_Lookat_c mLookat; + /* 0x1200 */ daNpcF_ActorMngr_c mActorMngr[1]; + /* 0x1208 */ fopAc_ac_c* field_0x1208; + /* 0x120C */ daNpcTks_HIO_c* mHIO; + /* 0x1210 */ dCcD_Cyl mCyl; + /* 0x134C */ actionFunc mAction; + /* 0x1358 */ request_of_phase_process_class mPhases[2]; + /* 0x1368 */ fpc_ProcID mItemID; + /* 0x136C */ f32 field_0x136c; + /* 0x1370 */ int field_0x1370; + /* 0x1374 */ int field_0x1374; + /* 0x1378 */ int mPlayerArea; + /* 0x137C */ u32 field_0x137c[2]; + /* 0x1384 */ s16 mMessageNo; + /* 0x1386 */ s16 mLookMode; + /* 0x1388 */ u16 mMode; + /* 0x138A */ bool field_0x138a; + /* 0x138B */ bool field_0x138b; }; STATIC_ASSERT(sizeof(daNpcTks_c) == 0x138c); -class daNpcTks_Param_c { -public: - /* 80B1DCEC */ ~daNpcTks_Param_c(); - - static u8 const m[152]; -}; - #endif /* D_A_NPC_TKS_H */ diff --git a/src/d/actor/d_a_npc_tks.cpp b/src/d/actor/d_a_npc_tks.cpp index fd709d6aac9..a737883e912 100644 --- a/src/d/actor/d_a_npc_tks.cpp +++ b/src/d/actor/d_a_npc_tks.cpp @@ -6,765 +6,3080 @@ #include "d/dolzel_rel.h" #include "d/actor/d_a_npc_tks.h" -#include "dol2asm.h" +#include "d/d_a_obj.h" +#include "d/actor/d_a_npc_tkc.h" +#include "d/d_meter2_info.h" +#include "f_op/f_op_kankyo_mng.h" -// -// Forward References: -// +enum TKS_RES_File_ID { + /* BCK */ + /* 0x07 */ BCK_TKS_F_TALK_A = 0x7, + /* 0x08 */ BCK_TKS_FALL, + /* 0x09 */ BCK_TKS_FLY, + /* 0x0A */ BCK_TKS_HIDE, + /* 0x0B */ BCK_TKS_IN, + /* 0x0C */ BCK_TKS_JUMP_E, + /* 0x0D */ BCK_TKS_JUMP_S, + /* 0x0E */ BCK_TKS_LAND, + /* 0x0F */ BCK_TKS_LOOKAROUND_A, + /* 0x10 */ BCK_TKS_LOOKAROUND_B, + /* 0x11 */ BCK_TKS_RUN, + /* 0x12 */ BCK_TKS_SHAKE, + /* 0x13 */ BCK_TKS_SHOW_UP, + /* 0x14 */ BCK_TKS_SHOW_UP_WAIT, + /* 0x15 */ BCK_TKS_SWIM, + /* 0x16 */ BCK_TKS_TUBO_HIDE, + /* 0x17 */ BCK_TKS_TUBO_IN, + /* 0x18 */ BCK_TKS_TUBO_SHAKE, + /* 0x19 */ BCK_TKS_TUBO_SHOW_UP, + /* 0x1A */ BCK_TKS_WAIT_A, + /* 0x1B */ BCK_TKS_WALK_A, -extern "C" void __ct__10daNpcTks_cFv(); -extern "C" void __dt__10daNpcTks_cFv(); -extern "C" void Create__10daNpcTks_cFv(); -extern "C" void CreateHeap__10daNpcTks_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__10daNpcTks_cFv(); -extern "C" void Execute__10daNpcTks_cFv(); -extern "C" void Draw__10daNpcTks_cFv(); -extern "C" void ctrlJoint__10daNpcTks_cFP8J3DJointP8J3DModel(); -extern "C" void createHeapCallBack__10daNpcTks_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__10daNpcTks_cFP8J3DJointi(); -extern "C" void setMtx__10daNpcTks_cFv(); -extern "C" void setExpressionAnm__10daNpcTks_cFib(); -extern "C" void setExpressionBtp__10daNpcTks_cFi(); -extern "C" void setMotion__10daNpcTks_cFifi(); -extern "C" void reset__10daNpcTks_cFv(); -extern "C" void setAction__10daNpcTks_cFM10daNpcTks_cFPCvPv_v(); -extern "C" void wait__10daNpcTks_cFv(); -extern "C" void setMotionAnm__10daNpcTks_cFif(); -extern "C" void waitNude__10daNpcTks_cFv(); -extern "C" void waitLv6__10daNpcTks_cFv(); -extern "C" void talk__10daNpcTks_cFv(); -extern "C" void setExpression__10daNpcTks_cFif(); -extern "C" void hide__10daNpcTks_cFv(); -extern "C" void shake__10daNpcTks_cFv(); -extern "C" void showUp__10daNpcTks_cFv(); -extern "C" void showUpWait__10daNpcTks_cFv(); -extern "C" void lookAroundA__10daNpcTks_cFv(); -extern "C" void lookAroundB__10daNpcTks_cFv(); -extern "C" void in__10daNpcTks_cFv(); -extern "C" void damage__10daNpcTks_cFv(); -extern "C" void broken__10daNpcTks_cFv(); -extern "C" void demo_appear__10daNpcTks_cFv(); -extern "C" void demo_scannon__10daNpcTks_cFv(); -extern "C" void demo_Lv6Gate__10daNpcTks_cFv(); -extern "C" void demo_farewell__10daNpcTks_cFv(); -extern "C" void demo_warpBack__10daNpcTks_cFv(); -extern "C" void demo_walkBack__10daNpcTks_cFv(); -extern "C" void demo_Lv7Start__10daNpcTks_cFv(); -extern "C" void demo_Lv3PickUp__10daNpcTks_cFv(); -extern "C" void demo_Lv6PickUp__10daNpcTks_cFv(); -extern "C" static void daNpcTks_Create__FPv(); -extern "C" static void daNpcTks_Delete__FPv(); -extern "C" static void daNpcTks_Execute__FPv(); -extern "C" static void daNpcTks_Draw__FPv(); -extern "C" static bool daNpcTks_IsDelete__FPv(); -extern "C" void calc__11J3DTexNoAnmCFPUs(); -extern "C" void setParam__10daNpcTks_cFv(); -extern "C" void main__10daNpcTks_cFv(); -extern "C" void func_80B1CB4C(void* _this, u32, u32); -extern "C" void ctrlBtk__10daNpcTks_cFv(); -extern "C" void setAttnPos__10daNpcTks_cFv(); -extern "C" void lookat__10daNpcTks_cFv(); -extern "C" bool drawDbgInfo__10daNpcTks_cFv(); -extern "C" void drawOtherMdls__10daNpcTks_cFv(); -extern "C" void func_80B1D35C(void* _this, s16); -extern "C" void func_80B1D368(void* _this, int*); -extern "C" void func_80B1D384(void* _this, int, int); -extern "C" void __sinit_d_a_npc_tks_cpp(); -extern "C" void __dt__18daNpcF_ActorMngr_cFv(); -extern "C" void __ct__18daNpcF_ActorMngr_cFv(); -extern "C" void __dt__15daNpcF_Lookat_cFv(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__5csXyzFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __ct__11J3DLightObjFv(); -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 adjustShapeAngle__8daNpcF_cFv(); -extern "C" void setCollisions__8daNpcF_cFv(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __dt__16daNpcTks_Param_cFv(); -extern "C" static void func_80B1DD34(); -extern "C" static void func_80B1DD3C(); -extern "C" u8 const m__16daNpcTks_Param_c[152]; -extern "C" extern char const* const d_a_npc_tks__stringBase0; + /* BMDR */ + /* 0x1E */ BMDR_TKS = 0x1E, -// -// External References: -// + /* BTK */ + /* 0x21 */ BTK_TKS = 0x21, -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void changeBckOnly__13mDoExt_bckAnmFP15J3DAnmTransform(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void setAnm__16mDoExt_McaMorfSOFP15J3DAnmTransformiffff(); -extern "C" void play__16mDoExt_McaMorfSOFUlSc(); -extern "C" void entryDL__16mDoExt_McaMorfSOFv(); -extern "C" void modelCalc__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 fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void fopAcM_SearchByID__FUiPP10fopAc_ac_c(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_delete__FUi(); -extern "C" void fopAcM_createChild__FsUiUlPC4cXyziPC5csXyzPC4cXyzScPFPv_i(); -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_searchActorDistance__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ2__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_orderSpeakEvent__FP10fopAc_ac_cUsUs(); -extern "C" void fopAcM_orderChangeEventId__FP10fopAc_ac_csUsUs(); -extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs(); -extern "C" void fopAcM_createItemForPresentDemo__FPC4cXyziUciiPC5csXyzPC4cXyz(); -extern "C" void fopAcM_cancelCarryNow__FP10fopAc_ac_c(); -extern "C" void fopAcM_otherBgCheck__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci(); -extern "C" void fopAcM_effHamonSet__FPUlPC4cXyzff(); -extern "C" void fopKyM_createWpillar__FPC4cXyzfi(); -extern "C" void fpcSch_JudgeForPName__FPvPv(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void -dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); -extern "C" void onTbox__12dSv_memBit_cFi(); -extern "C" void onDungeonItem__12dSv_memBit_cFi(); -extern "C" void isDungeonItem__12dSv_memBit_cCFi(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void make_eff_break_kotubo__5daObjFP10fopAc_ac_c(); -extern "C" void make_eff_break_kotubo2__5daObjFP10fopAc_ac_c(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void reset__14dEvt_control_cFPv(); -extern "C" void setSkipZev__14dEvt_control_cFPvPc(); -extern "C" void setPtT__14dEvt_control_cFPv(); -extern "C" void setPtI_Id__14dEvt_control_cFUi(); -extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc(); -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 getMyNowCutName__16dEvent_manager_cFi(); -extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void getEmitter__Q213dPa_control_c7level_cFUl(); -extern "C" void StartShock__12dVibration_cFii4cXyz(); -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 ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void initialize__18daNpcF_ActorMngr_cFv(); -extern "C" void entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void remove__18daNpcF_ActorMngr_cFv(); -extern "C" void getActorP__18daNpcF_ActorMngr_cFv(); -extern "C" void initialize__15daNpcF_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 draw__8daNpcF_cFiifP11_GXColorS10i(); -extern "C" void setMtx2__8daNpcF_cFv(); -extern "C" void initialize__8daNpcF_cFv(); -extern "C" void getTrnsfrmKeyAnmP__8daNpcF_cFPci(); -extern "C" void getTexPtrnAnmP__8daNpcF_cFPci(); -extern "C" void getTexSRTKeyAnmP__8daNpcF_cFPci(); -extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii(); -extern "C" void setBckAnm__8daNpcF_cFP15J3DAnmTransformfiiib(); -extern "C" void setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi(); -extern "C" void setBtkAnm__8daNpcF_cFP19J3DAnmTextureSRTKeyP12J3DModelDatafi(); -extern "C" void setEnvTevColor__8daNpcF_cFv(); -extern "C" void setRoomNo__8daNpcF_cFv(); -extern "C" void playExpressionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); -extern "C" void playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); -extern "C" void setLookatMtx__8daNpcF_cFiPif(); -extern "C" void ctrlMsgAnm__8daNpcF_cFRiRiP10fopAc_ac_ci(); -extern "C" void initTalk__8daNpcF_cFiPP10fopAc_ac_c(); -extern "C" void talkProc__8daNpcF_cFPiiPP10fopAc_ac_c(); -extern "C" void turn__8daNpcF_cFsfi(); -extern "C" void setAngle__8daNpcF_cFs(); -extern "C" void daNpcF_chkEvtBit__FUl(); -extern "C" void daNpcF_onEvtBit__FUl(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void dKy_tevstr_init__FP12dKy_tevstr_cScUc(); -extern "C" void warpInProc__13dMeter2Info_cFv(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void getEventId__10dMsgFlow_cFPi(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void __ct__5csXyzFsss(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rndF__Ff(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void __ct__13cBgS_PolyInfoFv(); -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_chaseF__FPfff(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void subBgmStart__8Z2SeqMgrFUl(); -extern "C" void subBgmStop__8Z2SeqMgrFv(); -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 __as__12J3DLightInfoFRC12J3DLightInfo(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void checkPass__12J3DFrameCtrlFf(); -extern "C" void getTexNo__16J3DAnmTexPatternCFUsPUs(); -extern "C" void initialize__14J3DMaterialAnmFv(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_test(); -extern "C" void __ptmf_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" extern u8 g_meter2_info[248]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void setActionWait__10daNpcTkc_cFv(); -extern "C" void setActionFollow__10daNpcTkc_cFv(); -extern "C" void __register_global_object(); + /* BTP */ + /* 0x24 */ BTP_TKS = 0x24, -// -// Declarations: -// + /* EVT */ + /* 0x27 */ EVT_TKS_EVENT_LIST = 0x27, +}; -/* ############################################################################################## */ -/* 80B1E048-80B1E048 0002F0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B1E048 = "TKS"; -SECTION_DEAD static char const* const stringBase_80B1E04C = "J_tubo_00"; -SECTION_DEAD static char const* const stringBase_80B1E056 = "K_tubo02"; -SECTION_DEAD static char const* const stringBase_80B1E05F = "TKS_ENCOUNTER"; -SECTION_DEAD static char const* const stringBase_80B1E06D = "Tks"; -#pragma pop +enum J_tubo_00_RES_File_ID { + /* BMDR */ + /* 0x3 */ BMDR_J_TUBO_00 = 0x3, +}; + +enum K_tubo02_RES_File_ID { + /* BMDR */ + /* 0x3 */ BMDR_K_TUBO02 = 0x3, +}; + +enum Animation { + /* 0x00 */ ANM_NONE, + /* 0x01 */ ANM_F_TALK_A, + /* 0x02 */ ANM_WAIT_A, + /* 0x03 */ ANM_WALK_A, + /* 0x04 */ ANM_HIDE, + /* 0x05 */ ANM_SHOW_UP, + /* 0x06 */ ANM_SHOW_UP_WAIT, + /* 0x07 */ ANM_LOOKAROUND_A, + /* 0x08 */ ANM_LOOKAROUND_B, + /* 0x09 */ ANM_IN, + /* 0x0A */ ANM_SHAKE, + /* 0x0B */ ANM_FALL, + /* 0x0C */ ANM_LAND, + /* 0x0D */ ANM_TUBO_HIDE, + /* 0x0E */ ANM_TUBO_SHOW_UP, + /* 0x0F */ ANM_TUBO_IN, + /* 0x10 */ ANM_TUBO_SHAKE, + /* 0x11 */ ANM_JUMP_S, + /* 0x12 */ ANM_FLY, + /* 0x13 */ ANM_JUMP_E, + /* 0x14 */ ANM_RUN, + /* 0x15 */ ANM_SWIM, +}; + +enum Motion { + /* 0x0 */ MOT_WAIT_A, + /* 0x1 */ MOT_SWIM, + /* 0x2 */ MOT_RUN, + /* 0x3 */ MOT_WALK_A, + /* 0x4 */ MOT_JUMP_S, + /* 0x5 */ MOT_JUMP_E, + /* 0x6 */ MOT_LAND, + /* 0x7 */ MOT_WALK_A_LOOP, +}; + +enum Expression { + /* 0x0 */ EXPR_TALK_A, + /* 0x1 */ EXPR_NONE, +}; + +enum Expression_BTP { + /* 0x0 */ EXPR_BTP_TKS, +}; + +enum Joint { + /* 0x00 */ JNT_CENTER, + /* 0x01 */ JNT_ARML1, + /* 0x02 */ JNT_ARML2, + /* 0x03 */ JNT_HANDL, + /* 0x04 */ JNT_TUBASAL, + /* 0x05 */ JNT_ARMR1, + /* 0x06 */ JNT_ARMR2, + /* 0x07 */ JNT_HANDR, + /* 0x08 */ JNT_TUBASAR, + /* 0x09 */ JNT_LEGL, + /* 0x0A */ JNT_FOOTL1, + /* 0x0B */ JNT_FOOTL2, + /* 0x0C */ JNT_LEGR, + /* 0x0D */ JNT_FOOTR1, + /* 0x0E */ JNT_FOOTR2, + /* 0x0F */ JNT_NECK1, + /* 0x10 */ JNT_NECK2, + /* 0x11 */ JNT_HEAD, + /* 0x12 */ JNT_CHIN, + /* 0x13 */ JNT_MOUTH, +}; + +enum RES_Name { + /* 0x0 */ TKS, + /* 0x1 */ J_TUBO_00, + /* 0x2 */ K_TUBO02, +}; + +/* 80B1E554-80B1E558 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ +static daNpcTks_Param_c l_HIO; /* 80B1E104-80B1E1B4 000020 00B0+00 1/2 0/0 0/0 .data l_bckGetParamList */ -SECTION_DATA static u8 l_bckGetParamList[176] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x02, +static daNpc_GetParam3 l_bckGetParamList[22] = { + {-1, J3DFrameCtrl::EMode_LOOP}, + {BCK_TKS_F_TALK_A, J3DFrameCtrl::EMode_NONE}, + {BCK_TKS_WAIT_A, J3DFrameCtrl::EMode_LOOP}, + {BCK_TKS_WALK_A, J3DFrameCtrl::EMode_LOOP}, + {BCK_TKS_HIDE, J3DFrameCtrl::EMode_LOOP}, + {BCK_TKS_SHOW_UP, J3DFrameCtrl::EMode_NONE}, + {BCK_TKS_SHOW_UP_WAIT, J3DFrameCtrl::EMode_LOOP}, + {BCK_TKS_LOOKAROUND_A, J3DFrameCtrl::EMode_NONE}, + {BCK_TKS_LOOKAROUND_B, J3DFrameCtrl::EMode_NONE}, + {BCK_TKS_IN, J3DFrameCtrl::EMode_NONE}, + {BCK_TKS_SHAKE, J3DFrameCtrl::EMode_NONE}, + {BCK_TKS_FALL, J3DFrameCtrl::EMode_LOOP}, + {BCK_TKS_LAND, J3DFrameCtrl::EMode_NONE}, + {BCK_TKS_TUBO_HIDE, J3DFrameCtrl::EMode_LOOP}, + {BCK_TKS_TUBO_SHOW_UP, J3DFrameCtrl::EMode_NONE}, + {BCK_TKS_TUBO_IN, J3DFrameCtrl::EMode_NONE}, + {BCK_TKS_TUBO_SHAKE, J3DFrameCtrl::EMode_NONE}, + {BCK_TKS_JUMP_S, J3DFrameCtrl::EMode_NONE}, + {BCK_TKS_FLY, J3DFrameCtrl::EMode_LOOP}, + {BCK_TKS_JUMP_E, J3DFrameCtrl::EMode_NONE}, + {BCK_TKS_RUN, J3DFrameCtrl::EMode_LOOP}, + {BCK_TKS_SWIM, J3DFrameCtrl::EMode_LOOP}, }; /* 80B1E1B4-80B1E1BC 0000D0 0008+00 1/1 0/0 0/0 .data l_btpGetParamList */ -SECTION_DATA static u8 l_btpGetParamList[8] = { - 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x02, +static daNpc_GetParam3 l_btpGetParamList[1] = { + {BTP_TKS, J3DFrameCtrl::EMode_LOOP}, }; /* 80B1E1BC-80B1E1C4 0000D8 0008+00 1/2 0/0 0/0 .data l_btkGetParamList */ -SECTION_DATA static u8 l_btkGetParamList[8] = { - 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x02, +static daNpc_GetParam3 l_btkGetParamList[1] = { + {BTK_TKS, J3DFrameCtrl::EMode_LOOP}, }; /* 80B1E1C4-80B1E1D0 0000E0 000C+00 1/0 0/0 0/0 .data l_loadRes_TKS0 */ -SECTION_DATA static u8 l_loadRes_TKS0[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, +static int l_loadRes_TKS0[3] = { + TKS, J_TUBO_00, -1, }; /* 80B1E1D0-80B1E1DC 0000EC 000C+00 1/0 0/0 0/0 .data l_loadRes_TKS1 */ -SECTION_DATA static u8 l_loadRes_TKS1[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, +static int l_loadRes_TKS1[3] = { + TKS, K_TUBO02, -1, }; /* 80B1E1DC-80B1E1E8 0000F8 000C+00 1/0 0/0 0/0 .data l_loadRes_TKS2 */ -SECTION_DATA static u8 l_loadRes_TKS2[12] = { - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +static int l_loadRes_TKS2[3] = { + TKS, -1, -1, }; /* 80B1E1E8-80B1E1F4 -00001 000C+00 2/2 0/0 0/0 .data l_loadRes_list */ -SECTION_DATA static void* l_loadRes_list[3] = { - (void*)&l_loadRes_TKS0, - (void*)&l_loadRes_TKS1, - (void*)&l_loadRes_TKS2, +static int* l_loadRes_list[3] = { + l_loadRes_TKS0, + l_loadRes_TKS1, + l_loadRes_TKS2, }; /* 80B1E1F4-80B1E200 -00001 000C+00 3/3 0/0 0/0 .data l_arcNames */ -SECTION_DATA static void* l_arcNames[3] = { - (void*)&d_a_npc_tks__stringBase0, - (void*)(((char*)&d_a_npc_tks__stringBase0) + 0x4), - (void*)(((char*)&d_a_npc_tks__stringBase0) + 0xE), +static char* l_arcNames[3] = { + "TKS", + "J_tubo_00", + "K_tubo02", }; /* 80B1E200-80B1E208 -00001 0008+00 0/0 0/0 0/0 .data l_evtNames */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_evtNames[2] = { - (void*)NULL, - (void*)(((char*)&d_a_npc_tks__stringBase0) + 0x17), +static char* l_evtNames[2] = { + NULL, + "TKS_ENCOUNTER", }; -#pragma pop /* 80B1E208-80B1E20C -00001 0004+00 9/11 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_npc_tks__stringBase0; +static char* l_arcName = "TKS"; /* 80B1E20C-80B1E210 -00001 0004+00 8/9 0/0 0/0 .data l_myName */ -SECTION_DATA static void* l_myName = (void*)(((char*)&d_a_npc_tks__stringBase0) + 0x25); +static char* l_myName = "Tks"; -/* 80B1E210-80B1E21C -00001 000C+00 0/1 0/0 0/0 .data @4682 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4682[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)damage__10daNpcTks_cFv, -}; -#pragma pop +/* 80B1462C-80B14844 0000EC 0218+00 1/1 0/0 0/0 .text __ct__10daNpcTks_cFv */ +daNpcTks_c::daNpcTks_c() {} -/* 80B1E21C-80B1E228 -00001 000C+00 0/1 0/0 0/0 .data @4685 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4685[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)broken__10daNpcTks_cFv, -}; -#pragma pop +/* 80B14844-80B14AF8 000304 02B4+00 1/0 0/0 0/0 .text __dt__10daNpcTks_cFv */ +daNpcTks_c::~daNpcTks_c() { + for (int i = 0; l_loadRes_list[mTksTsubo.mTsuboType][i] >= 0; i++) { + dComIfG_resDelete(&mPhases[i], l_arcNames[l_loadRes_list[mTksTsubo.mTsuboType][i]]); + } -/* 80B1E228-80B1E234 -00001 000C+00 0/1 0/0 0/0 .data @4690 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4690[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_appear__10daNpcTks_cFv, -}; -#pragma pop + if (heap != NULL) { + mpMorf->stopZelAnime(); + } -/* 80B1E234-80B1E240 -00001 000C+00 0/1 0/0 0/0 .data @4849 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4849[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitNude__10daNpcTks_cFv, -}; -#pragma pop + if (parentActorID != fpcM_ERROR_PROCESS_ID_e) { + fopAcM_delete(parentActorID); + } +} -/* 80B1E240-80B1E24C -00001 000C+00 0/1 0/0 0/0 .data @4852 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4852[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)hide__10daNpcTks_cFv, -}; -#pragma pop - -/* 80B1E24C-80B1E258 -00001 000C+00 0/1 0/0 0/0 .data @4855 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4855[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_scannon__10daNpcTks_cFv, -}; -#pragma pop - -/* 80B1E258-80B1E264 -00001 000C+00 0/1 0/0 0/0 .data @4858 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4858[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_Lv6Gate__10daNpcTks_cFv, -}; -#pragma pop - -/* 80B1E264-80B1E270 -00001 000C+00 0/1 0/0 0/0 .data @4861 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4861[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_farewell__10daNpcTks_cFv, -}; -#pragma pop - -/* 80B1E270-80B1E27C -00001 000C+00 0/1 0/0 0/0 .data @4864 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4864[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_warpBack__10daNpcTks_cFv, -}; -#pragma pop - -/* 80B1E27C-80B1E288 -00001 000C+00 0/1 0/0 0/0 .data @4875 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4875[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_Lv3PickUp__10daNpcTks_cFv, -}; -#pragma pop - -/* 80B1E288-80B1E294 -00001 000C+00 0/1 0/0 0/0 .data @4878 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4878[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_walkBack__10daNpcTks_cFv, -}; -#pragma pop - -/* 80B1E294-80B1E2A0 -00001 000C+00 0/1 0/0 0/0 .data @4881 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4881[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitLv6__10daNpcTks_cFv, -}; -#pragma pop - -/* 80B1E2A0-80B1E2AC -00001 000C+00 0/1 0/0 0/0 .data @4884 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4884[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_Lv7Start__10daNpcTks_cFv, -}; -#pragma pop - -/* 80B1E2AC-80B1E2B8 -00001 000C+00 0/1 0/0 0/0 .data @4887 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4887[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_Lv3PickUp__10daNpcTks_cFv, -}; -#pragma pop - -/* 80B1E2B8-80B1E2C4 -00001 000C+00 0/1 0/0 0/0 .data @4890 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4890[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo_Lv6PickUp__10daNpcTks_cFv, -}; -#pragma pop - -/* 80B1E2C4-80B1E2D0 -00001 000C+00 1/1 0/0 0/0 .data @5228 */ -SECTION_DATA static void* lit_5228[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__10daNpcTks_cFv, +/* 80B1DD58-80B1DDF0 000000 0098+00 25/25 0/0 0/0 .rodata m__16daNpcTks_Param_c */ +daNpcTks_HIOParam const daNpcTks_Param_c::m = { + 90.0f, + -3.0f, + 1.0f, + 150.0f, + 255.0f, + 80.0f, + 33.0f, + 25.0f, + 0.0f, + 0.0f, + 45.0f, + -45.0f, + 30.0f, + -10.0f, + 45.0f, + -45.0f, + 0.8f, + 12.0f, + 3, + 6, + 19, + 6, + 80.0f, + 500.0f, + 300.0f, + -300.0f, + 60, + 8, + 0, + 0, + 0, + false, + false, + 0x2D, + 0x96, + 30, + 0x5A, + 1000.0f, + 500.0f, + 35.0f, + 25.0f, + 7.0f, + 2.0f, + 5.0f, }; -/* 80B1E2D0-80B1E2DC -00001 000C+00 1/1 0/0 0/0 .data @5290 */ -SECTION_DATA static void* lit_5290[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__10daNpcTks_cFv, +/* 80B14AF8-80B14ED0 0005B8 03D8+00 1/1 0/0 0/0 .text Create__10daNpcTks_cFv */ +cPhs__Step daNpcTks_c::Create() { + fopAcM_SetupActor(this, daNpcTks_c); + + if (dComIfGs_isStageBossEnemy()) { + return cPhs_ERROR_e; + } + + if (getType() == 0 || getType() == 0xFF || getType() == 6) { + if (dComIfGs_isDungeonItemWarp()) { + return cPhs_ERROR_e; + } + } else if (getType() == 3 && + /* dSv_event_flag_c::F_0267 - Temple of Time - Temple of Time clear */ + (!daNpcF_chkEvtBit(267) || + /* dSv_event_flag_c::F_0545 - Sacred Grove - Watched cutscene of Ooccoo Sr. parting (after Temple of Time) */ + daNpcF_chkEvtBit(545))) { + return cPhs_ERROR_e; + } + + if ((getType() == 0 || getType() == 0xFF) && !fopAcM_isSwitch(this, getSwitchNo())) { + mTksTsubo.mTsuboType = getTsuboType(); + } else { + mTksTsubo.mTsuboType = 2; + } + + mMessageNo = getMessageNo(); + + cPhs__Step phase = cPhs_ERROR_e; + for (int i = 0; l_loadRes_list[mTksTsubo.mTsuboType][i] >= 0; i++) { + phase = (cPhs__Step)dComIfG_resLoad(&mPhases[i], l_arcNames[l_loadRes_list[mTksTsubo.mTsuboType][i]]); + if (phase != cPhs_COMPLEATE_e) { + return phase; + } + } + + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x3870)) { + return cPhs_ERROR_e; + } + + fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -80.0f, -30.0f, -80.0f, 80.0f, 10.0f, 80.0f); + mSound.init(¤t.pos, &eyePos, 3, 1); + mTksTsubo.mSound.init(&mTksTsubo.mPos, &mTksTsubo.mPos, 3, 1); + + mAcchCir.SetWall(daNpcTks_Param_c::m.common.width, daNpcTks_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)); + mAcch.SetRoofNone(); + mAcch.CrrPos(dComIfG_Bgsp()); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); + + mCcStts.Init(daNpcTks_Param_c::m.common.weight, 0, this); + mCyl.Set(mCcDCyl); + mCyl.SetStts(&mCcStts); + mCyl.SetTgType(0); + mCyl.SetTgSPrm(0); + mCyl.SetH(daNpcTks_Param_c::m.common.height); + mCyl.SetR(daNpcTks_Param_c::m.common.width); + mTksTsubo.mCyl.Set(mCcDCyl); + mTksTsubo.mCyl.SetStts(&mCcStts); + mTksTsubo.mCyl.SetTgType(0xD8FBFDFF); + mTksTsubo.mCyl.SetTgSPrm(17); + mTksTsubo.mCyl.SetH(100.0f); + mTksTsubo.mCyl.SetR(30.0f); + + setEnvTevColor(); + setRoomNo(); + reset(); + Execute(); + } + + return phase; +} + +/* 80B14ED0-80B1521C 000990 034C+00 1/1 0/0 0/0 .text CreateHeap__10daNpcTks_cFv */ +int daNpcTks_c::CreateHeap() { + // NONMATCHING + J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_arcName, BMDR_TKS); + + JUT_ASSERT(410, 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((u32)this); + + mpMatAnm = new daNpcF_MatAnm_c(); + if (mpMatAnm == NULL) { + return 0; + } + + if (!setExpressionAnm(ANM_F_TALK_A, false)) { + return 0; + } + + setMotion(MOT_WAIT_A, -1.0f, 0); + + if (mTksTsubo.mTsuboType < 2) { + mdlData_p = static_cast(dComIfG_getObjectRes(mTksTsubo.mTsuboType != 0 ? l_arcNames[2] : l_arcNames[1], 3)); + + JUT_ASSERT(453, 0 != mdlData_p); + + mTksTsubo.mpModelMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, getTrnsfrmKeyAnmP(l_arcName, BCK_TKS_TUBO_HIDE), -1, 1.0f, 0, -1, &mTksTsubo.mSound, 0x80000, 0x11000084); + if (mTksTsubo.mpModelMorf == NULL) { + return 0; + } + } + + return 1; +} + +/* 80B153D8-80B1540C 000E98 0034+00 1/1 0/0 0/0 .text Delete__10daNpcTks_cFv */ +int daNpcTks_c::Delete() { + this->~daNpcTks_c(); + return 1; +} + +/* 80B1540C-80B15430 000ECC 0024+00 2/2 0/0 0/0 .text Execute__10daNpcTks_cFv */ +int daNpcTks_c::Execute() { + execute(); + return 1; +} + +/* 80B15430-80B1548C 000EF0 005C+00 1/1 0/0 0/0 .text Draw__10daNpcTks_cFv */ +int daNpcTks_c::Draw() { + mpMorf->getModel()->getModelData()->getMaterialNodePointer(2)->setMaterialAnm(mpMatAnm); + draw(FALSE, FALSE, daNpcTks_Param_c::m.common.real_shadow_size, NULL, FALSE); + return 1; +} + +/* 80B1548C-80B15650 000F4C 01C4+00 1/1 0/0 0/0 .text ctrlJoint__10daNpcTks_cFP8J3DJointP8J3DModel */ +int daNpcTks_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { + int jntNo = i_joint->getJntNo(); + int i_jointList[3] = {JNT_NECK1, JNT_NECK2, JNT_HEAD}; + + if (jntNo == 0) { + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_NECK1)); + mDoMtx_stack_c::multVecZero(&mLookatPos[0]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_NECK2)); + mDoMtx_stack_c::multVecZero(&mLookatPos[1]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_HEAD)); + mDoMtx_stack_c::multVecZero(&mLookatPos[2]); + } + + mDoMtx_stack_c::copy(i_model->getAnmMtx(jntNo)); + + switch (jntNo) { + case JNT_NECK1: + case JNT_NECK2: + case JNT_HEAD: + setLookatMtx(jntNo, i_jointList, daNpcTks_Param_c::m.common.neck_rotation_ratio); + break; + } + + i_model->setAnmMtx(jntNo, mDoMtx_stack_c::get()); + MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + + if ((jntNo == JNT_HEAD || jntNo == JNT_MOUTH) && (mAnmFlags & ANM_PLAY_BCK) != 0) { + J3DAnmTransform* anm = mBckAnm.getBckAnm(); + mBckAnm.changeBckOnly(mpMorf->getAnm()); + mpMorf->changeAnm(anm); + } + + return 1; +} + +/* 80B15650-80B15670 001110 0020+00 1/1 0/0 0/0 .text createHeapCallBack__10daNpcTks_cFP10fopAc_ac_c */ +int daNpcTks_c::createHeapCallBack(fopAc_ac_c* a_this) { + return static_cast(a_this)->CreateHeap(); +} + +/* 80B15670-80B156BC 001130 004C+00 2/2 0/0 0/0 .text ctrlJointCallBack__10daNpcTks_cFP8J3DJointi */ +int daNpcTks_c::ctrlJointCallBack(J3DJoint* i_joint, int param_2) { + if (param_2 == 0) { + J3DModel* model = j3dSys.getModel(); + daNpcTks_c* i_this = (daNpcTks_c*)model->getUserArea(); + + if (i_this != NULL) { + i_this->ctrlJoint(i_joint, model); + } + } + + return 1; +} + +/* 80B156BC-80B157C0 00117C 0104+00 1/0 0/0 0/0 .text setMtx__10daNpcTks_cFv */ +void daNpcTks_c::setMtx() { + J3DModel* model = mpMorf->getModel(); + + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::scaleM(scale); + model->setBaseTRMtx(mDoMtx_stack_c::get()); + model->setUserArea((u32)this); + + if (mTksTsubo.field_0x586 != 0) { + if (field_0x138a) { + mTksTsubo.mPos = current.pos; + } else { + mDoMtx_stack_c::transS(mTksTsubo.mPos); + mDoMtx_stack_c::ZXYrotM(mTksTsubo.mAngle); + } + + model = mTksTsubo.mpModelMorf->getModel(); + model->setBaseTRMtx(mDoMtx_stack_c::get()); + mTksTsubo.mpModelMorf->modelCalc(); + mTksTsubo.mpModelMorf->getModel()->getModelData()->getJointNodePointer(0)->setMtxCalc(NULL); + } + + if ((mAnmFlags & ANM_PLAY_BCK) != 0) { + mBckAnm.getBckAnm()->setFrame(mBckAnm.getFrame()); + } + + mpMorf->modelCalc(); +} + +/* 80B157C0-80B1590C 001280 014C+00 1/0 0/0 0/0 .text setExpressionAnm__10daNpcTks_cFib */ +bool daNpcTks_c::setExpressionAnm(int i_index, bool i_modify) { + mAnmFlags &= 0xFFFFE03F; + + J3DAnmTransform* i_bck = l_bckGetParamList[i_index].fileIdx >= 0 ? getTrnsfrmKeyAnmP(l_arcName, l_bckGetParamList[i_index].fileIdx) : NULL; + int i_attr = l_bckGetParamList[i_index].attr; + bool bVar1 = FALSE; + + switch (i_index) { + case ANM_NONE: + bVar1 = setExpressionBtp(EXPR_BTP_TKS); + break; + + case ANM_F_TALK_A: + bVar1 = setExpressionBtp(EXPR_BTP_TKS); + break; + + default: + i_bck = NULL; + break; + } + + if (!bVar1) { + return false; + } + + + if (i_bck == NULL) { + return true; + } + + if (setBckAnm(i_bck, 1.0f, i_attr, 0, -1, i_modify)) { + mAnmFlags |= ANM_PLAY_BCK | ANM_PAUSE_BCK; + mExpressionLoops = 0; + return true; + } + + OS_REPORT("%s: 表情Bckアニメーションの登録に失敗しました!\n", "d_a_npc_tks.cpp"); + + return false; +} + +/* 80B1590C-80B159E0 0013CC 00D4+00 1/0 0/0 0/0 .text setExpressionBtp__10daNpcTks_cFi */ +bool daNpcTks_c::setExpressionBtp(int i_index) { + J3DAnmTexPattern* i_btp = getTexPtrnAnmP(l_arcName, l_btpGetParamList[i_index].fileIdx); + int i_attr = l_btpGetParamList[i_index].attr; + + mAnmFlags &= 0xFFFFF57F; + + if (i_btp == NULL) { + return true; + } + + if (setBtpAnm(i_btp, mpMorf->getModel()->getModelData(), 1.0f, i_attr)) { + mAnmFlags |= ANM_PLAY_BTP | ANM_PAUSE_BTP; + + if (i_index == 0) { + mAnmFlags |= ANM_FLAG_800; + } + + return true; + } + + OS_REPORT("%s: 表情Btpアニメーションの登録に失敗しました!\n", "d_a_npc_tks.cpp"); + + return false; +} + +/* 80B159E0-80B15A24 0014A0 0044+00 1/0 0/0 0/0 .text setMotion__10daNpcTks_cFifi */ +void daNpcTks_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 < 8) { + mMotion = motion; + mMotionMorfOverride = i_morf; + mMotionPrevPhase = -1; + mMotionPhase = 0; + } +} + +/* 80B1C4F8-80B1CB4C 007FB8 0654+00 1/0 0/0 0/0 .text main__10daNpcTks_cFv */ +BOOL daNpcTks_c::main() { + // NONMATCHING + if (field_0x138a && mTksTsubo.mCyl.ChkTgHit()) { + if (mTksTsubo.mCyl.GetTgHitObj()->ChkAtType(AT_TYPE_BOOMERANG)) { + setAction(&daNpcTks_c::damage); + } else { + setAction(&daNpcTks_c::broken); + } + } + + if (cLib_checkBit(attention_info.flags, 0x10) && fopAcM_checkCarryNow(this)) { + setAction(&daNpcTks_c::demo_appear); + } + + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk() && mItemID != fpcM_ERROR_PROCESS_ID_e) { + dComIfGp_event_setItemPartnerId(mItemID); + mItemID = fpcM_ERROR_PROCESS_ID_e; + fopAcM_delete(this); + } + + if (mAction) { + (this->*mAction)(); + } + + playExpression(); + playMotion(); + playTsuboAnm(); + mPlayerArea = getPlayerArea(); + + return TRUE; +} + +/* 80B15A24-80B160A8 0014E4 0684+00 1/1 0/0 0/0 .text reset__10daNpcTks_cFv */ +void daNpcTks_c::reset() { + initialize(); + mpMatAnm->initialize(); + mLookat.initialize(); + + for (int i = 0; i < 1; i++) { + mActorMngr[i].initialize(); + } + + attention_info.distances[fopAc_attn_CARRY_e] = 43; + attention_info.flags = 0x10; + field_0x1370 = 0; + field_0x1374 = 0; + mAction = NULL; + mLookMode = -1; + mMode = 0; + field_0x138a = true; + mPlayerArea = -1; + scale.setall(daNpcTks_Param_c::m.common.scale); + + dKy_tevstr_init(&mTksTsubo.mTevStr, fopAcM_GetRoomNo(this), 0xFF); + setAngle(shape_angle.y); + mTksTsubo.mPos = current.pos; + mTksTsubo.mAngle = shape_angle; + speedF = 0.0f; + speed.setall(0.0f); + mItemID = fpcM_ERROR_PROCESS_ID_e; + mExpressionMorfOverride = 0.0f; + mMotionMorfOverride = 0.0f; + + switch (getType()) { + case 0: + case 255: + if (fopAcM_isSwitch(this, getSwitchNo())) { + cLib_offBit(attention_info.flags, 0x10); + field_0x138a = false; + mTksTsubo.field_0x586 = 0; + setAction(&daNpcTks_c::waitNude); + } else { + mTksTsubo.field_0x586 = 1; + setAction(&daNpcTks_c::hide); + } + break; + + case 1: { + mTksTsubo.field_0x586 = 0; + field_0x138a = false; + setAction(&daNpcTks_c::demo_scannon); + cXyz i_pos(current.pos); + i_pos.y += 60.0f; + parentActorID = fopAcM_createChild(PROC_NPC_TKC, fopAcM_GetID(this), 3, &i_pos, fopAcM_GetRoomNo(this), + &mCurAngle, NULL, -1, NULL); + break; + } + + case 2: { + mTksTsubo.field_0x586 = 0; + field_0x138a = false; + setAction(&daNpcTks_c::demo_Lv6Gate); + cXyz i_pos(current.pos); + i_pos.y += 60.0f; + parentActorID = fopAcM_createChild(PROC_NPC_TKC, fopAcM_GetID(this), 3, &i_pos, fopAcM_GetRoomNo(this), + &mCurAngle, NULL, -1, NULL); + break; + } + + case 3: { + mTksTsubo.field_0x586 = 0; + field_0x138a = false; + field_0x1370 = 10; + setAction(&daNpcTks_c::demo_farewell); + cXyz i_pos(current.pos); + csXyz i_angle(0, fopAcM_searchPlayerAngleY(this), 0); + i_pos.y += 60.0f; + parentActorID = fopAcM_createChild(PROC_NPC_TKC, fopAcM_GetID(this), 4, &i_pos, fopAcM_GetRoomNo(this), + &i_angle, NULL, -1, NULL); + break; + } + + case 4: + mTksTsubo.field_0x586 = 0; + field_0x138a = false; + setAction(&daNpcTks_c::demo_warpBack); + break; + + case 5: + mTksTsubo.field_0x586 = 0; + field_0x138a = false; + + if (strcmp(dComIfGp_getStartStageName(), "D_MN11") == 0) { + field_0x1370 = 5; + } else if (strcmp(dComIfGp_getStartStageName(), "D_MN07") == 0) { + if (fopAcM_GetPosition_p(daPy_getPlayerActorClass())->y < 7500.0f) { + field_0x1370 = 5; + } else { + field_0x1370 = 5; + setAction(&daNpcTks_c::demo_Lv3PickUp); + break; + } + } else { + field_0x1370 = 0; + } + + setAction(&daNpcTks_c::demo_walkBack); + break; + + case 6: { + mTksTsubo.field_0x586 = 0; + field_0x138a = false; + setAction(&daNpcTks_c::waitLv6); + cXyz i_pos(current.pos); + i_pos.y += 60.0f; + parentActorID = fopAcM_createChild(PROC_NPC_TKC, fopAcM_GetID(this), 4, &i_pos, fopAcM_GetRoomNo(this), + &mCurAngle, NULL, -1, NULL); + break; + } + + case 7: + mTksTsubo.field_0x586 = 0; + field_0x138a = false; + gravity = 0.0f; + setAction(&daNpcTks_c::demo_Lv7Start); + break; + + case 8: + mTksTsubo.field_0x586 = 0; + field_0x138a = false; + setAction(&daNpcTks_c::demo_Lv3PickUp); + break; + + case 9: + mTksTsubo.field_0x586 = 0; + field_0x138a = false; + setAction(&daNpcTks_c::demo_Lv6PickUp); + break; + + default: + JUT_ASSERT(1298, 0); + break; + } +} + +/* 80B160A8-80B16148 001B68 00A0+00 1/1 0/0 0/0 .text setAction__10daNpcTks_cFM10daNpcTks_cFPCvPv_v */ +BOOL daNpcTks_c::setAction(actionFunc action) { + mMode = 3; + + if (mAction) { + (this->*mAction)(); + } + + mMode = 0; + mAction = action; + + if (mAction) { + (this->*mAction)(); + } + + return TRUE; +} + +int daNpcTks_c::getPlayerArea() { + f32 fVar3, fVar2, fVar1; + fVar1 = pow(daNpcTks_Param_c::m.area_a_dist, 2.0); + fVar2 = pow(daNpcTks_Param_c::m.area_b_dist, 2.0); + fVar3 = fopAcM_searchPlayerDistanceXZ2(this); + + if (fVar3 > 0.0f && fVar3 <= fVar2) { + return 1; + } + + if (fVar3 > fVar2 && fVar3 <= fVar1) { + return 0; + } + + return -1; }; -/* 80B1E2DC-80B1E2E8 -00001 000C+00 1/1 0/0 0/0 .data @5371 */ -SECTION_DATA static void* lit_5371[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__10daNpcTks_cFv, +void daNpcTks_c::playExpression() { + daNpcF_anmPlayData dat0 = {ANM_F_TALK_A, daNpcTks_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat0[1] = {&dat0}; + daNpcF_anmPlayData dat1 = {ANM_NONE, daNpcTks_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat1[1] = {&dat1}; + + daNpcF_anmPlayData** ppDat[2] = { + pDat0, + pDat1 + }; + + if (mExpression >= 0 && mExpression < 2) { + playExpressionAnm(ppDat); + } }; -/* 80B1E2E8-80B1E2F4 -00001 000C+00 0/1 0/0 0/0 .data @5447 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5447[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)shake__10daNpcTks_cFv, -}; -#pragma pop +void daNpcTks_c::playMotion() { + daNpcF_anmPlayData dat0 = {ANM_WAIT_A, daNpcTks_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat0[1] = {&dat0}; + daNpcF_anmPlayData dat1 = {ANM_SWIM, daNpcTks_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat1[1] = {&dat1}; + daNpcF_anmPlayData dat2 = {ANM_RUN, daNpcTks_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat2[1] = {&dat2}; + daNpcF_anmPlayData dat3 = {ANM_WALK_A, daNpcTks_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat3[1] = {&dat3}; + daNpcF_anmPlayData dat4a = {ANM_JUMP_S, 4.0f, 1}; + daNpcF_anmPlayData dat4b = {ANM_FLY, 0.0f, 0}; + daNpcF_anmPlayData* pDat4[2] = {&dat4a, &dat4b}; + daNpcF_anmPlayData dat5 = {ANM_JUMP_E, 0.0f, 1}; + daNpcF_anmPlayData* pDat5[1] = {&dat5}; + daNpcF_anmPlayData dat6a = {ANM_LAND, 0.0f, 1}; + daNpcF_anmPlayData dat6b = {ANM_WAIT_A, 4.0f, 0}; + daNpcF_anmPlayData* pDat6[2] = {&dat6a, &dat6b}; + daNpcF_anmPlayData dat7 = {ANM_WALK_A, 4.0f, 1}; + daNpcF_anmPlayData* pDat7[1] = {&dat7}; -/* 80B1E2F4-80B1E300 -00001 000C+00 0/1 0/0 0/0 .data @5454 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5454[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)shake__10daNpcTks_cFv, -}; -#pragma pop + daNpcF_anmPlayData** ppDat[8] = { + pDat0, + pDat1, + pDat2, + pDat3, + pDat4, + pDat5, + pDat6, + pDat7, + }; -/* 80B1E300-80B1E30C -00001 000C+00 0/1 0/0 0/0 .data @5457 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5457[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)showUp__10daNpcTks_cFv, -}; -#pragma pop + if (mMotion >= 0 && mMotion < 8) { + playMotionAnm(ppDat); + } +} -/* 80B1E30C-80B1E318 -00001 000C+00 0/1 0/0 0/0 .data @5462 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5462[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)shake__10daNpcTks_cFv, -}; -#pragma pop +/* 80B1CFD0-80B1D1FC 008A90 022C+00 1/1 0/0 0/0 .text lookat__10daNpcTks_cFv */ +void daNpcTks_c::lookat() { + daPy_py_c* player = NULL; + J3DModel* model = mpMorf->getModel(); + BOOL i_snap = FALSE; + f32 body_angleX_min = daNpcTks_Param_c::m.common.body_angleX_min; + f32 body_angleX_max = daNpcTks_Param_c::m.common.body_angleX_max; + f32 body_angleY_min = daNpcTks_Param_c::m.common.body_angleY_min; + f32 body_angleY_max = daNpcTks_Param_c::m.common.body_angleY_max; + f32 head_angleX_min = field_0x138a ? 0.0f : daNpcTks_Param_c::m.common.head_angleX_min; + f32 head_angleX_max = field_0x138a ? 0.0f : daNpcTks_Param_c::m.common.head_angleX_max; + f32 head_angleY_min = daNpcTks_Param_c::m.common.head_angleY_min; + f32 head_angleY_max = daNpcTks_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; -/* 80B1E318-80B1E324 -00001 000C+00 0/1 0/0 0/0 .data @5465 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5465[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)showUp__10daNpcTks_cFv, -}; -#pragma pop + switch (mLookMode) { + case LOOK_RESET: + i_snap = TRUE; + break; + + case LOOK_PLAYER: + case LOOK_PLAYER_TALK: + player = daPy_getPlayerActorClass(); -/* 80B1E324-80B1E330 -00001 000C+00 0/1 0/0 0/0 .data @5469 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5469[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)showUp__10daNpcTks_cFv, -}; -#pragma pop + if (mLookMode != LOOK_PLAYER_TALK) { + break; + } -/* 80B1E330-80B1E33C -00001 000C+00 1/1 0/0 0/0 .data @5511 */ -SECTION_DATA static void* lit_5511[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)hide__10daNpcTks_cFv, + head_angleY_min = -80.0f; + head_angleY_max = 80.0f; + break; + + case LOOK_ACTOR: + player = (daPy_py_c*)field_0x1208; + break; + + case LOOK_ATTN: + break; + } + + if (player != NULL) { + mLookPos = player->attention_info.position; + + if (mLookMode != LOOK_PLAYER && mLookMode != LOOK_PLAYER_TALK) { + mLookPos.y -= 40.0f; + } + + mLookat.setAttnPos(&mLookPos); + } else if (mLookMode == LOOK_ATTN) { + 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); +} + +void daNpcTks_c::playTsuboAnm() { + if (mTksTsubo.field_0x586 != 0) { + if ((mAnmFlags & ANM_PLAY_MORF) != 0) { + f32 playSpeed = mTksTsubo.mpModelMorf->getPlaySpeed(); + + if ((mTksTsubo.mAnmFlags & ANM_PAUSE_MORF) != 0) { + mTksTsubo.mpModelMorf->setPlaySpeed(0.0f); + mTksTsubo.mpModelMorf->play(0, 0); + mTksTsubo.mpModelMorf->setPlaySpeed(playSpeed); + } else { + mTksTsubo.mpModelMorf->play(0, 0); + } + } + + mTksTsubo.mAnmFlags &= 0xFFFFEF38; + } }; -/* 80B1E33C-80B1E348 -00001 000C+00 1/1 0/0 0/0 .data @5515 */ -SECTION_DATA static void* lit_5515[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)showUp__10daNpcTks_cFv, +BOOL daNpcTks_c::checkFindPlayer() { + f32 fVar1 = pow(daNpcTks_Param_c::m.area_a_dist, 2.0); + f32 fVar2 = fopAcM_searchPlayerDistanceXZ2(this); + mActorMngr[0].remove(); + + if (fVar2 <= fVar1) { + mActorMngr[0].entry(daPy_getPlayerActorClass()); + return TRUE; + } + + return FALSE; +} + +void daNpcTks_c::setLookMode(int i_lookMode, fopAc_ac_c* actor_p) { + if (i_lookMode >= 0 && i_lookMode < 6 && (i_lookMode != mLookMode || actor_p != field_0x1208)) { + mLookMode = i_lookMode; + field_0x1208 = actor_p; + } +} + +/* 80B16148-80B16344 001C08 01FC+00 3/0 0/0 0/0 .text wait__10daNpcTks_cFv */ +void daNpcTks_c::wait() { + switch (mMode) { + case 0: + cLib_offBit(attention_info.flags, 0x10); + setMotionAnm(ANM_WAIT_A, 0.0f); + field_0x138a = false; + speedF = 0.0f; + mMode = 2; + break; + + case 2: + if (mActorMngr[0].getActorP() != NULL) { + if (!checkFindPlayer()) { + mTurnMode = 0; + } + } else if (checkFindPlayer()) { + mTurnMode = 0; + } + + if (mActorMngr[0].getActorP() != NULL) { + setLookMode(LOOK_PLAYER, NULL); + } else { + setLookMode(LOOK_NONE, NULL); + } + break; + + case 3: + break; + + default: + JUT_ASSERT(1766, 0); + break; + } +} + +void daNpcTks_c::setTsuboMotionAnm(int i_index, f32 i_morf) { + J3DAnmTransform* i_anm = getTrnsfrmKeyAnmP(l_arcName, l_bckGetParamList[i_index].fileIdx); + int i_attr = l_bckGetParamList[i_index].attr; + + mTksTsubo.mAnmFlags &= 0xFFFFFFF6; + + if (i_anm != NULL) { + mTksTsubo.mpModelMorf->setAnm(i_anm, i_attr, i_morf, 1.0f, 0.0f, -1.0f); + mTksTsubo.mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF; + } +} + +/* 80B16344-80B16634 001E04 02F0+00 1/0 0/0 0/0 .text setMotionAnm__10daNpcTks_cFif */ +void daNpcTks_c::setMotionAnm(int i_index, f32 i_morf) { + if (i_index < 2 || i_index >= 0x16) { + return; + } + + J3DAnmTransformKey* i_anm = getTrnsfrmKeyAnmP(l_arcName, l_bckGetParamList[i_index].fileIdx); + int i_attr = l_bckGetParamList[i_index].attr; + + mAnmFlags &= 0xFFFFFFE4; + + if (i_anm != NULL && setMcaMorfAnm(i_anm, 1.0f, i_morf, i_attr, 0, -1)) { + mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF; + mMotionLoops = 0; + + if (i_index == ANM_RUN) { + mpMorf->setPlaySpeed(speedF / daNpcTks_Param_c::m.walk_spd); + } else { + mpMorf->setPlaySpeed(1.0f); + } + + if (field_0x138a) { + switch (i_index) { + case ANM_SHOW_UP: + setTsuboMotionAnm(ANM_TUBO_SHOW_UP, i_morf); + break; + + case ANM_IN: + setTsuboMotionAnm(ANM_TUBO_IN, i_morf); + break; + + case ANM_SHAKE: + setTsuboMotionAnm(ANM_TUBO_SHAKE, i_morf); + break; + + default: + setTsuboMotionAnm(ANM_TUBO_HIDE, i_morf); + break; + } + } + } + + J3DAnmTextureSRTKey* i_btk = getTexSRTKeyAnmP(l_arcName, l_btkGetParamList[0].fileIdx); + i_attr = l_btkGetParamList[0].attr; + + if (i_btk != NULL) { + if (setBtkAnm(i_btk, mpMorf->getModel()->getModelData(), 1.0f, i_attr)) { + mAnmFlags |= ANM_PLAY_BTK | ANM_PAUSE_BTK; + } + } +} + +/* 80B16634-80B1682C 0020F4 01F8+00 2/0 0/0 0/0 .text waitNude__10daNpcTks_cFv */ +void daNpcTks_c::waitNude() { + switch (mMode) { + case 0: + cLib_offBit(attention_info.flags, 0x10); + setMotionAnm(ANM_WAIT_A, 0.0f); + field_0x138a = false; + speedF = 0.0f; + mMode = 2; + break; + + case 2: { + f32 fVar1 = current.pos.y - fopAcM_GetPosition_p(daPy_getPlayerActorClass())->y; + + if (fVar1 > -200.0f && fVar1 < 150.0f && fopAcM_searchPlayerDistanceXZ(this) <= 300.0f) { + if (!fopAcM_otherBgCheck(this, daPy_getPlayerActorClass())) { + eventInfo.onCondition(dEvtCmd_INTALK_e); + fopAcM_orderSpeakEvent(this, 0, 0); + } + } + + if (dComIfGp_event_runCheck() && eventInfo.checkCommandTalk()) { + dComIfGs_onDungeonItemWarp(); + + if (getTBoxNo() != 0xFF) { + dComIfGs_onTbox(getTBoxNo()); + } + + Z2GetAudioMgr()->subBgmStart(Z2BGM_OBACHAN); + setAction(&daNpcTks_c::talk); + } + break; + } + + case 3: + break; + + default: + JUT_ASSERT(1805, 0); + break; + } +} + +/* 80B1682C-80B16B74 0022EC 0348+00 1/0 0/0 0/0 .text waitLv6__10daNpcTks_cFv */ +void daNpcTks_c::waitLv6() { + switch (mMode) { + case 0: + cLib_offBit(attention_info.flags, 0x10); + setMotionAnm(ANM_WAIT_A, 0.0f); + field_0x138a = false; + speedF = 0.0f; + mMode = 2; + break; + + case 2: + if (mActorMngr[0].getActorP() != NULL) { + if (!checkFindPlayer()) { + mTurnMode = 0; + } + } else if (checkFindPlayer()) { + mTurnMode = 0; + } + + if (mActorMngr[0].getActorP() != NULL) { + setLookMode(LOOK_PLAYER, NULL); + } else { + setLookMode(LOOK_NONE, NULL); + } + + if (current.pos.y - fopAcM_GetPosition_p(daPy_getPlayerActorClass())->y < 100.0f && fopAcM_searchPlayerDistanceXZ(this) <= 400.0f) { + attention_info.flags = 10; + eventInfo.onCondition(dEvtCmd_INTALK_e); + fopAcM_orderSpeakEvent(this, 0, 0); + } + + if (dComIfGp_event_runCheck() && eventInfo.checkCommandTalk()) { + dComIfGs_onDungeonItemWarp(); + + if (getTBoxNo() != 0xFF) { + dComIfGs_onTbox(getTBoxNo()); + } + + Z2GetAudioMgr()->subBgmStart(Z2BGM_OBACHAN); + setAction(&daNpcTks_c::talk); + } + break; + + case 3: + break; + + default: + JUT_ASSERT(1858, 0); + break; + } +} + +void daNpcTks_c::setExpressionTalkAfter() { + setExpression(EXPR_NONE, -1.0f); +} + +BOOL daNpcTks_c::step(s16 i_turnTargetAngle, int param_2) { + if (mTurnMode == 0) { + if (param_2 != 0) { + if ((int)fabsf(cM_sht2d((s16)(i_turnTargetAngle - mCurAngle.y))) > 40) { + setExpression(EXPR_NONE, -1.0f); + setMotion(MOT_WALK_A_LOOP, -1.0f, 0); + } + } + + mTurnTargetAngle = i_turnTargetAngle; + mTurnAmount = 0; + + if (mCurAngle.y == mTurnTargetAngle) { + mTurnMode++; + } + + current.angle.y = mCurAngle.y; + shape_angle.y = current.angle.y; + mTurnMode++; + } else if (mTurnMode == 1) { + if (turn(mTurnTargetAngle, 15.0f, 0)) { + shape_angle.y = current.angle.y; + mCurAngle.y = current.angle.y; + mOldAngle.y = current.angle.y; + mTurnMode++; + } else { + shape_angle.y = current.angle.y; + mCurAngle.y = current.angle.y; + } + } + + return mTurnMode > 1; }; -/* 80B1E348-80B1E354 -00001 000C+00 1/1 0/0 0/0 .data @5544 */ -SECTION_DATA static void* lit_5544[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)showUpWait__10daNpcTks_cFv, -}; +/* 80B16B74-80B16FDC 002634 0468+00 2/0 0/0 0/0 .text talk__10daNpcTks_cFv */ +void daNpcTks_c::talk() { + switch (mMode) { + case 0: + setMotion(MOT_WAIT_A, -1.0f, 0); + initTalk(mMessageNo, NULL); + mMsgTimer = 0; + mTurnMode = 0; + setLookMode(LOOK_PLAYER_TALK, NULL); + mMode = 2; + break; -/* 80B1E354-80B1E360 -00001 000C+00 0/1 0/0 0/0 .data @5573 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5573[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)lookAroundA__10daNpcTks_cFv, -}; -#pragma pop + case 2: { + if (mCurAngle.y == fopAcM_searchPlayerAngleY(this)) { + if (talkProc(NULL, TRUE, NULL)) { + mActorMngr[0].entry(daPy_getPlayerActorClass()); + int itemNo = 0; -/* 80B1E360-80B1E36C -00001 000C+00 0/1 0/0 0/0 .data @5576 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5576[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)lookAroundB__10daNpcTks_cFv, -}; -#pragma pop + OS_REPORT("会話終了時 イベントID=%d アイテムNo=%d\n", mFlow.getEventId(&itemNo), itemNo); + + if (mFlow.getEventId(&itemNo) == 1) { + mItemID = fopAcM_createItemForPresentDemo(¤t.pos, itemNo, 0, -1, -1, NULL, NULL); -/* 80B1E36C-80B1E378 -00001 000C+00 0/1 0/0 0/0 .data @5581 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5581[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)lookAroundA__10daNpcTks_cFv, -}; -#pragma pop + if (mItemID != fpcM_ERROR_PROCESS_ID_e) { + const char* eventName = daPy_py_c::checkNowWolf() ? "WOLF_GET_TKS" : "DEFAULT_GETITEM"; + s16 eventIdx = dComIfGp_getEventManager().getEventIdx(this, eventName, 0xFF); + dComIfGp_getEvent().reset(this); + fopAcM_orderChangeEventId(this, eventIdx, 1, 0xFFFF); + } + } -/* 80B1E378-80B1E384 -00001 000C+00 0/1 0/0 0/0 .data @5584 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5584[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)lookAroundB__10daNpcTks_cFv, -}; -#pragma pop + setAction(&daNpcTks_c::wait); + } else { + int msgTimer = mMsgTimer; + int i_expression, i_motion; -/* 80B1E384-80B1E390 -00001 000C+00 0/1 0/0 0/0 .data @5587 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5587[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)in__10daNpcTks_cFv, -}; -#pragma pop + if (ctrlMsgAnm(i_expression, i_motion, this, FALSE)) { + setExpression(i_expression, -1.0f); + setMotion(i_motion, -1.0f, 0); + } else if (msgTimer != 0 && mMsgTimer == 0) { + setExpressionTalkAfter(); + } + } + } else if (step(fopAcM_searchPlayerAngleY(this), 1)) { + setMotion(MOT_WAIT_A, -1.0f, 0); + mTurnMode = 0; + } + break; + } -/* 80B1E390-80B1E39C -00001 000C+00 0/1 0/0 0/0 .data @5591 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5591[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)in__10daNpcTks_cFv, -}; -#pragma pop + case 3: + break; -/* 80B1E39C-80B1E3A8 -00001 000C+00 1/1 0/0 0/0 .data @5632 */ -SECTION_DATA static void* lit_5632[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)showUpWait__10daNpcTks_cFv, -}; + default: + JUT_ASSERT(1920, 0); + break; + } +} -/* 80B1E3A8-80B1E3B4 -00001 000C+00 1/1 0/0 0/0 .data @5636 */ -SECTION_DATA static void* lit_5636[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)in__10daNpcTks_cFv, -}; +/* 80B16FDC-80B17008 002A9C 002C+00 1/0 0/0 0/0 .text setExpression__10daNpcTks_cFif */ +void daNpcTks_c::setExpression(int i_expression, f32 i_morf) { + if (i_expression >= 0 && i_expression < 2) { + mExpression = i_expression; + mExpressionMorfOverride = i_morf; + mExpressionPrevPhase = -1; + mExpressionPhase = 0; + } +} -/* 80B1E3B4-80B1E3C0 -00001 000C+00 1/1 0/0 0/0 .data @5665 */ -SECTION_DATA static void* lit_5665[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)showUpWait__10daNpcTks_cFv, -}; +/* 80B17008-80B17420 002AC8 0418+00 4/0 0/0 0/0 .text hide__10daNpcTks_cFv */ +void daNpcTks_c::hide() { + switch (mMode) { + case 0: + setMotionAnm(ANM_HIDE, 0.0f); + field_0x138a = true; + field_0x1370 = cLib_getRndValue(daNpcTks_Param_c::m.hide_time_1, daNpcTks_Param_c::m.hide_time_2 - daNpcTks_Param_c::m.hide_time_1); + speedF = 0.0f; + mMode = 2; + break; -/* 80B1E3C0-80B1E3CC -00001 000C+00 1/1 0/0 0/0 .data @5669 */ -SECTION_DATA static void* lit_5669[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)in__10daNpcTks_cFv, -}; + case 2: { + int iVar1 = --field_0x1370; + if (iVar1 <= 0) { + if (mPlayerArea == 1) { + setAction(&daNpcTks_c::shake); + } else if (mPlayerArea == 0) { + if (cLib_getRndValue(0, 2) == 0) { + setAction(&daNpcTks_c::shake); + } else { + setAction(&daNpcTks_c::showUp); + } + } else { + if (cLib_getRndValue(0, 2) == 0) { + setAction(&daNpcTks_c::shake); + } else { + setAction(&daNpcTks_c::showUp); + } + } + } -/* 80B1E3CC-80B1E3D8 -00001 000C+00 1/1 0/0 0/0 .data @5698 */ -SECTION_DATA static void* lit_5698[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)hide__10daNpcTks_cFv, -}; + if (mPlayerArea == 0) { + setAction(&daNpcTks_c::showUp); + } + break; + } -/* 80B1E3D8-80B1E3E4 -00001 000C+00 1/1 0/0 0/0 .data @5726 */ -SECTION_DATA static void* lit_5726[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)hide__10daNpcTks_cFv, -}; + case 3: + break; -/* 80B1E3E4-80B1E3F0 -00001 000C+00 1/1 0/0 0/0 .data @5775 */ -SECTION_DATA static void* lit_5775[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitNude__10daNpcTks_cFv, -}; + default: + JUT_ASSERT(1960, 0); + break; + } +} -/* 80B1E3F0-80B1E3FC -00001 000C+00 0/1 0/0 0/0 .data @5860 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5860[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__10daNpcTks_cFv, -}; -#pragma pop +/* 80B17420-80B175F4 002EE0 01D4+00 3/0 0/0 0/0 .text shake__10daNpcTks_cFv */ +void daNpcTks_c::shake() { + switch (mMode) { + case 0: + setMotionAnm(ANM_SHAKE, 0.0f); + field_0x138a = true; + speedF = 0.0f; + mMode = 2; + break; + + case 2: + if (mpMorf->isStop()) { + setAction(&daNpcTks_c::hide); + } -/* 80B1E3FC-80B1E408 -00001 000C+00 0/1 0/0 0/0 .data @5870 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5870[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__10daNpcTks_cFv, -}; -#pragma pop + if (mPlayerArea == 0) { + setAction(&daNpcTks_c::showUp); + } + break; + + case 3: + break; + + default: + JUT_ASSERT(1986, 0); + break; + } +} + +/* 80B175F4-80B17734 0030B4 0140+00 4/0 0/0 0/0 .text showUp__10daNpcTks_cFv */ +void daNpcTks_c::showUp() { + switch (mMode) { + case 0: + setMotionAnm(ANM_SHOW_UP, 0.0f); + field_0x138a = true; + speedF = 0.0f; + mMode = 2; + break; + + case 2: + if (mpMorf->isStop()) { + setAction(&daNpcTks_c::showUpWait); + } + break; + + case 3: + break; + + default: + JUT_ASSERT(2011, 0); + break; + } +} + +/* 80B17734-80B17B70 0031F4 043C+00 3/0 0/0 0/0 .text showUpWait__10daNpcTks_cFv */ +void daNpcTks_c::showUpWait() { + switch (mMode) { + case 0: + setMotionAnm(ANM_SHOW_UP_WAIT, 0.0f); + field_0x138a = true; + field_0x1370 = cLib_getRndValue(daNpcTks_Param_c::m.show_up_wait_time_1, daNpcTks_Param_c::m.show_up_wait_time_2 - daNpcTks_Param_c::m.show_up_wait_time_1); + speedF = 0.0f; + mMode = 2; + break; + + case 2: { + int iVar1 = --field_0x1370; + + if (iVar1 <= 0) { + if (mPlayerArea == 0) { + switch (cLib_getRndValue(0, 2)) { + case 0: + setAction(&daNpcTks_c::lookAroundA); + break; + + case 1: + setAction(&daNpcTks_c::lookAroundB); + break; + } + } else { + switch (cLib_getRndValue(0, 3)) { + case 0: + setAction(&daNpcTks_c::lookAroundA); + break; + + case 1: + setAction(&daNpcTks_c::lookAroundB); + break; + + case 2: + setAction(&daNpcTks_c::in); + break; + } + } + } + + if (mPlayerArea == 1) { + setAction(&daNpcTks_c::in); + } + break; + } + + case 3: + break; + + default: + JUT_ASSERT(2056, 0); + break; + } +} + +/* 80B17B70-80B17D44 003630 01D4+00 2/0 0/0 0/0 .text lookAroundA__10daNpcTks_cFv */ +void daNpcTks_c::lookAroundA() { + switch (mMode) { + case 0: + setMotionAnm(ANM_LOOKAROUND_A, 0.0f); + field_0x138a = true; + speedF = 0.0f; + mMode = 2; + break; + + case 2: + if (mpMorf->isStop()) { + setAction(&daNpcTks_c::showUpWait); + } + + if (mPlayerArea == 1) { + setAction(&daNpcTks_c::in); + } + break; + + case 3: + break; + + default: + JUT_ASSERT(2082, 0); + break; + } +} + +/* 80B17D44-80B17F18 003804 01D4+00 2/0 0/0 0/0 .text lookAroundB__10daNpcTks_cFv */ +void daNpcTks_c::lookAroundB() { + switch (mMode) { + case 0: + setMotionAnm(ANM_LOOKAROUND_B, 0.0f); + field_0x138a = true; + speedF = 0.0f; + mMode = 2; + break; + + case 2: + if (mpMorf->isStop()) { + setAction(&daNpcTks_c::showUpWait); + } + + if (mPlayerArea == 1) { + setAction(&daNpcTks_c::in); + } + break; + + case 3: + break; + + default: + JUT_ASSERT(2082, 0); + break; + } +} + +/* 80B17F18-80B18070 0039D8 0158+00 4/0 0/0 0/0 .text in__10daNpcTks_cFv */ +void daNpcTks_c::in() { + switch (mMode) { + case 0: + setMotionAnm(ANM_IN, 0.0f); + setLookMode(LOOK_NONE, NULL); + field_0x138a = true; + mMode = 2; + break; + + case 2: + if (mpMorf->isStop()) { + setAction(&daNpcTks_c::hide); + } + break; + + case 3: + break; + + default: + JUT_ASSERT(2133, 0); + break; + } +} + +/* 80B18070-80B181EC 003B30 017C+00 1/0 0/0 0/0 .text damage__10daNpcTks_cFv */ +void daNpcTks_c::damage() { + switch (mMode) { + case 0: + setMotionAnm(ANM_SHAKE, 0.0f); + cLib_offBit(attention_info.flags, 0x10); + field_0x138a = true; + speedF = 0.0f; + mMode = 2; + break; + + case 2: + if (mpMorf->isStop()) { + setAction(&daNpcTks_c::hide); + } + + if (mTksTsubo.mCyl.ChkTgHit()) { + mMode = 0; + } + break; + + case 3: + cLib_onBit(attention_info.flags, 0x10); + break; + + default: + JUT_ASSERT(2162, 0); + break; + } +} + +/* 80B181EC-80B183E8 003CAC 01FC+00 1/0 0/0 0/0 .text broken__10daNpcTks_cFv */ +void daNpcTks_c::broken() { + switch (mMode) { + case 0: + setMotionAnm(ANM_FALL, 0); + + if (mTksTsubo.mTsuboType != 0) { + daObj::make_eff_break_kotubo2(this); + } else { + daObj::make_eff_break_kotubo(this); + } + + mTksTsubo.mSound.startCreatureSound(Z2SE_TKS_V_OUT_OF_POT, 0, -1); + cLib_offBit(attention_info.flags, 0x10); + field_0x138a = false; + mTksTsubo.field_0x586 = 0; + fopAcM_onSwitch(this, getSwitchNo()); + speedF = 0.0f; + speed.y = daNpcTks_Param_c::m.launch_spd; + mMode = 2; + break; + + case 2: + if (mAcch.ChkGroundLanding()) { + setMotion(MOT_LAND, -1.0f, 0); + } else if (mAcch.ChkGroundHit() && mpMorf->isStop()) { + setAction(&daNpcTks_c::waitNude); + } + break; + + case 3: + break; + + default: + JUT_ASSERT(2199, 0); + } +} + +/* 80B183E8-80B18D44 003EA8 095C+00 1/0 0/0 0/0 .text demo_appear__10daNpcTks_cFv */ +void daNpcTks_c::demo_appear() { + switch (mMode) { + case 0: + eventInfo.setArchiveName(l_arcName); + mEventIdx = dComIfGp_getEventManager().getEventIdx(this, "TKS_ENCOUNTER", 0xFF); + fopAcM_orderOtherEventId(this, mEventIdx, 0xFF, 0xFFFF, 4, 1); + cLib_offBit(attention_info.flags, 0x10); + setExpression(EXPR_NONE, -1.0f); + setMotionAnm(ANM_HIDE, 0.0f); + mMode = 2; + // fallthrough + case 2: + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + s32 staffId = eventManager.getMyStaffId(l_myName, NULL, 0); + if (staffId != -1) { + if (!dComIfGs_isDungeonItemWarp()) { + dComIfGs_onDungeonItemWarp(); + + if (getTBoxNo() != 0xFF) { + dComIfGs_onTbox(getTBoxNo()); + } + + Z2GetAudioMgr()->bgmAllMute(60, 0.0f); + } + + int* cutName = (int*)eventManager.getMyNowCutName(staffId); + + if (eventManager.getIsAddvance(staffId)) { + switch (*cutName) { + case '0001': + break; + + case '0002': + setMotionAnm(ANM_SHAKE, 0.0f); + break; + + case '0003': + setMotionAnm(ANM_FALL, 0.0f); + setLookMode(LOOK_NONE, NULL); + + if (mTksTsubo.mTsuboType != 0) { + daObj::make_eff_break_kotubo2(this); + } else { + daObj::make_eff_break_kotubo(this); + } + + dComIfGp_getVibration().StartShock(2, 15, cXyz(0.0f, 1.0f, 0.0f)); + mTksTsubo.mSound.startCreatureSound(Z2SE_TKS_V_OUT_OF_POT, 0, -1); + fopAcM_cancelCarryNow(this); + cLib_offBit(attention_info.flags, 0x10); + field_0x138a = false; + mTksTsubo.field_0x586 = 0; + speedF = daNpcTks_Param_c::m.movement_spd; + speed.y = daNpcTks_Param_c::m.launch_spd; + break; + + case '0004': + setLookMode(LOOK_PLAYER, NULL); + mTurnMode = 0; + Z2GetAudioMgr()->subBgmStart(Z2BGM_OBACHAN); + Z2GetAudioMgr()->bgmAllUnMute(0); + break; + + case '0005': + initTalk(mMessageNo, NULL); + mMsgTimer = 0; + setLookMode(LOOK_PLAYER_TALK, NULL); + break; + + default: + JUT_ASSERT(2277, 0); + break; + } + } + + int msgTimer = mMsgTimer; + int i_expression, i_motion; + + if (ctrlMsgAnm(i_expression, i_motion, this, TRUE)) { + setExpression(i_expression, -1.0f); + setMotion(i_motion, -1.0f, 0); + } else if (msgTimer != 0 && mMsgTimer == 0) { + setExpressionTalkAfter(); + } + + switch (*cutName) { + case '0001': + eventManager.cutEnd(staffId); + break; + + case '0002': + if (mpMorf->isStop()) { + eventManager.cutEnd(staffId); + } + break; + + case '0003': + setAngle(shape_angle.y); + mTksTsubo.mAngle = shape_angle; + + if (mAcch.ChkGroundLanding()) { + speedF = 0.0f; + setMotion(MOT_LAND, -1.0f, 0); + } else if (mAcch.ChkGroundHit() && mMotionPhase > 0) { + setMotionAnm(ANM_WAIT_A, 0.0f); + eventManager.cutEnd(staffId); + } + break; + + case '0004': + if (step(fopAcM_searchPlayerAngleY(this), 1)) { + setMotionAnm(ANM_WAIT_A, 0.0f); + eventManager.cutEnd(staffId); + } + break; + + case '0005': + if (talkProc(NULL, TRUE, NULL)) { + mActorMngr[0].entry(daPy_getPlayerActorClass()); + int itemNo = 0; + + OS_REPORT("会話終了時 イベントID=%d アイテムNo=%d\n", mFlow.getEventId(&itemNo), itemNo); + + if (mFlow.getEventId(&itemNo) == 1) { + mItemID = fopAcM_createItemForPresentDemo(¤t.pos, itemNo, 0, -1, -1, NULL, NULL); + + if (mItemID != fpcM_ERROR_PROCESS_ID_e) { + s16 eventIdx = dComIfGp_getEventManager().getEventIdx(this, "DEFAULT_GETITEM", 0xFF); + dComIfGp_getEvent().reset(this); + fopAcM_orderChangeEventId(this, eventIdx, 1, 0xFFFF); + field_0x9ec = true; + } + } + + setAction(&daNpcTks_c::wait); + eventManager.cutEnd(staffId); + } + break; + + default: + JUT_ASSERT(2339, 0); + break; + } + + if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager.endCheck(mEventIdx) != 0) { + if (!field_0x9ec) { + dComIfGp_event_reset(); + } + + mEventIdx = -1; + setAction(&daNpcTks_c::wait); + } + } + } + break; + + case 3: + break; + + default: + JUT_ASSERT(2356, 0); + } +} + +/* 80B18D44-80B1926C 004804 0528+00 1/0 0/0 0/0 .text demo_scannon__10daNpcTks_cFv */ +void daNpcTks_c::demo_scannon() { + switch (mMode) { + case 0: + cLib_offBit(attention_info.flags, 0x10); + setExpression(EXPR_NONE, -1.0f); + setMotion(MOT_WAIT_A, -1.0f, 0); + field_0x138a = false; + mMode = 2; + // fallthrough + case 2: + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + s32 staffId = eventManager.getMyStaffId(l_myName, NULL, 0); + + if (staffId != -1) { + int* cutName = (int*)eventManager.getMyNowCutName(staffId); + + if (eventManager.getIsAddvance(staffId)) { + switch (*cutName) { + case '0001': + break; + + case '0002': + old.pos.set(-98491.23f, -18346.793f, 52057.156f); + current.pos = old.pos; + setAngle(-0x2CA2); + speedF = 25.0f; + setMotion(MOT_RUN, -1.0f, 0); + break; + + case '0003': + setMotion(MOT_JUMP_S, 0.0f, 0); + mpMorf->setPlaySpeed(1.0f); + setAngle(0); + speedF = 0.0f; + speed.y = 0.0f; + break; + + default: + JUT_ASSERT(2405, 0); + break; + } + } + + switch (*cutName) { + case '0001': + eventManager.cutEnd(staffId); + break; + + case '0002': { + cXyz sp1c(-102070.93f, -18470.0f, 53544.613f); + setAngle(cLib_targetAngleY(¤t.pos, &sp1c)); + fopAcM_effSmokeSet2(&field_0x137c[0], &field_0x137c[1], ¤t.pos, &mCurAngle, 1.0f, &tevStr); + + for (int i = 0; i < 2; i++) { + JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(field_0x137c[i]); + if (emitter != NULL) { + emitter->setRate(1.0f); + emitter->setLifeTime(30); + emitter->setGlobalAlpha(0x80); + emitter->setGlobalParticleScale(2.5f, 2.5f); + } + } + + mSound.startCreatureVoiceLevel(Z2SE_TKS_V_RUNNING_LOOP, -1); + + if (current.pos.absXZ(sp1c) < speedF) { + current.pos.set(sp1c); + speedF = 0.0f; + eventManager.cutEnd(staffId); + } + break; + } + + case '0003': + if (mMotionPhase == 0 && mpMorf->checkFrame(9.0f)) { + speedF = 25.0f; + speed.y = 60.0f; + mSound.startCreatureSound(Z2SE_TKS_V_JUMP_UP, 0, -1); + } + + if (speedF > 0.0f && mAcch.ChkGroundLanding()) { + speedF = 0.0f; + speed.y = 0.0f; + eventManager.cutEnd(staffId); + fopAcM_delete(this); + } + break; + + default: + JUT_ASSERT(2473, 0); + break; + } + } + } + break; + + case 3: + break; + + default: + JUT_ASSERT(2479, 0); + break; + } +} + +/* 80B1926C-80B1946C 004D2C 0200+00 1/0 0/0 0/0 .text demo_Lv6Gate__10daNpcTks_cFv */ +void daNpcTks_c::demo_Lv6Gate() { + switch (mMode) { + case 0: + cLib_offBit(attention_info.flags, 0x10); + setExpression(EXPR_NONE, -1.0f); + setMotion(MOT_WAIT_A, -1.0f, 0); + field_0x138a = false; + mMode = 2; + // fallthrough + case 2: + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + s32 staffId = eventManager.getMyStaffId(l_myName, NULL, 0); + + if (staffId != -1) { + int* cutName = (int*)eventManager.getMyNowCutName(staffId); + + if (eventManager.getIsAddvance(staffId)) { + switch (*cutName) { + case '0001': + break; + + case '0002': + field_0x1370 = 320; + speedF = 13.0f; + setMotion(MOT_RUN, -1.0f, 0); + dComIfGp_event_setTalkPartner(this); + break; + + default: + JUT_ASSERT(2520, 0); + break; + } + } + + switch (*cutName) { + case '0001': + eventManager.cutEnd(staffId); + break; + + case '0002': + mSound.startCreatureVoiceLevel(Z2SE_TKS_V_RUNNING_LOOP, -1); + + if (cLib_calcTimer(&field_0x1370) == 0) { + eventManager.cutEnd(staffId); + fopAcM_delete(this); + } + break; + + default: + JUT_ASSERT(2535, 0); + } + } + } + break; + + case 3: + break; + + default: + JUT_ASSERT(2541, 0); + break; + } +} + +/* 80B1946C-80B19DAC 004F2C 0940+00 1/0 0/0 0/0 .text demo_farewell__10daNpcTks_cFv */ +void daNpcTks_c::demo_farewell() { + switch (mMode) { + case 0: + if (cLib_calcTimer(&field_0x1370) > 0 || dComIfGp_event_runCheck() != FALSE) { + return; + } + + eventInfo.setArchiveName(l_arcName); + mEventIdx = dComIfGp_getEventManager().getEventIdx(this, "TKS_FAREWELL", 0xFF); + fopAcM_orderOtherEventId(this, mEventIdx, 0xFF, 0xFFFF, 4, 1); + cLib_offBit(attention_info.flags, 0x10); + setExpression(EXPR_NONE, -1.0f); + setMotionAnm(ANM_WAIT_A, 0.0f); + + /* dSv_event_flag_c::F_0545 - Sacred Grove - Watched cutscene of Ooccoo Sr. parting (after Temple of Time) */ + daNpcF_onEvtBit(545); + Z2GetAudioMgr()->subBgmStart(Z2BGM_OBACHAN); + mMode = 2; + // fallthrough + case 2: + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + s32 staffId = eventManager.getMyStaffId(l_myName, NULL, 0); + + if (staffId != -1) { + int* cutName = (int*)eventManager.getMyNowCutName(staffId); + + if (eventManager.getIsAddvance(staffId)) { + switch (*cutName) { + case '0001': + dComIfGp_getEvent().setSkipZev(this, "TKS_FAREWELL_SKIP"); + // fallthrough + case '0006': + case '0007': + case '0008': + case '0009': + initTalk(mMessageNo, NULL); + mMsgTimer = 0; + setLookMode(LOOK_PLAYER_TALK, NULL); + setAngle(fopAcM_searchPlayerAngleY(this)); + break; + + case '0002': + setLookMode(LOOK_NONE, NULL); + break; + + case '0003': { + daNpcTkc_c* actor_p = NULL; + fopAcM_SearchByID(parentActorID, (fopAc_ac_c**)&actor_p); + if (actor_p != NULL) { + actor_p->setActionFollow(); + } + + setMotion(MOT_RUN, -1.0f, 0); + speedF = 10.0f; + break; + } + + case '0004': + setMotion(MOT_JUMP_S, -1.0f, 0); + setAngle(0x16EA); + break; + + case '0005': + break; + + case '0010': + break; + + case '0011': + Z2GetAudioMgr()->subBgmStop(); + fopAcM_delete(this); + break; + + default: + JUT_ASSERT(2627, 0); + break; + } + } + + int msgTimer = mMsgTimer; + int i_expression, i_motion; + + if (ctrlMsgAnm(i_expression, i_motion, this, TRUE)) { + setExpression(i_expression, -1.0f); + setMotion(i_motion, -1.0f, 0); + } else if (msgTimer != 0 && mMsgTimer == 0) { + setExpressionTalkAfter(); + } + + switch (*cutName) { + case '0001': + case '0006': + case '0007': + case '0008': + case '0009': + if (talkProc(NULL, TRUE, NULL)) { + eventManager.cutEnd(staffId); + } + break; + + case '0002': { + cXyz* pos = dComIfGp_evmng_getMyXyzP(staffId, "pos"); + if (pos != NULL) { + if (step(cLib_targetAngleY(¤t.pos, pos), 1)) { + mTurnMode = 0; + eventManager.cutEnd(staffId); + } + } + break; + } + + case '0003': { + cXyz* pos = dComIfGp_evmng_getMyXyzP(staffId, "pos"); + if (pos != NULL && current.pos.abs(*pos) <= speedF) { + setMotion(MOT_WAIT_A, -1.0f, 0); + current.pos = *pos; + speedF = 0.0f; + eventManager.cutEnd(staffId); + } + + mSound.startCreatureVoiceLevel(Z2SE_TKS_V_RUNNING_LOOP, -1); + break; + } + + case '0004': { + cXyz* pos = dComIfGp_evmng_getMyXyzP(staffId, "pos"); + + if (mMotion == 4) { + if (mMotionPhase == 0 && mpMorf->checkFrame(9.0f)) { + speedF = 15.0f; + speed.y = 60.0f; + mSound.startCreatureSound(Z2SE_TKS_V_JUMP_UP, 0, -1); + } else if (speedF > 0.0f && mAcch.ChkGroundLanding()) { + setMotion(MOT_JUMP_E, -1.0f, 0); + speedF = 0.0f; + speed.y = 0.0f; + } + } else if (mMotion == 5 && mpMorf->isStop()) { + Z2GetAudioMgr()->subBgmStop(); + eventManager.cutEnd(staffId); + } + break; + } + + case '0005': + break; + + case '0010': + case '0011': + eventManager.cutEnd(staffId); + break; + + default: + JUT_ASSERT(2711, 0); + break; + } + + if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager.endCheck(mEventIdx)) { + dComIfGp_event_reset(); + fopAcM_delete(this); + mEventIdx = -1; + } + } + } + break; + + case 3: + break; + + default: + JUT_ASSERT(2737, 0); + } +} + +/* 80B19DAC-80B1A30C 00586C 0560+00 1/0 0/0 0/0 .text demo_warpBack__10daNpcTks_cFv */ +void daNpcTks_c::demo_warpBack() { + switch (mMode){ + case 0: + eventInfo.setArchiveName(l_arcName); + mEventIdx = dComIfGp_getEventManager().getEventIdx(this, "TKS_WARPBACK", 0xFF); + fopAcM_orderOtherEventId(this, mEventIdx, 0xFF, 0xFFFF, 4, 1); + cLib_offBit(attention_info.flags, 0x10); + setExpression(EXPR_NONE, -1.0f); + setMotionAnm(ANM_WAIT_A, 0.0f); + setLookMode(LOOK_PLAYER_TALK, NULL); + + if (strcmp(dComIfGp_getStartStageName(), "D_MN11") == 0 && dComIfGp_getStartStageRoomNo() == 3) { + cXyz* pcVar1 = fopAcM_GetPosition_p(daPy_getPlayerActorClass()); + if (pcVar1->y >= 950.0f) { + if (pcVar1->x == 3700.0f && pcVar1->z == -4220.0f) { + current.pos.set(3500.0f, 950.0f, -4220.0f); + setAngle(0x4000); + } else if (pcVar1->x == 3360.0f && pcVar1->z == -2010.0f) { + current.pos.set(3360.0f, 950.0f, -1810.0f); + setAngle(0x7FFF); + } + + old.pos = current.pos; + } + } + + mMode = 2; + // fallthrough + case 2: + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + s32 staffId = eventManager.getMyStaffId(l_myName, NULL, 0); + + if (staffId != -1) { + int* cutName = (int*)eventManager.getMyNowCutName(staffId); + + if (eventManager.getIsAddvance(staffId)) { + switch (*cutName) { + case '0001': + dComIfGs_resetLastWarpAcceptStage(); + break; + + case '0002': + initTalk(3, NULL); + mMsgTimer = 0; + setAngle(fopAcM_searchPlayerAngleY(this)); + break; + + case '0003': + mCyl.OffCoSetBit(); + setMotion(MOT_JUMP_S, -1.0f, 0); + speedF = 0.0f; + speed.y = 0.0f; + scale.setall(1.0f); + break; + + default: + JUT_ASSERT(2809, 0); + } + } + + int msgTimer = mMsgTimer; + int i_expression, i_motion; + + if (ctrlMsgAnm(i_expression, i_motion, this, TRUE)) { + setExpression(i_expression, -1.0f); + setMotion(i_motion, -1.0f, 0); + } else if (msgTimer != 0 && mMsgTimer == 0) { + setExpressionTalkAfter(); + } + + switch (*cutName) { + case '0001': + eventManager.cutEnd(staffId); + break; + + case '0002': + if (talkProc(NULL, TRUE, NULL)) { + eventManager.cutEnd(staffId); + } + break; + + case '0003': + if (mMotionPhase == 0 && mpMorf->checkFrame(9.0f)) { + speedF = 12.0f; + speed.y = 33.0f; + field_0x1370 = 200.0f / speedF; + mSound.startCreatureSound(Z2SE_TKS_V_JUMP_UP, 0, -1); + } + + if (speedF > 0.0f) { + cLib_chaseF(&scale.x, 0.15f, 0.85f / (200.0f / speedF)); + scale.setall(scale.x); + + if (cLib_calcTimer(&field_0x1370) == 0) { + speedF = 0.0f; + speed.y = 0.0f; + eventManager.cutEnd(staffId); + } + } + break; + + default: + JUT_ASSERT(2853, 0); + break; + } + + if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager.endCheck(mEventIdx)) { + mEventIdx = -1; + dComIfGp_event_reset(); + fopAcM_delete(this); + } + } + } + break; + + case 3: + break; + + default: + JUT_ASSERT(2870, 0); + } +} + +/* 80B1A30C-80B1A888 005DCC 057C+00 1/0 0/0 0/0 .text demo_walkBack__10daNpcTks_cFv */ +void daNpcTks_c::demo_walkBack() { + switch (mMode){ + case 0: + cLib_offBit(attention_info.flags, 0x10); + setExpression(EXPR_NONE, -1.0f); + setMotionAnm(ANM_WAIT_A, 0.0f); + setLookMode(LOOK_PLAYER_TALK, NULL); + + if (strcmp(dComIfGp_getStartStageName(), "D_MN11") == 0) { + current.pos.set(0.0f, -150.0f, 6600.0f); + old.pos = current.pos; + } else if (strcmp(dComIfGp_getStartStageName(), "D_MN07") == 0) { + current.pos.set(4955.0f, -200.0f, 5480.0f); + old.pos = current.pos; + } + + if (cLib_calcTimer(&field_0x1370) > 0) { + return; + } + + if (dComIfGp_event_runCheck() && !eventInfo.checkCommandTalk()) { + if (dComIfGp_getEventManager().getMyStaffId(l_myName, NULL, 0) != -1) { + mMode = 2; + } else { + break; + } + } else { + eventInfo.setArchiveName(l_arcName); + mEventIdx = dComIfGp_getEventManager().getEventIdx(this, "TKS_WARPBACK", 0xFF); + fopAcM_orderOtherEventId(this, mEventIdx, 0xFF, 0xFFFF, 4, 1); + } + // fallthrough + case 2: + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + s32 staffId = eventManager.getMyStaffId(l_myName, NULL, 0); + + if (staffId != -1) { + int* cutName = (int*)eventManager.getMyNowCutName(staffId); + + if (eventManager.getIsAddvance(staffId)) { + switch (*cutName) { + case '0001': + dComIfGs_resetLastWarpAcceptStage(); + break; + + case '0002': + initTalk(3, NULL); + mMsgTimer = 0; + setAngle(fopAcM_searchPlayerAngleY(this)); + break; + + case '0003': + mCyl.OffCoSetBit(); + setMotion(MOT_JUMP_S, -1.0f, 0); + speedF = 0.0f; + speed.y = 0.0f; + scale.setall(1.0f); + break; + + default: + JUT_ASSERT(2809, 0); + } + } + + int msgTimer = mMsgTimer; + int i_expression, i_motion; + + if (ctrlMsgAnm(i_expression, i_motion, this, TRUE)) { + setExpression(i_expression, -1.0f); + setMotion(i_motion, -1.0f, 0); + } else if (msgTimer != 0 && mMsgTimer == 0) { + setExpressionTalkAfter(); + } + + switch (*cutName) { + case '0001': + eventManager.cutEnd(staffId); + break; + + case '0002': + if (talkProc(NULL, TRUE, NULL)) { + eventManager.cutEnd(staffId); + } + break; + + case '0003': + if (mMotionPhase == 0 && mpMorf->checkFrame(9.0f)) { + speedF = 12.0f; + speed.y = 31.0f; + field_0x1370 = 200.0f / speedF; + mSound.startCreatureSound(Z2SE_TKS_V_JUMP_UP, 0, -1); + } + + if (speedF > 0.0f) { + cLib_chaseF(&scale.x, 0.15f, 0.85f / (200.0f / speedF)); + scale.setall(scale.x); + + if (cLib_calcTimer(&field_0x1370) == 0) { + speedF = 0.0f; + speed.y = 0.0f; + eventManager.cutEnd(staffId); + } + } + break; + + default: + JUT_ASSERT(2986, 0); + break; + } + + if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager.endCheck(mEventIdx)) { + dComIfGp_event_reset(); + mEventIdx = -1; + dMeter2Info_warpInProc(); + fopAcM_delete(this); + } + } + } + break; + + case 3: + break; + + default: + JUT_ASSERT(3004, 0); + } +} + +/* 80B1A888-80B1B6A0 006348 0E18+00 1/0 0/0 0/0 .text demo_Lv7Start__10daNpcTks_cFv */ +void daNpcTks_c::demo_Lv7Start() { + switch (mMode) { + case 0: + cLib_offBit(attention_info.flags, 0x10); + setExpression(EXPR_NONE, -1.0f); + setMotion(MOT_JUMP_S, -1.0f, 0); + mMode = 2; + // fallthrough + case 2: + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + s32 staffId = eventManager.getMyStaffId(l_myName, NULL, 0); + + if (staffId != -1) { + int* cutName = (int*)eventManager.getMyNowCutName(staffId); + + if (eventManager.getIsAddvance(staffId)) { + switch (*cutName) { + case '0000': + break; + + case '0002': + current.pos.set(120.0f, 3000.0f, 5500.0f); + old.pos = current.pos; + setAngle(fopAcM_searchPlayerAngleY(this)); + parentActorID = fopAcM_createChild(PROC_NPC_TKC, fopAcM_GetID(this), 3, ¤t.pos, fopAcM_GetRoomNo(this), + &mCurAngle, NULL, -1, NULL); + dComIfGp_event_setTalkPartner(this); + field_0x138b = false; + field_0x1370 = 143; + break; + + case '0003': { + daNpcTkc_c* actor_p = NULL; + fopAcM_SearchByID(parentActorID, (fopAc_ac_c**)&actor_p); + + if (actor_p != NULL) { + actor_p->setActionWait(); + } + + setMotion(MOT_SWIM, -1.0f, 0); + field_0x1370 = 60; + break; + } + + case '0004': + case '0008': + initTalk(mMessageNo, NULL); + mMsgTimer = 0; + setLookMode(LOOK_PLAYER_TALK, NULL); + break; + + case '0005': + break; + + case '0007': { + daNpcTkc_c* actor_p = NULL; + fopAcM_SearchByID(parentActorID, (fopAc_ac_c**)&actor_p); + + if (actor_p != NULL) { + actor_p->setActionWait(); + } + break; + } + + case '0009': + setLookMode(LOOK_NONE, NULL); + break; + + case '0010': { + daNpcTkc_c* actor_p = NULL; + fopAcM_SearchByID(parentActorID, (fopAc_ac_c**)&actor_p); + + if (actor_p != NULL) { + actor_p->setActionFollow(); + } + + setMotion(MOT_JUMP_S, -1.0f, 0); + break; + } + + case '0011': + setMotion(MOT_RUN, -1.0f, 0); + speedF = 10.0f; + break; + + case '0012': + fopAcM_delete(this); + break; + + default: + JUT_ASSERT(3091, 0); + break; + } + } + + int msgTimer = mMsgTimer; + int i_expression, i_motion; + + if (ctrlMsgAnm(i_expression, i_motion, this, TRUE)) { + setExpression(i_expression, -1.0f); + } else if (msgTimer != 0 && mMsgTimer == 0) { + setExpressionTalkAfter(); + } + + switch (*cutName) { + case '0001': + gravity = 0.0f; + if (!daPy_getPlayerActorClass()->checkSwimUp()) { + eventManager.cutEnd(staffId); + } + break; + + case '0002': + if (cLib_calcTimer(&field_0x1370) == 0) { + eventManager.cutEnd(staffId); + } + + if (mAcch.ChkWaterIn()) { + f32 fVar3 = mAcch.m_wtr.GetHeight(); + if (current.pos.y < fVar3) { + cXyz i_pos(current.pos.x, fVar3, current.pos.z); + + if (!field_0x138b) { + fopKyM_createWpillar(&i_pos, 1.0f, 0); + Z2GetAudioMgr()->seStart(Z2SE_CM_BODYFALL_WATER_S, &i_pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } + + if (speed.y < 0.0f) { + speed.y *= 0.7; + } + + speed.y -= gravity - 1.0f; + setMotion(MOT_SWIM, -1.0f, 0); + fopAcM_effHamonSet(&field_0x137c[0], &i_pos, 0.7f, 0.08f); + field_0x138b = true; + } else { + field_0x138b = false; + } + } + + if (!field_0x138b) { + mSound.startCreatureVoiceLevel(Z2SE_TKS_V_FALLING_LOOP, -1); + } + break; + + case '0003': + if (cLib_calcTimer(&field_0x1370) == 0) { + eventManager.cutEnd(staffId); + } + + if (mAcch.ChkWaterIn()) { + f32 fVar2 = mAcch.m_wtr.GetHeight(); + if (current.pos.y < fVar2) { + current.pos.y = fVar2; + speed.y = 0.0f; + fopAcM_effHamonSet(&field_0x137c[0], ¤t.pos, 0.7f, 0.08f); + field_0x138b = true; + } else { + field_0x138b = false; + } + } + break; + + case '0008': + if (mCurAngle.y == fopAcM_searchPlayerAngleY(this)) { + if (talkProc(NULL, TRUE, NULL)) { + eventManager.cutEnd(staffId); + } + } else { + if (step(fopAcM_searchPlayerAngleY(this), 0)) { + mTurnMode = 0; + } + } + + if (mAcch.ChkWaterIn()) { + f32 fVar1 = mAcch.m_wtr.GetHeight(); + if (current.pos.y < fVar1) { + current.pos.y = fVar1; + speed.y = 0.0f; + fopAcM_effHamonSet(&field_0x137c[0], ¤t.pos, 0.7f, 0.08f); + field_0x138b = true; + } else { + field_0x138b = false; + } + } + break; + + case '0007': { + case '0005': + mSound.startCreatureVoiceLevel(Z2SE_TKJ_V_ODOROKI_LOOP, -1); + daNpcTkc_c* actor_p = NULL; + fopAcM_SearchByID(parentActorID, (fopAc_ac_c**)&actor_p); + + if (actor_p != NULL) { + actor_p->callOdorokiSound(); + } + // fallthrough + } + case '0012': + eventManager.cutEnd(staffId); + + if (mAcch.ChkWaterIn()) { + f32 fVar1 = mAcch.m_wtr.GetHeight(); + if (current.pos.y < fVar1) { + current.pos.y = fVar1; + speed.y = 0.0f; + fopAcM_effHamonSet(&field_0x137c[0], ¤t.pos, 0.7f, 0.08f); + field_0x138b = true; + } else { + field_0x138b = false; + } + } + break; + + case '0004': { + int iVar1[2] = {0x2520, -1}; + if (talkProc(iVar1, TRUE, NULL)) { + if (!mFlow.checkEndFlow()) { + fopAc_ac_c* actor_p = fopAcM_SearchByName(PROC_Tag_Lv7Gate); + if (actor_p != NULL) { + setLookMode(LOOK_ACTOR, actor_p); + } + } else { + eventManager.cutEnd(staffId); + current.pos.set(1627.059f, -250.0f, 5621.671f); + old.pos = current.pos; + setAngle(0x6024); + setExpression(EXPR_NONE, -1.0f); + setMotion(MOT_WAIT_A, -1.0f, 0); + setLookMode(LOOK_NONE, NULL); + + daNpcTkc_c* actor_p = NULL; + fopAcM_SearchByID(parentActorID, (fopAc_ac_c**)&actor_p); + + if (actor_p != NULL) { + actor_p->setActionFollow(); + } + } + } + + if (mAcch.ChkWaterIn()) { + f32 fVar2 = mAcch.m_wtr.GetHeight(); + if (current.pos.y < fVar2) { + current.pos.y = fVar2; + speed.y = 0.0f; + fopAcM_effHamonSet(&field_0x137c[0], ¤t.pos, 0.7f, 0.08f); + field_0x138b = true; + } else { + field_0x138b = false; + } + } + break; + } + + case '0009': { + cXyz sp8c(3453.1926f, -200.0f, 5485.9224f); + if (step(cLib_targetAngleY(¤t.pos, &sp8c), 1)) { + eventManager.cutEnd(staffId); + } + break; + } + + case '0010': + if (mMotion == 4) { + if (mMotionPhase == 0 && mpMorf->checkFrame(9.0f)) { + speedF = 8.0f; + speed.y = 30.0f; + mSound.startCreatureSound(Z2SE_TKS_V_JUMP_UP, 0, -1); + break; + } + + if (speedF > 0.0f && mAcch.ChkGroundLanding()) { + setMotion(MOT_JUMP_E, -1.0f, 0); + speedF = 0.0f; + speed.y = 0.0f; + } + } else if (mMotion == 5) { + if (mpMorf->isStop()) { + eventManager.cutEnd(staffId); + } + } + break; + + case '0011': { + mSound.startCreatureVoiceLevel(Z2SE_TKS_V_RUNNING_LOOP, -1); + cXyz sp98(3453.1926f, -200.0f, 5485.9224f); + step(cLib_targetAngleY(¤t.pos, &sp98), 0); + eventManager.cutEnd(staffId); + break; + } + + default: + JUT_ASSERT(3263, 0); + break; + } + } + } + break; + + case 3: + break; + + default: + JUT_ASSERT(3269, 0); + break; + } +} + +/* 80B1B6A0-80B1BD64 007160 06C4+00 2/0 0/0 0/0 .text demo_Lv3PickUp__10daNpcTks_cFv */ +void daNpcTks_c::demo_Lv3PickUp() { + switch (mMode) { + case 0: + cLib_offBit(attention_info.flags, 0x10); + setExpression(EXPR_NONE, -1.0f); + setMotion(MOT_WAIT_A, -1.0f, 0); + setLookMode(LOOK_PLAYER, NULL); + + if (strcmp(dComIfGp_getStartStageName(), "D_MN01") == 0) { + current.pos.set(0.0f, 1225.0f, 14737.291f); + setAngle(0); + } else if (strcmp(dComIfGp_getStartStageName(), "D_MN07") == 0) { + current.pos.set(0.0f, -250.0f, 3885.7244f); + setAngle(0); + } + + old.pos = current.pos; + + if (cLib_calcTimer(&field_0x1370) <= 0) { + if (dComIfGp_event_runCheck() && !eventInfo.checkCommandTalk()) { + if (dComIfGp_getEventManager().getMyStaffId(l_myName, NULL, 0) != -1) { + mMode = 2; + } + break; + } + + if (daPy_getPlayerActorClass()->checkSwimUp()) { + eventInfo.setArchiveName(l_arcName); + mEventIdx = dComIfGp_getEventManager().getEventIdx(this, "TKS_WARPBACK", 0xFF); + fopAcM_orderOtherEventId(this, mEventIdx, 0xFF, 0xFFFF, 4, 1); + } + } + break; + + case 2: + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + s32 staffId = eventManager.getMyStaffId(l_myName, NULL, 0); + + if (staffId != -1) { + int* cutName = (int*)eventManager.getMyNowCutName(staffId); + + if (eventManager.getIsAddvance(staffId)) { + switch (*cutName) { + case '0001': + dComIfGs_resetLastWarpAcceptStage(); + break; + + case '0002': + initTalk(3, NULL); + mMsgTimer = 0; + mTurnMode = 0; + setLookMode(LOOK_PLAYER_TALK, NULL); + break; + + case '0003': + mCyl.OffCoSetBit(); + setMotion(MOT_JUMP_S, -1.0f, 0); + speedF = 0.0f; + speed.y = 0.0f; + scale.setall(1.0f); + break; + + default: + JUT_ASSERT(3348, 0); + break; + } + } + + int msgTimer = mMsgTimer; + int i_expression, i_motion; + + if (ctrlMsgAnm(i_expression, i_motion, this, TRUE)) { + setExpression(i_expression, -1.0f); + setMotion(i_motion, -1.0f, 0); + } else if (msgTimer != 0 && mMsgTimer == 0) { + setExpressionTalkAfter(); + } + + switch (*cutName) { + case '0001': + eventManager.cutEnd(staffId); + break; + + case '0002': + if (mCurAngle.y == fopAcM_searchPlayerAngleY(this)) { + if (talkProc(NULL, TRUE, NULL)) { + eventManager.cutEnd(staffId); + } + } else if (step(fopAcM_searchPlayerAngleY(this), 0)) { + mTurnMode = 0; + } + break; + + case '0003': + if (mMotionPhase == 0 && mpMorf->checkFrame(9.0f)) { + speed.y = 33.0f; + field_0x136c = speed.y * -2.0f / gravity; + field_0x1370 = field_0x136c; + speedF = fopAcM_searchPlayerDistanceXZ(this) / field_0x136c; + mSound.startCreatureSound(Z2SE_TKS_V_JUMP_UP, 0, -1); + } + + if (speedF > 0.0f) { + cLib_chaseF(&scale.x, 0.15f, 0.85f / field_0x136c); + scale.setall(scale.x); + + if (cLib_calcTimer(&field_0x1370) == 0) { + speedF = 0.0f; + speed.y = 0.0f; + eventManager.cutEnd(staffId); + } + } + break; + + default: + JUT_ASSERT(3406, 0); + break; + } + + if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager.endCheck(mEventIdx)) { + dComIfGp_event_reset(); + mEventIdx = -1; + dMeter2Info_warpInProc(); + fopAcM_delete(this); + } + } + } + break; + + case 3: + break; + + default: + JUT_ASSERT(3424, 0); + break; + } +} + +/* 80B1BD64-80B1C3C8 007824 0664+00 1/0 0/0 0/0 .text demo_Lv6PickUp__10daNpcTks_cFv */ +void daNpcTks_c::demo_Lv6PickUp() { + switch (mMode) { + case 0: + if (strcmp(dComIfGp_getStartStageName(), "D_MN05") == 0) { + current.pos.set(-11.226944f, 2204.15f, 17357.205f); + setAngle(0); + } else if (strcmp(dComIfGp_getStartStageName(), "D_MN06") == 0) { + current.pos.set(0.0f, -275.0f, 1900.0f); + setAngle(0); + } + + old.pos = current.pos; + + if (fopAcM_searchPlayerDistance(this) <= 300.0f) { + eventInfo.setArchiveName(l_arcName); + mEventIdx = dComIfGp_getEventManager().getEventIdx(this, "TKS_WARPBACK", 0xFF); + fopAcM_orderOtherEventId(this, mEventIdx, 0xFF, 0xFFFF, 4, 1); + mMode = 2; + } else { + cLib_offBit(attention_info.flags, 0x10); + setExpression(EXPR_NONE, -1.0f); + setMotion(MOT_WAIT_A, -1.0f, 0); + setLookMode(LOOK_PLAYER, NULL); + break; + } + // fallthrough + case 2: + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + s32 staffId = eventManager.getMyStaffId(l_myName, NULL, 0); + + if (staffId != -1) { + int* cutName = (int*)eventManager.getMyNowCutName(staffId); + + if (eventManager.getIsAddvance(staffId)) { + switch (*cutName) { + case '0001': + dComIfGs_resetLastWarpAcceptStage(); + break; + + case '0002': + initTalk(3, NULL); + mMsgTimer = 0; + mTurnMode = 0; + setLookMode(LOOK_PLAYER_TALK, NULL); + break; + + case '0003': + mCyl.OffCoSetBit(); + setMotion(MOT_JUMP_S, -1.0f, 0); + speedF = 0.0f; + speed.y = 0.0f; + scale.setall(1.0f); + break; + + default: + JUT_ASSERT(3499, 0); + break; + } + } + + int msgTimer = mMsgTimer; + int i_expression, i_motion; + + if (ctrlMsgAnm(i_expression, i_motion, this, TRUE)) { + setExpression(i_expression, -1.0f); + setMotion(i_motion, -1.0f, 0); + } else if (msgTimer != 0 && mMsgTimer == 0) { + setExpressionTalkAfter(); + } + + switch (*cutName) { + case '0001': + eventManager.cutEnd(staffId); + break; + + case '0002': + if (mCurAngle.y == fopAcM_searchPlayerAngleY(this)) { + if (talkProc(NULL, TRUE, NULL)) { + eventManager.cutEnd(staffId); + } + } else if (step(fopAcM_searchPlayerAngleY(this), 0)) { + mTurnMode = 0; + } + break; + + case '0003': + if (mMotionPhase == 0 && mpMorf->checkFrame(9.0f)) { + speedF = 16.0f; + speed.y = 36.0f; + field_0x1370 = 300.0f / speedF; + mSound.startCreatureSound(Z2SE_TKS_V_JUMP_UP, 0, -1); + } + + if (speedF > 0.0f) { + cLib_chaseF(&scale.x, 0.15f, 0.85f / (300.0f / speedF)); + scale.setall(scale.x); + + if (cLib_calcTimer(&field_0x1370) == 0) { + speedF = 0.0f; + speed.y = 0.0f; + eventManager.cutEnd(staffId); + } + } + break; + + default: + JUT_ASSERT(3650, 0); + break; + } + + if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager.endCheck(mEventIdx)) { + dComIfGp_event_reset(); + mEventIdx = -1; + dMeter2Info_warpInProc(); + fopAcM_delete(this); + } + } + } + break; + + case 3: + break; + + default: + JUT_ASSERT(3568, 0); + break; + } +} + +/* 80B1C3C8-80B1C3E8 007E88 0020+00 1/0 0/0 0/0 .text daNpcTks_Create__FPv */ +static int daNpcTks_Create(void* a_this) { + return static_cast(a_this)->Create(); +} + +/* 80B1C3E8-80B1C408 007EA8 0020+00 1/0 0/0 0/0 .text daNpcTks_Delete__FPv */ +static int daNpcTks_Delete(void* a_this) { + return static_cast(a_this)->Delete(); +} + +/* 80B1C408-80B1C428 007EC8 0020+00 1/0 0/0 0/0 .text daNpcTks_Execute__FPv */ +static int daNpcTks_Execute(void* a_this) { + return static_cast(a_this)->Execute(); +} + +/* 80B1C428-80B1C448 007EE8 0020+00 1/0 0/0 0/0 .text daNpcTks_Draw__FPv */ +static int daNpcTks_Draw(void* a_this) { + return static_cast(a_this)->Draw(); +} + +/* 80B1C448-80B1C450 007F08 0008+00 1/0 0/0 0/0 .text daNpcTks_IsDelete__FPv */ +static int daNpcTks_IsDelete(void* a_this) { + return 1; +} + +/* 80B1C480-80B1C4F8 007F40 0078+00 1/0 0/0 0/0 .text setParam__10daNpcTks_cFv */ +void daNpcTks_c::setParam() { + mAcchCir.SetWallR(daNpcTks_Param_c::m.common.width); + mAcchCir.SetWallH(daNpcTks_Param_c::m.common.knee_length); + gravity = fopAcM_checkCarryNow(this) != 0 ? 0.0f: daNpcTks_Param_c::m.common.gravity; + maxFallSpeed = -50.0f; +} + +/* 80B1CB54-80B1CC28 008614 00D4+00 1/0 0/0 0/0 .text ctrlBtk__10daNpcTks_cFv */ +BOOL daNpcTks_c::ctrlBtk() { + if (mpMatAnm != NULL) { + J3DAnmTextureSRTKey* i_anm = getTexSRTKeyAnmP(l_arcName, l_btkGetParamList[0].fileIdx); + J3DAnmTextureSRTKey* i_btk = mBtkAnm.getBtkAnm(); + if (i_anm == i_btk) { + mpMatAnm->setNowOffsetX((f32)cM_ssin(mEyeAngle.y) * 0.2f * -1.0f); + mpMatAnm->setNowOffsetY((f32)cM_ssin(mEyeAngle.x) * 0.2f); + mpMatAnm->onEyeMoveFlag(); + return TRUE; + } + + mpMatAnm->offEyeMoveFlag(); + } + + return FALSE; +} + +/* 80B1CC28-80B1CFD0 0086E8 03A8+00 1/0 0/0 0/0 .text setAttnPos__10daNpcTks_cFv */ +void daNpcTks_c::setAttnPos() { + if(mLookMode == 1) { + for (int i = 0; i < 3; i++) { + mLookatAngle[i].setall(0); + } + } + + J3DModelData* mdlData_p = mpMorf->getModel()->getModelData(); + for (u16 i = 0; i < mdlData_p->getJointNum(); i++) { + mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + } + + setMtx(); + lookat(); + + if (field_0x138a) { + eyePos = current.pos; + eyePos.y += 80.0f; + } else { + cXyz sp2c(10.0f, 10.0f, 0.0f); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(0x11)); + mDoMtx_stack_c::multVecZero(&mHeadPos); + mDoMtx_stack_c::multVec(&sp2c, &eyePos); + sp2c.x = 0.0f; + mDoMtx_stack_c::multVec(&sp2c, &sp2c); + mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &sp2c); + mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &sp2c); + } + + cXyz* attnPos = mLookat.getAttnPos(); + if (attnPos != NULL) { + cXyz sp38(*attnPos - eyePos); + mEyeAngle.y = -(mLookatAngle[2].y + mCurAngle.y); + mEyeAngle.y += cM_atan2s(sp38.x, sp38.z); + mEyeAngle.x = -cM_atan2s(sp38.y, sp38.absXZ()); + } else { + mEyeAngle.y = 0; + mEyeAngle.x = 0; + } + + attention_info.position.set(current.pos.x, current.pos.y + daNpcTks_Param_c::m.common.attention_offset, current.pos.z); + + if (!fopAcM_checkCarryNow(this)) { + if (!field_0x138a) { + mCyl.SetC(current.pos); + #ifdef DEBUG + mCyl.SetH(daNpcTks_Param_c::m.common.height); + mCyl.SetR(daNpcTks_Param_c::m.common.width); + #endif + dComIfG_Ccsp()->Set(&mCyl); + } + + if (mTksTsubo.field_0x586 != 0) { + mTksTsubo.mCyl.SetC(mTksTsubo.mPos); + dComIfG_Ccsp()->Set(&mTksTsubo.mCyl); + } + } +} + +/* 80B1D1FC-80B1D204 008CBC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__10daNpcTks_cFv */ +BOOL daNpcTks_c::drawDbgInfo() { + return FALSE; +} + +/* 80B1D204-80B1D35C 008CC4 0158+00 1/0 0/0 0/0 .text drawOtherMdls__10daNpcTks_cFv */ +void daNpcTks_c::drawOtherMdls() { + if (mTksTsubo.field_0x586 != 0) { + J3DModel* model = mTksTsubo.mpModelMorf->getModel(); + + if (mTwilight) { + g_env_light.settingTevStruct(4, &mTksTsubo.mPos, &mTksTsubo.mTevStr); + } else { + g_env_light.settingTevStruct(8, &mTksTsubo.mPos, &mTksTsubo.mTevStr); + } + + g_env_light.setLightTevColorType_MAJI(model, &mTksTsubo.mTevStr); + dComIfGd_setListBG(); + mTksTsubo.mpModelMorf->entryDL(); + dComIfGd_setList(); + + cXyz* pcVar1; + if (field_0x138a) { + pcVar1 = ¤t.pos; + } else { + pcVar1 = &mTksTsubo.mPos; + } + + f32 fVar1; + if (field_0x138a) { + fVar1 = mGroundH; + } else { + fVar1 = mTksTsubo.mGroundH; + } + + cBgS_PolyInfo* polyBase; + if (field_0x138a) { + polyBase = &mGndChk; + } else { + polyBase = &mTksTsubo.polyBase; + } + + mTksTsubo.mShadowKey = dComIfGd_setShadow(mTksTsubo.mShadowKey, 1, model, + pcVar1, daNpcTks_Param_c::m.common.real_shadow_size, + 30.0f, pcVar1->y, fVar1, *polyBase, &mTksTsubo.mTevStr, 0, 1.0f, + dDlst_shadowControl_c::getSimpleTex()); + } +} /* 80B1E408-80B1E428 -00001 0020+00 1/0 0/0 0/0 .data daNpcTks_MethodTable */ static actor_method_class daNpcTks_MethodTable = { - (process_method_func)daNpcTks_Create__FPv, - (process_method_func)daNpcTks_Delete__FPv, - (process_method_func)daNpcTks_Execute__FPv, - (process_method_func)daNpcTks_IsDelete__FPv, - (process_method_func)daNpcTks_Draw__FPv, + (process_method_func)daNpcTks_Create, + (process_method_func)daNpcTks_Delete, + (process_method_func)daNpcTks_Execute, + (process_method_func)daNpcTks_IsDelete, + (process_method_func)daNpcTks_Draw, }; /* 80B1E428-80B1E458 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_TKS */ @@ -784,1497 +3099,3 @@ extern actor_process_profile_definition g_profile_NPC_TKS = { fopAc_NPC_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80B1E458-80B1E464 000374 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, -}; - -/* 80B1E464-80B1E4AC 000380 0048+00 2/2 0/0 0/0 .data __vt__10daNpcTks_c */ -SECTION_DATA extern void* __vt__10daNpcTks_c[18] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10daNpcTks_cFv, - (void*)setParam__10daNpcTks_cFv, - (void*)main__10daNpcTks_cFv, - (void*)ctrlBtk__10daNpcTks_cFv, - (void*)adjustShapeAngle__8daNpcF_cFv, - (void*)setMtx__10daNpcTks_cFv, - (void*)setMtx2__8daNpcF_cFv, - (void*)setAttnPos__10daNpcTks_cFv, - (void*)setCollisions__8daNpcF_cFv, - (void*)setExpressionAnm__10daNpcTks_cFib, - (void*)setExpressionBtp__10daNpcTks_cFi, - (void*)setExpression__10daNpcTks_cFif, - (void*)setMotionAnm__10daNpcTks_cFif, - (void*)setMotion__10daNpcTks_cFifi, - (void*)drawDbgInfo__10daNpcTks_cFv, - (void*)drawOtherMdls__10daNpcTks_cFv, -}; - -/* 80B1E4AC-80B1E4B8 0003C8 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, -}; - -/* 80B1E4B8-80B1E4DC 0003D4 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_80B1DD3C, - (void*)NULL, - (void*)NULL, - (void*)func_80B1DD34, -}; - -/* 80B1E4DC-80B1E4E8 0003F8 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, -}; - -/* 80B1E4E8-80B1E4F4 000404 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, -}; - -/* 80B1E4F4-80B1E500 000410 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, -}; - -/* 80B1E500-80B1E50C 00041C 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, -}; - -/* 80B1E50C-80B1E518 000428 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, -}; - -/* 80B1E518-80B1E524 000434 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, -}; - -/* 80B1E524-80B1E530 000440 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, -}; - -/* 80B1462C-80B14844 0000EC 0218+00 1/1 0/0 0/0 .text __ct__10daNpcTks_cFv */ -daNpcTks_c::daNpcTks_c() { - // NONMATCHING -} - -/* 80B14844-80B14AF8 000304 02B4+00 1/0 0/0 0/0 .text __dt__10daNpcTks_cFv */ -daNpcTks_c::~daNpcTks_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DD58-80B1DDF0 000000 0098+00 25/25 0/0 0/0 .rodata m__16daNpcTks_Param_c */ -SECTION_RODATA u8 const daNpcTks_Param_c::m[152] = { - 0x42, 0xB4, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, - 0x43, 0x7F, 0x00, 0x00, 0x42, 0xA0, 0x00, 0x00, 0x42, 0x04, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0xC2, 0x34, 0x00, 0x00, - 0x41, 0xF0, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0xC2, 0x34, 0x00, 0x00, - 0x3F, 0x4C, 0xCC, 0xCD, 0x41, 0x40, 0x00, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x13, 0x00, 0x06, - 0x42, 0xA0, 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, 0x00, 0x00, 0x00, 0x2D, - 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x5A, 0x44, 0x7A, 0x00, 0x00, - 0x43, 0xFA, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, 0x40, 0xE0, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DD58, &daNpcTks_Param_c::m); - -/* 80B1DDF0-80B1DDF4 000098 0004+00 0/2 0/0 0/0 .rodata @4467 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4467 = -80.0f; -COMPILER_STRIP_GATE(0x80B1DDF0, &lit_4467); -#pragma pop - -/* 80B1DDF4-80B1DDF8 00009C 0004+00 0/1 0/0 0/0 .rodata @4468 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4468 = -30.0f; -COMPILER_STRIP_GATE(0x80B1DDF4, &lit_4468); -#pragma pop - -/* 80B1DDF8-80B1DDFC 0000A0 0004+00 0/3 0/0 0/0 .rodata @4469 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4469 = 80.0f; -COMPILER_STRIP_GATE(0x80B1DDF8, &lit_4469); -#pragma pop - -/* 80B1DDFC-80B1DE00 0000A4 0004+00 0/4 0/0 0/0 .rodata @4470 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4470 = 10.0f; -COMPILER_STRIP_GATE(0x80B1DDFC, &lit_4470); -#pragma pop - -/* 80B1DE00-80B1DE04 0000A8 0004+00 0/2 0/0 0/0 .rodata @4471 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4471 = 100.0f; -COMPILER_STRIP_GATE(0x80B1DE00, &lit_4471); -#pragma pop - -/* 80B1DE04-80B1DE08 0000AC 0004+00 0/3 0/0 0/0 .rodata @4472 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4472 = 30.0f; -COMPILER_STRIP_GATE(0x80B1DE04, &lit_4472); -#pragma pop - -/* 80B14AF8-80B14ED0 0005B8 03D8+00 1/1 0/0 0/0 .text Create__10daNpcTks_cFv */ -void daNpcTks_c::Create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DE08-80B1DE0C 0000B0 0004+00 3/12 0/0 0/0 .rodata @4537 */ -SECTION_RODATA static f32 const lit_4537 = 1.0f; -COMPILER_STRIP_GATE(0x80B1DE08, &lit_4537); - -/* 80B1DE0C-80B1DE10 0000B4 0004+00 3/14 0/0 0/0 .rodata @4538 */ -SECTION_RODATA static f32 const lit_4538 = -1.0f; -COMPILER_STRIP_GATE(0x80B1DE0C, &lit_4538); - -/* 80B14ED0-80B1521C 000990 034C+00 1/1 0/0 0/0 .text CreateHeap__10daNpcTks_cFv */ -void daNpcTks_c::CreateHeap() { - // NONMATCHING -} - -/* 80B1521C-80B15258 000CDC 003C+00 1/1 0/0 0/0 .text __dt__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::~J3DTevKColorAnm() { -extern "C" void __dt__15J3DTevKColorAnmFv() { - // NONMATCHING -} - -/* 80B15258-80B15270 000D18 0018+00 1/1 0/0 0/0 .text __ct__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::J3DTevKColorAnm() { -extern "C" void __ct__15J3DTevKColorAnmFv() { - // NONMATCHING -} - -/* 80B15270-80B152AC 000D30 003C+00 1/1 0/0 0/0 .text __dt__14J3DTevColorAnmFv */ -// J3DTevColorAnm::~J3DTevColorAnm() { -extern "C" void __dt__14J3DTevColorAnmFv() { - // NONMATCHING -} - -/* 80B152AC-80B152C4 000D6C 0018+00 1/1 0/0 0/0 .text __ct__14J3DTevColorAnmFv */ -// J3DTevColorAnm::J3DTevColorAnm() { -extern "C" void __ct__14J3DTevColorAnmFv() { - // NONMATCHING -} - -/* 80B152C4-80B1530C 000D84 0048+00 1/1 0/0 0/0 .text __dt__11J3DTexNoAnmFv */ -// J3DTexNoAnm::~J3DTexNoAnm() { -extern "C" void __dt__11J3DTexNoAnmFv() { - // NONMATCHING -} - -/* 80B1530C-80B15330 000DCC 0024+00 1/1 0/0 0/0 .text __ct__11J3DTexNoAnmFv */ -// J3DTexNoAnm::J3DTexNoAnm() { -extern "C" void __ct__11J3DTexNoAnmFv() { - // NONMATCHING -} - -/* 80B15330-80B1536C 000DF0 003C+00 1/1 0/0 0/0 .text __dt__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::~J3DTexMtxAnm() { -extern "C" void __dt__12J3DTexMtxAnmFv() { - // NONMATCHING -} - -/* 80B1536C-80B15384 000E2C 0018+00 1/1 0/0 0/0 .text __ct__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::J3DTexMtxAnm() { -extern "C" void __ct__12J3DTexMtxAnmFv() { - // NONMATCHING -} - -/* 80B15384-80B153C0 000E44 003C+00 1/1 0/0 0/0 .text __dt__14J3DMatColorAnmFv */ -// J3DMatColorAnm::~J3DMatColorAnm() { -extern "C" void __dt__14J3DMatColorAnmFv() { - // NONMATCHING -} - -/* 80B153C0-80B153D8 000E80 0018+00 1/1 0/0 0/0 .text __ct__14J3DMatColorAnmFv */ -// J3DMatColorAnm::J3DMatColorAnm() { -extern "C" void __ct__14J3DMatColorAnmFv() { - // NONMATCHING -} - -/* 80B153D8-80B1540C 000E98 0034+00 1/1 0/0 0/0 .text Delete__10daNpcTks_cFv */ -void daNpcTks_c::Delete() { - // NONMATCHING -} - -/* 80B1540C-80B15430 000ECC 0024+00 2/2 0/0 0/0 .text Execute__10daNpcTks_cFv */ -void daNpcTks_c::Execute() { - // NONMATCHING -} - -/* 80B15430-80B1548C 000EF0 005C+00 1/1 0/0 0/0 .text Draw__10daNpcTks_cFv */ -void daNpcTks_c::Draw() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DE10-80B1DE1C 0000B8 000C+00 1/1 0/0 0/0 .rodata @4586 */ -SECTION_RODATA static u8 const lit_4586[12] = { - 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x11, -}; -COMPILER_STRIP_GATE(0x80B1DE10, &lit_4586); - -/* 80B1548C-80B15650 000F4C 01C4+00 1/1 0/0 0/0 .text ctrlJoint__10daNpcTks_cFP8J3DJointP8J3DModel - */ -void daNpcTks_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) { - // NONMATCHING -} - -/* 80B15650-80B15670 001110 0020+00 1/1 0/0 0/0 .text - * createHeapCallBack__10daNpcTks_cFP10fopAc_ac_c */ -void daNpcTks_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80B15670-80B156BC 001130 004C+00 2/2 0/0 0/0 .text ctrlJointCallBack__10daNpcTks_cFP8J3DJointi - */ -void daNpcTks_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING -} - -/* 80B156BC-80B157C0 00117C 0104+00 1/0 0/0 0/0 .text setMtx__10daNpcTks_cFv */ -void daNpcTks_c::setMtx() { - // NONMATCHING -} - -/* 80B157C0-80B1590C 001280 014C+00 1/0 0/0 0/0 .text setExpressionAnm__10daNpcTks_cFib - */ -void daNpcTks_c::setExpressionAnm(int param_0, bool param_1) { - // NONMATCHING -} - -/* 80B1590C-80B159E0 0013CC 00D4+00 1/0 0/0 0/0 .text setExpressionBtp__10daNpcTks_cFi */ -void daNpcTks_c::setExpressionBtp(int param_0) { - // NONMATCHING -} - -/* 80B159E0-80B15A24 0014A0 0044+00 1/0 0/0 0/0 .text setMotion__10daNpcTks_cFifi */ -void daNpcTks_c::setMotion(int param_0, f32 param_1, int param_2) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DE1C-80B1DE20 0000C4 0004+00 8/26 0/0 0/0 .rodata @5011 */ -SECTION_RODATA static u8 const lit_5011[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE1C, &lit_5011); - -/* 80B1DE20-80B1DE24 0000C8 0004+00 0/3 0/0 0/0 .rodata @5012 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5012 = 60.0f; -COMPILER_STRIP_GATE(0x80B1DE20, &lit_5012); -#pragma pop - -/* 80B1DE24-80B1DE28 0000CC 0004+00 0/1 0/0 0/0 .rodata @5013 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5013 = 7500.0f; -COMPILER_STRIP_GATE(0x80B1DE24, &lit_5013); -#pragma pop - -/* 80B1E048-80B1E048 0002F0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B1E071 = "D_MN11"; -SECTION_DEAD static char const* const stringBase_80B1E078 = "D_MN07"; -#pragma pop - -/* 80B15A24-80B160A8 0014E4 0684+00 1/1 0/0 0/0 .text reset__10daNpcTks_cFv */ -void daNpcTks_c::reset() { - // NONMATCHING -} - -/* 80B160A8-80B16148 001B68 00A0+00 1/1 0/0 0/0 .text - * setAction__10daNpcTks_cFM10daNpcTks_cFPCvPv_v */ -void daNpcTks_c::setAction(void (daNpcTks_c::*param_0)()) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DE28-80B1DE34 0000D0 000C+00 0/1 0/0 0/0 .rodata @5014 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5014[12] = { - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE28, &lit_5014); -#pragma pop - -/* 80B1DE34-80B1DE38 0000DC 0004+00 0/1 0/0 0/0 .rodata @5015 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5015[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE34, &lit_5015); -#pragma pop - -/* 80B1DE38-80B1DE44 0000E0 000C+00 0/1 0/0 0/0 .rodata @5016 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5016[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE38, &lit_5016); -#pragma pop - -/* 80B1DE44-80B1DE48 0000EC 0004+00 0/1 0/0 0/0 .rodata @5017 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5017[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE44, &lit_5017); -#pragma pop - -/* 80B1DE48-80B1DE50 0000F0 0008+00 0/1 0/0 0/0 .rodata @5018 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5018[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE48, &lit_5018); -#pragma pop - -/* 80B1DE50-80B1DE5C 0000F8 000C+00 0/1 0/0 0/0 .rodata @5022 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5022[12] = { - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE50, &lit_5022); -#pragma pop - -/* 80B1DE5C-80B1DE60 000104 0004+00 0/1 0/0 0/0 .rodata @5023 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5023[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE5C, &lit_5023); -#pragma pop - -/* 80B1DE60-80B1DE6C 000108 000C+00 0/1 0/0 0/0 .rodata @5024 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5024[12] = { - 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE60, &lit_5024); -#pragma pop - -/* 80B1DE6C-80B1DE70 000114 0004+00 0/1 0/0 0/0 .rodata @5025 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5025[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE6C, &lit_5025); -#pragma pop - -/* 80B1DE70-80B1DE7C 000118 000C+00 0/1 0/0 0/0 .rodata @5026 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5026[12] = { - 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE70, &lit_5026); -#pragma pop - -/* 80B1DE7C-80B1DE80 000124 0004+00 0/1 0/0 0/0 .rodata @5027 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5027[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE7C, &lit_5027); -#pragma pop - -/* 80B1DE80-80B1DE8C 000128 000C+00 0/1 0/0 0/0 .rodata @5028 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5028[12] = { - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE80, &lit_5028); -#pragma pop - -/* 80B1DE8C-80B1DE90 000134 0004+00 0/1 0/0 0/0 .rodata @5029 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5029[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE8C, &lit_5029); -#pragma pop - -/* 80B1DE90-80B1DE9C 000138 000C+00 0/1 0/0 0/0 .rodata @5030 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5030[12] = { - 0x00, 0x11, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80B1DE90, &lit_5030); -#pragma pop - -/* 80B1DE9C-80B1DEA8 000144 000C+00 0/1 0/0 0/0 .rodata @5031 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5031[12] = { - 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DE9C, &lit_5031); -#pragma pop - -/* 80B1DEA8-80B1DEB0 000150 0008+00 0/1 0/0 0/0 .rodata @5032 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5032[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DEA8, &lit_5032); -#pragma pop - -/* 80B1DEB0-80B1DEBC 000158 000C+00 0/1 0/0 0/0 .rodata @5033 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5033[12] = { - 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80B1DEB0, &lit_5033); -#pragma pop - -/* 80B1DEBC-80B1DEC0 000164 0004+00 0/1 0/0 0/0 .rodata @5034 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5034[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DEBC, &lit_5034); -#pragma pop - -/* 80B1DEC0-80B1DECC 000168 000C+00 0/1 0/0 0/0 .rodata @5035 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5035[12] = { - 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80B1DEC0, &lit_5035); -#pragma pop - -/* 80B1DECC-80B1DED8 000174 000C+00 0/1 0/0 0/0 .rodata @5036 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5036[12] = { - 0x00, 0x02, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DECC, &lit_5036); -#pragma pop - -/* 80B1DED8-80B1DEE0 000180 0008+00 0/1 0/0 0/0 .rodata @5037 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5037[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DED8, &lit_5037); -#pragma pop - -/* 80B1DEE0-80B1DEEC 000188 000C+00 0/1 0/0 0/0 .rodata @5038 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5038[12] = { - 0x00, 0x03, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80B1DEE0, &lit_5038); -#pragma pop - -/* 80B1DEEC-80B1DEF0 000194 0004+00 0/1 0/0 0/0 .rodata @5039 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5039[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DEEC, &lit_5039); -#pragma pop - -/* 80B1DEF0-80B1DF10 000198 0020+00 0/0 0/0 0/0 .rodata @5040 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5040[32] = { - 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(0x80B1DEF0, &lit_5040); -#pragma pop - -/* 80B1DF10-80B1DF20 0001B8 000C+04 0/1 0/0 0/0 .rodata @5064 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5064[12 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DF10, &lit_5064); -#pragma pop - -/* 80B1DF20-80B1DF28 0001C8 0008+00 0/3 0/0 0/0 .rodata @5165 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5165[8] = { - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DF20, &lit_5165); -#pragma pop - -/* 80B16148-80B16344 001C08 01FC+00 3/0 0/0 0/0 .text wait__10daNpcTks_cFv */ -void daNpcTks_c::wait() { - // NONMATCHING -} - -/* 80B16344-80B16634 001E04 02F0+00 1/0 0/0 0/0 .text setMotionAnm__10daNpcTks_cFif */ -bool daNpcTks_c::setMotionAnm(int param_0, f32 param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DF28-80B1DF2C 0001D0 0004+00 0/3 0/0 0/0 .rodata @5263 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5263 = -200.0f; -COMPILER_STRIP_GATE(0x80B1DF28, &lit_5263); -#pragma pop - -/* 80B1DF2C-80B1DF30 0001D4 0004+00 0/1 0/0 0/0 .rodata @5264 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5264 = 150.0f; -COMPILER_STRIP_GATE(0x80B1DF2C, &lit_5264); -#pragma pop - -/* 80B1DF30-80B1DF34 0001D8 0004+00 0/2 0/0 0/0 .rodata @5265 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5265 = 300.0f; -COMPILER_STRIP_GATE(0x80B1DF30, &lit_5265); -#pragma pop - -/* 80B16634-80B1682C 0020F4 01F8+00 2/0 0/0 0/0 .text waitNude__10daNpcTks_cFv */ -void daNpcTks_c::waitNude() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DF34-80B1DF38 0001DC 0004+00 0/1 0/0 0/0 .rodata @5356 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5356 = 400.0f; -COMPILER_STRIP_GATE(0x80B1DF34, &lit_5356); -#pragma pop - -/* 80B1682C-80B16B74 0022EC 0348+00 1/0 0/0 0/0 .text waitLv6__10daNpcTks_cFv */ -void daNpcTks_c::waitLv6() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DF38-80B1DF3C 0001E0 0004+00 0/4 0/0 0/0 .rodata @5430 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5430 = 0x3BB40000; -COMPILER_STRIP_GATE(0x80B1DF38, &lit_5430); -#pragma pop - -/* 80B1DF3C-80B1DF40 0001E4 0004+00 0/6 0/0 0/0 .rodata @5431 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5431 = 15.0f; -COMPILER_STRIP_GATE(0x80B1DF3C, &lit_5431); -#pragma pop - -/* 80B1DF40-80B1DF48 0001E8 0008+00 1/5 0/0 0/0 .rodata @5433 */ -SECTION_RODATA static u8 const lit_5433[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DF40, &lit_5433); - -/* 80B1E048-80B1E048 0002F0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B1E07F = "WOLF_GET_TKS"; -SECTION_DEAD static char const* const stringBase_80B1E08C = "DEFAULT_GETITEM"; -#pragma pop - -/* 80B16B74-80B16FDC 002634 0468+00 2/0 0/0 0/0 .text talk__10daNpcTks_cFv */ -void daNpcTks_c::talk() { - // NONMATCHING -} - -/* 80B16FDC-80B17008 002A9C 002C+00 1/0 0/0 0/0 .text setExpression__10daNpcTks_cFif */ -void daNpcTks_c::setExpression(int param_0, f32 param_1) { - // NONMATCHING -} - -/* 80B17008-80B17420 002AC8 0418+00 4/0 0/0 0/0 .text hide__10daNpcTks_cFv */ -void daNpcTks_c::hide() { - // NONMATCHING -} - -/* 80B17420-80B175F4 002EE0 01D4+00 3/0 0/0 0/0 .text shake__10daNpcTks_cFv */ -void daNpcTks_c::shake() { - // NONMATCHING -} - -/* 80B175F4-80B17734 0030B4 0140+00 4/0 0/0 0/0 .text showUp__10daNpcTks_cFv */ -void daNpcTks_c::showUp() { - // NONMATCHING -} - -/* 80B17734-80B17B70 0031F4 043C+00 3/0 0/0 0/0 .text showUpWait__10daNpcTks_cFv */ -void daNpcTks_c::showUpWait() { - // NONMATCHING -} - -/* 80B17B70-80B17D44 003630 01D4+00 2/0 0/0 0/0 .text lookAroundA__10daNpcTks_cFv */ -void daNpcTks_c::lookAroundA() { - // NONMATCHING -} - -/* 80B17D44-80B17F18 003804 01D4+00 2/0 0/0 0/0 .text lookAroundB__10daNpcTks_cFv */ -void daNpcTks_c::lookAroundB() { - // NONMATCHING -} - -/* 80B17F18-80B18070 0039D8 0158+00 4/0 0/0 0/0 .text in__10daNpcTks_cFv */ -void daNpcTks_c::in() { - // NONMATCHING -} - -/* 80B18070-80B181EC 003B30 017C+00 1/0 0/0 0/0 .text damage__10daNpcTks_cFv */ -void daNpcTks_c::damage() { - // NONMATCHING -} - -/* 80B181EC-80B183E8 003CAC 01FC+00 1/0 0/0 0/0 .text broken__10daNpcTks_cFv */ -void daNpcTks_c::broken() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DF48-80B1DF50 0001F0 0008+00 0/1 0/0 0/0 .rodata @5981 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5981[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DF48, &lit_5981); -#pragma pop - -/* 80B183E8-80B18D44 003EA8 095C+00 1/0 0/0 0/0 .text demo_appear__10daNpcTks_cFv */ -void daNpcTks_c::demo_appear() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DF50-80B1DF54 0001F8 0004+00 0/1 0/0 0/0 .rodata @6095 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6095 = 0xC7C05D9D; -COMPILER_STRIP_GATE(0x80B1DF50, &lit_6095); -#pragma pop - -/* 80B1DF54-80B1DF58 0001FC 0004+00 0/1 0/0 0/0 .rodata @6096 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6096 = 0xC68F5596; -COMPILER_STRIP_GATE(0x80B1DF54, &lit_6096); -#pragma pop - -/* 80B1DF58-80B1DF5C 000200 0004+00 0/1 0/0 0/0 .rodata @6097 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6097 = 0x474B5928; -COMPILER_STRIP_GATE(0x80B1DF58, &lit_6097); -#pragma pop - -/* 80B1DF5C-80B1DF60 000204 0004+00 0/1 0/0 0/0 .rodata @6098 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6098 = 25.0f; -COMPILER_STRIP_GATE(0x80B1DF5C, &lit_6098); -#pragma pop - -/* 80B1DF60-80B1DF64 000208 0004+00 0/1 0/0 0/0 .rodata @6099 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6099 = 0xC7C75B77; -COMPILER_STRIP_GATE(0x80B1DF60, &lit_6099); -#pragma pop - -/* 80B1DF64-80B1DF68 00020C 0004+00 0/1 0/0 0/0 .rodata @6100 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6100 = -18470.0f; -COMPILER_STRIP_GATE(0x80B1DF64, &lit_6100); -#pragma pop - -/* 80B1DF68-80B1DF6C 000210 0004+00 0/1 0/0 0/0 .rodata @6101 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6101 = 0x4751289D; -COMPILER_STRIP_GATE(0x80B1DF68, &lit_6101); -#pragma pop - -/* 80B1DF6C-80B1DF70 000214 0004+00 0/1 0/0 0/0 .rodata @6102 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6102 = 2.5f; -COMPILER_STRIP_GATE(0x80B1DF6C, &lit_6102); -#pragma pop - -/* 80B1DF70-80B1DF78 000218 0008+00 0/3 0/0 0/0 .rodata @6103 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6103[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DF70, &lit_6103); -#pragma pop - -/* 80B1DF78-80B1DF80 000220 0008+00 0/3 0/0 0/0 .rodata @6104 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6104[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DF78, &lit_6104); -#pragma pop - -/* 80B1DF80-80B1DF88 000228 0008+00 0/3 0/0 0/0 .rodata @6105 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6105[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B1DF80, &lit_6105); -#pragma pop - -/* 80B1DF88-80B1DF8C 000230 0004+00 0/7 0/0 0/0 .rodata @6106 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6106 = 9.0f; -COMPILER_STRIP_GATE(0x80B1DF88, &lit_6106); -#pragma pop - -/* 80B18D44-80B1926C 004804 0528+00 1/0 0/0 0/0 .text demo_scannon__10daNpcTks_cFv */ -void daNpcTks_c::demo_scannon() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DF8C-80B1DF90 000234 0004+00 1/1 0/0 0/0 .rodata @6141 */ -SECTION_RODATA static f32 const lit_6141 = 13.0f; -COMPILER_STRIP_GATE(0x80B1DF8C, &lit_6141); - -/* 80B1926C-80B1946C 004D2C 0200+00 1/0 0/0 0/0 .text demo_Lv6Gate__10daNpcTks_cFv */ -void daNpcTks_c::demo_Lv6Gate() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1E048-80B1E048 0002F0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B1E09C = "TKS_FAREWELL"; -SECTION_DEAD static char const* const stringBase_80B1E0A9 = "TKS_FAREWELL_SKIP"; -SECTION_DEAD static char const* const stringBase_80B1E0BB = "pos"; -#pragma pop - -/* 80B1946C-80B19DAC 004F2C 0940+00 1/0 0/0 0/0 .text demo_farewell__10daNpcTks_cFv */ -void daNpcTks_c::demo_farewell() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DF90-80B1DF94 000238 0004+00 0/1 0/0 0/0 .rodata @6417 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6417 = 950.0f; -COMPILER_STRIP_GATE(0x80B1DF90, &lit_6417); -#pragma pop - -/* 80B1DF94-80B1DF98 00023C 0004+00 0/1 0/0 0/0 .rodata @6418 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6418 = 3700.0f; -COMPILER_STRIP_GATE(0x80B1DF94, &lit_6418); -#pragma pop - -/* 80B1DF98-80B1DF9C 000240 0004+00 0/1 0/0 0/0 .rodata @6419 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6419 = -4220.0f; -COMPILER_STRIP_GATE(0x80B1DF98, &lit_6419); -#pragma pop - -/* 80B1DF9C-80B1DFA0 000244 0004+00 0/1 0/0 0/0 .rodata @6420 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6420 = 3500.0f; -COMPILER_STRIP_GATE(0x80B1DF9C, &lit_6420); -#pragma pop - -/* 80B1DFA0-80B1DFA4 000248 0004+00 0/1 0/0 0/0 .rodata @6421 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6421 = 3360.0f; -COMPILER_STRIP_GATE(0x80B1DFA0, &lit_6421); -#pragma pop - -/* 80B1DFA4-80B1DFA8 00024C 0004+00 0/1 0/0 0/0 .rodata @6422 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6422 = -2010.0f; -COMPILER_STRIP_GATE(0x80B1DFA4, &lit_6422); -#pragma pop - -/* 80B1DFA8-80B1DFAC 000250 0004+00 0/1 0/0 0/0 .rodata @6423 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6423 = -1810.0f; -COMPILER_STRIP_GATE(0x80B1DFA8, &lit_6423); -#pragma pop - -/* 80B1DFAC-80B1DFB0 000254 0004+00 0/2 0/0 0/0 .rodata @6424 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6424 = 12.0f; -COMPILER_STRIP_GATE(0x80B1DFAC, &lit_6424); -#pragma pop - -/* 80B1DFB0-80B1DFB4 000258 0004+00 0/2 0/0 0/0 .rodata @6425 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6425 = 33.0f; -COMPILER_STRIP_GATE(0x80B1DFB0, &lit_6425); -#pragma pop - -/* 80B1DFB4-80B1DFB8 00025C 0004+00 0/2 0/0 0/0 .rodata @6426 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6426 = 200.0f; -COMPILER_STRIP_GATE(0x80B1DFB4, &lit_6426); -#pragma pop - -/* 80B1DFB8-80B1DFBC 000260 0004+00 0/4 0/0 0/0 .rodata @6427 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6427 = 3.0f / 20.0f; -COMPILER_STRIP_GATE(0x80B1DFB8, &lit_6427); -#pragma pop - -/* 80B1DFBC-80B1DFC0 000264 0004+00 0/4 0/0 0/0 .rodata @6428 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6428 = 17.0f / 20.0f; -COMPILER_STRIP_GATE(0x80B1DFBC, &lit_6428); -#pragma pop - -/* 80B1E048-80B1E048 0002F0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B1E0BF = "TKS_WARPBACK"; -#pragma pop - -/* 80B19DAC-80B1A30C 00586C 0560+00 1/0 0/0 0/0 .text demo_warpBack__10daNpcTks_cFv */ -void daNpcTks_c::demo_warpBack() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DFC0-80B1DFC4 000268 0004+00 0/1 0/0 0/0 .rodata @6538 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6538 = -150.0f; -COMPILER_STRIP_GATE(0x80B1DFC0, &lit_6538); -#pragma pop - -/* 80B1DFC4-80B1DFC8 00026C 0004+00 0/1 0/0 0/0 .rodata @6539 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6539 = 6600.0f; -COMPILER_STRIP_GATE(0x80B1DFC4, &lit_6539); -#pragma pop - -/* 80B1DFC8-80B1DFCC 000270 0004+00 0/1 0/0 0/0 .rodata @6540 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6540 = 4955.0f; -COMPILER_STRIP_GATE(0x80B1DFC8, &lit_6540); -#pragma pop - -/* 80B1DFCC-80B1DFD0 000274 0004+00 0/1 0/0 0/0 .rodata @6541 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6541 = 5480.0f; -COMPILER_STRIP_GATE(0x80B1DFCC, &lit_6541); -#pragma pop - -/* 80B1DFD0-80B1DFD4 000278 0004+00 0/1 0/0 0/0 .rodata @6542 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6542 = 31.0f; -COMPILER_STRIP_GATE(0x80B1DFD0, &lit_6542); -#pragma pop - -/* 80B1A30C-80B1A888 005DCC 057C+00 1/0 0/0 0/0 .text demo_walkBack__10daNpcTks_cFv */ -void daNpcTks_c::demo_walkBack() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1DFD4-80B1DFDC 00027C 0008+00 0/1 0/0 0/0 .rodata @6632 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6632[8] = { - 0x00, 0x00, 0x25, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80B1DFD4, &lit_6632); -#pragma pop - -/* 80B1DFDC-80B1DFE0 000284 0004+00 0/1 0/0 0/0 .rodata @6820 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6820 = 120.0f; -COMPILER_STRIP_GATE(0x80B1DFDC, &lit_6820); -#pragma pop - -/* 80B1DFE0-80B1DFE4 000288 0004+00 0/1 0/0 0/0 .rodata @6821 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6821 = 3000.0f; -COMPILER_STRIP_GATE(0x80B1DFE0, &lit_6821); -#pragma pop - -/* 80B1DFE4-80B1DFE8 00028C 0004+00 0/1 0/0 0/0 .rodata @6822 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6822 = 5500.0f; -COMPILER_STRIP_GATE(0x80B1DFE4, &lit_6822); -#pragma pop - -/* 80B1DFE8-80B1DFF0 000290 0008+00 0/1 0/0 0/0 .rodata @6823 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6823[8] = { - 0x3F, 0xE6, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, -}; -COMPILER_STRIP_GATE(0x80B1DFE8, &lit_6823); -#pragma pop - -/* 80B1DFF0-80B1DFF4 000298 0004+00 0/1 0/0 0/0 .rodata @6824 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6824 = 7.0f / 10.0f; -COMPILER_STRIP_GATE(0x80B1DFF0, &lit_6824); -#pragma pop - -/* 80B1DFF4-80B1DFF8 00029C 0004+00 0/1 0/0 0/0 .rodata @6825 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6825 = 2.0f / 25.0f; -COMPILER_STRIP_GATE(0x80B1DFF4, &lit_6825); -#pragma pop - -/* 80B1DFF8-80B1DFFC 0002A0 0004+00 0/1 0/0 0/0 .rodata @6826 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6826 = 0x44CB61E3; -COMPILER_STRIP_GATE(0x80B1DFF8, &lit_6826); -#pragma pop - -/* 80B1DFFC-80B1E000 0002A4 0004+00 0/2 0/0 0/0 .rodata @6827 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6827 = -250.0f; -COMPILER_STRIP_GATE(0x80B1DFFC, &lit_6827); -#pragma pop - -/* 80B1E000-80B1E004 0002A8 0004+00 0/1 0/0 0/0 .rodata @6828 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6828 = 0x45AFAD5E; -COMPILER_STRIP_GATE(0x80B1E000, &lit_6828); -#pragma pop - -/* 80B1E004-80B1E008 0002AC 0004+00 0/1 0/0 0/0 .rodata @6829 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6829 = 0x4557D315; -COMPILER_STRIP_GATE(0x80B1E004, &lit_6829); -#pragma pop - -/* 80B1E008-80B1E00C 0002B0 0004+00 0/1 0/0 0/0 .rodata @6830 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6830 = 0x45AB6F61; -COMPILER_STRIP_GATE(0x80B1E008, &lit_6830); -#pragma pop - -/* 80B1E00C-80B1E010 0002B4 0004+00 0/1 0/0 0/0 .rodata @6831 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6831 = 8.0f; -COMPILER_STRIP_GATE(0x80B1E00C, &lit_6831); -#pragma pop - -/* 80B1A888-80B1B6A0 006348 0E18+00 1/0 0/0 0/0 .text demo_Lv7Start__10daNpcTks_cFv */ -void daNpcTks_c::demo_Lv7Start() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1E010-80B1E014 0002B8 0004+00 0/1 0/0 0/0 .rodata @6974 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6974 = 1225.0f; -COMPILER_STRIP_GATE(0x80B1E010, &lit_6974); -#pragma pop - -/* 80B1E014-80B1E018 0002BC 0004+00 0/1 0/0 0/0 .rodata @6975 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6975 = 0x4666452A; -COMPILER_STRIP_GATE(0x80B1E014, &lit_6975); -#pragma pop - -/* 80B1E018-80B1E01C 0002C0 0004+00 0/1 0/0 0/0 .rodata @6976 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_6976 = 0x4572DB97; -COMPILER_STRIP_GATE(0x80B1E018, &lit_6976); -#pragma pop - -/* 80B1E01C-80B1E020 0002C4 0004+00 0/1 0/0 0/0 .rodata @6977 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6977 = -2.0f; -COMPILER_STRIP_GATE(0x80B1E01C, &lit_6977); -#pragma pop - -/* 80B1E048-80B1E048 0002F0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B1E0CC = "D_MN01"; -#pragma pop - -/* 80B1B6A0-80B1BD64 007160 06C4+00 2/0 0/0 0/0 .text demo_Lv3PickUp__10daNpcTks_cFv */ -void daNpcTks_c::demo_Lv3PickUp() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1E020-80B1E024 0002C8 0004+00 0/1 0/0 0/0 .rodata @7108 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_7108 = 0xC133A190; -COMPILER_STRIP_GATE(0x80B1E020, &lit_7108); -#pragma pop - -/* 80B1E024-80B1E028 0002CC 0004+00 0/1 0/0 0/0 .rodata @7109 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_7109 = 0x4509C266; -COMPILER_STRIP_GATE(0x80B1E024, &lit_7109); -#pragma pop - -/* 80B1E028-80B1E02C 0002D0 0004+00 0/1 0/0 0/0 .rodata @7110 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_7110 = 0x46879A69; -COMPILER_STRIP_GATE(0x80B1E028, &lit_7110); -#pragma pop - -/* 80B1E02C-80B1E030 0002D4 0004+00 0/1 0/0 0/0 .rodata @7111 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7111 = -275.0f; -COMPILER_STRIP_GATE(0x80B1E02C, &lit_7111); -#pragma pop - -/* 80B1E030-80B1E034 0002D8 0004+00 0/1 0/0 0/0 .rodata @7112 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7112 = 1900.0f; -COMPILER_STRIP_GATE(0x80B1E030, &lit_7112); -#pragma pop - -/* 80B1E034-80B1E038 0002DC 0004+00 0/1 0/0 0/0 .rodata @7113 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7113 = 16.0f; -COMPILER_STRIP_GATE(0x80B1E034, &lit_7113); -#pragma pop - -/* 80B1E038-80B1E03C 0002E0 0004+00 0/1 0/0 0/0 .rodata @7114 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7114 = 36.0f; -COMPILER_STRIP_GATE(0x80B1E038, &lit_7114); -#pragma pop - -/* 80B1E048-80B1E048 0002F0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B1E0D3 = "D_MN05"; -SECTION_DEAD static char const* const stringBase_80B1E0DA = "D_MN06"; -#pragma pop - -/* 80B1BD64-80B1C3C8 007824 0664+00 1/0 0/0 0/0 .text demo_Lv6PickUp__10daNpcTks_cFv */ -void daNpcTks_c::demo_Lv6PickUp() { - // NONMATCHING -} - -/* 80B1C3C8-80B1C3E8 007E88 0020+00 1/0 0/0 0/0 .text daNpcTks_Create__FPv */ -static void daNpcTks_Create(void* param_0) { - // NONMATCHING -} - -/* 80B1C3E8-80B1C408 007EA8 0020+00 1/0 0/0 0/0 .text daNpcTks_Delete__FPv */ -static void daNpcTks_Delete(void* param_0) { - // NONMATCHING -} - -/* 80B1C408-80B1C428 007EC8 0020+00 1/0 0/0 0/0 .text daNpcTks_Execute__FPv */ -static void daNpcTks_Execute(void* param_0) { - // NONMATCHING -} - -/* 80B1C428-80B1C448 007EE8 0020+00 1/0 0/0 0/0 .text daNpcTks_Draw__FPv */ -static void daNpcTks_Draw(void* param_0) { - // NONMATCHING -} - -/* 80B1C448-80B1C450 007F08 0008+00 1/0 0/0 0/0 .text daNpcTks_IsDelete__FPv */ -static bool daNpcTks_IsDelete(void* param_0) { - return true; -} - -/* 80B1C450-80B1C480 007F10 0030+00 1/0 0/0 0/0 .text calc__11J3DTexNoAnmCFPUs */ -// void J3DTexNoAnm::calc(u16* param_0) const { -extern "C" void calc__11J3DTexNoAnmCFPUs() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1E03C-80B1E040 0002E4 0004+00 0/1 0/0 0/0 .rodata @7156 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7156 = -50.0f; -COMPILER_STRIP_GATE(0x80B1E03C, &lit_7156); -#pragma pop - -/* 80B1C480-80B1C4F8 007F40 0078+00 1/0 0/0 0/0 .text setParam__10daNpcTks_cFv */ -void daNpcTks_c::setParam() { - // NONMATCHING -} - -/* 80B1C4F8-80B1CB4C 007FB8 0654+00 1/0 0/0 0/0 .text main__10daNpcTks_cFv */ -void daNpcTks_c::main() { - // NONMATCHING -} - -/* 80B1CB4C-80B1CB54 00860C 0008+00 1/1 0/0 0/0 .text cLib_checkBit
    __FUlUl */ -extern "C" void func_80B1CB4C(void* _this, u32 param_0, u32 param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1E040-80B1E044 0002E8 0004+00 1/1 0/0 0/0 .rodata @7278 */ -SECTION_RODATA static f32 const lit_7278 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x80B1E040, &lit_7278); - -/* 80B1CB54-80B1CC28 008614 00D4+00 1/0 0/0 0/0 .text ctrlBtk__10daNpcTks_cFv */ -void daNpcTks_c::ctrlBtk() { - // NONMATCHING -} - -/* 80B1CC28-80B1CFD0 0086E8 03A8+00 1/0 0/0 0/0 .text setAttnPos__10daNpcTks_cFv */ -void daNpcTks_c::setAttnPos() { - // NONMATCHING -} - -/* 80B1CFD0-80B1D1FC 008A90 022C+00 1/1 0/0 0/0 .text lookat__10daNpcTks_cFv */ -void daNpcTks_c::lookat() { - // NONMATCHING -} - -/* 80B1D1FC-80B1D204 008CBC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__10daNpcTks_cFv */ -bool daNpcTks_c::drawDbgInfo() { - return false; -} - -/* 80B1D204-80B1D35C 008CC4 0158+00 1/0 0/0 0/0 .text drawOtherMdls__10daNpcTks_cFv */ -void daNpcTks_c::drawOtherMdls() { - // NONMATCHING -} - -/* 80B1D35C-80B1D368 008E1C 000C+00 1/1 0/0 0/0 .text sinShort__Q25JMath18TSinCosTable<13,f>CFs */ -extern "C" void func_80B1D35C(void* _this, s16 param_0) /* const */ { - // NONMATCHING -} - -/* 80B1D368-80B1D384 008E28 001C+00 7/7 0/0 0/0 .text cLib_calcTimer__FPi */ -extern "C" void func_80B1D368(void* _this, int* param_0) { - // NONMATCHING -} - -/* 80B1D384-80B1D400 008E44 007C+00 2/2 0/0 0/0 .text cLib_getRndValue__Fii */ -extern "C" void func_80B1D384(void* _this, int param_0, int param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1E530-80B1E53C 00044C 000C+00 2/2 0/0 0/0 .data __vt__16daNpcTks_Param_c */ -SECTION_DATA extern void* __vt__16daNpcTks_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__16daNpcTks_Param_cFv, -}; - -/* 80B1E548-80B1E554 000008 000C+00 1/1 0/0 0/0 .bss @3935 */ -static u8 lit_3935[12]; - -/* 80B1E554-80B1E558 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 80B1D400-80B1D440 008EC0 0040+00 0/0 1/0 0/0 .text __sinit_d_a_npc_tks_cpp */ -void __sinit_d_a_npc_tks_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80B1D400, __sinit_d_a_npc_tks_cpp); -#pragma pop - -/* 80B1D440-80B1D488 008F00 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 -} - -/* 80B1D488-80B1D4C4 008F48 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 -} - -/* 80B1D4C4-80B1D594 008F84 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 -} - -/* 80B1D594-80B1D598 009054 0004+00 2/2 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 80B1D598-80B1D59C 009058 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 80B1D59C-80B1D5D8 00905C 003C+00 5/5 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 80B1D5D8-80B1D620 009098 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80B1D620-80B1D668 0090E0 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80B1D668-80B1D6A4 009128 003C+00 5/5 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80B1D6A4-80B1D6DC 009164 0038+00 1/1 0/0 0/0 .text __ct__11J3DLightObjFv */ -// J3DLightObj::J3DLightObj() { -extern "C" void __ct__11J3DLightObjFv() { - // NONMATCHING -} - -/* 80B1D6DC-80B1D928 00919C 024C+00 1/1 0/0 0/0 .text __dt__8daNpcF_cFv */ -// daNpcF_c::~daNpcF_c() { -extern "C" void __dt__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80B1D928-80B1DB18 0093E8 01F0+00 1/1 0/0 0/0 .text __ct__8daNpcF_cFv */ -// daNpcF_c::daNpcF_c() { -extern "C" void __ct__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80B1DB18-80B1DB88 0095D8 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80B1DB88-80B1DBE4 009648 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80B1DBE4-80B1DC54 0096A4 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80B1DC54-80B1DC9C 009714 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 80B1DC9C-80B1DCA0 00975C 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__8daNpcF_cFv */ -// void daNpcF_c::adjustShapeAngle() { -extern "C" void adjustShapeAngle__8daNpcF_cFv() { - /* empty function */ -} - -/* 80B1DCA0-80B1DCA4 009760 0004+00 1/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */ -// void daNpcF_c::setCollisions() { -extern "C" void setCollisions__8daNpcF_cFv() { - /* empty function */ -} - -/* 80B1DCA4-80B1DCEC 009764 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 80B1DCEC-80B1DD34 0097AC 0048+00 2/1 0/0 0/0 .text __dt__16daNpcTks_Param_cFv */ -daNpcTks_Param_c::~daNpcTks_Param_c() { - // NONMATCHING -} - -/* 80B1DD34-80B1DD3C 0097F4 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80B1DD34() { - // NONMATCHING -} - -/* 80B1DD3C-80B1DD44 0097FC 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80B1DD3C() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B1E044-80B1E048 0002EC 0004+00 0/0 0/0 0/0 .rodata @7420 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_7420 = 40.0f; -COMPILER_STRIP_GATE(0x80B1E044, &lit_7420); -#pragma pop - -/* 80B1E048-80B1E048 0002F0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */