// // Generated By: dol2asm // Translation Unit: d/a/d_a_npc // #include "d/a/d_a_npc.h" #include "d/a/d_a_player.h" #include "d/d_procname.h" #include "dol2asm.h" #include "dolphin/types.h" #include "m_Do/m_Do_mtx.h" #include "rel/d/a/npc/d_a_npc_tk/d_a_npc_tk.h" #include "SSystem/SComponent/c_math.h" #include "m_Do/m_Do_lib.h" // // Forward References: // 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 calc__15daNpcT_MatAnm_cCFP11J3DMaterial(); extern "C" void initialize__22daNpcT_MotionSeqMngr_cFv(); extern "C" void play__22daNpcT_MotionSeqMngr_cFUsPiPf(); extern "C" void checkEndSequence__22daNpcT_MotionSeqMngr_cFv(); extern "C" static void daNpcT_addIdx__FiiRUsi(); extern "C" static void daNpcT_subIdx__FiiRUsi(); extern "C" static void daNpcT_incIdx__FiRUsii(); extern "C" static void daNpcT_decIdx__FiRUsii(); extern "C" void hermite__13daNpcT_Path_cFR4cXyzR4cXyzR4cXyzR4cXyzR16daNpcT_Hermite_cR4cXyz(); extern "C" void initialize__13daNpcT_Path_cFv(); extern "C" void setPathInfo__13daNpcT_Path_cFUcScUc(); extern "C" void setNextPathInfo__13daNpcT_Path_cFScUc(); extern "C" void reverse__13daNpcT_Path_cFv(); extern "C" void setNextIdx__13daNpcT_Path_cFi(); extern "C" void getDstPos__13daNpcT_Path_cF4cXyzP4cXyzi(); extern "C" void getDstPosH__13daNpcT_Path_cF4cXyzP4cXyzii(); extern "C" void chkPassed1__13daNpcT_Path_cF4cXyzi(); extern "C" void chkPassed2__13daNpcT_Path_cF4cXyzP4cXyzii(); extern "C" static void daNpcT_chkPassed__F4cXyzP4dPntUsUsiiP4cXyzPiPi(); extern "C" void initialize__15daNpcT_JntAnm_cFv(); extern "C" void setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz(); extern "C" void calc__15daNpcT_JntAnm_cFf(); 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 srchActor__8daNpcT_cFPvPv(); extern "C" void getTrnsfrmAnmP__8daNpcT_cFPCci(); extern "C" void getTrnsfrmKeyAnmP__8daNpcT_cFPCci(); extern "C" void getTexPtrnAnmP__8daNpcT_cFPCci(); extern "C" void getTexSRTKeyAnmP__8daNpcT_cFPCci(); extern "C" void getTevRegKeyAnmP__8daNpcT_cFPCci(); extern "C" void getColorAnmP__8daNpcT_cFPCci(); extern "C" void setBckAnm__8daNpcT_cFP15J3DAnmTransformfiiib(); extern "C" void setMcaMorfAnm__8daNpcT_cFP18J3DAnmTransformKeyffiii(); extern "C" void setBtpAnm__8daNpcT_cFP16J3DAnmTexPatternP12J3DModelDatafi(); extern "C" void setBtkAnm__8daNpcT_cFP19J3DAnmTextureSRTKeyP12J3DModelDatafi(); extern "C" void setBrkAnm__8daNpcT_cFP15J3DAnmTevRegKeyP12J3DModelDatafi(); extern "C" void setBpkAnm__8daNpcT_cFP11J3DAnmColorP12J3DModelDatafi(); 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 checkEndAnm__8daNpcT_cFf(); extern "C" void checkEndAnm__8daNpcT_cFP12J3DFrameCtrlf(); extern "C" void playAllAnm__8daNpcT_cFv(); extern "C" void ctrlBtk__8daNpcT_cFv(); extern "C" void setMtx__8daNpcT_cFv(); extern "C" void ctrlFaceMotion__8daNpcT_cFv(); extern "C" void ctrlMotion__8daNpcT_cFv(); extern "C" void ctrlMsgAnm__8daNpcT_cFPiPiP10fopAc_ac_ci(); 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 chkPointInArea__8daNpcT_cF4cXyz4cXyz4cXyzs(); extern "C" void chkFindActor__8daNpcT_cFP10fopAc_ac_cis(); extern "C" void getDistTable__12dAttention_cFi(); extern "C" void chkWolfAction__8daNpcT_cFv(); extern "C" void chkFindWolf__8daNpcT_cFsiiffffi(); extern "C" void srchPlayerActor__8daNpcT_cFv(); extern "C" void getAttnPos__8daNpcT_cFP10fopAc_ac_c(); extern "C" void turn__8daNpcT_cFsii(); extern "C" void step__8daNpcT_cFsiiii(); extern "C" void calcSpeedAndAngle__8daNpcT_cF4cXyziss(); 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 getEvtAreaTagP__8daNpcT_cFii(); extern "C" void getShopItemTagP__8daNpcT_cFv(); extern "C" void setHitodamaPrtcl__8daNpcT_cFv(); extern "C" void daNpcT_chkActorInScreen__FP10fopAc_ac_cfffffffi(); extern "C" void daNpcT_chkPointInArea__F4cXyz4cXyz4cXyzsi(); extern "C" void daNpcT_getPlayerInfoFromPlayerList__FiiP4cXyzP5csXyz(); extern "C" void daNpcT_chkDoBtnIsSpeak__FP10fopAc_ac_c(); extern "C" void daNpcT_judgeRace__FP5dPathPP10fopAc_ac_cP16daNpcT_pntData_ciPi(); extern "C" void daNpcT_getDistTableIdx__Fii(); extern "C" void daNpcT_onEvtBit__FUl(); extern "C" void daNpcT_offEvtBit__FUl(); extern "C" void daNpcT_chkEvtBit__FUl(); extern "C" void daNpcT_onTmpBit__FUl(); extern "C" void daNpcT_offTmpBit__FUl(); extern "C" void daNpcT_chkTmpBit__FUl(); extern "C" void __dt__16daNpcT_Hermite_cFv(); extern "C" void decTmr__8daNpcT_cFv(); extern "C" void setCollision__8daNpcT_cFv(); extern "C" void setAttnPos__8daNpcT_cFv(); extern "C" void ctrlSubFaceMotion__8daNpcT_cFi(); extern "C" void afterMoved__8daNpcT_cFv(); extern "C" void beforeMove__8daNpcT_cFv(); extern "C" void action__8daNpcT_cFv(); extern "C" void setParam__8daNpcT_cFv(); extern "C" void drawOtherMdl__8daNpcT_cFv(); extern "C" void drawGhost__8daNpcT_cFv(); extern "C" bool drawDbgInfo__8daNpcT_cFv(); extern "C" bool checkRemoveJoint__8daNpcT_cFi(); extern "C" bool checkChangeJoint__8daNpcT_cFi(); extern "C" void afterJntAnm__8daNpcT_cFi(); extern "C" s32 getHeadJointNo__8daNpcT_cFv(); extern "C" s32 getNeckJointNo__8daNpcT_cFv(); extern "C" s32 getBackboneJointNo__8daNpcT_cFv(); extern "C" void setAfterTalkMotion__8daNpcT_cFv(); extern "C" bool evtCutProc__8daNpcT_cFv(); extern "C" bool evtEndProc__8daNpcT_cFv(); extern "C" bool evtTalk__8daNpcT_cFv(); extern "C" bool checkChangeEvt__8daNpcT_cFv(); extern "C" s32 getFootRJointNo__8daNpcT_cFv(); extern "C" s32 getFootLJointNo__8daNpcT_cFv(); extern "C" bool chkXYItems__8daNpcT_cFv(); extern "C" bool afterSetFaceMotionAnm__8daNpcT_cFiifi(); extern "C" void changeBtp__8daNpcT_cFPiPi(); extern "C" void changeBck__8daNpcT_cFPiPi(); extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c(); extern "C" bool afterSetMotionAnm__8daNpcT_cFiifi(); extern "C" void changeBtk__8daNpcT_cFPiPi(); extern "C" void changeAnm__8daNpcT_cFPiPi(); extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c(); extern "C" void __dt__8daNpcT_cFv(); extern "C" bool getEyeballLMaterialNo__8daNpcT_cFv(); extern "C" bool getEyeballRMaterialNo__8daNpcT_cFv(); extern "C" bool getEyeballMaterialNo__8daNpcT_cFv(); extern "C" void __dt__22daNpcT_MotionSeqMngr_cFv(); extern "C" void __dt__18daNpcT_ActorMngr_cFv(); extern "C" void __dt__15daNpcT_JntAnm_cFv(); extern "C" void __dt__15daNpcT_MatAnm_cFv(); extern "C" void func_8014D32C(void* _this, s16*); extern "C" void func_8014D348(void* _this, int*); extern "C" void func_8014D364(void* _this, int, int); extern "C" void __sinit_d_a_npc_cpp(); extern "C" static void daBaseNpc_addIdx__FiiPUsi(); extern "C" static void daBaseNpc_subIdx__FiiPUsi(); extern "C" static void daBaseNpc_incIdx__FiPUsii(); extern "C" static void daBaseNpc_decIdx__FiPUsii(); extern "C" static void daNpcBase_BBasis__FiiiPi(); extern "C" void __ct__18daBaseNpc_acMngr_cFv(); extern "C" void entry__18daBaseNpc_acMngr_cFP10fopAc_ac_c(); extern "C" void getActor__18daBaseNpc_acMngr_cFv(); extern "C" void calc__18daBaseNpc_matAnm_cCFP11J3DMaterial(); extern "C" void __ct__16daBaseNpc_path_cFv(); extern "C" void isPath__16daBaseNpc_path_cFv(); extern "C" void setPathInfo__16daBaseNpc_path_cFUcScSc(); extern "C" void reverseDir__16daBaseNpc_path_cFv(); extern "C" void chkPnt__16daBaseNpc_path_cF4cXyz(); extern "C" void setNextPnt__16daBaseNpc_path_cFv(); extern "C" void getIdx__16daBaseNpc_path_cFv(); extern "C" void setIdx__16daBaseNpc_path_cFUs(); extern "C" void getPntPos__16daBaseNpc_path_cFUs(); extern "C" void limitter__18daBaseNpc_lookat_cFsPsss(); extern "C" void calc__18daBaseNpc_lookat_cFP10fopAc_ac_cPA4_fs(); extern "C" void setMaxJntLmt__18daBaseNpc_lookat_cF5csXyzi(); extern "C" void setMinJntLmt__18daBaseNpc_lookat_cF5csXyzi(); extern "C" void setJntPos__18daBaseNpc_lookat_cF4cXyzi(); extern "C" void setAttnPos__18daBaseNpc_lookat_cFP4cXyz(); extern "C" void getRot__18daBaseNpc_lookat_cFi(); extern "C" void __ct__11daBaseNpc_cFv(); extern "C" void __dt__11daBaseNpc_cFv(); extern "C" void execute__11daBaseNpc_cFv(); extern "C" void draw__11daBaseNpc_cFf(); extern "C" bool getResName__11daBaseNpc_cFv(); extern "C" void getTrnsfrmKeyAnmP__11daBaseNpc_cFPci(); extern "C" void setMcaMorfAnm__11daBaseNpc_cFP18J3DAnmTransformKeyffiii(); extern "C" void setBckAnm__11daBaseNpc_cFP15J3DAnmTransformfiiib(); extern "C" void getTexPtrnAnmP__11daBaseNpc_cFPci(); extern "C" void setBtpAnm__11daBaseNpc_cFP16J3DAnmTexPatternP12J3DModelDatafi(); extern "C" void attnSttsOn__11daBaseNpc_cFii(); extern "C" void setParam__11daBaseNpc_cFv(); extern "C" void orderEvent__11daBaseNpc_cFiPc(); extern "C" void mainProc__11daBaseNpc_cFv(); extern "C" void setEnvTevColor__11daBaseNpc_cFv(); extern "C" void setRoomNo__11daBaseNpc_cFv(); extern "C" bool btkCtrl__11daBaseNpc_cFv(); extern "C" void checkEndAnm__11daBaseNpc_cFf(); extern "C" void checkEndAnm__11daBaseNpc_cFP12J3DFrameCtrl(); extern "C" void allAnmPlay__11daBaseNpc_cFv(); extern "C" void adjustShapeAngle__11daBaseNpc_cFv(); extern "C" void setMtx__11daBaseNpc_cFi(); extern "C" void setCollisions__11daBaseNpc_cFv(); extern "C" void setAttnPos__11daBaseNpc_cFv(); extern "C" void drawOtherMdls__11daBaseNpc_cFv(); extern "C" bool dbgDraw__11daBaseNpc_cFv(); extern "C" void __ct__23daBaseNpc_moveBgActor_cFv(); extern "C" static void CheckCreateHeap__FP10fopAc_ac_c(); extern "C" void MoveBGCreateHeap__23daBaseNpc_moveBgActor_cFv(); extern "C" void MoveBGCreate__23daBaseNpc_moveBgActor_cFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUl(); extern "C" void MoveBGDelete__23daBaseNpc_moveBgActor_cFv(); extern "C" void MoveBGExecute__23daBaseNpc_moveBgActor_cFv(); extern "C" static void daBaseNpc_PntVsLineSegmentLengthSquare2D__FffffffPfPfPf(); extern "C" static void daBaseNpc_putNurbs__FP4dPntiiP4dPnti(); extern "C" static void daBaseNpc_chkPnt__F4cXyzP4dPntUsUsii(); extern "C" static void daBaseNpc_getGroundAngle__FP13cBgS_PolyInfos(); extern "C" void __dt__18daBaseNpc_lookat_cFv(); extern "C" bool CreateHeap__23daBaseNpc_moveBgActor_cFv(); extern "C" bool Create__23daBaseNpc_moveBgActor_cFv(); extern "C" bool Delete__23daBaseNpc_moveBgActor_cFv(); extern "C" bool Execute__23daBaseNpc_moveBgActor_cFPPA3_A4_f(); extern "C" bool Draw__23daBaseNpc_moveBgActor_cFv(); extern "C" bool IsDelete__23daBaseNpc_moveBgActor_cFv(); extern "C" bool ToFore__23daBaseNpc_moveBgActor_cFv(); extern "C" bool ToBack__23daBaseNpc_moveBgActor_cFv(); extern "C" void __dt__16daBaseNpc_path_cFv(); extern "C" void __dt__18daBaseNpc_matAnm_cFv(); extern "C" void __dt__18daBaseNpc_acMngr_cFv(); extern "C" static void daNpcF_addIdx__FiiRUsi(); extern "C" static void daNpcF_subIdx__FiiRUsi(); extern "C" static void daNpcF_incIdx__FiRUsii(); extern "C" static void daNpcF_decIdx__FiRUsii(); extern "C" void initialize__18daNpcF_ActorMngr_cFv(); extern "C" void entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c(); extern "C" void entry__18daNpcF_ActorMngr_cFUi(); extern "C" void remove__18daNpcF_ActorMngr_cFv(); extern "C" void getActorP__18daNpcF_ActorMngr_cFv(); extern "C" void initialize__15daNpcF_MatAnm_cFv(); extern "C" void calc__15daNpcF_MatAnm_cCFP11J3DMaterial(); extern "C" void initialize__16daNpcF_SPCurve_cFP5dPathi(); extern "C" void initialize__13daNpcF_Path_cFv(); extern "C" void setPathInfo__13daNpcF_Path_cFUcScUc(); extern "C" void chkPassed__13daNpcF_Path_cF4cXyz(); extern "C" void chkPassedDst__13daNpcF_Path_cF4cXyz(); extern "C" void reverse__13daNpcF_Path_cFv(); extern "C" void setNextIdx__13daNpcF_Path_cFv(); extern "C" void getNextIdx__13daNpcF_Path_cFv(); extern "C" void getBeforeIdx__13daNpcF_Path_cFv(); extern "C" void getBeforePos__13daNpcF_Path_cFR4cXyz(); extern "C" void getNextPos__13daNpcF_Path_cFR4cXyz(); extern "C" void getDstPos__13daNpcF_Path_cF4cXyzR4cXyz(); extern "C" void setNextIdxDst__13daNpcF_Path_cF4cXyz(); extern "C" void initialize__15daNpcF_Lookat_cFv(); extern "C" void setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz(); extern "C" void calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii(); extern "C" void adjustMoveDisAngle__15daNpcF_Lookat_cFRssss(); extern "C" void initCalc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fP4cXyzP5csXyzPfR4cXyzi(); extern "C" void update__15daNpcF_Lookat_cFP4cXyzP5csXyzPf(); extern "C" void calcMoveDisAngle__15daNpcF_Lookat_cFiP4cXyzP5csXyz4cXyzii(); extern "C" void setRotAngle__15daNpcF_Lookat_cFv(); extern "C" void clrRotAngle__15daNpcF_Lookat_cFv(); extern "C" void execute__8daNpcF_cFv(); extern "C" void draw__8daNpcF_cFiifP11_GXColorS10i(); extern "C" void tgHitCallBack__8daNpcF_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf(); extern "C" void srchAttnActor1__8daNpcF_cFPvPv(); extern "C" void srchActor__8daNpcF_cFPvPv(); extern "C" void setMtx__8daNpcF_cFv(); extern "C" void setMtx2__8daNpcF_cFv(); extern "C" void initialize__8daNpcF_cFv(); extern "C" void getTrnsfrmKeyAnmP__8daNpcF_cFPci(); extern "C" void getTexPtrnAnmP__8daNpcF_cFPci(); extern "C" void getTexSRTKeyAnmP__8daNpcF_cFPci(); extern "C" void getTevRegKeyAnmP__8daNpcF_cFPci(); extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii(); extern "C" void setBckAnm__8daNpcF_cFP15J3DAnmTransformfiiib(); extern "C" void setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi(); extern "C" void setBtkAnm__8daNpcF_cFP19J3DAnmTextureSRTKeyP12J3DModelDatafi(); extern "C" void setBrkAnm__8daNpcF_cFP15J3DAnmTevRegKeyP12J3DModelDatafi(); extern "C" void setEnvTevColor__8daNpcF_cFv(); extern "C" void setRoomNo__8daNpcF_cFv(); extern "C" void chkEndAnm__8daNpcF_cFf(); extern "C" void chkEndAnm__8daNpcF_cFP12J3DFrameCtrlf(); extern "C" void playAllAnm__8daNpcF_cFv(); extern "C" void playExpressionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); extern "C" void playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); extern "C" void setLookatMtx__8daNpcF_cFiPif(); extern "C" void hitChk2__8daNpcF_cFP8dCcD_Cylii(); extern "C" void setDamage__8daNpcF_cFiii(); extern "C" void ctrlMsgAnm__8daNpcF_cFRiRiP10fopAc_ac_ci(); extern "C" void orderEvent__8daNpcF_cFiPcUsUsUcUs(); extern "C" void changeEvent__8daNpcF_cFPcPcUsUs(); extern "C" void chkActorInSight__8daNpcF_cFP10fopAc_ac_cf(); extern "C" void chkActorInArea__8daNpcF_cFP10fopAc_ac_c4cXyz4cXyzs(); extern "C" void chkActorInAttnArea__8daNpcF_cFP10fopAc_ac_cP10fopAc_ac_ci(); extern "C" void initTalk__8daNpcF_cFiPP10fopAc_ac_c(); extern "C" void talkProc__8daNpcF_cFPiiPP10fopAc_ac_c(); extern "C" void turn__8daNpcF_cFsfi(); extern "C" void step__8daNpcF_cFsiii(); extern "C" void setAngle__8daNpcF_cFs(); extern "C" void getDistTableIdx__8daNpcF_cFii(); extern "C" void getEvtAreaTagP__8daNpcF_cFii(); extern "C" void getAttnActorP__8daNpcF_cFiPFPvPv_Pvffffsii(); extern "C" void chkActorInSight2__8daNpcF_cFP10fopAc_ac_cfs(); extern "C" void chkPointInArea__8daNpcF_cF4cXyz4cXyzfffs(); extern "C" void chkPointInArea__8daNpcF_cF4cXyz4cXyz4cXyzs(); extern "C" void getAttentionPos__8daNpcF_cFP10fopAc_ac_c(); extern "C" void chkFindPlayer2__8daNpcF_cFis(); extern "C" void setHitodamaPrtcl__8daNpcF_cFv(); extern "C" void daNpcF_pntVsLineSegmentLengthSquare2D__FffffffPfPfPf(); extern "C" static bool daNpcF_putNurbs__FP4dPntiiP4dPnti(); extern "C" void daNpcF_chkPassed__F4cXyzP4dPntUsUsii(); extern "C" void daNpcF_getGroundAngle__FP13cBgS_PolyInfos(); extern "C" void daNpcF_chkEvtBit__FUl(); extern "C" void daNpcF_onEvtBit__FUl(); extern "C" void daNpcF_chkTmpBit__FUl(); extern "C" void daNpcF_onTmpBit__FUl(); extern "C" void daNpcF_offTmpBit__FUl(); extern "C" void daNpcF_getPlayerInfoFromPlayerList__FiiR4cXyzR5csXyz(); extern "C" void daNpcF_chkDoBtnEqSpeak__FP10fopAc_ac_c(); extern "C" void daNpcF_chkPointInArea__F4cXyz4cXyz4cXyzs(); extern "C" void daNpcF_getDistTableIdx__Fii(); extern "C" void daNpcF_clearMessageTmpBit__Fv(); extern "C" void __dt__20daNpcF_MoveBgActor_cFv(); extern "C" void setCollisions__8daNpcF_cFv(); extern "C" void setAttnPos__8daNpcF_cFv(); extern "C" void adjustShapeAngle__8daNpcF_cFv(); extern "C" bool main__8daNpcF_cFv(); extern "C" void setParam__8daNpcF_cFv(); extern "C" void drawOtherMdls__8daNpcF_cFv(); extern "C" bool drawDbgInfo__8daNpcF_cFv(); extern "C" bool ctrlBtk__8daNpcF_cFv(); extern "C" bool setExpressionAnm__8daNpcF_cFib(); extern "C" void setMotionAnm__8daNpcF_cFif(); extern "C" void setMotion__8daNpcF_cFifi(); extern "C" void setExpression__8daNpcF_cFif(); extern "C" void __dt__8daNpcF_cFv(); extern "C" void __dt__18daNpcF_ActorMngr_cFv(); extern "C" bool CreateHeap__20daNpcF_MoveBgActor_cFv(); extern "C" bool Create__20daNpcF_MoveBgActor_cFv(); extern "C" bool Delete__20daNpcF_MoveBgActor_cFv(); extern "C" bool Execute__20daNpcF_MoveBgActor_cFPPA3_A4_f(); extern "C" bool Draw__20daNpcF_MoveBgActor_cFv(); extern "C" bool IsDelete__20daNpcF_MoveBgActor_cFv(); extern "C" bool ToFore__20daNpcF_MoveBgActor_cFv(); extern "C" bool ToBack__20daNpcF_MoveBgActor_cFv(); extern "C" bool setExpressionBtp__8daNpcF_cFi(); extern "C" void __dt__15daNpcF_MatAnm_cFv(); extern "C" void __dt__23daBaseNpc_moveBgActor_cFv(); extern "C" u8 const mCcDObjData__8daNpcT_c[48]; extern "C" u8 const mCcDObj__11daBaseNpc_c[48]; extern "C" u8 const mCcDObjInfo__8daNpcF_c[48]; extern "C" extern char const* const d_a_d_a_npc__stringBase0; extern "C" u8 mCcDCyl__8daNpcT_c[68]; extern "C" u8 mCcDSph__8daNpcT_c[64]; extern "C" u8 mCcDCyl__11daBaseNpc_c[68]; extern "C" u8 mCcDSph__11daBaseNpc_c[64]; extern "C" u8 mCcDCyl__8daNpcF_c[68]; extern "C" u8 mCcDSph__8daNpcF_c[64]; extern "C" u8 mFindActorPtrs__8daNpcT_c[200]; extern "C" u8 mFindActorPList__8daNpcF_c[400]; extern "C" u8 mSrchName__8daNpcT_c[2 + 2 /* padding */]; extern "C" u8 mFindCount__8daNpcT_c[4]; extern "C" u8 m_name__23daBaseNpc_moveBgActor_c[4]; extern "C" u8 m_dzb_id__23daBaseNpc_moveBgActor_c[4]; extern "C" u8 m_set_func__23daBaseNpc_moveBgActor_c[4]; extern "C" u8 mFindCount__8daNpcF_c[4]; extern "C" u8 mSrchActorName__8daNpcF_c[2 + 2 /* padding */]; extern "C" extern u8 data_80450FF8[8]; // // External References: // extern "C" void __dt__4cXyzFv(); extern "C" void mDoMtx_ZXYrotS__FPA4_fsss(); extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); extern "C" void mDoMtx_XrotS__FPA4_fs(); extern "C" void mDoMtx_YrotS__FPA4_fs(); extern "C" void mDoMtx_YrotM__FPA4_fs(); extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); extern "C" void transM__14mDoMtx_stack_cFfff(); extern "C" void scaleM__14mDoMtx_stack_cFRC4cXyz(); extern "C" void XYZrotS__14mDoMtx_stack_cFRC5csXyz(); extern "C" void XYZrotM__14mDoMtx_stack_cFRC5csXyz(); extern "C" void ZXYrotS__14mDoMtx_stack_cFRC5csXyz(); extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); extern "C" void play__14mDoExt_baseAnmFv(); extern "C" void init__13mDoExt_bpkAnmFP16J3DMaterialTableP11J3DAnmColoriifss(); extern "C" void entry__13mDoExt_bpkAnmFP16J3DMaterialTablef(); extern "C" void init__13mDoExt_btpAnmFP16J3DMaterialTableP16J3DAnmTexPatterniifss(); extern "C" void entry__13mDoExt_btpAnmFP16J3DMaterialTables(); extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss(); extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef(); extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss(); extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef(); extern "C" void init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb(); extern "C" void changeBckOnly__13mDoExt_bckAnmFP15J3DAnmTransform(); extern "C" void entryJoint__13mDoExt_bckAnmFP12J3DModelDataUsf(); extern "C" void setMorf__13mDoExt_morf_cFf(); extern "C" void setAnm__16mDoExt_McaMorfSOFP15J3DAnmTransformiffff(); extern "C" void play__16mDoExt_McaMorfSOFUlSc(); extern "C" void entryDL__16mDoExt_McaMorfSOFv(); extern "C" void modelCalc__16mDoExt_McaMorfSOFv(); extern "C" void __ct__4cXyzFv(); extern "C" void mDoLib_project__FP3VecP3Vec(); extern "C" void __ct__10fopAc_ac_cFv(); extern "C" void __dt__5csXyzFv(); extern "C" void __dt__10fopAc_ac_cFv(); extern "C" void fopAc_IsActor__FPv(); extern "C" void fopAcM_SearchByID__FUiPP10fopAc_ac_c(); extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); extern "C" void fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz(); extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); extern "C" void fopAcM_searchActorDistance__FPC10fopAc_ac_cPC10fopAc_ac_c(); extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); extern "C" void fopAcM_orderSpeakEvent__FP10fopAc_ac_cUsUs(); extern "C" void fopAcM_orderChangeEventId__FP10fopAc_ac_csUsUs(); extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs(); extern "C" void fopAcM_setEffectMtx__FPC10fopAc_ac_cPC12J3DModelData(); extern "C" void fopAcM_getPolygonAngle__FRC13cBgS_PolyInfos(); extern "C" void fopAcM_getPolygonAngle__FPC8cM3dGPlas(); extern "C" void fopKyM_create__FsiP4cXyzP4cXyzPFPv_i(); extern "C" void fpcEx_Search__FPFPvPv_PvPv(); extern "C" void getStatusRoomDt__20dStage_roomControl_cFi(); extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); extern "C" void dComIfGp_getReverb__Fi(); extern "C" void dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj(); extern "C" void dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); extern "C" void dComIfGs_wolfeye_effect_check__Fv(); extern "C" void onEventBit__11dSv_event_cFUs(); extern "C" void offEventBit__11dSv_event_cFUs(); extern "C" void isEventBit__11dSv_event_cCFUs(); extern "C" void __dt__15J3DTevKColorAnmFv(); extern "C" void __dt__14J3DTevColorAnmFv(); extern "C" void __dt__11J3DTexNoAnmFv(); extern "C" void __dt__12J3DTexMtxAnmFv(); extern "C" void __dt__14J3DMatColorAnmFv(); extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); extern "C" void reset__14dEvt_control_cFv(); extern "C" void reset__14dEvt_control_cFPv(); extern "C" void convPId__14dEvt_control_cFUi(); extern "C" void setPtT__14dEvt_control_cFPv(); extern "C" void setPtI_Id__14dEvt_control_cFUi(); extern "C" void setObjectArchive__16dEvent_manager_cFPc(); extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc(); extern "C" void endCheck__16dEvent_manager_cFs(); extern "C" void getRunEventName__16dEvent_manager_cFv(); extern "C" void getEmitter__Q213dPa_control_c7level_cFUl(); extern "C" void set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); extern "C" void setEffectTwo__8dPaPoT_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC4cXyzPC4cXyzPC5csXyzPC4cXyzScff(); extern "C" void dPath_GetRoomPath__Fii(); extern "C" void getActionBtnB__12dAttention_cFv(); extern "C" void LockonTarget__12dAttention_cFl(); extern "C" void ActionTarget__12dAttention_cFl(); extern "C" void Release__4cBgSFP9dBgW_Base(); extern "C" void LineCross__4cBgSFP11cBgS_LinChk(); extern "C" void GroundCross__4cBgSFP11cBgS_GndChk(); extern "C" void ChkPolySafe__4cBgSFRC13cBgS_PolyInfo(); extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla(); extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c(); extern "C" void GetPolyColor__4dBgSFRC13cBgS_PolyInfo(); extern "C" void GetPolyAtt0__4dBgSFRC13cBgS_PolyInfo(); extern "C" void GetRoomId__4dBgSFRC13cBgS_PolyInfo(); extern "C" void __ct__12dBgS_AcchCirFv(); extern "C" void __dt__9dBgS_AcchFv(); extern "C" void __ct__9dBgS_AcchFv(); extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); extern "C" void __dt__11dBgS_GndChkFv(); extern "C" void __dt__11dBgS_LinChkFv(); extern "C" void Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c(); extern "C" void SetObj__16dBgS_PolyPassChkFv(); extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f(); extern "C" void __ct__4dBgWFv(); extern "C" void Move__4dBgWFv(); extern "C" void GetAc__22dCcD_GAtTgCoCommonBaseFv(); extern "C" void __ct__10dCcD_GSttsFv(); extern "C" void Move__10dCcD_GSttsFv(); extern "C" void ChkTgHit__12dCcD_GObjInfFv(); extern "C" void __ct__5csXyzFv(); extern "C" void getAttentionOffsetY__9daPy_py_cFv(); extern "C" void checkNowWolfEyeUp__9daPy_py_cFv(); extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); extern "C" void dKy_pol_sound_get__FPC13cBgS_PolyInfo(); extern "C" void dKy_darkworld_check__Fv(); extern "C" void getActor__12dMsgObject_cFv(); extern "C" void offMsgSendControl__12dMsgObject_cFv(); extern "C" void isMsgSendControl__12dMsgObject_cFv(); extern "C" void isMouthCheck__12dMsgObject_cFv(); extern "C" void __ct__10dMsgFlow_cFv(); extern "C" void __dt__10dMsgFlow_cFv(); extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c(); extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci(); extern "C" void checkEventRender__10dMsgFlow_cFPiPiPiPi(); extern "C" void getMsgNo__10dMsgFlow_cFv(); extern "C" void getMsg__10dMsgFlow_cFv(); extern "C" void __pl__4cXyzCFRC3Vec(); extern "C" void __mi__4cXyzCFRC3Vec(); extern "C" void normalize__4cXyzFv(); extern "C" void isZero__4cXyzCFv(); extern "C" void __apl__5csXyzFR5csXyz(); extern "C" void cM_rad2s__Ff(); 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 ChkUsed__9cBgW_BgIdCFv(); extern "C" void cBgW_CheckBGround__Ff(); extern "C" void cM3d_Len2dSqPntAndSegLine__FffffffPfPfPf(); extern "C" void __dt__8cM3dGCirFv(); extern "C" void cLib_addCalc2__FPffff(); extern "C" void cLib_addCalcAngleS2__FPssss(); extern "C" void cLib_chaseS__FPsss(); extern "C" void cLib_chaseF__FPfff(); extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz(); extern "C" void __ct__7cSAngleFRC7cSAngle(); extern "C" void __ct__7cSAngleFs(); extern "C" void Inv__7cSAngleCFv(); extern "C" void __mi__7cSAngleCFs(); extern "C" void __ct__7cSGlobeFRC4cXyz(); extern "C" void __ct__10Z2CreatureFv(); extern "C" void __dt__10Z2CreatureFv(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void init__12J3DFrameCtrlFs(); extern "C" void calc__14J3DMaterialAnmCFP11J3DMaterial(); extern "C" void removeMatColorAnimator__16J3DMaterialTableFP11J3DAnmColor(); extern "C" void removeTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern(); extern "C" void removeTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey(); extern "C" void removeTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); extern "C" void __register_global_object(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void _savegpr_16(); extern "C" void _savegpr_18(); extern "C" void _savegpr_19(); extern "C" void _savegpr_20(); 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_16(); extern "C" void _restgpr_18(); extern "C" void _restgpr_19(); extern "C" void _restgpr_20(); 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" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */]; extern "C" extern void* __vt__12J3DFrameCtrl[3]; extern "C" extern void* __vt__8cM3dGPla[3]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" u8 dist_table__12dAttention_c[6552]; extern "C" extern void* __vt__12dBgS_AcchCir[3]; extern "C" extern void* __vt__9dCcD_Stts[11]; extern "C" extern void* __vt__10dCcD_GStts[3]; extern "C" extern void* __vt__10cCcD_GStts[3]; extern "C" extern void* __vt__12dBgS_ObjAcch[9]; extern "C" extern void* __vt__9cCcD_Stts[8]; extern "C" extern void* __vt__14J3DMaterialAnm[4]; extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; extern "C" extern dScnKy_env_light_c g_env_light; extern "C" u8 mCurrentMtx__6J3DSys[48]; extern "C" u8 sincosTable___5JMath[65536]; extern "C" u8 Zero__5csXyz[4]; extern "C" extern u8 data_80451164[4]; // // Declarations: // /* 801456D4-801456E0 140014 000C+00 1/1 0/0 159/159 .text initialize__18daNpcT_ActorMngr_cFv */ void daNpcT_ActorMngr_c::initialize() { mActorID = -1; } /* 801456E0-801456FC 140020 001C+00 1/1 0/0 160/160 .text * entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c */ void daNpcT_ActorMngr_c::entry(fopAc_ac_c* actor) { mActorID = fopAcM_GetID(actor); } /* 801456FC-80145708 14003C 000C+00 1/1 0/0 382/382 .text remove__18daNpcT_ActorMngr_cFv */ void daNpcT_ActorMngr_c::remove() { mActorID = -1; } /* 80145708-80145764 140048 005C+00 2/2 1/1 233/233 .text getActorP__18daNpcT_ActorMngr_cFv */ fopAc_ac_c* daNpcT_ActorMngr_c::getActorP() { fopAc_ac_c* actor = NULL; if (fopAcM_SearchByID(mActorID, &actor) == 1 && actor != NULL && fopAcM_IsActor(actor)) { return actor; } return NULL; } /* ############################################################################################## */ /* 804533D8-804533DC 0019D8 0004+00 54/54 0/0 0/0 .sdata2 @4116 */ SECTION_SDATA2 static u8 lit_4116[4] = { 0x00, 0x00, 0x00, 0x00, }; /* 80145764-80145788 1400A4 0024+00 0/0 0/0 103/103 .text initialize__15daNpcT_MatAnm_cFv */ void daNpcT_MatAnm_c::initialize() { f32 value = FLOAT_LABEL(lit_4116); field_0xF4 = value; field_0xF8 = value; mTranslationX = value; mTranslationY = value; field_0x104 = 0; field_0x105 = 0; } /* ############################################################################################## */ /* 804533DC-804533E0 0019DC 0004+00 25/25 0/0 0/0 .sdata2 @4140 */ SECTION_SDATA2 static f32 lit_4140 = 1.0f; /* 804533E0-804533E8 0019E0 0008+00 24/24 0/0 0/0 .sdata2 @4142 */ SECTION_SDATA2 static f64 lit_4142 = 4503601774854144.0 /* cast s32 to float */; /* 80145788-80145898 1400C8 0110+00 1/0 0/0 0/0 .text calc__15daNpcT_MatAnm_cCFP11J3DMaterial */ #ifdef NONMATCHING // 1 instruction in wrong place + float literals void daNpcT_MatAnm_c::calc(J3DMaterial* param_0) const { J3DMaterialAnm::calc(param_0); for (u32 i = 0; i < 8; i++) { if (getTexMtxAnm(i).getAnmFlag()) { J3DTexMtxInfo* curr_mtx_info = ¶m_0->getTexGenBlock()->getTexMtx(i)->getTexMtxInfo(); if (field_0x104 != 0) { curr_mtx_info->mSRT.mTranslationX = mTranslationX; curr_mtx_info->mSRT.mTranslationY = mTranslationY; } if (field_0x105 != 0) { f32 tmp8 = 1.0f / (field_0x105 + 1); f32 tmp9 = (1.0f - tmp8); curr_mtx_info->mSRT.mTranslationX = field_0xF4 * tmp9 + curr_mtx_info->mSRT.mTranslationX * tmp8; curr_mtx_info->mSRT.mTranslationY = field_0xF8 * tmp9 + curr_mtx_info->mSRT.mTranslationY * tmp8; } field_0xF4 = curr_mtx_info->mSRT.mTranslationX; field_0xF8 = curr_mtx_info->mSRT.mTranslationY; } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_MatAnm_c::calc(J3DMaterial* param_0) const { nofralloc #include "asm/d/a/d_a_npc/calc__15daNpcT_MatAnm_cCFP11J3DMaterial.s" } #pragma pop #endif /* ############################################################################################## */ /* 804533E8-804533EC 0019E8 0004+00 13/13 0/0 0/0 .sdata2 @4148 */ SECTION_SDATA2 static f32 lit_4148 = -1.0f; /* 80145898-801458C0 1401D8 0028+00 4/4 0/0 533/533 .text initialize__22daNpcT_MotionSeqMngr_cFv */ void daNpcT_MotionSeqMngr_c::initialize() { mNo = 0; mOffset = 0; mStepNo = 0; field_0x14 = -1; field_0x18 = lit_4148; mEndSequence = false; } /* 801458C0-80145A24 140200 0164+00 2/2 0/0 2/2 .text play__22daNpcT_MotionSeqMngr_cFUsPiPf */ // matches with literals #ifdef NONMATCHING int daNpcT_MotionSeqMngr_c::play(u16 param_0, int* param_1, f32* param_2) { int ret = 0; if (field_0x14 == mStepNo && mStepNo < field_0x4) { if ((&mpSeqData[mNo * field_0x4])[mStepNo].field_0x0 != -1) { s8 tmp = (&mpSeqData[mNo * field_0x4])[mStepNo].field_0x3; if (tmp > 0 && tmp <= param_0) { mStepNo++; } else if (tmp == 0 && param_0 != 0) { mEndSequence = true; } } } if (field_0x14 != mStepNo && mStepNo < field_0x4) { if ((&mpSeqData[mNo * field_0x4])[mStepNo].field_0x0 != -1) { *param_1 = (&mpSeqData[mNo * field_0x4])[mStepNo].field_0x0; *param_2 = (&mpSeqData[mNo * field_0x4])[mStepNo].field_0x2; if (field_0x14 == -1 && FLOAT_LABEL(lit_4148) < field_0x18) { *param_2 = field_0x18; } ret = 1; } else { mEndSequence = true; } } field_0x14 = mStepNo; return ret; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcT_MotionSeqMngr_c::play(u16 param_0, int* param_1, f32* param_2) { nofralloc #include "asm/d/a/d_a_npc/play__22daNpcT_MotionSeqMngr_cFUsPiPf.s" } #pragma pop #endif /* 80145A24-80145A38 140364 0014+00 0/0 0/0 43/43 .text * checkEndSequence__22daNpcT_MotionSeqMngr_cFv */ s32 daNpcT_MotionSeqMngr_c::checkEndSequence() { return mEndSequence == true; } /* 80145A38-80145A78 140378 0040+00 2/2 0/0 0/0 .text daNpcT_addIdx__FiiRUsi */ static int daNpcT_addIdx(int param_0, int param_1, u16& param_2, int param_3) { int tmp = 0; int tmp2 = param_2; tmp2 += param_0; if (param_1 <= tmp2) { if (param_3) { int tmp3 = tmp2 / param_1; tmp2 -= (tmp3 * param_1); } else { tmp2 = param_1 + -1; tmp = 1; } } param_2 = tmp2; return tmp; } /* 80145A78-80145AC4 1403B8 004C+00 2/2 0/0 0/0 .text daNpcT_subIdx__FiiRUsi */ static int daNpcT_subIdx(int param_0, int param_1, u16& param_2, int param_3) { int tmp = 0; int tmp2 = param_2; tmp2 -= param_0; if (0 > tmp2) { if (param_3) { int tmp3 = tmp2 / param_1; int tmp4 = tmp2 - tmp3 * param_1; param_0 = param_1 + tmp4; int tmp5 = param_0 / param_1; tmp2 = param_0 - (tmp5 * param_1); } else { tmp2 = 0; tmp = 1; } } param_2 = tmp2; return tmp; } /* 80145AC4-80145B20 140404 005C+00 5/5 0/0 0/0 .text daNpcT_incIdx__FiRUsii */ static void daNpcT_incIdx(int param_0, u16& param_1, int param_2, int param_3) { param_3 ? daNpcT_subIdx(1,param_0,param_1,param_2) : daNpcT_addIdx(1,param_0,param_1,param_2); } /* 80145B20-80145B7C 140460 005C+00 3/3 0/0 0/0 .text daNpcT_decIdx__FiRUsii */ static void daNpcT_decIdx(int param_0, u16& param_1, int param_2, int param_3) { param_3 ? daNpcT_addIdx(1,param_0,param_1,param_2) : daNpcT_subIdx(1,param_0,param_1,param_2); } /* 80145B7C-80145C40 1404BC 00C4+00 1/1 0/0 0/0 .text * hermite__13daNpcT_Path_cFR4cXyzR4cXyzR4cXyzR4cXyzR16daNpcT_Hermite_cR4cXyz */ void daNpcT_Path_c::hermite(cXyz& param_0, cXyz& param_1, cXyz& param_2, cXyz& param_3, daNpcT_Hermite_c& param_4, cXyz& param_5) { param_5.x = param_0.x * param_4.mPosition.x + param_2.x * param_4.mPosition.y + param_1.x * param_4.mPosition.z + param_3.x * param_4.field_0x10; param_5.y = param_0.y * param_4.mPosition.x + param_2.y * param_4.mPosition.y + param_1.y * param_4.mPosition.z + param_3.y * param_4.field_0x10; param_5.z = param_0.z * param_4.mPosition.x + param_2.z * param_4.mPosition.y + param_1.z * param_4.mPosition.z + param_3.z * param_4.field_0x10; } /* 80145C40-80145C74 140580 0034+00 0/0 0/0 44/44 .text initialize__13daNpcT_Path_cFv */ void daNpcT_Path_c::initialize() { mpRoomPath = 0; f32 value = FLOAT_LABEL(lit_4116); mPosition.x = value; mPosition.y = value; mPosition.z = value; field_0x10 = value; field_0x14 = value; field_0x18 = value; mIdx = 0; mDirection = 0; mIsClosed = 0; } /* 80145C74-80145D2C 1405B4 00B8+00 0/0 0/0 18/18 .text setPathInfo__13daNpcT_Path_cFUcScUc */ #ifdef NONMATCHING // something wrong with the getPntPos inline int daNpcT_Path_c::setPathInfo(u8 i_pathIdx, s8 i_roomNo, u8 i_direction) { mpRoomPath = 0; mIdx = 0; mDirection = i_direction; if (i_pathIdx != 0xFF) { mpRoomPath = dPath_GetRoomPath(i_pathIdx,i_roomNo); if (!mpRoomPath) { return 0; } mIsClosed = mpRoomPath->m_closed & 1; int tmpidx = getIdx(); mPosition = *getPntPos(tmpidx); } return 1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcT_Path_c::setPathInfo(u8 param_0, s8 param_1, u8 param_2) { nofralloc #include "asm/d/a/d_a_npc/setPathInfo__13daNpcT_Path_cFUcScUc.s" } #pragma pop #endif /* 80145D2C-80145DA0 14066C 0074+00 0/0 0/0 1/1 .text setNextPathInfo__13daNpcT_Path_cFScUc */ int daNpcT_Path_c::setNextPathInfo(s8 param_0, u8 i_direction) { mIdx = 0; mDirection = i_direction; u16 next_id = mpRoomPath->m_nextID; if (next_id != 0xFFFF) { mpRoomPath = dPath_GetRoomPath(next_id,param_0); if (!mpRoomPath) { return 0; } mIsClosed = mpRoomPath->m_closed & 1; } return 1; } /* 80145DA0-80145DD0 1406E0 0030+00 0/0 0/0 1/1 .text reverse__13daNpcT_Path_cFv */ void daNpcT_Path_c::reverse() { if (mDirection == 1) { mDirection = 0; field_0x1E = 1; return; } mDirection = 1; field_0x1E = 1; } /* 80145DD0-80145E38 140710 0068+00 2/2 0/0 8/8 .text setNextIdx__13daNpcT_Path_cFi */ int daNpcT_Path_c::setNextIdx(int param_0) { u16 numPnts = getNumPnts(); if (chkClose() != 0 && numPnts == param_0) { daNpcT_incIdx(param_0,mIdx,1,mDirection); return; } daNpcT_incIdx(param_0,mIdx,0,mDirection); } /* 80145E38-80145FB4 140778 017C+00 0/0 0/0 1/1 .text getDstPos__13daNpcT_Path_cF4cXyzP4cXyzi */ #ifdef NONMATCHING int daNpcT_Path_c::getDstPos(cXyz param_0, cXyz* param_1, int i_idx) { cXyz* curr_room_pos = &mpRoomPath->m_points[mIdx].m_position; if (i_idx == mIdx) { mIdx--; param_1 = curr_room_pos; } else { do { int ret = chkPassed1(param_0,i_idx); if (ret == 0) { param_1 = curr_room_pos; break; } field_0x1E = 1; } while (setNextIdx(i_idx) == 0); mIdx = i_idx; mIdx--; param_1 = curr_room_pos; } return 1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcT_Path_c::getDstPos(cXyz param_0, cXyz* param_1, int param_2) { nofralloc #include "asm/d/a/d_a_npc/getDstPos__13daNpcT_Path_cF4cXyzP4cXyzi.s" } #pragma pop #endif /* 80145FB4-80146188 1408F4 01D4+00 0/0 0/0 10/10 .text getDstPosH__13daNpcT_Path_cF4cXyzP4cXyzii */ #ifdef NONMATCHING int daNpcT_Path_c::getDstPosH(cXyz param_0, cXyz* param_1, int param_2, int param_3) { cXyz* curr_room_pos = &mpRoomPath->m_points[mIdx].m_position; if (i_idx == mIdx) { mIdx--; param_1 = curr_room_pos; } else { do { int ret = chkPassed1(param_0,i_idx); if (ret == 0) { param_1 = curr_room_pos; break; } field_0x1E = 1; } while (setNextIdx(i_idx) == 0); mIdx = i_idx; mIdx--; param_1 = curr_room_pos; } return 1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcT_Path_c::getDstPosH(cXyz param_0, cXyz* param_1, int param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/getDstPosH__13daNpcT_Path_cF4cXyzP4cXyzii.s" } #pragma pop #endif /* ############################################################################################## */ /* 804533EC-804533F0 0019EC 0004+00 1/1 0/0 0/0 .sdata2 @4513 */ SECTION_SDATA2 static f32 lit_4513 = 100.0f; /* 80146188-801464D8 140AC8 0350+00 2/2 0/0 2/2 .text chkPassed1__13daNpcT_Path_cF4cXyzi */ #ifdef NONMATCHING int daNpcT_Path_c::chkPassed1(cXyz param_0, int param_1) { u16 idx = mIdx; u16 tmpIdx1 = idx; u16 tmpIdx2 = idx; u8 tmp; cXyz l_pos1; cXyz l_pos2; cXyz l_pos3; cXyz l_pos4; cXyz l_pos5; cXyz l_pos6; cXyz l_pos7; f32 l_float1; f32 l_float2; f32 l_float3; f32 l_float4; f32 l_float5; f32 l_float6; Vec l_vec; if ((mpRoomPath->m_closed & 1) == 0 || param_1 == mpRoomPath->m_num) { tmp = mDirection == 1; daNpcT_decIdx(param_1,tmpIdx2,1,tmp); tmp = mDirection == 1; daNpcT_incIdx(param_1,tmpIdx1,0,tmp); } else { tmp = mDirection == 1; daNpcT_decIdx(tmp,tmpIdx1,0,tmp); tmp = mDirection == 1; daNpcT_incIdx(mpRoomPath->m_num,tmpIdx2,1,tmp); } tmp = tmpIdx2; l_pos5 = mpRoomPath->m_points[idx].m_position; l_pos6 = mpRoomPath->m_points[mIdx].m_position; l_pos7 = mpRoomPath->m_points[mIdx].m_position; l_pos1 = l_pos7; l_pos2 = l_pos6; l_pos3 = l_pos5; if (tmp == mIdx) { l_vec.x = 0.0f; l_vec.y = 0.0f; l_vec.z = 100.0f; s16 angle = cLib_targetAngleY(&l_pos1,&l_pos2); mDoMtx_YrotS((MtxP)&mDoMtx_stack_c::now,angle); PSMTXMultVec((MtxP)&mDoMtx_stack_c::now,&l_vec,&l_vec); l_pos4 = (cXyz)l_vec + l_pos2; l_pos3 = l_pos4; } if (mIdx == tmpIdx1) { l_vec.x = 0.0f; l_vec.y = 0.0f; l_vec.z = 100.0f; s16 angle = cLib_targetAngleY(&l_pos3,&l_pos2); mDoMtx_YrotS((MtxP)&mDoMtx_stack_c::now,angle); PSMTXMultVec((MtxP)&mDoMtx_stack_c::now,&l_vec,&l_vec); l_pos5 = (cXyz)l_vec + l_pos2; l_pos1 = l_pos5; } if (cM3d_Len2dSqPntAndSegLine(param_0.x,param_0.z,l_pos3.x,l_pos3.z,l_pos1.x,l_pos1.z,&l_float1,&l_float2,&l_float3) && cM3d_Len2dSqPntAndSegLine(l_pos2.x,l_pos2.z,l_pos3.x,l_pos3.z,l_pos1.x,l_pos1.z,&l_float4,&l_float5,&l_float6)) { if (0x4000 < abs(cM_atan2s(l_pos1.x - l_pos3.x, l_pos1.z - l_pos3.z) - cM_atan2s(l_float4 - l_float1, l_float5 - l_float2))) { return 1; } } return 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcT_Path_c::chkPassed1(cXyz param_0, int param_1) { nofralloc #include "asm/d/a/d_a_npc/chkPassed1__13daNpcT_Path_cF4cXyzi.s" } #pragma pop #endif /* ############################################################################################## */ /* 803B36A8-803B36B4 0107C8 000C+00 1/1 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, }; /* 803B36B4-803B36D8 -00001 0024+00 1/2 0/0 0/0 .data @5258 */ SECTION_DATA static void* lit_5258[9] = { (void*)(((char*)setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz) + 0x3E8), (void*)(((char*)setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz) + 0x3F4), (void*)(((char*)setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz) + 0x428), (void*)(((char*)setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz) + 0x47C), (void*)(((char*)setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz) + 0x4A4), (void*)(((char*)setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz) + 0x4F0), (void*)(((char*)setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz) + 0x52C), (void*)(((char*)setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz) + 0x568), (void*)(((char*)setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz) + 0x568), }; /* 803B36D8-803B371C 0107F8 0044+00 0/0 0/0 54/54 .data mCcDCyl__8daNpcT_c */ SECTION_DATA u8 daNpcT_c::mCcDCyl[68] = { 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, }; /* 803B371C-803B375C 01083C 0040+00 0/0 0/0 3/3 .data mCcDSph__8daNpcT_c */ SECTION_DATA u8 daNpcT_c::mCcDSph[64] = { 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, }; /* 803B375C-803B37A0 01087C 0044+00 0/0 0/0 1/1 .data mCcDCyl__11daBaseNpc_c */ SECTION_DATA u8 daBaseNpc_c::mCcDCyl[68] = { 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, }; /* 803B37A0-803B37E0 0108C0 0040+00 0/0 0/0 1/1 .data mCcDSph__11daBaseNpc_c */ SECTION_DATA u8 daBaseNpc_c::mCcDSph[64] = { 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, }; /* 803B37E0-803B3824 010900 0044+00 0/0 0/0 36/36 .data mCcDCyl__8daNpcF_c */ SECTION_DATA u8 daNpcF_c::mCcDCyl[68] = { 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, }; /* 803B3824-803B3864 010944 0040+00 0/0 0/0 2/2 .data mCcDSph__8daNpcF_c */ SECTION_DATA u8 daNpcF_c::mCcDSph[64] = { 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, }; /* 803B3864-803B3870 010984 000C+00 2/2 0/0 0/0 .data __vt__18daNpcF_ActorMngr_c */ SECTION_DATA extern void* __vt__18daNpcF_ActorMngr_c[3] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__18daNpcF_ActorMngr_cFv, }; /* 803B3870-803B38D8 010990 0068+00 1/1 0/0 0/0 .data __vt__20daNpcF_MoveBgActor_c */ SECTION_DATA extern void* __vt__20daNpcF_MoveBgActor_c[26] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__20daNpcF_MoveBgActor_cFv, (void*)setParam__8daNpcF_cFv, (void*)main__8daNpcF_cFv, (void*)ctrlBtk__8daNpcF_cFv, (void*)adjustShapeAngle__8daNpcF_cFv, (void*)setMtx__8daNpcF_cFv, (void*)setMtx2__8daNpcF_cFv, (void*)setAttnPos__8daNpcF_cFv, (void*)setCollisions__8daNpcF_cFv, (void*)setExpressionAnm__8daNpcF_cFib, (void*)setExpressionBtp__8daNpcF_cFi, (void*)setExpression__8daNpcF_cFif, (void*)setMotionAnm__8daNpcF_cFif, (void*)setMotion__8daNpcF_cFifi, (void*)drawDbgInfo__8daNpcF_cFv, (void*)drawOtherMdls__8daNpcF_cFv, (void*)CreateHeap__20daNpcF_MoveBgActor_cFv, (void*)Create__20daNpcF_MoveBgActor_cFv, (void*)Execute__20daNpcF_MoveBgActor_cFPPA3_A4_f, (void*)Draw__20daNpcF_MoveBgActor_cFv, (void*)Delete__20daNpcF_MoveBgActor_cFv, (void*)IsDelete__20daNpcF_MoveBgActor_cFv, (void*)ToFore__20daNpcF_MoveBgActor_cFv, (void*)ToBack__20daNpcF_MoveBgActor_cFv, }; /* 803B38D8-803B3920 0109F8 0048+00 1/1 0/0 76/76 .data __vt__8daNpcF_c */ SECTION_DATA extern void* __vt__8daNpcF_c[18] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__8daNpcF_cFv, (void*)setParam__8daNpcF_cFv, (void*)main__8daNpcF_cFv, (void*)ctrlBtk__8daNpcF_cFv, (void*)adjustShapeAngle__8daNpcF_cFv, (void*)setMtx__8daNpcF_cFv, (void*)setMtx2__8daNpcF_cFv, (void*)setAttnPos__8daNpcF_cFv, (void*)setCollisions__8daNpcF_cFv, (void*)setExpressionAnm__8daNpcF_cFib, (void*)setExpressionBtp__8daNpcF_cFi, (void*)setExpression__8daNpcF_cFif, (void*)setMotionAnm__8daNpcF_cFif, (void*)setMotion__8daNpcF_cFifi, (void*)drawDbgInfo__8daNpcF_cFv, (void*)drawOtherMdls__8daNpcF_cFv, }; /* 803B3920-803B3948 010A40 0010+18 1/1 0/0 24/24 .data __vt__15daNpcF_MatAnm_c */ SECTION_DATA extern void* __vt__15daNpcF_MatAnm_c[4 + 6 /* padding */] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__15daNpcF_MatAnm_cFv, (void*)calc__15daNpcF_MatAnm_cCFP11J3DMaterial, /* padding */ NULL, NULL, NULL, NULL, NULL, NULL, }; /* 803B3948-803B39AC 010A68 0064+00 2/2 0/0 0/0 .data __vt__23daBaseNpc_moveBgActor_c */ SECTION_DATA extern void* __vt__23daBaseNpc_moveBgActor_c[25] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__23daBaseNpc_moveBgActor_cFv, (void*)execute__11daBaseNpc_cFv, (void*)draw__11daBaseNpc_cFf, (void*)getResName__11daBaseNpc_cFv, (void*)attnSttsOn__11daBaseNpc_cFii, (void*)setParam__11daBaseNpc_cFv, (void*)mainProc__11daBaseNpc_cFv, (void*)btkCtrl__11daBaseNpc_cFv, (void*)allAnmPlay__11daBaseNpc_cFv, (void*)adjustShapeAngle__11daBaseNpc_cFv, (void*)setMtx__11daBaseNpc_cFi, (void*)setCollisions__11daBaseNpc_cFv, (void*)setAttnPos__11daBaseNpc_cFv, (void*)drawOtherMdls__11daBaseNpc_cFv, (void*)dbgDraw__11daBaseNpc_cFv, (void*)CreateHeap__23daBaseNpc_moveBgActor_cFv, (void*)Create__23daBaseNpc_moveBgActor_cFv, (void*)Execute__23daBaseNpc_moveBgActor_cFPPA3_A4_f, (void*)Draw__23daBaseNpc_moveBgActor_cFv, (void*)Delete__23daBaseNpc_moveBgActor_cFv, (void*)IsDelete__23daBaseNpc_moveBgActor_cFv, (void*)ToFore__23daBaseNpc_moveBgActor_cFv, (void*)ToBack__23daBaseNpc_moveBgActor_cFv, }; /* 803B39AC-803B3A14 010ACC 0044+24 2/2 0/0 0/0 .data __vt__11daBaseNpc_c */ SECTION_DATA extern void* __vt__11daBaseNpc_c[17 + 9 /* padding */] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__11daBaseNpc_cFv, (void*)execute__11daBaseNpc_cFv, (void*)draw__11daBaseNpc_cFf, (void*)getResName__11daBaseNpc_cFv, (void*)attnSttsOn__11daBaseNpc_cFii, (void*)setParam__11daBaseNpc_cFv, (void*)mainProc__11daBaseNpc_cFv, (void*)btkCtrl__11daBaseNpc_cFv, (void*)allAnmPlay__11daBaseNpc_cFv, (void*)adjustShapeAngle__11daBaseNpc_cFv, (void*)setMtx__11daBaseNpc_cFi, (void*)setCollisions__11daBaseNpc_cFv, (void*)setAttnPos__11daBaseNpc_cFv, (void*)drawOtherMdls__11daBaseNpc_cFv, (void*)dbgDraw__11daBaseNpc_cFv, /* padding */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; /* 803B3A14-803B3A50 010B34 000C+30 3/3 0/0 0/0 .data __vt__18daBaseNpc_lookat_c */ SECTION_DATA extern void* __vt__18daBaseNpc_lookat_c[3 + 12 /* padding */] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__18daBaseNpc_lookat_cFv, /* padding */ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; /* 803B3A50-803B3A5C 010B70 000C+00 2/2 0/0 0/0 .data __vt__16daBaseNpc_path_c */ SECTION_DATA extern void* __vt__16daBaseNpc_path_c[3] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__16daBaseNpc_path_cFv, }; /* 803B3A5C-803B3A6C 010B7C 0010+00 1/1 0/0 0/0 .data __vt__18daBaseNpc_matAnm_c */ SECTION_DATA extern void* __vt__18daBaseNpc_matAnm_c[4] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__18daBaseNpc_matAnm_cFv, (void*)calc__18daBaseNpc_matAnm_cCFP11J3DMaterial, }; /* 803B3A6C-803B3A78 010B8C 000C+00 2/2 0/0 0/0 .data __vt__18daBaseNpc_acMngr_c */ SECTION_DATA extern void* __vt__18daBaseNpc_acMngr_c[3] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__18daBaseNpc_acMngr_cFv, }; /* 803B3A78-803B3B3C 010B98 00C4+00 1/1 0/0 110/110 .data __vt__8daNpcT_c */ SECTION_DATA extern void* __vt__8daNpcT_c[49] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__8daNpcT_cFv, (void*)ctrlBtk__8daNpcT_cFv, (void*)ctrlSubFaceMotion__8daNpcT_cFi, (void*)checkChangeJoint__8daNpcT_cFi, (void*)checkRemoveJoint__8daNpcT_cFi, (void*)getBackboneJointNo__8daNpcT_cFv, (void*)getNeckJointNo__8daNpcT_cFv, (void*)getHeadJointNo__8daNpcT_cFv, (void*)getFootLJointNo__8daNpcT_cFv, (void*)getFootRJointNo__8daNpcT_cFv, (void*)getEyeballLMaterialNo__8daNpcT_cFv, (void*)getEyeballRMaterialNo__8daNpcT_cFv, (void*)getEyeballMaterialNo__8daNpcT_cFv, (void*)ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel, (void*)afterJntAnm__8daNpcT_cFi, (void*)setParam__8daNpcT_cFv, (void*)checkChangeEvt__8daNpcT_cFv, (void*)evtTalk__8daNpcT_cFv, (void*)evtEndProc__8daNpcT_cFv, (void*)evtCutProc__8daNpcT_cFv, (void*)setAfterTalkMotion__8daNpcT_cFv, (void*)evtProc__8daNpcT_cFv, (void*)action__8daNpcT_cFv, (void*)beforeMove__8daNpcT_cFv, (void*)afterMoved__8daNpcT_cFv, (void*)setAttnPos__8daNpcT_cFv, (void*)setFootPos__8daNpcT_cFv, (void*)setCollision__8daNpcT_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__8daNpcT_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__8daNpcT_cFPiPi, (void*)changeBck__8daNpcT_cFPiPi, (void*)changeBtp__8daNpcT_cFPiPi, (void*)changeBtk__8daNpcT_cFPiPi, (void*)setMotionAnm__8daNpcT_cFifi, }; /* 803B3B3C-803B3B48 010C5C 000C+00 2/2 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, }; /* 803B3B48-803B3B54 010C68 000C+00 3/3 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, }; /* 803B3B54-803B3B60 010C74 000C+00 2/2 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, }; /* 803B3B60-803B3B6C 010C80 000C+00 2/2 0/0 0/0 .data __vt__16daNpcT_Hermite_c */ SECTION_DATA extern void* __vt__16daNpcT_Hermite_c[3] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__16daNpcT_Hermite_cFv, }; /* 804533F0-804533F4 0019F0 0004+00 4/4 0/0 0/0 .sdata2 @4672 */ SECTION_SDATA2 static f32 lit_4672 = 2.0f; /* 804533F4-804533F8 0019F4 0004+00 1/1 0/0 0/0 .sdata2 @4673 */ SECTION_SDATA2 static f32 lit_4673 = 3.0f; /* 804533F8-80453400 0019F8 0004+04 3/3 0/0 0/0 .sdata2 @4674 */ SECTION_SDATA2 static f32 lit_4674[1 + 1 /* padding */] = { -2.0f, /* padding */ 0.0f, }; /* 80453400-80453408 001A00 0008+00 1/1 0/0 0/0 .sdata2 @4677 */ SECTION_SDATA2 static f64 lit_4677 = 4503599627370496.0 /* cast u32 to float */; /* 801464D8-8014698C 140E18 04B4+00 1/1 0/0 0/0 .text chkPassed2__13daNpcT_Path_cF4cXyzP4cXyzii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcT_Path_c::chkPassed2(cXyz param_0, cXyz* param_1, int param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/chkPassed2__13daNpcT_Path_cF4cXyzP4cXyzii.s" } #pragma pop /* 8014698C-80146C98 1412CC 030C+00 1/1 0/0 0/0 .text * daNpcT_chkPassed__F4cXyzP4dPntUsUsiiP4cXyzPiPi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void daNpcT_chkPassed(cXyz param_0, dPnt* param_1, u16 param_2, u16 param_3, int param_4, int param_5, cXyz* param_6, int* param_7, int* param_8) { nofralloc #include "asm/d/a/d_a_npc/daNpcT_chkPassed__F4cXyzP4dPntUsUsiiP4cXyzPiPi.s" } #pragma pop /* 80146C98-80146CD8 1415D8 0040+00 0/0 0/0 121/121 .text initialize__15daNpcT_JntAnm_cFv */ void daNpcT_JntAnm_c::initialize() { mActrMngr.initialize(); memset(&field_0x14, 0, (u32)&field_0x158 - (u32)&field_0x14); } /* ############################################################################################## */ /* 80453408-80453410 001A08 0008+00 8/8 0/0 0/0 .sdata2 @4723 */ SECTION_SDATA2 static f64 lit_4723 = 0.5; /* 80453410-80453418 001A10 0008+00 8/8 0/0 0/0 .sdata2 @4724 */ SECTION_SDATA2 static f64 lit_4724 = 3.0; /* 80453418-80453420 001A18 0008+00 8/8 0/0 0/0 .sdata2 @4725 */ SECTION_SDATA2 static u8 lit_4725[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 80453420-80453424 001A20 0004+00 5/5 0/0 0/0 .sdata2 @5239 */ SECTION_SDATA2 static f32 lit_5239 = 182.04444885253906f; /* 80453424-80453428 001A24 0004+00 2/2 0/0 0/0 .sdata2 @5240 */ SECTION_SDATA2 static f32 lit_5240 = 9.58738019107841e-05f; /* 80453428-8045342C 001A28 0004+00 2/2 0/0 0/0 .sdata2 @5241 */ SECTION_SDATA2 static f32 lit_5241 = 1000.0f; /* 80146CD8-80147858 141618 0B80+00 1/0 0/0 52/52 .text * setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_JntAnm_c::setParam(fopAc_ac_c* param_0, J3DModel* param_1, cXyz* param_2, int param_3, int param_4, int param_5, f32 param_6, f32 param_7, f32 param_8, f32 param_9, f32 param_10, f32 param_11, f32 param_12, f32 param_13, f32 param_14, f32 param_15, cXyz* param_16) { nofralloc #include "asm/d/a/d_a_npc/setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz.s" } #pragma pop /* 80147858-80147C38 142198 03E0+00 1/1 0/0 0/0 .text calc__15daNpcT_JntAnm_cFf */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_JntAnm_c::calc(f32 param_0) { nofralloc #include "asm/d/a/d_a_npc/calc__15daNpcT_JntAnm_cFf.s" } #pragma pop /* ############################################################################################## */ /* 8045342C-80453430 001A2C 0004+00 1/1 0/0 0/0 .sdata2 @5410 */ SECTION_SDATA2 static f32 lit_5410 = 3.1415927410125732f; /* 80147C38-80147DCC 142578 0194+00 0/0 0/0 52/52 .text calcJntRad__15daNpcT_JntAnm_cFfff */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_JntAnm_c::calcJntRad(f32 param_0, f32 param_1, f32 param_2) { nofralloc #include "asm/d/a/d_a_npc/calcJntRad__15daNpcT_JntAnm_cFfff.s" } #pragma pop /* ############################################################################################## */ /* 80453430-80453434 001A30 0004+00 1/1 0/0 0/0 .sdata2 @5422 */ SECTION_SDATA2 static f32 lit_5422 = 10922.0f; /* 80453434-80453438 001A34 0004+00 1/1 0/0 0/0 .sdata2 @5423 */ SECTION_SDATA2 static f32 lit_5423 = 7281.0f; /* 80147DCC-80147E3C 14270C 0070+00 0/0 0/0 28/28 .text * setParam__19daNpcT_DmgStagger_cFP10fopAc_ac_cP10fopAc_ac_cs */ void daNpcT_DmgStagger_c::setParam(fopAc_ac_c* i_actor1, fopAc_ac_c* i_actor2, s16 i_angle) { if (i_actor2 && i_actor1) { field_0xc = FLOAT_LABEL(lit_5422); field_0x10 = FLOAT_LABEL(lit_5423); field_0x16 = fopAcM_searchActorAngleY(i_actor1,i_actor2) - i_angle; mStagger = 0x4000; } } /* ############################################################################################## */ /* 80453438-8045343C 001A38 0004+00 1/1 0/0 0/0 .sdata2 @5459 */ SECTION_SDATA2 static f32 lit_5459 = 1.0f / 10.0f; /* 8045343C-80453440 001A3C 0004+00 1/1 0/0 0/0 .sdata2 @5460 */ SECTION_SDATA2 static f32 lit_5460 = 125.0f; /* 80147E3C-80147FA4 14277C 0168+00 0/0 0/0 47/47 .text calc__19daNpcT_DmgStagger_cFi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_DmgStagger_c::calc(int param_0) { nofralloc #include "asm/d/a/d_a_npc/calc__19daNpcT_DmgStagger_cFi.s" } #pragma pop /* 80147FA4-80147FD4 1428E4 0030+00 0/0 0/0 53/53 .text * tgHitCallBack__8daNpcT_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::tgHitCallBack(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, fopAc_ac_c* param_2, dCcD_GObjInf* param_3) { nofralloc #include "asm/d/a/d_a_npc/tgHitCallBack__8daNpcT_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf.s" } #pragma pop /* ############################################################################################## */ /* 80425708-804257D0 052428 00C8+00 4/4 0/0 40/40 .bss mFindActorPtrs__8daNpcT_c */ fopAc_ac_c* daNpcT_c::mFindActorPtrs[50]; /* 80450FD8-80450FDC 0004D8 0002+02 4/4 0/0 2/2 .sbss mSrchName__8daNpcT_c */ s16 daNpcT_c::mSrchName; /* 80450FDC-80450FE0 0004DC 0004+00 4/4 0/0 42/42 .sbss mFindCount__8daNpcT_c */ s32 daNpcT_c::mFindCount; /* 80147FD4-80148058 142914 0084+00 3/3 0/0 2/2 .text srchActor__8daNpcT_cFPvPv */ int daNpcT_c::srchActor(void* actor, void* param_1) { if (mFindCount < 50 && fopAcM_IsActor(actor) && actor != param_1) { if (mSrchName == fopAcM_GetName((fopAc_ac_c*)actor)) { mFindActorPtrs[mFindCount] = (fopAc_ac_c*)actor; mFindCount++; } } return 0; } /* 80148058-80148094 142998 003C+00 1/1 0/0 7/7 .text getTrnsfrmAnmP__8daNpcT_cFPCci */ J3DAnmTransform* daNpcT_c::getTrnsfrmAnmP(char const* arcName, int fileIdx) { return (J3DAnmTransform*)dComIfG_getObjectRes(arcName, fileIdx); } /* 80148094-801480D0 1429D4 003C+00 1/1 0/0 11/11 .text getTrnsfrmKeyAnmP__8daNpcT_cFPCci */ J3DAnmTransformKey* daNpcT_c::getTrnsfrmKeyAnmP(char const* arcName, int fileIdx) { return (J3DAnmTransformKey*)dComIfG_getObjectRes(arcName, fileIdx); } /* 801480D0-8014810C 142A10 003C+00 1/1 0/0 1/1 .text getTexPtrnAnmP__8daNpcT_cFPCci */ J3DAnmTexPattern* daNpcT_c::getTexPtrnAnmP(char const* arcName, int fileIdx) { return (J3DAnmTexPattern*)dComIfG_getObjectRes(arcName, fileIdx); } /* 8014810C-80148148 142A4C 003C+00 1/1 0/0 7/7 .text getTexSRTKeyAnmP__8daNpcT_cFPCci */ J3DAnmTextureSRTKey* daNpcT_c::getTexSRTKeyAnmP(char const* arcName, int fileIdx) { return (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(arcName, fileIdx); } /* 80148148-80148184 142A88 003C+00 0/0 0/0 9/9 .text getTevRegKeyAnmP__8daNpcT_cFPCci */ J3DAnmTevRegKey* daNpcT_c::getTevRegKeyAnmP(char const* arcName, int fileIdx) { return (J3DAnmTevRegKey*)dComIfG_getObjectRes(arcName, fileIdx); } /* 80148184-801481C0 142AC4 003C+00 0/0 0/0 2/2 .text getColorAnmP__8daNpcT_cFPCci */ J3DAnmColor* daNpcT_c::getColorAnmP(char const* arcName, int fileIdx) { return (J3DAnmColor*)dComIfG_getObjectRes(arcName, fileIdx); } /* 801481C0-80148204 142B00 0044+00 1/1 0/0 0/0 .text setBckAnm__8daNpcT_cFP15J3DAnmTransformfiiib */ void daNpcT_c::setBckAnm(J3DAnmTransform* bck, f32 rate, int attr, int startF, int endF, bool modify) { mBckAnm.init(bck, TRUE, attr, rate, startF, endF, modify); } /* 80148204-801482F8 142B44 00F4+00 1/1 0/0 1/1 .text * setMcaMorfAnm__8daNpcT_cFP18J3DAnmTransformKeyffiii */ // matches with literals #ifdef NONMATCHING int daNpcT_c::setMcaMorfAnm(J3DAnmTransformKey* bck, f32 morf, f32 frame, int mode, int startF, int endF) { f32 start = startF; f32 end = endF; mMcaMorfAnm[0]->setAnm(bck, mode, frame, morf, start, end); if (mMcaMorfAnm[1] != NULL) { mMcaMorfAnm[1]->setAnm(bck, mode, frame, morf, start, end); } return 1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcT_c::setMcaMorfAnm(J3DAnmTransformKey* param_0, f32 param_1, f32 param_2, int param_3, int param_4, int param_5) { nofralloc #include "asm/d/a/d_a_npc/setMcaMorfAnm__8daNpcT_cFP18J3DAnmTransformKeyffiii.s" } #pragma pop #endif /* 801482F8-80148338 142C38 0040+00 1/1 0/0 1/1 .text * setBtpAnm__8daNpcT_cFP16J3DAnmTexPatternP12J3DModelDatafi */ void daNpcT_c::setBtpAnm(J3DAnmTexPattern* param_0, J3DModelData* modelData, f32 param_2, int param_3) { mBtpAnm.init(modelData, param_0, 1, param_3, param_2, 0, -1); } /* 80148338-80148378 142C78 0040+00 1/1 0/0 6/6 .text * setBtkAnm__8daNpcT_cFP19J3DAnmTextureSRTKeyP12J3DModelDatafi */ void daNpcT_c::setBtkAnm(J3DAnmTextureSRTKey* param_0, J3DModelData* modelData, f32 param_2, int param_3) { mBtkAnm.init(modelData, param_0, 1, param_3, param_2, 0, -1); } /* 80148378-801483B8 142CB8 0040+00 0/0 0/0 9/9 .text * setBrkAnm__8daNpcT_cFP15J3DAnmTevRegKeyP12J3DModelDatafi */ void daNpcT_c::setBrkAnm(J3DAnmTevRegKey* param_0, J3DModelData* modelData, f32 param_2, int param_3) { mBrkAnm.init(modelData, param_0, 1, param_3, param_2, 0, -1); } /* 801483B8-801483F8 142CF8 0040+00 0/0 0/0 2/2 .text * setBpkAnm__8daNpcT_cFP11J3DAnmColorP12J3DModelDatafi */ void daNpcT_c::setBpkAnm(J3DAnmColor* param_0, J3DModelData* modelData, f32 param_2, int param_3) { mBpkAnm.init(modelData, param_0, 1, param_3, param_2, 0, -1); } /* 801483F8-801484AC 142D38 00B4+00 0/0 0/0 58/58 .text loadRes__8daNpcT_cFPCScPPCc */ int daNpcT_c::loadRes(s8 const* resNoList, char const** resNameList) { for (int resLoad_cnt = 0, i = 0; i < 10; i++) { if (resNoList[i] == -1) { if (i != resLoad_cnt) { break; } return cPhs_COMPLEATE_e; } int phase_state = dComIfG_resLoad(&field_0x8e0[i], resNameList[resNoList[i]]); if (phase_state == cPhs_COMPLEATE_e) { resLoad_cnt++; } if (phase_state == cPhs_ERROR_e || phase_state == cPhs_UNK3_e) { return cPhs_ERROR_e; } } return cPhs_ZERO_e; } /* 801484AC-8014852C 142DEC 0080+00 0/0 0/0 58/58 .text deleteRes__8daNpcT_cFPCScPPCc */ void daNpcT_c::deleteRes(s8 const* resNoList, char const** resNameList) { for (int i = 0; i < 10 && resNoList[i] != -1; i++) { dComIfG_resDelete(&field_0x8e0[i], resNameList[resNoList[i]]); } } /* ############################################################################################## */ /* 80453440-80453444 001A40 0004+00 3/3 0/0 0/0 .sdata2 @5667 */ SECTION_SDATA2 static f32 lit_5667 = -1000000000.0f; /* 8014852C-8014886C 142E6C 0340+00 0/0 0/0 59/59 .text execute__8daNpcT_cFv */ int daNpcT_c::execute() { setParam(); if (!evtProc()) { action(); } beforeMove(); fopAcM_posMoveF(this, field_0x864.GetCCMoveP()); field_0x68c.CrrPos(dComIfG_Bgsp()); field_0x930 = field_0x68c.m_gnd; field_0xdca = fopAcM_getPolygonAngle(field_0x930, current.angle.y); field_0xdf4 = field_0x68c.GetGroundH(); if (FLOAT_LABEL(lit_5667) != field_0xdf4) { field_0xda8 = dKy_pol_sound_get(&field_0x68c.m_gnd); field_0xe24 = dComIfGp_getReverb(field_0x864.GetRoomId()); if (field_0x68c.ChkWaterHit() && field_0x68c.m_wtr.GetHeight() > field_0xdf4) { field_0xda8 = dKy_pol_sound_get(&field_0x68c.m_wtr); } } afterMoved(); if (FLOAT_LABEL(lit_5667) != field_0xdf4) { setEnvTevColor(); setRoomNo(); } if (field_0xb50.checkEntryNewMotion()) { ctrlFaceMotion(); ctrlSubFaceMotion(1); } if (field_0xb74.checkEntryNewMotion()) { ctrlMotion(); } playAllAnm(); ctrlFaceMotion(); ctrlSubFaceMotion(0); ctrlMotion(); setAttnPos(); cLib_chaseF(&field_0xdfc, FLOAT_LABEL(lit_4116), FLOAT_LABEL(lit_4140)); twilight(); setCollision(); if (!field_0xe2c) { if ((field_0xe33 && i_dComIfGp_getEvent().i_isOrderOK()) || !i_dComIfGp_event_runCheck()) { evtOrder(); } } clrParam(); decTmr(); return 1; } /* ############################################################################################## */ /* 80453444-80453448 001A44 0004+00 3/3 0/0 0/0 .sdata2 @5794 */ SECTION_SDATA2 static f32 lit_5794 = 20.0f; /* 8014886C-80148C70 1431AC 0404+00 0/0 0/0 58/58 .text draw__8daNpcT_cFiifP11_GXColorS10fiii */ // regalloc + literals #ifdef NONMATCHING int daNpcT_c::draw(int param_0, int param_1, f32 param_2, GXColorS10* color, f32 param_4, int param_5, int param_6, int param_7) { J3DModel* model = mMcaMorfAnm[0]->getModel(); J3DModelData* modelData = model->getModelData(); field_0xe34 = 1; if (drawDbgInfo() || checkHide() || field_0xe2b) { return 1; } mTevStr.mFogColor.r = 0; mTevStr.mFogColor.g = 0; mTevStr.mFogColor.b = 0; mTevStr.mFogColor.a = 0; if (color != NULL) { mTevStr.mFogColor.r = color->r; mTevStr.mFogColor.g = color->g; mTevStr.mFogColor.b = color->b; mTevStr.mFogColor.a = color->a; } if (field_0xdb8 && mTimer) { f32 r = (f32)field_0xdb8 / (f32)mTimer; if (cM3d_IsZero_inverted(r)) { mTevStr.mFogColor.r = r * 20.0f; } } else if (param_0 != 0) { mTevStr.mFogColor.g = 20; } if (field_0xd98 & 0x800) { mBtpAnm.entry(modelData); } if (field_0xd98 & 0x80) { mBtkAnm.entry(modelData); } if (field_0xd98 & 0x100) { mBrkAnm.entry(modelData); } if (field_0xd98 & 0x200) { mBpkAnm.entry(modelData); } if (param_1 != 0) { fopAcM_setEffectMtx(this, modelData); } if (param_5 != 0) { drawGhost(); } else if (field_0xa89 != 0) { g_env_light.settingTevStruct(4, ¤t.pos, &mTevStr); g_env_light.setLightTevColorType_MAJI(model->getModelData(), &mTevStr); dComIfGd_setListDark(); mMcaMorfAnm[0]->entryDL(); dComIfGd_setList(); } else { g_env_light.settingTevStruct(0, ¤t.pos, &mTevStr); g_env_light.setLightTevColorType_MAJI(model->getModelData(), &mTevStr); mMcaMorfAnm[0]->entryDL(); } if (field_0xd98 & 0x800) { mBtpAnm.remove(modelData); } if (field_0xd98 & 0x80) { mBtkAnm.remove(modelData); } if (field_0xd98 & 0x100) { mBrkAnm.remove(modelData); } if (field_0xd98 & 0x200) { mBpkAnm.remove(modelData); } if (param_6 == 0) { if (param_7 == 0) { field_0xd94 = dComIfGd_setShadow( field_0xd94, 1, model, ¤t.pos, param_2, param_4, current.pos.y, field_0xdf4, field_0x930, &mTevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); } else { dComIfGd_setSimpleShadow(¤t.pos, field_0xdf4, param_4, field_0x930, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); } } drawOtherMdl(); return 1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcT_c::draw(int param_0, int param_1, f32 param_2, _GXColorS10* param_3, f32 param_4, int param_5, int param_6, int param_7) { nofralloc #include "asm/d/a/d_a_npc/draw__8daNpcT_cFiifP11_GXColorS10fiii.s" } #pragma pop #endif /* 80148C70-80148CCC 1435B0 005C+00 1/1 0/0 58/58 .text setEnvTevColor__8daNpcT_cFv */ void daNpcT_c::setEnvTevColor() { mTevStr.mEnvrIdxOverride = dComIfG_Bgsp().GetPolyColor(field_0x930); mTevStr.mRoomNo = dComIfG_Bgsp().GetRoomId(field_0x930); } /* 80148CCC-80148D10 14360C 0044+00 1/1 0/0 58/58 .text setRoomNo__8daNpcT_cFv */ void daNpcT_c::setRoomNo() { int roomId = dComIfG_Bgsp().GetRoomId(field_0x930); fopAcM_SetRoomNo(this, roomId); field_0x864.SetRoomId(roomId); } /* 80148D10-80148DD0 143650 00C0+00 1/1 0/0 0/0 .text checkEndAnm__8daNpcT_cFf */ #ifdef NONMATCHING int daNpcT_c::checkEndAnm(f32 param_0) { bool ret; u8 play_mode = mMcaMorfAnm[0]->getPlayMode(); int tmp = 2; if (play_mode == tmp || play_mode < tmp) { tmp = 0; if (play_mode < tmp) { ret = 0; } else { return mMcaMorfAnm[0]->isLoop(); } } if (ret == 0 && cM3d_IsZero_inverted(mMcaMorfAnm[0]->getPlaySpeed())) { if (cM3d_IsZero_inverted(param_0)) { play_mode = 1; } } if (!mMcaMorfAnm[0]->mFrameCtrl.checkState(1) && mMcaMorfAnm[0]->mFrameCtrl.getRate() != 0.0f) { ret = 1; } if (play_mode = 1 && cM3d_IsZero_inverted(param_0)) { ret = 1; } return ret; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcT_c::checkEndAnm(f32 param_0) { nofralloc #include "asm/d/a/d_a_npc/checkEndAnm__8daNpcT_cFf.s" } #pragma pop #endif /* 80148DD0-80148E4C 143710 007C+00 1/1 0/0 0/0 .text checkEndAnm__8daNpcT_cFP12J3DFrameCtrlf */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::checkEndAnm(J3DFrameCtrl* param_0, f32 param_1) { nofralloc #include "asm/d/a/d_a_npc/checkEndAnm__8daNpcT_cFP12J3DFrameCtrlf.s" } #pragma pop /* 80148E4C-801490D4 14378C 0288+00 1/1 0/0 0/0 .text playAllAnm__8daNpcT_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::playAllAnm() { nofralloc #include "asm/d/a/d_a_npc/playAllAnm__8daNpcT_cFv.s" } #pragma pop /* 801490D4-80149190 143A14 00BC+00 1/0 1/0 55/0 .text ctrlBtk__8daNpcT_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::ctrlBtk() { nofralloc #include "asm/d/a/d_a_npc/ctrlBtk__8daNpcT_cFv.s" } #pragma pop /* 80149190-8014924C 143AD0 00BC+00 0/0 0/0 57/57 .text setMtx__8daNpcT_cFv */ void daNpcT_c::setMtx() { J3DModel* model = mMcaMorfAnm[0]->getModel(); J3DModelData* modelData = model->getModelData(); mDoMtx_stack_c::transS(current.pos); mDoMtx_stack_c::ZXYrotM(field_0xd78); mDoMtx_stack_c::scaleM(mScale); model->i_setBaseTRMtx(mDoMtx_stack_c::get()); model->setUserArea((u32)this); mMcaMorfAnm[0]->onMorfNone(); if (cM3d_IsZero(field_0xdfc) != 0) { mMcaMorfAnm[0]->offMorfNone(); } if (field_0xd98 & 0x400) { mBckAnm.getBckAnm()->setFrame(mBckAnm.getFrame()); } mMcaMorfAnm[0]->modelCalc(); } /* 8014924C-80149300 143B8C 00B4+00 1/1 0/0 0/0 .text ctrlFaceMotion__8daNpcT_cFv */ void daNpcT_c::ctrlFaceMotion() { int l_int; f32 l_float; if (field_0xb50.play(field_0xe20,&l_int,&l_float)) { setFaceMotionAnm(l_int,true); if (l_float < FLOAT_LABEL(lit_4116)) { mMcaMorfAnm[0]->setMorf(field_0xa80); field_0xdfc = field_0xa80; if (mMcaMorfAnm[1]) { mMcaMorfAnm[1]->setMorf(field_0xa80); } } else { mMcaMorfAnm[0]->setMorf(l_float); field_0xdfc = l_float; if (mMcaMorfAnm[1]) { mMcaMorfAnm[1]->setMorf(l_float); } } } } /* 80149300-801493B8 143C40 00B8+00 1/1 0/0 0/0 .text ctrlMotion__8daNpcT_cFv */ #ifdef NONMATCHING // 1 instruction in the wrong place + 1 register wrong void daNpcT_c::ctrlMotion() { int l_int; int l_int2; f32 l_float; if (field_0xb74.play(field_0xe1e,&l_int,&l_float)) { l_int2 = 0; if (l_float < FLOAT_LABEL(lit_4148)) { l_int2 = 1; } int l_int3 = l_int; if (l_float < FLOAT_LABEL(lit_4116)) { setMotionAnm(l_int3,field_0xa84,l_int2); } f32 tmp = FLOAT_LABEL(lit_4116); field_0xdfc = tmp; if (field_0xa88) { mMcaMorfAnm[0]->setMorf(tmp); f32 tmp2 = FLOAT_LABEL(lit_4116); field_0xdfc = tmp2; if (mMcaMorfAnm[1]) { mMcaMorfAnm[1]->setMorf(tmp2); } } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::ctrlMotion() { nofralloc #include "asm/d/a/d_a_npc/ctrlMotion__8daNpcT_cFv.s" } #pragma pop #endif /* 801493B8-8014951C 143CF8 0164+00 1/1 0/0 2/2 .text ctrlMsgAnm__8daNpcT_cFPiPiP10fopAc_ac_ci */ #ifdef NONMATCHING // few extra mr instructions + regalloc nightmare int daNpcT_c::ctrlMsgAnm(int* param_0, int* param_1, fopAc_ac_c* param_2, int param_3) { int* tmp0 = param_0; int* tmp1 = param_1; fopAc_ac_c* tmp2 = param_2; int tmp3 = param_3; *param_0 = -1; *param_1 = -1; if (tmp3 != 0 || mEvtInfo.checkCommandTalk() || field_0xdac != -1) { fopAc_ac_c* talk_partner = (fopAc_ac_c*)dComIfGp_event_getTalkPartner(); dMsgObject_c* talk_partner_conv = (dMsgObject_c*)talk_partner; if (tmp2 == talk_partner) { u16 actor_command = talk_partner_conv->getActor()->mEvtInfo.mCommand; if (actor_command == 2 || actor_command == 3) { mSubMtd = (profile_method_class*)-1; } else if (actor_command == 6) { if (talk_partner->mSubMtd != mSubMtd) { *tmp0 = dComIfGp_getMesgFaceAnimeAttrInfo(); *tmp1 = dComIfGp_getMesgAnimeAttrInfo(); mSubMtd = talk_partner->mSubMtd; } if (talk_partner_conv->isMouthCheck()) { field_0xd98 &= ~0x4000; } else { field_0xd98 |= 0x4000; } field_0xdb4 = 0x14; } else { if (field_0xd98 & 0x4000) { field_0xd98 &= ~0x4000; } mSubMtd = (profile_method_class*)-1; } } else { mSubMtd = (profile_method_class*)-1; if (field_0xdb4) { field_0xdb4 = 1; } } if (tmp3 == 0) { cLib_calcTimer(&field_0xdb4); } return field_0xdb4; } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcT_c::ctrlMsgAnm(int* param_0, int* param_1, fopAc_ac_c* param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/ctrlMsgAnm__8daNpcT_cFPiPiP10fopAc_ac_ci.s" } #pragma pop #endif /* 8014951C-8014997C 143E5C 0460+00 1/0 1/0 59/0 .text ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) { nofralloc #include "asm/d/a/d_a_npc/ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel.s" } #pragma pop /* ############################################################################################## */ /* 80392710-80392710 01ED70 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80392710 = "DEFAULT_GETITEM"; #pragma pop /* 8014997C-80149BB4 1442BC 0238+00 1/0 1/0 58/0 .text evtProc__8daNpcT_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcT_c::evtProc() { nofralloc #include "asm/d/a/d_a_npc/evtProc__8daNpcT_cFv.s" } #pragma pop /* 80149BB4-80149D7C 1444F4 01C8+00 1/0 1/0 60/0 .text setFootPos__8daNpcT_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::setFootPos() { nofralloc #include "asm/d/a/d_a_npc/setFootPos__8daNpcT_cFv.s" } #pragma pop /* 80149D7C-8014A05C 1446BC 02E0+00 1/0 1/0 60/0 .text setFootPrtcl__8daNpcT_cFP4cXyzff */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::setFootPrtcl(cXyz* param_0, f32 param_1, f32 param_2) { nofralloc #include "asm/d/a/d_a_npc/setFootPrtcl__8daNpcT_cFP4cXyzff.s" } #pragma pop /* 8014A05C-8014A064 14499C 0008+00 1/0 1/0 60/0 .text checkCullDraw__8daNpcT_cFv */ bool daNpcT_c::checkCullDraw() { return false; } /* 8014A064-8014A0B0 1449A4 004C+00 1/0 1/0 60/0 .text twilight__8daNpcT_cFv */ void daNpcT_c::twilight() { if (field_0xa89 != 0) { mAttentionInfo.mFlags |= 0x400000; field_0xe2b = 0; mAttentionInfo.mFlags |= 0x800000; setHitodamaPrtcl(); } } /* 8014A0B0-8014A224 1449F0 0174+00 1/0 1/0 59/0 .text evtOrder__8daNpcT_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::evtOrder() { nofralloc #include "asm/d/a/d_a_npc/evtOrder__8daNpcT_cFv.s" } #pragma pop /* 8014A224-8014A324 144B64 0100+00 0/0 2/2 81/81 .text evtChange__8daNpcT_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::evtChange() { nofralloc #include "asm/d/a/d_a_npc/evtChange__8daNpcT_cFv.s" } #pragma pop /* 8014A324-8014A388 144C64 0064+00 1/0 1/0 60/0 .text clrParam__8daNpcT_cFv */ void daNpcT_c::clrParam() { field_0xd7e = field_0xd78; mCutType = 0; memset(&field_0xe30, 0, (u32)&field_0xe38 - (u32)&field_0xe30); field_0xba8.clrDirectFlag(); } /* 8014A388-8014A628 144CC8 02A0+00 1/1 0/0 57/57 .text setFaceMotionAnm__8daNpcT_cFib */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::setFaceMotionAnm(int param_0, bool param_1) { nofralloc #include "asm/d/a/d_a_npc/setFaceMotionAnm__8daNpcT_cFib.s" } #pragma pop /* 8014A628-8014A908 144F68 02E0+00 1/0 1/0 59/0 .text setMotionAnm__8daNpcT_cFifi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::setMotionAnm(int param_0, f32 param_1, int param_2) { nofralloc #include "asm/d/a/d_a_npc/setMotionAnm__8daNpcT_cFifi.s" } #pragma pop /* ############################################################################################## */ /* 80453448-8045344C 001A48 0004+00 1/1 0/0 0/0 .sdata2 @6667 */ SECTION_SDATA2 static f32 lit_6667 = 300.0f; /* 8014A908-8014A99C 145248 0094+00 0/0 0/0 40/40 .text setPos__8daNpcT_cF4cXyz */ void daNpcT_c::setPos(cXyz i_pos) { i_pos.y += 300.0f; field_0x930.SetPos(&i_pos); i_pos.y = dComIfG_Bgsp().GroundCross(&field_0x930); current.pos = i_pos; next.pos = current.pos; } /* 8014A99C-8014AA18 1452DC 007C+00 0/0 0/0 29/29 .text setAngle__8daNpcT_cF5csXyz */ void daNpcT_c::setAngle(csXyz i_angle) { current.angle = i_angle; shape_angle = current.angle; field_0xd78 = current.angle; field_0xd7e = field_0xd78; next.angle = current.angle; } /* 8014AA18-8014AA40 145358 0028+00 0/0 0/0 138/138 .text setAngle__8daNpcT_cFs */ void daNpcT_c::setAngle(s16 i_angle) { current.angle.y = i_angle; shape_angle.y = current.angle.y; field_0xd78.y = current.angle.y; field_0xd7e.y = field_0xd78.y; next.angle.y = current.angle.y; } /* 8014AA40-8014AAD0 145380 0090+00 0/0 0/0 33/33 .text hitChk__8daNpcT_cFP12dCcD_GObjInfUl */ fopAc_ac_c* daNpcT_c::hitChk(dCcD_GObjInf* i_objInf, u32 param_1) { dCcD_Stts* stts = (dCcD_Stts*)i_objInf->GetStts(); stts->Move(); if (mTimer == 0) { fopAc_ac_c* hitAc = i_objInf->GetTgHitAc(); if (hitAc != NULL) { if (fopAcM_GetName(hitAc) == PROC_NPC_TK && param_1 & 1) { ((daNPC_TK_c*)hitAc)->setBump(); return hitAc; } return hitAc; } } return NULL; } /* 8014AAD0-8014ABD0 145410 0100+00 0/0 0/0 27/27 .text setDamage__8daNpcT_cFiii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::setDamage(int param_0, int param_1, int param_2) { nofralloc #include "asm/d/a/d_a_npc/setDamage__8daNpcT_cFiii.s" } #pragma pop /* ############################################################################################## */ /* 8045344C-80453450 001A4C 0004+00 7/7 0/0 0/0 .sdata2 @6775 */ SECTION_SDATA2 static f32 lit_6775 = 180.0f; /* 8014ABD0-8014ACF0 145510 0120+00 2/2 0/0 53/53 .text chkActorInSight__8daNpcT_cFP10fopAc_ac_cfs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::chkActorInSight(fopAc_ac_c* param_0, f32 param_1, s16 param_2) { nofralloc #include "asm/d/a/d_a_npc/chkActorInSight__8daNpcT_cFP10fopAc_ac_cfs.s" } #pragma pop /* 8014ACF0-8014ADA0 145630 00B0+00 2/2 0/0 12/12 .text chkPointInArea__8daNpcT_cF4cXyz4cXyzfffs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::chkPointInArea(cXyz param_0, cXyz param_1, f32 param_2, f32 param_3, f32 param_4, s16 param_5) { nofralloc #include "asm/d/a/d_a_npc/chkPointInArea__8daNpcT_cF4cXyz4cXyzfffs.s" } #pragma pop /* 8014ADA0-8014AE1C 1456E0 007C+00 1/1 0/0 1/1 .text chkPointInArea__8daNpcT_cF4cXyz4cXyz4cXyzs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3) { nofralloc #include "asm/d/a/d_a_npc/chkPointInArea__8daNpcT_cF4cXyz4cXyz4cXyzs.s" } #pragma pop /* ############################################################################################## */ /* 80453450-80453454 001A50 0004+00 2/2 0/0 0/0 .sdata2 @6904 */ SECTION_SDATA2 static f32 lit_6904 = 30.0f; /* 80453454-80453458 001A54 0004+00 2/2 0/0 0/0 .sdata2 @6905 */ SECTION_SDATA2 static f32 lit_6905 = 45.0f; /* 80453458-8045345C 001A58 0004+00 2/2 0/0 0/0 .sdata2 @6906 */ SECTION_SDATA2 static f32 lit_6906 = 60.0f; /* 8045345C-80453460 001A5C 0004+00 2/2 0/0 0/0 .sdata2 @6907 */ SECTION_SDATA2 static f32 lit_6907 = 90.0f; /* 80453460-80453464 001A60 0004+00 2/2 0/0 0/0 .sdata2 @6908 */ SECTION_SDATA2 static f32 lit_6908 = 110.0f; /* 80453464-80453468 001A64 0004+00 2/2 0/0 0/0 .sdata2 @6909 */ SECTION_SDATA2 static f32 lit_6909 = 135.0f; /* 8014AE1C-8014B010 14575C 01F4+00 1/1 0/0 0/0 .text chkFindActor__8daNpcT_cFP10fopAc_ac_cis */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::chkFindActor(fopAc_ac_c* param_0, int param_1, s16 param_2) { nofralloc #include "asm/d/a/d_a_npc/chkFindActor__8daNpcT_cFP10fopAc_ac_cis.s" } #pragma pop /* 8014B010-8014B024 145950 0014+00 5/5 1/1 0/0 .text getDistTable__12dAttention_cFi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dAttention_c::getDistTable(int param_0) { nofralloc #include "asm/d/a/d_a_npc/getDistTable__12dAttention_cFi.s" } #pragma pop /* 8014B024-8014B0C8 145964 00A4+00 1/1 0/0 0/0 .text chkWolfAction__8daNpcT_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::chkWolfAction() { nofralloc #include "asm/d/a/d_a_npc/chkWolfAction__8daNpcT_cFv.s" } #pragma pop /* 8014B0C8-8014B338 145A08 0270+00 0/0 0/0 2/2 .text chkFindWolf__8daNpcT_cFsiiffffi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::chkFindWolf(s16 param_0, int param_1, int param_2, f32 param_3, f32 param_4, f32 param_5, f32 param_6, int param_7) { nofralloc #include "asm/d/a/d_a_npc/chkFindWolf__8daNpcT_cFsiiffffi.s" } #pragma pop /* 8014B338-8014B3EC 145C78 00B4+00 0/0 0/0 75/75 .text srchPlayerActor__8daNpcT_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::srchPlayerActor() { nofralloc #include "asm/d/a/d_a_npc/srchPlayerActor__8daNpcT_cFv.s" } #pragma pop /* 8014B3EC-8014B4A4 145D2C 00B8+00 3/3 0/0 5/5 .text getAttnPos__8daNpcT_cFP10fopAc_ac_c */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::getAttnPos(fopAc_ac_c* param_0) { nofralloc #include "asm/d/a/d_a_npc/getAttnPos__8daNpcT_cFP10fopAc_ac_c.s" } #pragma pop /* ############################################################################################## */ /* 80453468-8045346C 001A68 0004+00 4/4 0/0 0/0 .sdata2 @7089 */ SECTION_SDATA2 static f32 lit_7089 = 0.0054931640625f; /* 8045346C-80453470 001A6C 0004+00 4/4 0/0 0/0 .sdata2 @7090 */ SECTION_SDATA2 static f32 lit_7090 = 8.0f; /* 80453470-80453474 001A70 0004+00 2/2 0/0 0/0 .sdata2 @7091 */ SECTION_SDATA2 static f32 lit_7091 = 16384.0f; /* 8014B4A4-8014B648 145DE4 01A4+00 1/1 0/0 1/1 .text turn__8daNpcT_cFsii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::turn(s16 param_0, int param_1, int param_2) { nofralloc #include "asm/d/a/d_a_npc/turn__8daNpcT_cFsii.s" } #pragma pop /* 8014B648-8014B808 145F88 01C0+00 0/0 0/0 177/177 .text step__8daNpcT_cFsiiii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::step(s16 param_0, int param_1, int param_2, int param_3, int param_4) { nofralloc #include "asm/d/a/d_a_npc/step__8daNpcT_cFsiiii.s" } #pragma pop /* ############################################################################################## */ /* 80453474-80453478 001A74 0004+00 1/1 0/0 0/0 .sdata2 @7222 */ SECTION_SDATA2 static f32 lit_7222 = 17.0f / 20.0f; /* 8014B808-8014BB00 146148 02F8+00 0/0 0/0 11/11 .text calcSpeedAndAngle__8daNpcT_cF4cXyziss */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::calcSpeedAndAngle(cXyz param_0, int param_1, s16 param_2, s16 param_3) { nofralloc #include "asm/d/a/d_a_npc/calcSpeedAndAngle__8daNpcT_cF4cXyziss.s" } #pragma pop /* ############################################################################################## */ /* 80453478-8045347C 001A78 0004+00 1/1 0/0 0/0 .sdata2 @7242 */ SECTION_SDATA2 static f32 lit_7242 = 6.0f; /* 8014BB00-8014BBF0 146440 00F0+00 0/0 0/0 2/2 .text getActorDistance__8daNpcT_cFP10fopAc_ac_cii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::getActorDistance(fopAc_ac_c* param_0, int param_1, int param_2) { nofralloc #include "asm/d/a/d_a_npc/getActorDistance__8daNpcT_cFP10fopAc_ac_cii.s" } #pragma pop /* 8014BBF0-8014BC78 146530 0088+00 0/0 1/1 180/180 .text initTalk__8daNpcT_cFiPP10fopAc_ac_c */ int daNpcT_c::initTalk(int param_0, fopAc_ac_c** param_1) { mFlow.init(this,param_0,0,param_1); field_0xdc8 = fopAcM_searchPlayerAngleY(this); if (checkStep()) { mStepNo = 0; } f32 tmp = FLOAT_LABEL(lit_4116); speedF = tmp; speed.set(tmp,tmp,tmp); return 1; } /* 8014BC78-8014BE2C 1465B8 01B4+00 0/0 0/0 169/169 .text talkProc__8daNpcT_cFPiiPP10fopAc_ac_ci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::talkProc(int* param_0, int param_1, fopAc_ac_c** param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/talkProc__8daNpcT_cFPiiPP10fopAc_ac_ci.s" } #pragma pop /* ############################################################################################## */ /* 8045347C-80453480 001A7C 0004+00 2/2 0/0 0/0 .sdata2 @7337 */ SECTION_SDATA2 static f32 lit_7337 = 1000000000.0f; /* 8014BE2C-8014BEE4 14676C 00B8+00 0/0 0/0 25/25 .text getNearestActorP__8daNpcT_cFs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::getNearestActorP(s16 param_0) { nofralloc #include "asm/d/a/d_a_npc/getNearestActorP__8daNpcT_cFs.s" } #pragma pop /* 8014BEE4-8014BFB0 146824 00CC+00 0/0 0/0 12/12 .text getEvtAreaTagP__8daNpcT_cFii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::getEvtAreaTagP(int param_0, int param_1) { nofralloc #include "asm/d/a/d_a_npc/getEvtAreaTagP__8daNpcT_cFii.s" } #pragma pop /* 8014BFB0-8014C030 1468F0 0080+00 0/0 0/0 5/5 .text getShopItemTagP__8daNpcT_cFv */ #ifdef NONMATCHING // few instructions off + regalloc u32 daNpcT_c::getShopItemTagP() { mFindCount = 0; mSrchName = 0x127; fpcM_Search((fopAcIt_JudgeFunc)srchActor,(void*)this); int i = 0; for (;;) { if (0 >= mFindCount) { break; } u16 param = fopAcM_GetParam(mFindActorPtrs[i]); if (param == 0xf0000000) { return param; } i++; } return 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u32 daNpcT_c::getShopItemTagP() { nofralloc #include "asm/d/a/d_a_npc/getShopItemTagP__8daNpcT_cFv.s" } #pragma pop #endif /* ############################################################################################## */ /* 80453480-80453484 001A80 0004+00 1/1 0/0 0/0 .sdata2 id$7388 */ SECTION_SDATA2 static u8 id_7388[4] = { 0x84, 0x97, 0x84, 0x98, }; /* 80453484-80453488 001A84 0004+00 2/2 0/0 0/0 .sdata2 @7442 */ SECTION_SDATA2 static f32 lit_7442 = 4.0f; /* 8014C030-8014C200 146970 01D0+00 1/1 0/0 0/0 .text setHitodamaPrtcl__8daNpcT_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::setHitodamaPrtcl() { nofralloc #include "asm/d/a/d_a_npc/setHitodamaPrtcl__8daNpcT_cFv.s" } #pragma pop /* ############################################################################################## */ /* 80453488-8045348C 001A88 0004+00 1/1 0/0 0/0 .sdata2 @7550 */ SECTION_SDATA2 static f32 lit_7550 = 608.0f; /* 8045348C-80453490 001A8C 0004+00 1/1 0/0 0/0 .sdata2 @7551 */ SECTION_SDATA2 static f32 lit_7551 = 448.0f; /* 8014C200-8014C384 146B40 0184+00 0/0 0/0 2/2 .text * daNpcT_chkActorInScreen__FP10fopAc_ac_cfffffffi */ #ifdef NONMATCHING bool daNpcT_chkActorInScreen(fopAc_ac_c* i_ActorP, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, f32 param_6, f32 param_7, int param_8) { bool ret = false; cXyz pos_array[4]; cXyz pos1; cXyz pos2; cXyz pos3; cXyz pos4; if (fopAcM_GetMtx(i_ActorP)) { ret = false; } else { pos_array[0].set(param_1,param_4,param_2); pos_array[1].set(param_3,param_4,param_2); pos_array[2].set(param_1,param_4,param_6); pos_array[3].set(param_3,param_4,param_5); pos1.set(param_1,param_2,param_3); pos2.set(param_3,param_1,param_2); pos3.set(param_1,param_2,param_6); pos4.set(param_3,param_1,param_6); mDoMtx_stack_c::copy(fopAcM_GetMtx(i_ActorP)); mDoMtx_stack_c::transM(FLOAT_LABEL(lit_4116),param_6,FLOAT_LABEL(lit_4116)); PSMTXMultVec((MtxP)&mDoMtx_stack_c::now,&pos_array[0],&pos_array[0]); if (param_8) { for (int i = 0; i < 8; i++) { mDoLib_project(&pos_array[i],&pos4); if (true) { ret = false; } } ret = true; } else { ret = false; } } return ret; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_chkActorInScreen(fopAc_ac_c* param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, f32 param_6, f32 param_7, int param_8) { nofralloc #include "asm/d/a/d_a_npc/daNpcT_chkActorInScreen__FP10fopAc_ac_cfffffffi.s" } #pragma pop #endif /* 8014C384-8014C500 146CC4 017C+00 1/1 0/0 3/3 .text daNpcT_chkPointInArea__F4cXyz4cXyz4cXyzsi */ #ifdef NONMATCHING bool daNpcT_chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3, int param_4) { bool ret; cXyz l_pos; mDoMtx_stack_c::YrotS(-param_3); mDoMtx_stack_c::transM(-param_1.x,-param_1.y,-param_1.z); mDoMtx_stack_c::multVec(¶m_0,&l_pos); f32 l_float1 = fabsf(param_2.x); f32 l_float2 = fabsf(param_2.z); f32 l_float3 = fabsf(l_pos.x); f32 l_float4 = fabsf(l_pos.z); l_pos = param_0 - param_1; if (param_4 != 0 || (FLOAT_LABEL(lit_4116) <= l_pos.y && l_pos.y > param_2.y)) { ret = false; } else { f32 tmp1 = (l_float3 * l_float3) / (l_float1 * l_float1); f32 tmp2 = (l_float4 * l_float4) / (l_float2 * l_float2); tmp1 + tmp2 <= FLOAT_LABEL(lit_4140) ? ret = true : ret = false; } return ret; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3, int param_4) { nofralloc #include "asm/d/a/d_a_npc/daNpcT_chkPointInArea__F4cXyz4cXyz4cXyzsi.s" } #pragma pop #endif /* 8014C500-8014C5E0 146E40 00E0+00 0/0 0/0 29/29 .text * daNpcT_getPlayerInfoFromPlayerList__FiiP4cXyzP5csXyz */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_getPlayerInfoFromPlayerList(int param_0, int param_1, cXyz* param_2, csXyz* param_3) { nofralloc #include "asm/d/a/d_a_npc/daNpcT_getPlayerInfoFromPlayerList__FiiP4cXyzP5csXyz.s" } #pragma pop /* 8014C5E0-8014C700 146F20 0120+00 0/0 0/0 5/5 .text daNpcT_chkDoBtnIsSpeak__FP10fopAc_ac_c */ bool daNpcT_chkDoBtnIsSpeak(fopAc_ac_c* i_ActorP) { bool ret = 0; if (i_dComIfGp_getDoStatus() == 0x1c) { if (daPy_getPlayerActorClass()->checkPriActorOwn(i_ActorP)) { for (int i = 0; i < dComIfGp_getAttention().GetActionCount(); i++) { if (dComIfGp_getAttention().ActionTarget(i) == i_ActorP && dComIfGp_getAttention().getActionBtnB() && dComIfGp_getAttention().getActionBtnB()->mType == 3) { ret = 1; }; } for (int i = 0; i < dComIfGp_getAttention().GetLockonCount(); i++) { if (dComIfGp_getAttention().LockonTarget(i) == i_ActorP && dComIfGp_getAttention().getActionBtnB() && dComIfGp_getAttention().getActionBtnB()->mType == 1) { ret = 1; }; } } } return ret; } /* 8014C700-8014CA18 147040 0318+00 0/0 0/0 2/2 .text * daNpcT_judgeRace__FP5dPathPP10fopAc_ac_cP16daNpcT_pntData_ciPi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_judgeRace(dPath* param_0, fopAc_ac_c** param_1, daNpcT_pntData_c* param_2, int param_3, int* param_4) { nofralloc #include "asm/d/a/d_a_npc/daNpcT_judgeRace__FP5dPathPP10fopAc_ac_cP16daNpcT_pntData_ciPi.s" } #pragma pop /* 8014CA18-8014CA2C 147358 0014+00 0/0 0/0 61/61 .text daNpcT_getDistTableIdx__Fii */ u8 daNpcT_getDistTableIdx(int param_0, int param_1) { return param_0 + param_1 * 0x14 + 0x5e; } /* 8014CA2C-8014CA6C 14736C 0040+00 0/0 0/0 25/25 .text daNpcT_onEvtBit__FUl */ void daNpcT_onEvtBit(u32 i_idx) { dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[i_idx]); } /* 8014CA6C-8014CAAC 1473AC 0040+00 0/0 0/0 1/1 .text daNpcT_offEvtBit__FUl */ void daNpcT_offEvtBit(u32 i_idx) { dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[i_idx]); } /* 8014CAAC-8014CAEC 1473EC 0040+00 0/0 0/0 155/155 .text daNpcT_chkEvtBit__FUl */ void daNpcT_chkEvtBit(u32 i_idx) { i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_idx]); } /* 8014CAEC-8014CB2C 14742C 0040+00 0/0 0/0 26/26 .text daNpcT_onTmpBit__FUl */ void daNpcT_onTmpBit(u32 i_idx) { dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_idx]); } /* 8014CB2C-8014CB6C 14746C 0040+00 0/0 0/0 78/78 .text daNpcT_offTmpBit__FUl */ void daNpcT_offTmpBit(u32 i_idx) { dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_idx]); } /* 8014CB6C-8014CBAC 1474AC 0040+00 0/0 0/0 38/38 .text daNpcT_chkTmpBit__FUl */ void daNpcT_chkTmpBit(u32 i_idx) { dComIfGs_isTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_idx]); } /* 8014CBAC-8014CBF4 1474EC 0048+00 1/0 0/0 0/0 .text __dt__16daNpcT_Hermite_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daNpcT_Hermite_c::~daNpcT_Hermite_c() { nofralloc #include "asm/d/a/d_a_npc/__dt__16daNpcT_Hermite_cFv.s" } #pragma pop /* 8014CBF4-8014CC0C 147534 0018+00 1/0 1/0 0/0 .text decTmr__8daNpcT_cFv */ void daNpcT_c::decTmr() { if (mTimer != 0) { mTimer--; } } /* 8014CC0C-8014CC10 14754C 0004+00 1/0 1/0 0/0 .text setCollision__8daNpcT_cFv */ void daNpcT_c::setCollision() { /* empty function */ } /* 8014CC10-8014CC14 147550 0004+00 1/0 1/0 0/0 .text setAttnPos__8daNpcT_cFv */ void daNpcT_c::setAttnPos() { /* empty function */ } /* 8014CC14-8014CC18 147554 0004+00 1/0 1/0 0/0 .text ctrlSubFaceMotion__8daNpcT_cFi */ void daNpcT_c::ctrlSubFaceMotion(int param_0) { /* empty function */ } /* 8014CC18-8014CC1C 147558 0004+00 1/0 1/0 0/0 .text afterMoved__8daNpcT_cFv */ void daNpcT_c::afterMoved() { /* empty function */ } /* 8014CC1C-8014CC20 14755C 0004+00 1/0 1/0 0/0 .text beforeMove__8daNpcT_cFv */ void daNpcT_c::beforeMove() { /* empty function */ } /* 8014CC20-8014CC24 147560 0004+00 1/0 1/0 0/0 .text action__8daNpcT_cFv */ void daNpcT_c::action() { /* empty function */ } /* 8014CC24-8014CC28 147564 0004+00 1/0 1/0 0/0 .text setParam__8daNpcT_cFv */ void daNpcT_c::setParam() { /* empty function */ } /* 8014CC28-8014CC2C 147568 0004+00 1/0 1/0 0/0 .text drawOtherMdl__8daNpcT_cFv */ void daNpcT_c::drawOtherMdl() { /* empty function */ } /* 8014CC2C-8014CC30 14756C 0004+00 1/0 1/0 0/0 .text drawGhost__8daNpcT_cFv */ void daNpcT_c::drawGhost() { /* empty function */ } /* 8014CC30-8014CC38 147570 0008+00 1/0 1/0 0/0 .text drawDbgInfo__8daNpcT_cFv */ int daNpcT_c::drawDbgInfo() { return false; } /* 8014CC38-8014CC40 147578 0008+00 1/0 1/0 0/0 .text checkRemoveJoint__8daNpcT_cFi */ bool daNpcT_c::checkRemoveJoint(int param_0) { return false; } /* 8014CC40-8014CC48 147580 0008+00 1/0 1/0 0/0 .text checkChangeJoint__8daNpcT_cFi */ bool daNpcT_c::checkChangeJoint(int param_0) { return false; } /* 8014CC48-8014CC4C 147588 0004+00 1/0 1/0 0/0 .text afterJntAnm__8daNpcT_cFi */ void daNpcT_c::afterJntAnm(int param_0) { /* empty function */ } /* 8014CC4C-8014CC54 14758C 0008+00 1/0 1/0 0/0 .text getHeadJointNo__8daNpcT_cFv */ s32 daNpcT_c::getHeadJointNo() { return -1; } /* 8014CC54-8014CC5C 147594 0008+00 1/0 1/0 0/0 .text getNeckJointNo__8daNpcT_cFv */ s32 daNpcT_c::getNeckJointNo() { return -1; } /* 8014CC5C-8014CC64 14759C 0008+00 1/0 1/0 0/0 .text getBackboneJointNo__8daNpcT_cFv */ s32 daNpcT_c::getBackboneJointNo() { return -1; } /* 8014CC64-8014CC68 1475A4 0004+00 1/0 1/0 0/0 .text setAfterTalkMotion__8daNpcT_cFv */ void daNpcT_c::setAfterTalkMotion() { /* empty function */ } /* 8014CC68-8014CC70 1475A8 0008+00 1/0 1/0 0/0 .text evtCutProc__8daNpcT_cFv */ bool daNpcT_c::evtCutProc() { return false; } /* 8014CC70-8014CC78 1475B0 0008+00 1/0 1/0 0/0 .text evtEndProc__8daNpcT_cFv */ bool daNpcT_c::evtEndProc() { return true; } /* 8014CC78-8014CC80 1475B8 0008+00 1/0 1/0 0/0 .text evtTalk__8daNpcT_cFv */ bool daNpcT_c::evtTalk() { return true; } /* 8014CC80-8014CC88 1475C0 0008+00 1/0 1/0 0/0 .text checkChangeEvt__8daNpcT_cFv */ bool daNpcT_c::checkChangeEvt() { return false; } /* 8014CC88-8014CC90 1475C8 0008+00 1/0 1/0 0/0 .text getFootRJointNo__8daNpcT_cFv */ s32 daNpcT_c::getFootRJointNo() { return -1; } /* 8014CC90-8014CC98 1475D0 0008+00 1/0 1/0 0/0 .text getFootLJointNo__8daNpcT_cFv */ s32 daNpcT_c::getFootLJointNo() { return -1; } /* 8014CC98-8014CCA0 1475D8 0008+00 1/0 1/0 0/0 .text chkXYItems__8daNpcT_cFv */ bool daNpcT_c::chkXYItems() { return false; } /* 8014CCA0-8014CCA8 1475E0 0008+00 1/0 1/0 0/0 .text afterSetFaceMotionAnm__8daNpcT_cFiifi */ bool daNpcT_c::afterSetFaceMotionAnm(int param_0, int param_1, f32 param_2, int param_3) { return true; } /* 8014CCA8-8014CCAC 1475E8 0004+00 1/0 1/0 0/0 .text changeBtp__8daNpcT_cFPiPi */ void daNpcT_c::changeBtp(int* param_0, int* param_1) { /* empty function */ } /* 8014CCAC-8014CCB0 1475EC 0004+00 1/0 1/0 0/0 .text changeBck__8daNpcT_cFPiPi */ void daNpcT_c::changeBck(int* param_0, int* param_1) { /* empty function */ } /* 8014CCB0-8014CCE0 1475F0 0030+00 1/0 1/0 0/0 .text * getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::getFaceMotionAnm(daNpcT_faceMotionAnmData_c param_0) { nofralloc #include "asm/d/a/d_a_npc/getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c.s" } #pragma pop /* 8014CCE0-8014CCE8 147620 0008+00 1/0 1/0 0/0 .text afterSetMotionAnm__8daNpcT_cFiifi */ bool daNpcT_c::afterSetMotionAnm(int param_0, int param_1, f32 param_2, int param_3) { return true; } /* 8014CCE8-8014CCEC 147628 0004+00 1/0 1/0 0/0 .text changeBtk__8daNpcT_cFPiPi */ void daNpcT_c::changeBtk(int* param_0, int* param_1) { /* empty function */ } /* 8014CCEC-8014CCF0 14762C 0004+00 1/0 1/0 0/0 .text changeAnm__8daNpcT_cFPiPi */ void daNpcT_c::changeAnm(int* param_0, int* param_1) { /* empty function */ } /* 8014CCF0-8014CD20 147630 0030+00 1/0 1/0 0/0 .text * getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcT_c::getMotionAnm(daNpcT_motionAnmData_c param_0) { nofralloc #include "asm/d/a/d_a_npc/getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c.s" } #pragma pop /* 8014CD20-8014D0A8 147660 0388+00 1/0 1/1 0/0 .text __dt__8daNpcT_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // asm daNpcT_c::~daNpcT_c() { extern "C" asm void __dt__8daNpcT_cFv() { nofralloc #include "asm/d/a/d_a_npc/__dt__8daNpcT_cFv.s" } #pragma pop /* 8014D0A8-8014D0B0 1479E8 0008+00 1/0 1/0 0/0 .text getEyeballLMaterialNo__8daNpcT_cFv */ bool daNpcT_c::getEyeballLMaterialNo() { return false; } /* 8014D0B0-8014D0B8 1479F0 0008+00 1/0 1/0 0/0 .text getEyeballRMaterialNo__8daNpcT_cFv */ bool daNpcT_c::getEyeballRMaterialNo() { return false; } /* 8014D0B8-8014D0C0 1479F8 0008+00 1/0 1/0 0/0 .text getEyeballMaterialNo__8daNpcT_cFv */ bool daNpcT_c::getEyeballMaterialNo() { return false; } /* 8014D0C0-8014D108 147A00 0048+00 1/0 0/0 0/0 .text __dt__22daNpcT_MotionSeqMngr_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // asm daNpcT_MotionSeqMngr_c::~daNpcT_MotionSeqMngr_c() { extern "C" asm void __dt__22daNpcT_MotionSeqMngr_cFv() { nofralloc #include "asm/d/a/d_a_npc/__dt__22daNpcT_MotionSeqMngr_cFv.s" } #pragma pop /* 8014D108-8014D150 147A48 0048+00 1/0 0/0 0/0 .text __dt__18daNpcT_ActorMngr_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // asm daNpcT_ActorMngr_c::~daNpcT_ActorMngr_c() { extern "C" asm void __dt__18daNpcT_ActorMngr_cFv() { nofralloc #include "asm/d/a/d_a_npc/__dt__18daNpcT_ActorMngr_cFv.s" } #pragma pop /* 8014D150-8014D24C 147A90 00FC+00 1/0 0/0 0/0 .text __dt__15daNpcT_JntAnm_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // asm daNpcT_JntAnm_c::~daNpcT_JntAnm_c() { extern "C" asm void __dt__15daNpcT_JntAnm_cFv() { nofralloc #include "asm/d/a/d_a_npc/__dt__15daNpcT_JntAnm_cFv.s" } #pragma pop /* ############################################################################################## */ /* 803B3B6C-803B3B80 010C8C 0010+04 1/1 0/0 45/45 .data __vt__15daNpcT_MatAnm_c */ SECTION_DATA extern void* __vt__15daNpcT_MatAnm_c[4 + 1 /* padding */] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__15daNpcT_MatAnm_cFv, (void*)calc__15daNpcT_MatAnm_cCFP11J3DMaterial, /* padding */ NULL, }; /* 8014D24C-8014D32C 147B8C 00E0+00 1/0 0/0 0/0 .text __dt__15daNpcT_MatAnm_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daNpcT_MatAnm_c::~daNpcT_MatAnm_c() { nofralloc #include "asm/d/a/d_a_npc/__dt__15daNpcT_MatAnm_cFv.s" } #pragma pop /* 8014D32C-8014D348 147C6C 001C+00 1/1 0/0 0/0 .text cLib_calcTimer__FPs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off extern "C" asm void func_8014D32C(void* _this, s16* param_0) { nofralloc #include "asm/d/a/d_a_npc/func_8014D32C.s" } #pragma pop /* 8014D348-8014D364 147C88 001C+00 7/7 2/2 0/0 .text cLib_calcTimer__FPi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off extern "C" asm void func_8014D348(void* _this, int* param_0) { nofralloc #include "asm/d/a/d_a_npc/func_8014D348.s" } #pragma pop /* 8014D364-8014D3D8 147CA4 0074+00 4/4 1/1 0/0 .text cLib_getRndValue__Fii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off extern "C" asm void func_8014D364(void* _this, int param_0, int param_1) { nofralloc #include "asm/d/a/d_a_npc/func_8014D364.s" } #pragma pop /* ############################################################################################## */ /* 80392680-803926B0 01ECE0 0030+00 1/1 0/0 4/4 .rodata mCcDObjData__8daNpcT_c */ SECTION_RODATA u8 const daNpcT_c::mCcDObjData[48] = { 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, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; COMPILER_STRIP_GATE(0x80392680, &daNpcT_c::mCcDObjData); /* 8014D3D8-8014D538 147D18 0160+00 0/0 1/0 0/0 .text __sinit_d_a_npc_cpp */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void __sinit_d_a_npc_cpp() { nofralloc #include "asm/d/a/d_a_npc/__sinit_d_a_npc_cpp.s" } #pragma pop #pragma push #pragma force_active on REGISTER_CTORS(0x8014D3D8, __sinit_d_a_npc_cpp); #pragma pop /* 8014D538-8014D584 147E78 004C+00 2/2 0/0 0/0 .text daBaseNpc_addIdx__FiiPUsi */ #ifdef NONMATCHING static int daBaseNpc_addIdx(int param_0, int param_1, u16* param_2, int param_3) { int tmp; int ret; ret = 0; tmp = *param_2 - param_0; if (0 >= tmp) { if (param_3 != 0) { tmp += param_1 * (tmp / param_1 + 1); } else { tmp = 0; ret = 1; } } *param_2 = (u16)tmp; return ret; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void daBaseNpc_addIdx(int param_0, int param_1, u16* param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/daBaseNpc_addIdx__FiiPUsi.s" } #pragma pop #endif /* 8014D584-8014D5C4 147EC4 0040+00 2/2 0/0 0/0 .text daBaseNpc_subIdx__FiiPUsi */ #ifdef NONMATCHING static int daBaseNpc_subIdx(int param_0, int param_1, u16* param_2, int param_3) { int tmp; int ret; ret = 0; tmp = *param_2 - param_0; if (0 >= tmp) { if (param_3 != 0) { tmp += param_1 * (tmp / param_1 + 1); } else { tmp = 0; ret = 1; } } *param_2 = (u16)tmp; return ret; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void daBaseNpc_subIdx(int param_0, int param_1, u16* param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/daBaseNpc_subIdx__FiiPUsi.s" } #pragma pop #endif /* 8014D5C4-8014D620 147F04 005C+00 2/2 0/0 0/0 .text daBaseNpc_incIdx__FiPUsii */ static void daBaseNpc_incIdx(int i_pathNo, u16* i_pathIdx, int i_pathClosed, int i_pathDirection) { if (i_pathDirection < 0) { daBaseNpc_subIdx(1,i_pathNo,i_pathIdx,i_pathClosed); } else { daBaseNpc_addIdx(1,i_pathNo,i_pathIdx,i_pathClosed);; } } /* 8014D620-8014D67C 147F60 005C+00 1/1 0/0 0/0 .text daBaseNpc_decIdx__FiPUsii */ static void daBaseNpc_decIdx(int i_pathNo, u16* i_pathIdx, int i_pathClosed, int i_pathDirection) { if (i_pathDirection < 0) { daBaseNpc_addIdx(1,i_pathNo,i_pathIdx,i_pathClosed); } else { daBaseNpc_subIdx(1,i_pathNo,i_pathIdx,i_pathClosed);; } } /* 8014D67C-8014D804 147FBC 0188+00 1/1 0/0 0/0 .text daNpcBase_BBasis__FiiiPi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void daNpcBase_BBasis(int param_0, int param_1, int param_2, int* param_3) { nofralloc #include "asm/d/a/d_a_npc/daNpcBase_BBasis__FiiiPi.s" } #pragma pop /* 8014D804-8014D81C 148144 0018+00 0/0 0/0 1/1 .text __ct__18daBaseNpc_acMngr_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daBaseNpc_acMngr_c::daBaseNpc_acMngr_c() { nofralloc #include "asm/d/a/d_a_npc/__ct__18daBaseNpc_acMngr_cFv.s" } #pragma pop /* 8014D81C-8014D838 14815C 001C+00 0/0 0/0 9/9 .text entry__18daBaseNpc_acMngr_cFP10fopAc_ac_c */ #ifndef NONMATCHING void daBaseNpc_acMngr_c::entry(fopAc_ac_c* i_ActorP) { mActorId = fopAcM_GetID(i_ActorP); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_acMngr_c::entry(fopAc_ac_c* param_0) { nofralloc #include "asm/d/a/d_a_npc/entry__18daBaseNpc_acMngr_cFP10fopAc_ac_c.s" } #pragma pop #endif /* 8014D838-8014D884 148178 004C+00 0/0 0/0 6/6 .text getActor__18daBaseNpc_acMngr_cFv */ #ifdef NONMATCHING // finish fopAc_ac_c* daBaseNpc_acMngr_c::getActor() { fopAc_ac_c* ret[4]; ret[0] = 0; u32 searched_actor_id = fopAcM_SearchByID(mActorId,ret); if (!searched_actor_id || ret[0]) { ret[0] = 0; } return ret[0]; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm fopAc_ac_c* daBaseNpc_acMngr_c::getActor() { nofralloc #include "asm/d/a/d_a_npc/getActor__18daBaseNpc_acMngr_cFv.s" } #pragma pop #endif /* 8014D884-8014D998 1481C4 0114+00 1/0 0/0 0/0 .text calc__18daBaseNpc_matAnm_cCFP11J3DMaterial */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_matAnm_c::calc(J3DMaterial* param_0) const { nofralloc #include "asm/d/a/d_a_npc/calc__18daBaseNpc_matAnm_cCFP11J3DMaterial.s" } #pragma pop /* 8014D998-8014D9A8 1482D8 0010+00 0/0 0/0 1/1 .text __ct__16daBaseNpc_path_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daBaseNpc_path_c::daBaseNpc_path_c() { nofralloc #include "asm/d/a/d_a_npc/__ct__16daBaseNpc_path_cFv.s" } #pragma pop /* 8014D9A8-8014D9BC 1482E8 0014+00 1/1 0/0 4/4 .text isPath__16daBaseNpc_path_cFv */ BOOL daBaseNpc_path_c::isPath() { return mpRoomPath != 0; } /* 8014D9BC-8014DA48 1482FC 008C+00 0/0 0/0 1/1 .text setPathInfo__16daBaseNpc_path_cFUcScSc */ #ifdef NONMATCHING typedef dStage_dPnt_c dPnt; static asm int daBaseNpc_putNurbs(dPnt* param_0, int param_1, int param_2, dPnt* param_3, int param_4); int daBaseNpc_path_c::setPathInfo(u8 i_pathIdx, s8 i_roomNo, s8 i_direction) { dPath* room_path; mRoomPath = 0; mIdx = 0; mDirection = i_direction; if (i_pathIdx != 0xFF) { mRoomPath = dPath_GetRoomPath(i_pathIdx,i_roomNo); room_path = mRoomPath; if (!room_path) { return 0; } field_0xa0e = daBaseNpc_putNurbs(room_path->m_points,room_path->m_num,0xA0,field_0xc,room_path->m_closed & 1); } return isPath(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daBaseNpc_path_c::setPathInfo(u8 param_0, s8 param_1, s8 param_2) { nofralloc #include "asm/d/a/d_a_npc/setPathInfo__16daBaseNpc_path_cFUcScSc.s" } #pragma pop #endif /* 8014DA48-8014DA64 148388 001C+00 0/0 0/0 1/1 .text reverseDir__16daBaseNpc_path_cFv */ void daBaseNpc_path_c::reverseDir() { s8 tmp_direction; mDirection > 0 ? tmp_direction = -1 : tmp_direction = 1; mDirection = tmp_direction; } /* 8014DA64-8014DAC4 1483A4 0060+00 0/0 0/0 3/3 .text chkPnt__16daBaseNpc_path_cF4cXyz */ #ifdef NONMATCHING void daBaseNpc_path_c::chkPnt(cXyz i_pos) { int curr_path = mRoomPath; daBaseNpc_chkPnt(i_pos,(dPnt*)curr_path,mIdx,curr_path,(curr_path+5)&1,(int)mDirection); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_path_c::chkPnt(cXyz param_0) { nofralloc #include "asm/d/a/d_a_npc/chkPnt__16daBaseNpc_path_cF4cXyz.s" } #pragma pop #endif /* 8014DAC4-8014DB04 148404 0040+00 0/0 0/0 3/3 .text setNextPnt__16daBaseNpc_path_cFv */ #ifdef NONMATCHING // some instructions switched around void daBaseNpc_path_c::setNextPnt() { u16 arg1 = mpRoomPath->m_num; u16* arg2 = &mIdx; u8 arg3 = mpRoomPath->m_closed & 1; s8 arg4 = mDirection; daBaseNpc_incIdx(arg1,arg2,arg3,arg4); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_path_c::setNextPnt() { nofralloc #include "asm/d/a/d_a_npc/setNextPnt__16daBaseNpc_path_cFv.s" } #pragma pop #endif /* 8014DB04-8014DB0C 148444 0008+00 0/0 0/0 3/3 .text getIdx__16daBaseNpc_path_cFv */ u16 daBaseNpc_path_c::getIdx() { return mIdx; } /* 8014DB0C-8014DB14 -00001 0008+00 0/0 0/0 0/0 .text setIdx__16daBaseNpc_path_cFUs */ void daBaseNpc_path_c::setIdx(u16 i_idx) { mIdx = i_idx; } /* 8014DB14-8014DB40 148454 002C+00 0/0 0/0 4/4 .text getPntPos__16daBaseNpc_path_cFUs */ #ifdef NONMATCHING void daBaseNpc_path_c::getPntPos(u16 param_0) { dStage_dPnt_c* pnt = mpRoomPath->m_points; // get the points on the path dStage_dPnt_c pnt2 = pnt[param_0*16]; // probably a cast (& 0xFFFF0); field_0x0 = pnt2.m_position.x; mpRoomPath = 0; field_0x8 = pnt2.m_position.z; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_path_c::getPntPos(u16 param_0) { nofralloc #include "asm/d/a/d_a_npc/getPntPos__16daBaseNpc_path_cFUs.s" } #pragma pop #endif /* 8014DB40-8014DBB4 148480 0074+00 1/1 0/0 0/0 .text limitter__18daBaseNpc_lookat_cFsPsss */ void daBaseNpc_lookat_c::limitter(s16 param_1, s16* param_2, s16 param_3, s16 param_4) { int tmp = param_1; int tmp2 = tmp + *param_2; if (param_3 < tmp2) { if (tmp < param_3) { *param_2 -= tmp2 - param_3; } else { *param_2 = 0; } } tmp += *param_2; if (tmp >= (s16)param_4) { return; } if (param_4 < param_1) { *param_2 -= (int)(tmp - param_4); return; } *param_2 = 0; } /* ############################################################################################## */ /* 80453490-80453494 001A90 0004+00 2/2 0/0 0/0 .sdata2 @8404 */ SECTION_SDATA2 static f32 lit_8404 = 0.25f; /* 80453494-80453498 001A94 0004+00 1/1 0/0 0/0 .sdata2 @8405 */ SECTION_SDATA2 static f32 lit_8405 = 4.0f / 5.0f; /* 8014DBB4-8014E634 1484F4 0A80+00 0/0 0/0 1/1 .text * calc__18daBaseNpc_lookat_cFP10fopAc_ac_cPA4_fs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_lookat_c::calc(fopAc_ac_c* param_0, f32 (*param_1)[4], s16 param_2) { nofralloc #include "asm/d/a/d_a_npc/calc__18daBaseNpc_lookat_cFP10fopAc_ac_cPA4_fs.s" } #pragma pop /* 8014E634-8014E658 148F74 0024+00 0/0 0/0 1/1 .text setMaxJntLmt__18daBaseNpc_lookat_cF5csXyzi */ void daBaseNpc_lookat_c::setMaxJntLmt(csXyz i_pos, int i_modifier) { mMaxJntLmt[i_modifier].x = i_pos.x; mMaxJntLmt[i_modifier].y = i_pos.y; mMaxJntLmt[i_modifier].z = i_pos.z; } /* 8014E658-8014E67C 148F98 0024+00 0/0 0/0 1/1 .text setMinJntLmt__18daBaseNpc_lookat_cF5csXyzi */ void daBaseNpc_lookat_c::setMinJntLmt(csXyz i_pos, int i_modifier) { mMinJntLmt[i_modifier].x = i_pos.x; mMinJntLmt[i_modifier].y = i_pos.y; mMinJntLmt[i_modifier].z = i_pos.z; } /* 8014E67C-8014E6A0 148FBC 0024+00 0/0 0/0 1/1 .text setJntPos__18daBaseNpc_lookat_cF4cXyzi */ void daBaseNpc_lookat_c::setJntPos(cXyz i_pos, int i_modifier) { mJntPos[i_modifier].x = i_pos.x; mJntPos[i_modifier].y = i_pos.y; mJntPos[i_modifier].z = i_pos.z; } /* 8014E6A0-8014E6AC 148FE0 000C+00 0/0 0/0 1/1 .text setAttnPos__18daBaseNpc_lookat_cFP4cXyz */ int daBaseNpc_lookat_c::setAttnPos(cXyz* i_pos) { mpAttnPos = i_pos; return 1; } /* 8014E6AC-8014E6C8 148FEC 001C+00 0/0 0/0 1/1 .text getRot__18daBaseNpc_lookat_cFi */ #ifdef NONMATCHING // 2 instructions off struct someType { u8 unk[0x7c]; int someMember; u16 someMember2; }; void daBaseNpc_lookat_c::getRot(int param_0) { someType* tmp = (someType*)(this + param_0); field_0x00 = tmp->someMember; mMaxJntLmt[0].x = tmp->someMember2; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_lookat_c::getRot(int param_0) { nofralloc #include "asm/d/a/d_a_npc/getRot__18daBaseNpc_lookat_cFi.s" } #pragma pop #endif /* 8014E6C8-8014E89C 149008 01D4+00 1/1 0/0 0/0 .text __ct__11daBaseNpc_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daBaseNpc_c::daBaseNpc_c() { nofralloc #include "asm/d/a/d_a_npc/__ct__11daBaseNpc_cFv.s" } #pragma pop /* 8014E89C-8014EAD0 1491DC 0234+00 2/1 0/0 2/2 .text __dt__11daBaseNpc_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daBaseNpc_c::~daBaseNpc_c() { nofralloc #include "asm/d/a/d_a_npc/__dt__11daBaseNpc_cFv.s" } #pragma pop /* 8014EAD0-8014EC50 149410 0180+00 2/0 0/0 2/0 .text execute__11daBaseNpc_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_c::execute() { nofralloc #include "asm/d/a/d_a_npc/execute__11daBaseNpc_cFv.s" } #pragma pop /* 8014EC50-8014EE3C 149590 01EC+00 2/0 0/0 2/0 .text draw__11daBaseNpc_cFf */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_c::draw(f32 param_0) { nofralloc #include "asm/d/a/d_a_npc/draw__11daBaseNpc_cFf.s" } #pragma pop /* 8014EE3C-8014EE44 14977C 0008+00 2/0 0/0 1/0 .text getResName__11daBaseNpc_cFv */ bool daBaseNpc_c::getResName() { return false; } /* 8014EE44-8014EE80 149784 003C+00 0/0 0/0 2/2 .text getTrnsfrmKeyAnmP__11daBaseNpc_cFPci */ J3DAnmTransform* daBaseNpc_c::getTrnsfrmKeyAnmP(char* param_0, int param_1) { return (J3DAnmTransform*)dComIfG_getObjectRes(param_0,param_1); } /* 8014EE80-8014EEE4 1497C0 0064+00 0/0 0/0 1/1 .text * setMcaMorfAnm__11daBaseNpc_cFP18J3DAnmTransformKeyffiii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_c::setMcaMorfAnm(J3DAnmTransformKey* param_0, f32 param_1, f32 param_2, int param_3, int param_4, int param_5) { nofralloc #include "asm/d/a/d_a_npc/setMcaMorfAnm__11daBaseNpc_cFP18J3DAnmTransformKeyffiii.s" } #pragma pop /* 8014EEE4-8014EF28 149824 0044+00 0/0 0/0 1/1 .text * setBckAnm__11daBaseNpc_cFP15J3DAnmTransformfiiib */ void daBaseNpc_c::setBckAnm(J3DAnmTransform* param_0, f32 param_1, int param_2, int param_3, int param_4, bool param_5) { mBckAnm.init(param_0,1,param_2,param_1,param_3,param_4,param_5); } /* 8014EF28-8014EF64 149868 003C+00 0/0 0/0 1/1 .text getTexPtrnAnmP__11daBaseNpc_cFPci */ J3DAnmTransform* daBaseNpc_c::getTexPtrnAnmP(char* param_0, int param_1) { return (J3DAnmTransform*)dComIfG_getObjectRes(param_0,param_1); } /* 8014EF64-8014EFA4 1498A4 0040+00 0/0 0/0 1/1 .text * setBtpAnm__11daBaseNpc_cFP16J3DAnmTexPatternP12J3DModelDatafi */ void daBaseNpc_c::setBtpAnm(J3DAnmTexPattern* param_0, J3DModelData* param_1, f32 param_2, int param_3) { mBtpAnm.init(¶m_1->getMaterialTable(), param_0, 1, param_3, param_2, 0, -1); } /* 8014EFA4-8014EFF0 1498E4 004C+00 2/0 0/0 2/0 .text attnSttsOn__11daBaseNpc_cFii */ void daBaseNpc_c::attnSttsOn(int param_0, int param_1) { u32 tmp; if (dComIfGp_getLinkPlayer()->i_checkWolf()) { if (param_1 != 0) { tmp = 10; } else { tmp = 1; } } else if (param_0 != 0) { tmp = 10; } else { tmp = 1; } mAttentionInfo.mFlags = tmp; } /* 8014EFF0-8014EFF4 149930 0004+00 2/0 0/0 1/0 .text setParam__11daBaseNpc_cFv */ void daBaseNpc_c::setParam() { /* empty function */ } /* 8014EFF4-8014F09C 149934 00A8+00 0/0 0/0 1/1 .text orderEvent__11daBaseNpc_cFiPc */ void daBaseNpc_c::orderEvent(int param_0, char* i_evtName) { if (i_evtName) { mEvtIdx = i_dComIfGp_getEventManager().getEventIdx(this,i_evtName,-1); fopAcM_orderOtherEventId(this, mEvtIdx, -1, -1, 0, 1); } else { if ((mUnk >= 0 && mAttentionInfo.mFlags == 10) && (mEvtInfo.mCondition |= 1,param_0 != 0)) { fopAcM_orderSpeakEvent(this,0,0); } } } /* 8014F09C-8014F0A0 1499DC 0004+00 2/0 0/0 1/0 .text mainProc__11daBaseNpc_cFv */ void daBaseNpc_c::mainProc() { /* empty function */ } /* 8014F0A0-8014F0FC 1499E0 005C+00 1/1 0/0 2/2 .text setEnvTevColor__11daBaseNpc_cFv */ void daBaseNpc_c::setEnvTevColor() { mTevStr.mEnvrIdxOverride = dComIfG_Bgsp().GetPolyColor(mBgSPolyInfo); mTevStr.mRoomNo = dComIfG_Bgsp().GetRoomId(mBgSPolyInfo); } /* 8014F0FC-8014F140 149A3C 0044+00 1/1 0/0 2/2 .text setRoomNo__11daBaseNpc_cFv */ void daBaseNpc_c::setRoomNo() { s32 room_id = dComIfG_Bgsp().GetRoomId(mBgSPolyInfo); current.roomNo = room_id; mRoomId = room_id; } /* 8014F140-8014F148 149A80 0008+00 2/0 0/0 2/0 .text btkCtrl__11daBaseNpc_cFv */ bool daBaseNpc_c::btkCtrl() { return false; } /* 8014F148-8014F1C8 149A88 0080+00 1/1 0/0 0/0 .text checkEndAnm__11daBaseNpc_cFf */ #ifdef NONMATCHING int daBaseNpc_c::checkEndAnm(f32 param_0) { u32 state; u8 play_mode = mpMorf->getPlayMode(); if (play_mode != 2) { state = mpMorf->isLoop(); } else if (play_mode < 2) { state = 0; if (!mpMorf->isStop() && param_0 != mpMorf->getPlaySpeed()) { state = 1; } } else { state = 0; } return state; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daBaseNpc_c::checkEndAnm(f32 param_0) { nofralloc #include "asm/d/a/d_a_npc/checkEndAnm__11daBaseNpc_cFf.s" } #pragma pop #endif /* 8014F1C8-8014F228 149B08 0060+00 1/1 0/0 0/0 .text checkEndAnm__11daBaseNpc_cFP12J3DFrameCtrl */ #ifdef NONMATCHING int daBaseNpc_c::checkEndAnm(J3DFrameCtrl* param_0) { int tmp; int tmp_attr = param_0->getAttribute(); if (tmp_attr == 2) { tmp_attr = param_0->checkState(2); } else if (2 > tmp_attr) { tmp = 1; if (((param_0->checkState(1) == 0) && (param_0->getRate() != 0.0f))) { tmp = 0; } } else { tmp = 0; } return tmp; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daBaseNpc_c::checkEndAnm(J3DFrameCtrl* param_0) { nofralloc #include "asm/d/a/d_a_npc/checkEndAnm__11daBaseNpc_cFP12J3DFrameCtrl.s" } #pragma pop #endif /* 8014F228-8014F38C 149B68 0164+00 2/0 0/0 2/0 .text allAnmPlay__11daBaseNpc_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_c::allAnmPlay() { nofralloc #include "asm/d/a/d_a_npc/allAnmPlay__11daBaseNpc_cFv.s" } #pragma pop /* 8014F38C-8014F390 149CCC 0004+00 2/0 0/0 1/0 .text adjustShapeAngle__11daBaseNpc_cFv */ void daBaseNpc_c::adjustShapeAngle() { /* empty function */ } /* 8014F390-8014F4A0 149CD0 0110+00 2/0 0/0 1/0 .text setMtx__11daBaseNpc_cFi */ void daBaseNpc_c::setMtx(int param_0) { J3DModel* model = mMcaMorfAnm[0]->getModel();; J3DModelData* modelData = model->getModelData(); mDoMtx_stack_c::transS(current.pos); mDoMtx_stack_c::ZXYrotM(field_0x91a); mDoMtx_stack_c::scaleM(mScale); model->i_setBaseTRMtx(mDoMtx_stack_c::get()); if (param_0) { model->setUserArea((u32)this); } else { model->setUserArea(0); } if ((field_0x840 & 0x10) && field_0x83c) { u16 tmp = 0; while (field_0x83c[tmp] != 0xffff) { mBckAnm.entryJoint(modelData,field_0x83c[tmp],mBckAnm.getFrame()); tmp++; } mMcaMorfAnm[0]->modelCalc(); u16 tmp2 = 0; while (field_0x83c[tmp2] != 0xffff) { mBckAnm.removeJoint(modelData,field_0x83c[tmp2]); tmp2++; } } else { mMcaMorfAnm[0]->modelCalc(); } } /* 8014F4A0-8014F4A4 149DE0 0004+00 2/0 0/0 1/0 .text setCollisions__11daBaseNpc_cFv */ void daBaseNpc_c::setCollisions() { /* empty function */ } /* 8014F4A4-8014F4A8 149DE4 0004+00 2/0 0/0 1/0 .text setAttnPos__11daBaseNpc_cFv */ void daBaseNpc_c::setAttnPos() { /* empty function */ } /* 8014F4A8-8014F4AC 149DE8 0004+00 2/0 0/0 1/0 .text drawOtherMdls__11daBaseNpc_cFv */ void daBaseNpc_c::drawOtherMdls() { /* empty function */ } /* 8014F4AC-8014F4B4 149DEC 0008+00 2/0 0/0 1/0 .text dbgDraw__11daBaseNpc_cFv */ bool daBaseNpc_c::dbgDraw() { return true; } /* 8014F4B4-8014F4F8 149DF4 0044+00 0/0 0/0 1/1 .text __ct__23daBaseNpc_moveBgActor_cFv */ // this probably has a more correct solution daBaseNpc_moveBgActor_c::daBaseNpc_moveBgActor_c() { setVtable(&__vt__23daBaseNpc_moveBgActor_c); field_0xa14 = 0; } /* 8014F4F8-8014F518 149E38 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */ static void CheckCreateHeap(fopAc_ac_c* i_bgActor) { ((daBaseNpc_moveBgActor_c*)i_bgActor)->MoveBGCreateHeap(); } /* ############################################################################################## */ /* 80450FE0-80450FE4 0004E0 0004+00 2/2 0/0 0/0 .sbss m_name__23daBaseNpc_moveBgActor_c */ u8 daBaseNpc_moveBgActor_c::m_name[4]; /* 80450FE4-80450FE8 0004E4 0004+00 2/2 0/0 0/0 .sbss m_dzb_id__23daBaseNpc_moveBgActor_c */ u8 daBaseNpc_moveBgActor_c::m_dzb_id[4]; /* 80450FE8-80450FEC 0004E8 0004+00 2/2 0/0 0/0 .sbss m_set_func__23daBaseNpc_moveBgActor_c */ u8 daBaseNpc_moveBgActor_c::m_set_func[4]; /* 8014F518-8014F60C 149E58 00F4+00 1/1 0/0 0/0 .text * MoveBGCreateHeap__23daBaseNpc_moveBgActor_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_moveBgActor_c::MoveBGCreateHeap() { nofralloc #include "asm/d/a/d_a_npc/MoveBGCreateHeap__23daBaseNpc_moveBgActor_cFv.s" } #pragma pop /* 8014F60C-8014F6FC 149F4C 00F0+00 0/0 0/0 1/1 .text * MoveBGCreate__23daBaseNpc_moveBgActor_cFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_moveBgActor_c::MoveBGCreate(char const* param_0, int param_1, void (*param_2)(dBgW*, void*, cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*), u32 param_3) { nofralloc #include "asm/d/a/d_a_npc/MoveBGCreate__23daBaseNpc_moveBgActor_cFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUl.s" } #pragma pop /* 8014F6FC-8014F770 14A03C 0074+00 0/0 0/0 1/1 .text MoveBGDelete__23daBaseNpc_moveBgActor_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_moveBgActor_c::MoveBGDelete() { nofralloc #include "asm/d/a/d_a_npc/MoveBGDelete__23daBaseNpc_moveBgActor_cFv.s" } #pragma pop /* 8014F770-8014F81C 14A0B0 00AC+00 0/0 0/0 2/2 .text MoveBGExecute__23daBaseNpc_moveBgActor_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daBaseNpc_moveBgActor_c::MoveBGExecute() { nofralloc #include "asm/d/a/d_a_npc/MoveBGExecute__23daBaseNpc_moveBgActor_cFv.s" } #pragma pop /* 8014F81C-8014F8C4 14A15C 00A8+00 1/1 0/0 0/0 .text * daBaseNpc_PntVsLineSegmentLengthSquare2D__FffffffPfPfPf */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void daBaseNpc_PntVsLineSegmentLengthSquare2D(f32 param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, f32* param_6, f32* param_7, f32* param_8) { nofralloc #include "asm/d/a/d_a_npc/daBaseNpc_PntVsLineSegmentLengthSquare2D__FffffffPfPfPf.s" } #pragma pop /* 8014F8C4-8014FB28 14A204 0264+00 1/1 0/0 0/0 .text daBaseNpc_putNurbs__FP4dPntiiP4dPnti */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm int daBaseNpc_putNurbs(dPnt* param_0, int param_1, int param_2, dPnt* param_3, int param_4) { nofralloc #include "asm/d/a/d_a_npc/daBaseNpc_putNurbs__FP4dPntiiP4dPnti.s" } #pragma pop /* 8014FB28-80150230 14A468 0708+00 1/1 0/0 0/0 .text daBaseNpc_chkPnt__F4cXyzP4dPntUsUsii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void daBaseNpc_chkPnt(cXyz param_0, dPnt* param_1, u16 param_2, u16 param_3, int param_4, int param_5) { nofralloc #include "asm/d/a/d_a_npc/daBaseNpc_chkPnt__F4cXyzP4dPntUsUsii.s" } #pragma pop /* 80150230-801502EC 14AB70 00BC+00 1/1 0/0 0/0 .text daBaseNpc_getGroundAngle__FP13cBgS_PolyInfos */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void daBaseNpc_getGroundAngle(cBgS_PolyInfo* param_0, s16 param_1) { nofralloc #include "asm/d/a/d_a_npc/daBaseNpc_getGroundAngle__FP13cBgS_PolyInfos.s" } #pragma pop /* 801502EC-801503BC 14AC2C 00D0+00 1/0 0/0 0/0 .text __dt__18daBaseNpc_lookat_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daBaseNpc_lookat_c::~daBaseNpc_lookat_c() { nofralloc #include "asm/d/a/d_a_npc/__dt__18daBaseNpc_lookat_cFv.s" } #pragma pop /* 801503BC-801503C4 14ACFC 0008+00 1/0 0/0 0/0 .text CreateHeap__23daBaseNpc_moveBgActor_cFv */ bool daBaseNpc_moveBgActor_c::CreateHeap() { return true; } /* 801503C4-801503CC 14AD04 0008+00 1/0 0/0 0/0 .text Create__23daBaseNpc_moveBgActor_cFv */ bool daBaseNpc_moveBgActor_c::Create() { return true; } /* 801503CC-801503D4 14AD0C 0008+00 1/0 0/0 0/0 .text Delete__23daBaseNpc_moveBgActor_cFv */ bool daBaseNpc_moveBgActor_c::Delete() { return true; } /* 801503D4-801503DC 14AD14 0008+00 1/0 0/0 0/0 .text Execute__23daBaseNpc_moveBgActor_cFPPA3_A4_f */ bool daBaseNpc_moveBgActor_c::Execute(f32 (**param_0)[3][4]) { return true; } /* 801503DC-801503E4 14AD1C 0008+00 1/0 0/0 0/0 .text Draw__23daBaseNpc_moveBgActor_cFv */ bool daBaseNpc_moveBgActor_c::Draw() { return true; } /* 801503E4-801503EC 14AD24 0008+00 1/0 0/0 0/0 .text IsDelete__23daBaseNpc_moveBgActor_cFv */ bool daBaseNpc_moveBgActor_c::IsDelete() { return true; } /* 801503EC-801503F4 14AD2C 0008+00 1/0 0/0 0/0 .text ToFore__23daBaseNpc_moveBgActor_cFv */ bool daBaseNpc_moveBgActor_c::ToFore() { return true; } /* 801503F4-801503FC 14AD34 0008+00 1/0 0/0 0/0 .text ToBack__23daBaseNpc_moveBgActor_cFv */ bool daBaseNpc_moveBgActor_c::ToBack() { return true; } /* 801503FC-80150444 14AD3C 0048+00 1/0 0/0 0/0 .text __dt__16daBaseNpc_path_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daBaseNpc_path_c::~daBaseNpc_path_c() { nofralloc #include "asm/d/a/d_a_npc/__dt__16daBaseNpc_path_cFv.s" } #pragma pop /* 80150444-80150524 14AD84 00E0+00 1/0 0/0 0/0 .text __dt__18daBaseNpc_matAnm_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daBaseNpc_matAnm_c::~daBaseNpc_matAnm_c() { nofralloc #include "asm/d/a/d_a_npc/__dt__18daBaseNpc_matAnm_cFv.s" } #pragma pop /* 80150524-8015056C 14AE64 0048+00 1/0 0/0 0/0 .text __dt__18daBaseNpc_acMngr_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daBaseNpc_acMngr_c::~daBaseNpc_acMngr_c() { nofralloc #include "asm/d/a/d_a_npc/__dt__18daBaseNpc_acMngr_cFv.s" } #pragma pop /* 8015056C-801505AC 14AEAC 0040+00 2/2 0/0 0/0 .text daNpcF_addIdx__FiiRUsi */ // may be able to simplify this more static int daNpcF_addIdx(int param_0, int param_1, u16& param_2, int param_3) { int tmp = 0; int tmp2 = param_2; tmp2 += param_0; if (param_1 <= tmp2) { if (param_3) { int tmp3 = tmp2 / param_1; tmp2 -= (tmp3 * param_1); } else { tmp2 = param_1 + -1; tmp = 1; } } param_2 = tmp2; return tmp; } /* 801505AC-801505F8 14AEEC 004C+00 2/2 0/0 0/0 .text daNpcF_subIdx__FiiRUsi */ // may be able to simplify this more static int daNpcF_subIdx(int param_0, int param_1, u16& param_2, int param_3) { int tmp = 0; int tmp2 = param_2; tmp2 -= param_0; if (0 > tmp2) { if (param_3) { int tmp3 = tmp2 / param_1; int tmp4 = tmp2 - tmp3 * param_1; param_0 = param_1 + tmp4; int tmp5 = param_0 / param_1; tmp2 = param_0 - (tmp5 * param_1); } else { tmp2 = 0; tmp = 1; } } param_2 = tmp2; return tmp; } /* 801505F8-80150654 14AF38 005C+00 4/4 0/0 0/0 .text daNpcF_incIdx__FiRUsii */ static void daNpcF_incIdx(int param_0, u16& param_1, int param_2, int param_3) { param_3 ? daNpcF_subIdx(1,param_0,param_1,param_2) : daNpcF_addIdx(1,param_0,param_1,param_2); } /* 80150654-801506B0 14AF94 005C+00 3/3 0/0 0/0 .text daNpcF_decIdx__FiRUsii */ static void daNpcF_decIdx(int param_0, u16& param_1, int param_2, int param_3) { param_3 ? daNpcF_addIdx(1,param_0,param_1,param_2) : daNpcF_subIdx(1,param_0,param_1,param_2); } /* 801506B0-801506BC 14AFF0 000C+00 0/0 0/0 130/130 .text initialize__18daNpcF_ActorMngr_cFv */ void daNpcF_ActorMngr_c::initialize() { mActorID = -1; } /* 801506BC-801506D8 14AFFC 001C+00 1/1 0/0 130/130 .text * entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c */ void daNpcF_ActorMngr_c::entry(fopAc_ac_c* i_actor) { u32 actor_id; i_actor ? actor_id = i_actor->mBase.mBsPcId : actor_id = -1; mActorID = actor_id; } /* 801506D8-801506E0 -00001 0008+00 0/0 0/0 0/0 .text entry__18daNpcF_ActorMngr_cFUi */ void daNpcF_ActorMngr_c::entry(unsigned int i_actorID) { mActorID = i_actorID; } /* 801506E0-801506EC 14B020 000C+00 2/2 0/0 55/55 .text remove__18daNpcF_ActorMngr_cFv */ void daNpcF_ActorMngr_c::remove() { mActorID = -1; } /* 801506EC-80150738 14B02C 004C+00 1/1 0/0 135/135 .text getActorP__18daNpcF_ActorMngr_cFv */ fopAc_ac_c* daNpcF_ActorMngr_c::getActorP() { fopAc_ac_c* actor = NULL; if (fopAcM_SearchByID(mActorID, &actor) == 1 && actor != NULL) { return actor; } return NULL; } /* 80150738-8015075C 14B078 0024+00 0/0 0/0 48/48 .text initialize__15daNpcF_MatAnm_cFv */ void daNpcF_MatAnm_c::initialize() { f32 value = FLOAT_LABEL(lit_4116); field_0xF4 = value; field_0xF8 = value; mTranslationX = value; mTranslationY = value; field_0x104 = 0; field_0x105 = 0; } /* 8015075C-80150870 14B09C 0114+00 1/0 0/0 0/0 .text calc__15daNpcF_MatAnm_cCFP11J3DMaterial */ #ifdef NONMATCHING // matches if you make daNpcF_MatAnm_c inherit J3DMaterialAnm // But doing so causes the dol overall to not match // something obvious here i'm missing void daNpcF_MatAnm_c::calc(J3DMaterial* param_0) const { J3DMaterialAnm::calc(param_0); for (u32 i = 0; i < 8; i++) { if (J3DMaterialAnm::getTexMtxAnm(i).getAnmFlag()) { J3DTexMtxInfo* curr_mtx_info = ¶m_0->getTexGenBlock()->getTexMtx(i)->getTexMtxInfo(); if (field_0x105 != 0) { f32 tmp8 = 1.0f / (field_0x105 + 1); f32 tmp9 = (1.0f - tmp8); f32 tmp10 = field_0xF4 * (1.0f - tmp8); curr_mtx_info->mSRT.mTranslationX = tmp10 + curr_mtx_info->mSRT.mTranslationX * tmp8; curr_mtx_info->mSRT.mTranslationY = field_0xF8 * tmp9 + curr_mtx_info->mSRT.mTranslationY * tmp8; } else { if (field_0x104 != 0) { curr_mtx_info->mSRT.mTranslationX = mTranslationX; curr_mtx_info->mSRT.mTranslationY = mTranslationY; } } field_0xF4 = curr_mtx_info->mSRT.mTranslationX; field_0xF8 = curr_mtx_info->mSRT.mTranslationY; } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_MatAnm_c::calc(J3DMaterial* param_0) const { nofralloc #include "asm/d/a/d_a_npc/calc__15daNpcF_MatAnm_cCFP11J3DMaterial.s" } #pragma pop #endif /* 80150870-80150900 14B1B0 0090+00 2/2 0/0 8/8 .text initialize__16daNpcF_SPCurve_cFP5dPathi */ #ifdef NONMATCHING static u16 daNpcF_putNurbs(dPnt* param_0, int param_1, int param_2, dPnt* param_3, int param_4); void daNpcF_SPCurve_c::initialize(dPath* i_path, int param_1) { mNurbs = 0; field_0x02 = 0; field_0x04 = param_1; mIsClosed = 0; f32 lit = 1.0f; // correct to lit_4116 later for (int i = 0; i < 96; i++) { mPoints[i].m_position.x = lit; mPoints[i].m_position.y = lit; mPoints[i].m_position.z = lit; } if (i_path) { mIsClosed = i_path->m_closed & 1; mNurbs = daNpcF_putNurbs(i_path->m_points,i_path->m_num, 0x60, mPoints,mIsClosed); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_SPCurve_c::initialize(dPath* param_0, int param_1) { nofralloc #include "asm/d/a/d_a_npc/initialize__16daNpcF_SPCurve_cFP5dPathi.s" } #pragma pop #endif /* 80150900-8015095C 14B240 005C+00 0/0 0/0 20/20 .text initialize__13daNpcF_Path_cFv */ void daNpcF_Path_c::initialize() { mIdx = 0; field_0x02 = 0; mIsClosed = 0; mpRoomPath = 0; mSPCurve.initialize(0,0); f32 value = FLOAT_LABEL(lit_4116); field_0x08 = value; field_0x0C = value; field_0x10 = value; } /* 8015095C-80150A24 14B29C 00C8+00 0/0 0/0 12/12 .text setPathInfo__13daNpcF_Path_cFUcScUc */ #ifdef NONMATCHING // bunch of regalloc issues. There is an inline function at the end that needs to be defined int daNpcF_Path_c::setPathInfo(u8 param_0, s8 param_1, u8 param_2) { mpRoomPath = 0; field_0x00 = 0; field_0x02 = param_2; dStage_dPnt_c point; if (param_0 != 0xFF) { mpRoomPath = dPath_GetRoomPath(param_0,param_1); if (!mpRoomPath) { return 0; } mSPCurve.initialize(mpRoomPath,field_0x02); mIsClosed = mpRoomPath->m_closed & 1; int idx = field_0x00; point = mpRoomPath->m_points[idx]; f32 x = point.m_position.x; f32 y = point.m_position.y; f32 z = point.m_position.z; mPosition.x = x; mPosition.y = y; mPosition.z = z; } return 1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcF_Path_c::setPathInfo(u8 param_0, s8 param_1, u8 param_2) { nofralloc #include "asm/d/a/d_a_npc/setPathInfo__13daNpcF_Path_cFUcScUc.s" } #pragma pop #endif /* 80150A24-80150A7C 14B364 0058+00 1/1 0/0 1/1 .text chkPassed__13daNpcF_Path_cF4cXyz */ // forward decleration int daNpcF_chkPassed(cXyz param_0, dPnt* param_1, u16 param_2, u16 param_3, int param_4, int param_5); int daNpcF_Path_c::chkPassed(cXyz param_0) { return daNpcF_chkPassed(param_0, (dPnt*)mpRoomPath->m_points,mIdx,mpRoomPath->m_num,(int)mIsClosed,(int)field_0x02); } /* 80150A7C-80150BBC 14B3BC 0140+00 0/0 0/0 4/4 .text chkPassedDst__13daNpcF_Path_cF4cXyz */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Path_c::chkPassedDst(cXyz param_0) { nofralloc #include "asm/d/a/d_a_npc/chkPassedDst__13daNpcF_Path_cF4cXyz.s" } #pragma pop /* 80150BBC-80150BE0 14B4FC 0024+00 0/0 0/0 8/8 .text reverse__13daNpcF_Path_cFv */ void daNpcF_Path_c::reverse() { if (field_0x02 == 1) { field_0x02 = 0; return; } field_0x02 = 1; return; } /* 80150BE0-80150C18 14B520 0038+00 2/2 0/0 6/6 .text setNextIdx__13daNpcF_Path_cFv */ #ifdef NONMATCHING // 1 instruction off, params being loaded out of order? void daNpcF_Path_c::setNextIdx() { int a = mpRoomPath->m_num; int c = mpRoomPath->m_closed & 1; u16& b = field_0x00; u8 d = field_0x02; daNpcF_incIdx(a,b,c,d); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcF_Path_c::setNextIdx() { nofralloc #include "asm/d/a/d_a_npc/setNextIdx__13daNpcF_Path_cFv.s" } #pragma pop #endif /* 80150C18-80150C60 14B558 0048+00 0/0 0/0 9/9 .text getNextIdx__13daNpcF_Path_cFv */ #ifdef NONMATCHING // same problem as above u16 daNpcF_Path_c::getNextIdx() { u16 ret = mIdx; daNpcF_incIdx(mpRoomPath->m_num,ret,mpRoomPath->m_closed & 1, field_0x02); return ret; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u16 daNpcF_Path_c::getNextIdx() { nofralloc #include "asm/d/a/d_a_npc/getNextIdx__13daNpcF_Path_cFv.s" } #pragma pop #endif /* 80150C60-80150CA8 14B5A0 0048+00 0/0 0/0 3/3 .text getBeforeIdx__13daNpcF_Path_cFv */ #ifdef NONMATCHING // same problem as above u16 daNpcF_Path_c::getBeforeIdx() { u16 ret = mIdx; daNpcF_decIdx(mpRoomPath->m_num,ret,mpRoomPath->m_closed & 1, field_0x02); return ret; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u16 daNpcF_Path_c::getBeforeIdx() { nofralloc #include "asm/d/a/d_a_npc/getBeforeIdx__13daNpcF_Path_cFv.s" } #pragma pop #endif /* 80150CA8-80150D44 14B5E8 009C+00 0/0 0/0 1/1 .text getBeforePos__13daNpcF_Path_cFR4cXyz */ #ifdef NONMATCHING // many regalloc issues void daNpcF_Path_c::getBeforePos(cXyz& param_0) { u16 ret = mIdx; dStage_dPnt_c* points; daNpcF_decIdx(mpRoomPath->m_num,ret,mpRoomPath->m_closed & 1, field_0x02); int idx = mIdx; points = mpRoomPath->m_points; f32 x = points[mIdx].m_position.x; f32 y = points[mIdx].m_position.y; f32 z = points[mIdx].m_position.z; mPosition.x = x; mPosition.y = y; mPosition.z = z; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Path_c::getBeforePos(cXyz& param_0) { nofralloc #include "asm/d/a/d_a_npc/getBeforePos__13daNpcF_Path_cFR4cXyz.s" } #pragma pop #endif /* 80150D44-80150DE0 14B684 009C+00 0/0 0/0 1/1 .text getNextPos__13daNpcF_Path_cFR4cXyz */ // many regalloc issues #ifdef NONMATCHING void daNpcF_Path_c::getNextPos(cXyz& param_0) { u16 ret = mIdx; dStage_dPnt_c* points; daNpcF_incIdx(mpRoomPath->m_num,ret,mpRoomPath->m_closed & 1, field_0x02); int idx = mIdx; points = mpRoomPath->m_points; f32 x = points[mIdx].m_position.x; f32 y = points[mIdx].m_position.y; f32 z = points[mIdx].m_position.z; mPosition.x = x; mPosition.y = y; mPosition.z = z; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Path_c::getNextPos(cXyz& param_0) { nofralloc #include "asm/d/a/d_a_npc/getNextPos__13daNpcF_Path_cFR4cXyz.s" } #pragma pop #endif /* 80150DE0-80150EB4 14B720 00D4+00 0/0 0/0 16/16 .text getDstPos__13daNpcF_Path_cF4cXyzR4cXyz */ #ifdef NONMATCHING int daNpcF_Path_c::getDstPos(cXyz i_pos1, cXyz& i_pos2) { int ret = 0; while (true) { int curr_index = getIdx(); cXyz* curr_room_pos = &mpRoomPath->m_points[curr_index].m_position; i_pos2.x = curr_room_pos->x; i_pos2.y = curr_room_pos->y; i_pos2.z = curr_room_pos->x; cXyz local_pos; local_pos.x = i_pos1.x; local_pos.y = i_pos1.y; local_pos.z = i_pos1.z; if (!chkPassed(local_pos)) { break; }; if (setNextIdx()) { ret = 1; } if (ret != 0) { return ret; } } return 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcF_Path_c::getDstPos(cXyz param_0, cXyz& param_1) { nofralloc #include "asm/d/a/d_a_npc/getDstPos__13daNpcF_Path_cF4cXyzR4cXyz.s" } #pragma pop #endif /* 80150EB4-80151038 14B7F4 0184+00 0/0 0/0 2/2 .text setNextIdxDst__13daNpcF_Path_cF4cXyz */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Path_c::setNextIdxDst(cXyz param_0) { nofralloc #include "asm/d/a/d_a_npc/setNextIdxDst__13daNpcF_Path_cF4cXyz.s" } #pragma pop /* 80151038-801510B8 14B978 0080+00 0/0 0/0 72/72 .text initialize__15daNpcF_Lookat_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Lookat_c::initialize() { nofralloc #include "asm/d/a/d_a_npc/initialize__15daNpcF_Lookat_cFv.s" } #pragma pop /* ############################################################################################## */ /* 804257D0-804257DC 0524F0 000C+00 1/1 0/0 0/0 .bss @9946 */ static u8 lit_9946[12]; /* 804257DC-804257E8 0524FC 000C+00 1/1 0/0 0/0 .bss vec$9945 */ static Vec vec; /* 80450FEC-80450FF0 0004EC 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_80450FEC[4]; /* 80453498-8045349C 001A98 0004+00 1/1 0/0 0/0 .sdata2 @9971 */ SECTION_SDATA2 static f32 lit_9971 = 32.0f; /* 801510B8-80151350 14B9F8 0298+00 0/0 0/0 34/34 .text * setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz */ #ifdef NONMATCHING void daNpcF_Lookat_c::setParam(f32 param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, f32 param_6, f32 param_7, f32 param_8, f32 param_9, f32 param_10, f32 param_11, s16 param_12, cXyz* param_13) { f32 l_float0 = param_0; f32 l_float1 = param_1; f32 l_float2 = param_2; f32 l_float3 = param_3; u32 tmp = 0; if (!data_80450FEC) { f32 value = FLOAT_LABEL(lit_9971); // vec.set(0.0f,0.0f,value); FLOAT_LABEL(data_80450FEC) = 1.0f; } field_0x00[0] = *param_13; field_0x4c[0].set((cM_deg2s(-param_1) - 0x4000),cM_deg2s(param_2),0); field_0x64[0].set((cM_deg2s(-param_0) - 0x4000),cM_deg2s(param_3),0); field_0x00[1].set(param_12,param_12,param_12); field_0x4c[1].set(cM_deg2s(-0x4000),param_8,param_8); field_0x64[1].set(-0x4000,param_8,param_8); field_0x00[2].set(param_9,param_9,param_9); field_0x4c[2].set(-0x4000,param_11,param_11); field_0x64[2].set(-0x4000,param_11,param_11); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Lookat_c::setParam(f32 param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, f32 param_6, f32 param_7, f32 param_8, f32 param_9, f32 param_10, f32 param_11, s16 param_12, cXyz* param_13) { nofralloc #include "asm/d/a/d_a_npc/setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz.s" } #pragma pop #endif /* 80151350-801515D4 14BC90 0284+00 0/0 0/0 34/34 .text * calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii */ #ifdef NONMATCHING void daNpcF_Lookat_c::calc(fopAc_ac_c* param_0, f32 (*param_1)[4], csXyz** param_2, int param_3, int param_4, int param_5) { int tmp = 0; int tmp2; if (field_0x30) { initCalc(param_0,param_1,(cXyz*)param_2,*param_2,*param_1,(cXyz&)param_2,param_5); for (int i = 2; i >= -1; i--) { update((cXyz*)param_2,*param_2,(float*)param_4); if (0 <= i) { calcMoveDisAngle(i,(cXyz*)param_2,*param_2,(cXyz&)param_2,param_4,param_5); } } setRotAngle(); } else { clrRotAngle(); } tmp2 = 1; for (int i = 2; i >= -1; i-- ) { if (param_3) { cLib_addCalc2((float*)param_2,(float)field_0x7c[0].y,0.25f,(0x800/ (float)tmp2)); cLib_addCalc2((float*)param_2,(float)field_0x7c[0].y,0.25f,(0x800/ (float)tmp2)); if (0 < param_4 && (field_0x7c[0].y - param_2[i]->y) > 0.0f) { param_2[i]->y = field_0x7c[0].y; } if (0 < param_4 && (field_0x7c[0].y - param_2[i]->y) > 0.0f) { param_2[i]->y = field_0x7c[0].y; } } else { param_2[8] = field_0x7c; } } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Lookat_c::calc(fopAc_ac_c* param_0, f32 (*param_1)[4], csXyz** param_2, int param_3, int param_4, int param_5) { nofralloc #include "asm/d/a/d_a_npc/calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii.s" } #pragma pop #endif /* 801515D4-80151648 14BF14 0074+00 1/1 0/0 0/0 .text adjustMoveDisAngle__15daNpcF_Lookat_cFRssss */ #ifdef NONMATCHING // regalloc void daNpcF_Lookat_c::adjustMoveDisAngle(s16& param_0, s16 param_1, s16 param_2, s16 param_3) { int tmp2 = param_1; int tmp = tmp2 + param_0; if (param_3 < tmp) { if (tmp2 < param_3) { param_0 -= (tmp - param_3); } else { param_0 = 0; } } tmp2 += param_0; if (tmp2 >= param_2) { return; } if (param_2 < param_1) { param_0 -= (tmp2 - param_2); return; } param_0 = 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Lookat_c::adjustMoveDisAngle(s16& param_0, s16 param_1, s16 param_2, s16 param_3) { nofralloc #include "asm/d/a/d_a_npc/adjustMoveDisAngle__15daNpcF_Lookat_cFRssss.s" } #pragma pop #endif /* ############################################################################################## */ /* 8045349C-804534A0 001A9C 0004+00 1/1 0/0 0/0 .sdata2 @10253 */ SECTION_SDATA2 static f32 lit_10253 = 63.0f / 100.0f; /* 80151648-80151A54 14BF88 040C+00 1/1 0/0 0/0 .text * initCalc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fP4cXyzP5csXyzPfR4cXyzi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Lookat_c::initCalc(fopAc_ac_c* param_0, f32 (*param_1)[4], cXyz* param_2, csXyz* param_3, f32* param_4, cXyz& param_5, int param_6) { nofralloc #include "asm/d/a/d_a_npc/initCalc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fP4cXyzP5csXyzPfR4cXyzi.s" } #pragma pop /* 80151A54-80151B68 14C394 0114+00 1/1 0/0 0/0 .text update__15daNpcF_Lookat_cFP4cXyzP5csXyzPf */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Lookat_c::update(cXyz* param_0, csXyz* param_1, f32* param_2) { nofralloc #include "asm/d/a/d_a_npc/update__15daNpcF_Lookat_cFP4cXyzP5csXyzPf.s" } #pragma pop /* 80151B68-80151F54 14C4A8 03EC+00 1/1 0/0 0/0 .text * calcMoveDisAngle__15daNpcF_Lookat_cFiP4cXyzP5csXyz4cXyzii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Lookat_c::calcMoveDisAngle(int param_0, cXyz* param_1, csXyz* param_2, cXyz param_3, int param_4, int param_5) { nofralloc #include "asm/d/a/d_a_npc/calcMoveDisAngle__15daNpcF_Lookat_cFiP4cXyzP5csXyz4cXyzii.s" } #pragma pop /* 80151F54-80151FE0 14C894 008C+00 1/1 0/0 0/0 .text setRotAngle__15daNpcF_Lookat_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Lookat_c::setRotAngle() { nofralloc #include "asm/d/a/d_a_npc/setRotAngle__15daNpcF_Lookat_cFv.s" } #pragma pop /* 80151FE0-80152014 14C920 0034+00 1/1 0/0 0/0 .text clrRotAngle__15daNpcF_Lookat_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_Lookat_c::clrRotAngle() { nofralloc #include "asm/d/a/d_a_npc/clrRotAngle__15daNpcF_Lookat_cFv.s" } #pragma pop /* 80152014-801522AC 14C954 0298+00 0/0 0/0 38/38 .text execute__8daNpcF_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::execute() { nofralloc #include "asm/d/a/d_a_npc/execute__8daNpcF_cFv.s" } #pragma pop /* 801522AC-80152614 14CBEC 0368+00 0/0 0/0 33/33 .text draw__8daNpcF_cFiifP11_GXColorS10i */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::draw(int param_0, int param_1, f32 param_2, _GXColorS10* param_3, int param_4) { nofralloc #include "asm/d/a/d_a_npc/draw__8daNpcF_cFiifP11_GXColorS10i.s" } #pragma pop /* 80152614-80152654 14CF54 0040+00 0/0 0/0 13/13 .text * tgHitCallBack__8daNpcF_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::tgHitCallBack(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, fopAc_ac_c* param_2, dCcD_GObjInf* param_3) { nofralloc #include "asm/d/a/d_a_npc/tgHitCallBack__8daNpcF_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf.s" } #pragma pop /* ############################################################################################## */ /* 804257E8-80425978 052508 0190+00 4/4 0/0 0/0 .bss mFindActorPList__8daNpcF_c */ u8 daNpcF_c::mFindActorPList[400]; /* 80450FF0-80450FF4 0004F0 0004+00 4/4 0/0 0/0 .sbss mFindCount__8daNpcF_c */ s32 daNpcF_c::mFindCount; /* 80152654-801526E8 14CF94 0094+00 0/0 0/0 12/12 .text srchAttnActor1__8daNpcF_cFPvPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::srchAttnActor1(void* param_0, void* param_1) { nofralloc #include "asm/d/a/d_a_npc/srchAttnActor1__8daNpcF_cFPvPv.s" } #pragma pop /* ############################################################################################## */ /* 80450FF4-80450FF8 0004F4 0002+02 2/2 0/0 0/0 .sbss mSrchActorName__8daNpcF_c */ s16 daNpcF_c::mSrchActorName; /* 801526E8-8015276C 14D028 0084+00 1/1 0/0 0/0 .text srchActor__8daNpcF_cFPvPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void* daNpcF_c::srchActor(void* param_0, void* param_1) { nofralloc #include "asm/d/a/d_a_npc/srchActor__8daNpcF_cFPvPv.s" } #pragma pop /* 8015276C-801527FC 14D0AC 0090+00 2/0 0/0 40/9 .text setMtx__8daNpcF_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setMtx() { nofralloc #include "asm/d/a/d_a_npc/setMtx__8daNpcF_cFv.s" } #pragma pop /* 801527FC-801528C8 14D13C 00CC+00 2/0 0/0 38/0 .text setMtx2__8daNpcF_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setMtx2() { nofralloc #include "asm/d/a/d_a_npc/setMtx2__8daNpcF_cFv.s" } #pragma pop /* ############################################################################################## */ /* 804534A0-804534A4 001AA0 0004+00 1/1 0/0 0/0 .sdata2 @10745 */ SECTION_SDATA2 static f32 lit_10745 = 65536.0f; /* 801528C8-80152B2C 14D208 0264+00 0/0 0/0 76/76 .text initialize__8daNpcF_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::initialize() { nofralloc #include "asm/d/a/d_a_npc/initialize__8daNpcF_cFv.s" } #pragma pop /* 80152B2C-80152B68 14D46C 003C+00 0/0 0/0 69/69 .text getTrnsfrmKeyAnmP__8daNpcF_cFPci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::getTrnsfrmKeyAnmP(char* param_0, int param_1) { nofralloc #include "asm/d/a/d_a_npc/getTrnsfrmKeyAnmP__8daNpcF_cFPci.s" } #pragma pop /* 80152B68-80152BA4 14D4A8 003C+00 0/0 0/0 31/31 .text getTexPtrnAnmP__8daNpcF_cFPci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::getTexPtrnAnmP(char* param_0, int param_1) { nofralloc #include "asm/d/a/d_a_npc/getTexPtrnAnmP__8daNpcF_cFPci.s" } #pragma pop /* 80152BA4-80152BE0 14D4E4 003C+00 0/0 0/0 50/50 .text getTexSRTKeyAnmP__8daNpcF_cFPci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::getTexSRTKeyAnmP(char* param_0, int param_1) { nofralloc #include "asm/d/a/d_a_npc/getTexSRTKeyAnmP__8daNpcF_cFPci.s" } #pragma pop /* 80152BE0-80152C1C 14D520 003C+00 0/0 0/0 2/2 .text getTevRegKeyAnmP__8daNpcF_cFPci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::getTevRegKeyAnmP(char* param_0, int param_1) { nofralloc #include "asm/d/a/d_a_npc/getTevRegKeyAnmP__8daNpcF_cFPci.s" } #pragma pop /* 80152C1C-80152C80 14D55C 0064+00 0/0 0/0 38/38 .text * setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setMcaMorfAnm(J3DAnmTransformKey* param_0, f32 param_1, f32 param_2, int param_3, int param_4, int param_5) { nofralloc #include "asm/d/a/d_a_npc/setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii.s" } #pragma pop /* 80152C80-80152CC4 14D5C0 0044+00 0/0 0/0 25/25 .text * setBckAnm__8daNpcF_cFP15J3DAnmTransformfiiib */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setBckAnm(J3DAnmTransform* param_0, f32 param_1, int param_2, int param_3, int param_4, bool param_5) { nofralloc #include "asm/d/a/d_a_npc/setBckAnm__8daNpcF_cFP15J3DAnmTransformfiiib.s" } #pragma pop /* 80152CC4-80152D04 14D604 0040+00 0/0 0/0 32/32 .text * setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setBtpAnm(J3DAnmTexPattern* param_0, J3DModelData* param_1, f32 param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi.s" } #pragma pop /* 80152D04-80152D44 14D644 0040+00 0/0 0/0 26/26 .text * setBtkAnm__8daNpcF_cFP19J3DAnmTextureSRTKeyP12J3DModelDatafi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setBtkAnm(J3DAnmTextureSRTKey* param_0, J3DModelData* param_1, f32 param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/setBtkAnm__8daNpcF_cFP19J3DAnmTextureSRTKeyP12J3DModelDatafi.s" } #pragma pop /* 80152D44-80152D84 14D684 0040+00 0/0 0/0 2/2 .text * setBrkAnm__8daNpcF_cFP15J3DAnmTevRegKeyP12J3DModelDatafi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setBrkAnm(J3DAnmTevRegKey* param_0, J3DModelData* param_1, f32 param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/setBrkAnm__8daNpcF_cFP15J3DAnmTevRegKeyP12J3DModelDatafi.s" } #pragma pop /* 80152D84-80152DE0 14D6C4 005C+00 1/1 0/0 40/40 .text setEnvTevColor__8daNpcF_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setEnvTevColor() { nofralloc #include "asm/d/a/d_a_npc/setEnvTevColor__8daNpcF_cFv.s" } #pragma pop /* 80152DE0-80152E24 14D720 0044+00 1/1 0/0 40/40 .text setRoomNo__8daNpcF_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setRoomNo() { nofralloc #include "asm/d/a/d_a_npc/setRoomNo__8daNpcF_cFv.s" } #pragma pop /* 80152E24-80152EC4 14D764 00A0+00 1/1 0/0 0/0 .text chkEndAnm__8daNpcF_cFf */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::chkEndAnm(f32 param_0) { nofralloc #include "asm/d/a/d_a_npc/chkEndAnm__8daNpcF_cFf.s" } #pragma pop /* 80152EC4-80152F40 14D804 007C+00 1/1 0/0 0/0 .text chkEndAnm__8daNpcF_cFP12J3DFrameCtrlf */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::chkEndAnm(J3DFrameCtrl* param_0, f32 param_1) { nofralloc #include "asm/d/a/d_a_npc/chkEndAnm__8daNpcF_cFP12J3DFrameCtrlf.s" } #pragma pop /* 80152F40-80153150 14D880 0210+00 1/1 0/0 2/2 .text playAllAnm__8daNpcF_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::playAllAnm() { nofralloc #include "asm/d/a/d_a_npc/playAllAnm__8daNpcF_cFv.s" } #pragma pop /* 80153150-80153264 14DA90 0114+00 0/0 0/0 25/25 .text * playExpressionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::playExpressionAnm(daNpcF_c::daNpcF_anmPlayData*** param_0) { nofralloc #include "asm/d/a/d_a_npc/playExpressionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData.s" } #pragma pop /* 80153264-8015337C 14DBA4 0118+00 0/0 0/0 37/37 .text * playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::playMotionAnm(daNpcF_c::daNpcF_anmPlayData*** param_0) { nofralloc #include "asm/d/a/d_a_npc/playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData.s" } #pragma pop /* 8015337C-80153578 14DCBC 01FC+00 0/0 0/0 34/34 .text setLookatMtx__8daNpcF_cFiPif */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setLookatMtx(int param_0, int* param_1, f32 param_2) { nofralloc #include "asm/d/a/d_a_npc/setLookatMtx__8daNpcF_cFiPif.s" } #pragma pop /* 80153578-80153658 14DEB8 00E0+00 0/0 0/0 13/13 .text hitChk2__8daNpcF_cFP8dCcD_Cylii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::hitChk2(dCcD_Cyl* param_0, int param_1, int param_2) { nofralloc #include "asm/d/a/d_a_npc/hitChk2__8daNpcF_cFP8dCcD_Cylii.s" } #pragma pop /* ############################################################################################## */ /* 804534A4-804534A8 001AA4 0004+00 1/1 0/0 0/0 .sdata2 @11061 */ SECTION_SDATA2 static f32 lit_11061 = 8192.0f; /* 804534A8-804534AC 001AA8 0004+00 1/1 0/0 0/0 .sdata2 @11062 */ SECTION_SDATA2 static f32 lit_11062 = 12743.0f; /* 80153658-80153718 14DF98 00C0+00 0/0 0/0 12/12 .text setDamage__8daNpcF_cFiii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setDamage(int param_0, int param_1, int param_2) { nofralloc #include "asm/d/a/d_a_npc/setDamage__8daNpcF_cFiii.s" } #pragma pop /* 80153718-8015387C 14E058 0164+00 0/0 0/0 81/81 .text ctrlMsgAnm__8daNpcF_cFRiRiP10fopAc_ac_ci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::ctrlMsgAnm(int& param_0, int& param_1, fopAc_ac_c* param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/ctrlMsgAnm__8daNpcF_cFRiRiP10fopAc_ac_ci.s" } #pragma pop /* 8015387C-80153954 14E1BC 00D8+00 0/0 0/0 45/45 .text orderEvent__8daNpcF_cFiPcUsUsUcUs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::orderEvent(int param_0, char* param_1, u16 param_2, u16 param_3, u8 param_4, u16 param_5) { nofralloc #include "asm/d/a/d_a_npc/orderEvent__8daNpcF_cFiPcUsUsUcUs.s" } #pragma pop /* 80153954-801539F0 14E294 009C+00 0/0 0/0 31/31 .text changeEvent__8daNpcF_cFPcPcUsUs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::changeEvent(char* param_0, char* param_1, u16 param_2, u16 param_3) { nofralloc #include "asm/d/a/d_a_npc/changeEvent__8daNpcF_cFPcPcUsUs.s" } #pragma pop /* 801539F0-80153A78 14E330 0088+00 0/0 0/0 21/21 .text chkActorInSight__8daNpcF_cFP10fopAc_ac_cf */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::chkActorInSight(fopAc_ac_c* param_0, f32 param_1) { nofralloc #include "asm/d/a/d_a_npc/chkActorInSight__8daNpcF_cFP10fopAc_ac_cf.s" } #pragma pop /* 80153A78-80153BDC 14E3B8 0164+00 1/1 0/0 0/0 .text * chkActorInArea__8daNpcF_cFP10fopAc_ac_c4cXyz4cXyzs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::chkActorInArea(fopAc_ac_c* param_0, cXyz param_1, cXyz param_2, s16 param_3) { nofralloc #include "asm/d/a/d_a_npc/chkActorInArea__8daNpcF_cFP10fopAc_ac_c4cXyz4cXyzs.s" } #pragma pop /* ############################################################################################## */ /* 804534AC-804534B0 001AAC 0004+00 3/3 0/0 0/0 .sdata2 @11253 */ SECTION_SDATA2 static f32 lit_11253 = 0.5f; /* 80153BDC-80153D1C 14E51C 0140+00 0/0 0/0 25/25 .text * chkActorInAttnArea__8daNpcF_cFP10fopAc_ac_cP10fopAc_ac_ci */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::chkActorInAttnArea(fopAc_ac_c* param_0, fopAc_ac_c* param_1, int param_2) { nofralloc #include "asm/d/a/d_a_npc/chkActorInAttnArea__8daNpcF_cFP10fopAc_ac_cP10fopAc_ac_ci.s" } #pragma pop /* 80153D1C-80153D84 14E65C 0068+00 0/0 0/0 118/118 .text initTalk__8daNpcF_cFiPP10fopAc_ac_c */ int daNpcF_c::initTalk(int param_0, fopAc_ac_c** param_1) { mFlow.init(this,param_0,0,param_1); f32 tmp = FLOAT_LABEL(lit_4116); speedF = tmp; speed.set(tmp,tmp,tmp); field_0x9e9 = 0; field_0x9ec = 0; return 1; } /* 80153D84-80153EF4 14E6C4 0170+00 0/0 0/0 119/119 .text talkProc__8daNpcF_cFPiiPP10fopAc_ac_c */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::talkProc(int* param_0, int param_1, fopAc_ac_c** param_2) { nofralloc #include "asm/d/a/d_a_npc/talkProc__8daNpcF_cFPiiPP10fopAc_ac_c.s" } #pragma pop /* 80153EF4-801540A4 14E834 01B0+00 1/1 0/0 55/55 .text turn__8daNpcF_cFsfi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::turn(s16 param_0, f32 param_1, int param_2) { nofralloc #include "asm/d/a/d_a_npc/turn__8daNpcF_cFsfi.s" } #pragma pop /* 801540A4-80154250 14E9E4 01AC+00 0/0 0/0 58/58 .text step__8daNpcF_cFsiii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::step(s16 param_0, int param_1, int param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/step__8daNpcF_cFsiii.s" } #pragma pop /* 80154250-80154278 14EB90 0028+00 0/0 0/0 81/81 .text setAngle__8daNpcF_cFs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setAngle(s16 param_0) { nofralloc #include "asm/d/a/d_a_npc/setAngle__8daNpcF_cFs.s" } #pragma pop /* 80154278-801542A0 14EBB8 0028+00 0/0 0/0 36/36 .text getDistTableIdx__8daNpcF_cFii */ u8 daNpcF_getDistTableIdx(int param_0, int param_1); //fwd dec to get a match void daNpcF_c::getDistTableIdx(int param_0, int param_1) { daNpcF_getDistTableIdx(param_0,param_1); } /* 801542A0-8015436C 14EBE0 00CC+00 0/0 0/0 6/6 .text getEvtAreaTagP__8daNpcF_cFii */ #ifdef NONMATCHING int daNpcF_c::getEvtAreaTagP(int param_0, int param_1) { mFindCount = 0; mSrchActorName = PROC_TAG_EVTAREA; fpcM_Search((fpcLyIt_JudgeFunc)this->srchActor,(void*)this); for (int i = 0; mFindCount >= 0; mFindCount--) { if (param_0 == mFindActorPList[i] && param_1 == mFindActorPList[i]) { return mFindActorPList[i]; } } return 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcF_c::getEvtAreaTagP(int param_0, int param_1) { nofralloc #include "asm/d/a/d_a_npc/getEvtAreaTagP__8daNpcF_cFii.s" } #pragma pop #endif /* ############################################################################################## */ /* 804534B0-804534B4 001AB0 0004+00 1/1 0/0 0/0 .sdata2 @11605 */ SECTION_SDATA2 static f32 lit_11605 = 450.0f; /* 8015436C-80154730 14ECAC 03C4+00 0/0 0/0 12/12 .text getAttnActorP__8daNpcF_cFiPFPvPv_Pvffffsii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::getAttnActorP(int param_0, void* (*param_1)(void*, void*), f32 param_2, f32 param_3, f32 param_4, f32 param_5, s16 param_6, int param_7, int param_8) { nofralloc #include "asm/d/a/d_a_npc/getAttnActorP__8daNpcF_cFiPFPvPv_Pvffffsii.s" } #pragma pop /* 80154730-80154834 14F070 0104+00 2/2 0/0 0/0 .text chkActorInSight2__8daNpcF_cFP10fopAc_ac_cfs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::chkActorInSight2(fopAc_ac_c* param_0, f32 param_1, s16 param_2) { nofralloc #include "asm/d/a/d_a_npc/chkActorInSight2__8daNpcF_cFP10fopAc_ac_cfs.s" } #pragma pop /* 80154834-801548F4 14F174 00C0+00 2/2 0/0 0/0 .text chkPointInArea__8daNpcF_cF4cXyz4cXyzfffs */ #ifdef NONMATCHING bool daNpcF_c::chkPointInArea(cXyz param_0, cXyz param_1, f32 param_2, f32 param_3, f32 param_4, s16 param_5) { cXyz tmp_pos1; cXyz tmp_pos2; cXyz tmp_pos3; f32 tmp_float1 = param_3; if (param_3 < param_4) { tmp_float1 = param_4; param_4 = param_3; } f32 result1 = fabsf(tmp_float1 - param_4); f32 result = FLOAT_LABEL(lit_11253) * result1; tmp_pos1.set(param_2,result,param_2); f32 result2 = param_1.y + param_4 + tmp_pos1.y; tmp_pos2.set(param_1.x,result2,param_1.z); tmp_pos3 = param_0; return chkPointInArea(tmp_pos3,tmp_pos2,tmp_pos1,param_5); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm bool daNpcF_c::chkPointInArea(cXyz param_0, cXyz param_1, f32 param_2, f32 param_3, f32 param_4, s16 param_5) { nofralloc #include "asm/d/a/d_a_npc/chkPointInArea__8daNpcF_cF4cXyz4cXyzfffs.s" } #pragma pop #endif /* 801548F4-8015496C 14F234 0078+00 1/1 0/0 0/0 .text chkPointInArea__8daNpcF_cF4cXyz4cXyz4cXyzs */ bool daNpcF_chkPointInArea(cXyz,cXyz,cXyz,s16); // fwd reference bool daNpcF_c::chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3) { return daNpcF_chkPointInArea(param_0,param_1,param_2,param_3); } /* 8015496C-801549E0 14F2AC 0074+00 3/3 0/0 0/0 .text getAttentionPos__8daNpcF_cFP10fopAc_ac_c */ cXyz daNpcF_c::getAttentionPos(fopAc_ac_c* i_ActorP) { cXyz pos = i_ActorP->mAttentionInfo.mPosition; if (fopAcM_GetName(i_ActorP) == PROC_ALINK) { pos.y -= daPy_py_c::getAttentionOffsetY(); } return pos; } /* 801549E0-80154BD8 14F320 01F8+00 0/0 0/0 18/18 .text chkFindPlayer2__8daNpcF_cFis */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::chkFindPlayer2(int param_0, s16 param_1) { nofralloc #include "asm/d/a/d_a_npc/chkFindPlayer2__8daNpcF_cFis.s" } #pragma pop /* ############################################################################################## */ /* 804534B4-804534B8 001AB4 0004+00 1/1 0/0 0/0 .sdata2 id$11798 */ SECTION_SDATA2 static u8 id_11798[4] = { 0x84, 0x97, 0x84, 0x98, }; /* 80154BD8-80154DA8 14F518 01D0+00 1/1 0/0 0/0 .text setHitodamaPrtcl__8daNpcF_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_c::setHitodamaPrtcl() { nofralloc #include "asm/d/a/d_a_npc/setHitodamaPrtcl__8daNpcF_cFv.s" } #pragma pop /* 80154DA8-80154E54 14F6E8 00AC+00 1/1 0/0 1/1 .text * daNpcF_pntVsLineSegmentLengthSquare2D__FffffffPfPfPf */ int daNpcF_pntVsLineSegmentLengthSquare2D(f32 param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, f32* param_6, f32* param_7, f32* param_8) { f32 l_float3; f32 l_float1; f32 l_float2; int ret; ret = 0; l_float1 = (param_4 - param_2); l_float2 = (param_5 - param_3); l_float3 = (l_float1 * l_float1) + (l_float2 * l_float2); if (FLOAT_LABEL(lit_4116) == l_float3) { *param_8 = FLOAT_LABEL(lit_4116); return 0; } l_float3 = (l_float1 * (param_0 - param_2) + l_float2 * (param_1 - param_3)) / l_float3; if (FLOAT_LABEL(lit_4116) <= l_float3 && l_float3 <= FLOAT_LABEL(lit_4140)) { ret = 1; } *param_6 = (param_2 + (l_float1 * l_float3)); *param_7 = (param_3 + (l_float2 * l_float3)); l_float1 = (*param_6 - param_0); *param_8 = (l_float1 * l_float1) + ((*param_7 - param_1) * (*param_6 - param_1)); return ret; } /* 80154E54-80154E5C 14F794 0008+00 1/1 0/0 0/0 .text daNpcF_putNurbs__FP4dPntiiP4dPnti */ static bool daNpcF_putNurbs(dPnt* param_0, int param_1, int param_2, dPnt* param_3, int param_4) { return false; } /* 80154E5C-8015556C 14F79C 0710+00 1/1 0/0 1/1 .text daNpcF_chkPassed__F4cXyzP4dPntUsUsii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcF_chkPassed(cXyz param_0, dPnt* param_1, u16 param_2, u16 param_3, int param_4, int param_5) { nofralloc #include "asm/d/a/d_a_npc/daNpcF_chkPassed__F4cXyzP4dPntUsUsii.s" } #pragma pop /* 8015556C-80155634 14FEAC 00C8+00 1/1 0/0 8/8 .text daNpcF_getGroundAngle__FP13cBgS_PolyInfos */ #ifdef NONMATCHING int daNpcF_getGroundAngle(cBgS_PolyInfo* param_0, s16 param_1) { cM3dGPla tmp; f32 l_float; int ret; if (dComIfG_Bgsp().ChkPolySafe(*param_0)) { if (dComIfG_Bgsp().GetTriPla(*param_0,&tmp) && !cBgW_CheckBGround(l_float)) { ret = fopAcM_getPolygonAngle(&tmp,(int)param_1); } else { ret = 0; } } else { ret = 0; } return ret; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void daNpcF_getGroundAngle(cBgS_PolyInfo* param_0, s16 param_1) { nofralloc #include "asm/d/a/d_a_npc/daNpcF_getGroundAngle__FP13cBgS_PolyInfos.s" } #pragma pop #endif /* 80155634-80155674 14FF74 0040+00 0/0 0/0 69/69 .text daNpcF_chkEvtBit__FUl */ void daNpcF_chkEvtBit(u32 i_idx) { i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_idx]); } /* 80155674-801556B4 14FFB4 0040+00 0/0 0/0 13/13 .text daNpcF_onEvtBit__FUl */ void daNpcF_onEvtBit(u32 i_idx) { dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[i_idx]); } /* 801556B4-801556F4 14FFF4 0040+00 0/0 0/0 6/6 .text daNpcF_chkTmpBit__FUl */ void daNpcF_chkTmpBit(u32 i_idx) { dComIfGs_isTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_idx]); } /* 801556F4-80155734 150034 0040+00 0/0 0/0 6/6 .text daNpcF_onTmpBit__FUl */ void daNpcF_onTmpBit(u32 i_idx) { dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_idx]); } /* 80155734-80155774 150074 0040+00 1/1 0/0 36/36 .text daNpcF_offTmpBit__FUl */ void daNpcF_offTmpBit(u32 i_idx) { dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_idx]); } /* 80155774-80155854 1500B4 00E0+00 0/0 2/2 5/5 .text * daNpcF_getPlayerInfoFromPlayerList__FiiR4cXyzR5csXyz */ #ifdef NONMATCHING int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2, csXyz& param_3) { int i = 0; dStage_roomStatus_c* roomP = dComIfGp_roomControl_getStatusRoomDt(i_roomNo); stage_actor_data_class* entries = roomP->mRoomDt.getPlayer()->mEntries; while (true) { if (param_0 == entries->mEnemyNo) { break; } } param_2 = entries->mSpawnPos; param_3 = entries->mAngle; i++; if (roomP->mRoomDt.getPlayerNum() >= i) { return 0; } return 1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int daNpcF_getPlayerInfoFromPlayerList(int param_0, int param_1, cXyz& param_2, csXyz& param_3) { nofralloc #include "asm/d/a/d_a_npc/daNpcF_getPlayerInfoFromPlayerList__FiiR4cXyzR5csXyz.s" } #pragma pop #endif /* 80155854-80155968 150194 0114+00 0/0 0/0 1/1 .text daNpcF_chkDoBtnEqSpeak__FP10fopAc_ac_c */ bool daNpcF_chkDoBtnEqSpeak(fopAc_ac_c* i_ActorP) { bool ret = 0; if (daPy_getPlayerActorClass()->checkPriActorOwn(i_ActorP)) { for (int i = 0; i < dComIfGp_getAttention().GetActionCount(); i++) { if (dComIfGp_getAttention().ActionTarget(i) == i_ActorP && dComIfGp_getAttention().getActionBtnB() && dComIfGp_getAttention().getActionBtnB()->mType == 3) { ret = 1; }; } for (int i = 0; i < dComIfGp_getAttention().GetLockonCount(); i++) { if (dComIfGp_getAttention().LockonTarget(i) == i_ActorP && dComIfGp_getAttention().getActionBtnB() && dComIfGp_getAttention().getActionBtnB()->mType == 1) { ret = 1; }; } } return ret; } /* 80155968-80155AD4 1502A8 016C+00 1/1 0/0 2/2 .text daNpcF_chkPointInArea__F4cXyz4cXyz4cXyzs */ bool daNpcF_chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3) { bool ret = 0; Vec l_vec; f32 l_float1; f32 l_float2; f32 l_float3; f32 l_float4; cXyz l_pos; mDoMtx_YrotS((MtxP)&mDoMtx_stack_c::now,-param_3); mDoMtx_stack_c::transM(-param_1.x,-param_1.y,-param_1.z); PSMTXMultVec((MtxP)&mDoMtx_stack_c::now,(Vec*)¶m_0,&l_vec); l_float1 = fabsf(param_2.x); l_float2 = fabsf(param_2.z); l_float3 = fabsf(l_vec.x); l_float4 = fabsf(l_vec.z); l_pos = param_1 - param_0; if (l_pos.y <= -param_2.y || param_2.y <= l_pos.y) { ret = 0; } else { f32 tmp_float1 = (l_float3 * l_float3) / (l_float1 * l_float1); f32 tmp_float2 = (l_float4 * l_float4) / (l_float2 * l_float2); f32 tmp_float3 = tmp_float1 + tmp_float2; ret = tmp_float3 <= FLOAT_LABEL(lit_4140); } return ret; } /* 80155AD4-80155AE8 150414 0014+00 1/1 0/0 1/1 .text daNpcF_getDistTableIdx__Fii */ u8 daNpcF_getDistTableIdx(int param_0, int param_1) { return param_0 + param_1 * 0x14 + 0x5e; } /* 80155AE8-80155B54 150428 006C+00 0/0 0/0 6/6 .text daNpcF_clearMessageTmpBit__Fv */ void daNpcF_clearMessageTmpBit() { daNpcF_offTmpBit(0xb); daNpcF_offTmpBit(0xc); daNpcF_offTmpBit(0xd); daNpcF_offTmpBit(0xe); daNpcF_offTmpBit(0xf); daNpcF_offTmpBit(0x33); daNpcF_offTmpBit(0x34); daNpcF_offTmpBit(0x35); daNpcF_offTmpBit(0x36); daNpcF_offTmpBit(0x37); } /* 80155B54-80155BB4 150494 0060+00 1/0 0/0 0/0 .text __dt__20daNpcF_MoveBgActor_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daNpcF_MoveBgActor_c::~daNpcF_MoveBgActor_c() { nofralloc #include "asm/d/a/d_a_npc/__dt__20daNpcF_MoveBgActor_cFv.s" } #pragma pop /* 80155BB4-80155BB8 1504F4 0004+00 2/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */ void daNpcF_c::setCollisions() { /* empty function */ } /* 80155BB8-80155BBC 1504F8 0004+00 2/0 0/0 0/0 .text setAttnPos__8daNpcF_cFv */ void daNpcF_c::setAttnPos() { /* empty function */ } /* 80155BBC-80155BC0 1504FC 0004+00 2/0 0/0 0/0 .text adjustShapeAngle__8daNpcF_cFv */ void daNpcF_c::adjustShapeAngle() { /* empty function */ } /* 80155BC0-80155BC8 150500 0008+00 2/0 0/0 0/0 .text main__8daNpcF_cFv */ bool daNpcF_c::main() { return true; } /* 80155BC8-80155BCC 150508 0004+00 2/0 0/0 0/0 .text setParam__8daNpcF_cFv */ void daNpcF_c::setParam() { /* empty function */ } /* 80155BCC-80155BD0 15050C 0004+00 2/0 0/0 0/0 .text drawOtherMdls__8daNpcF_cFv */ void daNpcF_c::drawOtherMdls() { /* empty function */ } /* 80155BD0-80155BD8 150510 0008+00 2/0 0/0 0/0 .text drawDbgInfo__8daNpcF_cFv */ bool daNpcF_c::drawDbgInfo() { return true; } /* 80155BD8-80155BE0 150518 0008+00 2/0 0/0 0/0 .text ctrlBtk__8daNpcF_cFv */ bool daNpcF_c::ctrlBtk() { return false; } /* 80155BE0-80155BE8 150520 0008+00 2/0 0/0 0/0 .text setExpressionAnm__8daNpcF_cFib */ bool daNpcF_c::setExpressionAnm(int param_0, bool param_1) { return true; } /* 80155BE8-80155BEC 150528 0004+00 2/0 0/0 0/0 .text setMotionAnm__8daNpcF_cFif */ void daNpcF_c::setMotionAnm(int param_0, f32 param_1) { /* empty function */ } /* 80155BEC-80155BF0 15052C 0004+00 2/0 0/0 0/0 .text setMotion__8daNpcF_cFifi */ void daNpcF_c::setMotion(int param_0, f32 param_1, int param_2) { /* empty function */ } /* 80155BF0-80155BF4 150530 0004+00 2/0 0/0 0/0 .text setExpression__8daNpcF_cFif */ void daNpcF_c::setExpression(int param_0, f32 param_1) { /* empty function */ } /* 80155BF4-80155E40 150534 024C+00 2/1 0/0 0/0 .text __dt__8daNpcF_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // asm daNpcF_c::~daNpcF_c() { extern "C" asm void __dt__8daNpcF_cFv() { nofralloc #include "asm/d/a/d_a_npc/__dt__8daNpcF_cFv.s" } #pragma pop /* 80155E40-80155E88 150780 0048+00 2/1 0/0 0/0 .text __dt__18daNpcF_ActorMngr_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // asm daNpcF_ActorMngr_c::~daNpcF_ActorMngr_c() { extern "C" asm void __dt__18daNpcF_ActorMngr_cFv() { nofralloc #include "asm/d/a/d_a_npc/__dt__18daNpcF_ActorMngr_cFv.s" } #pragma pop /* 80155E88-80155E90 1507C8 0008+00 1/0 0/0 0/0 .text CreateHeap__20daNpcF_MoveBgActor_cFv */ bool daNpcF_MoveBgActor_c::CreateHeap() { return true; } /* 80155E90-80155E98 1507D0 0008+00 1/0 0/0 0/0 .text Create__20daNpcF_MoveBgActor_cFv */ bool daNpcF_MoveBgActor_c::Create() { return true; } /* 80155E98-80155EA0 1507D8 0008+00 1/0 0/0 0/0 .text Delete__20daNpcF_MoveBgActor_cFv */ bool daNpcF_MoveBgActor_c::Delete() { return true; } /* 80155EA0-80155EA8 1507E0 0008+00 1/0 0/0 0/0 .text Execute__20daNpcF_MoveBgActor_cFPPA3_A4_f */ bool daNpcF_MoveBgActor_c::Execute(f32 (**param_0)[3][4]) { return true; } /* 80155EA8-80155EB0 1507E8 0008+00 1/0 0/0 0/0 .text Draw__20daNpcF_MoveBgActor_cFv */ bool daNpcF_MoveBgActor_c::Draw() { return true; } /* 80155EB0-80155EB8 1507F0 0008+00 1/0 0/0 0/0 .text IsDelete__20daNpcF_MoveBgActor_cFv */ bool daNpcF_MoveBgActor_c::IsDelete() { return true; } /* 80155EB8-80155EC0 1507F8 0008+00 1/0 0/0 0/0 .text ToFore__20daNpcF_MoveBgActor_cFv */ bool daNpcF_MoveBgActor_c::ToFore() { return true; } /* 80155EC0-80155EC8 150800 0008+00 1/0 0/0 0/0 .text ToBack__20daNpcF_MoveBgActor_cFv */ bool daNpcF_MoveBgActor_c::ToBack() { return true; } /* 80155EC8-80155ED0 150808 0008+00 2/0 0/0 0/0 .text setExpressionBtp__8daNpcF_cFi */ bool daNpcF_c::setExpressionBtp(int param_0) { return true; } /* 80155ED0-80155FB0 150810 00E0+00 1/0 0/0 0/0 .text __dt__15daNpcF_MatAnm_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daNpcF_MatAnm_c::~daNpcF_MatAnm_c() { nofralloc #include "asm/d/a/d_a_npc/__dt__15daNpcF_MatAnm_cFv.s" } #pragma pop /* 80155FB0-80156010 1508F0 0060+00 1/0 0/0 0/0 .text __dt__23daBaseNpc_moveBgActor_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm daBaseNpc_moveBgActor_c::~daBaseNpc_moveBgActor_c() { nofralloc #include "asm/d/a/d_a_npc/__dt__23daBaseNpc_moveBgActor_cFv.s" } #pragma pop /* ############################################################################################## */ /* 803926B0-803926E0 01ED10 0030+00 0/0 0/0 0/0 .rodata mCcDObj__11daBaseNpc_c */ #pragma push #pragma force_active on SECTION_RODATA u8 const daBaseNpc_c::mCcDObj[48] = { 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, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; COMPILER_STRIP_GATE(0x803926B0, &daBaseNpc_c::mCcDObj); #pragma pop /* 803926E0-80392710 01ED40 0030+00 0/0 0/0 0/0 .rodata mCcDObjInfo__8daNpcF_c */ #pragma push #pragma force_active on SECTION_RODATA u8 const daNpcF_c::mCcDObjInfo[48] = { 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, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; COMPILER_STRIP_GATE(0x803926E0, &daNpcF_c::mCcDObjInfo); #pragma pop /* 80392720-80392725 01ED80 0005+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80392720 = ".bck"; #pragma pop /* 80392725-8039272A 01ED85 0005+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80392725 = ".btp"; #pragma pop /* 8039272A-8039272F 01ED8A 0005+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039272A = ".btk"; #pragma pop /* 8039272F-8039274A 01ED8F 001B+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039272F = "%.3ff,\t// 注目オフセット\n"; #pragma pop /* 8039274A-8039275B 01EDAA 0011+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039274A = "%.3ff,\t// 重力\n"; #pragma pop /* 8039275B-80392770 01EDBB 0015+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039275B = "%.3ff,\t// スケ−ル\n"; #pragma pop /* 80392770-8039278B 01EDD0 001B+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80392770 = "%.3ff,\t// リアル影サイズ\n"; #pragma pop /* 8039278B-8039279C 01EDEB 0011+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039278B = "%.3ff,\t// 体重\n"; #pragma pop /* 8039279C-803927AD 01EDFC 0011+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039279C = "%.3ff,\t// 高さ\n"; #pragma pop /* 803927AD-803927C0 01EE0D 0013+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_803927AD = "%.3ff,\t// ひざ丈\n"; #pragma pop /* 803927C0-803927CF 01EE20 000F+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_803927C0 = "%.3ff,\t// 幅\n"; #pragma pop /* 803927CF-803927E8 01EE2F 0019+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_803927CF = "%.3ff,\t// 腰のX角上限\n"; #pragma pop /* 803927E8-80392801 01EE48 0019+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_803927E8 = "%.3ff,\t// 腰のX角下限\n"; #pragma pop /* 80392801-8039281A 01EE61 0019+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80392801 = "%.3ff,\t// 腰のY角上限\n"; #pragma pop /* 8039281A-80392833 01EE7A 0019+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039281A = "%.3ff,\t// 腰のY角下限\n"; #pragma pop /* 80392833-8039284C 01EE93 0019+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80392833 = "%.3ff,\t// 頭のX角上限\n"; #pragma pop /* 8039284C-80392865 01EEAC 0019+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039284C = "%.3ff,\t// 頭のX角下限\n"; #pragma pop /* 80392865-8039287E 01EEC5 0019+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80392865 = "%.3ff,\t// 頭のY角上限\n"; #pragma pop /* 8039287E-80392897 01EEDE 0019+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039287E = "%.3ff,\t// 頭のY角下限\n"; #pragma pop /* 80392897-803928B0 01EEF7 0019+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80392897 = "%.3ff,\t// 首の回転比率\n"; #pragma pop /* 803928B0-803928C9 01EF10 0019+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_803928B0 = "%.3ff,\t// 補間フレ−ム\n"; #pragma pop /* 803928C9-803928DE 01EF29 0015+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_803928C9 = "%d, \t// 会話距離\n"; #pragma pop /* 803928DE-803928F3 01EF3E 0015+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_803928DE = "%d, \t// 会話角度\n"; #pragma pop /* 803928F3-80392908 01EF53 0015+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_803928F3 = "%d, \t// 注目距離\n"; #pragma pop /* 80392908-8039291D 01EF68 0015+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80392908 = "%d, \t// 注目角度\n"; #pragma pop /* 8039291D-8039292E 01EF7D 0011+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039291D = "%.3ff,\t// 視界\n"; #pragma pop /* 8039292E-80392945 01EF8E 0017+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039292E = "%.3ff,\t// サ−チ距離\n"; #pragma pop /* 80392945-8039295C 01EFA5 0017+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80392945 = "%.3ff,\t// サ−チ高さ\n"; #pragma pop /* 8039295C-80392973 01EFBC 0017+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8039295C = "%.3ff,\t// サ−チ低さ\n"; #pragma pop /* 80392973-80392988 01EFD3 0015+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80392973 = "%d, \t// 注目時間\n"; #pragma pop /* 80392988-803929A1 01EFE8 0019+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80392988 = "%d, \t// ダメ−ジ期間\n"; #pragma pop /* 803929A1-803929B2 01F001 0011+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on // MWCC ignores mapping of some japanese characters using the // byte 0x5C (ASCII '\'). This is why this string is hex-encoded. SECTION_DEAD static char const* const stringBase_803929A1 = "\x25\x64\x2C\x20\x20\x20\x09\x2F\x2F\x20\x20\x95\x5C\x8F\xEE\x0A"; #pragma pop /* 803929B2-803929C3 01F012 0011+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_803929B2 = "%d, \t// 動作\n"; #pragma pop /* 803929C3-803929DA 01F023 0017+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_803929C3 = "%d, \t// 注視モ−ド\n"; #pragma pop /* 803929DA-803929F7 01F03A 001D+00 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_803929DA = "%d, \t// デバグモ−ドON\n"; #pragma pop /* 803929F7-80392A18 01F057 001B+06 0/0 0/0 0/0 .rodata None */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_803929F7 = "%d, \t// デバグ情報ON\n"; /* @stringBase0 padding */ SECTION_DEAD static char const* const pad_80392A12 = "\0\0\0\0\0"; #pragma pop /* 80450FF8-80451000 0004F8 0008+00 0/0 1/1 0/0 .sbss None */ extern u8 data_80450FF8[8]; u8 data_80450FF8[8]; /* 80392710-80392710 01ED70 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */