d_a_e_ym_tag OK, d_a_tag_theB_hint OK (#289)

This commit is contained in:
Pheenoh
2023-02-17 07:26:11 -07:00
committed by GitHub
parent 52d84413bb
commit 7fdd453996
20 changed files with 502 additions and 1191 deletions
+5
View File
@@ -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
+87
View File
@@ -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 */
@@ -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 */
@@ -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 */
@@ -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 */