summaryrefslogtreecommitdiff
path: root/include/d/a
diff options
context:
space:
mode:
authorTakaRikka <takarikka@outlook.com>2022-06-01 03:49:32 -0700
committerTakaRikka <takarikka@outlook.com>2022-06-01 03:49:32 -0700
commit3f22fa448376893fffd83815ecd4cdccb197f1a4 (patch)
treeee4fc3c63d8d1d36d5705c7d75a6ba3c47c6549c /include/d/a
parent36e62e0b80225b6ef6cbe6a7322397899d3a0ffd (diff)
m_Do / d_a_npc work
Diffstat (limited to 'include/d/a')
-rw-r--r--include/d/a/d_a_alink.h52
-rw-r--r--include/d/a/d_a_npc.h186
-rw-r--r--include/d/a/d_a_player.h7
3 files changed, 227 insertions, 18 deletions
diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h
index f8921292ec..a1dc780d0f 100644
--- a/include/d/a/d_a_alink.h
+++ b/include/d/a/d_a_alink.h
@@ -33,6 +33,7 @@ class J2DAnmBase;
class daAlink_lockCursor_c : public dDlst_base_c {
public:
+ daAlink_lockCursor_c() {}
/* 80125F14 */ BOOL create();
/* 80126358 */ void update();
/* 80126424 */ virtual void draw();
@@ -64,6 +65,7 @@ private:
class daAlink_sight_c : public daPy_sightPacket_c {
public:
+ daAlink_sight_c() {}
/* 80126650 */ bool create();
/* 80126710 */ void onLockFlg();
@@ -78,6 +80,7 @@ private:
class daAlink_blur_c : public J3DPacket {
public:
+ daAlink_blur_c() {}
/* 801256EC */ void initBlur(f32, int, cXyz const*, cXyz const*, cXyz const*);
/* 8012589C */ void copyBlur(cXyz const*, cXyz const*, cXyz const*);
/* 80125B0C */ void traceBlur(cXyz const*, cXyz const*, s16);
@@ -100,9 +103,16 @@ private:
class dAlink_bottleWaterPcallBack_c : public JPAParticleCallBack {
public:
+ dAlink_bottleWaterPcallBack_c() { initialize(0.0f); }
/* 80124A2C */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
/* 800CFCF8 */ virtual ~dAlink_bottleWaterPcallBack_c();
+ void initialize(f32 minY) {
+ mHitFlg = 0;
+ mAppearFlg = 0;
+ mKeepMinY = minY;
+ }
+
private:
/* 0x04 */ s16 mHitFlg;
/* 0x06 */ s16 mAppearFlg;
@@ -127,6 +137,8 @@ STATIC_ASSERT(sizeof(daAlink_footData_c) == 0xA4);
class daAlink_matAnm_c : public J3DMaterialAnm {
public:
+ daAlink_matAnm_c() { init(); }
+
/* 8009D8E4 */ void init();
/* 800D0180 */ void offSetFlg();
@@ -423,9 +435,10 @@ public:
class hsChainShape_c : public J3DPacket {
public:
+ hsChainShape_c() {}
/* 80107900 */ virtual void draw();
/* 800D0CDC */ virtual ~hsChainShape_c();
- };
+ }; // Size: 0x10
/* 8009D87C */ bool getE3Zhint();
/* 8009D884 */ char* getAlinkArcName();
@@ -574,7 +587,7 @@ public:
/* 800B21EC */ BOOL checkSlope() const;
/* 800B25CC */ BOOL itemTriggerCheck(u8);
/* 800B25E8 */ BOOL itemButtonCheck(u8);
- /* 800B2604 */ void itemButton();
+ /* 800B2604 */ BOOL itemButton();
/* 800B2634 */ void itemTrigger();
/* 800B2664 */ void spActionButton();
/* 800B2688 */ void spActionTrigger();
@@ -702,7 +715,7 @@ public:
/* 800BFDB0 */ BOOL checkZoraWearAbility() const;
/* 800BFDFC */ BOOL checkMagicArmorWearAbility() const;
/* 800BFE48 */ J3DModelData* loadAramBmd(u16, u32);
- /* 800BFF04 */ void loadAram(u16, u32);
+ /* 800BFF04 */ void* loadAram(u16, u32);
/* 800BFF70 */ J3DAnmTevRegKey* loadAramItemBrk(u16, J3DModel*);
/* 800BFFCC */ void loadAramItemBtk(u16, J3DModel*);
/* 800C0028 */ void loadAramItemBtp(u16, J3DModel*);
@@ -1567,21 +1580,21 @@ public:
/* 80107744 */ void procBoardCutTurn();
/* 801083C8 */ void hookshotAtHitCallBack(dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
/* 801086DC */ void resetHookshotMode();
- /* 8010871C */ void setEnemyBombHookshot(fopAc_ac_c*);
- /* 80108784 */ void checkLv7BossRoom();
- /* 801087B0 */ void checkHookshotStickBG(cBgS_PolyInfo&);
+ /* 8010871C */ bool setEnemyBombHookshot(fopAc_ac_c*);
+ /* 80108784 */ bool checkLv7BossRoom();
+ /* 801087B0 */ bool checkHookshotStickBG(cBgS_PolyInfo&);
/* 80108828 */ void cancelHookshotCarry();
/* 80108864 */ void changeHookshotDrawModel();
- /* 801088A0 */ void checkHookshotRoofLv7Boss();
- /* 801088C8 */ void checkChaseHookshot();
- /* 80108980 */ void checkOctaIealSpecialCollect();
- /* 801089E8 */ void checkBossOctaIealRoom();
- /* 80108A18 */ void checkHookshotWait() const;
+ /* 801088A0 */ BOOL checkHookshotRoofLv7Boss();
+ /* 801088C8 */ BOOL checkChaseHookshot();
+ /* 80108980 */ BOOL checkOctaIealSpecialCollect();
+ /* 801089E8 */ BOOL checkBossOctaIealRoom();
+ /* 80108A18 */ BOOL checkHookshotWait() const;
/* 80108A3C */ void setHookshotCatchNow();
/* 80108B34 */ void setHookshotModel();
/* 80108DB4 */ void setHookshotSight();
/* 80108EEC */ void cancelHookshotShot();
- /* 80108F64 */ void cancelHookshotMove();
+ /* 80108F64 */ bool cancelHookshotMove();
/* 8010903C */ void checkHookshotReadyMaterialOffMode() const;
/* 80109070 */ void setHookshotReadyMaterial();
/* 801090EC */ void initHookshotUpperAnimeSpeed(int);
@@ -2269,7 +2282,7 @@ public:
virtual s16 getGiantPuzzleAimAngle() const;
virtual void setGoronSideMove(fopAc_ac_c*);
virtual void setCargoCarry(fopAc_ac_c*);
- virtual bool getHookshotTopPos();
+ virtual cXyz* getHookshotTopPos();
virtual bool checkHookshotReturnMode() const;
virtual bool checkHookshotShootReturnMode() const;
virtual bool checkOctaIealHang() const;
@@ -2427,7 +2440,12 @@ private:
/* 0x0072C */ J3DAnmBase* field_0x072c;
/* 0x00730 */ mDoExt_bckAnm field_0x730;
/* 0x0074C */ mDoExt_bckAnm field_0x74C;
- /* 0x00768 */ u8 field_0x0768[0x5C];
+ /* 0x00768 */ J3DModelData* field_0x0768;
+ /* 0x0076C */ Z2SoundObjSimple* field_0x076c;
+ /* 0x00770 */ hsChainShape_c* field_0x770;
+ /* 0x00774 */ u8 field_0x0774[0x77C - 0x774];
+ /* 0x0077C */ dBgS_ObjLinChk* mpHookshotLinChk;
+ /* 0x00780 */ u8 field_0x780[0x7C4 - 0x780];
/* 0x007C4 */ daPy_actorKeep_c mWolfLockAcKeep[10];
/* 0x00814 */ dCcD_Stts field_0x814;
/* 0x00850 */ dCcD_Cyl field_0x850[3];
@@ -2467,7 +2485,7 @@ private:
/* 0x02118 */ daPy_anmHeap_c mAnmHeap5;
/* 0x0212C */ daPy_anmHeap_c mAnmHeap6;
/* 0x02140 */ daPy_anmHeap_c mAnmHeap7;
- /* 0x02154 */ mDoExt_bckAnm field_0x2154;
+ /* 0x02154 */ mDoExt_bckAnm field_0x2154; // issue here?
/* 0x02170 */ u8 field_0x2170[0x18];
/* 0x02188 */ dEyeHL_c mEyeHL1;
/* 0x0219C */ dEyeHL_c mEyeHL2;
@@ -2644,7 +2662,7 @@ private:
/* 0x03014 */ s16 mFallVoiceInit;
/* 0x03016 */ u8 field_0x3016[2];
/* 0x03018 */ s16 field_0x3018;
- /* 0x0301A */ s16 field_0x301a;
+ /* 0x0301A */ s16 mHookshotMode;
/* 0x0301C */ s16 field_0x301c;
/* 0x0301E */ s16 field_0x301e;
/* 0x03020 */ s16 field_0x3020;
@@ -2950,7 +2968,7 @@ private:
/* 0x037C8 */ cXyz field_0x37c8;
/* 0x037D4 */ cXyz field_0x37d4;
/* 0x037E0 */ cXyz field_0x37e0;
- /* 0x037EC */ cXyz field_0x37ec;
+ /* 0x037EC */ cXyz mHookshotTopPos;
/* 0x037F8 */ cXyz field_0x37f8;
/* 0x03804 */ cXyz field_0x3804;
/* 0x03810 */ cXyz field_0x3810;
diff --git a/include/d/a/d_a_npc.h b/include/d/a/d_a_npc.h
index bbafedf42d..18b6946743 100644
--- a/include/d/a/d_a_npc.h
+++ b/include/d/a/d_a_npc.h
@@ -332,4 +332,190 @@ public:
STATIC_ASSERT(sizeof(daNpcT_c) == 0xE40);
+class daNpcF_ActorMngr_c {
+private:
+ /* 0x0 */ u32 mActorID;
+
+public:
+ /* 801506B0 */ void initialize();
+ /* 801506D8 */ void entry(unsigned int);
+ /* 801506BC */ void entry(fopAc_ac_c*);
+ /* 801506E0 */ void remove();
+ /* 801506EC */ void getActorP();
+
+ /* 80155E40 */ virtual ~daNpcF_ActorMngr_c();
+};
+
+class daNpcF_c : public fopAc_ac_c {
+private:
+ /* 0x568 */ mDoExt_McaMorfSO* mMcaMorf;
+ /* 0x56C */ mDoExt_bckAnm mBckAnm;
+ /* 0x588 */ mDoExt_btpAnm mBtpAnm;
+ /* 0x5A0 */ mDoExt_btkAnm mBtkAnm;
+ /* 0x5B8 */ mDoExt_brkAnm mBrkAnm;
+ /* 0x5D0 */ dBgS_ObjAcch field_0x5d0;
+ /* 0x7A8 */ dCcD_Stts field_0x7a8;
+ /* 0x7E4 */ dBgS_AcchCir field_0x7e4;
+ /* 0x824 */ daNpcF_ActorMngr_c field_0x824;
+ /* 0x82C */ daNpcF_ActorMngr_c field_0x82c[5];
+ /* 0x854 */ cXyz field_0x854[3];
+ /* 0x878 */ cXyz field_0x878;
+ /* 0x884 */ cXyz field_0x884;
+ /* 0x890 */ cXyz field_0x890;
+ /* 0x89C */ cXyz field_0x89c;
+ /* 0x8A8 */ cXyz field_0x8a8;
+ /* 0x8B4 */ cXyz field_0x8b4;
+ /* 0x8C0 */ cXyz field_0x8c0;
+ /* 0x8CC */ cXyz field_0x8cc;
+ /* 0x8D8 */ cXyz field_0x8d8;
+ /* 0x8E4 */ cXyz field_0x8e4;
+ /* 0x8F0 */ csXyz field_0x8f0;
+ /* 0x8F6 */ csXyz field_0x8f6;
+ /* 0x8FC */ csXyz field_0x8fc;
+ /* 0x902 */ csXyz field_0x902;
+ /* 0x908 */ csXyz field_0x908[3];
+ /* 0x91A */ csXyz field_0x91a[3];
+ /* 0x92C */ int field_0x92c;
+ /* 0x930 */ u32 field_0x930;
+ /* 0x934 */ u32 field_0x934;
+ /* 0x938 */ u32 field_0x938;
+ /* 0x93C */ u32 field_0x93c[5];
+ /* 0x950 */ int field_0x950;
+ /* 0x954 */ int field_0x954;
+ /* 0x958 */ int field_0x958;
+ /* 0x95C */ int field_0x95c;
+ /* 0x960 */ int field_0x960;
+ /* 0x964 */ int field_0x964;
+ /* 0x968 */ int field_0x968;
+ /* 0x96C */ int field_0x96c;
+ /* 0x970 */ f32 field_0x970;
+ /* 0x974 */ f32 field_0x974;
+ /* 0x978 */ f32 field_0x978;
+ /* 0x97C */ f32 field_0x97c;
+ /* 0x980 */ f32 field_0x980;
+ /* 0x984 */ f32 field_0x984[3];
+ /* 0x990 */ u16 field_0x990;
+ /* 0x990 */ u16 field_0x992;
+ /* 0x990 */ u16 field_0x994;
+ /* 0x990 */ u16 field_0x996;
+ /* 0x998 */ u16 field_0x998;
+ /* 0x99C */ u32 field_0x99c;
+ /* 0x9A0 */ u32 field_0x9a0;
+ /* 0x9A4 */ int field_0x9a4;
+ /* 0x9A8 */ int field_0x9a8;
+ /* 0x9AC */ int field_0x9ac;
+ /* 0x9B0 */ u32 field_0x9b0;
+ /* 0x9B4 */ int mFlowNodeNo;
+ /* 0x9B8 */ cXyz field_0x9b8;
+ /* 0x9C4 */ cXyz field_0x9c4;
+ /* 0x9D0 */ u16 field_0x9d0;
+ /* 0x9D2 */ u16 field_0x9d2;
+ /* 0x9D4 */ u16 field_0x9d4;
+ /* 0x9D6 */ u16 field_0x9d6;
+ /* 0x9D8 */ u16 field_0x9d8;
+ /* 0x9DA */ u16 field_0x9da;
+ /* 0x9DC */ u16 field_0x9dc;
+ /* 0x9DE */ u16 field_0x9de;
+ /* 0x9E0 */ u16 field_0x9e0;
+ /* 0x9E2 */ u16 field_0x9e2;
+ /* 0x9E4 */ u16 field_0x9e4;
+ /* 0x9E6 */ u16 field_0x9e6;
+ /* 0x9E8 */ u8 field_0x9e8;
+ /* 0x9E9 */ u8 field_0x9e9;
+ /* 0x9EA */ u8 field_0x9ea;
+ /* 0x9EB */ u8 field_0x9eb;
+ /* 0x9EC */ u8 field_0x9ec;
+ /* 0x9ED */ u8 field_0x9ed;
+ /* 0x9EE */ u8 field_0x9ee;
+ /* 0x9EF */ u8 field_0x9ef;
+ /* 0x9F0 */ u8 field_0x9f0;
+ /* 0x9F1 */ u8 field_0x9f1;
+ /* 0x9F2 */ bool mHide;
+ /* 0x9f3 */ u8 field_0x9f3;
+ /* 0x9F4 */ u8 field_0x9f4;
+ /* 0x9F5 */ u8 field_0x9f5;
+ /* 0x9F6 */ u8 field_0x9f6;
+ /* 0x9F8 */ dMsgFlow_c field_0x9f8;
+ /* 0xA44 */ cBgS_GndChk field_0xa44;
+ /* 0xA80 */ dBgS_GndChk field_0xa80;
+ /* 0xAD4 */ dBgS_LinChk field_0xad4;
+
+public:
+ struct daNpcF_anmPlayData {};
+
+ /* 80152014 */ void execute();
+ /* 801522AC */ void draw(int, int, f32, _GXColorS10*, int);
+ /* 80152614 */ void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
+ /* 80152654 */ void srchAttnActor1(void*, void*);
+ /* 801526E8 */ void srchActor(void*, void*);
+
+ /* 801528C8 */ void initialize();
+ /* 80152B2C */ void getTrnsfrmKeyAnmP(char*, int);
+ /* 80152B68 */ void getTexPtrnAnmP(char*, int);
+ /* 80152BA4 */ void getTexSRTKeyAnmP(char*, int);
+ /* 80152BE0 */ void getTevRegKeyAnmP(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);
+ /* 80152D44 */ void setBrkAnm(J3DAnmTevRegKey*, J3DModelData*, f32, int);
+ /* 80152D84 */ void setEnvTevColor();
+ /* 80152DE0 */ void setRoomNo();
+ /* 80152E24 */ void chkEndAnm(f32);
+ /* 80152EC4 */ void chkEndAnm(J3DFrameCtrl*, f32);
+ /* 80152F40 */ void playAllAnm();
+ /* 80153150 */ void playExpressionAnm(daNpcF_c::daNpcF_anmPlayData***);
+ /* 80153264 */ void playMotionAnm(daNpcF_c::daNpcF_anmPlayData***);
+ /* 8015337C */ void setLookatMtx(int, int*, f32);
+ /* 80153578 */ void hitChk2(dCcD_Cyl*, int, int);
+ /* 80153658 */ void setDamage(int, int, int);
+ /* 80153718 */ void ctrlMsgAnm(int&, int&, fopAc_ac_c*, int);
+ /* 8015387C */ void orderEvent(int, char*, u16, u16, u8, u16);
+ /* 80153954 */ void changeEvent(char*, char*, u16, u16);
+ /* 801539F0 */ void chkActorInSight(fopAc_ac_c*, f32);
+ /* 80153A78 */ void chkActorInArea(fopAc_ac_c*, cXyz, cXyz, s16);
+ /* 80153BDC */ void chkActorInAttnArea(fopAc_ac_c*, fopAc_ac_c*, int);
+ /* 80153D1C */ void initTalk(int, fopAc_ac_c**);
+ /* 80153D84 */ void talkProc(int*, int, fopAc_ac_c**);
+ /* 80153EF4 */ void turn(s16, f32, int);
+ /* 801540A4 */ void step(s16, int, int, int);
+ /* 80154250 */ void setAngle(s16);
+ /* 80154278 */ void getDistTableIdx(int, int);
+ /* 801542A0 */ void getEvtAreaTagP(int, int);
+ /* 8015436C */ void getAttnActorP(int, void* (*)(void*, void*), f32, f32, f32, f32, s16, int,
+ int);
+ /* 80154730 */ void chkActorInSight2(fopAc_ac_c*, f32, s16);
+ /* 80154834 */ void chkPointInArea(cXyz, cXyz, f32, f32, f32, s16);
+ /* 801548F4 */ void chkPointInArea(cXyz, cXyz, cXyz, s16);
+ /* 8015496C */ void getAttentionPos(fopAc_ac_c*);
+ /* 801549E0 */ void chkFindPlayer2(int, s16);
+ /* 80154BD8 */ void setHitodamaPrtcl();
+
+ /* 80155BF4 */ virtual ~daNpcF_c();
+ /* 80155BC8 */ virtual void setParam();
+ /* 80155BC0 */ virtual bool main();
+ /* 80155BD8 */ virtual bool ctrlBtk();
+ /* 80155BBC */ virtual void adjustShapeAngle();
+ /* 8015276C */ virtual void setMtx();
+ /* 801527FC */ virtual void setMtx2();
+ /* 80155BB8 */ virtual void setAttnPos();
+ /* 80155BB4 */ virtual void setCollisions();
+ /* 80155BE0 */ virtual bool setExpressionAnm(int, bool);
+ /* 80155EC8 */ virtual bool setExpressionBtp(int);
+ /* 80155BF0 */ virtual void setExpression(int, f32);
+ /* 80155BE8 */ virtual void setMotionAnm(int, f32);
+ /* 80155BEC */ virtual void setMotion(int, f32, int);
+ /* 80155BD0 */ virtual bool drawDbgInfo();
+ /* 80155BCC */ virtual void drawOtherMdls();
+
+ static u8 const mCcDObjInfo[48];
+ static u8 mCcDCyl[68];
+ static u8 mCcDSph[64];
+ static u8 mFindActorPList[400];
+ static u8 mFindCount[4];
+ static u8 mSrchActorName[2 + 2 /* padding */];
+};
+
+STATIC_ASSERT(sizeof(daNpcF_c) == 0xB48);
+
#endif /* D_A_D_A_NPC_H */
diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h
index e731cd5086..491c90d572 100644
--- a/include/d/a/d_a_player.h
+++ b/include/d/a/d_a_player.h
@@ -13,6 +13,7 @@
class daPy_sightPacket_c : public dDlst_base_c {
public:
+ daPy_sightPacket_c() {}
/* 8015F1A0 */ virtual void draw();
/* 80140CDC */ virtual ~daPy_sightPacket_c();
@@ -48,6 +49,10 @@ public:
enum daAlinkHEAP_TYPE {};
/* 80140DCC */ void __defctor();
+ daPy_anmHeap_c() {
+ __defctor();
+ }
+
daPy_anmHeap_c(u32);
~daPy_anmHeap_c();
void initData();
@@ -480,7 +485,7 @@ public:
virtual void setGoronSideMove(fopAc_ac_c*);
virtual void setCargoCarry(fopAc_ac_c*);
virtual bool getDpdFarFlg() const;
- virtual bool getHookshotTopPos();
+ virtual cXyz* getHookshotTopPos();
virtual bool checkHookshotReturnMode() const;
virtual bool checkHookshotShootReturnMode() const;
virtual bool checkOctaIealHang() const;