diff --git a/configure.py b/configure.py index fdf80360341..fe22741cf48 100755 --- a/configure.py +++ b/configure.py @@ -1751,7 +1751,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_npc_ashB"), ActorRel(NonMatching, "d_a_npc_bans"), ActorRel(NonMatching, "d_a_npc_blue_ns"), - ActorRel(NonMatching, "d_a_npc_bou"), + ActorRel(Equivalent, "d_a_npc_bou"), ActorRel(NonMatching, "d_a_npc_bouS"), ActorRel(NonMatching, "d_a_npc_cdn3"), ActorRel(NonMatching, "d_a_npc_chat"), diff --git a/include/d/actor/d_a_horse.h b/include/d/actor/d_a_horse.h index b1b7ee7339c..b8dea5a4b85 100644 --- a/include/d/actor/d_a_horse.h +++ b/include/d/actor/d_a_horse.h @@ -262,6 +262,7 @@ public: bool checkCutTurnCancel() const { return checkEndResetStateFlg0(ERFLG0_CUT_TURN_CANCEL); } bool checkTurnCancelKeep() const { return checkStateFlg0(FLG0_TURN_CANCEL_KEEP); } BOOL checkRodeoLeft() const { return checkStateFlg0(FLG0_RODEO_LEFT); } + BOOL checkHorseCallWait() const { return checkStateFlg0(FLG0_NO_DRAW_WAIT); } BOOL checkTurn() const { return m_procID == PROC_TURN_e && field_0x1720 == 0; } BOOL checkStop() const { return m_procID == PROC_STOP_e; } bool checkJump() const { return m_procID == PROC_JUMP_e; } diff --git a/include/d/actor/d_a_npc_bou.h b/include/d/actor/d_a_npc_bou.h index 18793a5a9e6..1d9ef4d7cd2 100644 --- a/include/d/actor/d_a_npc_bou.h +++ b/include/d/actor/d_a_npc_bou.h @@ -13,7 +13,7 @@ */ class daNpc_Bou_Param_c { public: - /* 809727F4 */ ~daNpc_Bou_Param_c(); + /* 809727F4 */ virtual ~daNpc_Bou_Param_c() {} struct Data { /* 0x00 */ f32 field_0x00; // 255.0f @@ -65,6 +65,8 @@ class daNpc_Bou_c : public daNpcT_c { public: + typedef int (daNpc_Bou_c::*cutFunc)(int); + typedef int (daNpc_Bou_c::*actionFunc)(void*); enum Type { TYPE_0, @@ -76,37 +78,39 @@ public: }; /* 8096CF8C */ ~daNpc_Bou_c(); - /* 8096D0D8 */ void create(); - /* 8096D38C */ void CreateHeap(); - /* 8096D7B8 */ void Delete(); - /* 8096D7EC */ void Execute(); - /* 8096D80C */ void Draw(); - /* 8096D8A0 */ void createHeapCallBack(fopAc_ac_c*); - /* 8096D8C0 */ void ctrlJointCallBack(J3DJoint*, int); - /* 8096D918 */ void srchCow(void*, void*); - /* 8096D9B4 */ void getCowP(); + /* 8096D0D8 */ int create(); + /* 8096D38C */ int CreateHeap(); + /* 8096D7B8 */ int Delete(); + /* 8096D7EC */ int Execute(); + /* 8096D80C */ int Draw(); + /* 8096D8A0 */ static int createHeapCallBack(fopAc_ac_c*); + /* 8096D8C0 */ static int ctrlJointCallBack(J3DJoint*, int); + /* 8096D918 */ static void* srchCow(void*, void*); + /* 8096D9B4 */ fopAc_ac_c* getCowP(); /* 8096DA78 */ u8 getType(); - /* 8096DADC */ void isDelete(); + /* 8096DADC */ int isDelete(); /* 8096DBBC */ void reset(); /* 8096E18C */ void srchActors(); - /* 8096ECC0 */ void selectAction(); - /* 8096ED3C */ void chkAction(int (daNpc_Bou_c::*)(void*)); - /* 8096ED68 */ void setAction(int (daNpc_Bou_c::*)(void*)); - /* 8096EE10 */ void cutWildGoat(int); - /* 8096F2E4 */ void cutWildGoatSuccess(int); - /* 8096F510 */ void cutWildGoatFailure(int); - /* 8096F758 */ void cutSpeakTo(int); - /* 8096F9A4 */ void cutConversationWithBou(int); - /* 8096FB78 */ void cutConfidentialConversation(int); - /* 8096FE40 */ void cutFindWolf(int); - /* 80970278 */ void cutMeetingAgain(int); - /* 809709EC */ void wait(void*); - /* 80970DFC */ void talkwithJagar(void*); - /* 80970F9C */ void talk(void*); - /* 809726D4 */ daNpc_Bou_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int, - daNpcT_evtData_c const*, char**); + /* 8096ECC0 */ int selectAction(); + /* 8096ED3C */ int chkAction(int (daNpc_Bou_c::*)(void*)); + /* 8096ED68 */ int setAction(int (daNpc_Bou_c::*)(void*)); + /* 8096EE10 */ int cutWildGoat(int); + /* 8096F2E4 */ int cutWildGoatSuccess(int); + /* 8096F510 */ int cutWildGoatFailure(int); + /* 8096F758 */ int cutSpeakTo(int); + /* 8096F9A4 */ int cutConversationWithBou(int); + /* 8096FB78 */ int cutConfidentialConversation(int); + /* 8096FE40 */ int cutFindWolf(int); + /* 80970278 */ int cutMeetingAgain(int); + /* 809709EC */ int wait(void*); + /* 80970DFC */ int talkwithJagar(void*); + /* 80970F9C */ int talk(void*); + /* 809726D4 */ daNpc_Bou_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2, + daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4, + daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6, + daNpcT_evtData_c const* param_7, char** param_8) : + daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) + {} /* 809727D4 */ virtual int checkChangeJoint(int); /* 809727E4 */ virtual int checkRemoveJoint(int); @@ -128,8 +132,16 @@ public: /* 8096EC6C */ virtual int drawDbgInfo(); /* 8096EC74 */ virtual void changeAnm(int*, int*); - static void* mCutNameList[9]; - static u8 mCutList[108]; + static char* mCutNameList[9]; + static cutFunc mCutList[9]; + + int getFlowNodeNo() { + u16 nodeNo = home.angle.x; + if (nodeNo == 0xffff) { + return -1; + } + return nodeNo; + } BOOL chkFindWolf() { int iVar1 = daNpcT_getDistTableIdx(field_0xfe0, field_0xfe4); @@ -157,7 +169,7 @@ public: } BOOL speakTo() { - if (field_0xf80 == 4) { + if (mType == 4) { if (current.pos.absXZ(daPy_getPlayerActorClass()->current.pos) < 1100.0f && strlen(mpEvtData[5].eventName) != 0) { u32 len = strlen(mpArcNames[mpEvtData[5].num]); if (len != 0) { @@ -176,18 +188,55 @@ public: private: /* 0xE40 */ int field_0xe40; - /* 0xE44 */ dCcD_Cyl field_0xe44; - /* 0xF80 */ u8 field_0xf80; - /* 0xF84 */ daNpcT_ActorMngr_c field_0xf84[3]; + /* 0xE44 */ dCcD_Cyl mCyl1; + /* 0xF80 */ u8 mType; + /* 0xF84 */ daNpcT_ActorMngr_c mActorMngr[3]; /* 0xF9C */ daNpcT_Path_c field_0xf9c; - /* 0xFC4 */ u8 field_0xfc4[0xFDC - 0xFC4]; + /* 0xFC4 */ actionFunc field_0xfc4; + /* 0xFD0 */ actionFunc field_0xfd0; /* 0xFDC */ int field_0xfdc; /* 0xFE0 */ int field_0xfe0; /* 0xFE4 */ int field_0xfe4; - /* 0xFE8 */ u8 field_0xfe8[0xFFC - 0xFE8]; + /* 0xFE8 */ u8 field_0xfe8[0xFF4 - 0xFE8]; + /* 0xFF4 */ u8 field_0xff4; + /* 0xFF5 */ u8 field_0xff5[0xFF8 - 0xFF5]; + /* 0xFF8 */ u8 field_0xff8; }; STATIC_ASSERT(sizeof(daNpc_Bou_c) == 0xffc); +/* 809727B4-809727BC 005914 0008+00 1/0 0/0 0/0 .text getEyeballMaterialNo__11daNpc_Bou_cFv */ +s32 daNpc_Bou_c::getEyeballMaterialNo() { + return 1; +} + +/* 809727BC-809727C4 00591C 0008+00 1/0 0/0 0/0 .text getHeadJointNo__11daNpc_Bou_cFv */ +s32 daNpc_Bou_c::getHeadJointNo() { + return 4; +} + +/* 809727C4-809727CC 005924 0008+00 1/0 0/0 0/0 .text getNeckJointNo__11daNpc_Bou_cFv */ +s32 daNpc_Bou_c::getNeckJointNo() { + return 3; +} + +/* 809727CC-809727D4 00592C 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__11daNpc_Bou_cFv + */ +s32 daNpc_Bou_c::getBackboneJointNo() { + return 1; +} + +/* 809727D4-809727E4 005934 0010+00 1/0 0/0 0/0 .text checkChangeJoint__11daNpc_Bou_cFi + */ +int daNpc_Bou_c::checkChangeJoint(int param_0) { + return param_0 == 4; +} + +/* 809727E4-809727F4 005944 0010+00 1/0 0/0 0/0 .text checkRemoveJoint__11daNpc_Bou_cFi + */ +int daNpc_Bou_c::checkRemoveJoint(int param_0) { + return param_0 == 8; +} + #endif /* D_A_NPC_BOU_H */ diff --git a/include/d/actor/d_a_npc_jagar.h b/include/d/actor/d_a_npc_jagar.h index 27513fe7c6c..7623866cf70 100644 --- a/include/d/actor/d_a_npc_jagar.h +++ b/include/d/actor/d_a_npc_jagar.h @@ -166,6 +166,24 @@ public: return false; } + void setSurpriseMotion() { + mFaceMotionSeqMngr.setNo(1, -1.0f, 0, 0); + mMotionSeqMngr.setNo(7, -1.0f, 0, 0); + field_0xff8 = 0; + } + + void setListenMotion(f32 arg) { + mFaceMotionSeqMngr.setNo(8, -1.0f, 0, 0); + if (0.0f < arg + (cM_rnd() - 0.5f)) { + mMotionSeqMngr.setNo(8, -1.0f, 0, 0); + } else { + mMotionSeqMngr.setNo(5, -1.0f, 0, 0); + } + } + + void onListen() { mListen = 1; } + void offListen() { mListen = 0; } + u8 getPathID() { return (fopAcM_GetParam(this) & 0xff00) >> 8; } static char* mCutNameList[7]; @@ -188,7 +206,7 @@ private: /* 0x1002 */ u8 field_0x1002; /* 0x1003 */ u8 field_0x1003; /* 0x1004 */ u8 field_0x1004; - /* 0x1005 */ u8 field_0x1005; + /* 0x1005 */ u8 mListen; /* 0x1008 */ int field_0x1008; }; diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index d572577915d..7c3b03b9ff3 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -899,6 +899,7 @@ public: bool getGrabUpStart() const { return checkResetFlg0(RFLG0_UNK_8000); } bool checkCanoeSlider() const { return mSpecialMode == 0x2D; } bool checkGoatStopGame() const { return mSpecialMode == 0x2A; } + bool onGoatStopGame() { return mSpecialMode = 0x2A; } u8 getCutType() const { return mCutType; } u16 getSwordAtUpTime() const { return mSwordUpTimer; } s16 getDamageWaitTimer() const { return mDamageTimer; } diff --git a/src/d/actor/d_a_npc_bou.cpp b/src/d/actor/d_a_npc_bou.cpp index 07e09480737..fbf95b3c087 100644 --- a/src/d/actor/d_a_npc_bou.cpp +++ b/src/d/actor/d_a_npc_bou.cpp @@ -4,1082 +4,339 @@ */ #include "d/actor/d_a_npc_bou.h" +#include "d/actor/d_a_cow.h" +#include "d/actor/d_a_horse.h" +#include "d/actor/d_a_npc_jagar.h" +#include "d/actor/d_a_tag_push.h" +#include "d/d_meter2_info.h" #include "dol2asm.h" -// -// Forward References: -// - -extern "C" void __dt__11daNpc_Bou_cFv(); -extern "C" void create__11daNpc_Bou_cFv(); -extern "C" void CreateHeap__11daNpc_Bou_cFv(); -extern "C" void __dt__15J3DTevKColorAnmFv(); -extern "C" void __ct__15J3DTevKColorAnmFv(); -extern "C" void __dt__14J3DTevColorAnmFv(); -extern "C" void __ct__14J3DTevColorAnmFv(); -extern "C" void __dt__11J3DTexNoAnmFv(); -extern "C" void __ct__11J3DTexNoAnmFv(); -extern "C" void __dt__12J3DTexMtxAnmFv(); -extern "C" void __ct__12J3DTexMtxAnmFv(); -extern "C" void __dt__14J3DMatColorAnmFv(); -extern "C" void __ct__14J3DMatColorAnmFv(); -extern "C" void Delete__11daNpc_Bou_cFv(); -extern "C" void Execute__11daNpc_Bou_cFv(); -extern "C" void Draw__11daNpc_Bou_cFv(); -extern "C" void createHeapCallBack__11daNpc_Bou_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__11daNpc_Bou_cFP8J3DJointi(); -extern "C" void srchCow__11daNpc_Bou_cFPvPv(); -extern "C" void getCowP__11daNpc_Bou_cFv(); -extern "C" void getType__11daNpc_Bou_cFv(); -extern "C" void isDelete__11daNpc_Bou_cFv(); -extern "C" void reset__11daNpc_Bou_cFv(); -extern "C" void afterJntAnm__11daNpc_Bou_cFi(); -extern "C" void setParam__11daNpc_Bou_cFv(); -extern "C" void checkChangeEvt__11daNpc_Bou_cFv(); -extern "C" void setAfterTalkMotion__11daNpc_Bou_cFv(); -extern "C" void srchActors__11daNpc_Bou_cFv(); -extern "C" void evtTalk__11daNpc_Bou_cFv(); -extern "C" bool evtEndProc__11daNpc_Bou_cFv(); -extern "C" void evtCutProc__11daNpc_Bou_cFv(); -extern "C" void action__11daNpc_Bou_cFv(); -extern "C" void beforeMove__11daNpc_Bou_cFv(); -extern "C" void setAttnPos__11daNpc_Bou_cFv(); -extern "C" void setCollision__11daNpc_Bou_cFv(); -extern "C" bool drawDbgInfo__11daNpc_Bou_cFv(); -extern "C" void changeAnm__11daNpc_Bou_cFPiPi(); -extern "C" void selectAction__11daNpc_Bou_cFv(); -extern "C" void chkAction__11daNpc_Bou_cFM11daNpc_Bou_cFPCvPvPv_i(); -extern "C" void setAction__11daNpc_Bou_cFM11daNpc_Bou_cFPCvPvPv_i(); -extern "C" void cutWildGoat__11daNpc_Bou_cFi(); -extern "C" void cutWildGoatSuccess__11daNpc_Bou_cFi(); -extern "C" void cutWildGoatFailure__11daNpc_Bou_cFi(); -extern "C" void cutSpeakTo__11daNpc_Bou_cFi(); -extern "C" void cutConversationWithBou__11daNpc_Bou_cFi(); -extern "C" void cutConfidentialConversation__11daNpc_Bou_cFi(); -extern "C" void cutFindWolf__11daNpc_Bou_cFi(); -extern "C" void cutMeetingAgain__11daNpc_Bou_cFi(); -extern "C" void wait__11daNpc_Bou_cFPv(); -extern "C" void talkwithJagar__11daNpc_Bou_cFPv(); -extern "C" void talk__11daNpc_Bou_cFPv(); -extern "C" static void daNpc_Bou_Create__FPv(); -extern "C" static void daNpc_Bou_Delete__FPv(); -extern "C" static void daNpc_Bou_Execute__FPv(); -extern "C" static void daNpc_Bou_Draw__FPv(); -extern "C" static bool daNpc_Bou_IsDelete__FPv(); -extern "C" void calc__11J3DTexNoAnmCFPUs(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __dt__8daNpcT_cFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __dt__5csXyzFv(); -extern "C" void __dt__18daNpcT_ActorMngr_cFv(); -extern "C" void __dt__13daNpcT_Path_cFv(); -extern "C" void __ct__18daNpcT_ActorMngr_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void -__ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __dt__15daNpcT_JntAnm_cFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__22daNpcT_MotionSeqMngr_cFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs(); -extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs(); -extern "C" void ctrlSubFaceMotion__8daNpcT_cFi(); -extern "C" s32 getFootLJointNo__8daNpcT_cFv(); -extern "C" s32 getFootRJointNo__8daNpcT_cFv(); -extern "C" bool getEyeballLMaterialNo__8daNpcT_cFv(); -extern "C" bool getEyeballRMaterialNo__8daNpcT_cFv(); -extern "C" void afterMoved__8daNpcT_cFv(); -extern "C" bool chkXYItems__8daNpcT_cFv(); -extern "C" void decTmr__8daNpcT_cFv(); -extern "C" void drawOtherMdl__8daNpcT_cFv(); -extern "C" void drawGhost__8daNpcT_cFv(); -extern "C" bool afterSetFaceMotionAnm__8daNpcT_cFiifi(); -extern "C" bool afterSetMotionAnm__8daNpcT_cFiifi(); -extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c(); -extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c(); -extern "C" void changeBck__8daNpcT_cFPiPi(); -extern "C" void changeBtp__8daNpcT_cFPiPi(); -extern "C" void changeBtk__8daNpcT_cFPiPi(); -extern "C" void func_8097258C(void* _this, int*); -extern "C" void __sinit_d_a_npc_bou_cpp(); -extern "C" void -__ct__11daNpc_Bou_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc(); -extern "C" s32 getEyeballMaterialNo__11daNpc_Bou_cFv(); -extern "C" s32 getHeadJointNo__11daNpc_Bou_cFv(); -extern "C" s32 getNeckJointNo__11daNpc_Bou_cFv(); -extern "C" bool getBackboneJointNo__11daNpc_Bou_cFv(); -extern "C" void checkChangeJoint__11daNpc_Bou_cFi(); -extern "C" void checkRemoveJoint__11daNpc_Bou_cFi(); -extern "C" void __dt__17daNpc_Bou_Param_cFv(); -extern "C" static void func_8097283C(); -extern "C" static void func_80972844(); -extern "C" u8 const m__17daNpc_Bou_Param_c[156]; -extern "C" extern char const* const d_a_npc_bou__stringBase0; -extern "C" void* mCutNameList__11daNpc_Bou_c[9]; -extern "C" u8 mCutList__11daNpc_Bou_c[108]; - -// -// External References: -// - -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -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 fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistance__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fpcEx_IsExist__FUi(); -extern "C" void dStage_changeScene__FifUlScsi(); -extern "C" void getLayerNo__14dComIfG_play_cFi(); -extern "C" void dComIfGs_wolfeye_effect_check__Fv(); -extern "C" void isCollect__20dSv_player_collect_cCFiUc(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void setPt2__14dEvt_control_cFPv(); -extern "C" void setPtT__14dEvt_control_cFPv(); -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 setGoal__16dEvent_manager_cFP4cXyz(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void GroundCross__4cBgSFP11cBgS_GndChk(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWallR__12dBgS_AcchCirFf(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void 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 GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void initialize__18daNpcT_ActorMngr_cFv(); -extern "C" void entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void remove__18daNpcT_ActorMngr_cFv(); -extern "C" void getActorP__18daNpcT_ActorMngr_cFv(); -extern "C" void initialize__15daNpcT_MatAnm_cFv(); -extern "C" void initialize__22daNpcT_MotionSeqMngr_cFv(); -extern "C" void initialize__13daNpcT_Path_cFv(); -extern "C" void initialize__15daNpcT_JntAnm_cFv(); -extern "C" void setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz(); -extern "C" void calcJntRad__15daNpcT_JntAnm_cFfff(); -extern "C" void setParam__19daNpcT_DmgStagger_cFP10fopAc_ac_cP10fopAc_ac_cs(); -extern "C" void calc__19daNpcT_DmgStagger_cFi(); -extern "C" void tgHitCallBack__8daNpcT_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf(); -extern "C" void loadRes__8daNpcT_cFPCScPPCc(); -extern "C" void deleteRes__8daNpcT_cFPCScPPCc(); -extern "C" void execute__8daNpcT_cFv(); -extern "C" void draw__8daNpcT_cFiifP11_GXColorS10fiii(); -extern "C" void setEnvTevColor__8daNpcT_cFv(); -extern "C" void setRoomNo__8daNpcT_cFv(); -extern "C" void ctrlBtk__8daNpcT_cFv(); -extern "C" void setMtx__8daNpcT_cFv(); -extern "C" void ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel(); -extern "C" void evtProc__8daNpcT_cFv(); -extern "C" void setFootPos__8daNpcT_cFv(); -extern "C" void setFootPrtcl__8daNpcT_cFP4cXyzff(); -extern "C" bool checkCullDraw__8daNpcT_cFv(); -extern "C" void twilight__8daNpcT_cFv(); -extern "C" void evtOrder__8daNpcT_cFv(); -extern "C" void evtChange__8daNpcT_cFv(); -extern "C" void clrParam__8daNpcT_cFv(); -extern "C" void setFaceMotionAnm__8daNpcT_cFib(); -extern "C" void setMotionAnm__8daNpcT_cFifi(); -extern "C" void setPos__8daNpcT_cF4cXyz(); -extern "C" void setAngle__8daNpcT_cF5csXyz(); -extern "C" void setAngle__8daNpcT_cFs(); -extern "C" void hitChk__8daNpcT_cFP12dCcD_GObjInfUl(); -extern "C" void setDamage__8daNpcT_cFiii(); -extern "C" void chkActorInSight__8daNpcT_cFP10fopAc_ac_cfs(); -extern "C" void chkPointInArea__8daNpcT_cF4cXyz4cXyzfffs(); -extern "C" void srchPlayerActor__8daNpcT_cFv(); -extern "C" void step__8daNpcT_cFsiiii(); -extern "C" void getActorDistance__8daNpcT_cFP10fopAc_ac_cii(); -extern "C" void initTalk__8daNpcT_cFiPP10fopAc_ac_c(); -extern "C" void talkProc__8daNpcT_cFPiiPP10fopAc_ac_ci(); -extern "C" void getNearestActorP__8daNpcT_cFs(); -extern "C" void daNpcT_getPlayerInfoFromPlayerList__FiiP4cXyzP5csXyz(); -extern "C" void daNpcT_getDistTableIdx__Fii(); -extern "C" void daNpcT_chkEvtBit__FUl(); -extern "C" void daNpcT_onTmpBit__FUl(); -extern "C" void daNpcT_offTmpBit__FUl(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __pl__4cXyzCFRC3Vec(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rnd__Fv(); -extern "C" void cM_rndF__Ff(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void SetPos__11cBgS_GndChkFPC4cXyz(); -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_chaseS__FPsss(); -extern "C" void cLib_chaseF__FPfff(); -extern "C" void subBgmStart__8Z2SeqMgrFUl(); -extern "C" void subBgmStop__8Z2SeqMgrFv(); -extern "C" void __ct__10Z2CreatureFv(); -extern "C" void __dt__10Z2CreatureFv(); -extern "C" void init__10Z2CreatureFP3VecP3VecUcUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void getTexNo__16J3DAnmTexPatternCFUsPUs(); -extern "C" void initialize__14J3DMaterialAnmFv(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_test(); -extern "C" void __ptmf_cmpr(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_23(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_23(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" u8 mCcDCyl__8daNpcT_c[68]; -extern "C" extern void* __vt__8daNpcT_c[49]; -extern "C" extern void* __vt__15daNpcT_MatAnm_c[4 + 1 /* padding */]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" extern void* __vt__14J3DMaterialAnm[4]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mFindActorPtrs__8daNpcT_c[200]; -extern "C" extern u8 g_meter2_info[248]; -extern "C" u8 mFindCount__8daNpcT_c[4]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); -extern "C" void getType__13daNpc_Jagar_cFv(); - // // Declarations: // -/* ############################################################################################## */ -/* 8097299C-8097299C 00013C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8097299C = ""; -SECTION_DEAD static char const* const stringBase_8097299D = "NO_RESPONSE"; -SECTION_DEAD static char const* const stringBase_809729A9 = "WILDGOAT"; -SECTION_DEAD static char const* const stringBase_809729B2 = "WILDGOAT_SUCCESS"; -SECTION_DEAD static char const* const stringBase_809729C3 = "WILDGOAT_FAILURE"; -SECTION_DEAD static char const* const stringBase_809729D4 = "SPEAKTO"; -SECTION_DEAD static char const* const stringBase_809729DC = "CONFIDENTIAL_CONVERSATION"; -SECTION_DEAD static char const* const stringBase_809729F6 = "FIND_WOLF"; -SECTION_DEAD static char const* const stringBase_80972A00 = "MEETING_AGAIN"; -SECTION_DEAD static char const* const stringBase_80972A0E = "MEETING_AGAIN_PLAYER_ON_HORSE"; -SECTION_DEAD static char const* const stringBase_80972A2C = "MEETING_AGAIN_NEAR"; -SECTION_DEAD static char const* const stringBase_80972A3F = "Bou"; -SECTION_DEAD static char const* const stringBase_80972A43 = "Bou1"; -SECTION_DEAD static char const* const stringBase_80972A48 = "Bou2"; -SECTION_DEAD static char const* const stringBase_80972A4D = "Bou4"; -SECTION_DEAD static char const* const stringBase_80972A52 = "Bou_p1"; -SECTION_DEAD static char const* const stringBase_80972A59 = "Jagar2"; -SECTION_DEAD static char const* const stringBase_80972A60 = "CONVERSATION_WITH_BOU"; -#pragma pop - -/* 80972A90-80972A9C 000000 000C+00 2/2 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80972A9C-80972AB0 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ -#pragma push -#pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { - 0x02000201, - /* padding */ - 0x40080000, - 0x00000000, - 0x3FE00000, - 0x00000000, -}; -#pragma pop +UNK_REL_DATA; /* 80972AB0-80972AB8 000020 0008+00 1/1 0/0 0/0 .data l_bmdData */ -SECTION_DATA static u8 l_bmdData[8] = { - 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, +static int l_bmdData[1][2] = { + {11, 1}, }; /* 80972AB8-80972B10 -00001 0058+00 0/1 0/0 0/0 .data l_evtList */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_evtList[22] = { - (void*)&d_a_npc_bou__stringBase0, - (void*)NULL, - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x1), - (void*)NULL, - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0xD), - (void*)0x00000002, - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x16), - (void*)0x00000002, - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x27), - (void*)0x00000002, - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x38), - (void*)0x00000002, - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x40), - (void*)0x00000006, - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x5A), - (void*)0x00000006, - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x64), - (void*)0x00000004, - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x72), - (void*)0x00000004, - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x90), - (void*)0x00000004, +daNpcT_evtData_c l_evtList[11] = { + {"", 0}, + {"NO_RESPONSE", 0}, + {"WILDGOAT", 2}, + {"WILDGOAT_SUCCESS", 2}, + {"WILDGOAT_FAILURE", 2}, + {"SPEAKTO", 2}, + {"CONFIDENTIAL_CONVERSATION", 6}, + {"FIND_WOLF", 6}, + {"MEETING_AGAIN", 4}, + {"MEETING_AGAIN_PLAYER_ON_HORSE", 4}, + {"MEETING_AGAIN_NEAR", 4}, }; -#pragma pop /* 80972B10-80972B2C -00001 001C+00 2/3 0/0 0/0 .data l_resNameList */ -SECTION_DATA static void* l_resNameList[7] = { - (void*)&d_a_npc_bou__stringBase0, - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0xA3), - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0xA7), - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0xAC), - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0xB1), - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0xB6), - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0xBD), +static char* l_resNameList[7] = { + "", + "Bou", + "Bou1", + "Bou2", + "Bou4", + "Bou_p1", + "Jagar2" }; /* 80972B2C-80972B30 00009C 0004+00 1/0 0/0 0/0 .data l_loadResPtrn0 */ -SECTION_DATA static u32 l_loadResPtrn0 = 0x010204FF; +static s8 l_loadResPtrn0[4] = {1, 2, 4, -1}; /* 80972B30-80972B34 0000A0 0003+01 1/0 0/0 0/0 .data l_loadResPtrn1 */ -SECTION_DATA static u8 l_loadResPtrn1[3 + 1 /* padding */] = { - 0x01, - 0x03, - 0xFF, - /* padding */ - 0x00, -}; +static s8 l_loadResPtrn1[3] = {1, 3, -1}; /* 80972B34-80972B38 0000A4 0003+01 1/0 0/0 0/0 .data l_loadResPtrn2 */ -SECTION_DATA static u8 l_loadResPtrn2[3 + 1 /* padding */] = { - 0x01, - 0x04, - 0xFF, - /* padding */ - 0x00, -}; +static s8 l_loadResPtrn2[3] = {1, 4, -1}; /* 80972B38-80972B3C 0000A8 0003+01 1/0 0/0 0/0 .data l_loadResPtrn3 */ -SECTION_DATA static u8 l_loadResPtrn3[3 + 1 /* padding */] = { - 0x01, - 0x05, - 0xFF, - /* padding */ - 0x00, -}; +static s8 l_loadResPtrn3[3] = {1, 5, -1}; /* 80972B3C-80972B44 0000AC 0005+03 1/0 0/0 0/0 .data l_loadResPtrn9 */ -SECTION_DATA static u8 l_loadResPtrn9[5 + 3 /* padding */] = { - 0x01, - 0x02, - 0x03, - 0x04, - 0xFF, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +static s8 l_loadResPtrn9[5] = {1, 2, 3, 4, -1}; /* 80972B44-80972B5C -00001 0018+00 1/2 0/0 0/0 .data l_loadResPtrnList */ -SECTION_DATA static void* l_loadResPtrnList[6] = { - (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn1, (void*)&l_loadResPtrn2, - (void*)&l_loadResPtrn3, (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn9, +static s8* l_loadResPtrnList[6] = { + l_loadResPtrn0, l_loadResPtrn1, l_loadResPtrn2, + l_loadResPtrn3, l_loadResPtrn0, l_loadResPtrn9, }; /* 80972B5C-80972C90 0000CC 0134+00 0/1 0/0 0/0 .data l_faceMotionAnmData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_faceMotionAnmData[308] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x11, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1C, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x01, +static daNpcT_faceMotionAnmData_c l_faceMotionAnmData[11] = { + {-1, 0, 0, 17, 2, 1, 1}, + {6, 0, 1, 17, 2, 1, 1}, + {4, 0, 2, 17, 2, 1, 1}, + {4, 2, 3, 16, 2, 3, 0}, + {5, 0, 3, 17, 0, 3, 0}, + {6, 2, 3, 18, 2, 3, 0}, + {7, 0, 4, 25, 0, 4, 1}, + {8, 2, 4, 26, 2, 4, 1}, + {11, 2, 4, 28, 2, 4, 1}, + {9, 0, 4, 17, 2, 1, 1}, + {10, 0, 4, 27, 0, 4, 1}, }; -#pragma pop /* 80972C90-80972F14 000200 0284+00 0/1 0/0 0/0 .data l_motionAnmData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_motionAnmData[644] = { - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x01, 0x00, 0x00, +static daNpcT_motionAnmData_c l_motionAnmData[23] = { + {8, 2, 1, 14, 0, 1, 1, 0}, + {5, 0, 2, 14, 0, 1, 1, 0}, + {7, 2, 3, 14, 0, 1, 1, 0}, + {7, 0, 1, 14, 0, 1, 1, 0}, + {21, 2, 4, 14, 0, 1, 1, 0}, + {12, 2, 3, 14, 0, 1, 1, 0}, + {11, 0, 3, 14, 0, 1, 1, 0}, + {13, 2, 3, 14, 0, 1, 1, 0}, + {8, 0, 3, 14, 0, 1, 1, 0}, + {10, 0, 3, 14, 0, 1, 1, 0}, + {9, 2, 3, 14, 0, 1, 1, 0}, + {20, 2, 4, 14, 0, 1, 1, 0}, + {22, 2, 4, 14, 0, 1, 1, 0}, + {14, 0, 4, 14, 0, 1, 1, 0}, + {16, 0, 4, 14, 0, 1, 1, 0}, + {19, 0, 4, 14, 0, 1, 1, 0}, + {12, 0, 4, 14, 0, 1, 1, 0}, + {13, 0, 4, 14, 0, 1, 1, 0}, + {15, 0, 4, 14, 0, 1, 1, 0}, + {5, 0, 4, 14, 0, 1, 1, 0}, + {6, 2, 4, 14, 0, 1, 1, 0}, + {17, 0, 4, 14, 0, 1, 1, 0}, + {18, 2, 4, 14, 0, 1, 1, 0} }; -#pragma pop /* 80972F14-80972FC4 000484 00B0+00 0/1 0/0 0/0 .data l_faceMotionSequenceData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_faceMotionSequenceData[176] = { - 0x00, 0x01, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x01, 0x00, 0x05, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x09, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x06, 0xFF, 0x01, 0x00, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0A, 0xFF, 0x01, 0x00, 0x08, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x02, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x05, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x03, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x07, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x08, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, +static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_faceMotionSequenceData[44] = { + {1, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {4, 0, 1}, {5, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, + {9, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {6, -1, 1}, {7, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {10, -1, 1}, {8, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {2, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {5, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {3, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {7, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {8, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0} }; -#pragma pop /* 80972FC4-80973124 000534 0160+00 0/1 0/0 0/0 .data l_motionSequenceData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_motionSequenceData[352] = { - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x05, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x06, 0xFF, 0x01, 0x00, 0x05, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x01, 0x00, 0x0A, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x09, 0xFF, 0x01, 0x00, 0x05, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0A, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0B, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0C, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x01, 0xFF, 0x01, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0E, 0xFF, 0x01, 0x00, 0x0B, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0F, 0xFF, 0x01, 0x00, 0x0C, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x10, 0xFF, 0x01, 0x00, 0x0B, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x11, 0xFF, 0x01, 0x00, 0x0B, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x12, 0xFF, 0x01, 0x00, 0x0B, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x13, 0xFF, 0x01, 0x00, 0x14, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x14, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x15, 0xFF, 0x01, 0x00, 0x16, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x16, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x03, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0D, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x02, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x06, 0xFF, 0x01, 0x00, 0x05, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, +static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_motionSequenceData[88] = { + {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {5, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {6, -1, 1}, {5, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {8, 0, 1}, {10, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, + {9, -1, 1}, {5, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {10, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {11, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {12, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {1, -1, 1}, {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {14, -1, 1}, {11, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, + {15, -1, 1}, {12, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {16, -1, 1}, {11, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, + {17, -1, 1}, {11, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {18, -1, 1}, {11, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, + {19, -1, 1}, {20, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {20, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {21, -1, 1}, {22, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {22, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {3, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {13, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {2, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {6, -1, 1}, {5, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, }; -#pragma pop /* 80973124-80973148 -00001 0024+00 1/1 0/0 0/0 .data mCutNameList__11daNpc_Bou_c */ -SECTION_DATA void* daNpc_Bou_c::mCutNameList[9] = { - (void*)&d_a_npc_bou__stringBase0, - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0xD), - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x16), - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x27), - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x38), - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0xC4), - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x40), - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x5A), - (void*)(((char*)&d_a_npc_bou__stringBase0) + 0x64), +char* daNpc_Bou_c::mCutNameList[9] = { + "", + "WILDGOAT", + "WILDGOAT_SUCCESS", + "WILDGOAT_FAILURE", + "SPEAKTO", + "CONVERSATION_WITH_BOU", + "CONFIDENTIAL_CONVERSATION", + "FIND_WOLF", + "MEETING_AGAIN" }; -/* 80973148-80973154 -00001 000C+00 0/1 0/0 0/0 .data @3934 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3934[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutWildGoat__11daNpc_Bou_cFi, -}; -#pragma pop - -/* 80973154-80973160 -00001 000C+00 0/1 0/0 0/0 .data @3935 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3935[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutWildGoatSuccess__11daNpc_Bou_cFi, -}; -#pragma pop - -/* 80973160-8097316C -00001 000C+00 0/1 0/0 0/0 .data @3936 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3936[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutWildGoatFailure__11daNpc_Bou_cFi, -}; -#pragma pop - -/* 8097316C-80973178 -00001 000C+00 0/1 0/0 0/0 .data @3937 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3937[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutSpeakTo__11daNpc_Bou_cFi, -}; -#pragma pop - -/* 80973178-80973184 -00001 000C+00 0/1 0/0 0/0 .data @3938 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3938[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutConversationWithBou__11daNpc_Bou_cFi, -}; -#pragma pop - -/* 80973184-80973190 -00001 000C+00 0/1 0/0 0/0 .data @3939 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3939[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutConfidentialConversation__11daNpc_Bou_cFi, -}; -#pragma pop - -/* 80973190-8097319C -00001 000C+00 0/1 0/0 0/0 .data @3940 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3940[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutFindWolf__11daNpc_Bou_cFi, -}; -#pragma pop - -/* 8097319C-809731A8 -00001 000C+00 0/1 0/0 0/0 .data @3941 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3941[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutMeetingAgain__11daNpc_Bou_cFi, -}; -#pragma pop - /* 809731A8-80973214 000718 006C+00 1/2 0/0 0/0 .data mCutList__11daNpc_Bou_c */ -SECTION_DATA u8 daNpc_Bou_c::mCutList[108] = { - 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, 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, -}; - -/* 80973214-80973220 -00001 000C+00 1/1 0/0 0/0 .data @4712 */ -SECTION_DATA static void* lit_4712[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__11daNpc_Bou_cFPv, -}; - -/* 80973220-8097322C -00001 000C+00 1/1 0/0 0/0 .data @4781 */ -SECTION_DATA static void* lit_4781[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__11daNpc_Bou_cFPv, -}; - -/* 8097322C-80973238 -00001 000C+00 1/1 0/0 0/0 .data @4786 */ -SECTION_DATA static void* lit_4786[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__11daNpc_Bou_cFPv, -}; - -/* 80973238-80973244 -00001 000C+00 1/1 0/0 0/0 .data @5136 */ -SECTION_DATA static void* lit_5136[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talkwithJagar__11daNpc_Bou_cFPv, -}; - -/* 80973244-80973250 -00001 000C+00 1/1 0/0 0/0 .data @5138 */ -SECTION_DATA static void* lit_5138[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__11daNpc_Bou_cFPv, -}; - -/* 80973250-80973274 -00001 0024+00 1/1 0/0 0/0 .data @5286 */ -SECTION_DATA static void* lit_5286[9] = { - (void*)(((char*)cutWildGoat__11daNpc_Bou_cFi) + 0xE0), - (void*)(((char*)cutWildGoat__11daNpc_Bou_cFi) + 0x1EC), - (void*)(((char*)cutWildGoat__11daNpc_Bou_cFi) + 0x110), - (void*)(((char*)cutWildGoat__11daNpc_Bou_cFi) + 0x1EC), - (void*)(((char*)cutWildGoat__11daNpc_Bou_cFi) + 0x1EC), - (void*)(((char*)cutWildGoat__11daNpc_Bou_cFi) + 0x144), - (void*)(((char*)cutWildGoat__11daNpc_Bou_cFi) + 0x15C), - (void*)(((char*)cutWildGoat__11daNpc_Bou_cFi) + 0x1D8), - (void*)(((char*)cutWildGoat__11daNpc_Bou_cFi) + 0x1EC), -}; - -/* 80973274-80973294 -00001 0020+00 1/0 0/0 0/0 .data daNpc_Bou_MethodTable */ -static actor_method_class daNpc_Bou_MethodTable = { - (process_method_func)daNpc_Bou_Create__FPv, - (process_method_func)daNpc_Bou_Delete__FPv, - (process_method_func)daNpc_Bou_Execute__FPv, - (process_method_func)daNpc_Bou_IsDelete__FPv, - (process_method_func)daNpc_Bou_Draw__FPv, -}; - -/* 80973294-809732C4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_BOU */ -extern actor_process_profile_definition g_profile_NPC_BOU = { - fpcLy_CURRENT_e, // mLayerID - 7, // mListID - fpcPi_CURRENT_e, // mListPrio - PROC_NPC_BOU, // mProcName - &g_fpcLf_Method.base, // sub_method - sizeof(daNpc_Bou_c), // mSize - 0, // mSizeOther - 0, // mParameters - &g_fopAc_Method.base, // sub_method - 324, // mPriority - &daNpc_Bou_MethodTable, // sub_method - 0x00040107, // mStatus - fopAc_NPC_e, // mActorType - fopAc_CULLBOX_CUSTOM_e, // cullType -}; - -/* 809732C4-809732D0 000834 000C+00 2/2 0/0 0/0 .data __vt__11J3DTexNoAnm */ -SECTION_DATA extern void* __vt__11J3DTexNoAnm[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)calc__11J3DTexNoAnmCFPUs, -}; - -/* 809732D0-809732DC 000840 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, -}; - -/* 809732DC-80973300 00084C 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_80972844, - (void*)NULL, - (void*)NULL, - (void*)func_8097283C, -}; - -/* 80973300-8097330C 000870 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, -}; - -/* 8097330C-80973318 00087C 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, -}; - -/* 80973318-80973324 000888 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, -}; - -/* 80973324-80973330 000894 000C+00 3/3 0/0 0/0 .data __vt__22daNpcT_MotionSeqMngr_c */ -SECTION_DATA extern void* __vt__22daNpcT_MotionSeqMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__22daNpcT_MotionSeqMngr_cFv, -}; - -/* 80973330-8097333C 0008A0 000C+00 5/5 0/0 0/0 .data __vt__18daNpcT_ActorMngr_c */ -SECTION_DATA extern void* __vt__18daNpcT_ActorMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daNpcT_ActorMngr_cFv, -}; - -/* 8097333C-80973348 0008AC 000C+00 3/3 0/0 0/0 .data __vt__15daNpcT_JntAnm_c */ -SECTION_DATA extern void* __vt__15daNpcT_JntAnm_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daNpcT_JntAnm_cFv, -}; - -/* 80973348-80973354 0008B8 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, -}; - -/* 80973354-80973360 0008C4 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, -}; - -/* 80973360-8097336C 0008D0 000C+00 3/3 0/0 0/0 .data __vt__13daNpcT_Path_c */ -SECTION_DATA extern void* __vt__13daNpcT_Path_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daNpcT_Path_cFv, -}; - -/* 8097336C-80973430 0008DC 00C4+00 2/2 0/0 0/0 .data __vt__11daNpc_Bou_c */ -SECTION_DATA extern void* __vt__11daNpc_Bou_c[49] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__11daNpc_Bou_cFv, - (void*)ctrlBtk__8daNpcT_cFv, - (void*)ctrlSubFaceMotion__8daNpcT_cFi, - (void*)checkChangeJoint__11daNpc_Bou_cFi, - (void*)checkRemoveJoint__11daNpc_Bou_cFi, - (void*)getBackboneJointNo__11daNpc_Bou_cFv, - (void*)getNeckJointNo__11daNpc_Bou_cFv, - (void*)getHeadJointNo__11daNpc_Bou_cFv, - (void*)getFootLJointNo__8daNpcT_cFv, - (void*)getFootRJointNo__8daNpcT_cFv, - (void*)getEyeballLMaterialNo__8daNpcT_cFv, - (void*)getEyeballRMaterialNo__8daNpcT_cFv, - (void*)getEyeballMaterialNo__11daNpc_Bou_cFv, - (void*)ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel, - (void*)afterJntAnm__11daNpc_Bou_cFi, - (void*)setParam__11daNpc_Bou_cFv, - (void*)checkChangeEvt__11daNpc_Bou_cFv, - (void*)evtTalk__11daNpc_Bou_cFv, - (void*)evtEndProc__11daNpc_Bou_cFv, - (void*)evtCutProc__11daNpc_Bou_cFv, - (void*)setAfterTalkMotion__11daNpc_Bou_cFv, - (void*)evtProc__8daNpcT_cFv, - (void*)action__11daNpc_Bou_cFv, - (void*)beforeMove__11daNpc_Bou_cFv, - (void*)afterMoved__8daNpcT_cFv, - (void*)setAttnPos__11daNpc_Bou_cFv, - (void*)setFootPos__8daNpcT_cFv, - (void*)setCollision__11daNpc_Bou_cFv, - (void*)setFootPrtcl__8daNpcT_cFP4cXyzff, - (void*)checkCullDraw__8daNpcT_cFv, - (void*)twilight__8daNpcT_cFv, - (void*)chkXYItems__8daNpcT_cFv, - (void*)evtOrder__8daNpcT_cFv, - (void*)decTmr__8daNpcT_cFv, - (void*)clrParam__8daNpcT_cFv, - (void*)drawDbgInfo__11daNpc_Bou_cFv, - (void*)drawOtherMdl__8daNpcT_cFv, - (void*)drawGhost__8daNpcT_cFv, - (void*)afterSetFaceMotionAnm__8daNpcT_cFiifi, - (void*)afterSetMotionAnm__8daNpcT_cFiifi, - (void*)getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c, - (void*)getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c, - (void*)changeAnm__11daNpc_Bou_cFPiPi, - (void*)changeBck__8daNpcT_cFPiPi, - (void*)changeBtp__8daNpcT_cFPiPi, - (void*)changeBtk__8daNpcT_cFPiPi, - (void*)setMotionAnm__8daNpcT_cFifi, +daNpc_Bou_c::cutFunc daNpc_Bou_c::mCutList[9] = { + NULL, + &daNpc_Bou_c::cutWildGoat, + &daNpc_Bou_c::cutWildGoatSuccess, + &daNpc_Bou_c::cutWildGoatFailure, + &daNpc_Bou_c::cutSpeakTo, + &daNpc_Bou_c::cutConversationWithBou, + &daNpc_Bou_c::cutConfidentialConversation, + &daNpc_Bou_c::cutFindWolf, + &daNpc_Bou_c::cutMeetingAgain }; /* 8096CF8C-8096D0D8 0000EC 014C+00 1/0 0/0 0/0 .text __dt__11daNpc_Bou_cFv */ daNpc_Bou_c::~daNpc_Bou_c() { - // NONMATCHING + if (mpMorf[0] != 0) { + mpMorf[0]->stopZelAnime(); + } + deleteRes(l_loadResPtrnList[mType], (char const**)l_resNameList); } /* ############################################################################################## */ /* 80972860-809728FC 000000 009C+00 13/13 0/0 1/1 .rodata m__17daNpc_Bou_Param_c */ daNpc_Bou_Param_c::Data const daNpc_Bou_Param_c::m= { - 255.0f, -3.0f, 1.0f, 600.0f, 255.0f, 200.0f, 35.0f, 40.0f, + 210.0f, -3.0f, 1.0f, 600.0f, 255.0f, 200.0f, 35.0f, 40.0f, 0.0f, 0.0f, 10.0f, -10.0f, 30.0f, -10.0f, 45.0f, -45.0f, 0.6f, 12.0f, 3, 6, 5, 6, 110.0f, 500.0f, 300.0f, -300.0f, 60, 8, 0.0f, 0.0f, 4.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 16.0f, 1000.0f, 500.0f, -500.0f, }; -COMPILER_STRIP_GATE(0x80972860, &daNpc_Bou_Param_c::m); - -/* 809728FC-80972914 00009C 0018+00 0/1 0/0 0/0 .rodata heapSize$4096 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const heapSize[24] = { - 0x00, 0x00, 0x3D, 0x50, 0x00, 0x00, 0x3D, 0x50, 0x00, 0x00, 0x3D, 0x50, - 0x00, 0x00, 0x3D, 0x50, 0x00, 0x00, 0x3D, 0x50, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x809728FC, &heapSize); -#pragma pop - -/* 80972914-80972918 0000B4 0004+00 0/1 0/0 0/0 .rodata @4162 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4162 = -200.0f; -COMPILER_STRIP_GATE(0x80972914, &lit_4162); -#pragma pop - -/* 80972918-8097291C 0000B8 0004+00 0/1 0/0 0/0 .rodata @4163 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4163 = -100.0f; -COMPILER_STRIP_GATE(0x80972918, &lit_4163); -#pragma pop - -/* 8097291C-80972920 0000BC 0004+00 0/1 0/0 0/0 .rodata @4164 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4164 = 200.0f; -COMPILER_STRIP_GATE(0x8097291C, &lit_4164); -#pragma pop - -/* 80972920-80972924 0000C0 0004+00 0/2 0/0 0/0 .rodata @4165 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4165 = 300.0f; -COMPILER_STRIP_GATE(0x80972920, &lit_4165); -#pragma pop - -/* 80972924-80972928 0000C4 0004+00 0/1 0/0 0/0 .rodata @4166 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4166 = -1000000000.0f; -COMPILER_STRIP_GATE(0x80972924, &lit_4166); -#pragma pop /* 8096D0D8-8096D38C 000238 02B4+00 1/1 0/0 0/0 .text create__11daNpc_Bou_cFv */ -void daNpc_Bou_c::create() { - // NONMATCHING +int daNpc_Bou_c::create() { + static int const heapSize[6] = {15696, 15696, 15696, 15696, 15696, 0}; + fopAcM_SetupActor2(this, daNpc_Bou_c, l_faceMotionAnmData, l_motionAnmData, + l_faceMotionSequenceData, 4, l_motionSequenceData, 4, + l_evtList, l_resNameList + ); + mType = getType(); + mFlowNodeNo = getFlowNodeNo(); + mTwilight = 0; + int rv = loadRes(l_loadResPtrnList[mType], (const char**)l_resNameList); + if (rv == cPhs_COMPLEATE_e) { + if (isDelete()) { + return cPhs_ERROR_e; + } + + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, heapSize[mType])) { + return cPhs_ERROR_e; + } + + J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); + fopAcM_SetMtx(this, mpMorf[0]->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -200.0f, -100.0f, -200.0f, 200.0f, 300.0f, 200.0f); + mSound.init(¤t.pos, &eyePos, 3, 1); + reset(); + 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_Bou_Param_c::m.field_0x10, 0, this); + mCyl1.Set(mCcDCyl); + mCyl1.SetStts(&mCcStts); + mCyl1.SetTgHitCallback(tgHitCallBack); + mAcch.CrrPos(dComIfG_Bgsp()); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); + if (mGroundH != -1000000000.0f) { + setEnvTevColor(); + setRoomNo(); + } + + mCreating = 1; + Execute(); + mCreating = 0; + } + + return rv; } -/* ############################################################################################## */ -/* 80972928-8097292C 0000C8 0004+00 7/18 0/0 0/0 .rodata @4328 */ -SECTION_RODATA static u8 const lit_4328[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80972928, &lit_4328); - -/* 8097292C-80972930 0000CC 0004+00 0/2 0/0 0/0 .rodata @4329 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4329 = 65536.0f; -COMPILER_STRIP_GATE(0x8097292C, &lit_4329); -#pragma pop - -/* 80972930-80972934 0000D0 0004+00 0/3 0/0 0/0 .rodata @4330 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4330 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x80972930, &lit_4330); -#pragma pop - -/* 80972934-80972938 0000D4 0004+00 2/4 0/0 0/0 .rodata @4472 */ -SECTION_RODATA static f32 const lit_4472 = 1.0f; -COMPILER_STRIP_GATE(0x80972934, &lit_4472); +static f32 dummy(u8 i_dummy) { + if (i_dummy == 0) { + return 0.0f; + } else if (i_dummy == 1) { + return 65536.0f; + } else { + return 0.2f; + } +} /* 8096D38C-8096D5FC 0004EC 0270+00 1/1 0/0 0/0 .text CreateHeap__11daNpc_Bou_cFv */ -void daNpc_Bou_c::CreateHeap() { - // NONMATCHING -} +int daNpc_Bou_c::CreateHeap() { + J3DModelData* modelData = static_cast(dComIfG_getObjectRes( + l_resNameList[l_bmdData[0][1]], l_bmdData[0][0])); + if (modelData == NULL) { + return 0; + } -/* 8096D5FC-8096D638 00075C 003C+00 1/1 0/0 0/0 .text __dt__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::~J3DTevKColorAnm() { -extern "C" void __dt__15J3DTevKColorAnmFv() { - // NONMATCHING -} + mpMorf[0] = new mDoExt_McaMorfSO(modelData, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, + 0x80000, 0x11020284); + if (mpMorf[0] == NULL || mpMorf[0]->getModel() == NULL) { + return 0; + } -/* 8096D638-8096D650 000798 0018+00 1/1 0/0 0/0 .text __ct__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::J3DTevKColorAnm() { -extern "C" void __ct__15J3DTevKColorAnmFv() { - // NONMATCHING -} + J3DModel* model = mpMorf[0]->getModel(); + for (u16 i = 0; i < modelData->getJointNum(); i++) { + modelData->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + } -/* 8096D650-8096D68C 0007B0 003C+00 1/1 0/0 0/0 .text __dt__14J3DTevColorAnmFv */ -// J3DTevColorAnm::~J3DTevColorAnm() { -extern "C" void __dt__14J3DTevColorAnmFv() { - // NONMATCHING -} + model->setUserArea((u32)this); + mpMatAnm[0] = new daNpcT_MatAnm_c(); + if (mpMatAnm[0] == NULL) { + return 0; + } -/* 8096D68C-8096D6A4 0007EC 0018+00 1/1 0/0 0/0 .text __ct__14J3DTevColorAnmFv */ -// J3DTevColorAnm::J3DTevColorAnm() { -extern "C" void __ct__14J3DTevColorAnmFv() { - // NONMATCHING -} + if (setFaceMotionAnm(1, false) && setMotionAnm(0, 0.0f, 0)) { + return 1; + } -/* 8096D6A4-8096D6EC 000804 0048+00 1/1 0/0 0/0 .text __dt__11J3DTexNoAnmFv */ -// J3DTexNoAnm::~J3DTexNoAnm() { -extern "C" void __dt__11J3DTexNoAnmFv() { - // NONMATCHING -} - -/* 8096D6EC-8096D710 00084C 0024+00 1/1 0/0 0/0 .text __ct__11J3DTexNoAnmFv */ -// J3DTexNoAnm::J3DTexNoAnm() { -extern "C" void __ct__11J3DTexNoAnmFv() { - // NONMATCHING -} - -/* 8096D710-8096D74C 000870 003C+00 1/1 0/0 0/0 .text __dt__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::~J3DTexMtxAnm() { -extern "C" void __dt__12J3DTexMtxAnmFv() { - // NONMATCHING -} - -/* 8096D74C-8096D764 0008AC 0018+00 1/1 0/0 0/0 .text __ct__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::J3DTexMtxAnm() { -extern "C" void __ct__12J3DTexMtxAnmFv() { - // NONMATCHING -} - -/* 8096D764-8096D7A0 0008C4 003C+00 1/1 0/0 0/0 .text __dt__14J3DMatColorAnmFv */ -// J3DMatColorAnm::~J3DMatColorAnm() { -extern "C" void __dt__14J3DMatColorAnmFv() { - // NONMATCHING -} - -/* 8096D7A0-8096D7B8 000900 0018+00 1/1 0/0 0/0 .text __ct__14J3DMatColorAnmFv */ -// J3DMatColorAnm::J3DMatColorAnm() { -extern "C" void __ct__14J3DMatColorAnmFv() { - // NONMATCHING + return 0; } /* 8096D7B8-8096D7EC 000918 0034+00 1/1 0/0 0/0 .text Delete__11daNpc_Bou_cFv */ -void daNpc_Bou_c::Delete() { - // NONMATCHING +int daNpc_Bou_c::Delete() { + fopAcM_GetID(this); + this->~daNpc_Bou_c(); + return 1; } /* 8096D7EC-8096D80C 00094C 0020+00 2/2 0/0 0/0 .text Execute__11daNpc_Bou_cFv */ -void daNpc_Bou_c::Execute() { - // NONMATCHING +int daNpc_Bou_c::Execute() { + return daNpcT_c::execute(); } -/* ############################################################################################## */ -/* 80972938-8097293C 0000D8 0004+00 1/1 0/0 0/0 .rodata @4521 */ -SECTION_RODATA static f32 const lit_4521 = 100.0f; -COMPILER_STRIP_GATE(0x80972938, &lit_4521); - /* 8096D80C-8096D8A0 00096C 0094+00 1/1 0/0 0/0 .text Draw__11daNpc_Bou_cFv */ -void daNpc_Bou_c::Draw() { - // NONMATCHING +int daNpc_Bou_c::Draw() { + if (mpMatAnm[0] != NULL) { + J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); + modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); + } + return daNpcT_c::draw(0, 0, field_0xde8, NULL, 100.0f, 0, 0, 0); } /* 8096D8A0-8096D8C0 000A00 0020+00 1/1 0/0 0/0 .text * createHeapCallBack__11daNpc_Bou_cFP10fopAc_ac_c */ -void daNpc_Bou_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING +int daNpc_Bou_c::createHeapCallBack(fopAc_ac_c* i_this) { + return static_cast(i_this)->CreateHeap(); } /* 8096D8C0-8096D918 000A20 0058+00 1/1 0/0 0/0 .text ctrlJointCallBack__11daNpc_Bou_cFP8J3DJointi */ -void daNpc_Bou_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING +int daNpc_Bou_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { + if (param_1 == 0) { + J3DModel* model = j3dSys.getModel(); + daNpc_Bou_c* i_this = reinterpret_cast(model->getUserArea()); + if (i_this != 0) { + i_this->ctrlJoint(param_0, model); + } + } + + return 1; } /* 8096D918-8096D9B4 000A78 009C+00 1/1 0/0 0/0 .text srchCow__11daNpc_Bou_cFPvPv */ -void daNpc_Bou_c::srchCow(void* param_0, void* param_1) { - // NONMATCHING +void* daNpc_Bou_c::srchCow(void* arg0, void* arg1) { + if (mFindCount < 50 && arg0 != NULL && arg0 != arg1) { + if (fopAcM_IsExecuting(fopAcM_GetID(arg0)) && fopAcM_GetName(arg0) == PROC_COW) { + mFindActorPtrs[mFindCount] = (fopAc_ac_c*)arg0; + mFindCount++; + } + } + return NULL; } -/* ############################################################################################## */ -/* 8097293C-80972940 0000DC 0004+00 1/1 0/0 0/0 .rodata @4568 */ -SECTION_RODATA static f32 const lit_4568 = 1000000000.0f; -COMPILER_STRIP_GATE(0x8097293C, &lit_4568); - /* 8096D9B4-8096DA78 000B14 00C4+00 1/1 0/0 0/0 .text getCowP__11daNpc_Bou_cFv */ -void daNpc_Bou_c::getCowP() { - // NONMATCHING +fopAc_ac_c* daNpc_Bou_c::getCowP() { + fopAc_ac_c* pActor = NULL; + f32 minDist = 1e9f; + mFindCount = 0; + fopAcM_Search(srchCow, this); + for (int i = 0; i < mFindCount; i++) { + if (fopAcM_searchActorDistance(this, mFindActorPtrs[i]) < minDist) + { + minDist = fopAcM_searchActorDistance(this, mFindActorPtrs[i]); + pActor = mFindActorPtrs[i]; + } + } + + return pActor; } /* 8096DA78-8096DADC 000BD8 0064+00 1/1 0/0 2/2 .text getType__11daNpc_Bou_cFv */ @@ -1101,53 +358,242 @@ u8 daNpc_Bou_c::getType() { } /* 8096DADC-8096DBBC 000C3C 00E0+00 1/1 0/0 0/0 .text isDelete__11daNpc_Bou_cFv */ -void daNpc_Bou_c::isDelete() { - // NONMATCHING +int daNpc_Bou_c::isDelete() { + switch (mType) { + case TYPE_0: { + return FALSE; + } + + case TYPE_1: { + bool rv = true; + if (!daNpcT_chkEvtBit(0xd3) && !dComIfGs_isCollectShield(0)) { + rv = false; + } + + return rv; + } + + case TYPE_2: { + bool rv = false; + if (!daNpcT_chkEvtBit(0xa4) || daNpcT_chkEvtBit(0x3b)) { + rv = true; + } + + return rv; + } + + case TYPE_3: { + return FALSE; + } + + case TYPE_4: { + return FALSE; + } + + default: { + return FALSE; + } + } } /* 8096DBBC-8096DD44 000D1C 0188+00 1/1 0/0 0/0 .text reset__11daNpc_Bou_cFv */ void daNpc_Bou_c::reset() { - // NONMATCHING + csXyz acStack_20; + int iVar1 = (u8*)&field_0xff8 - (u8*)&field_0xfc4; + if (mpMatAnm[0] != NULL) { + mpMatAnm[0]->initialize(); + } + + initialize(); + for (int i = 0; i < 3; i++) { + mActorMngr[i].initialize(); + } + + memset(&field_0xfc4, 0, iVar1); + acStack_20.setall(0); + acStack_20.y = home.angle.y; + daNpcT_offTmpBit(0x1C); + daNpcT_offTmpBit(0x59); + setAngle(acStack_20); } /* 8096DD44-8096DDC8 000EA4 0084+00 1/0 0/0 0/0 .text afterJntAnm__11daNpc_Bou_cFi */ -void daNpc_Bou_c::afterJntAnm(int param_0) { - // NONMATCHING +void daNpc_Bou_c::afterJntAnm(int param_1) { + if (param_1 == 1) { + mDoMtx_stack_c::YrotM(mStagger.getAngleZ(1)); + mDoMtx_stack_c::ZrotM(-mStagger.getAngleX(1)); + } else if (param_1 == 4) { + mDoMtx_stack_c::YrotM(mStagger.getAngleZ(0)); + mDoMtx_stack_c::ZrotM(mStagger.getAngleX(0)); + } } /* 8096DDC8-8096DF9C 000F28 01D4+00 1/0 0/0 0/0 .text setParam__11daNpc_Bou_cFv */ void daNpc_Bou_c::setParam() { - // NONMATCHING + selectAction(); + srchActors(); + u32 uVar7 = 10; + s16 sVar10 = daNpc_Bou_Param_c::m.field_0x48; + s16 sVar9 = daNpc_Bou_Param_c::m.field_0x4a; + s16 sVar8 = daNpc_Bou_Param_c::m.field_0x4c; + s16 sVar7 = daNpc_Bou_Param_c::m.field_0x4e; + if (mType == TYPE_1) { + field_0xfe0 = 3; + field_0xfe4 = 6; + sVar10 = 19; + sVar9 = 6; + sVar8 = 19; + sVar7 = 6; + } + + if (daPy_getPlayerActorClass()->checkHorseRide()) { + if (sVar10 < 7) { + sVar10 = 7; + } + + if (sVar8 < 9) { + sVar8 = 9; + } + } + + attention_info.distances[0] = daNpcT_getDistTableIdx(sVar8, sVar7); + attention_info.distances[1] = attention_info.distances[0]; + attention_info.distances[3] = daNpcT_getDistTableIdx(sVar10, sVar9); + if (mType == TYPE_1) { + uVar7 |= (0x80 << 16); + field_0xfdc = getActorDistance(daPy_getPlayerActorClass(), + daNpcT_getDistTableIdx(field_0xfe0, field_0xfe4), + attention_info.distances[1]); + if (field_0xfdc < 4) { + g_meter2_info.mBlinkButton |= 1; + } + + field_0xe2d = 1; + } + + attention_info.flags = uVar7; + scale.set(daNpc_Bou_Param_c::m.field_0x08, daNpc_Bou_Param_c::m.field_0x08, + daNpc_Bou_Param_c::m.field_0x08); + mCcStts.SetWeight(daNpc_Bou_Param_c::m.field_0x10); + mCylH = daNpc_Bou_Param_c::m.field_0x14; + mWallR = daNpc_Bou_Param_c::m.field_0x1c; + mAttnFovY = daNpc_Bou_Param_c::m.field_0x50; + mAcchCir.SetWallR(mWallR); + mAcchCir.SetWallH(daNpc_Bou_Param_c::m.field_0x18); + field_0xde8 = daNpc_Bou_Param_c::m.field_0x0c; + field_0xa80 = daNpc_Bou_Param_c::m.field_0x6c; + mMorfFrames = daNpc_Bou_Param_c::m.field_0x44; + gravity = daNpc_Bou_Param_c::m.field_0x04; } /* 8096DF9C-8096E0EC 0010FC 0150+00 1/0 0/0 0/0 .text checkChangeEvt__11daNpc_Bou_cFv */ BOOL daNpc_Bou_c::checkChangeEvt() { - // NONMATCHING -} + if (!chkAction(&daNpc_Bou_c::talk)) { + mPreItemNo = 0; + if (dComIfGp_event_chkTalkXY()) { + if (dComIfGp_evmng_ChkPresentEnd()) { + mEvtNo = 1; + evtChange(); + } -/* ############################################################################################## */ -/* 80972940-80972948 0000E0 0004+04 5/12 0/0 0/0 .rodata @4758 */ -SECTION_RODATA static f32 const lit_4758[1 + 1 /* padding */] = { - -1.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80972940, &lit_4758); + return true; + } + + switch (mType) { + case TYPE_0: { + if (!daNpcT_chkEvtBit(0x24A)) { + mEvtNo = 2; + evtChange(); + return true; + } + + break; + } + + case TYPE_1: { + if (field_0xfdc < 4) { + mEvtNo = 6; + evtChange(); + return true; + } + + break; + } + + case TYPE_4: { + if (!daNpcT_chkEvtBit(0xB3)) { + mEvtNo = 2; + evtChange(); + return true; + } + + break; + } + } + } + + return false; +} /* 8096E0EC-8096E18C 00124C 00A0+00 1/0 0/0 0/0 .text setAfterTalkMotion__11daNpc_Bou_cFv */ void daNpc_Bou_c::setAfterTalkMotion() { - // NONMATCHING + int iVar2 = 10; + switch(mFaceMotionSeqMngr.getNo()) { + case 1: + iVar2 = 6; + break; + case 3: + iVar2 = 8; + break; + case 4: + iVar2 = 9; + break; + } + mFaceMotionSeqMngr.setNo(iVar2, -1.0f, 0, 0); } /* 8096E18C-8096E27C 0012EC 00F0+00 1/1 0/0 0/0 .text srchActors__11daNpc_Bou_cFv */ void daNpc_Bou_c::srchActors() { - // NONMATCHING + switch (mType) { + case TYPE_0: { + if (!mActorMngr[0].getActorP()) { + mActorMngr[0].entry(getCowP()); + } + + break; + } + + case TYPE_1: { + if (!mActorMngr[2].getActorP()) { + mActorMngr[2].entry(getNearestActorP(0x15A)); + } + + if (!mActorMngr[1].getActorP()) { + mActorMngr[1].entry(getNearestActorP(0x258)); + } + break; + } + + case TYPE_4: { + if (!mActorMngr[0].getActorP()) { + mActorMngr[0].entry(getCowP()); + } + + break; + } + } } /* 8096E27C-8096E31C 0013DC 00A0+00 1/0 0/0 0/0 .text evtTalk__11daNpc_Bou_cFv */ BOOL daNpc_Bou_c::evtTalk() { - // NONMATCHING + if (chkAction(&daNpc_Bou_c::talk)) { + (this->*field_0xfd0)(NULL); + } else { + setAction(&daNpc_Bou_c::talk); + } + + return 1; } /* 8096E31C-8096E324 00147C 0008+00 1/0 0/0 0/0 .text evtEndProc__11daNpc_Bou_cFv */ @@ -1157,87 +603,139 @@ BOOL daNpc_Bou_c::evtEndProc() { /* 8096E324-8096E3EC 001484 00C8+00 1/0 0/0 0/0 .text evtCutProc__11daNpc_Bou_cFv */ BOOL daNpc_Bou_c::evtCutProc() { - // NONMATCHING + int staffId = dComIfGp_getEventManager().getMyStaffId("Bou", this, -1); + if (staffId != -1) { + mStaffId = staffId; + int actIdx = dComIfGp_getEventManager().getMyActIdx(mStaffId, (char**)mCutNameList, 9, 0, 0); + if ((this->*(mCutList[actIdx]))(mStaffId) != 0) { + dComIfGp_getEventManager().cutEnd(mStaffId); + } + + return true; + } + + return false; } -/* ############################################################################################## */ -/* 80972948-80972950 0000E8 0008+00 0/2 0/0 0/0 .rodata @4940 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4940[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80972948, &lit_4940); -#pragma pop - -/* 80972950-80972958 0000F0 0008+00 0/2 0/0 0/0 .rodata @4941 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4941[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80972950, &lit_4941); -#pragma pop - -/* 80972958-80972960 0000F8 0008+00 0/2 0/0 0/0 .rodata @4942 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4942[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80972958, &lit_4942); -#pragma pop - /* 8096E3EC-8096E7E0 00154C 03F4+00 1/0 0/0 0/0 .text action__11daNpc_Bou_cFv */ void daNpc_Bou_c::action() { - // NONMATCHING + fopAc_ac_c* hit_actor = hitChk(&mCyl1, 0xffffffff); + if (hit_actor != NULL && mCyl1.GetTgHitObj()->ChkAtType(AT_TYPE_THROW_OBJ)) { + if (mType == TYPE_1) { + daNpc_Jagar_c* jagar = (daNpc_Jagar_c*) mActorMngr[1].getActorP(); + if (jagar && jagar->getType() == TYPE_1 && jagar->chkCondition(1)) { + jagar->setSurpriseMotion(); + } + } + + mStagger.setParam(this, hit_actor, mCurAngle.y); + setDamage(0, 10, 0); + mDamageTimerStart = 0; + mJntAnm.lookNone(1); + } + + if (mStagger.checkRebirth()) { + mStagger.initialize(); + mMode = 1; + } + + if (field_0xfc4) { + if (field_0xfd0 == field_0xfc4) { + (this->*field_0xfd0)(NULL); + } else { + setAction(field_0xfc4); + } + } + + hit_actor = field_0xba0.getActorP(); + if (hit_actor != NULL) { + abs( (s16)(fopAcM_searchPlayerAngleY(this) - mCurAngle.y) ); + switch (((daTag_Push_c*) hit_actor)->getId()) { + case 7: { + mEvtNo = 8; + if (daNpc_Bou_Param_c::m.field_0x54 < current.pos.absXZ(daPy_getPlayerActorClass()->current.pos)) { + if (daPy_getPlayerActorClass()->checkHorseRide()) { + mEvtNo = 9; + } + } else { + mEvtNo = 10; + } + } + } + } } /* 8096E7E0-8096E8A4 001940 00C4+00 1/0 0/0 0/0 .text beforeMove__11daNpc_Bou_cFv */ void daNpc_Bou_c::beforeMove() { - // NONMATCHING + fopAcM_OffStatus(this, 0x8000000); + if (checkHide()) { + fopAcM_OnStatus(this, 0x8000000); + } + + if (checkHide() || mNoDraw != 0) { + attention_info.flags = 0; + } } -/* ############################################################################################## */ -/* 80972960-80972964 000100 0004+00 0/1 0/0 0/0 .rodata @5018 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5018 = -30.0f; -COMPILER_STRIP_GATE(0x80972960, &lit_5018); -#pragma pop - -/* 80972964-80972968 000104 0004+00 0/1 0/0 0/0 .rodata @5019 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5019 = 10.0f; -COMPILER_STRIP_GATE(0x80972964, &lit_5019); -#pragma pop - -/* 80972968-80972970 000108 0004+04 0/1 0/0 0/0 .rodata @5020 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5020[1 + 1 /* padding */] = { - 0x38C90FDB, - /* padding */ - 0x00000000, -}; -COMPILER_STRIP_GATE(0x80972968, &lit_5020); -#pragma pop - -/* 80972970-80972978 000110 0008+00 1/3 0/0 0/0 .rodata @5022 */ -SECTION_RODATA static u8 const lit_5022[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80972970, &lit_5022); - /* 8096E8A4-8096EB14 001A04 0270+00 1/0 0/0 0/0 .text setAttnPos__11daNpc_Bou_cFv */ void daNpc_Bou_c::setAttnPos() { - // NONMATCHING + cXyz cStack_3c(-30.0f, 10.0f, 0.0f); + mStagger.calc(0); + f32 dVar8 = cM_s2rad(mCurAngle.y - field_0xd7e.y); + J3DModel* model = mpMorf[0]->getModel(); + mJntAnm.setParam(this, model, &cStack_3c, getBackboneJointNo(), getNeckJointNo(), + getHeadJointNo(), daNpc_Bou_Param_c::m.field_0x24, daNpc_Bou_Param_c::m.field_0x20, + daNpc_Bou_Param_c::m.field_0x2c, daNpc_Bou_Param_c::m.field_0x28, + daNpc_Bou_Param_c::m.field_0x34, daNpc_Bou_Param_c::m.field_0x30, + daNpc_Bou_Param_c::m.field_0x3c, daNpc_Bou_Param_c::m.field_0x38, + daNpc_Bou_Param_c::m.field_0x40, dVar8, NULL); + mJntAnm.calcJntRad(0.2f, 1.0f, dVar8); + setMtx(); + mDoMtx_stack_c::copy(mpMorf[0]->getModel()->getAnmMtx(getHeadJointNo())); + mDoMtx_stack_c::multVec(&cStack_3c, &eyePos); + mJntAnm.setEyeAngleX(eyePos, 1.0f, 0); + mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, 1, 1.0f, 0); + cStack_3c.set(0.0f, 0.0f, 10.0f); + cStack_3c.y = daNpc_Bou_Param_c::m.field_0x00; + mDoMtx_stack_c::YrotS(mCurAngle.y); + mDoMtx_stack_c::multVec(&cStack_3c, &cStack_3c); + attention_info.position = current.pos + cStack_3c; } /* 8096EB14-8096EC6C 001C74 0158+00 1/0 0/0 0/0 .text setCollision__11daNpc_Bou_cFv */ void daNpc_Bou_c::setCollision() { - // NONMATCHING + cXyz cStack_48; + if (mHide == 0) { + u32 tgType = -0x27040201; + u32 tgSPrm = 0x1f; + if (mTwilight) { + tgType = 0; + tgSPrm = 0; + } else { + if (mStagger.checkStagger()) { + tgType = 0; + tgSPrm = 0; + } + } + + mCyl1.SetCoSPrm(0x79); + mCyl1.SetTgType(tgType); + mCyl1.SetTgSPrm(tgSPrm); + mCyl1.OnTgNoHitMark(); + cStack_48.set(0.0f, 0.0f, 0.0f); + f32 cylHeight = mCylH; + f32 cylRadius = mWallR; + mDoMtx_stack_c::YrotS(mCurAngle.y); + mDoMtx_stack_c::multVec(&cStack_48, &cStack_48); + cStack_48 += current.pos; + mCyl1.SetH(cylHeight); + mCyl1.SetR(cylRadius); + mCyl1.SetC(cStack_48); + dComIfG_Ccsp()->Set(&mCyl1); + } + + mCyl1.ClrCoHit(); + mCyl1.ClrTgHit(); } /* 8096EC6C-8096EC74 001DCC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__11daNpc_Bou_cFv */ @@ -1247,484 +745,995 @@ int daNpc_Bou_c::drawDbgInfo() { /* 8096EC74-8096ECC0 001DD4 004C+00 1/0 0/0 0/0 .text changeAnm__11daNpc_Bou_cFPiPi */ void daNpc_Bou_c::changeAnm(int* param_0, int* param_1) { - // NONMATCHING + if (mType == 3) { + switch (*param_0) { + case 13: { + *param_0 = 3; + *param_1 = 5; + break; + } + + case 20: { + *param_0 = 4; + *param_1 = 5; + break; + } + } + } } /* 8096ECC0-8096ED3C 001E20 007C+00 1/1 0/0 0/0 .text selectAction__11daNpc_Bou_cFv */ -void daNpc_Bou_c::selectAction() { - // NONMATCHING +int daNpc_Bou_c::selectAction() { + field_0xfc4 = NULL; + switch (mType) { + case 1: { + field_0xfc4 = &daNpc_Bou_c::talkwithJagar; + break; + } + + default: { + field_0xfc4 = &daNpc_Bou_c::wait; + break; + } + } + + return 1; } /* 8096ED3C-8096ED68 001E9C 002C+00 2/2 0/0 0/0 .text * chkAction__11daNpc_Bou_cFM11daNpc_Bou_cFPCvPvPv_i */ -void daNpc_Bou_c::chkAction(int (daNpc_Bou_c::*param_0)(void*)) { - // NONMATCHING +int daNpc_Bou_c::chkAction(actionFunc param_0) { + return field_0xfd0 == param_0; } /* 8096ED68-8096EE10 001EC8 00A8+00 2/2 0/0 0/0 .text * setAction__11daNpc_Bou_cFM11daNpc_Bou_cFPCvPvPv_i */ -void daNpc_Bou_c::setAction(int (daNpc_Bou_c::*param_0)(void*)) { - // NONMATCHING +int daNpc_Bou_c::setAction(actionFunc param_0) { + mMode = 3; + if (field_0xfd0 != NULL) { + (this->*field_0xfd0)(NULL); + } + + mMode = 0; + field_0xfd0 = param_0; + if (field_0xfd0 != NULL) { + (this->*field_0xfd0)(NULL); + } + + return 1; } -/* ############################################################################################## */ -/* 80972978-80972984 000118 000C+00 1/1 0/0 0/0 .rodata @5178 */ -SECTION_RODATA static u8 const lit_5178[12] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80972978, &lit_5178); - -/* 8097299C-8097299C 00013C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80972A76 = "prm"; -SECTION_DEAD static char const* const stringBase_80972A7A = "msgNo"; -SECTION_DEAD static char const* const stringBase_80972A80 = "msgNo2"; -#pragma pop - /* 8096EE10-8096F2E4 001F70 04D4+00 2/0 0/0 0/0 .text cutWildGoat__11daNpc_Bou_cFi */ -void daNpc_Bou_c::cutWildGoat(int param_0) { - // NONMATCHING +int daNpc_Bou_c::cutWildGoat(int arg) { + fopAc_ac_c* actor_p = NULL; + cXyz my_vec_0; + csXyz my_svec; + int ret_val = 0; + int* pVal = NULL; + int prm_val = -1; + int msgNo_val = 0; + int msgNo2_val = 0; + pVal = dComIfGp_evmng_getMyIntegerP(arg, "prm"); + if (pVal) { + prm_val = *pVal; + } + + pVal = dComIfGp_evmng_getMyIntegerP(arg, "msgNo"); + if (pVal) { + msgNo_val = *pVal; + } + + pVal = dComIfGp_evmng_getMyIntegerP(arg, "msgNo2"); + if (pVal) { + msgNo2_val = *pVal; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg)) { + switch (prm_val) { + case 0: { + actor_p = mActorMngr[0].getActorP(); + JUT_ASSERT(0x803, 0 != actor_p); + ((daCow_c *)actor_p)->setCrazyReady(); + daNpcT_offTmpBit(0x1C); + initTalk(mFlowNodeNo, NULL); + break; + } + + case 2: { + actor_p = mActorMngr[0].getActorP(); + JUT_ASSERT(0x811, 0 != actor_p); + dComIfGp_getEvent().setPt2(actor_p); + Z2GetAudioMgr()->subBgmStart(0x1000011); + break; + } + + case 5: { + actor_p = mActorMngr[0].getActorP(); + JUT_ASSERT(0x820, 0 != actor_p); + ((daCow_c *)actor_p)->setCrazyGo(); + break; + } + + case 6: { + if (daNpcT_getPlayerInfoFromPlayerList(0xD, fopAcM_GetRoomNo(this), &my_vec_0, &my_svec)) { + daPy_getPlayerActorClass()->setPlayerPosAndAngle(&my_vec_0, my_svec.y, 0); + } + + setPos(home.pos); + setAngle(home.angle.y); + break; + } + + case 7: { + daPy_getPlayerActorClass()->onGoatStopGame(); + break; + } + + case 3: + case 4: + case 8: + case 1: { + break; + } + } + } + + int int_vec[3] = {-1, -1, -1}; + switch (prm_val) { + case 0: { + mJntAnm.lookPlayer(0); + if (mPlayerAngle == mCurAngle.y) { + ret_val = 1; + } else { + step(mPlayerAngle, 10, 18, 15, 0); + } + + break; + } + + case 1: + case 2: + case 3: { + mJntAnm.lookPlayer(0); + if (prm_val == 2 || prm_val == 3) { + if (prm_val == 3) { + actor_p = mActorMngr[0].getActorP(); + JUT_ASSERT(0x853, 0 != actor_p); + mJntAnm.lookActor(actor_p, 0.0f, 0); + } + + field_0xe26 = 0; + } + + int_vec[0] = msgNo_val; + int_vec[1] = msgNo2_val; + if (talkProc(int_vec, 0, NULL, 0)) { + if (msgNo_val == 0 && msgNo2_val == 0) { + if (mFlow.checkEndFlow()) { + ret_val = 1; + } + } else { + ret_val = 1; + } + } + + if (prm_val == 3 && ret_val != 0) { + actor_p = mActorMngr[0].getActorP(); + JUT_ASSERT(0x86A, 0 != actor_p); + ((daCow_c *)actor_p)->setCrazyReadyDrawOn(); + } + + break; + } + + case 4: + case 5: + case 6: + case 7: + case 8: { + actor_p = mActorMngr[0].getActorP(); + JUT_ASSERT(0x875, 0 != actor_p); + mJntAnm.lookActor(actor_p, 0.0f, 0); + ret_val = 1; + } + } + + return ret_val; } /* 8096F2E4-8096F510 002444 022C+00 1/0 0/0 0/0 .text cutWildGoatSuccess__11daNpc_Bou_cFi */ -void daNpc_Bou_c::cutWildGoatSuccess(int param_0) { - // NONMATCHING +int daNpc_Bou_c::cutWildGoatSuccess(int arg) { + int ret_val = 0; + int prm_val = -1; + int* pVal = dComIfGp_evmng_getMyIntegerP(arg, "prm"); + if (pVal) { + prm_val = *pVal; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg)) { + switch (prm_val) { + case 0: { + mFaceMotionSeqMngr.setNo(10, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + initTalk(mFlowNodeNo, NULL); + field_0xff4 = 0; + Z2GetAudioMgr()->subBgmStop(); + daNpcT_onTmpBit(0x1C); + break; + } + + case 1: { + break; + } + } + } + + switch (prm_val) { + case 0: { + mJntAnm.lookPlayer(0); + if (mPlayerAngle == mCurAngle.y) { + ret_val = 1; + } else { + step(mPlayerAngle, 10, 18, 15, 0); + } + + break; + } + + case 1: { + mJntAnm.lookPlayer(0); + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + daNpcT_offTmpBit(0x1C); + ret_val = 1; + } + } + } + + return ret_val; } /* 8096F510-8096F758 002670 0248+00 1/0 0/0 0/0 .text cutWildGoatFailure__11daNpc_Bou_cFi */ -void daNpc_Bou_c::cutWildGoatFailure(int param_0) { - // NONMATCHING +int daNpc_Bou_c::cutWildGoatFailure(int arg) { + int ret_val = 0; + int prm_val = -1; + int* pVal = dComIfGp_evmng_getMyIntegerP(arg, "prm"); + if (pVal) { + prm_val = *pVal; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg)) { + switch (prm_val) { + case 0: { + Z2GetAudioMgr()->subBgmStop(); + daNpcT_onTmpBit(0x1C); + break; + } + + case 1: { + mFaceMotionSeqMngr.setNo(10, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + initTalk(mFlowNodeNo, NULL); + field_0xff4 = 0; + break; + } + + case 2: { + break; + } + } + } + + switch (prm_val) { + case 0: { + ret_val = 1; + break; + } + + case 1: { + mJntAnm.lookPlayer(0); + if (mPlayerAngle == mCurAngle.y) { + ret_val = 1; + } else { + step(mPlayerAngle, 10, 18, 15, 0); + } + + break; + } + + case 2: { + mJntAnm.lookPlayer(0); + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + daNpcT_offTmpBit(0x1C); + ret_val = 1; + } + } + } + + return ret_val; } /* 8096F758-8096F9A4 0028B8 024C+00 1/0 0/0 0/0 .text cutSpeakTo__11daNpc_Bou_cFi */ -void daNpc_Bou_c::cutSpeakTo(int param_0) { - // NONMATCHING +int daNpc_Bou_c::cutSpeakTo(int arg) { + int ret_val = 0; + int* pVal = NULL; + int prm_val = -1; + pVal = dComIfGp_evmng_getMyIntegerP(arg, "prm"); + if (pVal) { + prm_val = *pVal; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg)) { + switch (prm_val) { + case 0: { + mFaceMotionSeqMngr.setNo(10, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + initTalk(0x190, NULL); + break; + } + + case 1: + case 2: { + break; + } + } + } + + switch (prm_val) { + case 0: { + mJntAnm.lookPlayer(0); + if (mPlayerAngle == mCurAngle.y) { + ret_val = 1; + } else { + shape_angle.y = mPlayerAngle; + step(mPlayerAngle, 10, 18, 15, 0); + } + + break; + } + + case 1: { + mJntAnm.lookPlayer(0); + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + ret_val = 1; + } + + break; + } + + case 2: { + mJntAnm.lookNone(0); + ret_val = 1; + } + } + + return ret_val; } -/* ############################################################################################## */ -/* 80972984-80972988 000124 0004+00 0/4 0/0 0/0 .rodata @5515 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5515 = -40.0f; -COMPILER_STRIP_GATE(0x80972984, &lit_5515); -#pragma pop - /* 8096F9A4-8096FB78 002B04 01D4+00 1/0 0/0 0/0 .text cutConversationWithBou__11daNpc_Bou_cFi */ -void daNpc_Bou_c::cutConversationWithBou(int param_0) { - // NONMATCHING +int daNpc_Bou_c::cutConversationWithBou(int arg) { + fopAc_ac_c* actor = NULL; + int ret_val = 0; + int* pVal = NULL; + int prm_val = -1; + pVal = dComIfGp_evmng_getMyIntegerP(arg, "prm"); + if (pVal) { + prm_val = *pVal; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg)) { + switch (prm_val) { + case 0: { + mFaceMotionSeqMngr.setNo(10, -1.0f, 0, 0); + mMotionSeqMngr.setNo(1, -1.0f, 0, 0); + break; + } + } + } + + switch (prm_val) { + case 0: { + actor = mActorMngr[1].getActorP(); + if (actor != NULL) { + mJntAnm.lookActor(actor, -40.0f, 0); + } else { + mJntAnm.lookNone(0); + } + + ret_val = 1; + break; + } + } + + return ret_val; } /* 8096FB78-8096FE40 002CD8 02C8+00 1/0 0/0 0/0 .text cutConfidentialConversation__11daNpc_Bou_cFi */ -void daNpc_Bou_c::cutConfidentialConversation(int param_0) { - // NONMATCHING +int daNpc_Bou_c::cutConfidentialConversation(int arg) { + fopAc_ac_c* actor = NULL; + int ret_val = 0; + int* pVal = NULL; + int prm_val = -1; + pVal = dComIfGp_evmng_getMyIntegerP(arg, "prm"); + if (pVal) { + prm_val = *pVal; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg)) { + switch (prm_val) { + case 0: { + mFaceMotionSeqMngr.setNo(10, -1.0f, 0, 0); + mMotionSeqMngr.setNo(1, -1.0f, 0, 0); + break; + } + + case 1: + case 2: { + break; + } + } + } + + switch (prm_val) { + case 0: + case 2: { + actor = mActorMngr[1].getActorP(); + if (actor != NULL) { + mJntAnm.lookActor(actor, -40.0f, 0); + } else { + mJntAnm.lookNone(0); + } + + ret_val = 1; + break; + } + + case 1: { + actor = mActorMngr[2].getActorP(); + if (actor != NULL) { + mJntAnm.lookActor(actor, 0.0f, 0); + } else { + mJntAnm.lookNone(0); + } + + ret_val = 1; + break; + } + } + + return ret_val; } -/* ############################################################################################## */ -/* 80972988-8097298C 000128 0004+00 0/2 0/0 0/0 .rodata @5708 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5708 = 0.5f; -COMPILER_STRIP_GATE(0x80972988, &lit_5708); -#pragma pop - -/* 8097299C-8097299C 00013C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80972A87 = "timer"; -#pragma pop - /* 8096FE40-80970278 002FA0 0438+00 1/0 0/0 0/0 .text cutFindWolf__11daNpc_Bou_cFi */ -void daNpc_Bou_c::cutFindWolf(int param_0) { - // NONMATCHING +int daNpc_Bou_c::cutFindWolf(int arg) { + int ret_val = 0; + int* pVal = NULL; + int prm_val = -1; + int timer_val = 0; + pVal = dComIfGp_evmng_getMyIntegerP(arg, "prm"); + if (pVal) { + prm_val = *pVal; + } + + pVal = dComIfGp_evmng_getMyIntegerP(arg, "timer"); + if (pVal) { + timer_val = *pVal; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg)) { + switch (prm_val) { + case 0: { + mFaceMotionSeqMngr.setNo(1, -1.0f, 0, 0); + mMotionSeqMngr.setNo(3, -1.0f, 0, 0); + dComIfGp_getEvent().setPtT(this); + initTalk(0xD4, NULL); + break; + } + + case 2: { + mFaceMotionSeqMngr.setNo(10, -1.0f, 0, 0); + mMotionSeqMngr.setNo(20, -1.0f, 0, 0); + current.angle.y = mPlayerAngle + -0x8000; + mEventTimer = timer_val; + break; + } + + case 3: { + mFaceMotionSeqMngr.setNo(10, 0.0f, 0, 0); + mMotionSeqMngr.setNo(1, 0.0f, 0, 0); + setPos(home.pos); + setAngle(home.angle.y); + speedF = 0.0f; + speed.setall(0.0f); + mAcch.ClrWallNone(); + mHide = true; + break; + } + } + } + + switch (prm_val) { + case 0: { + mJntAnm.lookPlayer(0); + if (mPlayerAngle == mCurAngle.y) { + ret_val = 1; + } else { + step(mPlayerAngle, -1, -1, 15, 0); + } + + break; + } + + case 1: { + mJntAnm.lookPlayer(0); + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + ret_val = 1; + } + + break; + } + + case 2: { + mJntAnm.lookPlayer(0); + cLib_chaseS(&shape_angle.y, current.angle.y, 0x800); + mCurAngle.y = shape_angle.y; + field_0xd7e.y = mCurAngle.y; + cLib_chaseF(&speedF, daNpc_Bou_Param_c::m.field_0x8c, 0.5f); + mAcch.SetWallNone(); + if (!cLib_calcTimer(&mEventTimer)) { + ret_val = 1; + } + + break; + } + + case 3: { + mJntAnm.lookNone(0); + ret_val = 1; + break; + } + } + + return ret_val; } -/* ############################################################################################## */ -/* 8097298C-80972990 00012C 0004+00 0/1 0/0 0/0 .rodata @5897 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5897 = 250.0f; -COMPILER_STRIP_GATE(0x8097298C, &lit_5897); -#pragma pop - -/* 80972990-80972994 000130 0004+00 0/1 0/0 0/0 .rodata @5898 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5898 = -250.0f; -COMPILER_STRIP_GATE(0x80972990, &lit_5898); -#pragma pop - -/* 80972994-80972998 000134 0004+00 0/1 0/0 0/0 .rodata @5899 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5899 = 150.0f; -COMPILER_STRIP_GATE(0x80972994, &lit_5899); -#pragma pop - /* 80970278-809709EC 0033D8 0774+00 1/0 0/0 0/0 .text cutMeetingAgain__11daNpc_Bou_cFi */ -void daNpc_Bou_c::cutMeetingAgain(int param_0) { - // NONMATCHING +int daNpc_Bou_c::cutMeetingAgain(int arg) { + fopAc_ac_c* actor_p = field_0xba0.getActorP(); + cXyz work; + cXyz temp; + csXyz my_svec; + int ret_val = 0; + int* pVal = NULL; + int prm_val = -1; + int timer_val = 0; + pVal = dComIfGp_evmng_getMyIntegerP(arg, "prm"); + if (pVal) { + prm_val = *pVal; + } + + pVal = dComIfGp_evmng_getMyIntegerP(arg, "timer"); + if (pVal) { + timer_val = *pVal; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg)) { + switch (prm_val) { + case 0: { + mFaceMotionSeqMngr.setNo(10, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + mPlayerAngle = fopAcM_searchPlayerAngleY(this); + break; + } + + case 1: { + daNpcT_offTmpBit(0xB); + daNpcT_offTmpBit(0xC); + initTalk(((daTag_Push_c*)actor_p)->getFlowNodeNo(), NULL); + break; + } + + case 2: { + mFaceMotionSeqMngr.setNo(10, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + mEventTimer = timer_val; + break; + } + + case 3: { + if (daPy_getPlayerActorClass()->checkHorseRide()) { + setAngle(home.angle.y); + work.set(0.0f, 300.0f, 250.0f); + mDoMtx_stack_c::YrotS(mCurAngle.y); + mDoMtx_stack_c::multVec(&work, &work); + work += current.pos; + mGndChk.SetPos(&work); + work.y = dComIfG_Bgsp().GroundCross(&mGndChk); + JUT_ASSERT(0xab4, -(1000000000.0f) != work.y); + dComIfGp_evmng_setGoal(&work); + + my_svec.y = mCurAngle.y + 0x5800; + temp.set(0.0f, 300.0f, -250.0f); + mDoMtx_stack_c::YrotS(my_svec.y); + mDoMtx_stack_c::multVec(&temp, &temp); + temp += work; + mGndChk.SetPos(&temp); + work.y = dComIfG_Bgsp().GroundCross(&mGndChk); + JUT_ASSERT(0xabf, -(1000000000.0f) != work.y); + daPy_getPlayerActorClass()->setPlayerPosAndAngle(&temp, my_svec.y, 0); + } else { + my_svec.y = mPlayerAngle - home.angle.y; + if (my_svec.y < 0) { + if (abs(my_svec.y) < 0x4000) { + my_svec.y = 0; + } else { + my_svec.y = -0x8000; + } + } + + my_svec.y += home.angle.y; + setAngle(my_svec.y); + work.set(0.0f, 300.0f, 300.0f); + mDoMtx_stack_c::YrotS(mCurAngle.y); + mDoMtx_stack_c::multVec(&work, &work); + work += current.pos; + mGndChk.SetPos(&work); + work.y = dComIfG_Bgsp().GroundCross(&mGndChk); + JUT_ASSERT(0xad8, -(1000000000.0f) != work.y); + daPy_getPlayerActorClass()->setPlayerPosAndAngle(&work, mCurAngle.y + 0x8000, 0); + + work.set(0.0f, 300.0f, 150.0f); + mDoMtx_stack_c::YrotS(mCurAngle.y); + mDoMtx_stack_c::multVec(&work, &work); + work += current.pos; + mGndChk.SetPos(&work); + work.y = dComIfG_Bgsp().GroundCross(&mGndChk); + JUT_ASSERT(0xae2, -(1000000000.0f) != work.y); + dComIfGp_evmng_setGoal(&work); + } + + break; + } + + case 4: { + initTalk(((daTag_Push_c*)actor_p)->getFlowNodeNo(), NULL); + break; + } + + case 5: { + mJntAnm.lookNone(1); + initTalk(((daTag_Push_c*)actor_p)->getFlowNodeNo(), NULL); + break; + } + } + } + + switch (prm_val) { + case 0: { + mJntAnm.lookPlayer(0); + if (mPlayerAngle == mCurAngle.y) { + ret_val = 1; + } else { + shape_angle.y = mPlayerAngle; + step(mPlayerAngle, 10, 19, 15, 0); + } + + break; + } + + case 1: { + mJntAnm.lookPlayer(0); + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + ret_val = 1; + } + + break; + } + + case 2: { + mJntAnm.lookPlayer(0); + if (!cLib_calcTimer(&mEventTimer)) { + ret_val = 1; + } + + break; + } + + case 3: { + ret_val = 1; + break; + } + + case 4: + case 5: { + mJntAnm.lookNone(0); + if (prm_val == 4) { + mJntAnm.lookPlayer(0); + } + + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + if (prm_val == 4) { + dStage_changeScene(24, 0.0f, 0, fopAcM_GetRoomNo(this), 0, dComIfG_play_c::getLayerNo(0)); + } else { + ret_val = 1; + } + } + } + } + + return ret_val; } /* 809709EC-80970DFC 003B4C 0410+00 1/0 0/0 0/0 .text wait__11daNpc_Bou_cFPv */ -void daNpc_Bou_c::wait(void* param_0) { - // NONMATCHING +int daNpc_Bou_c::wait(void* param_0) { + fopAc_ac_c* actor_p = NULL; + switch (mMode) { + case 0: + case 1: { + if (!mStagger.checkStagger()) { + mFaceMotionSeqMngr.setNo(10, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + mMode = 2; + } + } + // fallthrough intentional + case 2: { + if (daPy_getPlayerActorClass()->checkGoatStopGame()) { + field_0xff4 = 1; + } else if (field_0xff4) { + mEvtNo = 4; + if (daNpcT_chkEvtBit(0x235)) { + if (daNpcT_chkEvtBit(0x24b)) { + mEvtNo = 3; + } + } else if (daNpcT_chkEvtBit(0xB2)) { + mEvtNo = 3; + } + + field_0xe33 = 1; + } + + if (!mStagger.checkStagger()) { + if (field_0xff4) { + mPlayerActorMngr.remove(); + } + + if (mPlayerActorMngr.getActorP() != NULL) { + mJntAnm.lookPlayer(0); + if (!chkActorInSight(mPlayerActorMngr.getActorP(), mAttnFovY, mCurAngle.y)) { + mJntAnm.lookNone(0); + } + + if (!srchPlayerActor() && home.angle.y == mCurAngle.y) { + mMode = 1; + } + } else { + mJntAnm.lookNone(0); + if (home.angle.y != mCurAngle.y) { + if (field_0xe34) { + if (mType == 2) { + if (step(home.angle.y, 10, 19, 15, 0)) { + mMode = 1; + } + } else { + if (step(home.angle.y, 10, 18, 15, 0)) { + mMode = 1; + } + } + } else { + setAngle(home.angle.y); + mMode = 1; + } + + attention_info.flags = 0; + } else if (field_0xff4) { + attention_info.flags = 0; + } else if (!mTwilight) { + srchPlayerActor(); + } + } + + switch (mJntAnm.getMode()) { + case 0: { + if (field_0xff4) { + actor_p = mActorMngr[0].getActorP(); + if (actor_p) { + mJntAnm.lookActor(actor_p, 0.0f, 0); + } + } + } + } + + if (!field_0xe34) { + daNpcT_offTmpBit(0x1D); + } + } + + break; + } + + case 3: { + break; + } + } + + return 1; } /* 80970DFC-80970F9C 003F5C 01A0+00 1/0 0/0 0/0 .text talkwithJagar__11daNpc_Bou_cFPv */ -void daNpc_Bou_c::talkwithJagar(void* param_0) { - // NONMATCHING +int daNpc_Bou_c::talkwithJagar(void* param_0) { + daNpc_Jagar_c* jagar = (daNpc_Jagar_c*) mActorMngr[1].getActorP(); + switch (mMode) { + case 0: + case 1: { + if (!mStagger.checkStagger()) { + mFaceMotionSeqMngr.setNo(10, -1.0f, 0, 0); + mMotionSeqMngr.setNo(1, -1.0f, 0, 0); + mMode = 2; + } + } + // fallthrough intentional + case 2: { + if (jagar) { + mJntAnm.lookActor(jagar, -40.0f, 0); + } else { + mJntAnm.lookNone(0); + } + } + + case 3: { + break; + } + } + + return 1; } -/* ############################################################################################## */ -/* 80972998-8097299C 000138 0004+00 0/1 0/0 0/0 .rodata @6218 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6218 = -10.0f; -COMPILER_STRIP_GATE(0x80972998, &lit_6218); -#pragma pop - /* 80970F9C-8097146C 0040FC 04D0+00 3/0 0/0 0/0 .text talk__11daNpc_Bou_cFPv */ -void daNpc_Bou_c::talk(void* param_0) { +int daNpc_Bou_c::talk(void* param_0) { // NONMATCHING + daNpc_Jagar_c* jagar_p = NULL; + switch (mMode) { + case 0: + case 1: { + if (!mStagger.checkStagger()) { + if (mType == 1) { + jagar_p = (daNpc_Jagar_c*) mActorMngr[1].getActorP(); + if (jagar_p != NULL && jagar_p->getType() == 1 && jagar_p->chkCondition(1)) { + jagar_p->setListenMotion(-10.0f); + jagar_p->onListen(); + } + + switch (field_0xfdc) { + case 4: { + initTalk(0xD6, NULL); + break; + } + + default: { + initTalk(0xD5, NULL); + } + } + } else { + daNpcT_offTmpBit(0x59); + daHorse_c* horse_p = dComIfGp_getHorseActor(); + if (horse_p && !horse_p->checkHorseCallWait()) { + if (chkPointInArea(horse_p->current.pos, current.pos, daNpc_Bou_Param_c::m.field_0x90, + daNpc_Bou_Param_c::m.field_0x94, daNpc_Bou_Param_c::m.field_0x98, 0)) { + daNpcT_onTmpBit(0x59); + } + } + + initTalk(mFlowNodeNo, NULL); + } + + mMode = 2; + } + } + // fallthrough intentional + case 2: { + if (!mStagger.checkStagger()) { + if (mTwilight || mPlayerAngle == mCurAngle.y || mType == 1) { + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + if (mType == 1) { + jagar_p = (daNpc_Jagar_c*) mActorMngr[1].getActorP(); + if (jagar_p != NULL && jagar_p->getType() == 1) { + jagar_p->offListen(); + } + } + + mPlayerActorMngr.entry(daPy_getPlayerActorClass()); + dComIfGp_event_reset(); + mMode = 3; + } + + if (mType == 1) { + fopAc_ac_c* actor_p = mActorMngr[1].getActorP(); + if (actor_p != NULL) { + mJntAnm.lookActor(actor_p, -40.0f, 0); + } else { + mJntAnm.lookNone(0); + } + } else { + mJntAnm.lookPlayer(0); + if (mTwilight) { + mJntAnm.lookNone(0); + } + } + } else { + mJntAnm.lookPlayer(0); + if (mType == 2) { + step(mPlayerAngle, 10, 19, 15, 0); + } else { + step(mPlayerAngle, 10, 18, 15, 0); + } + } + } + + break; + } + + case 3: { + break; + } + } + + return 0; } /* 8097146C-8097148C 0045CC 0020+00 1/0 0/0 0/0 .text daNpc_Bou_Create__FPv */ -static void daNpc_Bou_Create(void* param_0) { - // NONMATCHING +static int daNpc_Bou_Create(void* i_this) { + return static_cast(i_this)->create(); } /* 8097148C-809714AC 0045EC 0020+00 1/0 0/0 0/0 .text daNpc_Bou_Delete__FPv */ -static void daNpc_Bou_Delete(void* param_0) { - // NONMATCHING +static int daNpc_Bou_Delete(void* i_this) { + return static_cast(i_this)->Delete(); } /* 809714AC-809714CC 00460C 0020+00 1/0 0/0 0/0 .text daNpc_Bou_Execute__FPv */ -static void daNpc_Bou_Execute(void* param_0) { - // NONMATCHING +static int daNpc_Bou_Execute(void* i_this) { + return static_cast(i_this)->Execute(); } /* 809714CC-809714EC 00462C 0020+00 1/0 0/0 0/0 .text daNpc_Bou_Draw__FPv */ -static void daNpc_Bou_Draw(void* param_0) { - // NONMATCHING +static int daNpc_Bou_Draw(void* i_this) { + return static_cast(i_this)->Draw(); } /* 809714EC-809714F4 00464C 0008+00 1/0 0/0 0/0 .text daNpc_Bou_IsDelete__FPv */ -static bool daNpc_Bou_IsDelete(void* param_0) { - return true; +static int daNpc_Bou_IsDelete(void* i_this) { + return 1; } -/* 809714F4-80971524 004654 0030+00 1/0 0/0 0/0 .text calc__11J3DTexNoAnmCFPUs */ -// void J3DTexNoAnm::calc(u16* param_0) const { -extern "C" void calc__11J3DTexNoAnmCFPUs() { - // NONMATCHING -} - -/* 80971524-8097156C 004684 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 8097156C-809718F4 0046CC 0388+00 1/1 0/0 0/0 .text __dt__8daNpcT_cFv */ -// daNpcT_c::~daNpcT_c() { -extern "C" void __dt__8daNpcT_cFv() { - // NONMATCHING -} - -/* 809718F4-80971930 004A54 003C+00 3/3 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80971930-8097196C 004A90 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 8097196C-809719B4 004ACC 0048+00 3/2 0/0 0/0 .text __dt__18daNpcT_ActorMngr_cFv */ -// daNpcT_ActorMngr_c::~daNpcT_ActorMngr_c() { -extern "C" void __dt__18daNpcT_ActorMngr_cFv() { - // NONMATCHING -} - -/* 809719B4-809719FC 004B14 0048+00 1/0 0/0 0/0 .text __dt__13daNpcT_Path_cFv */ -// daNpcT_Path_c::~daNpcT_Path_c() { -extern "C" void __dt__13daNpcT_Path_cFv() { - // NONMATCHING -} - -/* 809719FC-80971A38 004B5C 003C+00 1/1 0/0 0/0 .text __ct__18daNpcT_ActorMngr_cFv */ -// daNpcT_ActorMngr_c::daNpcT_ActorMngr_c() { -extern "C" void __ct__18daNpcT_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80971A38-80971A80 004B98 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80971A80-80971AC8 004BE0 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80971AC8-80971ECC 004C28 0404+00 1/1 0/0 0/0 .text - * __ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc - */ -// daNpcT_c::daNpcT_c(daNpcT_faceMotionAnmData_c const* param_0, -// daNpcT_motionAnmData_c const* param_1, -// daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, int param_3, -// daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, int param_5, -// daNpcT_evtData_c const* param_6, char** param_7) { -extern "C" void __ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc() { - // NONMATCHING -} - -/* 80971ECC-80971ED0 00502C 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 80971ED0-80971FCC 005030 00FC+00 1/0 0/0 0/0 .text __dt__15daNpcT_JntAnm_cFv */ -// daNpcT_JntAnm_c::~daNpcT_JntAnm_c() { -extern "C" void __dt__15daNpcT_JntAnm_cFv() { - // NONMATCHING -} - -/* 80971FCC-80971FD0 00512C 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 80971FD0-80972018 005130 0048+00 1/0 0/0 0/0 .text __dt__22daNpcT_MotionSeqMngr_cFv */ -// daNpcT_MotionSeqMngr_c::~daNpcT_MotionSeqMngr_c() { -extern "C" void __dt__22daNpcT_MotionSeqMngr_cFv() { - // NONMATCHING -} - -/* 80972018-80972088 005178 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80972088-809720E4 0051E8 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 809720E4-80972154 005244 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80972154-8097219C 0052B4 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 8097219C-809722B8 0052FC 011C+00 1/1 0/0 0/0 .text setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs */ -// void daNpcT_JntAnm_c::setEyeAngleY(cXyz param_0, s16 param_1, int param_2, f32 param_3, -// s16 param_4) { -extern "C" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs() { - // NONMATCHING -} - -/* 809722B8-809724C0 005418 0208+00 1/1 0/0 0/0 .text setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs */ -// void daNpcT_JntAnm_c::setEyeAngleX(cXyz param_0, f32 param_1, s16 param_2) { -extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs() { - // NONMATCHING -} - -/* 809724C0-809724C4 005620 0004+00 1/0 0/0 0/0 .text ctrlSubFaceMotion__8daNpcT_cFi */ -// void daNpcT_c::ctrlSubFaceMotion(int param_0) { -extern "C" void ctrlSubFaceMotion__8daNpcT_cFi() { - /* empty function */ -} - -/* 809724D4-809724DC 005634 0008+00 1/0 0/0 0/0 .text getEyeballLMaterialNo__8daNpcT_cFv - */ -// bool daNpcT_c::getEyeballLMaterialNo() { -extern "C" bool getEyeballLMaterialNo__8daNpcT_cFv() { - return false; -} - -/* 809724DC-809724E4 00563C 0008+00 1/0 0/0 0/0 .text getEyeballRMaterialNo__8daNpcT_cFv - */ -// bool daNpcT_c::getEyeballRMaterialNo() { -extern "C" bool getEyeballRMaterialNo__8daNpcT_cFv() { - return false; -} - -/* 809724E8-809724F0 005648 0008+00 1/0 0/0 0/0 .text chkXYItems__8daNpcT_cFv */ -// bool daNpcT_c::chkXYItems() { -extern "C" bool chkXYItems__8daNpcT_cFv() { - return false; -} - -/* 809724F0-80972508 005650 0018+00 1/0 0/0 0/0 .text decTmr__8daNpcT_cFv */ -// void daNpcT_c::decTmr() { -extern "C" void decTmr__8daNpcT_cFv() { - // NONMATCHING -} - -/* 80972508-8097250C 005668 0004+00 1/0 0/0 0/0 .text drawOtherMdl__8daNpcT_cFv */ -// void daNpcT_c::drawOtherMdl() { -extern "C" void drawOtherMdl__8daNpcT_cFv() { - /* empty function */ -} - -/* 8097250C-80972510 00566C 0004+00 1/0 0/0 0/0 .text drawGhost__8daNpcT_cFv */ -// void daNpcT_c::drawGhost() { -extern "C" void drawGhost__8daNpcT_cFv() { - /* empty function */ -} - -/* 80972510-80972518 005670 0008+00 1/0 0/0 0/0 .text afterSetFaceMotionAnm__8daNpcT_cFiifi */ -// bool daNpcT_c::afterSetFaceMotionAnm(int param_0, int param_1, f32 param_2, int param_3) { -extern "C" bool afterSetFaceMotionAnm__8daNpcT_cFiifi() { - return true; -} - -/* 80972518-80972520 005678 0008+00 1/0 0/0 0/0 .text afterSetMotionAnm__8daNpcT_cFiifi - */ -// bool daNpcT_c::afterSetMotionAnm(int param_0, int param_1, f32 param_2, int param_3) { -extern "C" bool afterSetMotionAnm__8daNpcT_cFiifi() { - return true; -} - -/* 80972520-80972550 005680 0030+00 1/0 0/0 0/0 .text - * getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c */ -// void daNpcT_c::getFaceMotionAnm(daNpcT_faceMotionAnmData_c param_0) { -extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c() { - // NONMATCHING -} - -/* 80972550-80972580 0056B0 0030+00 1/0 0/0 0/0 .text - * getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c */ -// void daNpcT_c::getMotionAnm(daNpcT_motionAnmData_c param_0) { -extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c() { - // NONMATCHING -} - -/* 80972580-80972584 0056E0 0004+00 1/0 0/0 0/0 .text changeBck__8daNpcT_cFPiPi */ -// void daNpcT_c::changeBck(int* param_0, int* param_1) { -extern "C" void changeBck__8daNpcT_cFPiPi() { - /* empty function */ -} - -/* 80972584-80972588 0056E4 0004+00 1/0 0/0 0/0 .text changeBtp__8daNpcT_cFPiPi */ -// void daNpcT_c::changeBtp(int* param_0, int* param_1) { -extern "C" void changeBtp__8daNpcT_cFPiPi() { - /* empty function */ -} - -/* 80972588-8097258C 0056E8 0004+00 1/0 0/0 0/0 .text changeBtk__8daNpcT_cFPiPi */ -// void daNpcT_c::changeBtk(int* param_0, int* param_1) { -extern "C" void changeBtk__8daNpcT_cFPiPi() { - /* empty function */ -} - -/* 8097258C-809725A8 0056EC 001C+00 2/2 0/0 0/0 .text cLib_calcTimer__FPi */ -extern "C" void func_8097258C(void* _this, int* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80973430-8097343C 0009A0 000C+00 2/2 0/0 0/0 .data __vt__17daNpc_Bou_Param_c */ -SECTION_DATA extern void* __vt__17daNpc_Bou_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__17daNpc_Bou_Param_cFv, +/* 80973274-80973294 -00001 0020+00 1/0 0/0 0/0 .data daNpc_Bou_MethodTable */ +static actor_method_class daNpc_Bou_MethodTable = { + (process_method_func)daNpc_Bou_Create, + (process_method_func)daNpc_Bou_Delete, + (process_method_func)daNpc_Bou_Execute, + (process_method_func)daNpc_Bou_IsDelete, + (process_method_func)daNpc_Bou_Draw, }; -/* 80973448-80973454 000008 000C+00 1/1 0/0 0/0 .bss @3942 */ -static u8 lit_3942[12]; +/* 80973294-809732C4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_BOU */ +extern actor_process_profile_definition g_profile_NPC_BOU = { + fpcLy_CURRENT_e, // mLayerID + 7, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_NPC_BOU, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(daNpc_Bou_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 324, // mPriority + &daNpc_Bou_MethodTable, // sub_method + 0x00040107, // mStatus + fopAc_NPC_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +}; /* 80973454-80973458 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 809725A8-809726D4 005708 012C+00 0/0 1/0 0/0 .text __sinit_d_a_npc_bou_cpp */ -void __sinit_d_a_npc_bou_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x809725A8, __sinit_d_a_npc_bou_cpp); -#pragma pop - -/* 809726D4-809727B4 005834 00E0+00 1/1 0/0 0/0 .text - * __ct__11daNpc_Bou_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc - */ -/* daNpc_Bou_c::daNpc_Bou_c(daNpcT_faceMotionAnmData_c const* param_0, - daNpcT_motionAnmData_c const* param_1, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, int param_3, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, int param_5, - daNpcT_evtData_c const* param_6, char** param_7) { - // NONMATCHING -} */ - -/* 809727B4-809727BC 005914 0008+00 1/0 0/0 0/0 .text getEyeballMaterialNo__11daNpc_Bou_cFv */ -s32 daNpc_Bou_c::getEyeballMaterialNo() { - return true; -} - -/* 809727BC-809727C4 00591C 0008+00 1/0 0/0 0/0 .text getHeadJointNo__11daNpc_Bou_cFv */ -s32 daNpc_Bou_c::getHeadJointNo() { - return 4; -} - -/* 809727C4-809727CC 005924 0008+00 1/0 0/0 0/0 .text getNeckJointNo__11daNpc_Bou_cFv */ -s32 daNpc_Bou_c::getNeckJointNo() { - return 3; -} - -/* 809727CC-809727D4 00592C 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__11daNpc_Bou_cFv - */ -s32 daNpc_Bou_c::getBackboneJointNo() { - return true; -} - -/* 809727D4-809727E4 005934 0010+00 1/0 0/0 0/0 .text checkChangeJoint__11daNpc_Bou_cFi - */ -int daNpc_Bou_c::checkChangeJoint(int param_0) { - // NONMATCHING -} - -/* 809727E4-809727F4 005944 0010+00 1/0 0/0 0/0 .text checkRemoveJoint__11daNpc_Bou_cFi - */ -int daNpc_Bou_c::checkRemoveJoint(int param_0) { - // NONMATCHING -} - -/* 809727F4-8097283C 005954 0048+00 2/1 0/0 0/0 .text __dt__17daNpc_Bou_Param_cFv */ -daNpc_Bou_Param_c::~daNpc_Bou_Param_c() { - // NONMATCHING -} - -/* 8097283C-80972844 00599C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_8097283C() { - // NONMATCHING -} - -/* 80972844-8097284C 0059A4 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80972844() { - // NONMATCHING -} - -/* 8097299C-8097299C 00013C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +static daNpc_Bou_Param_c l_HIO; diff --git a/src/d/actor/d_a_npc_jagar.cpp b/src/d/actor/d_a_npc_jagar.cpp index 093cc481e3f..372f9eff9d1 100644 --- a/src/d/actor/d_a_npc_jagar.cpp +++ b/src/d/actor/d_a_npc_jagar.cpp @@ -1416,7 +1416,7 @@ int daNpc_Jagar_c::talkwithBou(void* param_0) { mEvtNo = 7; } if (bo) { - if (field_0x1005 == 0) { + if (mListen == 0) { if (cLib_calcTimer(&field_0xff8) == 0) { if (chkCondition(0) && bo->chkCondition(0)) { field_0xff8 = cLib_getRndValue(45.0f, 135.0f);