summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPheenoh <pheenoh@gmail.com>2023-02-17 07:26:11 -0700
committerGitHub <noreply@github.com>2023-02-17 07:26:11 -0700
commit7fdd4539963655803b0bfdbee2614afa54f40a79 (patch)
tree8972bcd952fc251ffe1fe93e4bcf9f13f1431a95 /include
parent52d84413bb0186d773d9f14b926bdab4eb6caf38 (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.h5
-rw-r--r--include/rel/d/a/e/d_a_e_ym/d_a_e_ym.h87
-rw-r--r--include/rel/d/a/e/d_a_e_ym_tag/d_a_e_ym_tag.h8
-rw-r--r--include/rel/d/a/npc/d_a_npc_theB/d_a_npc_theB.h130
-rw-r--r--include/rel/d/a/tag/d_a_tag_theB_hint/d_a_tag_theB_hint.h100
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 */