From 4b5277295ed47d4c83105d06af6df49cfcfafd56 Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Sun, 9 Nov 2025 01:20:51 -0800 Subject: [PATCH] npcinko / myna2 done (#2780) * npcinko done * myna2 done * Use sound enum * Use FALSE instead of false when returning BOOL * Use look mode enum * TRUE instead of true when returning bool --------- Co-authored-by: hatal175 --- configure.py | 4 +- include/d/actor/d_a_npc_inko.h | 41 +- include/d/actor/d_a_npc_myna2.h | 112 +- include/d/d_com_inf_game.h | 4 + include/d/d_save.h | 5 +- src/d/actor/d_a_npc_inko.cpp | 866 ++++----- src/d/actor/d_a_npc_myna2.cpp | 3012 ++++++++++++++----------------- 7 files changed, 1882 insertions(+), 2162 deletions(-) diff --git a/configure.py b/configure.py index 1b390be3cdf..78cdb7cb499 100755 --- a/configure.py +++ b/configure.py @@ -1876,7 +1876,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_henna0"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_hoz"), ActorRel(NonMatching, "d_a_npc_impal", extra_cflags=[DANPCF_C_HACK]), - ActorRel(NonMatching, "d_a_npc_inko"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_inko"), ActorRel(Equivalent, "d_a_npc_ins", extra_cflags=[DANPCF_C_HACK]), # weak func order ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_jagar"), ActorRel(NonMatching, "d_a_npc_kasi_hana", extra_cflags=[DANPCF_C_HACK]), @@ -1895,7 +1895,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_mk"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_moi"), ActorRel(NonMatching, "d_a_npc_moir", extra_cflags=[DANPCF_C_HACK]), - ActorRel(NonMatching, "d_a_npc_myna2"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_myna2", extra_cflags=[DANPCF_C_HACK]), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_ne"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_p2"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_pachi_besu"), diff --git a/include/d/actor/d_a_npc_inko.h b/include/d/actor/d_a_npc_inko.h index ae0991908c9..3b5358f1f25 100644 --- a/include/d/actor/d_a_npc_inko.h +++ b/include/d/actor/d_a_npc_inko.h @@ -1,7 +1,8 @@ #ifndef D_A_NPC_INKO_H #define D_A_NPC_INKO_H -#include "d/actor/d_a_npc.h" +#include "f_op/f_op_actor_mng.h" +#include "d/d_msg_flow.h" /** * @ingroup actors-npcs @@ -11,9 +12,41 @@ * @details * */ -class npc_inko_class : public fopAc_ac_c { -private: - /* 0x568 */ u8 field_0x568[0x648 - 0x568]; +class npc_inko_class { +public: + /* 0x000 */ fopAc_ac_c actor; + /* 0x568 */ request_of_phase_process_class phase; + /* 0x570 */ u8 field_0x570; + /* 0x574 */ Z2SoundObjSimple sound; + /* 0x594 */ u8 field_0x594[0x596 - 0x594]; + /* 0x596 */ s16 field_0x596; + /* 0x598 */ s8 field_0x598; + /* 0x59A */ s16 field_0x59a; + /* 0x59C */ s16 field_0x59c[4]; + /* 0x5A4 */ int anmId; + /* 0x5A8 */ f32 field_0x5a8; + /* 0x5AC */ f32 field_0x5ac; + /* 0x5B0 */ f32 field_0x5b0; + /* 0x5B4 */ cXyz field_0x5b4; + /* 0x5C0 */ csXyz field_0x5c0; + /* 0x5C6 */ s8 field_0x5c6; + /* 0x5C8 */ csXyz field_0x5c8; + /* 0x5CE */ csXyz field_0x5ce; + /* 0x5D4 */ s16 field_0x5d4[2]; + /* 0x5D8 */ s16 field_0x5d8[2]; + /* 0x5DC */ s8 field_0x5dc[2]; + /* 0x5DE */ u8 field_0x5DE[0x5E0 - 0x5DE]; + /* 0x5E0 */ s16 field_0x5e0; + /* 0x5E2 */ s16 field_0x5e2; + /* 0x5E4 */ s8 field_0x5e4; + /* 0x5E6 */ s16 field_0x5e6; + /* 0x5E8 */ f32 field_0x5e8; + /* 0x5EC */ s16 field_0x5ec; + /* 0x5F0 */ mDoExt_McaMorf* anm_p; + /* 0x5F4 */ u8 field_0x5f4; + /* 0x5F5 */ u8 field_0x5f5; + /* 0x5F8 */ dMsgFlow_c msgflow; + /* 0x644 */ u8 field_0x644[0x648 - 0x644]; }; STATIC_ASSERT(sizeof(npc_inko_class) == 0x648); diff --git a/include/d/actor/d_a_npc_myna2.h b/include/d/actor/d_a_npc_myna2.h index 01dc6db10f0..2c47c65aa6d 100644 --- a/include/d/actor/d_a_npc_myna2.h +++ b/include/d/actor/d_a_npc_myna2.h @@ -6,65 +6,99 @@ /** * @ingroup actors-npcs * @class daNpc_myna2_c - * @brief PLumm + * @brief Plumm * * @details * */ -class daNpc_myna2_c : public fopAc_ac_c { +class daNpc_myna2_c : public daNpcF_c { public: + typedef BOOL (daNpc_myna2_c::*ActionFn)(void*); + typedef BOOL (daNpc_myna2_c::*EventFn)(int); + /* 80A83E8C */ daNpc_myna2_c(); - /* 80A840A0 */ ~daNpc_myna2_c(); - /* 80A842C8 */ void create(); - /* 80A845AC */ void CreateHeap(); - /* 80A846E0 */ void Delete(); - /* 80A84714 */ void Execute(); - /* 80A84734 */ void Draw(); - /* 80A847A8 */ void createHeapCallBack(fopAc_ac_c*); - /* 80A847C8 */ void setParam(); - /* 80A848B4 */ void main(); - /* 80A84B64 */ void setAttnPos(); - /* 80A84DAC */ void setExpressionBtp(int); - /* 80A84EAC */ bool setMotionAnm(int, f32); - /* 80A84FEC */ void setMotion(int, f32, int); - /* 80A85030 */ bool drawDbgInfo(); - /* 80A85038 */ void drawOtherMdls(); - /* 80A8503C */ void getTypeFromParam(); - /* 80A85094 */ void isDelete(); + /* 80A840A0 */ virtual ~daNpc_myna2_c(); + /* 80A842C8 */ int create(); + /* 80A845AC */ int CreateHeap(); + /* 80A846E0 */ int Delete(); + /* 80A84714 */ int Execute(); + /* 80A84734 */ int Draw(); + /* 80A847A8 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80A8503C */ u8 getTypeFromParam(); + /* 80A85094 */ int isDelete(); /* 80A85160 */ void reset(); /* 80A85358 */ void playMotion(); - /* 80A855E8 */ void chkAction(int (daNpc_myna2_c::*)(void*)); - /* 80A85614 */ void setAction(int (daNpc_myna2_c::*)(void*)); - /* 80A856BC */ void selectAction(); + /* 80A855E8 */ int chkAction(int (daNpc_myna2_c::*)(void*)); + /* 80A85614 */ int setAction(int (daNpc_myna2_c::*)(void*)); + /* 80A856BC */ int selectAction(); /* 80A857B0 */ void doNormalAction(int); - /* 80A85894 */ void doEvent(); + /* 80A85894 */ BOOL doEvent(); /* 80A85BA4 */ void setLookMode(int); - /* 80A85BC8 */ void wait(void*); - /* 80A85C60 */ void waitHovering(void*); - /* 80A86194 */ void waitFailure(void*); - /* 80A862BC */ void waitGoal(void*); - /* 80A86400 */ void talk(void*); - /* 80A865FC */ void test(void*); - /* 80A866B0 */ void ECut_firstTalk(int); - /* 80A8684C */ void ECut_gameFailure(int); - /* 80A86A0C */ void ECut_gameGoal(int); - /* 80A86BEC */ void ECut_gameGoalSuccess(int); + /* 80A85BC8 */ int wait(void*); + /* 80A85C60 */ int waitHovering(void*); + /* 80A86194 */ int waitFailure(void*); + /* 80A862BC */ int waitGoal(void*); + /* 80A86400 */ int talk(void*); + /* 80A865FC */ int test(void*); + /* 80A866B0 */ int ECut_firstTalk(int); + /* 80A8684C */ int ECut_gameFailure(int); + /* 80A86A0C */ int ECut_gameGoal(int); + /* 80A86BEC */ int ECut_gameGoalSuccess(int); /* 80A86E8C */ void calcHovering(int, int); - static char* mEvtCutNameList[5]; - static u8 mEvtCutList[60]; + /* 80A847C8 */ virtual void setParam(); + /* 80A848B4 */ virtual BOOL main(); + /* 80A84B64 */ virtual void setAttnPos(); + /* 80A84DAC */ virtual bool setExpressionBtp(int); + /* 80A84EAC */ virtual void setMotionAnm(int, f32); + /* 80A84FEC */ virtual void setMotion(int, f32, int); + /* 80A85030 */ virtual BOOL drawDbgInfo(); + /* 80A85038 */ virtual void drawOtherMdls(); -private: - /* 0x568 */ u8 field_0x568[0xe34 - 0x568]; + int getType() { return mType; } + + static char* mEvtCutNameList[5]; + static EventFn mEvtCutList[]; + + /* 0xB48 */ u8 field_0xB48[0xB4C - 0xB48]; + /* 0xB4C */ daNpcF_Lookat_c mLookat; + /* 0xBE8 */ Z2CreatureSumomo mSound; + /* 0xC78 */ daNpcF_ActorMngr_c mActorMgrs[1]; + /* 0xC80 */ u8 field_0xC80[0xC84 - 0xC80]; + /* 0xC84 */ dCcD_Cyl mCyl; + /* 0xDC0 */ ActionFn mNextAction; + /* 0xDCC */ ActionFn mAction; + /* 0xDD8 */ request_of_phase_process_class mPhase[3]; + /* 0xDF0 */ fpc_ProcID mItemPid; + /* 0xDF4 */ int field_0xdf4; + /* 0xDF8 */ int field_0xdf8; + /* 0xDFC */ int field_0xdfc; + /* 0xE00 */ int field_0xe00; + /* 0xE04 */ int field_0xe04; + /* 0xE08 */ s16 mLookMode; + /* 0xE0A */ u16 mMode; + /* 0xE0C */ u8 mType; + /* 0xE0D */ u8 field_0xe0d; + /* 0xE10 */ cXyz field_0xe10; + /* 0xE1C */ cXyz field_0xe1c; + /* 0xE28 */ int field_0xe28; + /* 0xE2C */ int field_0xe2c; + /* 0xE30 */ f32 field_0xe30; }; STATIC_ASSERT(sizeof(daNpc_myna2_c) == 0xe34); +struct daNpc_myna2_HIOParam { + /* 0x00 */ daNpcF_HIOParam common; + /* 0x6C */ f32 field_0x6c; + /* 0x70 */ f32 field_0x70; +}; + class daNpc_myna2_Param_c { public: - /* 80A883C8 */ ~daNpc_myna2_Param_c(); + /* 80A883C8 */ virtual ~daNpc_myna2_Param_c() {} - static u8 const m[116]; + static const daNpc_myna2_HIOParam m; }; diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 5401dfdb45b..448495a1d82 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -1784,6 +1784,10 @@ inline u32 dComIfGs_getBalloonScore() { return g_dComIfG_gameInfo.info.getMiniGame().getBalloonScore(); } +inline void dComIfGs_setBalloonScore(u32 i_score) { + g_dComIfG_gameInfo.info.getMiniGame().setBalloonScore(i_score); +} + inline u8 dComIfGs_getTransformStatus() { return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getTransformStatus(); } diff --git a/include/d/d_save.h b/include/d/d_save.h index d83a7e35d94..bd1b360abbf 100644 --- a/include/d/d_save.h +++ b/include/d/d_save.h @@ -674,11 +674,12 @@ class dSv_MiniGame_c { public: void init(); + void setBalloonScore(u32 i_score) { mBalloonScore = i_score; } + void setRaceGameTime(u32 i_time) { mRaceGameTime = i_time; } + u32 getRaceGameTime() const { return mRaceGameTime; } u32 getBalloonScore() const { return mBalloonScore; } - void setRaceGameTime(u32 i_time) { mRaceGameTime = i_time; } - private: /* 0x00 */ u8 unk0[1][4]; /* 0x04 */ u32 mStarTime; diff --git a/src/d/actor/d_a_npc_inko.cpp b/src/d/actor/d_a_npc_inko.cpp index b9079b61df0..73e098e4bf6 100644 --- a/src/d/actor/d_a_npc_inko.cpp +++ b/src/d/actor/d_a_npc_inko.cpp @@ -6,455 +6,481 @@ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_npc_inko.h" -#include "dol2asm.h" - - -// -// Forward References: -// - -extern "C" static void nodeCallBack__FP8J3DJointi(); -extern "C" static void daNpc_Inko_Draw__FP14npc_inko_class(); -extern "C" static void anm_init__FP14npc_inko_classifUcf(); -extern "C" static void daNpc_Inko_Execute__FP14npc_inko_class(); -extern "C" static bool daNpc_Inko_IsDelete__FP14npc_inko_class(); -extern "C" static void daNpc_Inko_Delete__FP14npc_inko_class(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" static void daNpc_Inko_Create__FP10fopAc_ac_c(); -extern "C" extern char const* const d_a_npc_inko__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_XrotM__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void transM__14mDoMtx_stack_cFfff(); -extern "C" void -__ct__14mDoExt_McaMorfFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiiPvUlUl(); -extern "C" void setAnm__14mDoExt_McaMorfFP15J3DAnmTransformiffffPv(); -extern "C" void play__14mDoExt_McaMorfFP3VecUlSc(); -extern "C" void entryDL__14mDoExt_McaMorfFv(); -extern "C" void modelCalc__14mDoExt_McaMorfFv(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_SetMin__FP10fopAc_ac_cfff(); -extern "C" void fopAcM_SetMax__FP10fopAc_ac_cfff(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fpcSch_JudgeForPName__FPvPv(); -extern "C" void fpcSch_JudgeByID__FPvPv(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void setLookPos__9daPy_py_cFP4cXyz(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c(); -extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void cM_rndF__Ff(); -extern "C" void cM_rndFX__Ff(); -extern "C" void cLib_addCalc2__FPffff(); -extern "C" void cLib_addCalcAngleS2__FPssss(); -extern "C" void deleteObject__14Z2SoundObjBaseFv(); -extern "C" void __ct__16Z2SoundObjSimpleFv(); -extern "C" void* __nw__FUl(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern u8 cDmr_SkipInfo[4]; - -// -// Declarations: -// +#include "d/actor/d_a_obj_kage.h" +#include "d/actor/d_a_npc_henna.h" +#include "d/actor/d_a_player.h" +#include "d/d_s_play.h" +#include "c/c_damagereaction.h" /* 80A0C998-80A0CBB0 000078 0218+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */ -static void nodeCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING +static int nodeCallBack(J3DJoint* i_joint, int param_1) { + if (param_1 == 0) { + int jnt_no = i_joint->getJntNo(); + J3DModel* model = j3dSys.getModel(); + npc_inko_class* i_this = (npc_inko_class*)model->getUserArea(); + + if (i_this != NULL) { + MTXCopy(model->getAnmMtx(jnt_no), *calc_mtx); + if (jnt_no == 1) { + cMtx_YrotM(*calc_mtx, i_this->field_0x5c8.y); + cMtx_XrotM(*calc_mtx, i_this->field_0x5c8.x); + cMtx_ZrotM(*calc_mtx, i_this->field_0x5c8.z); + } else if (jnt_no == 2) { + cMtx_ZrotM(*calc_mtx, i_this->field_0x5e6); + } else if (jnt_no == 3) { + cMtx_ZrotM(*calc_mtx, i_this->field_0x5e0); + } else if (jnt_no == 4) { + cMtx_ZrotM(*calc_mtx, -i_this->field_0x5e0); + } else if (jnt_no == 5 || jnt_no == 6) { + cMtx_XrotM(*calc_mtx, i_this->field_0x5d4[jnt_no - 5]); + } + + model->setAnmMtx(jnt_no, *calc_mtx); + MTXCopy(*calc_mtx, J3DSys::mCurrentMtx); + + if (jnt_no == TREG_S(0)) { + MTXCopy(model->getAnmMtx(jnt_no), *calc_mtx); + cMtx_YrotM(*calc_mtx, TREG_S(1)); + cMtx_XrotM(*calc_mtx, TREG_S(2)); + cMtx_ZrotM(*calc_mtx, TREG_S(3)); + model->setAnmMtx(jnt_no, *calc_mtx); + MTXCopy(*calc_mtx, J3DSys::mCurrentMtx); + } + } + } + + return 1; } /* 80A0CBB0-80A0CC18 000290 0068+00 1/0 0/0 0/0 .text daNpc_Inko_Draw__FP14npc_inko_class */ -static void daNpc_Inko_Draw(npc_inko_class* param_0) { - // NONMATCHING +static int daNpc_Inko_Draw(npc_inko_class* i_this) { + fopAc_ac_c* actor = &i_this->actor; + g_env_light.settingTevStruct(0, &actor->current.pos, &actor->tevStr); + g_env_light.setLightTevColorType_MAJI(i_this->anm_p->getModel(), &actor->tevStr); + i_this->anm_p->entryDL(); + return 1; } -/* ############################################################################################## */ -/* 80A0E014-80A0E018 000000 0004+00 3/3 0/0 0/0 .rodata @3849 */ -SECTION_RODATA static u8 const lit_3849[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A0E014, &lit_3849); - -/* 80A0E018-80A0E01C 000004 0004+00 1/2 0/0 0/0 .rodata @3850 */ -SECTION_RODATA static f32 const lit_3850 = -1.0f; -COMPILER_STRIP_GATE(0x80A0E018, &lit_3850); - -/* 80A0E0CC-80A0E0CC 0000B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80A0E0CC = "Npc_inko"; -#pragma pop - /* 80A0CC18-80A0CCC8 0002F8 00B0+00 1/1 0/0 0/0 .text anm_init__FP14npc_inko_classifUcf */ -static void anm_init(npc_inko_class* param_0, int param_1, f32 param_2, u8 param_3, - f32 param_4) { - // NONMATCHING +static void anm_init(npc_inko_class* i_this, int i_anmId, f32 i_morf, u8 i_mode, f32 i_speed) { + i_this->anm_p->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("Npc_inko", i_anmId), i_mode, i_morf, i_speed, 0.0f, -1.0f, NULL); + i_this->anmId = i_anmId; } -/* ############################################################################################## */ -/* 80A0E01C-80A0E020 000008 0004+00 0/1 0/0 0/0 .rodata @4329 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4329 = -78.0f; -COMPILER_STRIP_GATE(0x80A0E01C, &lit_4329); -#pragma pop - -/* 80A0E020-80A0E024 00000C 0004+00 0/1 0/0 0/0 .rodata @4330 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4330 = -5.0f; -COMPILER_STRIP_GATE(0x80A0E020, &lit_4330); -#pragma pop - -/* 80A0E024-80A0E028 000010 0004+00 0/1 0/0 0/0 .rodata @4331 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4331 = 40.0f; -COMPILER_STRIP_GATE(0x80A0E024, &lit_4331); -#pragma pop - -/* 80A0E028-80A0E02C 000014 0004+00 0/1 0/0 0/0 .rodata @4332 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4332 = 30.0f; -COMPILER_STRIP_GATE(0x80A0E028, &lit_4332); -#pragma pop - -/* 80A0E02C-80A0E030 000018 0004+00 0/1 0/0 0/0 .rodata @4333 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4333 = 70.0f; -COMPILER_STRIP_GATE(0x80A0E02C, &lit_4333); -#pragma pop - -/* 80A0E030-80A0E034 00001C 0004+00 0/1 0/0 0/0 .rodata @4334 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4334 = 10.0f; -COMPILER_STRIP_GATE(0x80A0E030, &lit_4334); -#pragma pop - -/* 80A0E034-80A0E038 000020 0004+00 1/2 0/0 0/0 .rodata @4335 */ -SECTION_RODATA static f32 const lit_4335 = 1.0f; -COMPILER_STRIP_GATE(0x80A0E034, &lit_4335); - -/* 80A0E038-80A0E03C 000024 0004+00 0/1 0/0 0/0 .rodata @4336 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4336 = 1.5f; -COMPILER_STRIP_GATE(0x80A0E038, &lit_4336); -#pragma pop - -/* 80A0E03C-80A0E040 000028 0004+00 0/1 0/0 0/0 .rodata @4337 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4337 = 2.0f; -COMPILER_STRIP_GATE(0x80A0E03C, &lit_4337); -#pragma pop - -/* 80A0E040-80A0E044 00002C 0004+00 0/1 0/0 0/0 .rodata @4338 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4338 = 1300.0f; -COMPILER_STRIP_GATE(0x80A0E040, &lit_4338); -#pragma pop - -/* 80A0E044-80A0E048 000030 0004+00 0/1 0/0 0/0 .rodata @4339 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4339 = 1000.0f; -COMPILER_STRIP_GATE(0x80A0E044, &lit_4339); -#pragma pop - -/* 80A0E048-80A0E04C 000034 0004+00 0/1 0/0 0/0 .rodata @4340 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4340 = 3.0f / 10.0f; -COMPILER_STRIP_GATE(0x80A0E048, &lit_4340); -#pragma pop - -/* 80A0E04C-80A0E050 000038 0004+00 0/1 0/0 0/0 .rodata @4341 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4341 = 6.0f / 5.0f; -COMPILER_STRIP_GATE(0x80A0E04C, &lit_4341); -#pragma pop - -/* 80A0E050-80A0E054 00003C 0004+00 0/1 0/0 0/0 .rodata @4342 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4342 = 3.0f; -COMPILER_STRIP_GATE(0x80A0E050, &lit_4342); -#pragma pop - -/* 80A0E054-80A0E058 000040 0004+00 0/1 0/0 0/0 .rodata @4343 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4343 = 100.0f; -COMPILER_STRIP_GATE(0x80A0E054, &lit_4343); -#pragma pop - -/* 80A0E058-80A0E05C 000044 0004+00 0/1 0/0 0/0 .rodata @4344 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4344 = 7000.0f; -COMPILER_STRIP_GATE(0x80A0E058, &lit_4344); -#pragma pop - -/* 80A0E05C-80A0E060 000048 0004+00 0/1 0/0 0/0 .rodata @4345 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4345 = 0.5f; -COMPILER_STRIP_GATE(0x80A0E05C, &lit_4345); -#pragma pop - -/* 80A0E060-80A0E064 00004C 0004+00 0/1 0/0 0/0 .rodata @4346 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4346 = 8.0f; -COMPILER_STRIP_GATE(0x80A0E060, &lit_4346); -#pragma pop - -/* 80A0E064-80A0E068 000050 0004+00 0/1 0/0 0/0 .rodata @4347 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4347 = 41.0f; -COMPILER_STRIP_GATE(0x80A0E064, &lit_4347); -#pragma pop - -/* 80A0E068-80A0E06C 000054 0004+00 0/1 0/0 0/0 .rodata @4348 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4348 = 14.0f; -COMPILER_STRIP_GATE(0x80A0E068, &lit_4348); -#pragma pop - -/* 80A0E06C-80A0E070 000058 0004+00 0/1 0/0 0/0 .rodata @4349 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4349 = 1.0f / 100.0f; -COMPILER_STRIP_GATE(0x80A0E06C, &lit_4349); -#pragma pop - -/* 80A0E070-80A0E074 00005C 0004+00 0/1 0/0 0/0 .rodata @4350 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4350 = 20.0f; -COMPILER_STRIP_GATE(0x80A0E070, &lit_4350); -#pragma pop - -/* 80A0E074-80A0E078 000060 0004+00 0/2 0/0 0/0 .rodata @4351 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4351 = 200.0f; -COMPILER_STRIP_GATE(0x80A0E074, &lit_4351); -#pragma pop - -/* 80A0E078-80A0E07C 000064 0004+00 0/1 0/0 0/0 .rodata @4352 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4352 = 32768.0f; -COMPILER_STRIP_GATE(0x80A0E078, &lit_4352); -#pragma pop - -/* 80A0E07C-80A0E080 000068 0004+00 0/1 0/0 0/0 .rodata @4353 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4353 = 4.0f / 5.0f; -COMPILER_STRIP_GATE(0x80A0E07C, &lit_4353); -#pragma pop - -/* 80A0E080-80A0E084 00006C 0004+00 0/1 0/0 0/0 .rodata @4354 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4354 = 5.0f; -COMPILER_STRIP_GATE(0x80A0E080, &lit_4354); -#pragma pop - -/* 80A0E084-80A0E08C 000070 0008+00 0/1 0/0 0/0 .rodata @4355 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4355[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A0E084, &lit_4355); -#pragma pop - -/* 80A0E08C-80A0E094 000078 0008+00 0/1 0/0 0/0 .rodata @4356 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4356[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A0E08C, &lit_4356); -#pragma pop - -/* 80A0E094-80A0E09C 000080 0008+00 0/1 0/0 0/0 .rodata @4357 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4357[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A0E094, &lit_4357); -#pragma pop - -/* 80A0E09C-80A0E0A0 000088 0004+00 0/1 0/0 0/0 .rodata @4358 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4358 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80A0E09C, &lit_4358); -#pragma pop - -/* 80A0E0A0-80A0E0A4 00008C 0004+00 0/1 0/0 0/0 .rodata @4359 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4359 = 300.0f; -COMPILER_STRIP_GATE(0x80A0E0A0, &lit_4359); -#pragma pop - -/* 80A0E0A4-80A0E0A8 000090 0004+00 0/1 0/0 0/0 .rodata @4360 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4360 = 9.0f / 10.0f; -COMPILER_STRIP_GATE(0x80A0E0A4, &lit_4360); -#pragma pop - -/* 80A0E0A8-80A0E0AC 000094 0004+00 0/1 0/0 0/0 .rodata @4361 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4361 = 2.5f; -COMPILER_STRIP_GATE(0x80A0E0A8, &lit_4361); -#pragma pop - -/* 80A0E0AC-80A0E0B0 000098 0004+00 0/1 0/0 0/0 .rodata @4362 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4362 = 3000.0f; -COMPILER_STRIP_GATE(0x80A0E0AC, &lit_4362); -#pragma pop - -/* 80A0E0B0-80A0E0B4 00009C 0004+00 0/1 0/0 0/0 .rodata @4363 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4363 = 90.0f; -COMPILER_STRIP_GATE(0x80A0E0B0, &lit_4363); -#pragma pop - -/* 80A0E0B4-80A0E0B8 0000A0 0004+00 0/1 0/0 0/0 .rodata @4364 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4364 = 500.0f; -COMPILER_STRIP_GATE(0x80A0E0B4, &lit_4364); -#pragma pop - -/* 80A0E0B8-80A0E0BC 0000A4 0004+00 0/1 0/0 0/0 .rodata @4365 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4365 = -2.0f; -COMPILER_STRIP_GATE(0x80A0E0B8, &lit_4365); -#pragma pop - -/* 80A0E0BC-80A0E0C0 0000A8 0004+00 0/1 0/0 0/0 .rodata @4366 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4366 = 23000.0f; -COMPILER_STRIP_GATE(0x80A0E0BC, &lit_4366); -#pragma pop - -/* 80A0E0C0-80A0E0C4 0000AC 0004+00 0/1 0/0 0/0 .rodata @4367 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4367 = 150.0f; -COMPILER_STRIP_GATE(0x80A0E0C0, &lit_4367); -#pragma pop - -/* 80A0E0D8-80A0E0E8 000000 0010+00 1/1 0/0 0/0 .data mes_0$3966 */ -SECTION_DATA static u8 mes_0[16] = { - 0x00, 0x00, 0x03, 0x57, 0x00, 0x00, 0x03, 0x58, 0x00, 0x00, 0x03, 0x59, 0x00, 0x00, 0x03, 0x5A, -}; - -/* 80A0E0E8-80A0E0F8 000010 0010+00 1/1 0/0 0/0 .data mes_1$3967 */ -SECTION_DATA static u8 mes_1[16] = { - 0x00, 0x00, 0x03, 0x5B, 0x00, 0x00, 0x03, 0x5C, 0x00, 0x00, 0x03, 0x5D, 0x00, 0x00, 0x03, 0x5E, -}; - /* 80A0CCC8-80A0DD70 0003A8 10A8+00 2/1 0/0 0/0 .text daNpc_Inko_Execute__FP14npc_inko_class */ -static void daNpc_Inko_Execute(npc_inko_class* param_0) { - // NONMATCHING +static int daNpc_Inko_Execute(npc_inko_class* i_this) { + fopAc_ac_c* actor = (fopAc_ac_c*)i_this; + cXyz sp78; + cXyz sp6C; + + i_this->field_0x596++; + + for (int i = 0; i < 4; i++) { + if (i_this->field_0x59c[i] != 0) { + i_this->field_0x59c[i]--; + } + } + + obj_kage_class* kage = (obj_kage_class*)fopAcM_SearchByID(actor->parentActorID); + if (kage == NULL) { + return 1; + } + + s16 sp1A = 0; + s16 sp18 = 0; + MTXCopy(kage->model->getBaseTRMtx(), mDoMtx_stack_c::get()); + i_this->field_0x5c0 = kage->actor.shape_angle; + + if (i_this->field_0x598 <= 2) { + mDoMtx_stack_c::transM(i_this->field_0x5a8, -78.0f + TREG_F(1), -5.0f + TREG_F(2)); + mDoMtx_stack_c::multVecZero(&i_this->field_0x5b4); + cLib_addCalcAngleS2(&actor->shape_angle.y, i_this->field_0x59a, 1, 0xC00); + cLib_addCalcAngleS2(&actor->shape_angle.x, 0, 1, 0xA00); + } else { + mDoMtx_stack_c::YrotM(i_this->field_0x59a); + mDoMtx_stack_c::transM(0.0f, i_this->field_0x5e8, 40.0f + JREG_F(2)); + mDoMtx_stack_c::multVecZero(&i_this->field_0x5b4); + cLib_addCalcAngleS2(&actor->shape_angle.y, (i_this->field_0x5c0.y + i_this->field_0x59a), 1, 0xA00); + cLib_addCalcAngleS2(&actor->shape_angle.x, i_this->field_0x5ec, 1, 0xA00); + } + + f32 var_f31; + if (i_this->field_0x598 == 0) { + if (i_this->field_0x59c[1] == 0) { + i_this->field_0x59c[1] = 30.0f + cM_rndF(70.0f); + i_this->field_0x5ac = cM_rndFX(30.0f); + + for (int i = 0; i < 10; i++) { + i_this->field_0x5ac = cM_rndFX(30.0f); + if (fabsf(i_this->field_0x5a8 - i_this->field_0x5ac) >= 10.0f) { + break; + } + } + } + + cLib_addCalc2(&i_this->field_0x5a8, i_this->field_0x5ac, 1.0f, 1.5f + TREG_F(3)); + i_this->field_0x5e0 = 0; + + if (fabsf(i_this->field_0x5a8 - i_this->field_0x5ac) > 1.0f) { + s16 sp16 = i_this->field_0x596 * (TREG_S(1) + 8000); + var_f31 = (2.0f + TREG_F(4)) * cM_ssin(sp16); + if (var_f31 < 0.0f) { + var_f31 *= -1.0f; + } + + if ((u16)sp16 < 0x4000) { + i_this->field_0x5e0 = 10000; + } else if ((u16)sp16 > 0x8000 && (u16)sp16 < 0xC000) { + i_this->field_0x5e0 = 10000; + } + + sp1A = (1300.0f + TREG_F(8)) * cM_ssin(sp16); + if (sp1A < 0) { + sp1A *= -1; + } + + sp18 = (1000.0f + TREG_F(9)) * cM_ssin(sp16); + } else { + var_f31 = 0.0f; + } + + actor->current.pos = i_this->field_0x5b4; + + u8 spA = 0; + s16 sp14 = fopAcM_searchPlayerAngleY(actor); + s16 sp12 = sp14 - actor->shape_angle.y; + + if (i_this->field_0x59c[2] == 0) { + if (cM_rndF(1.0f) < 0.3f && sp12 < 0x3000 && sp12 > -0x3000) { + i_this->field_0x598 = 3; + anm_init(i_this, 4, 1.0f, 2, 1.2f + cM_rndF(3.0f)); + i_this->sound.startSound(Z2SE_LINKBIRD_WING, 0, -1); + + i_this->field_0x59c[0] = 40.0f + cM_rndF(100.0f); + i_this->field_0x59a = (sp14 - i_this->field_0x5c0.y) + (s16)cM_rndFX(7000.0f); + + u16 sp10 = i_this->field_0x59a; + if (cM_rndF(1.0f) < 0.5f && ((sp10 < 0x5000 && sp10 > 0xA000) || sp10 < 0x3000 || sp10 > 0xD000)) { + i_this->field_0x5e8 = -(70.0f + cM_rndF(8.0f)); + i_this->field_0x5ec = -8000; + } else { + i_this->field_0x5e8 = -(41.0f + cM_rndF(14.0f)); + i_this->field_0x5ec = -10000; + } + } else { + i_this->field_0x598 = 2; + anm_init(i_this, 4, 1.0f, 2, 1.2f + cM_rndF(3.0f)); + i_this->sound.startSound(Z2SE_LINKBIRD_WING, 0, -1); + i_this->field_0x5b0 = i_this->field_0x5a8; + + for (int i = 0; i < 10; i++) { + i_this->field_0x5ac = cM_rndFX(30.0f); + if (fabsf(i_this->field_0x5a8 - i_this->field_0x5ac) >= 10.0f) { + break; + } + } + + if (cM_rndF(1.0f) < 0.5f) { + i_this->field_0x59a = i_this->field_0x5c0.y + 0x8000; + } else { + i_this->field_0x59a = (s16)i_this->field_0x5c0.y; + } + } + } + } else if (i_this->field_0x598 == 2) { + i_this->field_0x5e0 = 0; + cLib_addCalc2(&i_this->field_0x5a8, i_this->field_0x5ac, 1.0f, 2.0f + TREG_F(7)); + + if (fabsf(i_this->field_0x5a8 - i_this->field_0x5ac) <= 0.01f) { + i_this->field_0x598 = 0; + i_this->field_0x59c[2] = 30.0f + cM_rndF(100.0f); + i_this->field_0x59c[1] = 20.0f + cM_rndF(20.0f); + anm_init(i_this, 5, 3.0f, 2, 1.0f); + kage->field_0x5a8 = 200.0f + KREG_F(11); + } + + f32 temp_f30 = fabsf(i_this->field_0x5ac - i_this->field_0x5b0); + f32 temp_f26 = fabsf(i_this->field_0x5ac - i_this->field_0x5a8); + f32 temp_f25 = temp_f30 * (1.5f + BREG_F(19)); + var_f31 = temp_f25 * cM_ssin(32768.0f * (temp_f26 / temp_f30)); + if (var_f31 > 30.0f + BREG_F(18)) { + var_f31 = 30.0f + BREG_F(18); + } + + actor->current.pos = i_this->field_0x5b4; + } else if (i_this->field_0x598 == 3) { + i_this->field_0x5e0 = 0; + cLib_addCalc2(&actor->current.pos.x, i_this->field_0x5b4.x, 0.8f, 5.0f); + cLib_addCalc2(&actor->current.pos.y, i_this->field_0x5b4.y, 0.8f, 5.0f); + cLib_addCalc2(&actor->current.pos.z, i_this->field_0x5b4.z, 0.8f, 5.0f); + + bool sp9 = (actor->current.pos - i_this->field_0x5b4).abs() < 0.1f; + if (sp9 && i_this->anmId == 4) { + anm_init(i_this, 5, 3.0f, 2, 1.0f); + kage->field_0x5a8 = 300.0f + KREG_F(12); + } + + i_this->field_0x5ce.z = 13000; + + if (i_this->field_0x59c[0] == 0) { + anm_init(i_this, 4, 1.0f, 2, 1.2f + cM_rndF(3.0f)); + i_this->sound.startSound(Z2SE_LINKBIRD_WING, 0, -1); + i_this->field_0x598 = 1; + + if (cM_rndF(1.0f) < 0.5f) { + i_this->field_0x59a = i_this->field_0x5c0.y + 0x8000; + } else { + i_this->field_0x59a = (s16)i_this->field_0x5c0.y; + } + } + } else if (i_this->field_0x598 == 1) { + cLib_addCalc2(&actor->current.pos.x, i_this->field_0x5b4.x, 0.9f, 5.0f); + cLib_addCalc2(&actor->current.pos.y, i_this->field_0x5b4.y, 0.9f, 2.5f); + cLib_addCalc2(&actor->current.pos.z, i_this->field_0x5b4.z, 0.9f, 5.0f); + + bool sp8 = (actor->current.pos - i_this->field_0x5b4).abs() < 0.1f; + if (sp8) { + i_this->field_0x598 = 0; + i_this->field_0x59c[2] = 30.0f + cM_rndF(100.0f); + i_this->field_0x59c[1] = 20.0f + cM_rndF(20.0f); + anm_init(i_this, 5, 3.0f, 2, 1.0f); + i_this->field_0x5ce.z = 0; + kage->field_0x5a8 = 200.0f + KREG_F(11); + } + } + + if (i_this->field_0x5c6 != 0) { + i_this->field_0x5c6--; + } + + cLib_addCalcAngleS2(&i_this->field_0x5c8.x, i_this->field_0x5ce.x, 2, 3000); + cLib_addCalcAngleS2(&i_this->field_0x5c8.y, i_this->field_0x5ce.y, 2, 3000); + cLib_addCalcAngleS2(&i_this->field_0x5c8.z, i_this->field_0x5ce.z, 2, 3000); + + if (i_this->field_0x5c6 == 0) { + i_this->field_0x5c6 = 10.0f + cM_rndF(30.0f); + i_this->field_0x5ce.x = cM_rndFX(3000.0f + BREG_F(1)); + i_this->field_0x5ce.y = cM_rndFX(3000.0f + BREG_F(1)); + i_this->field_0x5ce.z = cM_rndFX(3000.0f + BREG_F(1)); + } + + if (i_this->field_0x5e2 != 0) { + i_this->field_0x5e2--; + } + + if (i_this->field_0x5e2 == 5) { + i_this->field_0x5e4 = 10.0f + cM_rndF(10.0f); + } + + if (i_this->field_0x5e2 == 0) { + i_this->field_0x5e2 = (s8)(30.0f + cM_rndF(90.0f)); + i_this->sound.startSound(Z2SE_LINKBIRD_CRY, 0, -1); + } + + s16 spE = 0; + if (i_this->field_0x5e4 != 0) { + i_this->field_0x5e4--; + spE = 10000; + } + + cLib_addCalcAngleS2(&i_this->field_0x5e6, spE, 1, 4000); + + for (int i = 0; i < 2; i++) { + if (i_this->field_0x5dc[i] != 0) { + i_this->field_0x5dc[i]--; + } + + if (i_this->field_0x5dc[i] == 0) { + i_this->field_0x5d8[i] = cM_rndFX(500.0f + BREG_F(0)); + i_this->field_0x5dc[i] = 5.0f + cM_rndF(10.0f); + } + + cLib_addCalcAngleS2(&i_this->field_0x5d4[i], i_this->field_0x5d8[i], 2, 0x1F4); + } + + mDoMtx_stack_c::transS(actor->current.pos.x, actor->current.pos.y + var_f31, actor->current.pos.z); + mDoMtx_stack_c::YrotM(BREG_S(0) + (actor->shape_angle.y + sp18)); + mDoMtx_stack_c::XrotM(BREG_S(1) + (actor->shape_angle.x + sp1A)); + mDoMtx_stack_c::ZrotM(actor->shape_angle.z); + mDoMtx_stack_c::transM(0.0f, 0.0f, BREG_F(4) + -2.0f); + + i_this->anm_p->getModel()->setBaseTRMtx(mDoMtx_stack_c::get()); + i_this->anm_p->play(NULL, 0, 0); + i_this->anm_p->modelCalc(); + + i_this->sound.framework(0, dComIfGp_getReverb(fopAcM_GetRoomNo(actor))); + + f32 temp_f1 = fopAcM_searchPlayerDistanceXZ(actor); + if (temp_f1 < (100.0f + KREG_F(15))) { + daPy_py_c::setLookPos(&actor->current.pos); + } + + if (daPy_getPlayerActorClass()->checkFrontRollCrash() && temp_f1 < 200.0f) { + i_this->field_0x59c[2] = 0; + + npc_henna_class* henna = (npc_henna_class*)fopAcM_SearchByName(PROC_NPC_HENNA); + if (henna != NULL) { + henna->field_0x7b5 = 40; + data_80450C9D |= 0x40; + } + } + + if (i_this->field_0x5f4 != 0) { + if (i_this->msgflow.doFlow(actor, NULL, 0)) { + dComIfGp_event_reset(); + i_this->field_0x5f4 = 0; + } + return 1; + } + + if (dComIfGp_event_runCheck() && actor->eventInfo.checkCommandTalk() && i_this->field_0x5f4 == 0) { + int flowId; + if (cM_rndF(1.0f) < 0.1f) { + flowId = 0x361; + npc_henna_class* henna = (npc_henna_class*)fopAcM_SearchByName(PROC_NPC_HENNA); + if (henna != NULL) { + henna->field_0x7ba = 2; + } + } else { + static u32 mes_0[] = { + 0x357, + 0x358, + 0x359, + 0x35A, + }; + + static u32 mes_1[] = { + 0x35B, + 0x35C, + 0x35D, + 0x35E, + }; + + int sp30 = (data_80450C9D & 3); + if (data_80450C9D & 0x40) { + flowId = mes_1[sp30]; + } else { + flowId = mes_0[sp30]; + } + } + + i_this->msgflow.init(actor, flowId, 0, NULL); + i_this->field_0x5f4 = 1; + + data_80450C9D++; + data_80450C9D &= 0xC3; + } + + fopAc_ac_c* player = dComIfGp_getPlayer(0); + f32 temp_f28 = kage->actor.current.pos.x - player->current.pos.x; + f32 temp_f27 = kage->actor.current.pos.z - player->current.pos.z; + + if ((data_80450C9D & 0x80) && i_this->field_0x59c[3] < 15 && (SQUARE(temp_f28) + SQUARE(temp_f27)) < 23000.0f) { + s16 spC = fopAcM_searchPlayerAngleY(actor); + spC = (spC - player->shape_angle.y) + 0x8000; + if (spC < 0x1800 && spC > -0x1800) { + i_this->field_0x5f5 = 5; + } + } + + if (i_this->field_0x59c[3] == 0 || mDoCPd_c::getTrigA(PAD_1)) { + i_this->field_0x59c[3] = 150.0f + cM_rndF(200.0f); + } + + if (i_this->field_0x5f5 != 0) { + i_this->field_0x5f5--; + + actor->eyePos = actor->current.pos; + actor->eyePos.y += 20.0f; + actor->attention_info.position = actor->eyePos; + actor->attention_info.position.y += 20.0f; + fopAcM_OnStatus(actor, 0); + cLib_onBit(actor->attention_info.flags, fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e); + actor->eventInfo.onCondition(1); + } else { + fopAcM_OffStatus(actor, 0); + cLib_offBit(actor->attention_info.flags, fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e); + } + + return 1; } /* 80A0DD70-80A0DD78 001450 0008+00 1/0 0/0 0/0 .text daNpc_Inko_IsDelete__FP14npc_inko_class */ -static bool daNpc_Inko_IsDelete(npc_inko_class* param_0) { - return true; +static int daNpc_Inko_IsDelete(npc_inko_class* i_this) { + return 1; } /* 80A0DD78-80A0DDC8 001458 0050+00 1/0 0/0 0/0 .text daNpc_Inko_Delete__FP14npc_inko_class */ -static void daNpc_Inko_Delete(npc_inko_class* param_0) { - // NONMATCHING +static int daNpc_Inko_Delete(npc_inko_class* i_this) { + fopAc_ac_c* actor = (fopAc_ac_c*)i_this; + fpc_ProcID id = fopAcM_GetID(i_this); + dComIfG_resDelete(&i_this->phase, "Npc_inko"); + + if (actor->heap != NULL) { + i_this->sound.deleteObject(); + } + + return 1; } /* 80A0DDC8-80A0DF08 0014A8 0140+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -static void useHeapInit(fopAc_ac_c* param_0) { - // NONMATCHING +static int useHeapInit(fopAc_ac_c* actor) { + npc_inko_class* i_this = (npc_inko_class*)actor; + i_this->anm_p = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("Npc_inko", 8), NULL, NULL, NULL, 0, 1.0f, 0, -1, 1, 0, 0x80000, 0x11000084); + if (i_this->anm_p == NULL || i_this->anm_p->getModel() == NULL) { + return 0; + } + + J3DModel* model = i_this->anm_p->getModel(); + model->setUserArea((uintptr_t)i_this); + + for (u16 i = 0; i < model->getModelData()->getJointNum(); i++) { + model->getModelData()->getJointNodePointer(i)->setCallBack(nodeCallBack); + } + + fopAcM_SetMtx(actor, model->getBaseTRMtx()); + i_this->sound.init(&actor->current.pos, 2); + return 1; } -/* ############################################################################################## */ -/* 80A0E0C4-80A0E0C8 0000B0 0004+00 0/1 0/0 0/0 .rodata @4461 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4461 = 65536.0f; -COMPILER_STRIP_GATE(0x80A0E0C4, &lit_4461); -#pragma pop - -/* 80A0E0C8-80A0E0CC 0000B4 0004+00 0/1 0/0 0/0 .rodata @4462 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4462 = -200.0f; -COMPILER_STRIP_GATE(0x80A0E0C8, &lit_4462); -#pragma pop - /* 80A0DF08-80A0E00C 0015E8 0104+00 1/0 0/0 0/0 .text daNpc_Inko_Create__FP10fopAc_ac_c */ -static void daNpc_Inko_Create(fopAc_ac_c* param_0) { - // NONMATCHING +static int daNpc_Inko_Create(fopAc_ac_c* actor) { + npc_inko_class* i_this = (npc_inko_class*)actor; + fopAcM_ct(actor, npc_inko_class); + + int phase_state = dComIfG_resLoad(&i_this->phase, "Npc_inko"); + if (phase_state == cPhs_COMPLEATE_e) { + OS_REPORT("NPC_INKO PARAM %x\n", fopAcM_GetParam(actor)); + i_this->field_0x570 = fopAcM_GetParam(actor); + + OS_REPORT("NPC_INKO//////////////NPC_INKO SET 1 !!\n"); + + if (!fopAcM_entrySolidHeap(actor, useHeapInit, 0xC00)) { + OS_REPORT("//////////////NPC_INKO SET NON !!\n"); + return cPhs_ERROR_e; + } + + OS_REPORT("//////////////NPC_INKO SET 2 !!\n"); + + i_this->field_0x596 = cM_rndF(65536.0f); + fopAcM_SetMin(actor, -200.0f, -200.0f, -200.0f); + fopAcM_SetMax(actor, 200.0f, 200.0f, 200.0f); + daNpc_Inko_Execute(i_this); + } + + return phase_state; } -/* ############################################################################################## */ /* 80A0E0F8-80A0E118 -00001 0020+00 1/0 0/0 0/0 .data l_daNpc_Inko_Method */ static actor_method_class l_daNpc_Inko_Method = { - (process_method_func)daNpc_Inko_Create__FP10fopAc_ac_c, - (process_method_func)daNpc_Inko_Delete__FP14npc_inko_class, - (process_method_func)daNpc_Inko_Execute__FP14npc_inko_class, - (process_method_func)daNpc_Inko_IsDelete__FP14npc_inko_class, - (process_method_func)daNpc_Inko_Draw__FP14npc_inko_class, + (process_method_func)daNpc_Inko_Create, + (process_method_func)daNpc_Inko_Delete, + (process_method_func)daNpc_Inko_Execute, + (process_method_func)daNpc_Inko_IsDelete, + (process_method_func)daNpc_Inko_Draw, }; /* 80A0E118-80A0E148 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_INKO */ @@ -474,5 +500,3 @@ extern actor_process_profile_definition g_profile_NPC_INKO = { fopAc_ACTOR_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80A0E0CC-80A0E0CC 0000B8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_npc_myna2.cpp b/src/d/actor/d_a_npc_myna2.cpp index af2b5b81d30..9361c1bd5d3 100644 --- a/src/d/actor/d_a_npc_myna2.cpp +++ b/src/d/actor/d_a_npc_myna2.cpp @@ -6,275 +6,53 @@ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_npc_myna2.h" -#include "dol2asm.h" +#include "d/actor/d_a_player.h" +#include "Z2AudioLib/Z2Instances.h" -// -// Forward References: -// +enum { + NUM_EVT_CUTS_e = 5, +}; -extern "C" void __ct__13daNpc_myna2_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__13daNpc_myna2_cFv(); -extern "C" void create__13daNpc_myna2_cFv(); -extern "C" void CreateHeap__13daNpc_myna2_cFv(); -extern "C" void Delete__13daNpc_myna2_cFv(); -extern "C" void Execute__13daNpc_myna2_cFv(); -extern "C" void Draw__13daNpc_myna2_cFv(); -extern "C" void createHeapCallBack__13daNpc_myna2_cFP10fopAc_ac_c(); -extern "C" void setParam__13daNpc_myna2_cFv(); -extern "C" void main__13daNpc_myna2_cFv(); -extern "C" void setAttnPos__13daNpc_myna2_cFv(); -extern "C" void setExpressionBtp__13daNpc_myna2_cFi(); -extern "C" void setMotionAnm__13daNpc_myna2_cFif(); -extern "C" void setMotion__13daNpc_myna2_cFifi(); -extern "C" bool drawDbgInfo__13daNpc_myna2_cFv(); -extern "C" void drawOtherMdls__13daNpc_myna2_cFv(); -extern "C" void getTypeFromParam__13daNpc_myna2_cFv(); -extern "C" void isDelete__13daNpc_myna2_cFv(); -extern "C" void reset__13daNpc_myna2_cFv(); -extern "C" void playMotion__13daNpc_myna2_cFv(); -extern "C" void chkAction__13daNpc_myna2_cFM13daNpc_myna2_cFPCvPvPv_i(); -extern "C" void setAction__13daNpc_myna2_cFM13daNpc_myna2_cFPCvPvPv_i(); -extern "C" void selectAction__13daNpc_myna2_cFv(); -extern "C" void doNormalAction__13daNpc_myna2_cFi(); -extern "C" void doEvent__13daNpc_myna2_cFv(); -extern "C" void setLookMode__13daNpc_myna2_cFi(); -extern "C" void wait__13daNpc_myna2_cFPv(); -extern "C" void waitHovering__13daNpc_myna2_cFPv(); -extern "C" static void s_sub__FPvPv(); -extern "C" void waitFailure__13daNpc_myna2_cFPv(); -extern "C" void waitGoal__13daNpc_myna2_cFPv(); -extern "C" void talk__13daNpc_myna2_cFPv(); -extern "C" void test__13daNpc_myna2_cFPv(); -extern "C" void ECut_firstTalk__13daNpc_myna2_cFi(); -extern "C" void ECut_gameFailure__13daNpc_myna2_cFi(); -extern "C" void ECut_gameGoal__13daNpc_myna2_cFi(); -extern "C" void ECut_gameGoalSuccess__13daNpc_myna2_cFi(); -extern "C" void calcHovering__13daNpc_myna2_cFii(); -extern "C" static void daNpc_myna2_Create__FPv(); -extern "C" static void daNpc_myna2_Delete__FPv(); -extern "C" static void daNpc_myna2_Execute__FPv(); -extern "C" static void daNpc_myna2_Draw__FPv(); -extern "C" static bool daNpc_myna2_IsDelete__FPv(); -extern "C" void __dt__18daNpcF_ActorMngr_cFv(); -extern "C" void __ct__18daNpcF_ActorMngr_cFv(); -extern "C" void __dt__15daNpcF_Lookat_cFv(); -extern "C" void __dt__5csXyzFv(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__8daNpcF_cFv(); -extern "C" void __ct__8daNpcF_cFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" bool ctrlBtk__8daNpcF_cFv(); -extern "C" void adjustShapeAngle__8daNpcF_cFv(); -extern "C" void setCollisions__8daNpcF_cFv(); -extern "C" bool setExpressionAnm__8daNpcF_cFib(); -extern "C" void setExpression__8daNpcF_cFif(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void func_80A88220(void* _this, int*); -extern "C" void func_80A8823C(void* _this, f32, f32); -extern "C" void func_80A88278(void* _this, int, int); -extern "C" void __sinit_d_a_npc_myna2_cpp(); -extern "C" void __dt__19daNpc_myna2_Param_cFv(); -extern "C" static void func_80A88410(); -extern "C" static void func_80A88418(); -extern "C" u8 const m__19daNpc_myna2_Param_c[116]; -extern "C" extern char const* const d_a_npc_myna2__stringBase0; -extern "C" void* mEvtCutNameList__13daNpc_myna2_c[5]; -extern "C" u8 mEvtCutList__13daNpc_myna2_c[60]; - -// -// External References: -// - -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAc_IsActor__FPv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_createItemForPresentDemo__FPC4cXyziUciiPC5csXyzPC4cXyz(); -extern "C" void fpcEx_Search__FPFPvPv_PvPv(); -extern "C" void dStage_changeScene__FifUlScsi(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void dComIfGs_wolfeye_effect_check__Fv(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void offSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void setPtI_Id__14dEvt_control_cFUi(); -extern "C" void endCheck__16dEvent_manager_cFs(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getIsAddvance__16dEvent_manager_cFi(); -extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii(); -extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void __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 ChkCoHit__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 initialize__15daNpcF_Lookat_cFv(); -extern "C" void execute__8daNpcF_cFv(); -extern "C" void draw__8daNpcF_cFiifP11_GXColorS10i(); -extern "C" void tgHitCallBack__8daNpcF_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf(); -extern "C" void setMtx__8daNpcF_cFv(); -extern "C" void setMtx2__8daNpcF_cFv(); -extern "C" void initialize__8daNpcF_cFv(); -extern "C" void getTrnsfrmKeyAnmP__8daNpcF_cFPci(); -extern "C" void getTexPtrnAnmP__8daNpcF_cFPci(); -extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii(); -extern "C" void setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi(); -extern "C" void setEnvTevColor__8daNpcF_cFv(); -extern "C" void setRoomNo__8daNpcF_cFv(); -extern "C" void playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); -extern "C" void hitChk2__8daNpcF_cFP8dCcD_Cylii(); -extern "C" void ctrlMsgAnm__8daNpcF_cFRiRiP10fopAc_ac_ci(); -extern "C" void orderEvent__8daNpcF_cFiPcUsUsUcUs(); -extern "C" void initTalk__8daNpcF_cFiPP10fopAc_ac_c(); -extern "C" void talkProc__8daNpcF_cFPiiPP10fopAc_ac_c(); -extern "C" void step__8daNpcF_cFsiii(); -extern "C" void daNpcF_getGroundAngle__FP13cBgS_PolyInfos(); -extern "C" void daNpcF_chkEvtBit__FUl(); -extern "C" void daNpcF_onTmpBit__FUl(); -extern "C" void daNpcF_offTmpBit__FUl(); -extern "C" void dKy_pol_sound_get__FPC13cBgS_PolyInfo(); -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 normalizeZP__4cXyzFv(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rndF__Ff(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_addCalcPos2__FP4cXyzRC4cXyzff(); -extern "C" void cLib_addCalcAngleS2__FPssss(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz(); -extern "C" void __dt__10Z2CreatureFv(); -extern "C" void init__10Z2CreatureFP3VecP3VecUcUc(); -extern "C" void __ct__16Z2CreatureSumomoFv(); -extern "C" void playSumomoBgm__16Z2CreatureSumomoFUl(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_test(); -extern "C" void __ptmf_cmpr(); -extern "C" void __ptmf_scall(); -extern "C" void __cvt_fp2unsigned(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" u8 mCcDCyl__8daNpcF_c[68]; -extern "C" extern void* __vt__8daNpcF_c[18]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" extern void* __vt__16Z2CreatureSumomo[12]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80A88654-80A88654 000220 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80A88654 = "FIRST_TALK"; -SECTION_DEAD static char const* const stringBase_80A8865F = "GAME_FAILURE"; -SECTION_DEAD static char const* const stringBase_80A8866C = "GAME_GOAL"; -SECTION_DEAD static char const* const stringBase_80A88676 = "GAME_GOAL_SUCCESS"; -SECTION_DEAD static char const* const stringBase_80A88688 = "MYNA_b"; -SECTION_DEAD static char const* const stringBase_80A8868F = "MYNA_b_f"; -SECTION_DEAD static char const* const stringBase_80A88698 = "MYNA_b_g"; -SECTION_DEAD static char const* const stringBase_80A886A1 = "myna2"; -SECTION_DEAD static char const* const stringBase_80A886A7 = ""; -#pragma pop +/* 80A88B44-80A88B48 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ +static daNpc_myna2_Param_c l_HIO; /* 80A886D4-80A886DC 000020 0008+00 1/1 0/0 0/0 .data l_bmdGetParamList */ -SECTION_DATA static u8 l_bmdGetParamList[8] = { - 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam1 l_bmdGetParamList[] = { + {0x17, 0}, }; /* 80A886DC-80A88754 000028 0078+00 1/1 0/0 0/0 .data l_bckGetParamList */ -SECTION_DATA static u8 l_bckGetParamList[120] = { - 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam1 l_bckGetParamList[] = { + {17, 0}, + {10, 0}, + {11, 0}, + {9, 0}, + {13, 0}, + {12, 0}, + {8, 0}, + {7, 0}, + {6, 0}, + {14, 0}, + {15, 0}, + {16, 0}, + {18, 0}, + {19, 0}, + {20, 0}, }; /* 80A88754-80A8875C 0000A0 0008+00 1/1 0/0 0/0 .data l_btpGetParamList */ -SECTION_DATA static u8 l_btpGetParamList[8] = { - 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam1 l_btpGetParamList[] = { + {26, 0}, }; /* 80A8875C-80A88784 0000A8 0028+00 0/1 0/0 0/0 .data l_evtGetParamList */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_evtGetParamList[40] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, +static daNpc_GetParam1 l_evtGetParamList[] = { + {0, 0}, + {1, 0}, + {2, 1}, + {3, 2}, + {4, 2}, }; -#pragma pop /* 80A88784-80A88798 -00001 0014+00 0/1 0/0 0/0 .data l_evtNames */ static char* l_evtNames[5] = { @@ -286,32 +64,32 @@ static char* l_evtNames[5] = { }; /* 80A88798-80A887A4 0000E4 000C+00 1/0 0/0 0/0 .data l_loadRes_MYNA2a */ -SECTION_DATA static u8 l_loadRes_MYNA2a[12] = { - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +static int l_loadRes_MYNA2a[] = { + 0, -1, -1, }; /* 80A887A4-80A887B0 0000F0 000C+00 1/0 0/0 0/0 .data l_loadRes_MYNA2_GAME_FAILURE */ -SECTION_DATA static u8 l_loadRes_MYNA2_GAME_FAILURE[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, +static int l_loadRes_MYNA2_GAME_FAILURE[] = { + 0, 1, -1, }; /* 80A887B0-80A887BC 0000FC 000C+00 1/0 0/0 0/0 .data l_loadRes_MYNA2_GAME_GOAL */ -SECTION_DATA static u8 l_loadRes_MYNA2_GAME_GOAL[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, +static int l_loadRes_MYNA2_GAME_GOAL[] = { + 0, 2, -1, }; /* 80A887BC-80A887C8 000108 000C+00 1/0 0/0 0/0 .data l_loadRes_MYNA20 */ -SECTION_DATA static u8 l_loadRes_MYNA20[12] = { - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +static int l_loadRes_MYNA20[] = { + 0, -1, -1, }; /* 80A887C8-80A887DC -00001 0014+00 2/2 0/0 0/0 .data l_loadRes_list */ -SECTION_DATA static void* l_loadRes_list[5] = { - (void*)&l_loadRes_MYNA2a, - (void*)&l_loadRes_MYNA2a, - (void*)&l_loadRes_MYNA2_GAME_FAILURE, - (void*)&l_loadRes_MYNA2_GAME_GOAL, - (void*)&l_loadRes_MYNA20, +static int* l_loadRes_list[5] = { + l_loadRes_MYNA2a, + l_loadRes_MYNA2a, + l_loadRes_MYNA2_GAME_FAILURE, + l_loadRes_MYNA2_GAME_GOAL, + l_loadRes_MYNA20, }; /* 80A887DC-80A887E8 -00001 000C+00 5/6 0/0 0/0 .data l_resNames */ @@ -333,211 +111,1289 @@ char* daNpc_myna2_c::mEvtCutNameList[5] = { "GAME_GOAL_SUCCESS", }; -/* 80A88800-80A8880C -00001 000C+00 0/1 0/0 0/0 .data @4033 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4033[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ECut_firstTalk__13daNpc_myna2_cFi, -}; -#pragma pop - -/* 80A8880C-80A88818 -00001 000C+00 0/1 0/0 0/0 .data @4034 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4034[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ECut_gameFailure__13daNpc_myna2_cFi, -}; -#pragma pop - -/* 80A88818-80A88824 -00001 000C+00 0/1 0/0 0/0 .data @4035 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4035[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ECut_gameGoal__13daNpc_myna2_cFi, -}; -#pragma pop - -/* 80A88824-80A88830 -00001 000C+00 0/1 0/0 0/0 .data @4036 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4036[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ECut_gameGoalSuccess__13daNpc_myna2_cFi, -}; -#pragma pop - /* 80A88830-80A8886C 00017C 003C+00 0/2 0/0 0/0 .data mEvtCutList__13daNpc_myna2_c */ -#pragma push -#pragma force_active on -SECTION_DATA u8 daNpc_myna2_c::mEvtCutList[60] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 80A8886C-80A88878 -00001 000C+00 1/1 0/0 0/0 .data @4477 */ -SECTION_DATA static void* lit_4477[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)test__13daNpc_myna2_cFPv, +daNpc_myna2_c::EventFn daNpc_myna2_c::mEvtCutList[] = { + NULL, + &daNpc_myna2_c::ECut_firstTalk, + &daNpc_myna2_c::ECut_gameFailure, + &daNpc_myna2_c::ECut_gameGoal, + &daNpc_myna2_c::ECut_gameGoalSuccess, }; -/* 80A88878-80A88884 -00001 000C+00 0/1 0/0 0/0 .data @4868 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4868[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)test__13daNpc_myna2_cFPv, -}; -#pragma pop +/* 80A83E8C-80A84010 0000EC 0184+00 1/1 0/0 0/0 .text __ct__13daNpc_myna2_cFv */ +daNpc_myna2_c::daNpc_myna2_c() {} -/* 80A88884-80A88890 -00001 000C+00 0/1 0/0 0/0 .data @4872 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4872[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitHovering__13daNpc_myna2_cFPv, -}; -#pragma pop +/* 80A840A0-80A842C8 000300 0228+00 1/0 0/0 0/0 .text __dt__13daNpc_myna2_cFv */ +daNpc_myna2_c::~daNpc_myna2_c() { + OS_REPORT("|%06d:%x|daNpc_myna2_c -> デストラクト%d\n", g_Counter.mCounter0, mType); -/* 80A88890-80A8889C -00001 000C+00 0/1 0/0 0/0 .data @4874 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4874[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitFailure__13daNpc_myna2_cFPv, -}; -#pragma pop + if (mType == 1) { + daNpcF_offTmpBit(0x4A); + } -/* 80A8889C-80A888A8 -00001 000C+00 0/1 0/0 0/0 .data @4876 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4876[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)waitGoal__13daNpc_myna2_cFPv, -}; -#pragma pop + for (int i = 0; l_loadRes_list[mType][i] >= 0; i++) { + dComIfG_resDelete(&mPhase[i], l_resNames[l_loadRes_list[mType][i]]); + } -/* 80A888A8-80A888B4 -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*)wait__13daNpc_myna2_cFPv, -}; -#pragma pop + if (heap != NULL) { + mpMorf->stopZelAnime(); + } +} -/* 80A888B4-80A888C0 -00001 000C+00 0/1 0/0 0/0 .data @4918 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4918[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__13daNpc_myna2_cFPv, -}; -#pragma pop - -/* 80A888C0-80A888CC -00001 000C+00 0/1 0/0 0/0 .data @4926 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4926[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__13daNpc_myna2_cFPv, -}; -#pragma pop - -/* 80A888CC-80A88948 -00001 007C+00 1/1 0/0 0/0 .data @5498 */ -SECTION_DATA static void* lit_5498[31] = { - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x15C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x190), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x1C4), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x1E4), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x280), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x248), +/* 80A88434-80A884A8 000000 0074+00 14/14 0/0 0/0 .rodata m__19daNpc_myna2_Param_c */ +const daNpc_myna2_HIOParam daNpc_myna2_Param_c::m = { + 60.0f, + 0.0f, + 1.0f, + 600.0f, + 0.0f, + 50.0f, + 35.0f, + 40.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 12.0f, + 3, + 6, + 5, + 6, + 180.0f, + 500.0f, + 300.0f, + -300.0f, + 60, + 8, + 0, + 0, + 0, + 0, + 0, + 700.0f, + 2500.0f, }; -/* 80A88948-80A889C4 -00001 007C+00 1/1 0/0 0/0 .data @5497 */ -SECTION_DATA static void* lit_5497[31] = { - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0xA0), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0xD0), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0xE4), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x12C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), - (void*)(((char*)ECut_gameGoalSuccess__13daNpc_myna2_cFi) + 0x13C), -}; +/* 80A842C8-80A845AC 000528 02E4+00 1/1 0/0 0/0 .text create__13daNpc_myna2_cFv */ +int daNpc_myna2_c::create() { + fopAcM_ct(this, daNpc_myna2_c); + + mType = getTypeFromParam(); + field_0xe0d = (fopAcM_GetParam(this) & 0xFF00) >> 8; + + if (home.angle.x != 0xFFFF) { + field_0xe04 = home.angle.x; + } else { + field_0xe04 = -1; + } + + if (isDelete()) { + return 5; + } + + int var_r26 = 0; + int i; + for (i = 0; l_loadRes_list[mType][i] >= 0; i++) { + int phase = dComIfG_resLoad(&mPhase[i], l_resNames[l_loadRes_list[mType][i]]); + if (phase == cPhs_ERROR_e || phase == cPhs_UNK3_e) { + return cPhs_ERROR_e; + } + + if (phase == cPhs_COMPLEATE_e) { + var_r26++; + } + } + + if (var_r26 == i) { + static const u32 heapSize[5] = { + 0x0, 0x2450, 0x2440, 0x2450, 0x0, + }; + + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, heapSize[mType])) { + return cPhs_ERROR_e; + } + + J3DModelData* model_data = mpMorf->getModel()->getModelData(); + fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -300.0f, -50.0f, -300.0f, 300.0f, 450.0f, 300.0f); + mSound.init(¤t.pos, &eyePos, 3, 1); + + mAcchCir.SetWall(daNpc_myna2_Param_c::m.common.width, daNpc_myna2_Param_c::m.common.knee_length); + mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, + &mAcchCir, fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this)); + + mCcStts.Init(daNpc_myna2_Param_c::m.common.weight, 0, this); + mCyl.Set(mCcDCyl); + mCyl.SetStts(&mCcStts); + mCyl.SetTgHitCallback(tgHitCallBack); + + mAcch.CrrPos(dComIfG_Bgsp()); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); + + setEnvTevColor(); + setRoomNo(); + + reset(); + Execute(); + + return cPhs_COMPLEATE_e; + } + + return cPhs_INIT_e; +} + +/* 80A845AC-80A846E0 00080C 0134+00 1/1 0/0 0/0 .text CreateHeap__13daNpc_myna2_cFv */ +int daNpc_myna2_c::CreateHeap() { + J3DModelData* mdlData_p = NULL; + + if (l_bmdGetParamList[0].fileIdx >= 0) { + mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNames[l_bmdGetParamList[0].arcIdx], l_bmdGetParamList[0].fileIdx); + } + + JUT_ASSERT(476, NULL != 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; + } + + mpMorf->getModel()->setUserArea((uintptr_t)this); + + setMotionAnm(0, 0.0f); + return 1; +} + +/* 80A846E0-80A84714 000940 0034+00 1/1 0/0 0/0 .text Delete__13daNpc_myna2_cFv */ +int daNpc_myna2_c::Delete() { + fpc_ProcID id = fopAcM_GetID(this); + this->~daNpc_myna2_c(); + return 1; +} + +/* 80A84714-80A84734 000974 0020+00 2/2 0/0 0/0 .text Execute__13daNpc_myna2_cFv */ +int daNpc_myna2_c::Execute() { + return execute(); +} + +/* 80A84734-80A847A8 000994 0074+00 1/1 0/0 0/0 .text Draw__13daNpc_myna2_cFv */ +int daNpc_myna2_c::Draw() { + return draw(chkAction(&daNpc_myna2_c::test), FALSE, daNpc_myna2_Param_c::m.common.real_shadow_size, NULL, 0); +} + +/* 80A847A8-80A847C8 000A08 0020+00 1/1 0/0 0/0 .text + * createHeapCallBack__13daNpc_myna2_cFP10fopAc_ac_c */ +int daNpc_myna2_c::createHeapCallBack(fopAc_ac_c* actor) { + return ((daNpc_myna2_c*)actor)->CreateHeap(); +} + +/* 80A847C8-80A848B4 000A28 00EC+00 1/0 0/0 0/0 .text setParam__13daNpc_myna2_cFv */ +void daNpc_myna2_c::setParam() { + ActionFn action = mNextAction; + + selectAction(); + + if (mNextAction != action) { + for (int i = 1; i < 1; i++) { + mActorMgrs[i].initialize(); + } + } + + field_0xdf4 = 0; + field_0xdf8 = 0; + + attention_info.distances[fopAc_attn_LOCK_e] = 0x51; + attention_info.distances[fopAc_attn_TALK_e] = 0x51; + attention_info.distances[fopAc_attn_SPEAK_e] = 0x50; + attention_info.flags = fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e; + + scale.set(daNpc_myna2_Param_c::m.common.scale, daNpc_myna2_Param_c::m.common.scale, daNpc_myna2_Param_c::m.common.scale); + mAcchCir.SetWallR(daNpc_myna2_Param_c::m.common.width); + mAcchCir.SetWallH(daNpc_myna2_Param_c::m.common.knee_length); + gravity = daNpc_myna2_Param_c::m.common.gravity; +} + +/* 80A848B4-80A84B64 000B14 02B0+00 1/0 0/0 0/0 .text main__13daNpc_myna2_cFv */ +BOOL daNpc_myna2_c::main() { + if (!doEvent()) { + doNormalAction(1); + } + + if (checkHide()) { + attention_info.flags = 0; + } + + if (!daNpc_myna2_Param_c::m.common.debug_mode_ON && (!dComIfGp_event_runCheck() || (mOrderNewEvt && dComIfGp_getEvent().isOrderOK()))) { + if (mOrderEvtNo != 0) { + eventInfo.setArchiveName(l_resNames[l_evtGetParamList[mOrderEvtNo].arcIdx]); + } + + orderEvent(mOrderSpeakEvt, l_evtNames[l_evtGetParamList[mOrderEvtNo].fileIdx], 0xFFFF, 0x28, 0xFF, 1); + } + + if (field_0x9ee) { + mMotionMorfOverride = 0.0f; + field_0x9ee = false; + } + + playMotion(); + + if (mType == 0) { + return 1; + } + + cXyz* cc_move_p = mCcStts.GetCCMoveP(); + if (cc_move_p != NULL) { + *cc_move_p *= 0.15f; + } + fopAcM_posMoveF(this, cc_move_p); + mAcch.CrrPos(dComIfG_Bgsp()); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); + + if (-G_CM3D_F_INF != mGroundH) { + field_0x998 = daNpcF_getGroundAngle(&mGndChk, mCurAngle.y); + setEnvTevColor(); + setRoomNo(); + + mPolySound = dKy_pol_sound_get(&mAcch.m_gnd); + mReverb = dComIfGp_getReverb(mCcStts.GetRoomId()); + + if (mAcch.ChkWaterHit() && mAcch.m_wtr.GetHeight() > mGroundH) { + mPolySound = dKy_pol_sound_get(&mAcch.m_wtr); + } + } + + return 0; +} + +/* 80A84B64-80A84DAC 000DC4 0248+00 1/0 0/0 0/0 .text setAttnPos__13daNpc_myna2_cFv */ +void daNpc_myna2_c::setAttnPos() { + static cXyz eyeOffset(30.0f, 10.0f, 0.0f); + + cXyz sp2C, sp20, sp14, sp18; + f32 attention_offset = daNpc_myna2_Param_c::m.common.attention_offset; + + setMtx(); + + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(15)); + mDoMtx_stack_c::multVecZero(&mHeadPos); + mDoMtx_stack_c::multVec(&eyeOffset, &eyePos); + eyeOffset.y = 0.0f; + mDoMtx_stack_c::multVec(&eyeOffset, &sp14); + + mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &sp14); + mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &sp14); + + f32 var_f30 = 0.0f; + f32 var_f29 = 0.0f; + + sp20.set(0.0f, 0.0f, 0.0f); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(mCurAngle.x, mCurAngle.y, mCurAngle.z); + mDoMtx_stack_c::multVec(&sp20, &sp2C); + + attention_info.position.set(sp2C.x, sp2C.y + attention_offset, sp2C.z); + + if (!mHide && !mTwilight) { + if (!mIsDamaged) { + mCyl.SetTgType(0xD8FBFDFF); + mCyl.SetTgSPrm(0x1F); + mCyl.OnTgNoHitMark(); + } else { + mCyl.SetTgType(0); + mCyl.SetTgSPrm(0); + } + + mCyl.SetC(sp2C); + mCyl.SetH(daNpc_myna2_Param_c::m.common.height + var_f30); + mCyl.SetR(daNpc_myna2_Param_c::m.common.width + var_f29); + dComIfG_Ccsp()->Set(&mCyl); + } + + mCyl.ClrTgHit(); +} + +/* 80A84DAC-80A84EAC 00100C 0100+00 1/0 0/0 0/0 .text setExpressionBtp__13daNpc_myna2_cFi + */ +bool daNpc_myna2_c::setExpressionBtp(int i_index) { + J3DAnmTexPattern* btp_p = NULL; + int mode = 0; + + mAnmFlags &= ~0xA80; + if (l_btpGetParamList[i_index].fileIdx >= 0) { + btp_p = getTexPtrnAnmP(l_resNames[l_btpGetParamList[i_index].arcIdx], l_btpGetParamList[i_index].fileIdx); + } + + switch (i_index) { + case 0: + mode = 2; + break; + default: + btp_p = NULL; + } + + if (btp_p == NULL) { + return 1; + } + + if (setBtpAnm(btp_p, mpMorf->getModel()->getModelData(), 1.0f, mode)) { + mAnmFlags |= 0x280; + if (i_index == 0) { + mAnmFlags |= 0x800; + } + return 1; + } + + OS_REPORT("%s: 表情Btpアニメーションの登録に失敗しました!\n", __FILE__); + return 0; +} + +/* 80A84EAC-80A84FEC 00110C 0140+00 1/0 0/0 0/0 .text setMotionAnm__13daNpc_myna2_cFif */ +void daNpc_myna2_c::setMotionAnm(int i_index, f32 i_morf) { + J3DAnmTransformKey* bck_p = NULL; + int i_attr = J3DFrameCtrl::EMode_LOOP; + mAnmFlags &= ~ANM_MOTION_FLAGS; + + if (l_bckGetParamList[i_index].fileIdx >= 0) { + bck_p = getTrnsfrmKeyAnmP(l_resNames[l_bckGetParamList[i_index].arcIdx], l_bckGetParamList[i_index].fileIdx); + } + + setExpressionBtp(0); + + switch (i_index) { + case 0: + case 6: + case 7: + case 12: + case 13: + case 14: + break; + case 1: + case 2: + case 8: + case 9: + case 10: + case 11: + i_attr = 0; + break; + default: + bck_p = NULL; + } + + if (bck_p != NULL && setMcaMorfAnm(bck_p, 1.0f, i_morf, i_attr, 0, -1)) { + mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF; + mMotionLoops = 0; + } +} + +/* 80A84FEC-80A85030 00124C 0044+00 1/0 0/0 0/0 .text setMotion__13daNpc_myna2_cFifi */ +void daNpc_myna2_c::setMotion(int i_motion, f32 i_morf, int param_2) { + s16 motion = i_motion; + + if ((param_2 != 0 || mMotion != motion) && i_motion >= 0 && i_motion < 8) { + mMotion = motion; + mMotionMorfOverride = i_morf; + mMotionPrevPhase = -1; + mMotionPhase = 0; + } +} + +/* 80A85030-80A85038 001290 0008+00 1/0 0/0 0/0 .text drawDbgInfo__13daNpc_myna2_cFv */ +BOOL daNpc_myna2_c::drawDbgInfo() { + return FALSE; +} + +/* 80A85038-80A8503C 001298 0004+00 1/0 0/0 0/0 .text drawOtherMdls__13daNpc_myna2_cFv */ +void daNpc_myna2_c::drawOtherMdls() {} + +/* 80A8503C-80A85094 00129C 0058+00 1/1 0/0 0/0 .text getTypeFromParam__13daNpc_myna2_cFv + */ +u8 daNpc_myna2_c::getTypeFromParam() { + switch (fopAcM_GetParam(this) & 0xFF) { + case 0: + return 0; + case 1: + return 1; + case 2: + return 2; + case 3: + return 3; + default: + return 4; + } +} + +/* 80A85094-80A85160 0012F4 00CC+00 1/1 0/0 0/0 .text isDelete__13daNpc_myna2_cFv */ +int daNpc_myna2_c::isDelete() { + if (mType == 4 || mType == 0 || mType == 1) { + return FALSE; + } + + if (mType == 2) { + if (strcmp(dComIfGp_getStartStageName(), "F_SP115") == 0 && fopAcM_GetRoomNo(this) == 0 && dComIfGs_getStartPoint() == 20) { + return FALSE; + } + } else if (mType == 3) { + if (daPy_py_c::checkWolfCargoCarrySceneChange()) { + return FALSE; + } + } + + return TRUE; +} + +/* 80A85160-80A85358 0013C0 01F8+00 1/1 0/0 0/0 .text reset__13daNpc_myna2_cFv */ +void daNpc_myna2_c::reset() { + initialize(); + mLookat.initialize(); + + for (int i = 0; i < 1; i++) { + mActorMgrs[i].initialize(); + } + + mNextAction = NULL; + mAction = NULL; + + field_0xdf4 = 0; + field_0xdf8 = 0; + field_0xdfc = 0; + field_0xe00 = 0; + mLookMode = -1; + mMode = 0; + mItemPid = fpcM_ERROR_PROCESS_ID_e; + + current.pos = home.pos; + old.pos = current.pos; + + current.angle.set(0, home.angle.y, 0); + old.angle = current.angle; + shape_angle = current.angle; + mCurAngle = current.angle; + mOldAngle = mCurAngle; + + speedF = 0.0f; + speed.setall(0.0f); + + if (mType == 1) { + current.pos.y += 3000.0f; + } else if (mType == 2 || mType == 3) { + current.pos.y += 2000.0f; + } + + field_0xe10.set(0.0f, 0.0f, 0.0f); + field_0xe1c.set(0.0f, 0.0f, 0.0f); + field_0xe28 = 50; + field_0xe30 = 50.0f; + + if (mType == 1) { + daNpcF_offTmpBit(0x4A); + } else if (mType == 3) { + daNpcF_offTmpBit(0x4B); + } + + field_0x9ee = true; +} + +/* 80A85358-80A855E8 0015B8 0290+00 1/1 0/0 0/0 .text playMotion__13daNpc_myna2_cFv */ +void daNpc_myna2_c::playMotion() { + daNpcF_anmPlayData dat0 = {0, daNpc_myna2_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat0[] = {&dat0}; + + daNpcF_anmPlayData dat1 = {12, daNpc_myna2_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat1[] = {&dat1}; + + daNpcF_anmPlayData dat2a = {13, daNpc_myna2_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat2[] = {&dat2a}; + + daNpcF_anmPlayData dat3a = {9, daNpc_myna2_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat3b = {12, daNpc_myna2_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat3[] = {&dat3a, &dat3b}; + + daNpcF_anmPlayData dat4a = {10, daNpc_myna2_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat4b = {13, daNpc_myna2_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat4[] = {&dat4a, &dat4b}; + + daNpcF_anmPlayData dat5a = {11, daNpc_myna2_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat5b = {14, daNpc_myna2_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat5[] = {&dat5a, &dat5b}; + + daNpcF_anmPlayData dat6 = {14, daNpc_myna2_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat6[] = {&dat6}; + + daNpcF_anmPlayData dat7 = {7, daNpc_myna2_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat7[] = {&dat7}; + + daNpcF_anmPlayData** ppDat[8] = { + pDat0, + pDat1, + pDat2, + pDat3, + pDat4, + pDat5, + pDat6, + pDat7, + }; + + if (mMotion >= 0 && mMotion < 8) { + playMotionAnm(ppDat); + } +} + +/* 80A855E8-80A85614 001848 002C+00 2/2 0/0 0/0 .text + * chkAction__13daNpc_myna2_cFM13daNpc_myna2_cFPCvPvPv_i */ +int daNpc_myna2_c::chkAction(int (daNpc_myna2_c::*i_action)(void*)) { + return mAction == i_action; +} + +/* 80A85614-80A856BC 001874 00A8+00 2/2 0/0 0/0 .text + * setAction__13daNpc_myna2_cFM13daNpc_myna2_cFPCvPvPv_i */ +int daNpc_myna2_c::setAction(int (daNpc_myna2_c::*i_action)(void*)) { + mMode = 3; + + if (mAction) { + (this->*mAction)(NULL); + } + + mMode = 0; + mAction = i_action; + + if (mAction) { + (this->*mAction)(NULL); + } + + return TRUE; +} + +/* 80A856BC-80A857B0 00191C 00F4+00 1/1 0/0 0/0 .text selectAction__13daNpc_myna2_cFv */ +int daNpc_myna2_c::selectAction() { + mNextAction = NULL; + + if (daNpc_myna2_Param_c::m.common.debug_mode_ON) { + mNextAction = &daNpc_myna2_c::test; + } else { + switch (mType) { + case 1: + mNextAction = &daNpc_myna2_c::waitHovering; + break; + case 2: + mNextAction = &daNpc_myna2_c::waitFailure; + break; + case 3: + mNextAction = &daNpc_myna2_c::waitGoal; + break; + default: + mNextAction = &daNpc_myna2_c::wait; + break; + } + } + + return TRUE; +} + +/* 80A857B0-80A85894 001A10 00E4+00 1/1 0/0 0/0 .text doNormalAction__13daNpc_myna2_cFi + */ +void daNpc_myna2_c::doNormalAction(int param_0) { + if (param_0 != 0 && hitChk2(&mCyl, TRUE, FALSE)) { + int damage_time; + if (mCutType == daPy_py_c::CUT_TYPE_TURN_RIGHT) { + damage_time = 20; + } else { + damage_time = daNpc_myna2_Param_c::m.common.damage_time; + } + + setLookMode(LOOK_RESET); + } else if (mIsDamaged && mDamageTimer == 0) { + mMode = 0; + mIsDamaged = false; + } + + mOrderEvtNo = 0; + + if (mNextAction) { + if (mAction == mNextAction) { + (this->*mAction)(NULL); + } else { + setAction(mNextAction); + } + } +} + +/* 80A85894-80A85BA4 001AF4 0310+00 1/1 0/0 0/0 .text doEvent__13daNpc_myna2_cFv */ +BOOL daNpc_myna2_c::doEvent() { + BOOL rv = FALSE; + + if (dComIfGp_event_runCheck() != FALSE) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + + if (eventInfo.checkCommandTalk() || eventInfo.checkCommandDemoAccrpt()) { + mOrderNewEvt = false; + } + + if (eventInfo.checkCommandTalk()) { + if (chkAction(&daNpc_myna2_c::talk)) { + (this->*mAction)(NULL); + } else if (dComIfGp_event_chkTalkXY() == FALSE || dComIfGp_evmng_ChkPresentEnd()) { + setAction(&daNpc_myna2_c::talk); + } + + rv = TRUE; + } else { + if (mItemPid != fpcM_ERROR_PROCESS_ID_e) { + dComIfGp_event_setItemPartnerId(mItemPid); + mItemPid = fpcM_ERROR_PROCESS_ID_e; + } + + int staffId = eventManager.getMyStaffId(l_myName, NULL, 0); + if (staffId != -1) { + mStaffID = staffId; + + int evtCutNo = eventManager.getMyActIdx(staffId, mEvtCutNameList, 5, FALSE, FALSE); + + JUT_ASSERT(1540, (0 <= evtCutNo) && (evtCutNo < NUM_EVT_CUTS_e)); + JUT_ASSERT(1541, NULL != mEvtCutList[evtCutNo]); + + if ((this->*mEvtCutList[evtCutNo])(staffId)) { + eventManager.cutEnd(staffId); + } + + rv = TRUE; + } + + if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager.endCheck(mEventIdx)) { + switch (mOrderEvtNo) { + case 2: + dComIfGp_event_reset(); + mOrderEvtNo = 0; + mEventIdx = -1; + dComIfGs_offSwitch(field_0xe0d, fopAcM_GetRoomNo(this)); + fopAcM_delete(this); + break; + case 3: + case 4: + dComIfGp_event_reset(); + mOrderEvtNo = 0; + mEventIdx = -1; + fopAcM_delete(this); + break; + default: + dComIfGp_event_reset(); + mOrderEvtNo = 0; + mEventIdx = -1; + break; + } + } + } + + int i_expression, i_motion; + if (ctrlMsgAnm(i_expression, i_motion, this, FALSE) && !field_0x9eb) { + setMotion(i_motion, -1.0f, 0); + } + } else { + mMsgTimer = 0; + + if (mStaffID != -1) { + mAction = NULL; + mStaffID = -1; + } + } + + return rv; +} + +/* 80A85BA4-80A85BC8 001E04 0024+00 7/7 0/0 0/0 .text setLookMode__13daNpc_myna2_cFi */ +void daNpc_myna2_c::setLookMode(int i_lookMode) { + if (i_lookMode >= 0 && i_lookMode < 4 && i_lookMode != mLookMode) { + mLookMode = i_lookMode; + } +} + +/* 80A85BC8-80A85C60 001E28 0098+00 1/0 0/0 0/0 .text wait__13daNpc_myna2_cFPv */ +int daNpc_myna2_c::wait(void* param_0) { + switch (mMode) { + case 0: + setMotion(0, -1.0f, 0); + setLookMode(LOOK_NONE); + mTurnMode = 0; + mMode = 2; + /* fallthrough */ + case 2: + fopAcM_delete(this); + return 1; + case 3: + break; + } + + return 1; +} + +/* 80A85C60-80A8613C 001EC0 04DC+00 1/0 0/0 0/0 .text waitHovering__13daNpc_myna2_cFPv */ +int daNpc_myna2_c::waitHovering(void* param_0) { + daPy_py_c* player = daPy_getPlayerActorClass(); + cXyz sp2C(player->current.pos); + + switch (mMode) { + case 0: + setMotion(7, -1.0f, 0); + setLookMode(LOOK_NONE); + mTurnMode = 0; + field_0x9ea = 1; + mMode = 2; + /* fallthrough */ + case 2: { + mSound.playSumomoBgm((sp2C - current.pos).abs()); + calcHovering(0, 0); + + if ((sp2C - current.pos).absXZ() >= daNpc_myna2_Param_c::m.field_0x70 && fopAcM_CheckCondition(this, 4)) { + dComIfGs_offSwitch(field_0xe0d, fopAcM_GetRoomNo(this)); + daNpcF_offTmpBit(0x4A); + fopAcM_delete(this); + return 1; + } + + if (!daNpcF_chkEvtBit(0x11D) && daPy_py_c::checkNowWolf()) { + if (((sp2C - current.pos).absXZ() <= daNpc_myna2_Param_c::m.field_0x6c && (home.pos.y - sp2C.y) < 100.0f) && !player->checkPlayerFly() && daPy_getPlayerActorClass()->checkSwimUp()) { + mOrderEvtNo = 1; + } + } + break; + } + case 3: + break; + } + + return 1; +} + +/* 80A8613C-80A86194 00239C 0058+00 1/1 0/0 0/0 .text s_sub__FPvPv */ +static void* s_sub(void* i_actor, void* i_data) { + if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_MYNA2 && ((daNpc_myna2_c*)i_actor)->getType() == 1) { + return i_actor; + } + + return NULL; +} + +/* 80A86194-80A862BC 0023F4 0128+00 1/0 0/0 0/0 .text waitFailure__13daNpc_myna2_cFPv */ +int daNpc_myna2_c::waitFailure(void* param_0) { + switch (mMode) { + case 0: + setMotion(7, -1.0f, 0); + setLookMode(LOOK_NONE); + mTurnMode = 0; + mMode = 2; + break; + case 2: { + mSound.playSumomoBgm(0); + + if (!dComIfGs_isSwitch(field_0xe0d, fopAcM_GetRoomNo(this))) { + dComIfGs_onSwitch(field_0xe0d, fopAcM_GetRoomNo(this)); + } + + daNpc_myna2_c* myna = (daNpc_myna2_c*)fpcM_Search(s_sub, this); + if (myna != NULL) { + fopAcM_delete(myna); + } + + if (dComIfGp_getEvent().isOrderOK()) { + mOrderEvtNo = 2; + mOrderNewEvt = 1; + } + break; + } + case 3: + break; + } + + return 1; +} + +/* 80A862BC-80A86400 00251C 0144+00 1/0 0/0 0/0 .text waitGoal__13daNpc_myna2_cFPv */ +int daNpc_myna2_c::waitGoal(void* param_0) { + switch (mMode) { + case 0: + setMotion(7, -1.0f, 0); + setLookMode(0); + mTurnMode = 0; + mMode = 2; + break; + case 2: + mSound.playSumomoBgm(0); + + if (!daPy_getPlayerActorClass()->checkCargoCarry() && dComIfGp_getEvent().isOrderOK()) { + if (dComIfGp_getMessageCountNumber() >= 10000 && (!daNpcF_chkEvtBit(0x11E) || dComIfGp_getMessageCountNumber() > dComIfGs_getBalloonScore() || (dComIfGp_getMessageCountNumber() >= 0xF00E))) { + mOrderEvtNo = 4; + } else { + mOrderEvtNo = 3; + } + + mOrderNewEvt = 1; + } + break; + case 3: + break; + } + + return 1; +} + +/* 80A86400-80A865FC 002660 01FC+00 2/0 0/0 0/0 .text talk__13daNpc_myna2_cFPv */ +int daNpc_myna2_c::talk(void* param_0) { + int var_r30 = 0; + int var_r29 = 0; + + switch (mMode) { + case 0: + if (!mIsDamaged) { + initTalk(field_0xe04, NULL); + mTurnMode = 0; + mpMorf->setPlaySpeed(1.0f); + mMode = 2; + case 2: + mSound.playSumomoBgm(0); + + if (field_0x9ea != 0) { + var_r29 = 1; + if (mType != 0) { + cLib_addCalcAngleS2(¤t.angle.z, 0, 0x10, 0x200); + cLib_addCalcAngleS2(¤t.angle.x, 0, 0x10, 0x200); + shape_angle = mCurAngle = current.angle; + calcHovering(0, 1); + } + } else { + setLookMode(LOOK_PLAYER_TALK); + mActorMgrs[0].entry(daPy_getPlayerActorClass()); + + if (mCurAngle.y == fopAcM_searchPlayerAngleY(this)) { + var_r29 = 1; + } else if (step(fopAcM_searchPlayerAngleY(this), -1, -1, 0xF)) { + mTurnMode = 0; + } + } + + if (var_r29 && talkProc(NULL, 1, NULL)) { + var_r30 = 1; + } + + if (var_r30 != 0) { + mMode = 3; + if (field_0x9ec == 0) { + dComIfGp_event_reset(); + } + field_0x9ec = 0; + } + } + break; + case 3: + break; + } + + return var_r30; +} + +/* 80A865FC-80A866B0 00285C 00B4+00 2/0 0/0 0/0 .text test__13daNpc_myna2_cFPv */ +int daNpc_myna2_c::test(void* param_0) { + switch (mMode) { + case 0: + speedF = 0.0f; + speed.setall(0.0f); + mMode = 2; + /* fallthrough */ + case 2: + setMotion(daNpc_myna2_Param_c::m.common.motion, daNpc_myna2_Param_c::m.common.morf_frame, 0); + setLookMode(daNpc_myna2_Param_c::m.common.look_mode); + mOrderEvtNo = 0; + attention_info.flags = 0; + break; + case 3: + break; + } + + return 1; +} + +/* 80A866B0-80A8684C 002910 019C+00 1/0 0/0 0/0 .text ECut_firstTalk__13daNpc_myna2_cFi + */ +int daNpc_myna2_c::ECut_firstTalk(int i_staffId) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int rt = 0; + int prm = -1; + + mSound.playSumomoBgm(0); + + int* idata = dComIfGp_evmng_getMyIntegerP(i_staffId, "prm"); + if (idata != NULL) { + prm = *idata; + } + + if (eventManager.getIsAddvance(i_staffId)) { + switch (prm) { + case 0: + daPy_getPlayerActorClass()->changeDemoMoveAngle(fopAcM_searchPlayerAngleY(this) + 0x8000); + break; + case 10: + break; + case 20: + initTalk(field_0xe04, NULL); + break; + } + } + + switch (prm) { + case 0: + rt = 1; + calcHovering(0, 1); + break; + case 10: + calcHovering(0, 1); + + if (current.pos.y <= 160.0f + home.pos.y) { + rt = 1; + } + break; + case 20: + calcHovering(0, 1); + if (talkProc(NULL, 1, NULL)) { + rt = 1; + } + break; + default: + rt = 1; + break; + } + + return rt; +} + +/* 80A8684C-80A86A0C 002AAC 01C0+00 1/0 0/0 0/0 .text ECut_gameFailure__13daNpc_myna2_cFi + */ +int daNpc_myna2_c::ECut_gameFailure(int i_staffId) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int rt = 0; + int prm = -1; + + mSound.playSumomoBgm(0); + + int* idata = dComIfGp_evmng_getMyIntegerP(i_staffId, "prm"); + if (idata != NULL) { + prm = *idata; + } + + if (eventManager.getIsAddvance(i_staffId)) { + switch (prm) { + case 0: + case 20: + break; + case 10: + initTalk(field_0xe04, NULL); + break; + } + } + + switch (prm) { + case 0: + calcHovering(0, 1); + if (current.pos.y <= 160.0f + home.pos.y) { + rt = 1; + } + break; + case 10: + calcHovering(0, 1); + if (talkProc(NULL, 1, NULL)) { + if (mFlow.getChoiceNo() == 0) { + dStage_changeScene(6, 0.0f, 10, fopAcM_GetRoomNo(this), 0, -1); + } else { + rt = 1; + } + } + break; + case 20: + if (current.pos.y > 500.0f + home.pos.y) { + rt = 1; + } + calcHovering(1, 0); + break; + default: + rt = 1; + break; + } + + return rt; +} + +/* 80A86A0C-80A86BEC 002C6C 01E0+00 1/0 0/0 0/0 .text ECut_gameGoal__13daNpc_myna2_cFi */ +int daNpc_myna2_c::ECut_gameGoal(int i_staffId) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int rt = 0; + int prm = -1; + + mSound.playSumomoBgm(0); + + int* idata = dComIfGp_evmng_getMyIntegerP(i_staffId, "prm"); + if (idata != NULL) { + prm = *idata; + } + + if (eventManager.getIsAddvance(i_staffId)) { + switch (prm) { + case 0: + if (dComIfGp_getMessageCountNumber() > dComIfGs_getBalloonScore()) { + dComIfGs_setBalloonScore(dComIfGp_getMessageCountNumber()); + } + break; + case 10: + initTalk(field_0xe04, NULL); + break; + case 20: + break; + } + } + + switch (prm) { + case 0: + calcHovering(0, 1); + if (current.pos.y <= 150.0f + home.pos.y) { + rt = 1; + } + break; + case 10: + calcHovering(0, 1); + if (talkProc(NULL, 1, NULL)) { + if (mFlow.getChoiceNo() == 0) { + dStage_changeScene(11, 0.0f, 10, fopAcM_GetRoomNo(this), 0, -1); + } else { + rt = 1; + } + } + break; + case 20: + if (current.pos.y > 500.0f + home.pos.y) { + rt = 1; + } + calcHovering(1, 0); + break; + default: + rt = 1; + break; + } + + return rt; +} + +/* 80A86BEC-80A86E8C 002E4C 02A0+00 3/0 0/0 0/0 .text ECut_gameGoalSuccess__13daNpc_myna2_cFi */ +int daNpc_myna2_c::ECut_gameGoalSuccess(int i_staffId) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int rt = 0; + int prm = -1; + + mSound.playSumomoBgm(0); + + int* idata = dComIfGp_evmng_getMyIntegerP(i_staffId, "prm"); + if (idata != NULL) { + prm = *idata; + } + + if (eventManager.getIsAddvance(i_staffId)) { + switch (prm) { + case 0: + daNpcF_offTmpBit(0xF); + if (dComIfGp_getMessageCountNumber() > dComIfGs_getBalloonScore()) { + dComIfGs_setBalloonScore(dComIfGp_getMessageCountNumber()); + daNpcF_onTmpBit(0x4B); + } + break; + case 10: + initTalk(field_0xe04, NULL); + break; + case 20: { + int itemNo = 0; + if (mFlow.getEventId(&itemNo) == 1) { + mItemPid = fopAcM_createItemForPresentDemo(¤t.pos, itemNo, 0, -1, -1, NULL, NULL); + } + break; + } + case 25: + initTalk(field_0xe04, NULL); + break; + case 30: + break; + default: + break; + } + } + + switch (prm) { + case 0: + calcHovering(0, 1); + if (current.pos.y <= 150.0f + home.pos.y) { + rt = 1; + } + break; + case 10: + calcHovering(0, 1); + if (talkProc(NULL, 1, NULL)) { + rt = 1; + } + break; + case 20: + field_0x9eb = 1; + calcHovering(0, 1); + rt = 1; + break; + case 25: + calcHovering(0, 1); + if (talkProc(NULL, 1, NULL)) { + if (mFlow.getChoiceNo() == 0) { + dStage_changeScene(11, 0.0f, 10, fopAcM_GetRoomNo(this), 0, -1); + } else { + rt = 1; + } + } + break; + case 30: + field_0x9eb = 1; + if (current.pos.y > 500.0f + home.pos.y) { + rt = 1; + } + calcHovering(1, 0); + break; + default: + rt = 1; + break; + } + + return rt; +} + +/* 80A86E8C-80A879A0 0030EC 0B14+00 6/6 0/0 0/0 .text calcHovering__13daNpc_myna2_cFii */ +void daNpc_myna2_c::calcHovering(int param_0, int param_1) { + if (param_0 != 0) { + field_0xe1c.set(0.0f, 5.0f, 0.0f); + cLib_addCalcPos2(&field_0xe10, field_0xe1c, 0.1f, 0.1f); + mpMorf->setPlaySpeed(1.5f); + } else if (current.pos.y > 500.0f + home.pos.y) { + field_0xe10.y = -25.0f; + mpMorf->setPlaySpeed(0.5f); + } else { + cXyz sp78(home.pos); + sp78.y += 120.0f; + + if (param_1 == 1) { + cXyz sp6C = current.pos - sp78; + if (fabsf(sp6C.y) > field_0xe30) { + if (sp6C.y > 0.0f) { + field_0xe1c.y = -cLib_getRndValue(0.5f, 1.0f); + } else { + field_0xe1c.y = cLib_getRndValue(0.5f, 1.0f); + } + field_0xe28 = cLib_getRndValue(20, 20); + } else if (sp6C.absXZ() > 50.0f) { + sp6C.y = 0.0f; + sp6C.normalizeZP(); + sp6C *= cLib_getRndValue(0.2f, 0.2f); + + field_0xe1c.x = -sp6C.x; + field_0xe1c.z = -sp6C.z; + field_0xe28 = cLib_getRndValue(20, 20); + } else if (cLib_calcTimer(&field_0xe28) == 0) { + field_0xe1c.x = cLib_getRndValue(-0.2f, 0.4f); + field_0xe1c.y = cLib_getRndValue(0.5f, 0.5f); + field_0xe1c.z = cLib_getRndValue(-0.2f, 0.4f); + + field_0xe1c.normalizeZP(); + field_0xe1c *= cLib_getRndValue(-1.5f, 3.0f); + field_0xe28 = cLib_getRndValue(20, 20); + field_0xe30 = cLib_getRndValue(40.0f, 20.0f); + } + } else { + if ((sp78 - current.pos).abs() > 70.0f) { + field_0xe1c = sp78 - current.pos; + field_0xe1c.normalizeZP(); + field_0xe1c *= 3.0f; + + field_0xe28 = cLib_getRndValue(20, 20); + field_0xe2c = 0; + } else if (cLib_calcTimer(&field_0xe28) == 0) { + field_0xe1c.x = cLib_getRndValue(-0.7f, 1.4f); + field_0xe1c.y = cLib_getRndValue(-1.0f, 2.0f); + field_0xe1c.z = cLib_getRndValue(-0.7f, 1.4f); + field_0xe1c.normalizeZP(); + field_0xe1c *= cLib_getRndValue(0.0f, 3.0f); + field_0xe28 = cLib_getRndValue(30, 120); + } + + if (((daPy_getPlayerActorClass()->current.pos - current.pos).abs() < 100.0f || mCyl.ChkCoHit()) && field_0xe1c.y < 0.1) { + field_0xe1c.y = cLib_getRndValue(0.1f, 1.5f); + field_0xe28 = cLib_getRndValue(20, 20); + field_0xe2c = 10; + } + } + + cLib_calcTimer(&field_0xe2c); + + if (field_0xe10.abs() > 3.0f || field_0xe2c != 0) { + cLib_addCalcPos2(&field_0xe10, field_0xe1c, 0.5f, 1.0f); + } else { + cLib_addCalcPos2(&field_0xe10, field_0xe1c, 0.1f, 0.1f); + } + + mpMorf->setPlaySpeed(0.5f + ((3.0f + field_0xe1c.y) / 6.0f)); + } + + current.pos += field_0xe10; + cLib_addCalcAngleS2(¤t.angle.y, fopAcM_searchPlayerAngleY(this), 0x10, 0x200); + + s16 sp14 = (current.angle.y + cM_atan2s(field_0xe10.x, field_0xe10.z)); + f32 temp_f30 = field_0xe10.absXZ() * cM_scos(sp14); + f32 temp_f29 = field_0xe10.absXZ() * cM_ssin(sp14); + + cLib_addCalcAngleS2(¤t.angle.z, (4096.0f * temp_f30) / 3.0f, 0x10, 0x200); + cLib_addCalcAngleS2(¤t.angle.x, (6144.0f * temp_f29) / 3.0f, 0x10, 0x200); + shape_angle = mCurAngle = current.angle; +} + +/* 80A879A0-80A879C0 003C00 0020+00 1/0 0/0 0/0 .text daNpc_myna2_Create__FPv */ +static int daNpc_myna2_Create(void* i_this) { + return ((daNpc_myna2_c*)i_this)->create(); +} + +/* 80A879C0-80A879E0 003C20 0020+00 1/0 0/0 0/0 .text daNpc_myna2_Delete__FPv */ +static int daNpc_myna2_Delete(void* i_this) { + return ((daNpc_myna2_c*)i_this)->Delete(); +} + +/* 80A879E0-80A87A00 003C40 0020+00 1/0 0/0 0/0 .text daNpc_myna2_Execute__FPv */ +static int daNpc_myna2_Execute(void* i_this) { + return ((daNpc_myna2_c*)i_this)->Execute(); +} + +/* 80A87A00-80A87A20 003C60 0020+00 1/0 0/0 0/0 .text daNpc_myna2_Draw__FPv */ +static int daNpc_myna2_Draw(void* i_this) { + return ((daNpc_myna2_c*)i_this)->Draw(); +} + +/* 80A87A20-80A87A28 003C80 0008+00 1/0 0/0 0/0 .text daNpc_myna2_IsDelete__FPv */ +static int daNpc_myna2_IsDelete(void* i_this) { + return TRUE; +} /* 80A889C4-80A889E4 -00001 0020+00 1/0 0/0 0/0 .data daNpc_myna2_MethodTable */ static actor_method_class daNpc_myna2_MethodTable = { - (process_method_func)daNpc_myna2_Create__FPv, - (process_method_func)daNpc_myna2_Delete__FPv, - (process_method_func)daNpc_myna2_Execute__FPv, - (process_method_func)daNpc_myna2_IsDelete__FPv, - (process_method_func)daNpc_myna2_Draw__FPv, + (process_method_func)daNpc_myna2_Create, + (process_method_func)daNpc_myna2_Delete, + (process_method_func)daNpc_myna2_Execute, + (process_method_func)daNpc_myna2_IsDelete, + (process_method_func)daNpc_myna2_Draw, }; /* 80A889E4-80A88A14 -00001 0030+00 0/0 0/0 1/0 .data g_profile_MYNA2 */ @@ -558,1236 +1414,4 @@ extern actor_process_profile_definition g_profile_MYNA2 = { fopAc_CULLBOX_CUSTOM_e, // cullType }; -/* 80A88A14-80A88A5C 000360 0048+00 2/2 0/0 0/0 .data __vt__13daNpc_myna2_c */ -SECTION_DATA extern void* __vt__13daNpc_myna2_c[18] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daNpc_myna2_cFv, - (void*)setParam__13daNpc_myna2_cFv, - (void*)main__13daNpc_myna2_cFv, - (void*)ctrlBtk__8daNpcF_cFv, - (void*)adjustShapeAngle__8daNpcF_cFv, - (void*)setMtx__8daNpcF_cFv, - (void*)setMtx2__8daNpcF_cFv, - (void*)setAttnPos__13daNpc_myna2_cFv, - (void*)setCollisions__8daNpcF_cFv, - (void*)setExpressionAnm__8daNpcF_cFib, - (void*)setExpressionBtp__13daNpc_myna2_cFi, - (void*)setExpression__8daNpcF_cFif, - (void*)setMotionAnm__13daNpc_myna2_cFif, - (void*)setMotion__13daNpc_myna2_cFifi, - (void*)drawDbgInfo__13daNpc_myna2_cFv, - (void*)drawOtherMdls__13daNpc_myna2_cFv, -}; - -/* 80A88A5C-80A88A68 0003A8 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, -}; - -/* 80A88A68-80A88A8C 0003B4 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_80A88418, - (void*)NULL, - (void*)NULL, - (void*)func_80A88410, -}; - -/* 80A88A8C-80A88A98 0003D8 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, -}; - -/* 80A88A98-80A88AA4 0003E4 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, -}; - -/* 80A88AA4-80A88AB0 0003F0 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, -}; - -/* 80A88AB0-80A88ABC 0003FC 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, -}; - -/* 80A88ABC-80A88AC8 000408 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, -}; - -/* 80A88AC8-80A88AD4 000414 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, -}; - -/* 80A88AD4-80A88AE0 000420 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, -}; - -/* 80A83E8C-80A84010 0000EC 0184+00 1/1 0/0 0/0 .text __ct__13daNpc_myna2_cFv */ -daNpc_myna2_c::daNpc_myna2_c() { - // NONMATCHING -} - -/* 80A84010-80A84058 000270 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80A84058-80A840A0 0002B8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80A840A0-80A842C8 000300 0228+00 1/0 0/0 0/0 .text __dt__13daNpc_myna2_cFv */ -daNpc_myna2_c::~daNpc_myna2_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A88434-80A884A8 000000 0074+00 14/14 0/0 0/0 .rodata m__19daNpc_myna2_Param_c */ -SECTION_RODATA u8 const daNpc_myna2_Param_c::m[116] = { - 0x42, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x44, 0x16, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x42, 0x20, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x40, 0x00, 0x00, 0x00, 0x03, 0x00, - 0x06, 0x00, 0x05, 0x00, 0x06, 0x43, 0x34, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96, - 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x45, 0x1C, 0x40, 0x00, -}; -COMPILER_STRIP_GATE(0x80A88434, &daNpc_myna2_Param_c::m); - -/* 80A884A8-80A884BC 000074 0014+00 0/1 0/0 0/0 .rodata heapSize$4340 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const heapSize[20] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x50, 0x00, 0x00, - 0x24, 0x40, 0x00, 0x00, 0x24, 0x50, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A884A8, &heapSize); -#pragma pop - -/* 80A884BC-80A884C0 000088 0004+00 0/1 0/0 0/0 .rodata @4428 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4428 = -300.0f; -COMPILER_STRIP_GATE(0x80A884BC, &lit_4428); -#pragma pop - -/* 80A884C0-80A884C4 00008C 0004+00 0/1 0/0 0/0 .rodata @4429 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4429 = -50.0f; -COMPILER_STRIP_GATE(0x80A884C0, &lit_4429); -#pragma pop - -/* 80A884C4-80A884C8 000090 0004+00 0/1 0/0 0/0 .rodata @4430 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4430 = 300.0f; -COMPILER_STRIP_GATE(0x80A884C4, &lit_4430); -#pragma pop - -/* 80A884C8-80A884CC 000094 0004+00 0/1 0/0 0/0 .rodata @4431 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4431 = 450.0f; -COMPILER_STRIP_GATE(0x80A884C8, &lit_4431); -#pragma pop - -/* 80A842C8-80A845AC 000528 02E4+00 1/1 0/0 0/0 .text create__13daNpc_myna2_cFv */ -void daNpc_myna2_c::create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A884CC-80A884D0 000098 0004+00 4/5 0/0 0/0 .rodata @4462 */ -SECTION_RODATA static f32 const lit_4462 = 1.0f; -COMPILER_STRIP_GATE(0x80A884CC, &lit_4462); - -/* 80A884D0-80A884D4 00009C 0004+00 2/9 0/0 0/0 .rodata @4463 */ -SECTION_RODATA static u8 const lit_4463[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A884D0, &lit_4463); - -/* 80A845AC-80A846E0 00080C 0134+00 1/1 0/0 0/0 .text CreateHeap__13daNpc_myna2_cFv */ -void daNpc_myna2_c::CreateHeap() { - // NONMATCHING -} - -/* 80A846E0-80A84714 000940 0034+00 1/1 0/0 0/0 .text Delete__13daNpc_myna2_cFv */ -void daNpc_myna2_c::Delete() { - // NONMATCHING -} - -/* 80A84714-80A84734 000974 0020+00 2/2 0/0 0/0 .text Execute__13daNpc_myna2_cFv */ -void daNpc_myna2_c::Execute() { - // NONMATCHING -} - -/* 80A84734-80A847A8 000994 0074+00 1/1 0/0 0/0 .text Draw__13daNpc_myna2_cFv */ -void daNpc_myna2_c::Draw() { - // NONMATCHING -} - -/* 80A847A8-80A847C8 000A08 0020+00 1/1 0/0 0/0 .text - * createHeapCallBack__13daNpc_myna2_cFP10fopAc_ac_c */ -void daNpc_myna2_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80A847C8-80A848B4 000A28 00EC+00 1/0 0/0 0/0 .text setParam__13daNpc_myna2_cFv */ -void daNpc_myna2_c::setParam() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A884D4-80A884D8 0000A0 0004+00 0/1 0/0 0/0 .rodata @4577 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4577 = 3.0f / 20.0f; -COMPILER_STRIP_GATE(0x80A884D4, &lit_4577); -#pragma pop - -/* 80A884D8-80A884DC 0000A4 0004+00 0/1 0/0 0/0 .rodata @4578 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4578 = -G_CM3D_F_INF; -COMPILER_STRIP_GATE(0x80A884D8, &lit_4578); -#pragma pop - -/* 80A848B4-80A84B64 000B14 02B0+00 1/0 0/0 0/0 .text main__13daNpc_myna2_cFv */ -void daNpc_myna2_c::main() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A884DC-80A884E0 0000A8 0004+00 0/1 0/0 0/0 .rodata @4644 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4644 = 30.0f; -COMPILER_STRIP_GATE(0x80A884DC, &lit_4644); -#pragma pop - -/* 80A884E0-80A884E4 0000AC 0004+00 0/1 0/0 0/0 .rodata @4645 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4645 = 10.0f; -COMPILER_STRIP_GATE(0x80A884E0, &lit_4645); -#pragma pop - -/* 80A88B38-80A88B44 000048 000C+00 1/1 0/0 0/0 .bss @4032 */ -static u8 lit_4032[12]; - -/* 80A88B44-80A88B48 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 80A88B48-80A88B58 000058 000C+04 0/1 0/0 0/0 .bss @4583 */ -#pragma push -#pragma force_active on -static u8 lit_4583[12 + 4 /* padding */]; -#pragma pop - -/* 80A88B58-80A88B64 000068 000C+00 0/1 0/0 0/0 .bss eyeOffset$4582 */ -#pragma push -#pragma force_active on -static u8 eyeOffset[12]; -#pragma pop - -/* 80A84B64-80A84DAC 000DC4 0248+00 1/0 0/0 0/0 .text setAttnPos__13daNpc_myna2_cFv */ -void daNpc_myna2_c::setAttnPos() { - // NONMATCHING -} - -/* 80A84DAC-80A84EAC 00100C 0100+00 1/0 0/0 0/0 .text setExpressionBtp__13daNpc_myna2_cFi - */ -void daNpc_myna2_c::setExpressionBtp(int param_0) { - // NONMATCHING -} - -/* 80A84EAC-80A84FEC 00110C 0140+00 1/0 0/0 0/0 .text setMotionAnm__13daNpc_myna2_cFif */ -bool daNpc_myna2_c::setMotionAnm(int param_0, f32 param_1) { - // NONMATCHING -} - -/* 80A84FEC-80A85030 00124C 0044+00 1/0 0/0 0/0 .text setMotion__13daNpc_myna2_cFifi */ -void daNpc_myna2_c::setMotion(int param_0, f32 param_1, int param_2) { - // NONMATCHING -} - -/* 80A85030-80A85038 001290 0008+00 1/0 0/0 0/0 .text drawDbgInfo__13daNpc_myna2_cFv */ -bool daNpc_myna2_c::drawDbgInfo() { - return false; -} - -/* 80A85038-80A8503C 001298 0004+00 1/0 0/0 0/0 .text drawOtherMdls__13daNpc_myna2_cFv */ -void daNpc_myna2_c::drawOtherMdls() { - /* empty function */ -} - -/* 80A8503C-80A85094 00129C 0058+00 1/1 0/0 0/0 .text getTypeFromParam__13daNpc_myna2_cFv - */ -void daNpc_myna2_c::getTypeFromParam() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A88654-80A88654 000220 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80A886A8 = "F_SP115"; -#pragma pop - -/* 80A85094-80A85160 0012F4 00CC+00 1/1 0/0 0/0 .text isDelete__13daNpc_myna2_cFv */ -void daNpc_myna2_c::isDelete() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A884E4-80A884E8 0000B0 0004+00 0/1 0/0 0/0 .rodata @4806 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4806 = 3000.0f; -COMPILER_STRIP_GATE(0x80A884E4, &lit_4806); -#pragma pop - -/* 80A884E8-80A884EC 0000B4 0004+00 0/1 0/0 0/0 .rodata @4807 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4807 = 2000.0f; -COMPILER_STRIP_GATE(0x80A884E8, &lit_4807); -#pragma pop - -/* 80A884EC-80A884F0 0000B8 0004+00 0/2 0/0 0/0 .rodata @4808 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4808 = 50.0f; -COMPILER_STRIP_GATE(0x80A884EC, &lit_4808); -#pragma pop - -/* 80A85160-80A85358 0013C0 01F8+00 1/1 0/0 0/0 .text reset__13daNpc_myna2_cFv */ -void daNpc_myna2_c::reset() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A884F0-80A884FC 0000BC 000C+00 0/1 0/0 0/0 .rodata @4812 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4812[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A884F0, &lit_4812); -#pragma pop - -/* 80A884FC-80A88500 0000C8 0004+00 0/1 0/0 0/0 .rodata @4813 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4813[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A884FC, &lit_4813); -#pragma pop - -/* 80A88500-80A8850C 0000CC 000C+00 0/1 0/0 0/0 .rodata @4814 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4814[12] = { - 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A88500, &lit_4814); -#pragma pop - -/* 80A8850C-80A88510 0000D8 0004+00 0/1 0/0 0/0 .rodata @4815 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4815[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A8850C, &lit_4815); -#pragma pop - -/* 80A88510-80A8851C 0000DC 000C+00 0/1 0/0 0/0 .rodata @4816 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4816[12] = { - 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A88510, &lit_4816); -#pragma pop - -/* 80A8851C-80A88520 0000E8 0004+00 0/1 0/0 0/0 .rodata @4817 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4817[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A8851C, &lit_4817); -#pragma pop - -/* 80A88520-80A8852C 0000EC 000C+00 0/1 0/0 0/0 .rodata @4818 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4818[12] = { - 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A88520, &lit_4818); -#pragma pop - -/* 80A8852C-80A88538 0000F8 000C+00 0/1 0/0 0/0 .rodata @4819 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4819[12] = { - 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A8852C, &lit_4819); -#pragma pop - -/* 80A88538-80A88540 000104 0008+00 0/1 0/0 0/0 .rodata @4820 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4820[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A88538, &lit_4820); -#pragma pop - -/* 80A88540-80A8854C 00010C 000C+00 0/1 0/0 0/0 .rodata @4821 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4821[12] = { - 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A88540, &lit_4821); -#pragma pop - -/* 80A8854C-80A88558 000118 000C+00 0/1 0/0 0/0 .rodata @4822 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4822[12] = { - 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A8854C, &lit_4822); -#pragma pop - -/* 80A88558-80A88560 000124 0008+00 0/1 0/0 0/0 .rodata @4823 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4823[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A88558, &lit_4823); -#pragma pop - -/* 80A88560-80A8856C 00012C 000C+00 0/1 0/0 0/0 .rodata @4824 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4824[12] = { - 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A88560, &lit_4824); -#pragma pop - -/* 80A8856C-80A88578 000138 000C+00 0/1 0/0 0/0 .rodata @4825 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4825[12] = { - 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A8856C, &lit_4825); -#pragma pop - -/* 80A88578-80A88580 000144 0008+00 0/1 0/0 0/0 .rodata @4826 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4826[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A88578, &lit_4826); -#pragma pop - -/* 80A88580-80A8858C 00014C 000C+00 0/1 0/0 0/0 .rodata @4827 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4827[12] = { - 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A88580, &lit_4827); -#pragma pop - -/* 80A8858C-80A88590 000158 0004+00 0/1 0/0 0/0 .rodata @4828 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4828[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A8858C, &lit_4828); -#pragma pop - -/* 80A88590-80A8859C 00015C 000C+00 0/1 0/0 0/0 .rodata @4829 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4829[12] = { - 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A88590, &lit_4829); -#pragma pop - -/* 80A8859C-80A885A0 000168 0004+00 0/1 0/0 0/0 .rodata @4830 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4830[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A8859C, &lit_4830); -#pragma pop - -/* 80A85358-80A855E8 0015B8 0290+00 1/1 0/0 0/0 .text playMotion__13daNpc_myna2_cFv */ -void daNpc_myna2_c::playMotion() { - // NONMATCHING -} - -/* 80A855E8-80A85614 001848 002C+00 2/2 0/0 0/0 .text - * chkAction__13daNpc_myna2_cFM13daNpc_myna2_cFPCvPvPv_i */ -void daNpc_myna2_c::chkAction(int (daNpc_myna2_c::*param_0)(void*)) { - // NONMATCHING -} - -/* 80A85614-80A856BC 001874 00A8+00 2/2 0/0 0/0 .text - * setAction__13daNpc_myna2_cFM13daNpc_myna2_cFPCvPvPv_i */ -void daNpc_myna2_c::setAction(int (daNpc_myna2_c::*param_0)(void*)) { - // NONMATCHING -} - -/* 80A856BC-80A857B0 00191C 00F4+00 1/1 0/0 0/0 .text selectAction__13daNpc_myna2_cFv */ -void daNpc_myna2_c::selectAction() { - // NONMATCHING -} - -/* 80A857B0-80A85894 001A10 00E4+00 1/1 0/0 0/0 .text doNormalAction__13daNpc_myna2_cFi - */ -void daNpc_myna2_c::doNormalAction(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A885A0-80A885C0 00016C 0020+00 0/0 0/0 0/0 .rodata @4831 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4831[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(0x80A885A0, &lit_4831); -#pragma pop - -/* 80A885C0-80A885C4 00018C 0004+00 4/6 0/0 0/0 .rodata @4982 */ -SECTION_RODATA static f32 const lit_4982 = -1.0f; -COMPILER_STRIP_GATE(0x80A885C0, &lit_4982); - -/* 80A85894-80A85BA4 001AF4 0310+00 1/1 0/0 0/0 .text doEvent__13daNpc_myna2_cFv */ -void daNpc_myna2_c::doEvent() { - // NONMATCHING -} - -/* 80A85BA4-80A85BC8 001E04 0024+00 7/7 0/0 0/0 .text setLookMode__13daNpc_myna2_cFi */ -void daNpc_myna2_c::setLookMode(int param_0) { - // NONMATCHING -} - -/* 80A85BC8-80A85C60 001E28 0098+00 1/0 0/0 0/0 .text wait__13daNpc_myna2_cFPv */ -void daNpc_myna2_c::wait(void* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A885C4-80A885CC 000190 0008+00 0/2 0/0 0/0 .rodata @5186 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5186[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A885C4, &lit_5186); -#pragma pop - -/* 80A885CC-80A885D4 000198 0008+00 0/2 0/0 0/0 .rodata @5187 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5187[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A885CC, &lit_5187); -#pragma pop - -/* 80A885D4-80A885DC 0001A0 0008+00 0/2 0/0 0/0 .rodata @5188 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5188[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A885D4, &lit_5188); -#pragma pop - -/* 80A885DC-80A885E0 0001A8 0004+00 0/2 0/0 0/0 .rodata @5189 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5189 = 100.0f; -COMPILER_STRIP_GATE(0x80A885DC, &lit_5189); -#pragma pop - -/* 80A85C60-80A8613C 001EC0 04DC+00 1/0 0/0 0/0 .text waitHovering__13daNpc_myna2_cFPv */ -void daNpc_myna2_c::waitHovering(void* param_0) { - // NONMATCHING -} - -/* 80A8613C-80A86194 00239C 0058+00 1/1 0/0 0/0 .text s_sub__FPvPv */ -static void s_sub(void* param_0, void* param_1) { - // NONMATCHING -} - -/* 80A86194-80A862BC 0023F4 0128+00 1/0 0/0 0/0 .text waitFailure__13daNpc_myna2_cFPv */ -void daNpc_myna2_c::waitFailure(void* param_0) { - // NONMATCHING -} - -/* 80A862BC-80A86400 00251C 0144+00 1/0 0/0 0/0 .text waitGoal__13daNpc_myna2_cFPv */ -void daNpc_myna2_c::waitGoal(void* param_0) { - // NONMATCHING -} - -/* 80A86400-80A865FC 002660 01FC+00 2/0 0/0 0/0 .text talk__13daNpc_myna2_cFPv */ -void daNpc_myna2_c::talk(void* param_0) { - // NONMATCHING -} - -/* 80A865FC-80A866B0 00285C 00B4+00 2/0 0/0 0/0 .text test__13daNpc_myna2_cFPv */ -void daNpc_myna2_c::test(void* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A885E0-80A885E4 0001AC 0004+00 1/2 0/0 0/0 .rodata @5358 */ -SECTION_RODATA static f32 const lit_5358 = 160.0f; -COMPILER_STRIP_GATE(0x80A885E0, &lit_5358); - -/* 80A88654-80A88654 000220 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80A886B0 = "prm"; -#pragma pop - -/* 80A866B0-80A8684C 002910 019C+00 1/0 0/0 0/0 .text ECut_firstTalk__13daNpc_myna2_cFi - */ -void daNpc_myna2_c::ECut_firstTalk(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A885E4-80A885E8 0001B0 0004+00 0/3 0/0 0/0 .rodata @5391 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5391 = 500.0f; -COMPILER_STRIP_GATE(0x80A885E4, &lit_5391); -#pragma pop - -/* 80A8684C-80A86A0C 002AAC 01C0+00 1/0 0/0 0/0 .text ECut_gameFailure__13daNpc_myna2_cFi - */ -void daNpc_myna2_c::ECut_gameFailure(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A885E8-80A885EC 0001B4 0004+00 0/1 0/0 0/0 .rodata @5440 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5440 = 150.0f; -COMPILER_STRIP_GATE(0x80A885E8, &lit_5440); -#pragma pop - -/* 80A86A0C-80A86BEC 002C6C 01E0+00 1/0 0/0 0/0 .text ECut_gameGoal__13daNpc_myna2_cFi */ -void daNpc_myna2_c::ECut_gameGoal(int param_0) { - // NONMATCHING -} - -/* 80A86BEC-80A86E8C 002E4C 02A0+00 3/0 0/0 0/0 .text ECut_gameGoalSuccess__13daNpc_myna2_cFi */ -void daNpc_myna2_c::ECut_gameGoalSuccess(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A885EC-80A885F0 0001B8 0004+00 0/1 0/0 0/0 .rodata @5799 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5799 = 5.0f; -COMPILER_STRIP_GATE(0x80A885EC, &lit_5799); -#pragma pop - -/* 80A885F0-80A885F4 0001BC 0004+00 0/1 0/0 0/0 .rodata @5800 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5800 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80A885F0, &lit_5800); -#pragma pop - -/* 80A885F4-80A885F8 0001C0 0004+00 0/1 0/0 0/0 .rodata @5801 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5801 = 1.5f; -COMPILER_STRIP_GATE(0x80A885F4, &lit_5801); -#pragma pop - -/* 80A885F8-80A885FC 0001C4 0004+00 0/1 0/0 0/0 .rodata @5802 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5802 = -25.0f; -COMPILER_STRIP_GATE(0x80A885F8, &lit_5802); -#pragma pop - -/* 80A885FC-80A88600 0001C8 0004+00 0/1 0/0 0/0 .rodata @5803 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5803 = 0.5f; -COMPILER_STRIP_GATE(0x80A885FC, &lit_5803); -#pragma pop - -/* 80A88600-80A88604 0001CC 0004+00 0/1 0/0 0/0 .rodata @5804 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5804 = 120.0f; -COMPILER_STRIP_GATE(0x80A88600, &lit_5804); -#pragma pop - -/* 80A88604-80A88608 0001D0 0004+00 0/1 0/0 0/0 .rodata @5805 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5805 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x80A88604, &lit_5805); -#pragma pop - -/* 80A88608-80A8860C 0001D4 0004+00 0/1 0/0 0/0 .rodata @5806 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5806 = -1.0f / 5.0f; -COMPILER_STRIP_GATE(0x80A88608, &lit_5806); -#pragma pop - -/* 80A8860C-80A88610 0001D8 0004+00 0/1 0/0 0/0 .rodata @5807 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5807 = 2.0f / 5.0f; -COMPILER_STRIP_GATE(0x80A8860C, &lit_5807); -#pragma pop - -/* 80A88610-80A88614 0001DC 0004+00 0/1 0/0 0/0 .rodata @5808 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5808 = -1.5f; -COMPILER_STRIP_GATE(0x80A88610, &lit_5808); -#pragma pop - -/* 80A88614-80A88618 0001E0 0004+00 0/1 0/0 0/0 .rodata @5809 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5809 = 3.0f; -COMPILER_STRIP_GATE(0x80A88614, &lit_5809); -#pragma pop - -/* 80A88618-80A8861C 0001E4 0004+00 0/1 0/0 0/0 .rodata @5810 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5810 = 40.0f; -COMPILER_STRIP_GATE(0x80A88618, &lit_5810); -#pragma pop - -/* 80A8861C-80A88620 0001E8 0004+00 0/1 0/0 0/0 .rodata @5811 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5811 = 20.0f; -COMPILER_STRIP_GATE(0x80A8861C, &lit_5811); -#pragma pop - -/* 80A88620-80A88624 0001EC 0004+00 0/1 0/0 0/0 .rodata @5812 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5812 = 70.0f; -COMPILER_STRIP_GATE(0x80A88620, &lit_5812); -#pragma pop - -/* 80A88624-80A88628 0001F0 0004+00 0/1 0/0 0/0 .rodata @5813 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5813 = -7.0f / 10.0f; -COMPILER_STRIP_GATE(0x80A88624, &lit_5813); -#pragma pop - -/* 80A88628-80A8862C 0001F4 0004+00 0/1 0/0 0/0 .rodata @5814 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5814 = 7.0f / 5.0f; -COMPILER_STRIP_GATE(0x80A88628, &lit_5814); -#pragma pop - -/* 80A8862C-80A88634 0001F8 0004+04 0/1 0/0 0/0 .rodata @5815 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5815[1 + 1 /* padding */] = { - 2.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80A8862C, &lit_5815); -#pragma pop - -/* 80A88634-80A8863C 000200 0008+00 0/1 0/0 0/0 .rodata @5816 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5816[8] = { - 0x3F, 0xB9, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9A, -}; -COMPILER_STRIP_GATE(0x80A88634, &lit_5816); -#pragma pop - -/* 80A8863C-80A88640 000208 0004+00 0/1 0/0 0/0 .rodata @5817 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5817 = 6.0f; -COMPILER_STRIP_GATE(0x80A8863C, &lit_5817); -#pragma pop - -/* 80A88640-80A88644 00020C 0004+00 0/1 0/0 0/0 .rodata @5818 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5818 = 4096.0f; -COMPILER_STRIP_GATE(0x80A88640, &lit_5818); -#pragma pop - -/* 80A88644-80A8864C 000210 0004+04 0/1 0/0 0/0 .rodata @5819 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5819[1 + 1 /* padding */] = { - 6144.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80A88644, &lit_5819); -#pragma pop - -/* 80A86E8C-80A879A0 0030EC 0B14+00 6/6 0/0 0/0 .text calcHovering__13daNpc_myna2_cFii */ -void daNpc_myna2_c::calcHovering(int param_0, int param_1) { - // NONMATCHING -} - -/* 80A879A0-80A879C0 003C00 0020+00 1/0 0/0 0/0 .text daNpc_myna2_Create__FPv */ -static void daNpc_myna2_Create(void* param_0) { - // NONMATCHING -} - -/* 80A879C0-80A879E0 003C20 0020+00 1/0 0/0 0/0 .text daNpc_myna2_Delete__FPv */ -static void daNpc_myna2_Delete(void* param_0) { - // NONMATCHING -} - -/* 80A879E0-80A87A00 003C40 0020+00 1/0 0/0 0/0 .text daNpc_myna2_Execute__FPv */ -static void daNpc_myna2_Execute(void* param_0) { - // NONMATCHING -} - -/* 80A87A00-80A87A20 003C60 0020+00 1/0 0/0 0/0 .text daNpc_myna2_Draw__FPv */ -static void daNpc_myna2_Draw(void* param_0) { - // NONMATCHING -} - -/* 80A87A20-80A87A28 003C80 0008+00 1/0 0/0 0/0 .text daNpc_myna2_IsDelete__FPv */ -static bool daNpc_myna2_IsDelete(void* param_0) { - return true; -} - -/* 80A87A28-80A87A70 003C88 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 -} - -/* 80A87A70-80A87AAC 003CD0 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 -} - -/* 80A87AAC-80A87B7C 003D0C 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 -} - -/* 80A87B7C-80A87BB8 003DDC 003C+00 5/5 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 80A87BB8-80A87BBC 003E18 0004+00 2/2 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 80A87BBC-80A87BF8 003E1C 003C+00 6/6 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80A87BF8-80A87BFC 003E58 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 80A87BFC-80A87E48 003E5C 024C+00 1/1 0/0 0/0 .text __dt__8daNpcF_cFv */ -// daNpcF_c::~daNpcF_c() { -extern "C" void __dt__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80A87E48-80A88038 0040A8 01F0+00 1/1 0/0 0/0 .text __ct__8daNpcF_cFv */ -// daNpcF_c::daNpcF_c() { -extern "C" void __ct__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80A88038-80A880A8 004298 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80A880A8-80A88104 004308 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80A88104-80A88174 004364 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80A88174-80A881BC 0043D4 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 80A881BC-80A881C4 00441C 0008+00 1/0 0/0 0/0 .text ctrlBtk__8daNpcF_cFv */ -// bool daNpcF_c::ctrlBtk() { -extern "C" bool ctrlBtk__8daNpcF_cFv() { - return false; -} - -/* 80A881C4-80A881C8 004424 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__8daNpcF_cFv */ -// void daNpcF_c::adjustShapeAngle() { -extern "C" void adjustShapeAngle__8daNpcF_cFv() { - /* empty function */ -} - -/* 80A881C8-80A881CC 004428 0004+00 1/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */ -// void daNpcF_c::setCollisions() { -extern "C" void setCollisions__8daNpcF_cFv() { - /* empty function */ -} - -/* 80A881CC-80A881D4 00442C 0008+00 1/0 0/0 0/0 .text setExpressionAnm__8daNpcF_cFib */ -// bool daNpcF_c::setExpressionAnm(int param_0, bool param_1) { -extern "C" bool setExpressionAnm__8daNpcF_cFib() { - return true; -} - -/* 80A881D4-80A881D8 004434 0004+00 1/0 0/0 0/0 .text setExpression__8daNpcF_cFif */ -// void daNpcF_c::setExpression(int param_0, f32 param_1) { -extern "C" void setExpression__8daNpcF_cFif() { - /* empty function */ -} - -/* 80A881D8-80A88220 004438 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 80A88220-80A8823C 004480 001C+00 1/1 0/0 0/0 .text cLib_calcTimer__FPi */ -extern "C" void func_80A88220(void* _this, int* param_0) { - // NONMATCHING -} - -/* 80A8823C-80A88278 00449C 003C+00 1/1 0/0 0/0 .text cLib_getRndValue__Fff */ -extern "C" void func_80A8823C(void* _this, f32 param_0, f32 param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A8864C-80A88654 000218 0008+00 1/1 0/0 0/0 .rodata @5872 */ -SECTION_RODATA static u8 const lit_5872[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A8864C, &lit_5872); - -/* 80A88278-80A882F4 0044D8 007C+00 1/1 0/0 0/0 .text cLib_getRndValue__Fii */ -extern "C" void func_80A88278(void* _this, int param_0, int param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A88AE0-80A88AEC 00042C 000C+00 2/2 0/0 0/0 .data __vt__19daNpc_myna2_Param_c */ -SECTION_DATA extern void* __vt__19daNpc_myna2_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__19daNpc_myna2_Param_cFv, -}; - -/* 80A882F4-80A883C8 004554 00D4+00 0/0 1/0 0/0 .text __sinit_d_a_npc_myna2_cpp */ -void __sinit_d_a_npc_myna2_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80A882F4, __sinit_d_a_npc_myna2_cpp); -#pragma pop - -/* 80A883C8-80A88410 004628 0048+00 2/1 0/0 0/0 .text __dt__19daNpc_myna2_Param_cFv */ -daNpc_myna2_Param_c::~daNpc_myna2_Param_c() { - // NONMATCHING -} - -/* 80A88410-80A88418 004670 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80A88410() { - // NONMATCHING -} - -/* 80A88418-80A88420 004678 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80A88418() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A88B64-80A88B68 000074 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_80A88B64[4]; -#pragma pop - -/* 80A88B68-80A88B6C 000078 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_80A88B68[4]; -#pragma pop - -/* 80A88B6C-80A88B70 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A88B6C[4]; -#pragma pop - -/* 80A88B70-80A88B74 000080 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A88B70[4]; -#pragma pop - -/* 80A88B74-80A88B78 000084 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A88B74[4]; -#pragma pop - -/* 80A88B78-80A88B7C 000088 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A88B78[4]; -#pragma pop - -/* 80A88B7C-80A88B80 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_80A88B7C[4]; -#pragma pop - -/* 80A88B80-80A88B84 000090 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80A88B80[4]; -#pragma pop - -/* 80A88B84-80A88B88 000094 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80A88B84[4]; -#pragma pop - -/* 80A88B88-80A88B8C 000098 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_80A88B88[4]; -#pragma pop - -/* 80A88B8C-80A88B90 00009C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A88B8C[4]; -#pragma pop - -/* 80A88B90-80A88B94 0000A0 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A88B90[4]; -#pragma pop - -/* 80A88B94-80A88B98 0000A4 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A88B94[4]; -#pragma pop - -/* 80A88B98-80A88B9C 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A88B98[4]; -#pragma pop - -/* 80A88B9C-80A88BA0 0000AC 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80A88B9C[4]; -#pragma pop - -/* 80A88BA0-80A88BA4 0000B0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_80A88BA0[4]; -#pragma pop - -/* 80A88BA4-80A88BA8 0000B4 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_80A88BA4[4]; -#pragma pop - -/* 80A88BA8-80A88BAC 0000B8 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80A88BA8[4]; -#pragma pop - -/* 80A88BAC-80A88BB0 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_80A88BAC[4]; -#pragma pop - -/* 80A88BB0-80A88BB4 0000C0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A88BB0[4]; -#pragma pop - -/* 80A88BB4-80A88BB8 0000C4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_80A88BB4[4]; -#pragma pop - -/* 80A88BB8-80A88BBC 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A88BB8[4]; -#pragma pop - -/* 80A88BBC-80A88BC0 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A88BBC[4]; -#pragma pop - -/* 80A88BC0-80A88BC4 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A88BC0[4]; -#pragma pop - -/* 80A88BC4-80A88BC8 0000D4 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A88BC4[4]; -#pragma pop - -/* 80A88654-80A88654 000220 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +AUDIO_INSTANCES