diff options
| author | Pheenoh <pheenoh@gmail.com> | 2023-02-17 07:26:11 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-02-17 07:26:11 -0700 |
| commit | 7fdd4539963655803b0bfdbee2614afa54f40a79 (patch) | |
| tree | 8972bcd952fc251ffe1fe93e4bcf9f13f1431a95 /include | |
| parent | 52d84413bb0186d773d9f14b926bdab4eb6caf38 (diff) | |
d_a_e_ym_tag OK, d_a_tag_theB_hint OK (#289)
Diffstat (limited to 'include')
| -rw-r--r-- | include/f_pc/f_pc_searcher.h | 5 | ||||
| -rw-r--r-- | include/rel/d/a/e/d_a_e_ym/d_a_e_ym.h | 87 | ||||
| -rw-r--r-- | include/rel/d/a/e/d_a_e_ym_tag/d_a_e_ym_tag.h | 8 | ||||
| -rw-r--r-- | include/rel/d/a/npc/d_a_npc_theB/d_a_npc_theB.h | 130 | ||||
| -rw-r--r-- | include/rel/d/a/tag/d_a_tag_theB_hint/d_a_tag_theB_hint.h | 100 |
5 files changed, 328 insertions, 2 deletions
diff --git a/include/f_pc/f_pc_searcher.h b/include/f_pc/f_pc_searcher.h index 401dda6420..8445ae8b98 100644 --- a/include/f_pc/f_pc_searcher.h +++ b/include/f_pc/f_pc_searcher.h @@ -4,6 +4,7 @@ #include "dolphin/types.h" #include "f_pc/f_pc_base.h" +#include "f_pc/f_pc_layer_iter.h" void* fpcSch_JudgeForPName(void* pProc, void* pUserData); void* fpcSch_JudgeByID(void* pProc, void* pUserData); @@ -12,4 +13,8 @@ extern "C" { void fpcSch_JudgeForPName__FPvPv(void); } +inline base_process_class* i_fpcM_SearchByName(s16 name) { + return (base_process_class*)fpcLyIt_AllJudge(fpcSch_JudgeForPName, &name); +} + #endif diff --git a/include/rel/d/a/e/d_a_e_ym/d_a_e_ym.h b/include/rel/d/a/e/d_a_e_ym/d_a_e_ym.h index be70ab9a2c..dc20d5568d 100644 --- a/include/rel/d/a/e/d_a_e_ym/d_a_e_ym.h +++ b/include/rel/d/a/e/d_a_e_ym/d_a_e_ym.h @@ -2,5 +2,92 @@ #define D_A_E_YM_H #include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daE_YM_c : public fopEn_enemy_c { +public: + u8 getTagNo() { + return mTagNo; + } + + void setTagPos(cXyz& i_position) { + mTagPos = i_position; + } + + void setTagPosP() { + mTagPosP = &mTagPos; + } + + /* 80808184 */ void checkBck(char const*, int); + /* 808081E0 */ void bckSet(int, u8, f32, f32); + /* 80808328 */ void bckSetFly(int, u8, f32, f32); + /* 808083CC */ void draw(); + /* 80808768 */ void setDigEffect(); + /* 80808884 */ void setElecEffect1(); + /* 808089DC */ void setElecEffect2(); + /* 80808B3C */ void setFireEffect(); + /* 80808E34 */ void checkWallCrash(); + /* 80809000 */ void checkWolfBark(); + /* 80809228 */ void checkSurpriseLock(); + /* 8080963C */ void checkRailSurprise(); + /* 808096EC */ void checkSurpriseNear(); + /* 80809D6C */ void setNormalCc(); + /* 80809D84 */ void setAppear(); + /* 80809DA8 */ void setMoveSound(int); + /* 80809EF0 */ void setTurnSound(); + /* 80809F9C */ void setActionMode(int); + /* 80809FC4 */ void executeWait(); + /* 8080A57C */ void executeMove(); + /* 8080ACB4 */ void executeEscape(); + /* 8080B444 */ void executeDown(); + /* 8080BB7C */ void damage_check(); + /* 8080BCFC */ void executeWind(); + /* 8080C05C */ void getSurpriseType(); + /* 8080C1FC */ void setSurpriseAway(); + /* 8080C24C */ void setGoHomeType(); + /* 8080C374 */ void executeSurprise(); + /* 8080CEE0 */ void executeBack(); + /* 8080CFC8 */ void executeFall(); + /* 8080D2C8 */ void executeAttack(); + /* 8080D990 */ void checkAttackEnd(); + /* 8080DB58 */ void setAttackMotion(); + /* 8080DC5C */ void executeAttackWall(); + /* 8080E26C */ void executeDefense(); + /* 8080E49C */ void checkFlyTerritory(); + /* 8080E630 */ void initFly(); + /* 8080E6A0 */ void executeFly(); + /* 8080F8C8 */ void setInclination(); + /* 8080F92C */ void executeFlyAttack(); + /* 80810084 */ void setNextPathPoint(); + /* 8081013C */ void checkRailDig(); + /* 8081030C */ void executeRail(); + /* 80810690 */ void executeBackRail(); + /* 80810DF8 */ void checkElectricStart(); + /* 80810E64 */ void executeElectric(); + /* 8081105C */ void executeSwitch(); + /* 80811740 */ void initFireFly(int); + /* 80811838 */ void executeFire(); + /* 808120B0 */ void setRiverAttention(); + /* 808123C4 */ void setLockByCargo(); + /* 808123D0 */ void executeRiver(); + /* 80812FCC */ void checkFrinedSamePos(); + /* 8081300C */ void action(); + /* 80813528 */ void mtx_set(); + /* 808135B0 */ void cc_set(); + /* 808138AC */ void execute(); + /* 80813A38 */ void _delete(); + /* 80813AF0 */ void CreateHeap(); + /* 80813EA4 */ void checkBeforeBg(s16); + /* 808143A0 */ void checkBeforeGround(); + /* 808144D8 */ void checkInitialWall(); + /* 80814758 */ void checkWall(); + /* 80814AF0 */ void setHideType(); + /* 80814BA4 */ void create(); + + /* 0x5AC */ u8 field_0x5ac[268]; + /* 0x6B8 */ cXyz mTagPos; + /* 0x6C4 */ cXyz* mTagPosP; + /* 0x6C8 */ u8 mTagNo; +}; #endif /* D_A_E_YM_H */ diff --git a/include/rel/d/a/e/d_a_e_ym_tag/d_a_e_ym_tag.h b/include/rel/d/a/e/d_a_e_ym_tag/d_a_e_ym_tag.h index 8a1f00207c..371a3cc51b 100644 --- a/include/rel/d/a/e/d_a_e_ym_tag/d_a_e_ym_tag.h +++ b/include/rel/d/a/e/d_a_e_ym_tag/d_a_e_ym_tag.h @@ -1,6 +1,12 @@ #ifndef D_A_E_YM_TAG_H #define D_A_E_YM_TAG_H -#include "dolphin/types.h" +#include "rel/d/a/e/d_a_e_ym/d_a_e_ym.h" + +class daE_YM_TAG_c : public fopAc_ac_c { +public: + /* 80815E8C */ int execute(); + /* 80815F28 */ int create(); +}; #endif /* D_A_E_YM_TAG_H */ diff --git a/include/rel/d/a/npc/d_a_npc_theB/d_a_npc_theB.h b/include/rel/d/a/npc/d_a_npc_theB/d_a_npc_theB.h index d05ebd3ab7..4a2f7780d8 100644 --- a/include/rel/d/a/npc/d_a_npc_theB/d_a_npc_theB.h +++ b/include/rel/d/a/npc/d_a_npc_theB/d_a_npc_theB.h @@ -2,5 +2,135 @@ #define D_A_NPC_THEB_H #include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" +// #include "d/com/d_com_inf_game.h" +// #include "d/a/d_a_npc.h" + +struct daNpcTheB_Param_c { + /* 80B00D00 */ ~daNpcTheB_Param_c(); + + static u8 const m[108]; +}; + +struct daNpcF_c { + struct daNpcF_anmPlayData {}; + + /* 801522AC */ void draw(int, int, f32, _GXColorS10*, int); + /* 8015276C */ void setMtx(); + /* 801527FC */ void setMtx2(); + /* 801528C8 */ void initialize(); + /* 80152B2C */ void getTrnsfrmKeyAnmP(char*, int); + /* 80152B68 */ void getTexPtrnAnmP(char*, int); + /* 80152BA4 */ void getTexSRTKeyAnmP(char*, int); + /* 80152C1C */ void setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int); + /* 80152C80 */ void setBckAnm(J3DAnmTransform*, f32, int, int, int, bool); + /* 80152CC4 */ void setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int); + /* 80152D04 */ void setBtkAnm(J3DAnmTextureSRTKey*, J3DModelData*, f32, int); + /* 80152D84 */ void setEnvTevColor(); + /* 80152DE0 */ void setRoomNo(); + /* 80152F40 */ void playAllAnm(); + /* 80153150 */ void playExpressionAnm(daNpcF_c::daNpcF_anmPlayData***); + /* 80153264 */ void playMotionAnm(daNpcF_c::daNpcF_anmPlayData***); + /* 8015337C */ void setLookatMtx(int, int*, f32); + /* 80153718 */ void ctrlMsgAnm(int&, int&, fopAc_ac_c*, int); + /* 8015387C */ void orderEvent(int, char*, u16, u16, u8, u16); + /* 80153D1C */ void initTalk(int, fopAc_ac_c**); + /* 80153D84 */ void talkProc(int*, int, fopAc_ac_c**); + /* 80154278 */ void getDistTableIdx(int, int); + /* 801542A0 */ void getEvtAreaTagP(int, int); + /* 801549E0 */ void chkFindPlayer2(int, s16); + /* 80B00600 */ ~daNpcF_c(); + /* 80B0084C */ daNpcF_c(); + /* 80B00BC0 */ void adjustShapeAngle(); + /* 80B00BC4 */ void setCollisions(); + /* 80B00BC8 */ void drawOtherMdls(); + + static u8 mCcDCyl[68]; +}; + +struct daNpcF_Lookat_c { + /* 80151038 */ void initialize(); + /* 801510B8 */ void setParam(f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, s16, + cXyz*); + /* 80151350 */ void calc(fopAc_ac_c*, f32 (*)[4], csXyz**, int, int, int); + /* 80B004B0 */ ~daNpcF_Lookat_c(); +}; + +struct daNpcF_ActorMngr_c { + /* 801506B0 */ void initialize(); + /* 801506BC */ void entry(fopAc_ac_c*); + /* 801506E0 */ void remove(); + /* 801506EC */ void getActorP(); + /* 80B0042C */ ~daNpcF_ActorMngr_c(); + /* 80B00474 */ daNpcF_ActorMngr_c(); +}; + +struct J3DTexNoAnm { + /* 80AFD0E8 */ ~J3DTexNoAnm(); + /* 80AFD130 */ J3DTexNoAnm(); + /* 80B003FC */ void calc(u16*) const; +}; + +struct J3DTexMtxAnm { + /* 80AFD154 */ ~J3DTexMtxAnm(); + /* 80AFD190 */ J3DTexMtxAnm(); +}; + +struct J3DTevKColorAnm { + /* 80AFD040 */ ~J3DTevKColorAnm(); + /* 80AFD07C */ J3DTevKColorAnm(); +}; + +struct J3DTevColorAnm { + /* 80AFD094 */ ~J3DTevColorAnm(); + /* 80AFD0D0 */ J3DTevColorAnm(); +}; + +struct J3DMatColorAnm { + /* 80AFD1A8 */ ~J3DMatColorAnm(); + /* 80AFD1E4 */ J3DMatColorAnm(); +}; + +struct daNpcTheB_c { + /* 80AFC76C */ daNpcTheB_c(); + /* 80AFC980 */ ~daNpcTheB_c(); + /* 80AFCB44 */ void create(); + /* 80AFCD98 */ void CreateHeap(); + /* 80AFD1FC */ void Delete(); + /* 80AFD230 */ void Execute(); + /* 80AFD250 */ void Draw(); + /* 80AFD2A8 */ void ctrlJoint(J3DJoint*, J3DModel*); + /* 80AFD49C */ void createHeapCallBack(fopAc_ac_c*); + /* 80AFD4BC */ void ctrlJointCallBack(J3DJoint*, int); + /* 80AFD508 */ void getHandPos1(int); + /* 80AFD5F0 */ void getHandPos2(int); + /* 80AFD6D8 */ void setHintEvent(s32, u16, int); + /* 80AFD6F0 */ void main(); + /* 80AFD938 */ void setParam(); + /* 80AFDAA4 */ void ctrlBtk(); + /* 80AFDB70 */ void setAttnPos(); + /* 80AFDEC0 */ void setExpressionAnm(int, bool); + /* 80AFE0BC */ void setExpressionBtp(int); + /* 80AFE1BC */ void setMotionAnm(int, f32); + /* 80AFE398 */ bool drawDbgInfo(); + /* 80AFE3A0 */ void reset(); + /* 80AFE574 */ void playExpression(); + /* 80AFE704 */ void playMotion(); + /* 80AFE920 */ void doNormalAction(); + /* 80AFEA14 */ void doEvent(); + /* 80AFED24 */ void lookat(); + /* 80AFEECC */ void wait(void*); + /* 80AFF45C */ void setMotion(int, f32, int); + /* 80AFF4A0 */ void setExpression(int, f32); + /* 80AFF4CC */ void talk(void*); + /* 80AFF6AC */ void EvCut_PersonalCombatIntro(int); + /* 80AFF888 */ void EvCut_PersonalCombatRevenge(int); + /* 80AFFBB4 */ void EvCut_PersonalCombatAfter(); + /* 80AFFEF4 */ void EvCut_AnnulationFieldRace(int); + /* 80AFFFE0 */ void EvCut_TheBHint(int); + /* 80B00204 */ void EvCut_CoachGuardGameOver(int); + + static u8 mEvtSeqList[72]; +}; #endif /* D_A_NPC_THEB_H */ diff --git a/include/rel/d/a/tag/d_a_tag_theB_hint/d_a_tag_theB_hint.h b/include/rel/d/a/tag/d_a_tag_theB_hint/d_a_tag_theB_hint.h index f3708cddbd..5e03effb42 100644 --- a/include/rel/d/a/tag/d_a_tag_theB_hint/d_a_tag_theB_hint.h +++ b/include/rel/d/a/tag/d_a_tag_theB_hint/d_a_tag_theB_hint.h @@ -1,6 +1,104 @@ #ifndef D_A_TAG_THEB_HINT_H #define D_A_TAG_THEB_HINT_H -#include "dolphin/types.h" +// #include "rel/d/a/npc/d_a_npc_theB/d_a_npc_theB.h" +#include "d/com/d_com_inf_game.h" + +// needs to be pulled from d_a_npc_theB.h eventually +struct daNpcTheB_c { + /* 80AFC76C */ daNpcTheB_c(); + /* 80AFC980 */ ~daNpcTheB_c(); + /* 80AFCB44 */ void create(); + /* 80AFCD98 */ void CreateHeap(); + /* 80AFD1FC */ void Delete(); + /* 80AFD230 */ void Execute(); + /* 80AFD250 */ void Draw(); + /* 80AFD2A8 */ void ctrlJoint(J3DJoint*, J3DModel*); + /* 80AFD49C */ void createHeapCallBack(fopAc_ac_c*); + /* 80AFD4BC */ void ctrlJointCallBack(J3DJoint*, int); + /* 80AFD508 */ void getHandPos1(int); + /* 80AFD5F0 */ void getHandPos2(int); + /* 80AFD6D8 */ void setHintEvent(s32, u16, int); + /* 80AFD6F0 */ void main(); + /* 80AFD938 */ void setParam(); + /* 80AFDAA4 */ void ctrlBtk(); + /* 80AFDB70 */ void setAttnPos(); + /* 80AFDEC0 */ void setExpressionAnm(int, bool); + /* 80AFE0BC */ void setExpressionBtp(int); + /* 80AFE1BC */ void setMotionAnm(int, f32); + /* 80AFE398 */ bool drawDbgInfo(); + /* 80AFE3A0 */ void reset(); + /* 80AFE574 */ void playExpression(); + /* 80AFE704 */ void playMotion(); + /* 80AFE920 */ void doNormalAction(); + /* 80AFEA14 */ void doEvent(); + /* 80AFED24 */ void lookat(); + /* 80AFEECC */ void wait(void*); + /* 80AFF45C */ void setMotion(int, f32, int); + /* 80AFF4A0 */ void setExpression(int, f32); + /* 80AFF4CC */ void talk(void*); + /* 80AFF6AC */ void EvCut_PersonalCombatIntro(int); + /* 80AFF888 */ void EvCut_PersonalCombatRevenge(int); + /* 80AFFBB4 */ void EvCut_PersonalCombatAfter(); + /* 80AFFEF4 */ void EvCut_AnnulationFieldRace(int); + /* 80AFFFE0 */ void EvCut_TheBHint(int); + /* 80B00204 */ void EvCut_CoachGuardGameOver(int); + + static u8 mEvtSeqList[72]; +}; + +class daTagTheBHint_c : public fopAc_ac_c { +public: + + u8 getSwitchNo() { + return shape_angle.x & 0xff; + } + + u16 getMessageNo() { + return shape_angle.z & 0xffff; + } + + u16 getLinkID() { + return fopAcM_GetParam(this) & 0xFFFF; + } + + s8 getRoomNo() { + return fopAcM_GetParam(this) >> 24; + } + + int create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagTheBHint_c(); + fopAcM_OnCondition(this, 8); + } + field_0x568 = pow(mScale.x * 100.0f,2.0f); + return cPhs_COMPLEATE_e; + } + + int execute() { + if (i_fopAcM_isSwitch(this,getSwitchNo())) { + fopAcM_delete(this); + return 1; + } else { + f32 distance = fopAcM_searchPlayerDistanceXZ2(this); + + if (distance < field_0x568) { + daNpcTheB_c* the_b = (daNpcTheB_c*)i_fpcM_SearchByName(PROC_NPC_THEB); + if (the_b) { + s8 roomNo = getRoomNo(); + + if (roomNo == 0xFF) { + roomNo = fopAcM_GetRoomNo(this); + } + + the_b->setHintEvent(getMessageNo(),getLinkID(),roomNo); + } + } + } + + return 1; + } + /* 0x568 */ f32 field_0x568; +}; #endif /* D_A_TAG_THEB_HINT_H */ |
