diff --git a/config/GZ2E01/rels/d_a_npc_soldierA/symbols.txt b/config/GZ2E01/rels/d_a_npc_soldierA/symbols.txt index dac7bc357a..9f820c954b 100644 --- a/config/GZ2E01/rels/d_a_npc_soldierA/symbols.txt +++ b/config/GZ2E01/rels/d_a_npc_soldierA/symbols.txt @@ -163,6 +163,7 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa @4017 = .bss:0x00000048; // type:object size:0xC scope:local l_HIO = .bss:0x00000054; // type:object size:0x4 scope:global data:4byte @4641 = .bss:0x00000058; // type:object size:0xC scope:local +init$2332 = .bss:0x00000064; // type:object size:0x1 scope:local align:1 eyeOffset$4640 = .bss:0x00000068; // type:object size:0xC scope:local sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x00000074; // type:object size:0x4 scope:global sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x00000078; // type:object size:0x4 scope:global diff --git a/configure.py b/configure.py index 0dfaf3f9a1..b8f213b53c 100755 --- a/configure.py +++ b/configure.py @@ -1921,7 +1921,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_shop0"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_shop_maro"), ActorRel(NonMatching, "d_a_npc_sola"), - ActorRel(NonMatching, "d_a_npc_soldierA"), + ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_soldierA", extra_cflags=[DANPCF_C_HACK]), ActorRel(NonMatching, "d_a_npc_soldierB"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_sq"), ActorRel(NonMatching, "d_a_npc_the", extra_cflags=[DANPCF_C_HACK]), diff --git a/include/d/actor/d_a_npc_soldierA.h b/include/d/actor/d_a_npc_soldierA.h index 984e9c7b46..7771fdc12f 100644 --- a/include/d/actor/d_a_npc_soldierA.h +++ b/include/d/actor/d_a_npc_soldierA.h @@ -10,59 +10,97 @@ * * @details * - */ -class daNpc_SoldierA_c : public fopAc_ac_c { +*/ + +struct daNpc_SoldierA_HIOParam { + /* 0x00 */ daNpcF_HIOParam common; +}; + +class daNpc_SoldierA_Param_c { public: + /* 80AF267C */ virtual ~daNpc_SoldierA_Param_c() {} + + static daNpc_SoldierA_HIOParam const m; +}; + +#if DEBUG +class daNpc_SoldierA_HIO_c : public mDoHIO_entry_c { +public: + daNpc_SoldierA_HIO_c(); + void listenPropertyEvent(const JORPropertyEvent*); + void genMessage(JORMContext*); + + /* 0x8 */ daNpc_SoldierA_HIOParam m; +}; +#define NPC_SOLDIERA_HIO_CLASS daNpc_SoldierA_HIO_c +#else +#define NPC_SOLDIERA_HIO_CLASS daNpc_SoldierA_Param_c +#endif + +class daNpc_SoldierA_c : public daNpcF_c { +public: + typedef int (daNpc_SoldierA_c::*actionFunc)(void*); + typedef int (daNpc_SoldierA_c::*cutFunc)(int); + /* 80AEF58C */ daNpc_SoldierA_c(); /* 80AEF7A0 */ ~daNpc_SoldierA_c(); - /* 80AEF9A0 */ void create(); - /* 80AEFC80 */ void CreateHeap(); - /* 80AEFE4C */ void Delete(); - /* 80AEFE80 */ void Execute(); - /* 80AEFEA0 */ void Draw(); - /* 80AEFF14 */ void ctrlJoint(J3DJoint*, J3DModel*); - /* 80AF0110 */ void createHeapCallBack(fopAc_ac_c*); - /* 80AF0130 */ void ctrlJointCallBack(J3DJoint*, int); + /* 80AEF9A0 */ cPhs__Step create(); + /* 80AEFC80 */ int CreateHeap(); + /* 80AEFE4C */ int Delete(); + /* 80AEFE80 */ int Execute(); + /* 80AEFEA0 */ int Draw(); + /* 80AEFF14 */ int ctrlJoint(J3DJoint*, J3DModel*); + /* 80AF0110 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80AF0130 */ static int ctrlJointCallBack(J3DJoint*, int); /* 80AF017C */ void setParam(); - /* 80AF02B0 */ void main(); - /* 80AF0428 */ bool ctrlBtk(); + /* 80AF02B0 */ BOOL main(); + /* 80AF0428 */ BOOL ctrlBtk(); /* 80AF0430 */ void setAttnPos(); - /* 80AF0928 */ bool setMotionAnm(int, f32); + /* 80AF0928 */ void setMotionAnm(int, f32); /* 80AF0A38 */ void setMotion(int, f32, int); - /* 80AF0A7C */ bool drawDbgInfo(); + /* 80AF0A7C */ int drawDbgInfo(); /* 80AF0A84 */ void drawOtherMdls(); - /* 80AF0B30 */ void getTypeFromParam(); - /* 80AF0B7C */ void isDelete(); + /* 80AF0B30 */ u8 getTypeFromParam(); + /* 80AF0B7C */ BOOL isDelete(); /* 80AF0BB0 */ void reset(); /* 80AF0D34 */ void playMotion(); - /* 80AF0F50 */ void chkAction(int (daNpc_SoldierA_c::*)(void*)); - /* 80AF0F7C */ void setAction(int (daNpc_SoldierA_c::*)(void*)); - /* 80AF1024 */ void selectAction(); + /* 80AF0F50 */ BOOL chkAction(actionFunc); + /* 80AF0F7C */ BOOL setAction(actionFunc); + /* 80AF1024 */ BOOL selectAction(); /* 80AF10A4 */ void doNormalAction(int); - /* 80AF11B8 */ void doEvent(); + /* 80AF11B8 */ BOOL doEvent(); /* 80AF1488 */ void setLookMode(int); /* 80AF14AC */ void lookat(); - /* 80AF1734 */ void wait(void*); - /* 80AF18B0 */ void talk(void*); - /* 80AF1A48 */ void ECut_talkLake(int); - /* 80AF1B8C */ void ECut_listenLake(int); - /* 80AF1CA4 */ void test(void*); + /* 80AF1734 */ int wait(void*); + /* 80AF18B0 */ int talk(void*); + /* 80AF1A48 */ int ECut_talkLake(int); + /* 80AF1B8C */ int ECut_listenLake(int); + /* 80AF1CA4 */ int test(void*); static char* mEvtCutNameList[3]; - static u8 mEvtCutList[36]; + static cutFunc mEvtCutList[3]; private: - /* 0x568 */ u8 field_0x568[0xe20 - 0x568]; + /* 0xB48 */ Z2Creature mSound; + /* 0xBD8 */ J3DModel* mSpearModel; + /* 0xBDC */ daNpcF_Lookat_c mLookat; + /* 0xC78 */ daNpcF_ActorMngr_c mActorMngrs[3]; + /* 0xC90 */ NPC_SOLDIERA_HIO_CLASS* mHIO; + /* 0xC94 */ dCcD_Cyl mCyl; + /* 0xDD0 */ actionFunc mNextAction; + /* 0xDDC */ actionFunc mAction; + /* 0xDE8 */ request_of_phase_process_class mPhases[3]; + /* 0xE00 */ int field_0xe00; + /* 0xE04 */ int field_0xe04; + /* 0xE08 */ int field_0xe08; + /* 0xE0C */ int field_0xe0c; + /* 0xE10 */ int mMsgNo; + /* 0xE14 */ s16 mLookMode; + /* 0xE16 */ u16 mMode; + /* 0xE18 */ u8 mType; + /* 0xE1C */ int mAnm; }; STATIC_ASSERT(sizeof(daNpc_SoldierA_c) == 0xe20); -class daNpc_SoldierA_Param_c { -public: - /* 80AF267C */ ~daNpc_SoldierA_Param_c(); - - static u8 const m[108]; -}; - - #endif /* D_A_NPC_SOLDIERA_H */ diff --git a/src/d/actor/d_a_npc_soldierA.cpp b/src/d/actor/d_a_npc_soldierA.cpp index b4cd249623..a691778aaa 100644 --- a/src/d/actor/d_a_npc_soldierA.cpp +++ b/src/d/actor/d_a_npc_soldierA.cpp @@ -6,247 +6,111 @@ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_npc_soldierA.h" -#include "dol2asm.h" +#include "d/d_debug_viewer.h" +#include "Z2AudioLib/Z2Instances.h" -// -// Forward References: -// +enum chtSolA_RES_File_ID { + /* BCK */ + /* 0x05 */ BCK_SOLA_FEAR_TALK = 0x5, + /* 0x06 */ BCK_SOLA_FEAR_WAIT, + /* 0x07 */ BCK_SOLA_TALK_A, + /* 0x08 */ BCK_SOLA_TALK_B, + /* 0x09 */ BCK_SOLA_WAIT, + /* 0x0A */ BCK_SOLA_WAIT_A, -extern "C" void __ct__16daNpc_SoldierA_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__16daNpc_SoldierA_cFv(); -extern "C" void create__16daNpc_SoldierA_cFv(); -extern "C" void CreateHeap__16daNpc_SoldierA_cFv(); -extern "C" void Delete__16daNpc_SoldierA_cFv(); -extern "C" void Execute__16daNpc_SoldierA_cFv(); -extern "C" void Draw__16daNpc_SoldierA_cFv(); -extern "C" void ctrlJoint__16daNpc_SoldierA_cFP8J3DJointP8J3DModel(); -extern "C" void createHeapCallBack__16daNpc_SoldierA_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__16daNpc_SoldierA_cFP8J3DJointi(); -extern "C" void setParam__16daNpc_SoldierA_cFv(); -extern "C" void main__16daNpc_SoldierA_cFv(); -extern "C" bool ctrlBtk__16daNpc_SoldierA_cFv(); -extern "C" void setAttnPos__16daNpc_SoldierA_cFv(); -extern "C" void setMotionAnm__16daNpc_SoldierA_cFif(); -extern "C" void setMotion__16daNpc_SoldierA_cFifi(); -extern "C" bool drawDbgInfo__16daNpc_SoldierA_cFv(); -extern "C" void drawOtherMdls__16daNpc_SoldierA_cFv(); -extern "C" void getTypeFromParam__16daNpc_SoldierA_cFv(); -extern "C" void isDelete__16daNpc_SoldierA_cFv(); -extern "C" void reset__16daNpc_SoldierA_cFv(); -extern "C" void playMotion__16daNpc_SoldierA_cFv(); -extern "C" void chkAction__16daNpc_SoldierA_cFM16daNpc_SoldierA_cFPCvPvPv_i(); -extern "C" void setAction__16daNpc_SoldierA_cFM16daNpc_SoldierA_cFPCvPvPv_i(); -extern "C" void selectAction__16daNpc_SoldierA_cFv(); -extern "C" void doNormalAction__16daNpc_SoldierA_cFi(); -extern "C" void doEvent__16daNpc_SoldierA_cFv(); -extern "C" void setLookMode__16daNpc_SoldierA_cFi(); -extern "C" void lookat__16daNpc_SoldierA_cFv(); -extern "C" void wait__16daNpc_SoldierA_cFPv(); -extern "C" void talk__16daNpc_SoldierA_cFPv(); -extern "C" void ECut_talkLake__16daNpc_SoldierA_cFi(); -extern "C" void ECut_listenLake__16daNpc_SoldierA_cFi(); -extern "C" void test__16daNpc_SoldierA_cFPv(); -extern "C" static void daNpc_SoldierA_Create__FPv(); -extern "C" static void daNpc_SoldierA_Delete__FPv(); -extern "C" static void daNpc_SoldierA_Execute__FPv(); -extern "C" static void daNpc_SoldierA_Draw__FPv(); -extern "C" static bool daNpc_SoldierA_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" void adjustShapeAngle__8daNpcF_cFv(); -extern "C" void setCollisions__8daNpcF_cFv(); -extern "C" bool setExpressionAnm__8daNpcF_cFib(); -extern "C" bool setExpressionBtp__8daNpcF_cFi(); -extern "C" void setExpression__8daNpcF_cFif(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __sinit_d_a_npc_soldierA_cpp(); -extern "C" void __dt__22daNpc_SoldierA_Param_cFv(); -extern "C" static void func_80AF26C4(); -extern "C" static void func_80AF26CC(); -extern "C" u8 const m__22daNpc_SoldierA_Param_c[108]; -extern "C" extern char const* const d_a_npc_soldierA__stringBase0; -extern "C" void* mEvtCutNameList__16daNpc_SoldierA_c[3]; -extern "C" u8 mEvtCutList__16daNpc_SoldierA_c[36]; + /* BMDR */ + /* 0x0D */ BMDR_SOLA_SPEAR = 0xD, + /* 0x0E */ BMDR_SOLA_TW, -// -// External References: -// + /* EVT */ + /* 0x11 */ EVT_CHTSOLA_EVENT_LIST = 0x11, +}; -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_setEffectMtx__FPC10fopAc_ac_cPC12J3DModelData(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGs_wolfeye_effect_check__Fv(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void endCheck__16dEvent_manager_cFs(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getIsAddvance__16dEvent_manager_cFi(); -extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii(); -extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void addReal__21dDlst_shadowControl_cFUlP8J3DModel(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWallR__12dBgS_AcchCirFf(); -extern "C" void SetWall__12dBgS_AcchCirFff(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void __ct__11dBgS_GndChkFv(); -extern "C" void __dt__11dBgS_GndChkFv(); -extern "C" void __ct__11dBgS_LinChkFv(); -extern "C" void __dt__11dBgS_LinChkFv(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void initialize__18daNpcF_ActorMngr_cFv(); -extern "C" void entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void getActorP__18daNpcF_ActorMngr_cFv(); -extern "C" void initialize__15daNpcF_Lookat_cFv(); -extern "C" void setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz(); -extern "C" void calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii(); -extern "C" void execute__8daNpcF_cFv(); -extern "C" void draw__8daNpcF_cFiifP11_GXColorS10i(); -extern "C" void tgHitCallBack__8daNpcF_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf(); -extern "C" void srchAttnActor1__8daNpcF_cFPvPv(); -extern "C" void setMtx__8daNpcF_cFv(); -extern "C" void setMtx2__8daNpcF_cFv(); -extern "C" void initialize__8daNpcF_cFv(); -extern "C" void getTrnsfrmKeyAnmP__8daNpcF_cFPci(); -extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii(); -extern "C" void setEnvTevColor__8daNpcF_cFv(); -extern "C" void setRoomNo__8daNpcF_cFv(); -extern "C" void playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); -extern "C" void setLookatMtx__8daNpcF_cFiPif(); -extern "C" void hitChk2__8daNpcF_cFP8dCcD_Cylii(); -extern "C" void setDamage__8daNpcF_cFiii(); -extern "C" void ctrlMsgAnm__8daNpcF_cFRiRiP10fopAc_ac_ci(); -extern "C" void orderEvent__8daNpcF_cFiPcUsUsUcUs(); -extern "C" void changeEvent__8daNpcF_cFPcPcUsUs(); -extern "C" void initTalk__8daNpcF_cFiPP10fopAc_ac_c(); -extern "C" void talkProc__8daNpcF_cFPiiPP10fopAc_ac_c(); -extern "C" void step__8daNpcF_cFsiii(); -extern "C" void getDistTableIdx__8daNpcF_cFii(); -extern "C" void getAttnActorP__8daNpcF_cFiPFPvPv_Pvffffsii(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void dKy_darkworld_check__Fv(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void cM_atan2s__Fff(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_addCalc2__FPffff(); -extern "C" void cLib_chaseS__FPsss(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz(); -extern "C" void __ct__10Z2CreatureFv(); -extern "C" void __dt__10Z2CreatureFv(); -extern "C" void init__10Z2CreatureFP3VecP3VecUcUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_test(); -extern "C" void __ptmf_cmpr(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_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" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" void __register_global_object(); +enum RES_Name { + /* 0x0 */ CHTSOLA, +}; -// -// Declarations: -// +enum Joint { + /* 0x00 */ JNT_CENTER, + /* 0x01 */ JNT_BACKBONE1, + /* 0x02 */ JNT_BACKBONE2, + /* 0x03 */ JNT_NECK, + /* 0x04 */ JNT_HEAD, + /* 0x05 */ JNT_SHOULDERL, + /* 0x06 */ JNT_ARM1L, + /* 0x07 */ JNT_ARM2L, + /* 0x08 */ JNT_HANDL, + /* 0x09 */ JNT_FINGERL, + /* 0x0A */ JNT_THUMBL, + /* 0x0B */ JNT_SHOULDERR, + /* 0x0C */ JNT_ARM1R, + /* 0x0D */ JNT_ARM2R, + /* 0x0E */ JNT_HANDR, + /* 0x0F */ JNT_FINGERR, + /* 0x10 */ JNT_THUMBR, + /* 0x11 */ JNT_WAIST, + /* 0x12 */ JNT_LEG1L, + /* 0x13 */ JNT_LEG2L, + /* 0x14 */ JNT_FOOTL, + /* 0x15 */ JNT_LEG1R, + /* 0x16 */ JNT_LEG2R, + /* 0x17 */ JNT_FOOTR, + /* 0x18 */ JNT_SAYA +}; -/* ############################################################################################## */ -/* 80AF2864-80AF2864 00017C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80AF2864 = "TALK_LAKE"; -SECTION_DEAD static char const* const stringBase_80AF286E = "chtSolA"; -SECTION_DEAD static char const* const stringBase_80AF2876 = ""; -SECTION_DEAD static char const* const stringBase_80AF2877 = "LISTEN_LAKE"; -#pragma pop +enum Animation { + /* 0x0 */ ANM_NONE, + /* 0x1 */ ANM_WAIT_A, + /* 0x2 */ ANM_FEAR_WAIT, + /* 0x3 */ ANM_FEAR_TALK, + /* 0x4 */ ANM_WAIT, + /* 0x5 */ ANM_TALK_A, + /* 0x6 */ ANM_TALK_B, +}; + +enum Motion { + /* 0x0 */ MOT_WAIT, + /* 0x1 */ MOT_TALK_B, + /* 0x2 */ MOT_TALK_A, + /* 0x3 */ MOT_FEAR_WAIT, + /* 0x4 */ MOT_FEAR_TALK, + /* 0x5 */ MOT_WAIT_A, +}; + +enum Event { + /* 0x0 */ EVT_NONE, + /* 0x1 */ EVT_TALK_LAKE, +}; + +enum Event_Cut_Nums { + /* 0x3 */ NUM_EVT_CUTS_e = 0x3, +}; + +/* 80AF2B3C-80AF2B40 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ +static NPC_SOLDIERA_HIO_CLASS l_HIO; /* 80AF28A8-80AF28B8 000020 0010+00 1/1 0/0 0/0 .data l_bmdGetParamList */ -SECTION_DATA static u8 l_bmdGetParamList[16] = { - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam1 l_bmdGetParamList[2] = { + {BMDR_SOLA_TW, CHTSOLA}, + {BMDR_SOLA_SPEAR, CHTSOLA}, }; /* 80AF28B8-80AF28F0 000030 0038+00 1/1 0/0 0/0 .data l_bckGetParamList */ -SECTION_DATA static u8 l_bckGetParamList[56] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam1 l_bckGetParamList[7] = { + {-1, CHTSOLA}, + {BCK_SOLA_WAIT_A, CHTSOLA}, + {BCK_SOLA_FEAR_WAIT, CHTSOLA}, + {BCK_SOLA_FEAR_TALK, CHTSOLA}, + {BCK_SOLA_WAIT, CHTSOLA}, + {BCK_SOLA_TALK_A, CHTSOLA}, + {BCK_SOLA_TALK_B, CHTSOLA}, }; /* 80AF28F0-80AF2900 000068 0010+00 0/2 0/0 0/0 .data l_evtGetParamList */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_evtGetParamList[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam1 l_evtGetParamList[2] = { + {0, CHTSOLA}, + {1, CHTSOLA}, }; -#pragma pop /* 80AF2900-80AF2908 -00001 0008+00 0/2 0/0 0/0 .data l_evtNames */ static char* l_evtNames[2] = { @@ -255,115 +119,1086 @@ static char* l_evtNames[2] = { }; /* 80AF2908-80AF2914 000080 000C+00 1/0 0/0 0/0 .data l_loadRes_SOLDIERaa */ -SECTION_DATA static u8 l_loadRes_SOLDIERaa[12] = { - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +static int l_loadRes_SOLDIERaa[3] = { + CHTSOLA, -1, -1, }; /* 80AF2914-80AF2920 00008C 000C+00 1/0 0/0 0/0 .data l_loadRes_SOLDIERa0 */ -SECTION_DATA static u8 l_loadRes_SOLDIERa0[12] = { - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +static int l_loadRes_SOLDIERa0[3] = { + CHTSOLA, -1, -1, }; /* 80AF2920-80AF2930 -00001 0010+00 2/2 0/0 0/0 .data l_loadRes_list */ -SECTION_DATA static void* l_loadRes_list[4] = { - (void*)&l_loadRes_SOLDIERaa, - (void*)&l_loadRes_SOLDIERaa, - (void*)&l_loadRes_SOLDIERaa, - (void*)&l_loadRes_SOLDIERa0, +static int* l_loadRes_list[4] = { + l_loadRes_SOLDIERaa, + l_loadRes_SOLDIERaa, + l_loadRes_SOLDIERaa, + l_loadRes_SOLDIERa0, }; /* 80AF2930-80AF2934 -00001 0004+00 4/6 0/0 0/0 .data l_resNames */ -SECTION_DATA static void* l_resNames = (void*)(((char*)&d_a_npc_soldierA__stringBase0) + 0xA); +static char* l_resNames[1] = {"chtSolA"}; /* 80AF2934-80AF2938 -00001 0004+00 0/1 0/0 0/0 .data l_myName */ static char* l_myName = "chtSolA"; -/* 80AF2938-80AF2944 -00001 000C+00 0/1 0/0 0/0 .data mEvtCutNameList__16daNpc_SoldierA_c - */ +/* 80AF2938-80AF2944 -00001 000C+00 0/1 0/0 0/0 .data mEvtCutNameList__16daNpc_SoldierA_c */ char* daNpc_SoldierA_c::mEvtCutNameList[3] = { "", "TALK_LAKE", "LISTEN_LAKE", }; -/* 80AF2944-80AF2950 -00001 000C+00 0/1 0/0 0/0 .data @4018 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4018[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ECut_talkLake__16daNpc_SoldierA_cFi, -}; -#pragma pop - -/* 80AF2950-80AF295C -00001 000C+00 0/1 0/0 0/0 .data @4019 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4019[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)ECut_listenLake__16daNpc_SoldierA_cFi, -}; -#pragma pop - /* 80AF295C-80AF2980 0000D4 0024+00 0/2 0/0 0/0 .data mEvtCutList__16daNpc_SoldierA_c */ -#pragma push -#pragma force_active on -SECTION_DATA u8 daNpc_SoldierA_c::mEvtCutList[36] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 80AF2980-80AF298C -00001 000C+00 1/1 0/0 0/0 .data @4463 */ -SECTION_DATA static void* lit_4463[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)test__16daNpc_SoldierA_cFPv, +daNpc_SoldierA_c::cutFunc daNpc_SoldierA_c::mEvtCutList[3] = { + NULL, + &daNpc_SoldierA_c::ECut_talkLake, + &daNpc_SoldierA_c::ECut_listenLake, }; -/* 80AF298C-80AF2998 -00001 000C+00 1/1 0/0 0/0 .data @4961 */ -SECTION_DATA static void* lit_4961[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)test__16daNpc_SoldierA_cFPv, +/* 80AEF58C-80AEF710 0000EC 0184+00 1/1 0/0 0/0 .text __ct__16daNpc_SoldierA_cFv */ +daNpc_SoldierA_c::daNpc_SoldierA_c() {} + +/* 80AEF7A0-80AEF9A0 000300 0200+00 1/0 0/0 0/0 .text __dt__16daNpc_SoldierA_cFv */ +daNpc_SoldierA_c::~daNpc_SoldierA_c() { + for (int i = 0; l_loadRes_list[mType][i] >= 0; i++) { + dComIfG_resDelete(&mPhases[i], l_resNames[l_loadRes_list[mType][i]]); + } + + if (heap != NULL) { + mpMorf->stopZelAnime(); + } + + #if DEBUG + if (mHIO != NULL) { + mHIO->removeHIO(); + } + #endif +} + +/* 80AF26E8-80AF2754 000000 006C+00 12/12 0/0 0/0 .rodata m__22daNpc_SoldierA_Param_c */ +daNpc_SoldierA_HIOParam const daNpc_SoldierA_Param_c::m = { + 30.0f, + -4.0f, + 1.0f, + 600.0f, + 255.0f, + 240.0f, + 35.0f, + 45.0f, + 0.0f, + 0.0f, + 10.0f, + -10.0f, + 30.0f, + -30.0f, + 45.0f, + -45.0f, + 0.6f, + 12.0f, + 5, + 6, + 7, + 6, + 180.0f, + 500.0f, + 300.0f, + -300.0f, + 60, + 8, + 0, + 0, + 0, + false, + false, }; -/* 80AF2998-80AF29A4 -00001 000C+00 1/1 0/0 0/0 .data @4965 */ -SECTION_DATA static void* lit_4965[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__16daNpc_SoldierA_cFPv, -}; +/* 80AEF9A0-80AEFC80 000500 02E0+00 1/1 0/0 0/0 .text create__16daNpc_SoldierA_cFv */ +cPhs__Step daNpc_SoldierA_c::create() { + mTwilight = dKy_darkworld_check(); -/* 80AF29A4-80AF29B0 -00001 000C+00 0/1 0/0 0/0 .data @5005 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5005[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__16daNpc_SoldierA_cFPv, -}; -#pragma pop + fopAcM_ct(this, daNpc_SoldierA_c); -/* 80AF29B0-80AF29BC -00001 000C+00 0/1 0/0 0/0 .data @5016 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5016[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__16daNpc_SoldierA_cFPv, -}; -#pragma pop + mType = getTypeFromParam(); + + if (home.angle.x != 0xFFFF) { + mMsgNo = home.angle.x; + } else { + mMsgNo = -1; + } + + if (isDelete()) { + return cPhs_ERROR_e; + } + + int res_count = 0; + int i = 0; + for (; l_loadRes_list[mType][i] >= 0; i++) { + cPhs__Step phase = (cPhs__Step)dComIfG_resLoad(&mPhases[i], l_resNames[l_loadRes_list[mType][i]]); + if (phase == cPhs_ERROR_e || phase == cPhs_UNK3_e) { + return cPhs_ERROR_e; + } + + if (phase == cPhs_COMPLEATE_e) { + res_count++; + } + } + + if (res_count == i) { + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x2B20)) { + return cPhs_ERROR_e; + } + + J3DModelData* modelData = 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); + + #if DEBUG + mHIO = &l_HIO; + mHIO->entryHIO("多人数会話兵士A"); + #endif + + mAcchCir.SetWall(mHIO->m.common.width, mHIO->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(mHIO->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; +} + +/* 80AEFC80-80AEFE4C 0007E0 01CC+00 1/1 0/0 0/0 .text CreateHeap__16daNpc_SoldierA_cFv */ +int daNpc_SoldierA_c::CreateHeap() { + J3DModelData* mdlData_p = NULL; + J3DModel* model = NULL; + + if (l_bmdGetParamList[0].fileIdx >= 0) { + mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNames[l_bmdGetParamList[0].arcIdx], l_bmdGetParamList[0].fileIdx); + } + + JUT_ASSERT(413, NULL != mdlData_p); + + u32 uVar1 = 0x11020284; + mpMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, J3DMdlFlag_DifferedDLBuffer, uVar1); + if (mpMorf != NULL && mpMorf->getModel() == NULL) { + mpMorf->stopZelAnime(); + mpMorf = NULL; + } + + if (mpMorf == NULL) { + return 0; + } + + model = mpMorf->getModel(); + for (u16 i = 0; i < mdlData_p->getJointNum(); i++) { + mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + } + model->setUserArea((uintptr_t)this); + + setMotionAnm(ANM_WAIT, 0.0f); + + int arcIdx = 0; + arcIdx = l_bmdGetParamList[1].arcIdx; + mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNames[arcIdx], l_bmdGetParamList[1].fileIdx); + if (mdlData_p != NULL) { + mSpearModel = mDoExt_J3DModel__create(mdlData_p, J3DMdlFlag_DifferedDLBuffer, 0x11000084); + if (mSpearModel == NULL) { + return 0; + } + } else { + return 0; + } + + return 1; +} + +/* 80AEFE4C-80AEFE80 0009AC 0034+00 1/1 0/0 0/0 .text Delete__16daNpc_SoldierA_cFv */ +int daNpc_SoldierA_c::Delete() { + fpc_ProcID id = fopAcM_GetID(this); + this->~daNpc_SoldierA_c(); + return 1; +} + +/* 80AEFE80-80AEFEA0 0009E0 0020+00 2/2 0/0 0/0 .text Execute__16daNpc_SoldierA_cFv */ +int daNpc_SoldierA_c::Execute() { + return execute(); +} + +/* 80AEFEA0-80AEFF14 000A00 0074+00 1/1 0/0 0/0 .text Draw__16daNpc_SoldierA_cFv */ +int daNpc_SoldierA_c::Draw() { + return draw(chkAction(&daNpc_SoldierA_c::test), FALSE, mHIO->m.common.real_shadow_size, NULL, FALSE); +} + +/* 80AEFF14-80AF0110 000A74 01FC+00 1/1 0/0 0/0 .text ctrlJoint__16daNpc_SoldierA_cFP8J3DJointP8J3DModel */ +int daNpc_SoldierA_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { + int jntNo = i_joint->getJntNo(); + int i_jointList[3] = {JNT_BACKBONE1, JNT_NECK, JNT_HEAD}; + + if (jntNo == JNT_CENTER) { + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_BACKBONE1)); + mDoMtx_stack_c::multVecZero(&mLookatPos[0]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_NECK)); + mDoMtx_stack_c::multVecZero(&mLookatPos[1]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_HEAD)); + mDoMtx_stack_c::multVecZero(&mLookatPos[2]); + } + + mDoMtx_stack_c::copy(i_model->getAnmMtx(jntNo)); + + switch (jntNo) { + case JNT_BACKBONE1: + case JNT_NECK: + case JNT_HEAD: + setLookatMtx(jntNo, i_jointList, mHIO->m.common.neck_rotation_ratio); + break; + } + + if (jntNo == JNT_BACKBONE1) { + mDoMtx_stack_c::YrotM(-field_0x908[0].z); + mDoMtx_stack_c::ZrotM(field_0x908[0].x); + } else if (jntNo == JNT_HEAD) { + mDoMtx_stack_c::YrotM(-field_0x908[2].z); + mDoMtx_stack_c::ZrotM(field_0x908[2].x); + } + + i_model->setAnmMtx(jntNo, mDoMtx_stack_c::get()); + MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + + return 1; +} + +/* 80AF0110-80AF0130 000C70 0020+00 1/1 0/0 0/0 .text createHeapCallBack__16daNpc_SoldierA_cFP10fopAc_ac_c */ +int daNpc_SoldierA_c::createHeapCallBack(fopAc_ac_c* i_this) { + daNpc_SoldierA_c* actor = (daNpc_SoldierA_c*)i_this; + return actor->CreateHeap(); +} + +/* 80AF0130-80AF017C 000C90 004C+00 1/1 0/0 0/0 .text ctrlJointCallBack__16daNpc_SoldierA_cFP8J3DJointi */ +int daNpc_SoldierA_c::ctrlJointCallBack(J3DJoint* i_joint, int param_2) { + if (param_2 == 0) { + J3DModel* model = j3dSys.getModel(); + daNpc_SoldierA_c* actor = (daNpc_SoldierA_c*)model->getUserArea(); + if (actor != NULL) { + actor->ctrlJoint(i_joint, model); + } + } + + return 1; +} + +/* 80AF017C-80AF02B0 000CDC 0134+00 1/0 0/0 0/0 .text setParam__16daNpc_SoldierA_cFv */ +void daNpc_SoldierA_c::setParam() { + actionFunc action = mNextAction; + u32 flags = fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e; + + selectAction(); + + if (mNextAction != action) { + /* Bug??? - Loop never actually runs */ + for (int i = 3; i < 3; i++) { + mActorMngrs[i].initialize(); + } + } + + field_0xe00 = 0; + field_0xe04 = 0; + + s16 talk_distance, talk_angle, attention_distance, attention_angle; + attention_distance = 3; + attention_angle = 6; + talk_distance = 5; + talk_angle = 6; + + if (mType == 1 || mType == 2) { + flags = 0; + } + + attention_info.distances[fopAc_attn_LOCK_e] = getDistTableIdx(talk_distance, talk_angle); + attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e]; + attention_info.distances[fopAc_attn_SPEAK_e] = getDistTableIdx(attention_distance, attention_angle); + attention_info.flags = flags; + scale.set(mHIO->m.common.scale, mHIO->m.common.scale, mHIO->m.common.scale); + mAcchCir.SetWallR(mHIO->m.common.width); + mAcchCir.SetWallH(mHIO->m.common.knee_length); + + if (!dComIfGp_event_runCheck()) { + gravity = mHIO->m.common.gravity; + } +} + +/* 80AF02B0-80AF0428 000E10 0178+00 1/0 0/0 0/0 .text main__16daNpc_SoldierA_cFv */ +BOOL daNpc_SoldierA_c::main() { + if (!doEvent()) { + doNormalAction(1); + } + + if (checkHide()) { + attention_info.flags = 0; + } + + if (!mHIO->m.common.debug_mode_ON) { + if (!dComIfGp_event_runCheck() || (mOrderNewEvt && dComIfGp_getEvent().isOrderOK())) { + if (mOrderEvtNo != EVT_NONE) { + eventInfo.setArchiveName(l_resNames[l_evtGetParamList[mOrderEvtNo].arcIdx]); + } + + orderEvent(mOrderSpeakEvt, l_evtNames[l_evtGetParamList[mOrderEvtNo].fileIdx], 0xFFFF, 0x28, 0xFF, 1); + } + } + + if (field_0x9ee) { + mExpressionMorfOverride = 0.0f; + mMotionMorfOverride = 0.0f; + field_0x9ee = false; + } + + playMotion(); + + return TRUE; +} + +/* 80AF0428-80AF0430 000F88 0008+00 1/0 0/0 0/0 .text ctrlBtk__16daNpc_SoldierA_cFv */ +BOOL daNpc_SoldierA_c::ctrlBtk() { + return FALSE; +} + +/* 80AF0430-80AF0928 000F90 04F8+00 1/0 0/0 0/0 .text setAttnPos__16daNpc_SoldierA_cFv */ +void daNpc_SoldierA_c::setAttnPos() { + static cXyz eyeOffset(0.0f, 20.0f, 0.0f); + cXyz sp74, sp80, sp8c, sp98; + f32 attn_offset = mHIO->m.common.attention_offset; + + mDoMtx_stack_c::YrotS(field_0x990); + cLib_addCalc2(&field_0x984[0], 0.0f, 0.1f, 125.0f); + cLib_addCalc2(&field_0x984[2], 0.0f, 0.1f, 125.0f); + + for (int i = 0; i < 3; i++) { + sp8c.set(0.0f, 0.0f, field_0x984[i] * cM_ssin(field_0x992)); + mDoMtx_stack_c::multVec(&sp8c, &sp98); + field_0x908[i].x = -sp98.z; + field_0x908[i].z = -sp98.x; + } + + cLib_chaseS(&field_0x992, 0, 0x555); + + if (mLookMode == LOOK_RESET) { + for (int i = 0; i < 3; i++) { + mLookatAngle[i].setall(0); + } + } + + setMtx(); + lookat(); + + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_HEAD)); + mDoMtx_stack_c::multVecZero(&mHeadPos); + mDoMtx_stack_c::multVec(&eyeOffset, &eyePos); + mDoMtx_stack_c::multVec(&eyeOffset, &sp8c); + mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &sp8c); + mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &sp8c); + + cXyz* attn_pos = mLookat.getAttnPos(); + if (attn_pos != NULL) { + sp80 = *attn_pos - eyePos; + mEyeAngle.y = -(mLookatAngle[2].y + mCurAngle.y); + mEyeAngle.y += cM_atan2s(sp80.x, sp80.z); + mEyeAngle.x = -cM_atan2s(sp80.y, sp80.absXZ()); + mEyeAngle.x += mHeadAngle.x; + } else { + mEyeAngle.y = 0; + mEyeAngle.x = 0; + } + + f32 fVar2 = 0.0f; + f32 fVar3 = 0.0f; + f32 fVar4 = 0.0f; + sp80.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(&sp80, &sp74); + attention_info.position.set(mHeadPos.x, mHeadPos.y + attn_offset, mHeadPos.z); + + if (!mHide) { + if (!mIsDamaged) { + mCyl.SetTgType(0xD8FBFDFF); + mCyl.SetTgSPrm(0x1F); + mCyl.OnTgNoHitMark(); + } else { + mCyl.SetTgType(0); + mCyl.SetTgSPrm(0); + } + + mCyl.SetC(sp74); + mCyl.SetH(mHIO->m.common.height + fVar3); + mCyl.SetR(mHIO->m.common.width + fVar4); + dComIfG_Ccsp()->Set(&mCyl); + } + + mCyl.ClrTgHit(); +} + +/* 80AF0928-80AF0A38 001488 0110+00 1/0 0/0 0/0 .text setMotionAnm__16daNpc_SoldierA_cFif */ +void daNpc_SoldierA_c::setMotionAnm(int i_idx, f32 i_morf) { + J3DAnmTransformKey* anm = NULL; + int attr = J3DFrameCtrl::EMode_LOOP; + + mAnmFlags &= ~ANM_MOTION_FLAGS; + + if (l_bckGetParamList[i_idx].fileIdx >= 0) { + anm = getTrnsfrmKeyAnmP(l_resNames[l_bckGetParamList[i_idx].arcIdx], l_bckGetParamList[i_idx].fileIdx); + } + + mAnm = i_idx; + + switch (i_idx) { + case ANM_WAIT_A: + case ANM_FEAR_WAIT: + break; + + case ANM_FEAR_TALK: + case ANM_TALK_A: + case ANM_TALK_B: + attr = J3DFrameCtrl::EMode_NONE; + break; + + case ANM_WAIT: + break; + + default: + anm = NULL; + break; + } + + if (anm != NULL && setMcaMorfAnm(anm, 1.0f, i_morf, attr, 0, -1)) { + mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF; + mMotionLoops = 0; + } +} + +/* 80AF0A38-80AF0A7C 001598 0044+00 1/0 0/0 0/0 .text setMotion__16daNpc_SoldierA_cFifi */ +void daNpc_SoldierA_c::setMotion(int i_motion, f32 i_morf, int param_3) { + s16 motion = i_motion; + if ((param_3 != 0 || mMotion != motion) && i_motion >= 0 && i_motion < 6) { + mMotion = motion; + mMotionMorfOverride = i_morf; + mMotionPrevPhase = -1; + mMotionPhase = 0; + } +} + +/* 80AF0A7C-80AF0A84 0015DC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__16daNpc_SoldierA_cFv */ +int daNpc_SoldierA_c::drawDbgInfo() { + #if DEBUG + if (mHIO->m.common.debug_info_ON) { + cXyz i_end; + f32 i_radius1 = dComIfGp_getAttention()->getDistTable(attention_info.distances[fopAc_attn_SPEAK_e]).mDistMax; + f32 i_radius2 = dComIfGp_getAttention()->getDistTable(attention_info.distances[fopAc_attn_TALK_e]).mDistMax; + s16 angle_x = cLib_targetAngleX(¤t.pos, &eyePos); + s16 angle_y = cLib_targetAngleY(¤t.pos, &eyePos); + + dDbVw_drawCircleOpa(attention_info.position, i_radius1, (GXColor){0x00, 0xC8, 0x00, 0xFF}, 1, 12); + dDbVw_drawCircleOpa(attention_info.position, i_radius2, (GXColor){0xC8, 0x00, 0x00, 0xFF}, 1, 12); + + if (mHIO->m.common.fov != 180.0f) { + cXyz work(0.0f, 0.0f, mHIO->m.common.search_distance); + mDoMtx_stack_c::transS(attention_info.position); + mDoMtx_stack_c::YrotM(mHeadAngle.y); + mDoMtx_stack_c::YrotM(cM_deg2s(-mHIO->m.common.fov)); + mDoMtx_stack_c::multVec(&work, &i_end); + + dDbVw_drawLineOpa(attention_info.position, i_end, (GXColor){0x00, 0x00, 0xC8, 0xFF}, 1, 12); + + mDoMtx_stack_c::transS(attention_info.position); + mDoMtx_stack_c::YrotM(mHeadAngle.y); + mDoMtx_stack_c::YrotM(cM_deg2s(mHIO->m.common.fov)); + mDoMtx_stack_c::multVec(&work, &i_end); + + dDbVw_drawLineOpa(attention_info.position, i_end, (GXColor){0x00, 0x00, 0xC8, 0xFF}, 1, 12); + } + + dDbVw_drawCircleOpa(attention_info.position, mHIO->m.common.search_distance, (GXColor){0x00, 0x00, 0xC8, 0xFF}, 1, 12); + dDbVw_drawSphereXlu(eyePos, 18.0f, (GXColor){0x80, 0x80, 0x80, 0xA0}, 1); + dDbVw_drawSphereXlu(mLookPos, 18.0f, (GXColor){0x80, 0x80, 0x80, 0xA0}, 1); + + int idx = getDistTableIdx(field_0xe00, field_0xe04); + dist_entry& entry = dComIfGp_getAttention()->getDistTable(idx); + dDbVw_drawCircleOpa(attention_info.position, entry.mDistMax, (GXColor){0xC8, 0xC8, 0xC8, 0xFF}, 1, 12); + } + #endif + + return 0; +} + +/* 80AF0A84-80AF0B30 0015E4 00AC+00 1/0 0/0 0/0 .text drawOtherMdls__16daNpc_SoldierA_cFv */ +void daNpc_SoldierA_c::drawOtherMdls() { + g_env_light.setLightTevColorType_MAJI(mSpearModel, &tevStr); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_HANDR)); + mDoMtx_stack_c::scaleM(scale); + mSpearModel->setBaseTRMtx(mDoMtx_stack_c::get()); + J3DModelData* mdlData_p = mSpearModel->getModelData(); + fopAcM_setEffectMtx(this, mdlData_p); + mDoExt_modelUpdateDL(mSpearModel); + dComIfGd_addRealShadow(mShadowKey, mSpearModel); +} + +/* 80AF0B30-80AF0B7C 001690 004C+00 1/1 0/0 0/0 .text getTypeFromParam__16daNpc_SoldierA_cFv */ +u8 daNpc_SoldierA_c::getTypeFromParam() { + u8 param = fopAcM_GetParam(this) & 0xFF; + switch (param) { + case 0: + return 0; + + case 1: + return 1; + + case 2: + return 2; + + default: + return 3; + } +} + +/* 80AF0B7C-80AF0BB0 0016DC 0034+00 1/1 0/0 0/0 .text isDelete__16daNpc_SoldierA_cFv */ +BOOL daNpc_SoldierA_c::isDelete() { + if (mType == 0 || mType == 1 || mType == 2 || mType == 3) { + return FALSE; + } + + return TRUE; +} + +/* 80AF0BB0-80AF0D34 001710 0184+00 1/1 0/0 0/0 .text reset__16daNpc_SoldierA_cFv */ +void daNpc_SoldierA_c::reset() { + initialize(); + mLookat.initialize(); + for (int i = 0; i < 3; i++) { + mActorMngrs[i].initialize(); + } + + mNextAction = NULL; + mAction = NULL; + field_0xe00 = 0; + field_0xe04 = 0; + field_0xe08 = 0; + field_0xe0c = 0; + mLookMode = -1; + mMode = 0; + current.pos = home.pos; + old.pos = current.pos; + current.angle.set(0, home.angle.y, 0); + old.angle = current.angle; + shape_angle = current.angle; + mCurAngle = current.angle; + mOldAngle = mCurAngle; + speedF = 0.0f; + speed.setall(0.0f); + eventInfo.setIdx(mType + 1); + field_0x9ee = true; +} + +/* 80AF0D34-80AF0F50 001894 021C+00 1/1 0/0 0/0 .text playMotion__16daNpc_SoldierA_cFv */ +void daNpc_SoldierA_c::playMotion() { + daNpcF_anmPlayData dat0 = {ANM_WAIT, mHIO->m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat0[1] = {&dat0}; + daNpcF_anmPlayData dat1a = {ANM_TALK_B, mHIO->m.common.morf_frame, 1}; + daNpcF_anmPlayData dat1b = {ANM_WAIT, 0.0f, 0}; + daNpcF_anmPlayData* pDat1[2] = {&dat1a, &dat1b}; + daNpcF_anmPlayData dat2a = {ANM_TALK_A, mHIO->m.common.morf_frame, 1}; + daNpcF_anmPlayData dat2b = {ANM_WAIT, 0.0f, 0}; + daNpcF_anmPlayData* pDat2[2] = {&dat2a, &dat2b}; + daNpcF_anmPlayData dat3 = {ANM_FEAR_WAIT, mHIO->m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat3[1] = {&dat3}; + daNpcF_anmPlayData dat4a = {ANM_FEAR_TALK, mHIO->m.common.morf_frame, 1}; + daNpcF_anmPlayData dat4b = {ANM_FEAR_WAIT, 0.0f, 0}; + daNpcF_anmPlayData* pDat4[2] = {&dat4a, &dat4b}; + daNpcF_anmPlayData dat5 = {ANM_WAIT_A, mHIO->m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat5[1] = {&dat5}; + + daNpcF_anmPlayData** ppDat[6] = { + pDat0, + pDat1, + pDat2, + pDat3, + pDat4, + pDat5 + }; + + if (mMotion >= 0 && mMotion < 6) { + playMotionAnm(ppDat); + } +} + +/* 80AF0F50-80AF0F7C 001AB0 002C+00 2/2 0/0 0/0 .text chkAction__16daNpc_SoldierA_cFM16daNpc_SoldierA_cFPCvPvPv_i */ +BOOL daNpc_SoldierA_c::chkAction(actionFunc action) { + return mAction == action; +} + +/* 80AF0F7C-80AF1024 001ADC 00A8+00 2/2 0/0 0/0 .text setAction__16daNpc_SoldierA_cFM16daNpc_SoldierA_cFPCvPvPv_i */ +BOOL daNpc_SoldierA_c::setAction(actionFunc action) { + mMode = 3; + + if (mAction) { + (this->*mAction)(NULL); + } + + mMode = 0; + mAction = action; + + if (mAction) { + (this->*mAction)(NULL); + } + + return TRUE; +} + +/* 80AF1024-80AF10A4 001B84 0080+00 1/1 0/0 0/0 .text selectAction__16daNpc_SoldierA_cFv */ +BOOL daNpc_SoldierA_c::selectAction() { + mNextAction = NULL; + + if (mHIO->m.common.debug_mode_ON) { + mNextAction = &daNpc_SoldierA_c::test; + } else { + mNextAction = &daNpc_SoldierA_c::wait; + } + + return TRUE; +} + +/* 80AF10A4-80AF11B8 001C04 0114+00 1/1 0/0 0/0 .text doNormalAction__16daNpc_SoldierA_cFi */ +void daNpc_SoldierA_c::doNormalAction(int param_1) { + if (param_1 != 0 && hitChk2(&mCyl, TRUE, FALSE)) { + int damage_time = mCutType == daPy_py_c::CUT_TYPE_TURN_RIGHT ? 20 : mHIO->m.common.damage_time; + setDamage(damage_time, -1, 0); + setLookMode(LOOK_RESET); + } else if (mIsDamaged && mDamageTimer == 0) { + mMode = 0; + mIsDamaged = false; + } + + mOrderEvtNo = EVT_NONE; + if (mNextAction) { + if (mAction == mNextAction) { + (this->*mAction)(NULL); + } else { + setAction(mNextAction); + } + } +} + +/* 80AF11B8-80AF1488 001D18 02D0+00 1/1 0/0 0/0 .text doEvent__16daNpc_SoldierA_cFv */ +BOOL daNpc_SoldierA_c::doEvent() { + int unused = 0; + BOOL rv = FALSE; + + if (dComIfGp_event_runCheck() != FALSE) { + dEvent_manager_c& event_manager = dComIfGp_getEventManager(); + + if (eventInfo.checkCommandTalk() || eventInfo.checkCommandDemoAccrpt()) { + mOrderNewEvt = false; + } + + if (eventInfo.checkCommandTalk()) { + if (chkAction(&daNpc_SoldierA_c::talk)) { + (this->*mAction)(NULL); + } else if (dComIfGp_event_chkTalkXY() == FALSE || dComIfGp_evmng_ChkPresentEnd()) { + if (mType == 0) { + mOrderEvtNo = EVT_TALK_LAKE; + changeEvent(l_resNames[l_evtGetParamList[mOrderEvtNo].arcIdx], l_evtNames[l_evtGetParamList[mOrderEvtNo].fileIdx], 2, 0xFFFF); + } else { + setAction(&daNpc_SoldierA_c::talk); + } + } + + rv = TRUE; + } else { + int staffId = event_manager.getMyStaffId(l_myName, this, 0); + if (staffId != -1) { + mStaffID = staffId; + int evtCutNo = event_manager.getMyActIdx(staffId, mEvtCutNameList, 3, FALSE, FALSE); + JUT_ASSERT(1410, (0 <= evtCutNo) && (evtCutNo < NUM_EVT_CUTS_e)); + JUT_ASSERT(1411, NULL != mEvtCutList[evtCutNo]); + + if ((this->*mEvtCutList[evtCutNo])(staffId)) { + event_manager.cutEnd(staffId); + } + + rv = TRUE; + } + + if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && event_manager.endCheck(mEventIdx)) { + dComIfGp_event_reset(); + mOrderEvtNo = EVT_NONE; + mEventIdx = -1; + } + } + + int i_expression, i_motion; + int msgTimer = mMsgTimer; + if (ctrlMsgAnm(i_expression, i_motion, this, FALSE)) { + if (!field_0x9eb) { + setMotion(i_motion, -1.0f, 0); + } + } + #if DEBUG + else if (msgTimer != 0) { + rv = ((field_0x9eb & 0xFF) == false); + } + #endif + } else { + mMsgTimer = 0; + + if (mStaffID != -1) { + mAction = NULL; + mStaffID = -1; + } + } + + return rv; +} + +/* 80AF1488-80AF14AC 001FE8 0024+00 4/4 0/0 0/0 .text setLookMode__16daNpc_SoldierA_cFi */ +void daNpc_SoldierA_c::setLookMode(int i_lookMode) { + if (i_lookMode >= 0 && i_lookMode < 5 && i_lookMode != mLookMode) { + mLookMode = i_lookMode; + } +} + +/* 80AF14AC-80AF1734 00200C 0288+00 1/1 0/0 0/0 .text lookat__16daNpc_SoldierA_cFv */ +void daNpc_SoldierA_c::lookat() { + daPy_py_c* player = NULL; + J3DModel* model = mpMorf->getModel(); + BOOL i_snap = FALSE; + f32 body_angleX_min = mHIO->m.common.body_angleX_min; + f32 body_angleX_max = mHIO->m.common.body_angleX_max; + f32 body_angleY_min = mHIO->m.common.body_angleY_min; + f32 body_angleY_max = mHIO->m.common.body_angleY_max; + f32 head_angleX_min = mHIO->m.common.head_angleX_min; + f32 head_angleX_max = mHIO->m.common.head_angleX_max; + f32 head_angleY_min = mHIO->m.common.head_angleY_min; + f32 head_angleY_max = mHIO->m.common.head_angleY_max; + s16 angle_delta = mCurAngle.y - mOldAngle.y; + cXyz lookatPos[3] = {mLookatPos[0], mLookatPos[1], mLookatPos[2]}; + csXyz* lookatAngle[3] = {&mLookatAngle[0], &mLookatAngle[1], &mLookatAngle[2]}; + cXyz spe8; + + switch (mLookMode) { + case LOOK_NONE: + break; + + case LOOK_RESET: + i_snap = TRUE; + break; + + case LOOK_PLAYER: + case LOOK_PLAYER_TALK: + player = daPy_getPlayerActorClass(); + + if (mLookMode == LOOK_PLAYER_TALK) { + head_angleY_min = -80.0f; + head_angleY_max = 80.0f; + } + break; + + case LOOK_ACTOR: + player = (daPy_py_c*)mActorMngrs[1].getActorP(); + break; + } + + if (player != NULL) { + mLookPos = player->attention_info.position; + + if (mLookMode != LOOK_PLAYER && mLookMode != LOOK_PLAYER_TALK && mLookMode != LOOK_ACTOR) { + mLookPos.y -= 40.0f; + } + + mLookat.setAttnPos(&mLookPos); + } else { + mLookat.setAttnPos(NULL); + } + + mLookat.setParam(body_angleX_min, body_angleX_max, body_angleY_min, body_angleY_max, + 0.0f, 0.0f, 0.0f, 0.0f, + head_angleX_min, head_angleX_max, head_angleY_min, head_angleY_max, + mCurAngle.y, lookatPos); + mLookat.calc(this, model->getBaseTRMtx(), lookatAngle, i_snap, angle_delta, FALSE); +} + +/* 80AF1734-80AF18B0 002294 017C+00 1/0 0/0 0/0 .text wait__16daNpc_SoldierA_cFPv */ +int daNpc_SoldierA_c::wait(void* param_1) { + switch (mMode) { + case 0: + setMotion(MOT_WAIT, -1.0f, 0); + setLookMode(LOOK_NONE); + mTurnMode = 0; + field_0x9ea = true; + mMode = 2; + // fallthrough + case 2: + if (!mIsDamaged) { + if (mActorMngrs[0].getActorP() != NULL) { + setLookMode(LOOK_PLAYER); + } else { + setLookMode(LOOK_NONE); + + if (home.angle.y != mCurAngle.y && step(home.angle.y, -1, -1, 15)) { + mMode = 0; + } + } + + if (home.angle.y == mCurAngle.y) { + BOOL player_attn = mActorMngrs[0].getActorP() != NULL; + fopAc_ac_c* actor = getAttnActorP(player_attn, srchAttnActor1, mHIO->m.common.search_distance, mHIO->m.common.search_height, + mHIO->m.common.search_depth, mHIO->m.common.fov, shape_angle.y, 120, TRUE); + if (actor != NULL) { + mActorMngrs[1].entry(actor); + setLookMode(LOOK_ACTOR); + } + } else { + mAttnChangeTimer = 0; + } + } + break; + + case 3: + break; + } + + return 1; +} + +/* 80AF18B0-80AF1A48 002410 0198+00 2/0 0/0 0/0 .text talk__16daNpc_SoldierA_cFPv */ +int daNpc_SoldierA_c::talk(void* param_1) { + int rv = 0; + BOOL unkFlag = FALSE; + + switch (mMode) { + case 0: { + if (mIsDamaged) { + break; + } + + int msgNo = mMsgNo; + mOrderSpeakEvt = false; + initTalk(msgNo, NULL); + mTurnMode = 0; + mMode = 2; + // fallthrough + } + case 2: + if (field_0x9ea) { + unkFlag = TRUE; + } else { + setLookMode(LOOK_PLAYER_TALK); + mActorMngrs[0].entry(daPy_getPlayerActorClass()); + + if (mCurAngle.y == fopAcM_searchPlayerAngleY(this)) { + unkFlag = TRUE; + } else if (step(fopAcM_searchPlayerAngleY(this), -1, -1, 15)) { + setMotion(MOT_WAIT, -1.0f, 0); + mTurnMode = 0; + } + } + + if (unkFlag && talkProc(NULL, TRUE, NULL)) { + rv = 1; + } + + if (rv) { + mMode = 3; + + if (!field_0x9ec) { + dComIfGp_event_reset(); + } + + field_0x9ec = false; + } + break; + + case 3: + break; + } + + return rv; +} + +/* 80AF1A48-80AF1B8C 0025A8 0144+00 1/0 0/0 0/0 .text ECut_talkLake__16daNpc_SoldierA_cFi */ +int daNpc_SoldierA_c::ECut_talkLake(int i_staffId) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int unused = 0; + daPy_py_c* player = daPy_getPlayerActorClass(); + int rv = 0; + int* piVar1 = NULL; + int prm = -1; + int unused2 = 0; + + piVar1 = dComIfGp_evmng_getMyIntegerP(i_staffId, "prm"); + if (piVar1 != NULL) { + prm = *piVar1; + } + + if (eventManager.getIsAddvance(i_staffId)) { + switch (prm) { + case 0: + break; + + case 10: + initTalk(mMsgNo, NULL); + break; + + case 20: + initTalk(mMsgNo, NULL); + break; + } + } + + switch (prm) { + case 0: + rv = 1; + break; + + case 10: + if (talkProc(NULL, TRUE, NULL)) { + rv = 1; + } + break; + + case 20: + if (talkProc(NULL, TRUE, NULL)) { + rv = 1; + } + break; + + default: + rv = 1; + break; + } + + return rv; +} + +/* 80AF1B8C-80AF1CA4 0026EC 0118+00 1/0 0/0 0/0 .text ECut_listenLake__16daNpc_SoldierA_cFi */ +int daNpc_SoldierA_c::ECut_listenLake(int i_staffId) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int unused = 0; + daPy_py_c* player = daPy_getPlayerActorClass(); + int rv = 0; + int* piVar1 = NULL; + int prm = -1; + int unused2 = 0; + + piVar1 = dComIfGp_evmng_getMyIntegerP(i_staffId, "prm"); + if (piVar1 != NULL) { + prm = *piVar1; + } + + if (eventManager.getIsAddvance(i_staffId)) { + switch (prm) { + case 0: + break; + + case 10: + setMotion(MOT_TALK_A, -1.0f, 0); + break; + + case 20: + break; + } + } + + switch (prm) { + case 0: + rv = 1; + break; + + case 10: + if (mMotionPhase > 0) { + rv = 1; + } + break; + + case 20: + rv = 1; + break; + + default: + rv = 1; + break; + } + + return rv; +} + +/* 80AF1CA4-80AF1D58 002804 00B4+00 2/0 0/0 0/0 .text test__16daNpc_SoldierA_cFPv */ +int daNpc_SoldierA_c::test(void* param_1) { + switch (mMode) { + case 0: + speedF = 0.0f; + speed.setall(0.0f); + mMode = 2; + // fallthrough + case 2: + setMotion(mHIO->m.common.motion, mHIO->m.common.morf_frame, 0); + setLookMode(mHIO->m.common.look_mode); + mOrderEvtNo = EVT_NONE; + attention_info.flags = 0; + break; + + case 3: + break; + } + + return 1; +} + +/* 80AF1D58-80AF1D78 0028B8 0020+00 1/0 0/0 0/0 .text daNpc_SoldierA_Create__FPv */ +static int daNpc_SoldierA_Create(void* i_this) { + return static_cast(i_this)->create(); +} + +/* 80AF1D78-80AF1D98 0028D8 0020+00 1/0 0/0 0/0 .text daNpc_SoldierA_Delete__FPv */ +static int daNpc_SoldierA_Delete(void* i_this) { + return static_cast(i_this)->Delete(); +} + +/* 80AF1D98-80AF1DB8 0028F8 0020+00 1/0 0/0 0/0 .text daNpc_SoldierA_Execute__FPv */ +static int daNpc_SoldierA_Execute(void* i_this) { + return static_cast(i_this)->Execute(); +} + +/* 80AF1DB8-80AF1DD8 002918 0020+00 1/0 0/0 0/0 .text daNpc_SoldierA_Draw__FPv */ +static int daNpc_SoldierA_Draw(void* i_this) { + return static_cast(i_this)->Draw(); +} + +/* 80AF1DD8-80AF1DE0 002938 0008+00 1/0 0/0 0/0 .text daNpc_SoldierA_IsDelete__FPv */ +static int daNpc_SoldierA_IsDelete(void* i_this) { + return 1; +} + +AUDIO_INSTANCES; /* 80AF29BC-80AF29DC -00001 0020+00 1/0 0/0 0/0 .data daNpc_SoldierA_MethodTable */ static actor_method_class daNpc_SoldierA_MethodTable = { - (process_method_func)daNpc_SoldierA_Create__FPv, - (process_method_func)daNpc_SoldierA_Delete__FPv, - (process_method_func)daNpc_SoldierA_Execute__FPv, - (process_method_func)daNpc_SoldierA_IsDelete__FPv, - (process_method_func)daNpc_SoldierA_Draw__FPv, + (process_method_func)daNpc_SoldierA_Create, + (process_method_func)daNpc_SoldierA_Delete, + (process_method_func)daNpc_SoldierA_Execute, + (process_method_func)daNpc_SoldierA_IsDelete, + (process_method_func)daNpc_SoldierA_Draw, }; /* 80AF29DC-80AF2A0C -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_SOLDIERa */ @@ -383,965 +1218,3 @@ extern actor_process_profile_definition g_profile_NPC_SOLDIERa = { fopAc_NPC_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80AF2A0C-80AF2A54 000184 0048+00 2/2 0/0 0/0 .data __vt__16daNpc_SoldierA_c */ -SECTION_DATA extern void* __vt__16daNpc_SoldierA_c[18] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__16daNpc_SoldierA_cFv, - (void*)setParam__16daNpc_SoldierA_cFv, - (void*)main__16daNpc_SoldierA_cFv, - (void*)ctrlBtk__16daNpc_SoldierA_cFv, - (void*)adjustShapeAngle__8daNpcF_cFv, - (void*)setMtx__8daNpcF_cFv, - (void*)setMtx2__8daNpcF_cFv, - (void*)setAttnPos__16daNpc_SoldierA_cFv, - (void*)setCollisions__8daNpcF_cFv, - (void*)setExpressionAnm__8daNpcF_cFib, - (void*)setExpressionBtp__8daNpcF_cFi, - (void*)setExpression__8daNpcF_cFif, - (void*)setMotionAnm__16daNpc_SoldierA_cFif, - (void*)setMotion__16daNpc_SoldierA_cFifi, - (void*)drawDbgInfo__16daNpc_SoldierA_cFv, - (void*)drawOtherMdls__16daNpc_SoldierA_cFv, -}; - -/* 80AF2A54-80AF2A60 0001CC 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, -}; - -/* 80AF2A60-80AF2A84 0001D8 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_80AF26CC, - (void*)NULL, - (void*)NULL, - (void*)func_80AF26C4, -}; - -/* 80AF2A84-80AF2A90 0001FC 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, -}; - -/* 80AF2A90-80AF2A9C 000208 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, -}; - -/* 80AF2A9C-80AF2AA8 000214 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, -}; - -/* 80AF2AA8-80AF2AB4 000220 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, -}; - -/* 80AF2AB4-80AF2AC0 00022C 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, -}; - -/* 80AF2AC0-80AF2ACC 000238 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, -}; - -/* 80AF2ACC-80AF2AD8 000244 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, -}; - -/* 80AEF58C-80AEF710 0000EC 0184+00 1/1 0/0 0/0 .text __ct__16daNpc_SoldierA_cFv */ -daNpc_SoldierA_c::daNpc_SoldierA_c() { - // NONMATCHING -} - -/* 80AEF710-80AEF758 000270 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80AEF758-80AEF7A0 0002B8 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80AEF7A0-80AEF9A0 000300 0200+00 1/0 0/0 0/0 .text __dt__16daNpc_SoldierA_cFv */ -daNpc_SoldierA_c::~daNpc_SoldierA_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AF26E8-80AF2754 000000 006C+00 12/12 0/0 0/0 .rodata m__22daNpc_SoldierA_Param_c */ -SECTION_RODATA u8 const daNpc_SoldierA_Param_c::m[108] = { - 0x41, 0xF0, 0x00, 0x00, 0xC0, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, - 0x43, 0x7F, 0x00, 0x00, 0x43, 0x70, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, - 0x41, 0xF0, 0x00, 0x00, 0xC1, 0xF0, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0xC2, 0x34, 0x00, 0x00, - 0x3F, 0x19, 0x99, 0x9A, 0x41, 0x40, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 0x06, - 0x43, 0x34, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x00, 0x3C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF26E8, &daNpc_SoldierA_Param_c::m); - -/* 80AF2754-80AF2758 00006C 0004+00 0/1 0/0 0/0 .rodata @4394 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4394 = -300.0f; -COMPILER_STRIP_GATE(0x80AF2754, &lit_4394); -#pragma pop - -/* 80AF2758-80AF275C 000070 0004+00 0/1 0/0 0/0 .rodata @4395 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4395 = -50.0f; -COMPILER_STRIP_GATE(0x80AF2758, &lit_4395); -#pragma pop - -/* 80AF275C-80AF2760 000074 0004+00 0/1 0/0 0/0 .rodata @4396 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4396 = 300.0f; -COMPILER_STRIP_GATE(0x80AF275C, &lit_4396); -#pragma pop - -/* 80AF2760-80AF2764 000078 0004+00 0/1 0/0 0/0 .rodata @4397 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4397 = 450.0f; -COMPILER_STRIP_GATE(0x80AF2760, &lit_4397); -#pragma pop - -/* 80AEF9A0-80AEFC80 000500 02E0+00 1/1 0/0 0/0 .text create__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AF2764-80AF2768 00007C 0004+00 2/2 0/0 0/0 .rodata @4448 */ -SECTION_RODATA static f32 const lit_4448 = 1.0f; -COMPILER_STRIP_GATE(0x80AF2764, &lit_4448); - -/* 80AF2768-80AF276C 000080 0004+00 4/6 0/0 0/0 .rodata @4449 */ -SECTION_RODATA static u8 const lit_4449[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80AF2768, &lit_4449); - -/* 80AEFC80-80AEFE4C 0007E0 01CC+00 1/1 0/0 0/0 .text CreateHeap__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::CreateHeap() { - // NONMATCHING -} - -/* 80AEFE4C-80AEFE80 0009AC 0034+00 1/1 0/0 0/0 .text Delete__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::Delete() { - // NONMATCHING -} - -/* 80AEFE80-80AEFEA0 0009E0 0020+00 2/2 0/0 0/0 .text Execute__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::Execute() { - // NONMATCHING -} - -/* 80AEFEA0-80AEFF14 000A00 0074+00 1/1 0/0 0/0 .text Draw__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::Draw() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AF276C-80AF2778 000084 000C+00 1/1 0/0 0/0 .rodata @4472 */ -SECTION_RODATA static u8 const lit_4472[12] = { - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, -}; -COMPILER_STRIP_GATE(0x80AF276C, &lit_4472); - -/* 80AEFF14-80AF0110 000A74 01FC+00 1/1 0/0 0/0 .text - * ctrlJoint__16daNpc_SoldierA_cFP8J3DJointP8J3DModel */ -void daNpc_SoldierA_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) { - // NONMATCHING -} - -/* 80AF0110-80AF0130 000C70 0020+00 1/1 0/0 0/0 .text - * createHeapCallBack__16daNpc_SoldierA_cFP10fopAc_ac_c */ -void daNpc_SoldierA_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80AF0130-80AF017C 000C90 004C+00 1/1 0/0 0/0 .text - * ctrlJointCallBack__16daNpc_SoldierA_cFP8J3DJointi */ -void daNpc_SoldierA_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING -} - -/* 80AF017C-80AF02B0 000CDC 0134+00 1/0 0/0 0/0 .text setParam__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::setParam() { - // NONMATCHING -} - -/* 80AF02B0-80AF0428 000E10 0178+00 1/0 0/0 0/0 .text main__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::main() { - // NONMATCHING -} - -/* 80AF0428-80AF0430 000F88 0008+00 1/0 0/0 0/0 .text ctrlBtk__16daNpc_SoldierA_cFv */ -bool daNpc_SoldierA_c::ctrlBtk() { - return false; -} - -/* ############################################################################################## */ -/* 80AF2778-80AF277C 000090 0004+00 0/1 0/0 0/0 .rodata @4789 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4789 = 20.0f; -COMPILER_STRIP_GATE(0x80AF2778, &lit_4789); -#pragma pop - -/* 80AF277C-80AF2780 000094 0004+00 0/1 0/0 0/0 .rodata @4790 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4790 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80AF277C, &lit_4790); -#pragma pop - -/* 80AF2780-80AF2788 000098 0004+04 0/1 0/0 0/0 .rodata @4791 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4791[1 + 1 /* padding */] = { - 125.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80AF2780, &lit_4791); -#pragma pop - -/* 80AF2788-80AF2790 0000A0 0008+00 0/1 0/0 0/0 .rodata @4792 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4792[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF2788, &lit_4792); -#pragma pop - -/* 80AF2790-80AF2798 0000A8 0008+00 0/1 0/0 0/0 .rodata @4793 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4793[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF2790, &lit_4793); -#pragma pop - -/* 80AF2798-80AF27A0 0000B0 0008+00 0/1 0/0 0/0 .rodata @4794 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4794[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF2798, &lit_4794); -#pragma pop - -/* 80AF2B30-80AF2B3C 000048 000C+00 1/1 0/0 0/0 .bss @4017 */ -static u8 lit_4017[12]; - -/* 80AF2B3C-80AF2B40 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 80AF2B40-80AF2B50 000058 000C+04 0/1 0/0 0/0 .bss @4641 */ -#pragma push -#pragma force_active on -static u8 lit_4641[12 + 4 /* padding */]; -#pragma pop - -/* 80AF2B50-80AF2B5C 000068 000C+00 0/1 0/0 0/0 .bss eyeOffset$4640 */ -#pragma push -#pragma force_active on -static u8 eyeOffset[12]; -#pragma pop - -/* 80AF0430-80AF0928 000F90 04F8+00 1/0 0/0 0/0 .text setAttnPos__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::setAttnPos() { - // NONMATCHING -} - -/* 80AF0928-80AF0A38 001488 0110+00 1/0 0/0 0/0 .text setMotionAnm__16daNpc_SoldierA_cFif - */ -bool daNpc_SoldierA_c::setMotionAnm(int param_0, f32 param_1) { - // NONMATCHING -} - -/* 80AF0A38-80AF0A7C 001598 0044+00 1/0 0/0 0/0 .text setMotion__16daNpc_SoldierA_cFifi - */ -void daNpc_SoldierA_c::setMotion(int param_0, f32 param_1, int param_2) { - // NONMATCHING -} - -/* 80AF0A7C-80AF0A84 0015DC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__16daNpc_SoldierA_cFv - */ -bool daNpc_SoldierA_c::drawDbgInfo() { - return false; -} - -/* 80AF0A84-80AF0B30 0015E4 00AC+00 1/0 0/0 0/0 .text drawOtherMdls__16daNpc_SoldierA_cFv - */ -void daNpc_SoldierA_c::drawOtherMdls() { - // NONMATCHING -} - -/* 80AF0B30-80AF0B7C 001690 004C+00 1/1 0/0 0/0 .text getTypeFromParam__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::getTypeFromParam() { - // NONMATCHING -} - -/* 80AF0B7C-80AF0BB0 0016DC 0034+00 1/1 0/0 0/0 .text isDelete__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::isDelete() { - // NONMATCHING -} - -/* 80AF0BB0-80AF0D34 001710 0184+00 1/1 0/0 0/0 .text reset__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::reset() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AF27A0-80AF27AC 0000B8 000C+00 0/1 0/0 0/0 .rodata @4914 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4914[12] = { - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF27A0, &lit_4914); -#pragma pop - -/* 80AF27AC-80AF27B0 0000C4 0004+00 0/1 0/0 0/0 .rodata @4915 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4915[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80AF27AC, &lit_4915); -#pragma pop - -/* 80AF27B0-80AF27BC 0000C8 000C+00 0/1 0/0 0/0 .rodata @4916 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4916[12] = { - 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80AF27B0, &lit_4916); -#pragma pop - -/* 80AF27BC-80AF27C8 0000D4 000C+00 0/1 0/0 0/0 .rodata @4917 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4917[12] = { - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF27BC, &lit_4917); -#pragma pop - -/* 80AF27C8-80AF27D0 0000E0 0008+00 0/1 0/0 0/0 .rodata @4918 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4918[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF27C8, &lit_4918); -#pragma pop - -/* 80AF27D0-80AF27DC 0000E8 000C+00 0/1 0/0 0/0 .rodata @4919 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4919[12] = { - 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80AF27D0, &lit_4919); -#pragma pop - -/* 80AF27DC-80AF27E8 0000F4 000C+00 0/1 0/0 0/0 .rodata @4920 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4920[12] = { - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF27DC, &lit_4920); -#pragma pop - -/* 80AF27E8-80AF27F0 000100 0008+00 0/1 0/0 0/0 .rodata @4921 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4921[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF27E8, &lit_4921); -#pragma pop - -/* 80AF27F0-80AF27FC 000108 000C+00 0/1 0/0 0/0 .rodata @4922 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4922[12] = { - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF27F0, &lit_4922); -#pragma pop - -/* 80AF27FC-80AF2800 000114 0004+00 0/1 0/0 0/0 .rodata @4923 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4923[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80AF27FC, &lit_4923); -#pragma pop - -/* 80AF2800-80AF280C 000118 000C+00 0/1 0/0 0/0 .rodata @4924 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4924[12] = { - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80AF2800, &lit_4924); -#pragma pop - -/* 80AF280C-80AF2818 000124 000C+00 0/1 0/0 0/0 .rodata @4925 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4925[12] = { - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF280C, &lit_4925); -#pragma pop - -/* 80AF2818-80AF2820 000130 0008+00 0/1 0/0 0/0 .rodata @4926 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4926[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF2818, &lit_4926); -#pragma pop - -/* 80AF2820-80AF282C 000138 000C+00 0/1 0/0 0/0 .rodata @4927 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4927[12] = { - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF2820, &lit_4927); -#pragma pop - -/* 80AF282C-80AF2830 000144 0004+00 0/1 0/0 0/0 .rodata @4928 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4928[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80AF282C, &lit_4928); -#pragma pop - -/* 80AF0D34-80AF0F50 001894 021C+00 1/1 0/0 0/0 .text playMotion__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::playMotion() { - // NONMATCHING -} - -/* 80AF0F50-80AF0F7C 001AB0 002C+00 2/2 0/0 0/0 .text - * chkAction__16daNpc_SoldierA_cFM16daNpc_SoldierA_cFPCvPvPv_i */ -void daNpc_SoldierA_c::chkAction(int (daNpc_SoldierA_c::*param_0)(void*)) { - // NONMATCHING -} - -/* 80AF0F7C-80AF1024 001ADC 00A8+00 2/2 0/0 0/0 .text - * setAction__16daNpc_SoldierA_cFM16daNpc_SoldierA_cFPCvPvPv_i */ -void daNpc_SoldierA_c::setAction(int (daNpc_SoldierA_c::*param_0)(void*)) { - // NONMATCHING -} - -/* 80AF1024-80AF10A4 001B84 0080+00 1/1 0/0 0/0 .text selectAction__16daNpc_SoldierA_cFv - */ -void daNpc_SoldierA_c::selectAction() { - // NONMATCHING -} - -/* 80AF10A4-80AF11B8 001C04 0114+00 1/1 0/0 0/0 .text doNormalAction__16daNpc_SoldierA_cFi */ -void daNpc_SoldierA_c::doNormalAction(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AF2830-80AF2848 000148 0018+00 0/0 0/0 0/0 .rodata @4929 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4929[24] = { - 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(0x80AF2830, &lit_4929); -#pragma pop - -/* 80AF2848-80AF284C 000160 0004+00 4/4 0/0 0/0 .rodata @5059 */ -SECTION_RODATA static f32 const lit_5059 = -1.0f; -COMPILER_STRIP_GATE(0x80AF2848, &lit_5059); - -/* 80AF11B8-80AF1488 001D18 02D0+00 1/1 0/0 0/0 .text doEvent__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::doEvent() { - // NONMATCHING -} - -/* 80AF1488-80AF14AC 001FE8 0024+00 4/4 0/0 0/0 .text setLookMode__16daNpc_SoldierA_cFi - */ -void daNpc_SoldierA_c::setLookMode(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AF284C-80AF2858 000164 000C+00 0/1 0/0 0/0 .rodata @5071 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5071[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80AF284C, &lit_5071); -#pragma pop - -/* 80AF2858-80AF285C 000170 0004+00 0/1 0/0 0/0 .rodata @5124 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5124 = -80.0f; -COMPILER_STRIP_GATE(0x80AF2858, &lit_5124); -#pragma pop - -/* 80AF285C-80AF2860 000174 0004+00 0/1 0/0 0/0 .rodata @5125 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5125 = 80.0f; -COMPILER_STRIP_GATE(0x80AF285C, &lit_5125); -#pragma pop - -/* 80AF2860-80AF2864 000178 0004+00 0/1 0/0 0/0 .rodata @5126 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5126 = 40.0f; -COMPILER_STRIP_GATE(0x80AF2860, &lit_5126); -#pragma pop - -/* 80AF14AC-80AF1734 00200C 0288+00 1/1 0/0 0/0 .text lookat__16daNpc_SoldierA_cFv */ -void daNpc_SoldierA_c::lookat() { - // NONMATCHING -} - -/* 80AF1734-80AF18B0 002294 017C+00 1/0 0/0 0/0 .text wait__16daNpc_SoldierA_cFPv */ -void daNpc_SoldierA_c::wait(void* param_0) { - // NONMATCHING -} - -/* 80AF18B0-80AF1A48 002410 0198+00 2/0 0/0 0/0 .text talk__16daNpc_SoldierA_cFPv */ -void daNpc_SoldierA_c::talk(void* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AF2864-80AF2864 00017C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80AF2883 = "prm"; -#pragma pop - -/* 80AF1A48-80AF1B8C 0025A8 0144+00 1/0 0/0 0/0 .text ECut_talkLake__16daNpc_SoldierA_cFi - */ -void daNpc_SoldierA_c::ECut_talkLake(int param_0) { - // NONMATCHING -} - -/* 80AF1B8C-80AF1CA4 0026EC 0118+00 1/0 0/0 0/0 .text ECut_listenLake__16daNpc_SoldierA_cFi */ -void daNpc_SoldierA_c::ECut_listenLake(int param_0) { - // NONMATCHING -} - -/* 80AF1CA4-80AF1D58 002804 00B4+00 2/0 0/0 0/0 .text test__16daNpc_SoldierA_cFPv */ -void daNpc_SoldierA_c::test(void* param_0) { - // NONMATCHING -} - -/* 80AF1D58-80AF1D78 0028B8 0020+00 1/0 0/0 0/0 .text daNpc_SoldierA_Create__FPv */ -static void daNpc_SoldierA_Create(void* param_0) { - // NONMATCHING -} - -/* 80AF1D78-80AF1D98 0028D8 0020+00 1/0 0/0 0/0 .text daNpc_SoldierA_Delete__FPv */ -static void daNpc_SoldierA_Delete(void* param_0) { - // NONMATCHING -} - -/* 80AF1D98-80AF1DB8 0028F8 0020+00 1/0 0/0 0/0 .text daNpc_SoldierA_Execute__FPv */ -static void daNpc_SoldierA_Execute(void* param_0) { - // NONMATCHING -} - -/* 80AF1DB8-80AF1DD8 002918 0020+00 1/0 0/0 0/0 .text daNpc_SoldierA_Draw__FPv */ -static void daNpc_SoldierA_Draw(void* param_0) { - // NONMATCHING -} - -/* 80AF1DD8-80AF1DE0 002938 0008+00 1/0 0/0 0/0 .text daNpc_SoldierA_IsDelete__FPv */ -static bool daNpc_SoldierA_IsDelete(void* param_0) { - return true; -} - -/* 80AF1DE0-80AF1E28 002940 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 -} - -/* 80AF1E28-80AF1E64 002988 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 -} - -/* 80AF1E64-80AF1F34 0029C4 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 -} - -/* 80AF1F34-80AF1F70 002A94 003C+00 5/5 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 80AF1F70-80AF1F74 002AD0 0004+00 2/2 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 80AF1F74-80AF1FB0 002AD4 003C+00 6/6 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80AF1FB0-80AF1FB4 002B10 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 80AF1FB4-80AF2200 002B14 024C+00 1/1 0/0 0/0 .text __dt__8daNpcF_cFv */ -// daNpcF_c::~daNpcF_c() { -extern "C" void __dt__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80AF2200-80AF23F0 002D60 01F0+00 1/1 0/0 0/0 .text __ct__8daNpcF_cFv */ -// daNpcF_c::daNpcF_c() { -extern "C" void __ct__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80AF23F0-80AF2460 002F50 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80AF2460-80AF24BC 002FC0 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80AF24BC-80AF252C 00301C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80AF252C-80AF2574 00308C 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 80AF2574-80AF2578 0030D4 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__8daNpcF_cFv */ -// void daNpcF_c::adjustShapeAngle() { -extern "C" void adjustShapeAngle__8daNpcF_cFv() { - /* empty function */ -} - -/* 80AF2578-80AF257C 0030D8 0004+00 1/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */ -// void daNpcF_c::setCollisions() { -extern "C" void setCollisions__8daNpcF_cFv() { - /* empty function */ -} - -/* 80AF257C-80AF2584 0030DC 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; -} - -/* 80AF2584-80AF258C 0030E4 0008+00 1/0 0/0 0/0 .text setExpressionBtp__8daNpcF_cFi */ -// bool daNpcF_c::setExpressionBtp(int param_0) { -extern "C" bool setExpressionBtp__8daNpcF_cFi() { - return true; -} - -/* 80AF258C-80AF2590 0030EC 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 */ -} - -/* 80AF2590-80AF25D8 0030F0 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AF2AD8-80AF2AE4 000250 000C+00 2/2 0/0 0/0 .data __vt__22daNpc_SoldierA_Param_c */ -SECTION_DATA extern void* __vt__22daNpc_SoldierA_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__22daNpc_SoldierA_Param_cFv, -}; - -/* 80AF25D8-80AF267C 003138 00A4+00 0/0 1/0 0/0 .text __sinit_d_a_npc_soldierA_cpp */ -void __sinit_d_a_npc_soldierA_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80AF25D8, __sinit_d_a_npc_soldierA_cpp); -#pragma pop - -/* 80AF267C-80AF26C4 0031DC 0048+00 2/1 0/0 0/0 .text __dt__22daNpc_SoldierA_Param_cFv */ -daNpc_SoldierA_Param_c::~daNpc_SoldierA_Param_c() { - // NONMATCHING -} - -/* 80AF26C4-80AF26CC 003224 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80AF26C4() { - // NONMATCHING -} - -/* 80AF26CC-80AF26D4 00322C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80AF26CC() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80AF2B5C-80AF2B60 000074 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B5C[4]; -#pragma pop - -/* 80AF2B60-80AF2B64 000078 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B60[4]; -#pragma pop - -/* 80AF2B64-80AF2B68 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B64[4]; -#pragma pop - -/* 80AF2B68-80AF2B6C 000080 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B68[4]; -#pragma pop - -/* 80AF2B6C-80AF2B70 000084 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80AF2B6C[4]; -#pragma pop - -/* 80AF2B70-80AF2B74 000088 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80AF2B70[4]; -#pragma pop - -/* 80AF2B74-80AF2B78 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_80AF2B74[4]; -#pragma pop - -/* 80AF2B78-80AF2B7C 000090 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B78[4]; -#pragma pop - -/* 80AF2B7C-80AF2B80 000094 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B7C[4]; -#pragma pop - -/* 80AF2B80-80AF2B84 000098 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B80[4]; -#pragma pop - -/* 80AF2B84-80AF2B88 00009C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B84[4]; -#pragma pop - -/* 80AF2B88-80AF2B8C 0000A0 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B88[4]; -#pragma pop - -/* 80AF2B8C-80AF2B90 0000A4 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B8C[4]; -#pragma pop - -/* 80AF2B90-80AF2B94 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80AF2B90[4]; -#pragma pop - -/* 80AF2B94-80AF2B98 0000AC 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B94[4]; -#pragma pop - -/* 80AF2B98-80AF2B9C 0000B0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B98[4]; -#pragma pop - -/* 80AF2B9C-80AF2BA0 0000B4 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_80AF2B9C[4]; -#pragma pop - -/* 80AF2BA0-80AF2BA4 0000B8 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80AF2BA0[4]; -#pragma pop - -/* 80AF2BA4-80AF2BA8 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_80AF2BA4[4]; -#pragma pop - -/* 80AF2BA8-80AF2BAC 0000C0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_80AF2BA8[4]; -#pragma pop - -/* 80AF2BAC-80AF2BB0 0000C4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_80AF2BAC[4]; -#pragma pop - -/* 80AF2BB0-80AF2BB4 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80AF2BB0[4]; -#pragma pop - -/* 80AF2BB4-80AF2BB8 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80AF2BB4[4]; -#pragma pop - -/* 80AF2BB8-80AF2BBC 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80AF2BB8[4]; -#pragma pop - -/* 80AF2BBC-80AF2BC0 0000D4 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_80AF2BBC[4]; -#pragma pop - -/* 80AF2864-80AF2864 00017C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */