summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/J2DGraph/J2DAnmLoader.h2
-rw-r--r--include/JSystem/J2DGraph/J2DPane.h1
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DAnimation.h2
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DJoint.h8
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h2
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DModel.h4
-rw-r--r--include/JSystem/J3DGraphBase/J3DMaterial.h1
-rw-r--r--include/JSystem/J3DGraphBase/J3DShape.h2
-rw-r--r--include/JSystem/JMath/JMath.h8
-rw-r--r--include/SSystem/SComponent/c_cc_d.h14
-rw-r--r--include/SSystem/SComponent/c_lib.h12
-rw-r--r--include/SSystem/SComponent/c_m3d_g_cps.h1
-rw-r--r--include/d/a/d_a_alink.h2662
-rw-r--r--include/d/a/d_a_player.h465
-rw-r--r--include/d/bg/d_bg_s_acch.h2
-rw-r--r--include/d/cc/d_cc_d.h35
-rw-r--r--include/d/com/d_com_inf_game.h169
-rw-r--r--include/d/d_attention.h26
-rw-r--r--include/d/d_bomb.h8
-rw-r--r--include/d/d_jnt_col.h2
-rw-r--r--include/d/d_resorce.h4
-rw-r--r--include/d/d_stage.h39
-rw-r--r--include/d/event/d_event.h5
-rw-r--r--include/d/event/d_event_data.h164
-rw-r--r--include/d/event/d_event_manager.h14
-rw-r--r--include/d/kankyo/d_kankyo.h19
-rw-r--r--include/d/meter/d_meter2.h152
-rw-r--r--include/d/meter/d_meter2_draw.h358
-rw-r--r--include/d/meter/d_meter2_info.h81
-rw-r--r--include/d/meter/d_meter_map.h32
-rw-r--r--include/d/particle/d_particle.h172
-rw-r--r--include/d/save/d_save.h12
-rw-r--r--include/f_op/f_op_actor.h6
-rw-r--r--include/f_op/f_op_actor_mng.h20
-rw-r--r--include/f_op/f_op_msg_mng.h2
-rw-r--r--include/f_pc/f_pc_manager.h4
-rw-r--r--include/m_Do/m_Do_audio.h4
-rw-r--r--include/m_Do/m_Do_ext.h109
-rw-r--r--include/m_Do/m_Do_mtx.h6
-rw-r--r--include/rel/d/a/d_a_boomerang/d_a_boomerang.h122
-rw-r--r--include/rel/d/a/d_a_crod/d_a_crod.h47
-rw-r--r--include/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h9
-rw-r--r--include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h198
-rw-r--r--include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h22
44 files changed, 4236 insertions, 791 deletions
diff --git a/include/JSystem/J2DGraph/J2DAnmLoader.h b/include/JSystem/J2DGraph/J2DAnmLoader.h
index 0c2f69d007..b6867363da 100644
--- a/include/JSystem/J2DGraph/J2DAnmLoader.h
+++ b/include/JSystem/J2DGraph/J2DAnmLoader.h
@@ -6,7 +6,7 @@
#include "dolphin/types.h"
struct J2DAnmLoaderDataBase {
- /* 80308A6C */ static void load(void const*);
+ /* 80308A6C */ static void* load(void const*);
};
class J2DAnmLoader {
diff --git a/include/JSystem/J2DGraph/J2DPane.h b/include/JSystem/J2DGraph/J2DPane.h
index d73d42d169..a58858aa85 100644
--- a/include/JSystem/J2DGraph/J2DPane.h
+++ b/include/JSystem/J2DGraph/J2DPane.h
@@ -128,6 +128,7 @@ public:
void* getPointer(JSURandomInputStream* stream, u32 size, JKRArchive* archive);
void animationTransform();
void updateTransform(const J2DAnmTransform* transform);
+ void setUserInfo(u64 info) { mUserInfoTag = info; }
static f32 static_mBounds[4];
diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
index e0b78ce035..18ff4ee9e2 100644
--- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h
+++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h
@@ -299,6 +299,8 @@ public:
virtual ~J3DFrameCtrl() {}
f32 getRate() const { return mRate; }
+ f32 getFrame() const { return mFrame; }
+ u8 getAttribute() const { return mAttribute; }
void setAttribute(u8 attr) { mAttribute = attr; }
void setEnd(s16 end) { mEnd = end; }
void setRate(f32 rate) { mRate = rate; }
diff --git a/include/JSystem/J3DGraphAnimator/J3DJoint.h b/include/JSystem/J3DGraphAnimator/J3DJoint.h
index 9cbf745d43..25a21bad57 100644
--- a/include/JSystem/J3DGraphAnimator/J3DJoint.h
+++ b/include/JSystem/J3DGraphAnimator/J3DJoint.h
@@ -29,6 +29,14 @@ public:
static J3DJoint* mJoint;
}; // Size: 0x4
+class J3DMtxCalcNoAnmBase : public J3DMtxCalc {
+public:
+ /* 8000FA8C */ virtual ~J3DMtxCalcNoAnmBase();
+};
+
+template <typename A, typename B>
+class J3DMtxCalcNoAnm : public J3DMtxCalcNoAnmBase, public A, public B {};
+
class J3DJoint;
typedef int (*J3DJointCallBack)(J3DJoint*, int);
diff --git a/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h b/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h
index 191908b869..f3c349f72a 100644
--- a/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h
+++ b/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h
@@ -124,6 +124,8 @@ public:
/* 800A4820 */ virtual ~J3DMaterialAnm();
/* 8032C3C4 */ virtual void calc(J3DMaterial*) const;
+ const J3DTexMtxAnm& getTexMtxAnm(int i) const { return mTexMtxAnm[i]; }
+
private:
/* 0x04 */ J3DMatColorAnm mMatColorAnm[2];
/* 0x14 */ J3DTexMtxAnm mTexMtxAnm[8];
diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h
index 290f05fe66..02c71511b1 100644
--- a/include/JSystem/J3DGraphAnimator/J3DModel.h
+++ b/include/JSystem/J3DGraphAnimator/J3DModel.h
@@ -34,7 +34,7 @@ public:
/* 803281B4 */ void calcBumpMtx();
/* 803282B8 */ void calcBBoardMtx();
/* 803282EC */ void prepareShapePackets();
- Mtx* getAnmMtx(int);
+ MtxP getAnmMtx(int);
/* 80327CA4 */ virtual void update();
/* 80327E4C */ virtual void entry();
@@ -48,6 +48,8 @@ public:
void onFlag(u32 flag) { mFlags |= flag; }
void offFlag(u32 flag) { mFlags &= ~flag; }
bool checkFlag(u32 flag) const { return (mFlags & flag) ? true : false; }
+ Mtx& getBaseTRMtx() { return mBaseTransformMtx; }
+ void i_setBaseTRMtx(Mtx m) { PSMTXCopy(m, mBaseTransformMtx); }
// is there a better way to handle inlines with same name as non-inlines?
MtxP i_getAnmMtx(int p1) { return mMtxBuffer->getAnmMtx(p1); }
diff --git a/include/JSystem/J3DGraphBase/J3DMaterial.h b/include/JSystem/J3DGraphBase/J3DMaterial.h
index d4219a9985..5478f70764 100644
--- a/include/JSystem/J3DGraphBase/J3DMaterial.h
+++ b/include/JSystem/J3DGraphBase/J3DMaterial.h
@@ -49,6 +49,7 @@ public:
J3DColorBlock* getColorBlock() const { return mColorBlock; }
J3DTexGenBlock* getTexGenBlock() const { return mTexGenBlock; }
J3DDisplayListObj* getSharedDisplayListObj() const { return mSharedDLObj; }
+ J3DShape* getShape() { return mShape; }
J3DMaterialAnm* getMaterialAnm() const {
if ((u32)mMaterialAnm < 0xC0000000) {
return mMaterialAnm;
diff --git a/include/JSystem/J3DGraphBase/J3DShape.h b/include/JSystem/J3DGraphBase/J3DShape.h
index 9410d61ab9..332acb3d15 100644
--- a/include/JSystem/J3DGraphBase/J3DShape.h
+++ b/include/JSystem/J3DGraphBase/J3DShape.h
@@ -48,6 +48,8 @@ public:
void setVertexDataPointer(J3DVertexData* pVtxData) { mVertexData = pVtxData; }
void* getVcdVatCmd() const { return mVcdVatCmd; }
void setVcdVatCmd(void* pVatCmd) { mVcdVatCmd = pVatCmd; }
+ void show() { offFlag(1); }
+ void hide() { onFlag(1); }
static void resetVcdVatCache() { sOldVcdVatCmd = NULL; }
diff --git a/include/JSystem/JMath/JMath.h b/include/JSystem/JMath/JMath.h
index d71f5de5e7..cb252d9aea 100644
--- a/include/JSystem/JMath/JMath.h
+++ b/include/JSystem/JMath/JMath.h
@@ -10,6 +10,14 @@ inline f32 JMAFastReciprocal(f32 value) {
return __fres(value);
}
+inline f32 JMAFastSqrt(f32 input) {
+ if (input > 0.0f) {
+ f64 tmp = __frsqrte(input);
+ return tmp * input;
+ }
+ return input;
+}
+
namespace JMath {
inline f32 fastReciprocal(f32 value) {
diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h
index dff6740eed..1bc91d70f0 100644
--- a/include/SSystem/SComponent/c_cc_d.h
+++ b/include/SSystem/SComponent/c_cc_d.h
@@ -273,6 +273,7 @@ public:
u8 GetWeightUc() const { return mWeight; }
void SetWeight(u8 weight) { mWeight = weight; }
fopAc_ac_c* GetAc() { return mActor; }
+ void SetActor(void* ac) { mActor = (fopAc_ac_c*)ac; }
}; // Size = 0x1C
STATIC_ASSERT(0x1C == sizeof(cCcD_Stts));
@@ -281,8 +282,8 @@ class cCcD_Obj; // placeholder
class cCcD_ObjCommonBase {
protected:
- /* 0x00 */ int mSPrm;
- /* 0x04 */ int mRPrm;
+ /* 0x00 */ u32 mSPrm;
+ /* 0x04 */ u32 mRPrm;
/* 0x08 */ cCcD_Obj* mHitObj;
/* 0x0C vtable */
public:
@@ -295,6 +296,8 @@ public:
s32 getRPrm() const { return mRPrm; }
cCcD_Obj* getHitObj() { return mHitObj; }
u32 MskSPrm(u32 mask) const { return mSPrm & mask; }
+ void OnSPrmBit(u32 flag) { mSPrm |= flag; }
+ void OffSPrmBit(u32 flag) { mSPrm &= ~flag; }
};
STATIC_ASSERT(0x10 == sizeof(cCcD_ObjCommonBase));
@@ -311,6 +314,8 @@ public:
bool ChkSet() const { return MskSPrm(1); }
u8 GetAtp() const { return mAtp; }
u32 MskType(u32 msk) const { return mType & msk; }
+ void SetType(u32 type) { mType = type; }
+ void SetAtp(int atp) { mAtp = atp; }
protected:
/* 0x10 */ int mType;
@@ -388,6 +393,11 @@ public:
bool ChkAtType(u32 type) const { return mObjAt.MskType(type); }
u32 ChkCoNoCrr() const { return mObjCo.ChkNoCrr(); }
u32 ChkCoSph3DCrr() const { return mObjCo.ChkSph3DCrr(); }
+ void OnAtSPrmBit(u32 flag) { mObjAt.OnSPrmBit(flag); }
+ void OffAtSPrmBit(u32 flag) { mObjAt.OffSPrmBit(flag); }
+ void SetAtType(u32 type) { mObjAt.SetType(type); }
+ void OnAtSetBit() { mObjAt.OnSPrmBit(1); }
+ void SetAtAtp(int atp) { mObjAt.SetAtp(atp); }
}; // Size = 0x40
diff --git a/include/SSystem/SComponent/c_lib.h b/include/SSystem/SComponent/c_lib.h
index 12d01b9f7c..21607f9b6d 100644
--- a/include/SSystem/SComponent/c_lib.h
+++ b/include/SSystem/SComponent/c_lib.h
@@ -47,6 +47,18 @@ inline u8 cLib_checkBit(u8& pVar, u8 pBit) {
return pVar & pBit;
}
+template <typename T>
+inline T cLib_minMaxLimit(T param_0, T min, T max) {
+ if (param_0 < min) {
+ return max;
+ }
+ min = param_0;
+ if (min > max) {
+ min = max;
+ }
+ return min;
+}
+
void MtxInit(void);
void MtxTrans(float, float, float, unsigned char);
void MtxScale(float, float, float, unsigned char);
diff --git a/include/SSystem/SComponent/c_m3d_g_cps.h b/include/SSystem/SComponent/c_m3d_g_cps.h
index 47acd885af..14315a9fc3 100644
--- a/include/SSystem/SComponent/c_m3d_g_cps.h
+++ b/include/SSystem/SComponent/c_m3d_g_cps.h
@@ -26,6 +26,7 @@ public:
}
bool Cross(cM3dGCyl const* cyl, cXyz* xyz) const { return cM3d_Cross_CpsCyl(*this, *cyl, xyz); }
bool Cross(cM3dGSph const* sph, cXyz* xyz) const { return cM3d_Cross_CpsSph(*this, *sph, xyz); }
+ void SetR(f32 r) { mRadius = r; }
}; // Size = 0x20
diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h
index cdce05bcbf..d906fe333e 100644
--- a/include/d/a/d_a_alink.h
+++ b/include/d/a/d_a_alink.h
@@ -1,6 +1,7 @@
#ifndef D_A_D_A_ALINK_H
#define D_A_D_A_ALINK_H
+#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
#include "JSystem/J3DGraphBase/J3DMatBlock.h"
#include "Z2AudioLib/Z2Creature.h"
#include "Z2AudioLib/Z2WolfHowlMgr.h"
@@ -18,11 +19,12 @@
#include "d/particle/d_particle.h"
#include "d/particle/d_particle_copoly.h"
#include "dolphin/types.h"
+#include "rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h"
+#include "rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h"
class fopEn_enemy_c;
class daAlinkHIO_anm_c;
class J3DAnmTevRegKey;
-class dCcG_At_Spl;
class dDemo_actor_c;
class J2DScreen;
@@ -31,23 +33,29 @@ class J2DAnmBase;
class daAlink_lockCursor_c : public dDlst_base_c {
public:
- /* 80125F14 */ void create();
+ /* 80125F14 */ BOOL create();
/* 80126358 */ void update();
/* 80126424 */ virtual void draw();
/* 800CFE68 */ virtual ~daAlink_lockCursor_c();
+ void initFrame() {
+ field_0x4 = false;
+ field_0x2c = 4.0f;
+ field_0x30 = 0.0f;
+ }
+
private:
/* 0x04 */ bool field_0x4;
/* 0x05 */ u8 field_0x5[3];
- /* 0x08 */ J2DScreen* field_0x8;
+ /* 0x08 */ J2DScreen* mScrn;
/* 0x0C */ J2DPane* field_0xc;
- /* 0x10 */ J2DPane* field_0x10;
- /* 0x14 */ J2DPane* field_0x14;
- /* 0x18 */ J2DPane* field_0x18;
- /* 0x1C */ J2DAnmBase* field_0x1c;
- /* 0x20 */ J2DAnmBase* field_0x20;
- /* 0x24 */ J2DAnmBase* field_0x24;
- /* 0x28 */ J2DAnmBase* field_0x28;
+ /* 0x10 */ J2DPane* mCursor0;
+ /* 0x14 */ J2DPane* mCursor1;
+ /* 0x18 */ J2DPane* mCursor2;
+ /* 0x1C */ J2DAnmTevRegKey* field_0x1c;
+ /* 0x20 */ J2DAnmTevRegKey* field_0x20;
+ /* 0x24 */ J2DAnmColorKey* field_0x24;
+ /* 0x28 */ J2DAnmTransformKey* field_0x28;
/* 0x2C */ float field_0x2c;
/* 0x30 */ float field_0x30;
/* 0x34 */ float field_0x34;
@@ -56,7 +64,7 @@ private:
class daAlink_sight_c : public daPy_sightPacket_c {
public:
- /* 80126650 */ void create();
+ /* 80126650 */ bool create();
/* 80126710 */ void onLockFlg();
/* 801266C0 */ virtual void draw();
@@ -65,7 +73,7 @@ public:
private:
/* 0x4C */ bool mLockFlag;
/* 0x4D */ u8 field_0x4d[3];
- /* 0x50 */ daAlink_lockCursor_c field_0x50;
+ /* 0x50 */ daAlink_lockCursor_c mLockCursor;
};
class daAlink_blur_c : public J3DPacket {
@@ -78,12 +86,12 @@ public:
/* 800CFD58 */ virtual ~daAlink_blur_c();
private:
- /* 0x010 */ u8 field_0x10[4];
+ /* 0x010 */ void* m_blurTex;
/* 0x014 */ int field_0x14;
/* 0x018 */ u8 field_0x18[4];
/* 0x01C */ int field_0x1c;
/* 0x020 */ u8 field_0x20[4];
- /* 0x024 */ float field_0x24;
+ /* 0x024 */ f32 field_0x24;
/* 0x028 */ u8 field_0x28[4];
/* 0x02C */ cXyz field_0x2c;
/* 0x038 */ cXyz field_0x38[0x3C];
@@ -108,13 +116,76 @@ public:
/* 800CFCF4 */ daAlink_footData_c();
private:
- u8 field_0x00[0xa4];
+ /* 0x00 */ u8 field_0x00[0x8];
+ /* 0x08 */ cXyz field_0x8;
+ /* 0x14 */ Mtx field_0x14;
+ /* 0x44 */ Mtx field_0x44;
+ /* 0x74 */ Mtx field_0x74;
+}; // Size: 0xA4
+
+STATIC_ASSERT(sizeof(daAlink_footData_c) == 0xA4);
+
+class daAlink_matAnm_c : public J3DMaterialAnm {
+public:
+ /* 8009D8E4 */ void init();
+ /* 800D0180 */ void offSetFlg();
+
+ /* 800D0B8C */ virtual ~daAlink_matAnm_c();
+ /* 8009D90C */ virtual void calc(J3DMaterial*) const;
+
+private:
+ /* 0x0F4 */ f32 field_0xf4;
+ /* 0x0F8 */ f32 field_0xf8;
+ /* 0x0FC */ f32 mNowOffsetX;
+ /* 0x100 */ f32 mNowOffsetY;
+ /* 0x104 */ int mSetFlag;
};
+struct daAlink_AnmData {
+ /* 0x0 */ u16 field_0x0;
+ /* 0x2 */ u16 field_0x2;
+ /* 0x4 */ u8 field_0x4;
+ /* 0x5 */ u8 field_0x5;
+ /* 0x6 */ u16 field_0x6;
+ /* 0x8 */ u16 field_0x8;
+ /* 0xA */ u16 field_0xa;
+}; // Size: 0xC
+
+struct daAlink_WlAnmData {
+ /* 0x0 */ u16 field_0x0;
+ /* 0x2 */ u8 field_0x2;
+ /* 0x3 */ u8 field_0x3;
+ /* 0x4 */ u16 field_0x4;
+ /* 0x6 */ u8 field_0x6;
+ /* 0x7 */ u8 field_0x7;
+}; // Size: 0x8
+
class daAlink_c : public daPy_py_c {
public:
enum daAlink_ANM {
- GANON_FINISH = 408 // name probably wrong, fix later
+ /* 0x13 */ ANM_DASH = 19,
+ /* 0x15 */ ANM_WAIT_TURN = 0x15,
+ /* 0x19 */ ANM_IDLE = 0x19, // name might be inaccurate
+ /* 0x1B */ ANM_WAIT_INIT = 0x1B,
+ /* 0x1D */ ANM_SIDE_STEP_LEFT = 0x1D,
+ /* 0x1E */ ANM_SIDE_STEP_RIGHT,
+ /* 0x1F */ ANM_SIDE_STEP_LEFT_LAND,
+ /* 0x20 */ ANM_SIDE_STEP_RIGHT_LAND,
+ /* 0x21 */ ANM_BACK_JUMP = 0x21,
+ /* 0x22 */ ANM_BACK_JUMP_LAND,
+ /* 0x23 */ ANM_FRONT_ROLL,
+ /* 0x24 */ ANM_ROLL_CRASH,
+ /* 0x71 */ ANM_CUT_JUMP = 0x71,
+ /* 0x90 */ ANM_SERVICE_WAIT = 0x90,
+ /* 0xB6 */ ANM_TIRED_WAIT = 0xB6,
+ /* 0xB7 */ ANM_TIRED_WAIT_INIT,
+ /* 0xBD */ ANM_FORWARD_SLIDE = 0xBD,
+ /* 0xBE */ ANM_BACKWARD_SLIDE,
+ /* 0xBF */ ANM_BACKWARD_SLIDE_LAND,
+ /* 0xC0 */ ANM_FORWARD_SLIDE_LAND,
+
+ /* 0x18D */ ANM_CUT_JUMP_LARGE = 0x18D, // verify
+ ANM_GANON_FINISH = 408 // name probably wrong, fix later
};
enum daAlink_UPPER {
@@ -126,157 +197,203 @@ public:
enum daAlink_UNDER {};
enum daAlink_FTANM {};
enum daAlink_WARP_MAT_MODE {};
- enum daAlink_WANM {};
+
+ enum daAlink_WANM {
+ /* 0x5E */ ANM_WOLF_HOWL_SUCCESS = 94
+ };
enum MODE_FLG {
- PLAYER_FLY = 0x70852,
+ /* 0x00000001 */ MODE_IDLE = (1 << 0),
+ /* 0x00000002 */ MODE_JUMP = (1 << 1),
+ /* 0x00000004 */ MODE_DISABLE_ITEMS = (1 << 2), // ?
+ /* 0x00000008 */ MODE_HIT_STUN = (1 << 3),
+ /* 0x00000010 */ MODE_CLIMB = (1 << 4), // ?
+ /* 0x00000020 */ MODE_UNK_20 = 0x20, // related to wolf?
+ /* 0x00000040 */ MODE_NO_COLLISION = 0x40, // disables wall col checks
+ /* 0x00000080 */ MODE_GUARD_ENABLED = 0x80,
+ /* 0x00000100 */ MODE_UNK_100 = 0x100,
+ /* 0x00000400 */ MODE_RIDING = 0x400,
+ /* 0x00000800 */ MODE_UNK_800 = 0x800,
+ /* 0x00001000 */ MODE_UNK_1000 =
+ 0x1000, // affects things like anim set when controlling rod statue
+ /* 0x00002000 */ MODE_UNK_2000 = 0x2000,
+ /* 0x00004000 */ MODE_UNK_4000 = 0x4000,
+ /* 0x00008000 */ MODE_UNK_8000 = 0x8000,
+ /* 0x00010000 */ MODE_VINE_CLIMB = 0x10000, // used for vine climbing
+ /* 0x00020000 */ MODE_ROPE_WALK = 0x20000,
+ /* 0x00040000 */ MODE_SWIMMING = 0x40000, // this might be more than swimming
+ /* 0x00100000 */ MODE_GRAB_PLACE = 0x100000,
+ /* 0x00800000 */ MODE_UNK_800000 = 0x800000, // moves camera down
+ /* 0x01000000 */ MODE_UNK_1000000 = 0x1000000, // attention related?
+ /* 0x02000000 */ MODE_UNK_2000000 = 0x2000000, // maybe related to snow/sand?
+ /* 0x04000000 */ MODE_UNK_4000000 = 0x4000000,
+ /* 0x08000000 */ MODE_UNK_8000000 = 0x8000000,
+ /* 0x10000000 */ MODE_UNK_10000000 = 0x10000000, // catch boomerang?
+ /* 0x20000000 */ MODE_UNK_20000000 = 0x20000000,
+ /* 0x40000000 */ MODE_UNK_40000000 = 0x40000000,
+ MODE_PLAYER_FLY = 0x70C52,
};
enum daAlink_PROC {
- PREACTION_UNEQUIP,
- SERVICE_WAIT,
- HUMAN_WAIT = 3,
- HUMAN_SIDESTEP = 10,
- HUMAN_SIDESTEP_LAND,
- HUMAN_SLIDE,
- FRONT_ROLL = 14,
- FRONT_ROLL_CRASH,
- HUMAN_KNOCKBACK,
- SIDE_ROLL,
- BACK_JUMP,
- BACK_JUMP_LAND,
- SLIP,
- HUMAN_AUTOJUMP,
- DIVE_JUMP,
- ROLL_JUMP,
- FALL,
- LAND,
- SMALL_JUMP,
- STEP_MOVE,
- GUARD_SLIP = 29,
- GUARD_ATTACK,
- GUARD_BREAK,
- TURN_MOVE,
- CUT_NORMAL,
- CUT_FINISH,
- CUT_FINISH_JUMP_UP,
- CUT_FINISH_JUMP_UP_LAND,
- CUT_REVERSE,
- CUT_JUMP,
- CUT_JUMP_LAND,
- COMBO_CUT_TURN,
- CUT_CHARGE,
- CUT_TURN_MOVE,
- CUT_DOWN,
- CUT_DOWN_LAND,
- CUT_HEAD,
- CUT_HEAD_LAND,
- CUT_LARGE_JUMP_CHARGE,
- CUT_LARGE_JUMP,
- CUT_LARGE_JUMP_LAND,
- DAMAGE,
- LAND_DAMAGE = 52,
- CRAWL_START,
- CRAWL_MOVE,
- CRAWL_AUTOMOVE,
- CRAWL_END,
- PULL_MOVE,
- HORSE_RIDE,
- HORSE_GETOFF,
- HORSE_TURN = 61,
- HORSE_JUMP,
- HORSE_LAND,
- HORSE_SUBJECTIVITY,
- HORSE_CUT,
- HORSE_CUT_CHARGE_READY,
- HORSE_CUT_TURN,
- HORSE_DAMAGE,
- RIDE_BOW_READY,
- HORSE_BOTTLE_DRINK = 76,
- HORSE_KANDELAAR_POUR = 78,
- HORSE_RUN,
- HORSE_HANG,
- BOAR_RUN = 83,
- HANG_START = 85,
- HANG_FALL_START,
- HANG_UP,
- HANG_WAIT,
- HANG_MOVE,
- COPY_ROD_SWING = 101,
- GRAB_READY = 108,
- GRAB_UP,
- GRAB_THROW = 111,
- GRAB_DOWN,
- GRAB_REBOUND = 114,
- GRAB_STAND,
- INSECT_CATCH,
- PICK_UP,
- PICK_PUT,
- HUMAN_ST_ESCAPE,
- CLIMB_MOVE_VERTICAL = 130,
- CLIMB_MOVE_HORIZONTAL,
- CANOE_RIDE = 140,
- CANOE_JUMP_RIDE,
- CANOE_GETOFF,
- CANOE_ROW = 144,
- CANOE_PADDLE_SHIFT,
- CANOE_PADDLE_PUT,
- CANOE_PADDLE_GRAB,
- CANOE_ROD_GRAB,
- CANOE_FISHING_REEL = 150,
- CANOE_FISHING_GET,
- CANOE_SUBJECTIVITY,
- CANOE_BOTTLE_DRINK = 160,
- CANOE_KANDELAAR_POUR,
- FISHING_FOOD = 163,
- BOARD_CUT_TURN = 173,
- FM_CHAIN_UP,
- BOTTLE_DRINK = 179,
- EMPTY_BOTTLE_SWING = 181,
- GRASS_WHISTLE = 186,
- HAWK_WAIT = 188,
- FLOOR_DOWN_REBOUND = 189,
- GORON_RIDE_WAIT,
- GOAT_THROW = 192,
- GOAT_STROKE,
- MAGNE_BOOTS_FLY = 204,
- BOOTS_EQUIP,
- SUMOU_PUSH = 207,
- SUMOU_SIDE_MOVE,
- SUMOU_ACTION,
- SUMOU_STAGGER,
- SUMOU_WIN_LOSE,
- BOSS_ENEMY_HANG = 220,
- SCREAM_WAIT = 222,
- DUNGEON_WARP_READY = 234,
- WOLF_HOWL = 237,
- WOLF_WAIT = 241,
- WOLF_DASH = 243,
- WOLF_KNOCKBACK = 244,
- WOLF_SIDESTEP = 247,
- WOLF_AUTOJUMP = 252,
- WOLF_RSIT = 255,
- WOLF_DAMAGE = 263,
- WOLF_SLIDE = 271,
- WOLF_ROPE_HANG = 275,
- WOLF_TAGLOCK_JUMP = 280,
- WOLF_TAGLOCK_LAND,
- WOLF_DOWNATTACK_PULLOUT = 291,
- WOLF_JUMPATTACK = 284,
- WOLF_ST_ESCAPE = 289,
- WOLF_CHAIN = 305,
- WOLF_DIG,
- WOLF_ENEMY_HANG_BITE = 310,
- SUBJECTIVITY = 318,
- POLY_DAMAGE = 321,
- ELEC_DAMAGE,
- PUSH_PULL_WAIT,
- PUSH_MOVE,
- TRESURE_STAND = 328,
- METAMORPHOSE = 333,
- DEAD = 336,
- LARGE_DAMAGE = 345,
- LARGE_DAMAGE_WALL,
+ /* 0x000 */ PREACTION_UNEQUIP,
+ /* 0x001 */ SERVICE_WAIT,
+ /* 0x003 */ HUMAN_WAIT = 3,
+ /* 0x004 */ HUMAN_MOVE,
+ /* 0x005 */ HUMAN_ATN_MOVE,
+ /* 0x006 */ HUMAN_ATN_ACTOR_WAIT,
+ /* 0x007 */ HUMAN_ATN_ACTOR_MOVE,
+ /* 0x008 */ HUMAN_WAIT_TURN,
+ /* 0x009 */ HUMAN_MOVE_TURN,
+ /* 0x00A */ HUMAN_SIDESTEP,
+ /* 0x00B */ HUMAN_SIDESTEP_LAND,
+ /* 0x00C */ HUMAN_SLIDE,
+ /* 0x00D */ HUMAN_SLIDE_LAND,
+ /* 0x00E */ FRONT_ROLL,
+ /* 0x00F */ FRONT_ROLL_CRASH,
+ /* 0x010 */ HUMAN_KNOCKBACK,
+ /* 0x011 */ SIDE_ROLL,
+ /* 0x012 */ BACK_JUMP,
+ /* 0x013 */ BACK_JUMP_LAND,
+ /* 0x014 */ SLIP,
+ /* 0x015 */ HUMAN_AUTOJUMP,
+ /* 0x016 */ DIVE_JUMP,
+ /* 0x017 */ ROLL_JUMP,
+ /* 0x018 */ FALL,
+ /* 0x019 */ LAND,
+ /* 0x01A */ SMALL_JUMP,
+ /* 0x01B */ STEP_MOVE,
+ /* 0x01D */ GUARD_SLIP = 29,
+ /* 0x01E */ GUARD_ATTACK,
+ /* 0x01F */ GUARD_BREAK,
+ /* 0x020 */ TURN_MOVE,
+ /* 0x021 */ CUT_NORMAL,
+ /* 0x022 */ CUT_FINISH,
+ /* 0x023 */ CUT_FINISH_JUMP_UP,
+ /* 0x024 */ CUT_FINISH_JUMP_UP_LAND,
+ /* 0x025 */ CUT_REVERSE,
+ /* 0x026 */ CUT_JUMP,
+ /* 0x027 */ CUT_JUMP_LAND,
+ /* 0x028 */ COMBO_CUT_TURN,
+ /* 0x029 */ CUT_CHARGE,
+ /* 0x02A */ CUT_TURN_MOVE,
+ /* 0x02B */ CUT_DOWN,
+ /* 0x02C */ CUT_DOWN_LAND,
+ /* 0x02D */ CUT_HEAD,
+ /* 0x02E */ CUT_HEAD_LAND,
+ /* 0x02F */ CUT_LARGE_JUMP_CHARGE,
+ /* 0x030 */ CUT_LARGE_JUMP,
+ /* 0x031 */ CUT_LARGE_JUMP_LAND,
+ /* 0x032 */ DAMAGE,
+ /* 0x034 */ LAND_DAMAGE = 52,
+ /* 0x035 */ CRAWL_START,
+ /* 0x036 */ CRAWL_MOVE,
+ /* 0x037 */ CRAWL_AUTOMOVE,
+ /* 0x038 */ CRAWL_END,
+ /* 0x039 */ PULL_MOVE,
+ /* 0x03A */ HORSE_RIDE,
+ /* 0x03B */ HORSE_GETOFF,
+ /* 0x03D */ HORSE_TURN = 61,
+ /* 0x03E */ HORSE_JUMP,
+ /* 0x03F */ HORSE_LAND,
+ /* 0x040 */ HORSE_SUBJECTIVITY,
+ /* 0x041 */ HORSE_CUT,
+ /* 0x042 */ HORSE_CUT_CHARGE_READY,
+ /* 0x043 */ HORSE_CUT_TURN,
+ /* 0x044 */ HORSE_DAMAGE,
+ /* 0x045 */ RIDE_BOW_READY,
+ /* 0x04C */ HORSE_BOTTLE_DRINK = 76,
+ /* 0x04E */ HORSE_KANDELAAR_POUR = 78,
+ /* 0x04F */ HORSE_RUN,
+ /* 0x050 */ HORSE_HANG,
+ /* 0x053 */ BOAR_RUN = 83,
+ /* 0x055 */ HANG_START = 85,
+ /* 0x056 */ HANG_FALL_START,
+ /* 0x057 */ HANG_UP,
+ /* 0x058 */ HANG_WAIT,
+ /* 0x059 */ HANG_MOVE,
+ /* 0x065 */ COPY_ROD_SWING = 101,
+ /* 0x06B */ CLIMB_MOVE_LADDER = 107,
+ /* 0x06C */ GRAB_READY = 108,
+ /* 0x06D */ GRAB_UP,
+ /* 0x06F */ GRAB_THROW = 111,
+ /* 0x070 */ GRAB_DOWN,
+ /* 0x072 */ GRAB_REBOUND = 114,
+ /* 0x073 */ GRAB_STAND,
+ /* 0x074 */ INSECT_CATCH,
+ /* 0x075 */ PICK_UP,
+ /* 0x076 */ PICK_PUT,
+ /* 0x077 */ HUMAN_ST_ESCAPE,
+ /* 0x082 */ CLIMB_MOVE_VERTICAL = 130,
+ /* 0x083 */ CLIMB_MOVE_HORIZONTAL,
+ /* 0x084 */ CLIMB_HANG,
+ /* 0x08C */ CANOE_RIDE = 140,
+ /* 0x08D */ CANOE_JUMP_RIDE,
+ /* 0x08E */ CANOE_GETOFF,
+ /* 0x090 */ CANOE_ROW = 144,
+ /* 0x091 */ CANOE_PADDLE_SHIFT,
+ /* 0x092 */ CANOE_PADDLE_PUT,
+ /* 0x093 */ CANOE_PADDLE_GRAB,
+ /* 0x094 */ CANOE_ROD_GRAB,
+ /* 0x096 */ CANOE_FISHING_REEL = 150,
+ /* 0x097 */ CANOE_FISHING_GET,
+ /* 0x098 */ CANOE_SUBJECTIVITY,
+ /* 0x0A0 */ CANOE_BOTTLE_DRINK = 160,
+ /* 0x0A1 */ CANOE_KANDELAAR_POUR,
+ /* 0x0A3 */ FISHING_FOOD = 163,
+ /* 0x0AD */ BOARD_CUT_TURN = 173,
+ /* 0x0AF */ FM_CHAIN_UP,
+ /* 0x0B3 */ BOTTLE_DRINK = 179,
+ /* 0x0B5 */ BOTTLE_SWING = 181,
+ /* 0x0BA */ GRASS_WHISTLE = 186,
+ /* 0x0BC */ HAWK_WAIT = 188,
+ /* 0x0BD */ FLOOR_DOWN_REBOUND = 189,
+ /* 0x0BE */ GORON_RIDE_WAIT,
+ /* 0x0C0 */ GOAT_THROW = 192,
+ /* 0x0C1 */ GOAT_STROKE,
+ /* 0x0CC */ MAGNE_BOOTS_FLY = 204,
+ /* 0x0CD */ BOOTS_EQUIP,
+ /* 0x0CF */ SUMOU_PUSH = 207,
+ /* 0x0D0 */ SUMOU_SIDE_MOVE,
+ /* 0x0D1 */ SUMOU_ACTION,
+ /* 0x0D2 */ SUMOU_STAGGER,
+ /* 0x0D3 */ SUMOU_WIN_LOSE,
+ /* 0x0DC */ BOSS_ENEMY_HANG = 220,
+ /* 0x0DE */ SCREAM_WAIT = 222,
+ /* 0x0EA */ DUNGEON_WARP_READY = 234,
+ /* 0x0ED */ WOLF_HOWL = 237,
+ /* 0x0F1 */ WOLF_WAIT = 241,
+ /* 0x0F2 */ WOLF_MOVE,
+ /* 0x0F3 */ WOLF_DASH,
+ /* 0x0F4 */ WOLF_KNOCKBACK,
+ /* 0x0F6 */ WOLF_ATN_WAIT = 246,
+ /* 0x0F7 */ WOLF_SIDESTEP,
+ /* 0x0F8 */ WOLF_SIDESTEP_LAND,
+ /* 0x0F9 */ WOLF_BACKFLIP,
+ /* 0x0FA */ WOLF_BACKFLIP_LAND,
+ /* 0x0FC */ WOLF_AUTOJUMP = 252,
+ /* 0x0FF */ WOLF_RSIT = 255,
+ /* 0x107 */ WOLF_DAMAGE = 263,
+ /* 0x10F */ WOLF_SLIDE = 271,
+ /* 0x114 */ WOLF_ROPE_HANG = 276,
+ /* 0x118 */ WOLF_TAGLOCK_JUMP = 280,
+ /* 0x119 */ WOLF_TAGLOCK_LAND,
+ /* 0x11C */ WOLF_JUMPATTACK = 284,
+ /* 0x121 */ WOLF_ST_ESCAPE = 289,
+ /* 0x123 */ WOLF_DOWNATTACK_PULLOUT = 291,
+ /* 0x131 */ WOLF_CHAIN = 305,
+ /* 0x132 */ WOLF_DIG,
+ /* 0x136 */ WOLF_ENEMY_HANG_BITE = 310,
+ /* 0x13E */ SUBJECTIVITY = 318,
+ /* 0x141 */ POLY_DAMAGE = 321,
+ /* 0x142 */ ELEC_DAMAGE,
+ /* 0x143 */ PUSH_PULL_WAIT,
+ /* 0x144 */ PUSH_MOVE,
+ /* 0x148 */ TRESURE_STAND = 328,
+ /* 0x14D */ METAMORPHOSE = 333,
+ /* 0x14F */ WARP = 335,
+ /* 0x150 */ DEAD,
+ /* 0x159 */ LARGE_DAMAGE = 345,
+ /* 0x15A */ LARGE_DAMAGE_WALL,
};
// this might be one of the above enums, but not clear yet
@@ -289,30 +406,34 @@ public:
};
class firePointEff_c {
+ public:
/* 800CFC3C */ ~firePointEff_c();
/* 800CFC78 */ firePointEff_c();
- /* 0x00 */ u8 field_0x0[0xc];
+ /* 0x00 */ u8 field_0x0;
+ /* 0x04 */ u32 field_0x4;
+ /* 0x08 */ u32 field_0x8;
/* 0x0C */ cXyz field_0xc;
/* 0x18 */ cXyz field_0x18;
/* 0x24 */ cXyz field_0x24;
};
- class hsChainShape_c {
- /* 800D0CDC */ ~hsChainShape_c();
- /* 80107900 */ void draw();
+ class hsChainShape_c : public J3DPacket {
+ public:
+ /* 80107900 */ virtual void draw();
+ /* 800D0CDC */ virtual ~hsChainShape_c();
};
/* 8009D87C */ bool getE3Zhint();
/* 8009D884 */ char* getAlinkArcName();
/* 8009DA60 */ static bool checkStageName(char const*);
- /* 8009DA98 */ static void tgHitCallback(fopAc_ac_c*, dCcD_GObjInf*, dCcD_GObjInf*);
+ /* 8009DA98 */ void tgHitCallback(fopAc_ac_c*, dCcD_GObjInf*, dCcD_GObjInf*);
/* 8009DB64 */ void coHitCallback(fopAc_ac_c*, dCcD_GObjInf*);
/* 8009DC6C */ void setMatrixWorldAxisRot(f32 (*)[4], s16, s16, s16, int, cXyz const*);
/* 8009DD90 */ void jointControll(int);
/* 8009E7B8 */ void setUpperFront();
/* 8009E91C */ void changeBlendRate(int);
/* 8009EB18 */ void resetRootMtx();
- /* 8009EB58 */ void modelCallBack(int);
+ /* 8009EB58 */ bool modelCallBack(int);
/* 8009ECA0 */ void headModelCallBack(int);
/* 8009EF7C */ void wolfModelCallBack(int);
/* 8009F034 */ void setHatAngle();
@@ -326,7 +447,7 @@ public:
/* 800A1AEC */ void setEyeMove(cXyz*, s16, s16);
/* 800A1F90 */ void setNeckAngle();
/* 800A2198 */ void commonLineCheck(cXyz*, cXyz*);
- /* 800A21E0 */ void getMoveBGActorName(cBgS_PolyInfo&, int);
+ /* 800A21E0 */ static s16 getMoveBGActorName(cBgS_PolyInfo&, int);
/* 800A2280 */ void checkGoronRide();
/* 800A22E8 */ void setMoveSlantAngle();
/* 800A2710 */ void setArmMatrix();
@@ -335,18 +456,18 @@ public:
/* 800A2CE0 */ void setLegAngle(f32, daAlink_footData_c*, s16*, s16*, int);
/* 800A3430 */ void footBgCheck();
/* 800A39B8 */ void handBgCheck();
- /* 800A3C8C */ void setItemHeap();
+ /* 800A3C8C */ JKRHeap* setItemHeap();
/* 800A3CE4 */ void setIdxMask(u16*, u16*);
/* 800A3D0C */ void getAnimeResource(daPy_anmHeap_c*, u16, u32);
- /* 800A3D7C */ void initModel(J3DModelData*, u32, u32);
+ /* 800A3D7C */ J3DModel* initModel(J3DModelData*, u32, u32);
/* 800A3E30 */ void initModel(u16, u32);
/* 800A3E98 */ void initModelEnv(u16, u32);
/* 800A3F00 */ void initDemoModel(J3DModel**, char const*, u32);
/* 800A3F98 */ void initDemoBck(mDoExt_bckAnm**, char const*);
- /* 800A4068 */ void createHeap();
+ /* 800A4068 */ static void createHeap();
/* 800A4910 */ void setSelectEquipItem(int);
- /* 800A4BC8 */ void checkBoarStart();
- /* 800A4C40 */ void checkCanoeStart();
+ /* 800A4BC8 */ BOOL checkBoarStart();
+ /* 800A4C40 */ BOOL checkCanoeStart();
/* 800A4CB4 */ void playerInit();
/* 800A54F4 */ BOOL checkHorseStart(u32, int);
/* 800A551C */ void setStartProcInit();
@@ -436,25 +557,25 @@ public:
/* 800B0150 */ void getRoofAngle(cBgS_PolyInfo*, s16);
/* 800B01FC */ void getWallEdgePos(cXyz const&, cM3dGPla*, cM3dGPla*, cXyz*, int);
/* 800B02BC */ void setFrontWallType();
- /* 800B1488 */ void checkWaterPolygonUnder();
+ /* 800B1488 */ BOOL checkWaterPolygonUnder();
/* 800B14B4 */ void setWaterY();
/* 800B154C */ void setHangWaterY();
/* 800B172C */ void setSandDownBgCheckWallH();
/* 800B1770 */ void setBgCheckParam();
- /* 800B1B28 */ void checkNotJumpSinkLimit();
- /* 800B1B68 */ void checkNotItemSinkLimit();
+ /* 800B1B28 */ BOOL checkNotJumpSinkLimit();
+ /* 800B1B68 */ BOOL checkNotItemSinkLimit();
/* 800B1BAC */ void setSandShapeOffset();
/* 800B1FB8 */ bool checkLv2MiddleBossBgRide(s16);
/* 800B1FD8 */ void getSlidePolygon(cM3dGPla*);
- /* 800B21EC */ void checkSlope() const;
- /* 800B25CC */ u32 itemTriggerCheck(u8);
- /* 800B25E8 */ u32 itemButtonCheck(u8);
+ /* 800B21EC */ BOOL checkSlope() const;
+ /* 800B25CC */ BOOL itemTriggerCheck(u8);
+ /* 800B25E8 */ BOOL itemButtonCheck(u8);
/* 800B2604 */ void itemButton();
/* 800B2634 */ void itemTrigger();
/* 800B2664 */ void spActionButton();
/* 800B2688 */ void spActionTrigger();
- /* 800B26AC */ u32 midnaTalkTrigger() const;
- /* 800B26B8 */ void swordSwingTrigger();
+ /* 800B26AC */ BOOL midnaTalkTrigger() const;
+ /* 800B26B8 */ BOOL swordSwingTrigger();
/* 800B26DC */ void setItemActionButtonStatus(u8);
/* 800B26FC */ void itemActionTrigger();
/* 800B271C */ void setStickData();
@@ -465,7 +586,7 @@ public:
/* 800B3268 */ void setDoStatusEmphasys(u8);
/* 800B3280 */ void setDoStatusContinuation(u8);
/* 800B3298 */ void setBStatus(u8);
- /* 800B32B0 */ void checkAtnWaitAnime();
+ /* 800B32B0 */ BOOL checkAtnWaitAnime();
/* 800B3358 */ void setTiredVoice(daPy_frameCtrl_c*);
/* 800B33E4 */ void checkRestHPAnime();
/* 800B3494 */ void getDirectionFromAngle(s16);
@@ -473,7 +594,7 @@ public:
/* 800B3630 */ void getShapeAngleYAtnActor();
/* 800B3734 */ void setShapeAngleToAtnActor(int);
/* 800B3844 */ void initServiceWaitTime();
- /* 800B3904 */ void checkZeroSpeedF() const;
+ /* 800B3904 */ bool checkZeroSpeedF() const;
/* 800B3924 */ void setNormalSpeedF(f32, f32);
/* 800B3F2C */ void getStickAngleDistanceRate();
/* 800B3FD4 */ void setSpeedAndAngleNormal();
@@ -485,19 +606,19 @@ public:
/* 800B4918 */ float getMetamorphoseFarDis() const;
/* 800B4928 */ s16 getMetamorphoseFarAngle() const;
/* 800B4938 */ void setMidnaMsg();
- /* 800B4950 */ void notTalk();
+ /* 800B4950 */ bool notTalk();
/* 800B4A08 */ void setTalkStatus();
- /* 800B4B2C */ void getFrontRollRate();
+ /* 800B4B2C */ f32 getFrontRollRate();
/* 800B4B7C */ void decideCommonDoStatus();
/* 800B5284 */ void decideDoStatus();
- /* 800B58EC */ void checkWaitAction();
+ /* 800B58EC */ BOOL checkWaitAction();
/* 800B5BC0 */ void setFallVoice();
/* 800B5C34 */ void setLandPassiveData();
/* 800B5C64 */ void setStepLandVibration();
/* 800B5CCC */ void checkLandAction(int);
- /* 800B5F6C */ void checkSlideAction();
+ /* 800B5F6C */ BOOL checkSlideAction();
/* 800B607C */ void checkAutoJumpAction();
- /* 800B69CC */ void checkCutJumpInFly();
+ /* 800B69CC */ bool checkCutJumpInFly();
/* 800B6A30 */ BOOL checkFrontWallTypeAction();
/* 800B6F28 */ void checkItemActionInitStart();
/* 800B7090 */ void checkItemChangeAutoAction();
@@ -505,23 +626,23 @@ public:
/* 800B7190 */ void cancelItemUseQuake(int);
/* 800B71EC */ void cancelUpperItemReadyAnime(int);
/* 800B72E4 */ void checkItemActorPointer();
- /* 800B7390 */ void checkSwordTwirlAction();
- /* 800B74B4 */ void checkUpperItemActionFly();
+ /* 800B7390 */ bool checkSwordTwirlAction();
+ /* 800B74B4 */ BOOL checkUpperItemActionFly();
/* 800B7528 */ void checkItemButtonChange();
/* 800B75EC */ void checkUpperItemAction();
/* 800B7B7C */ void orderPeep();
/* 800B7BF8 */ void orderTalk(int);
/* 800B80C4 */ void orderZTalk();
/* 800B8374 */ void checkNormalAction();
- /* 800B8930 */ void checkReadyItem();
+ /* 800B8930 */ bool checkReadyItem();
/* 800B8988 */ void checkItemAction();
/* 800B9010 */ bool checkRAction();
/* 800B9018 */ void checkMoveDoAction();
- /* 800B9148 */ void checkSideRollAction(int);
- /* 800B9254 */ void checkNoUpperAnime() const;
+ /* 800B9148 */ BOOL checkSideRollAction(int);
+ /* 800B9254 */ BOOL checkNoUpperAnime() const;
/* 800B92D0 */ void checkOneHandItemEquipAnime() const;
/* 800B92F8 */ void checkItemEquipAnime() const;
- /* 800B9340 */ void checkEquipAnime() const;
+ /* 800B9340 */ BOOL checkEquipAnime() const;
/* 800B9398 */ void checkWindDashAnime() const;
/* 800B93CC */ void checkSwordTwirlAnime() const;
/* 800B93F4 */ void swordEquip(int);
@@ -530,9 +651,9 @@ public:
/* 800B96A4 */ void itemUnequip(u16, f32);
/* 800B97EC */ void checkFastUnequip();
/* 800B983C */ void allUnequip(int);
- /* 800B994C */ void checkItemChangeFromButton();
- /* 800B9D2C */ void checkNextActionFromButton();
- /* 800B9F50 */ void checkGroundSpecialMode();
+ /* 800B994C */ BOOL checkItemChangeFromButton();
+ /* 800B9D2C */ BOOL checkNextActionFromButton();
+ /* 800B9F50 */ BOOL checkGroundSpecialMode();
/* 800BA09C */ void commonCheckNextAction(int);
/* 800BA0D0 */ int checkNextAction(int);
/* 800BA6A0 */ void commonChangeItem();
@@ -544,7 +665,7 @@ public:
/* 800BB2B0 */ void setBodyAngleXReadyAnime(int);
/* 800BB324 */ void setMagicArmorBrk(int);
/* 800BB408 */ BOOL checkMagicArmorHeavy() const;
- /* 800BB4B8 */ void checkHeavyStateOn(int, int);
+ /* 800BB4B8 */ BOOL checkHeavyStateOn(int, int);
/* 800BB644 */ void initGravity();
/* 800BB770 */ void setSpecialGravity(f32, f32, int);
/* 800BB7A0 */ void transAnimeProc(cXyz*, f32, f32);
@@ -571,14 +692,14 @@ public:
/* 800BF79C */ void setMetamorphoseModel(int);
/* 800BF854 */ void keepItemData();
/* 800BF884 */ void returnKeepItemData();
- /* 800BF8D0 */ void setItemModel();
- /* 800BF9F0 */ void setItemActor();
+ /* 800BF8D0 */ BOOL setItemModel();
+ /* 800BF9F0 */ BOOL setItemActor();
/* 800BFD74 */ void makeItemType();
- /* 800BFDB0 */ void checkZoraWearAbility() const;
+ /* 800BFDB0 */ BOOL checkZoraWearAbility() const;
/* 800BFDFC */ BOOL checkMagicArmorWearAbility() const;
- /* 800BFE48 */ void loadAramBmd(u16, u32);
+ /* 800BFE48 */ J3DModelData* loadAramBmd(u16, u32);
/* 800BFF04 */ void loadAram(u16, u32);
- /* 800BFF70 */ void loadAramItemBrk(u16, J3DModel*);
+ /* 800BFF70 */ J3DAnmTevRegKey* loadAramItemBrk(u16, J3DModel*);
/* 800BFFCC */ void loadAramItemBtk(u16, J3DModel*);
/* 800C0028 */ void loadAramItemBtp(u16, J3DModel*);
/* 800C0084 */ void changeItemBck(u16, f32);
@@ -588,16 +709,16 @@ public:
/* 800C0284 */ void checkField();
/* 800C02C8 */ void checkBossRoom();
/* 800C0310 */ void checkDungeon();
- /* 800C0358 */ bool checkCastleTown();
- /* 800C03A0 */ void checkCloudSea();
- /* 800C03E8 */ void checkRoomOnly();
- /* 800C044C */ void checkLv2DungeonRoomSpecial();
- /* 800C04B4 */ void checkRoomSpecial();
- /* 800C0520 */ bool checkRoom();
- /* 800C0594 */ bool checkNotBattleStage();
- /* 800C05DC */ void checkNotHeavyBootsStage();
- /* 800C0630 */ void checkNotAutoJumpStage();
- /* 800C0678 */ void checkCastleTownUseItem(u16);
+ /* 800C0358 */ static bool checkCastleTown();
+ /* 800C03A0 */ static bool checkCloudSea();
+ /* 800C03E8 */ static bool checkRoomOnly();
+ /* 800C044C */ static bool checkLv2DungeonRoomSpecial();
+ /* 800C04B4 */ static bool checkRoomSpecial();
+ /* 800C0520 */ static bool checkRoom();
+ /* 800C0594 */ static bool checkNotBattleStage();
+ /* 800C05DC */ bool checkNotHeavyBootsStage();
+ /* 800C0630 */ bool checkNotAutoJumpStage();
+ /* 800C0678 */ static bool checkCastleTownUseItem(u16);
/* 800C077C */ void changeItemTriggerKeepProc(u8, int);
/* 800C0A9C */ void checkNewItemChange(u8);
/* 800C12DC */ void deleteEquipItem(int, int);
@@ -609,41 +730,41 @@ public:
/* 800C2DDC */ void procPreActionUnequipInit(int, fopAc_ac_c*);
/* 800C2EAC */ void procPreActionUnequip();
/* 800C3098 */ bool procServiceWaitInit();
- /* 800C30F0 */ void procServiceWait();
+ /* 800C30F0 */ bool procServiceWait();
/* 800C3224 */ void procTiredWaitInit();
- /* 800C3338 */ void procTiredWait();
- /* 800C33B8 */ void procWaitInit();
+ /* 800C3338 */ bool procTiredWait();
+ /* 800C33B8 */ bool procWaitInit();
/* 800C3504 */ void procWait();
- /* 800C36CC */ void procMoveInit();
- /* 800C3730 */ void procMove();
- /* 800C3810 */ void procAtnMoveInit();
+ /* 800C36CC */ bool procMoveInit();
+ /* 800C3730 */ bool procMove();
+ /* 800C3810 */ bool procAtnMoveInit();
/* 800C3868 */ bool procAtnMove();
- /* 800C38CC */ void procAtnActorWaitInit();
- /* 800C397C */ void procAtnActorWait();
- /* 800C39EC */ void procAtnActorMoveInit();
- /* 800C3A44 */ void procAtnActorMove();
- /* 800C3A94 */ void procWaitTurnInit();
- /* 800C3B1C */ void procWaitTurn();
- /* 800C3C3C */ void procMoveTurnInit(int);
- /* 800C3D38 */ void procMoveTurn();
- /* 800C3DA0 */ void procSideStepInit(int);
- /* 800C3F60 */ void procSideStep();
- /* 800C40F0 */ void procSideStepLandInit();
- /* 800C4278 */ void procSideStepLand();
- /* 800C4378 */ void procSlideInit(s16);
+ /* 800C38CC */ bool procAtnActorWaitInit();
+ /* 800C397C */ bool procAtnActorWait();
+ /* 800C39EC */ bool procAtnActorMoveInit();
+ /* 800C3A44 */ bool procAtnActorMove();
+ /* 800C3A94 */ bool procWaitTurnInit();
+ /* 800C3B1C */ BOOL procWaitTurn();
+ /* 800C3C3C */ bool procMoveTurnInit(int);
+ /* 800C3D38 */ bool procMoveTurn();
+ /* 800C3DA0 */ bool procSideStepInit(int);
+ /* 800C3F60 */ bool procSideStep();
+ /* 800C40F0 */ bool procSideStepLandInit();
+ /* 800C4278 */ bool procSideStepLand();
+ /* 800C4378 */ bool procSlideInit(s16);
/* 800C4514 */ void procSlide();
- /* 800C47AC */ void procSlideLandInit(int);
- /* 800C4894 */ void procSlideLand();
- /* 800C494C */ void procFrontRollInit();
+ /* 800C47AC */ bool procSlideLandInit(int);
+ /* 800C4894 */ bool procSlideLand();
+ /* 800C494C */ bool procFrontRollInit();
/* 800C4B40 */ void procFrontRoll();
/* 800C4F14 */ void procFrontRollCrashInit();
/* 800C4FFC */ void procFrontRollCrash();
/* 800C5160 */ void procFrontRollSuccessInit();
/* 800C5240 */ void procFrontRollSuccess();
- /* 800C5328 */ void procSideRollInit(int);
+ /* 800C5328 */ bool procSideRollInit(int);
/* 800C5484 */ void procSideRoll();
/* 800C5700 */ void backJumpSpeedDec();
- /* 800C57A4 */ void procBackJumpInit(int);
+ /* 800C57A4 */ bool procBackJumpInit(int);
/* 800C5964 */ void procBackJump();
/* 800C5A54 */ void procBackJumpLandInit(int);
/* 800C5AF0 */ void procBackJumpLand();
@@ -655,7 +776,7 @@ public:
/* 800C6798 */ void procDiveJump();
/* 800C6850 */ void procRollJumpInit();
/* 800C692C */ void procRollJump();
- /* 800C6A48 */ void procFallInit(int, f32);
+ /* 800C6A48 */ bool procFallInit(int, f32);
/* 800C6D20 */ void procFall();
/* 800C6F18 */ void procLandInit(f32);
/* 800C6FE4 */ void procLand();
@@ -665,19 +786,19 @@ public:
/* 800C755C */ void procStepMove();
/* 800C7690 */ void procCrouchInit();
/* 800C76F8 */ void procCrouch();
- /* 800C77F4 */ void procCoMetamorphoseInit();
+ /* 800C77F4 */ bool procCoMetamorphoseInit();
/* 800C7C64 */ void procCoMetamorphose();
/* 800C82E8 */ void procCoMetamorphoseOnlyInit();
/* 800C83A0 */ void procCoMetamorphoseOnly();
- /* 800C8460 */ void procFloorDownReboundInit();
+ /* 800C8460 */ BOOL procFloorDownReboundInit();
/* 800C84D0 */ void procFloorDownRebound();
/* 800C854C */ void procGoronRideWaitInit(fopAc_ac_c*);
/* 800C85D8 */ void procGoronRideWait();
/* 800C8700 */ void execute();
/* 800CAFC8 */ void setDrawHand();
- /* 800CB480 */ void checkSwordDraw();
- /* 800CB53C */ void checkShieldDraw();
- /* 800CB5F8 */ void checkItemDraw();
+ /* 800CB480 */ bool checkSwordDraw();
+ /* 800CB53C */ bool checkShieldDraw();
+ /* 800CB5F8 */ bool checkItemDraw();
/* 800CB694 */ void initShadowScaleLight();
/* 800CBA38 */ void moveShadowScaleLight();
/* 800CBC18 */ void shadowDraw();
@@ -715,45 +836,44 @@ public:
/* 800D0164 */ void set3DStatus(u8, u8);
/* 800D018C */ u32 checkModeFlg(u32) const;
/* 800D2684 */ void checkCutTurnCharge();
- /* 800D07A4 */ void checkCutJumpCancelTurn() const;
/* 800D0E08 */ void checkLightSwordMtrl();
- /* 800D0E98 */ void checkSwordEquipAnime() const;
- /* 800D0ECC */ void checkCutDashAnime() const;
- /* 800D0EFC */ void checkCutDashEnemyHit(dCcD_GObjInf&);
- /* 800D0F5C */ void getSwordAtType();
+ /* 800D0E98 */ BOOL checkSwordEquipAnime() const;
+ /* 800D0ECC */ BOOL checkCutDashAnime() const;
+ /* 800D0EFC */ BOOL checkCutDashEnemyHit(dCcD_GObjInf&);
+ /* 800D0F5C */ static u32 getSwordAtType();
/* 800D0F90 */ void initCutTurnAt(f32, int);
- /* 800D102C */ void checkCutFinishJumpUp();
+ /* 800D102C */ bool checkCutFinishJumpUp();
/* 800D1088 */ void changeCutFast();
/* 800D10E0 */ void checkCutFastReady();
/* 800D1268 */ void setSwordModel();
/* 800D1310 */ void offSwordModel();
- /* 800D13AC */ void checkCutTypeNoBlur() const;
- /* 800D13E4 */ void checkCutTurnInput() const;
- /* 800D1424 */ void getCutTurnDirection() const;
+ /* 800D13AC */ BOOL checkCutTypeNoBlur() const;
+ /* 800D13E4 */ bool checkCutTurnInput() const;
+ /* 800D1424 */ int getCutTurnDirection() const;
/* 800D1430 */ void resetCombo(int);
/* 800D1454 */ void checkComboCnt();
/* 800D152C */ void setCutType(u8);
/* 800D1540 */ void setCylAtParam(u32, dCcG_At_Spl, u8, u8, int, f32, f32);
/* 800D1688 */ void setSwordAtParam(dCcG_At_Spl, u8, u8, int, f32, f32);
- /* 800D1788 */ void notSwordHitVibActor(fopAc_ac_c*);
+ /* 800D1788 */ static bool notSwordHitVibActor(fopAc_ac_c*);
/* 800D17EC */ void setSwordHitVibration(dCcD_GObjInf*);
- /* 800D1920 */ void checkAtShieldHit(dCcD_GObjInf&);
- /* 800D1978 */ void checkCutReverseAt(dCcD_GObjInf*);
- /* 800D19C8 */ void changeCutReverseProc(daAlink_c::daAlink_ANM);
+ /* 800D1920 */ BOOL checkAtShieldHit(dCcD_GObjInf&);
+ /* 800D1978 */ bool checkCutReverseAt(dCcD_GObjInf*);
+ /* 800D19C8 */ BOOL changeCutReverseProc(daAlink_c::daAlink_ANM);
/* 800D1E1C */ void setCutDash(int, int);
- /* 800D20B4 */ void checkForceSwordSwing();
+ /* 800D20B4 */ BOOL checkForceSwordSwing();
/* 800D20FC */ void setComboReserb();
- /* 800D2188 */ void checkComboReserb();
- /* 800D21D0 */ void commonCutAction();
+ /* 800D2188 */ BOOL checkComboReserb();
+ /* 800D21D0 */ bool commonCutAction();
/* 800D2284 */ void setSwordVoiceSe(u32);
/* 800D22BC */ void setSwordChargeVoiceSe();
/* 800D2304 */ void setSwordComboVoice();
- /* 800D2368 */ void checkCutTurnInputTrigger();
+ /* 800D2368 */ bool checkCutTurnInputTrigger();
/* 800D23C0 */ void checkCutAction();
/* 800D26EC */ void getCutDirection();
/* 800D2760 */ void checkCutCancelNextMode(int);
/* 800D27E4 */ void checkDoCutAction();
- /* 800D2890 */ void checkCutBackState();
+ /* 800D2890 */ static BOOL checkCutBackState();
/* 800D28F4 */ void checkCutHeadState();
/* 800D29D4 */ void checkDownAttackState();
/* 800D2ABC */ void checkCutLargeTurnState() const;
@@ -771,8 +891,8 @@ public:
/* 800D3ECC */ void procCutFinishJumpUpLand();
/* 800D4068 */ void procCutReverseInit(daAlink_c::daAlink_ANM);
/* 800D41FC */ void procCutReverse();
- /* 800D42FC */ void procCutJumpInit(int);
- /* 800D43F8 */ void procCutJump();
+ /* 800D42FC */ bool procCutJumpInit(int);
+ /* 800D43F8 */ bool procCutJump();
/* 800D452C */ void procCutJumpLandInit(int);
/* 800D4684 */ void procCutJumpLand();
/* 800D47DC */ void procCutTurnInit(int, int);
@@ -792,7 +912,7 @@ public:
/* 800D6238 */ void procCutLargeJumpChargeInit();
/* 800D62A0 */ void procCutLargeJumpCharge();
/* 800D6374 */ void procCutLargeJumpInit();
- /* 800D6484 */ void procCutLargeJump();
+ /* 800D6484 */ bool procCutLargeJump();
/* 800D66C0 */ void procCutLargeJumpLandInit(int);
/* 800D67FC */ void procCutLargeJumpLand();
/* 800D698C */ void procSwordUnequipSpInit();
@@ -846,16 +966,16 @@ public:
/* 800DC214 */ void procCoLavaReturn();
/* 800DC278 */ void procCoSwimFreezeReturnInit();
/* 800DC474 */ void procCoSwimFreezeReturn();
- /* 800DC548 */ void checkEnemyGroup(fopAc_ac_c*);
- /* 800DC5A4 */ void checkSpecialNpc(fopAc_ac_c*);
+ /* 800DC548 */ static BOOL checkEnemyGroup(fopAc_ac_c*);
+ /* 800DC5A4 */ static BOOL checkSpecialNpc(fopAc_ac_c*);
/* 800DC5DC */ void checkShieldAttackEmphasys();
- /* 800DC678 */ void checkGuardActionChange();
+ /* 800DC678 */ BOOL checkGuardActionChange();
/* 800DC79C */ void stickArrowIncrement(int);
/* 800DC8C4 */ void setArrowShieldActor(fopAc_ac_c*, int);
/* 800DCA2C */ void checkWoodShieldEquipNotIronBall() const;
/* 800DCA80 */ void getArrowShieldOffset(cXyz const*, csXyz const*, cXyz*, cXyz*) const;
/* 800DCD74 */ void setArrowShieldPos(cXyz*, csXyz*, cXyz const*, cXyz const*) const;
- /* 800DCDF0 */ void checkUpperGuardAnime() const;
+ /* 800DCDF0 */ BOOL checkUpperGuardAnime() const;
/* 800DCF04 */ void checkPlayerGuardAndAttack() const;
/* 800DCF64 */ void checkGuardAccept();
/* 800DD008 */ void setUpperGuardAnime(f32);
@@ -868,14 +988,14 @@ public:
/* 800DDBA8 */ void procGuardAttack();
/* 800DDE58 */ void procGuardBreakInit();
/* 800DDF2C */ void procGuardBreak();
- /* 800DE008 */ void procTurnMoveInit(int);
+ /* 800DE008 */ bool procTurnMoveInit(int);
/* 800DE380 */ void procTurnMove();
/* 800DE64C */ void getArrowFlyData(f32*, f32*, int) const;
/* 800DE740 */ void getArrowIncAtR() const;
/* 800DE750 */ void getBombArrowFlyExplodeTime() const;
/* 800DE760 */ void getArrowIncAtMaxStart() const;
/* 800DE770 */ void getArrowIncAtMax() const;
- /* 800DE780 */ void checkBowAndSlingItem(int);
+ /* 800DE780 */ BOOL checkBowAndSlingItem(int);
/* 800DE7D4 */ void setSlingModel();
/* 800DE884 */ void checkBowCameraArrowPosP(s16*, s16*);
/* 800DE9B8 */ void checkBowReadyAnime() const;
@@ -892,7 +1012,7 @@ public:
/* 800DF798 */ void checkUpperItemActionBowFly();
/* 800DF814 */ void checkNextActionBow();
/* 800DFAE8 */ void setBowModel();
- /* 800DFBC8 */ void checkBowGrabLeftHand() const;
+ /* 800DFBC8 */ bool checkBowGrabLeftHand() const;
/* 800DFC28 */ void setBowHangAnime();
/* 800DFC70 */ void setBowNormalAnime();
/* 800DFCD8 */ void setBowSight();
@@ -900,20 +1020,20 @@ public:
/* 800DFDDC */ void procBowSubject();
/* 800DFE3C */ void procBowMoveInit();
/* 800DFEC0 */ void procBowMove();
- /* 800DFFE0 */ void checkBoomerangLockAccept();
- /* 800E0010 */ void getBoomSpeed();
- /* 800E00B0 */ void getBoomCatchSpeed() const;
- /* 800E00C0 */ void getBoomFlyMax() const;
- /* 800E011C */ void getBoomLockMax();
- /* 800E0190 */ void getBoomBgThroughTime() const;
- /* 800E01A0 */ void checkBossBabaRoom();
+ /* 800DFFE0 */ BOOL checkBoomerangLockAccept();
+ /* 800E0010 */ f32 getBoomSpeed();
+ /* 800E00B0 */ f32 getBoomCatchSpeed() const;
+ /* 800E00C0 */ f32 getBoomFlyMax() const;
+ /* 800E011C */ f32 getBoomLockMax();
+ /* 800E0190 */ s16 getBoomBgThroughTime() const;
+ /* 800E01A0 */ bool checkBossBabaRoom();
/* 800E01CC */ void cancelBoomerangLock(fopAc_ac_c*);
- /* 800E0210 */ void getBoomerangActor();
+ /* 800E0210 */ fopAc_ac_c* getBoomerangActor();
/* 800E0244 */ void checkBoomerangChargeEnd();
/* 800E02B8 */ void checkBoomerangCarry(fopAc_ac_c*);
/* 800E03D0 */ void initBoomerangUpperAnimeSpeed(int);
- /* 800E0440 */ void checkBoomerangAnime() const;
- /* 800E04AC */ void checkBoomerangThrowAnime() const;
+ /* 800E0440 */ BOOL checkBoomerangAnime() const;
+ /* 800E04AC */ BOOL checkBoomerangThrowAnime() const;
/* 800E04E8 */ void setBoomerangReadyQuake();
/* 800E055C */ void setBoomerangReadyAnime();
/* 800E05E8 */ void setThrowBoomerangAnime();
@@ -931,14 +1051,14 @@ public:
/* 800E10F4 */ void procBoomerangMove();
/* 800E11D8 */ void procBoomerangCatchInit();
/* 800E1248 */ void procBoomerangCatch();
- /* 800E12E0 */ void checkLv6BossRoom();
- /* 800E1310 */ void getCopyRodBallSpeed() const;
- /* 800E1320 */ void getCopyRodBallReturnSpeed() const;
- /* 800E1330 */ void getCopyRodBallDisMax() const;
- /* 800E1374 */ void getCopyRodControllActor();
- /* 800E1390 */ void getCopyRodCameraActor();
+ /* 800E12E0 */ static BOOL checkLv6BossRoom();
+ /* 800E1310 */ f32 getCopyRodBallSpeed() const;
+ /* 800E1320 */ f32 getCopyRodBallReturnSpeed() const;
+ /* 800E1330 */ f32 getCopyRodBallDisMax() const;
+ /* 800E1374 */ fopAc_ac_c* getCopyRodControllActor();
+ /* 800E1390 */ fopAc_ac_c* getCopyRodCameraActor();
/* 800E13AC */ void initCopyRodUpperAnimeSpeed(int);
- /* 800E1408 */ void checkForestOldCentury();
+ /* 800E1408 */ BOOL checkForestOldCentury();
/* 800E1530 */ void checkCopyRodAnime() const;
/* 800E158C */ void setCopyRodControllAnime();
/* 800E15FC */ void setCopyRodControllUpperSpeedRate();
@@ -972,26 +1092,25 @@ public:
/* 800E30DC */ void procBootsEquip();
/* 800E3218 */ void procMagneBootsFlyInit();
/* 800E3454 */ void procMagneBootsFly();
- /* 800E3760 */ void getBombExplodeTime() const;
- /* 800E3770 */ void getBombGravity() const;
- /* 800E3780 */ void getBombMaxFallSpeed() const;
- /* 800E3790 */ void getBombBoundRate() const;
- /* 800E37A0 */ void getBombStopSpeedY() const;
- /* 800E37B0 */ void getBombMaxSpeedY() const;
- /* 800E37C0 */ void getBombEffScale() const;
- /* 800E37D0 */ void getBombAtR() const;
- /* 800E37E0 */ void getEnemyBombColorR() const;
- /* 800E37F0 */ void getBombWaterGravity() const;
- /* 800E3800 */ void getBombWaterMaxFallSpeed() const;
- /* 800E3810 */ void getBombExplodeWaterEffectLimit() const;
- /* 800E3820 */ void getBombInsectLimitAngle() const;
+ /* 800E3760 */ s16 getBombExplodeTime() const;
+ /* 800E3770 */ f32 getBombGravity() const;
+ /* 800E3780 */ f32 getBombMaxFallSpeed() const;
+ /* 800E3790 */ f32 getBombBoundRate() const;
+ /* 800E37A0 */ f32 getBombStopSpeedY() const;
+ /* 800E37B0 */ f32 getBombMaxSpeedY() const;
+ /* 800E37C0 */ f32 getBombEffScale() const;
+ /* 800E37D0 */ f32 getBombAtR() const;
+ /* 800E37E0 */ s16 getEnemyBombColorR() const;
+ /* 800E37F0 */ f32 getBombWaterGravity() const;
+ /* 800E3800 */ f32 getBombWaterMaxFallSpeed() const;
+ /* 800E3810 */ f32 getBombExplodeWaterEffectLimit() const;
+ /* 800E3820 */ s16 getBombInsectLimitAngle() const;
/* 800E38EC */ void checkGrabLineCheck();
-
/* 800E3BCC */ void getGrabThrowRate();
/* 800E3C1C */ void checkGrabThrowAnime() const;
/* 800E3C6C */ void checkGrabAnime() const;
/* 800E3C9C */ void checkGrabAnimeAndThrow() const;
- /* 800E3CF4 */ void checkGrabCarryActor();
+ /* 800E3CF4 */ BOOL checkGrabCarryActor();
/* 800E3D1C */ void checkGrabSlowMoveActor();
/* 800E3D6C */ void checkGrabHeavyActor();
/* 800E3D94 */ void checkGrabSideActor();
@@ -1099,11 +1218,11 @@ public:
/* 800ECDC4 */ void checkHorseWaitLashAnime() const;
/* 800ECDEC */ void checkHorseReinLeftOnly() const;
/* 800ECE10 */ void getReinHandType() const;
- /* 800ECF04 */ void checkHorseLieAnime() const;
+ /* 800ECF04 */ BOOL checkHorseLieAnime() const;
/* 800ECF5C */ void checkHorseSubjectivity() const;
/* 800ECF9C */ void setHorseSwordUpAnime();
/* 800ECFF4 */ void setHorseTurnUpperAnime(int);
- /* 800ED074 */ void checkHorseNoUpperAnime() const;
+ /* 800ED074 */ BOOL checkHorseNoUpperAnime() const;
/* 800ED0D4 */ void getHorseReinHandPos(cXyz*, cXyz*);
/* 800ED1F0 */ void checkHorseNotGrab() const;
/* 800ED310 */ void setHorseStirrup();
@@ -1200,7 +1319,7 @@ public:
/* 800F3EB8 */ void checkCanoePaddleGrab(fopAc_ac_c*) const;
/* 800F3F38 */ void checkCanoeFishingRodGrabOrPut() const;
/* 800F3FC4 */ void initCanoeRide();
- /* 800F4008 */ void checkCanoeJumpRide();
+ /* 800F4008 */ BOOL checkCanoeJumpRide();
/* 800F40E4 */ void setArmReelAnime();
/* 800F4140 */ void setFishingWaitAction();
/* 800F4490 */ void setFishGetFace();
@@ -1562,7 +1681,7 @@ public:
/* 80112E7C */ void setIronBallChainPos();
/* 80113CA0 */ void checkIronBallReturnChange();
/* 80113D58 */ void setIronBallPos();
- /* 801150E4 */ void checkIronBallAnime() const;
+ /* 801150E4 */ BOOL checkIronBallAnime() const;
/* 8011510C */ void setIronBallReadyAnime();
/* 801151E0 */ void setIronBallBaseAnime();
/* 80115254 */ void checkUpperItemActionIronBall();
@@ -1575,7 +1694,7 @@ public:
/* 80115860 */ void procIronBallThrow();
/* 801159F0 */ void procIronBallReturnInit();
/* 80115AA0 */ void procIronBallReturn();
- /* 80115C20 */ void checkEventRun() const;
+ /* 80115C20 */ BOOL checkEventRun() const;
/* 80115C50 */ void createNpcTks(cXyz*, int, u32);
/* 80115EC0 */ void checkDemoAction();
/* 80116E60 */ void checkDemoMoveMode(u32) const;
@@ -1685,7 +1804,7 @@ public:
/* 8011EC60 */ void procMasterSwordStick();
/* 8011ED18 */ bool procMasterSwordPullInit();
/* 8011ED8C */ void procMasterSwordPull();
- /* 8011EE40 */ void checkLv7DungeonShop();
+ /* 8011EE40 */ static BOOL checkLv7DungeonShop();
/* 8011EE94 */ void procDungeonWarpReadyInit();
/* 8011EFB8 */ void procDungeonWarpReady();
/* 8011F084 */ void procDungeonWarpInit();
@@ -1756,18 +1875,18 @@ public:
/* 80126F3C */ void changeLink(int);
/* 80127C54 */ void onWolfEyeUp();
/* 80127CAC */ void offWolfEyeUp();
- /* 80127CF0 */ void wolfSenseTrigger();
+ /* 80127CF0 */ BOOL wolfSenseTrigger();
/* 80127D14 */ void setWolfSenceStatus(u8);
/* 80127D2C */ void wolfClawTrigger();
/* 80127D50 */ void setWolfDigStatus(u8);
/* 80127D68 */ BOOL checkWolfShapeReverse() const;
- /* 80127DC4 */ void checkWolfSideStep() const;
+ /* 80127DC4 */ BOOL checkWolfSideStep() const;
/* 80127E08 */ void setWolfTailAngle();
- /* 80127F20 */ void checkWolfSlowDash();
+ /* 80127F20 */ BOOL checkWolfSlowDash();
/* 80127F50 */ void setSpeedAndAngleWolf();
/* 80128478 */ void setSpeedAndAngleWolfAtn();
/* 80128798 */ void checkWolfAtnWait();
- /* 8012880C */ void checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM) const;
+ /* 8012880C */ BOOL checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM) const;
/* 80128844 */ void setBlendWolfMoveAnime(f32);
/* 80128F0C */ void checkWolfAtnMoveBack(s16);
/* 80128F5C */ void setWolfAtnMoveDirection();
@@ -1781,9 +1900,9 @@ public:
/* 80129704 */ void setSingleAnimeWolf(daAlink_c::daAlink_WANM, f32, f32, s16, f32);
/* 80129848 */ void setSingleAnimeWolfParam(daAlink_c::daAlink_WANM, daAlinkHIO_anm_c const*);
/* 8012987C */ void checkWolfLandAction(int);
- /* 80129958 */ void checkMidnaUseAbility() const;
+ /* 80129958 */ BOOL checkMidnaUseAbility() const;
/* 801299A8 */ void checkWolfUseAbility();
- /* 80129A80 */ void checkWolfGroundSpecialMode();
+ /* 80129A80 */ bool checkWolfGroundSpecialMode();
/* 80129B44 */ void checkNextActionWolf(int);
/* 8012A02C */ void wolfSideBgCheck(s16);
/* 8012A228 */ void checkWolfAttackReverse(int);
@@ -1874,12 +1993,12 @@ public:
/* 8013384C */ void procWolfRopeSubjectivityInit();
/* 80133930 */ void procWolfRopeSubjectivity();
/* 80133D6C */ void getWolfTagJumpTime() const;
- /* 80133EF0 */ void checkMidnaLockJumpPoint() const;
+ /* 80133EF0 */ cXyz* checkMidnaLockJumpPoint() const;
/* 80134000 */ void procWolfTagJumpInit(fopAc_ac_c*);
/* 80134838 */ void procWolfTagJump();
/* 80134DB8 */ void procWolfTagJumpLandInit(fopAc_ac_c*);
/* 80134EBC */ void procWolfTagJumpLand();
- /* 80135160 */ void procWolfGiantPuzzleInit();
+ /* 80135160 */ bool procWolfGiantPuzzleInit();
/* 801351F8 */ void procWolfGiantPuzzle();
/* 80135458 */ void setWolfHangGroundY();
/* 801354C8 */ void changeWolfHangEndProc();
@@ -1897,7 +2016,7 @@ public:
/* 80136C18 */ void procWolfLandDamageInit(int);
/* 80136DE4 */ void procWolfLandDamage();
/* 80136EC4 */ void setWolfScreamWaitAnime();
- /* 80136F54 */ void procWolfScreamWaitInit();
+ /* 80136F54 */ bool procWolfScreamWaitInit();
/* 80136FF8 */ void procWolfScreamWait();
/* 801370E4 */ void getWolfLieMoveAnmSpeed();
/* 8013712C */ void getWolfLieMoveSpeed();
@@ -1929,7 +2048,7 @@ public:
/* 80138DC0 */ void setWolfBallModel();
/* 80138F18 */ void resetWolfBallGrab();
/* 80139048 */ void checkWolfLockData();
- /* 801391DC */ void getWolfLockActorEnd();
+ /* 801391DC */ fopAc_ac_c* getWolfLockActorEnd();
/* 801391E4 */ void searchWolfLockEnemy(fopAc_ac_c*, void*);
/* 801392E4 */ void checkWolfComboCnt();
/* 801393A4 */ void checkWolfAttackAction();
@@ -1977,7 +2096,7 @@ public:
/* 8013D86C */ void procWolfGrabThrow();
/* 8013D930 */ void procWolfPushInit();
/* 8013DA8C */ void procWolfPush();
- /* 8013DB6C */ void procWolfCargoCarryInit();
+ /* 8013DB6C */ bool procWolfCargoCarryInit();
/* 8013DC5C */ void procWolfCargoCarry();
/* 8013DDF8 */ void procWolfChainUpInit();
/* 8013DE70 */ void procWolfChainUp();
@@ -2008,68 +2127,68 @@ public:
/* 80140984 */ void statusWindowDraw();
/* 80140AC8 */ void resetStatusWindow();
- virtual bool getMidnaAtnPos(void) const;
+ virtual cXyz* getMidnaAtnPos() const;
virtual void setMidnaMsgNum(fopAc_ac_c*, u16);
- virtual Mtx* getModelMtx(void);
- virtual Mtx* getInvMtx(void);
- virtual cXyz* getShadowTalkAtnPos(void);
- virtual float getGroundY();
- virtual Mtx* getLeftItemMatrix(void);
- virtual Mtx* getRightItemMatrix(void);
- virtual Mtx* getLeftHandMatrix(void);
- virtual Mtx* getRightHandMatrix(void);
- virtual Mtx* getLinkBackBone1Matrix(void);
- virtual Mtx* getWolfMouthMatrix(void);
- virtual Mtx* getWolfBackbone2Matrix(void);
- virtual bool getBottleMtx(void);
- virtual bool checkPlayerGuard(void) const;
+ virtual MtxP getModelMtx();
+ virtual MtxP getInvMtx();
+ virtual cXyz* getShadowTalkAtnPos();
+ virtual f32 getGroundY();
+ virtual MtxP getLeftItemMatrix();
+ virtual MtxP getRightItemMatrix();
+ virtual MtxP getLeftHandMatrix();
+ virtual MtxP getRightHandMatrix();
+ virtual MtxP getLinkBackBone1Matrix();
+ virtual MtxP getWolfMouthMatrix();
+ virtual MtxP getWolfBackbone2Matrix();
+ virtual MtxP getBottleMtx();
+ virtual BOOL checkPlayerGuard() const;
virtual u32 checkPlayerFly() const;
virtual BOOL checkFrontRoll() const;
- virtual bool checkWolfDash() const;
- virtual bool checkAutoJump(void) const;
- virtual bool checkSideStep(void) const;
- virtual bool checkWolfTriggerJump(void) const;
- virtual bool checkGuardBreakMode(void) const;
- virtual bool checkLv3Slide(void) const;
- virtual bool checkWolfHowlDemoMode(void) const;
- virtual bool checkChainBlockPushPull(void);
- virtual bool checkElecDamage(void) const;
- virtual bool checkEmptyBottleSwing(void) const;
- virtual bool checkBottleSwingMode(void) const;
- virtual bool checkHawkWait(void) const;
- virtual bool checkGoatThrow(void) const;
- virtual bool checkGoatThrowAfter(void) const;
- virtual bool checkWolfTagLockJump(void) const;
- virtual bool checkWolfTagLockJumpLand(void) const;
- virtual bool checkWolfRope(void);
- virtual bool checkWolfRopeHang(void) const;
- virtual bool checkRollJump(void) const;
- virtual bool checkGoronRideWait(void) const;
- virtual bool checkWolfChain(void) const;
- virtual bool checkWolfWait(void) const;
- virtual bool checkWolfJumpAttack(void) const;
- virtual bool checkWolfRSit(void) const;
- virtual bool checkBottleDrinkEnd(void) const;
- virtual bool checkWolfDig(void) const;
- virtual bool checkCutCharge(void) const;
- virtual BOOL checkCutTurnCharge(void) const;
- virtual bool checkCutLargeJumpCharge(void) const;
- virtual bool checkComboCutTurn(void) const;
- virtual bool checkClimbMove(void) const;
- virtual bool checkGrassWhistle(void) const;
- virtual bool checkBoarRun(void) const;
- virtual float getBaseAnimeFrameRate(void) const;
- virtual float getBaseAnimeFrame(void) const;
+ virtual BOOL checkWolfDash() const;
+ virtual BOOL checkAutoJump() const;
+ virtual bool checkSideStep() const;
+ virtual bool checkWolfTriggerJump() const;
+ virtual BOOL checkGuardBreakMode() const;
+ virtual bool checkLv3Slide() const;
+ virtual bool checkWolfHowlDemoMode() const;
+ virtual bool checkChainBlockPushPull();
+ virtual BOOL checkElecDamage() const;
+ virtual BOOL checkEmptyBottleSwing() const;
+ virtual BOOL checkBottleSwingMode() const;
+ virtual BOOL checkHawkWait() const;
+ virtual BOOL checkGoatThrow() const;
+ virtual BOOL checkGoatThrowAfter() const;
+ virtual BOOL checkWolfTagLockJump() const;
+ virtual BOOL checkWolfTagLockJumpLand() const;
+ virtual bool checkWolfRope();
+ virtual BOOL checkWolfRopeHang() const;
+ virtual BOOL checkRollJump() const;
+ virtual BOOL checkGoronRideWait() const;
+ virtual BOOL checkWolfChain() const;
+ virtual BOOL checkWolfWait() const;
+ virtual BOOL checkWolfJumpAttack() const;
+ virtual BOOL checkWolfRSit() const;
+ virtual BOOL checkBottleDrinkEnd() const;
+ virtual BOOL checkWolfDig() const;
+ virtual BOOL checkCutCharge() const;
+ virtual BOOL checkCutTurnCharge() const;
+ virtual BOOL checkCutLargeJumpCharge() const;
+ virtual BOOL checkComboCutTurn() const;
+ virtual BOOL checkClimbMove() const;
+ virtual BOOL checkGrassWhistle() const;
+ virtual BOOL checkBoarRun() const;
+ virtual f32 getBaseAnimeFrameRate() const;
+ virtual f32 getBaseAnimeFrame() const;
virtual void setAnimeFrame(float);
virtual bool checkWolfLock(fopAc_ac_c*) const;
virtual bool cancelWolfLock(fopAc_ac_c*);
- virtual s32 getAtnActorID(void) const;
- virtual s32 getItemID(void) const;
- virtual s32 getGrabActorID(void) const;
+ virtual s32 getAtnActorID() const;
+ virtual s32 getItemID() const;
+ virtual s32 getGrabActorID() const;
virtual bool exchangeGrabActor(fopAc_ac_c*);
virtual bool setForceGrab(fopAc_ac_c*, int, int);
virtual void setForcePutPos(cXyz const&);
- virtual bool checkPlayerNoDraw(void);
+ virtual BOOL checkPlayerNoDraw();
virtual void voiceStart(u32);
virtual void seStartOnlyReverb(u32);
virtual void seStartOnlyReverbLevel(u32);
@@ -2077,11 +2196,12 @@ public:
virtual void setGrabCollisionOffset(float, float, cBgS_PolyInfo*);
virtual void onFrollCrashFlg(u8, int);
virtual MtxP getModelJointMtx(u16);
- virtual bool getHeadMtx(void);
+ virtual MtxP getHeadMtx();
virtual bool setHookshotCarryOffset(unsigned int, cXyz const*);
- virtual bool checkIronBallReturn(void) const;
- virtual bool checkIronBallGroundStop(void) const;
- virtual bool checkSingleBoarBattleSecondBowReady(void) const;
+ virtual BOOL checkCutJumpCancelTurn() const;
+ virtual bool checkIronBallReturn() const;
+ virtual bool checkIronBallGroundStop() const;
+ virtual BOOL checkSingleBoarBattleSecondBowReady() const;
virtual void setClothesChange(int);
virtual void setPlayerPosAndAngle(float (*)[4]);
virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*);
@@ -2090,7 +2210,7 @@ public:
virtual bool checkSetNpcTks(cXyz*, int, int);
virtual bool setRollJump(float, float, short);
virtual void playerStartCollisionSE(u32, u32);
- virtual void cancelDungeonWarpReadyNeck(void);
+ virtual void cancelDungeonWarpReadyNeck();
virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*);
virtual void onSceneChangeAreaJump(u8, u8, fopAc_ac_c*);
virtual void onSceneChangeDead(u8, int);
@@ -2099,15 +2219,15 @@ public:
virtual u32 checkCanoeRide() const;
virtual u32 checkBoardRide() const;
virtual u32 checkSpinnerRide() const;
- virtual fopAc_ac_c* getSpinnerActor(void);
- virtual bool checkHorseRideNotReady(void) const;
- virtual bool checkArrowChargeEnd(void) const;
- virtual void getSearchBallScale(void) const;
- virtual bool checkFastShotTime(void);
- virtual bool checkNoEquipItem(void) const;
+ virtual fopAc_ac_c* getSpinnerActor();
+ virtual BOOL checkHorseRideNotReady() const;
+ virtual bool checkArrowChargeEnd() const;
+ virtual f32 getSearchBallScale() const;
+ virtual s16 checkFastShotTime();
+ virtual bool checkNoEquipItem() const;
virtual bool checkKandelaarSwing(int) const;
- virtual bool getBoardCutTurnOffsetAngleY(void) const;
- virtual cXyz* getMagneBootsTopVec(void);
+ virtual s16 getBoardCutTurnOffsetAngleY() const;
+ virtual cXyz* getMagneBootsTopVec();
virtual bool getKandelaarFlamePos();
virtual bool checkUseKandelaar(int);
virtual void setDkCaught(fopAc_ac_c*);
@@ -2118,64 +2238,101 @@ public:
virtual void setWolfEnemyHangBiteAngle(short);
virtual void setKandelaarMtx(float (*)[4], int, int);
virtual bool getStickAngleFromPlayerShape(short*) const;
- virtual bool checkSpinnerPathMove(void);
- virtual bool checkSpinnerTriggerAttack(void);
- virtual void onSpinnerPathForceRemove(void);
- virtual bool getIronBallBgHit(void) const;
- virtual bool getIronBallCenterPos(void);
- virtual bool checkCanoeFishingGetLeft(void) const;
- virtual bool checkCanoeFishingGetRight(void) const;
- virtual bool checkBeeChildDrink(void) const;
- virtual void skipPortalObjWarp(void);
+ virtual bool checkSpinnerPathMove();
+ virtual bool checkSpinnerTriggerAttack();
+ virtual void onSpinnerPathForceRemove();
+ virtual bool getIronBallBgHit() const;
+ virtual bool getIronBallCenterPos();
+ virtual bool checkCanoeFishingGetLeft() const;
+ virtual bool checkCanoeFishingGetRight() const;
+ virtual u8 checkBeeChildDrink() const;
+ virtual void skipPortalObjWarp();
virtual bool checkTreasureRupeeReturn(int) const;
virtual void setSumouReady(fopAc_ac_c*);
virtual void checkAcceptDungeonWarpAlink(int);
- virtual s16 getSumouCounter(void) const;
- virtual s16 checkSumouWithstand(void) const;
- virtual void cancelGoronThrowEvent(void);
+ virtual s16 getSumouCounter() const;
+ virtual s16 checkSumouWithstand() const;
+ virtual void cancelGoronThrowEvent();
virtual void setSumouGraspCancelCount(int);
virtual void setSumouPushBackDirection(short);
- virtual void setSumouLoseHeadUp(void);
- virtual s16 getGiantPuzzleAimAngle(void) const;
+ virtual void setSumouLoseHeadUp();
+ virtual s16 getGiantPuzzleAimAngle() const;
virtual void setGoronSideMove(fopAc_ac_c*);
virtual void setCargoCarry(fopAc_ac_c*);
- virtual bool getHookshotTopPos(void);
- virtual bool checkHookshotReturnMode(void) const;
- virtual bool checkHookshotShootReturnMode(void) const;
- virtual bool checkOctaIealHang(void) const;
- virtual void cancelOctaIealHang(void);
- virtual void cancelDragonHangBackJump(void);
- virtual void setOctaIealWildHang(void);
- virtual bool checkDragonHangRide(void) const;
+ virtual bool getHookshotTopPos();
+ virtual bool checkHookshotReturnMode() const;
+ virtual bool checkHookshotShootReturnMode() const;
+ virtual bool checkOctaIealHang() const;
+ virtual void cancelOctaIealHang();
+ virtual void cancelDragonHangBackJump();
+ virtual void setOctaIealWildHang();
+ virtual bool checkDragonHangRide() const;
virtual void changeDragonActor(fopAc_ac_c*);
- virtual u8 getClothesChangeWaitTimer(void) const;
- virtual u8 getShieldChangeWaitTimer(void) const;
- virtual bool getSwordChangeWaitTimer(void) const;
- virtual bool checkMetamorphose(void) const;
- virtual bool checkWolfDownAttackPullOut(void) const;
- virtual BOOL checkBootsOrArmorHeavy(void) const;
- virtual s32 getBottleOpenAppearItem(void) const;
- virtual bool checkItemSwordEquip(void) const;
- virtual float getSinkShapeOffset(void) const;
- virtual bool checkSinkDead(void) const;
- virtual bool checkHorseStart(void);
- virtual bool getWolfHowlMgrP(void);
- virtual bool checkWolfHowlSuccessAnime(void) const;
- virtual bool checkCopyRodTopUse(void);
- virtual bool checkCopyRodEquip(void) const;
- virtual bool checkCutJumpMode(void) const;
-
- // inlined version of checkModeFlg
+ virtual u8 getClothesChangeWaitTimer() const;
+ virtual u8 getShieldChangeWaitTimer() const;
+ virtual u8 getSwordChangeWaitTimer() const;
+ virtual BOOL checkMetamorphose() const;
+ virtual BOOL checkWolfDownAttackPullOut() const;
+ virtual BOOL checkBootsOrArmorHeavy() const;
+ virtual s32 getBottleOpenAppearItem() const;
+ virtual bool checkItemSwordEquip() const;
+ virtual float getSinkShapeOffset() const;
+ virtual BOOL checkSinkDead() const;
+ virtual BOOL checkHorseStart();
+ virtual Z2WolfHowlMgr* getWolfHowlMgrP();
+ virtual BOOL checkWolfHowlSuccessAnime() const;
+ virtual BOOL checkCopyRodTopUse();
+ virtual bool checkCopyRodEquip() const;
+ virtual BOOL checkCutJumpMode() const;
+
+ // inlined dupes
u32 i_checkModeFlg(u32 pFlag) const { return mModeFlg & pFlag; }
+ bool i_checkSmallUpperGuardAnime() const { return checkUpperAnime(0x16); }
+ bool i_checkFmChainGrabAnime() const { return checkUpperAnime(0x62) || checkUpperAnime(0x2A0); }
+ BOOL i_checkAttentionLock() { return mAttention->Lockon(); }
+
bool checkUpperAnime(u16 pIdx) const { return mUpperAnime[UPPER_NOW].getIdx() == pIdx; }
bool checkIronBallWaitAnime() const { return checkUpperAnime(0x19C); }
+ bool checkHorseTurnLAnime() const { return checkUpperAnime(0x24C); }
+ bool checkHorseTurnRAnime() const { return checkUpperAnime(0x24D); }
+ bool checkHorseTurnAnime() const { return checkHorseTurnLAnime() || checkHorseTurnRAnime(); }
+ bool checkHookshotShootAnime() const { return checkUpperAnime(0x18C); }
+ bool checkHookshotReadyAnime() const { return checkUpperAnime(0x18D); }
+ bool checkHookshotAnime() const {
+ return checkHookshotReadyAnime() || checkHookshotShootAnime();
+ }
+ BOOL checkBoomerangReadyAnime() const {
+ return (mEquipItem == BOOMERANG || mEquipItem == 0x102) && checkUpperAnime(0x54);
+ }
+
s16 checkWolfEyeUp() const { return mWolfEyeUp; }
+ void onModeFlg(u32 flag) { mModeFlg |= flag; }
+ void offModeFlg(u32 flag) { mModeFlg &= ~flag; }
+ bool swordButton() { return itemButtonCheck(8); }
+ daPy_actorKeep_c* getThrowBoomerangAcKeep() { return &mThrowBoomerangActor; }
+ s32 getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; }
+ bool checkFisingRodLure() const { return mEquipItem == 0x105; }
+ bool doTrigger() const { return mItemTrigger & 0x10; }
+ u32 getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; }
+ bool checkInputOnR() const { return field_0x33ac <= 0.05f; }
+ static int getSightBti() { return 0x5B; }
+ bool checkBoomerangChargeEndWait() const {
+ return mEquipItem != 0x102 && checkBoomerangAnime();
+ }
+ J3DAnmTransform* getNowAnmPackUpper(daAlink_UPPER param_0) {
+ return mNowAnmPack[param_0].getAnmTransform();
+ }
+ void setFacePriBck(u16 param_0) { setFaceBck(param_0, 1, 0xFFFF); }
+
+ BOOL i_checkReinRide() const { return mRideStatus == 1 || mRideStatus == 2; }
+
+ inline u16 getReadyItem();
static u8 const m_mainBckShield[80];
static u8 const m_mainBckSword[20];
static u8 const m_mainBckFishing[112];
- static u8 const m_anmDataTable[4968];
- static void* const m_wlAnmDataTable[294];
+ static daAlink_AnmData const m_anmDataTable[414];
+ static daAlink_WlAnmData const m_wlAnmDataTable[147];
static u8 const m_faceTexDataTable[652];
static u8 const m_handLeftOutSidePos[12];
static u8 const m_handRightOutSidePos[12];
@@ -2187,12 +2344,12 @@ public:
private:
/* 0x0062C */ void* field_0x062C;
- /* 0x00630 */ void* field_0x0630;
- /* 0x00634 */ void* field_0x0634;
+ /* 0x00630 */ int field_0x0630;
+ /* 0x00634 */ char* mArcName;
/* 0x00638 */ JKRExpHeap** field_0x0638;
/* 0x0063C */ void* field_0x063C;
- /* 0x00640 */ void* field_0x0640;
- /* 0x00644 */ void* field_0x0644;
+ /* 0x00640 */ int field_0x0640;
+ /* 0x00644 */ char* mShieldArcName;
/* 0x00648 */ JKRExpHeap** field_0x0648;
/* 0x0064C */ J3DModelData* field_0x064C;
/* 0x00650 */ J3DModel* field_0x0650;
@@ -2205,14 +2362,14 @@ private:
/* 0x0066C */ J3DModel* field_0x066c;
/* 0x00670 */ J3DModel* field_0x0670;
/* 0x00674 */ J3DModel* field_0x0674;
- /* 0x00678 */ J3DModel* field_0x0678;
+ /* 0x00678 */ J3DModel* mShieldModel;
/* 0x0067C */ J3DAnmBase* field_0x067c;
/* 0x00680 */ J3DAnmBase* field_0x0680;
/* 0x00684 */ J3DModel* field_0x0684;
/* 0x00688 */ J3DModel* field_0x0688;
/* 0x0068C */ J3DAnmBase* field_0x068c;
/* 0x00690 */ mDoExt_baseAnm** field_0x0690;
- /* 0x00694 */ void* field_0x0694; // J3DDeformData
+ /* 0x00694 */ J3DDeformData* field_0x0694;
/* 0x00698 */ void* field_0x0698;
/* 0x0069C */ void* field_0x069c;
/* 0x006A0 */ J3DModel* field_0x06a0;
@@ -2221,12 +2378,12 @@ private:
/* 0x006AC */ mDoExt_bckAnm* field_0x06ac;
/* 0x006B0 */ mDoExt_bckAnm* field_0x06b0;
/* 0x006B4 */ J3DAnmTransform* field_0x06b4;
- /* 0x006B8 */ J3DModel* field_0x06b8;
+ /* 0x006B8 */ J3DModel* mSwordModel;
/* 0x006BC */ J3DModel* field_0x06bc;
/* 0x006C0 */ J3DModelData* field_0x06c0;
- /* 0x006C4 */ J3DAnmBase* field_0x06c4;
- /* 0x006C8 */ J3DAnmBase* field_0x06c8;
- /* 0x006CC */ J3DAnmBase* field_0x06cc;
+ /* 0x006C4 */ J3DAnmBase* m_nSwordBtk;
+ /* 0x006C8 */ J3DAnmBase* m_mSwordBtk;
+ /* 0x006CC */ J3DAnmBase* m_mSwordBck;
/* 0x006D0 */ void* field_0x06d0;
/* 0x006D4 */ void* field_0x06d4;
/* 0x006D8 */ void* field_0x06d8;
@@ -2241,20 +2398,20 @@ private:
/* 0x006FC */ J3DModel* field_0x06fc;
/* 0x00700 */ J3DModel* field_0x0700;
/* 0x00704 */ J3DAnmBase* field_0x0704;
- /* 0x00708 */ J3DModel* field_0x0708;
+ /* 0x00708 */ J3DModel* mHeldItemModel;
/* 0x0070C */ J3DModel* field_0x070c;
/* 0x00710 */ J3DModel* field_0x0710;
/* 0x00714 */ J3DModel* field_0x0714;
/* 0x00718 */ J3DAnmBase* field_0x0718;
/* 0x0071C */ J3DAnmBase* field_0x071c;
/* 0x00720 */ J3DAnmBase* field_0x0720;
- /* 0x00724 */ J3DAnmBase* field_0x0724;
+ /* 0x00724 */ J3DAnmTevRegKey* field_0x0724;
/* 0x00728 */ J3DAnmBase* field_0x0728;
/* 0x0072C */ J3DAnmBase* field_0x072c;
/* 0x00730 */ mDoExt_bckAnm field_0x730;
/* 0x0074C */ mDoExt_bckAnm field_0x74C;
/* 0x00768 */ u8 field_0x0768[0x5C];
- /* 0x007C4 */ daPy_actorKeep_c field_0x07C4[10];
+ /* 0x007C4 */ daPy_actorKeep_c mWolfLockAcKeep[10];
/* 0x00814 */ dCcD_Stts field_0x814;
/* 0x00850 */ dCcD_Cyl field_0x850[3];
/* 0x00C04 */ dCcD_Cyl field_0xC04[3];
@@ -2281,12 +2438,12 @@ private:
/* 0x01ECC */ dBgS_ObjGndChk mObjGndChk;
/* 0x01F20 */ u8 field_0x1f20[8];
/* 0x01F28 */ mDoExt_AnmRatioPack field_0x1f28[3];
- /* 0x01F40 */ mDoExt_AnmRatioPack field_0x1f40[3];
+ /* 0x01F40 */ mDoExt_AnmRatioPack mNowAnmPack[3];
/* 0x01F58 */ daPy_anmHeap_c mUnderAnime[3];
/* 0x01F94 */ daPy_anmHeap_c mUpperAnime[3];
/* 0x01FD0 */ daPy_frameCtrl_c mFrameCtrl1[3];
/* 0x02018 */ daPy_frameCtrl_c mFrameCtrl2[3];
- /* 0x02060 */ void* field_0x2060; // mDoExt_MtxCalcOldFrame*
+ /* 0x02060 */ mDoExt_MtxCalcOldFrame* field_0x2060;
/* 0x02064 */ daAlink_sight_c mSight;
/* 0x020F0 */ daPy_anmHeap_c mAnmHeap3;
/* 0x02104 */ daPy_anmHeap_c mAnmHeap4;
@@ -2300,29 +2457,29 @@ private:
/* 0x021B0 */ daPy_anmHeap_c mItemHeap[2];
/* 0x021D8 */ daPy_anmHeap_c mAnmHeap9;
/* 0x021EC */ u8 field_0x21ec[4];
- /* 0x021F0 */ daAlink_blur_c mBlur;
+ /* 0x021F0 */ daAlink_blur_c m_swordBlur;
/* 0x027C8 */ dAlink_bottleWaterPcallBack_c field_0x27c8;
/* 0x027E0 */ dAttention_c* mAttention;
/* 0x027E4 */ dAttList_c* mAttList;
/* 0x027E8 */ dAttList_c* mAttList2;
/* 0x027EC */ fopAc_ac_c* mTargetedActor;
/* 0x027F0 */ fopAc_ac_c* field_0x27f0;
- /* 0x027F4 */ fopAc_ac_c* field_0x27f4;
+ /* 0x027F4 */ kytag05_class* field_0x27f4;
/* 0x027F8 */ fopAc_ac_c* field_0x27f8;
/* 0x027FC */ fopAc_ac_c* field_0x27fc;
- /* 0x02800 */ fopAc_ac_c* field_0x2800;
+ /* 0x02800 */ daTagMmsg_c* mMidnaMsg;
/* 0x02804 */ fopAc_ac_c* field_0x2804;
/* 0x02808 */ fopAc_ac_c* field_0x2808;
/* 0x0280C */ daPy_actorKeep_c field_0x280c;
/* 0x02814 */ daPy_actorKeep_c mRideActor; // daspinnerc?
/* 0x0281C */ daPy_actorKeep_c field_0x281c;
/* 0x02824 */ daPy_actorKeep_c mItemActor; // name might be wrong
- /* 0x0282C */ daPy_actorKeep_c field_0x282c;
- /* 0x02834 */ daPy_actorKeep_c field_0x2834;
- /* 0x0283C */ daPy_actorKeep_c field_0x283c;
+ /* 0x0282C */ daPy_actorKeep_c mGrabItemActor;
+ /* 0x02834 */ daPy_actorKeep_c mThrowBoomerangActor;
+ /* 0x0283C */ daPy_actorKeep_c mCopyRodAcKeep;
/* 0x02844 */ daPy_actorKeep_c field_0x2844;
/* 0x0284C */ daPy_actorKeep_c field_0x284c;
- /* 0x02854 */ daPy_actorKeep_c field_0x2854;
+ /* 0x02854 */ daPy_actorKeep_c mCargoCarryActor;
/* 0x0285C */ daPy_actorKeep_c field_0x285c;
/* 0x02864 */ dMsgFlow_c mMsgFlow;
/* 0x028B0 */ u8 field_0x28b0[0x40];
@@ -2338,11 +2495,11 @@ private:
/* 0x02B98 */ float* field_0x2b9c;
/* 0x02BA0 */ float* field_0x2ba0;
/* 0x02BA4 */ float* field_0x2ba4;
- /* 0x02BA8 */ float* field_0x2ba8;
+ /* 0x02BA8 */ f32 mSinkShapeOffset;
/* 0x02BAC */ cXyz field_0x2bac;
/* 0x02BB8 */ Mtx mInvMtx;
/* 0x02BE8 */ Mtx field_0x2be8;
- /* 0x02C18 */ Mtx field_0x2c18;
+ /* 0x02C18 */ Mtx mRootMtx;
/* 0x02C48 */ Mtx field_0x2c48;
/* 0x02C78 */ Mtx field_0x2c78;
/* 0x02CA8 */ Z2CreatureLink mZ2Link;
@@ -2375,17 +2532,17 @@ private:
/* 0x02F97 */ u8 field_0x2f97;
/* 0x02F98 */ u8 field_0x2f98;
/* 0x02F99 */ u8 field_0x2f99;
- /* 0x02F9A */ s8 field_0x2f9a;
+ /* 0x02F9A */ s8 mVoiceReverbIntensity;
/* 0x02F9B */ u8 field_0x2f9b;
/* 0x02F9C */ u8 mSelectItemId;
/* 0x02F9D */ u8 field_0x2f9d;
/* 0x02F9E */ u8 field_0x2f9e;
/* 0x02F9F */ u8 field_0x2f9f;
/* 0x02FA0 */ u8 field_0x2fa0;
- /* 0x02FA1 */ u8 field_0x2fa1;
- /* 0x02FA2 */ u8 field_0x2fa2;
+ /* 0x02FA1 */ u8 mRunCutComboCount;
+ /* 0x02FA2 */ u8 mActiveBombNum;
/* 0x02FA3 */ u8 field_0x2fa3;
- /* 0x02FA4 */ u8 field_0x2fa4;
+ /* 0x02FA4 */ u8 mRollCrashFlg;
/* 0x02FA5 */ u8 field_0x2fa5;
/* 0x02FA6 */ u8 field_0x2fa6;
/* 0x02FA7 */ u8 field_0x2fa7;
@@ -2398,8 +2555,8 @@ private:
/* 0x02FAE */ u8 field_0x2fae;
/* 0x02FAF */ u8 field_0x2faf;
/* 0x02FB0 */ u8 field_0x2fb0;
- /* 0x02FB1 */ u8 field_0x2fb1;
- /* 0x02FB2 */ u8 field_0x2fb2;
+ /* 0x02FB1 */ u8 mWolfLockNum;
+ /* 0x02FB2 */ u8 mMidnaTalkDelayTimer;
/* 0x02FB3 */ u8 field_0x2fb3;
/* 0x02FB4 */ u8 field_0x2fb4;
/* 0x02FB5 */ u8 field_0x2fb5;
@@ -2435,11 +2592,11 @@ private:
/* 0x02FD3 */ u8 field_0x2fd3;
/* 0x02FD4 */ u8 field_0x2fd4;
/* 0x02FD5 */ u8 field_0x2fd5;
- /* 0x02FD6 */ u8 field_0x2fd6;
+ /* 0x02FD6 */ u8 mSwordChangeWaitTimer;
/* 0x02FD7 */ u8 field_0x2fd7;
/* 0x02FD8 */ u8 field_0x2fd8;
/* 0x02FD9 */ u8 field_0x2fd9[3];
- /* 0x02FDC */ u16 field_0x2fdc;
+ /* 0x02FDC */ u16 mEquipItem;
/* 0x02FDE */ u16 field_0x2fde;
/* 0x02FE0 */ u16 field_0x2fe0;
/* 0x02FE2 */ s16 field_0x2fe2;
@@ -2467,7 +2624,7 @@ private:
/* 0x0300E */ s16 field_0x300e;
/* 0x03010 */ s16 field_0x3010;
/* 0x03012 */ s16 field_0x3012;
- /* 0x03014 */ s16 field_0x3014;
+ /* 0x03014 */ s16 mFallVoiceInit;
/* 0x03016 */ u8 field_0x3016[2];
/* 0x03018 */ s16 field_0x3018;
/* 0x0301A */ s16 field_0x301a;
@@ -2525,7 +2682,7 @@ private:
/* 0x03088 */ s16 field_0x3088;
/* 0x0308A */ s16 field_0x308a;
/* 0x0308C */ s16 field_0x308c;
- /* 0x0308E */ s16 field_0x308e;
+ /* 0x0308E */ s16 mFastShotTime;
/* 0x03090 */ s16 field_0x3090;
/* 0x03092 */ s16 field_0x3092;
/* 0x03094 */ s16 field_0x3094;
@@ -2565,7 +2722,7 @@ private:
/* 0x030EE */ s16 field_0x30ee;
/* 0x030F0 */ u16 field_0x30f0;
/* 0x030F2 */ u8 field_0x30f2[2];
- /* 0x030F4 */ s16 field_0x30f4;
+ /* 0x030F4 */ s16 mSwordFlourishTimer;
/* 0x030F6 */ s16 field_0x30f6;
/* 0x030F8 */ s16 field_0x30f8;
/* 0x030FA */ s16 field_0x30fa;
@@ -2602,7 +2759,7 @@ private:
/* 0x03172 */ u8 field_0x3172[2];
/* 0x03174 */ int field_0x3174;
/* 0x03178 */ int field_0x3178;
- /* 0x0317C */ dAttention_c* field_0x317c;
+ /* 0x0317C */ int field_0x317c;
/* 0x03180 */ int field_0x3180;
/* 0x03184 */ int field_0x3184;
/* 0x03184 */ int field_0x3188;
@@ -2664,11 +2821,11 @@ private:
/* 0x033A8 */ float field_0x33a8;
/* 0x033AC */ float field_0x33ac;
/* 0x033B0 */ float field_0x33b0;
- /* 0x033B4 */ float field_0x33b4;
+ /* 0x033B4 */ float mWaterY;
/* 0x033B8 */ float field_0x33b8;
/* 0x033BC */ float field_0x33bc;
/* 0x033C0 */ float field_0x33c0;
- /* 0x033C4 */ float field_0x33c4;
+ /* 0x033C4 */ float mFallHeight;
/* 0x033C8 */ float field_0x33c8;
/* 0x033CC */ float field_0x33cc;
/* 0x033D0 */ float field_0x33d0;
@@ -2712,14 +2869,14 @@ private:
/* 0x03468 */ float field_0x3468;
/* 0x0346C */ float field_0x346c;
/* 0x03470 */ float field_0x3470;
- /* 0x03474 */ float field_0x3474;
+ /* 0x03474 */ float mSwordUpColorIntensity;
/* 0x03478 */ float field_0x3478;
/* 0x0347C */ float field_0x347c;
/* 0x03480 */ float field_0x3480;
/* 0x03484 */ float field_0x3484;
/* 0x03488 */ float field_0x3488;
/* 0x0348C */ float field_0x348c;
- /* 0x03490 */ float field_0x3490;
+ /* 0x03490 */ float mSearchBallScale;
/* 0x03494 */ float field_0x3494;
/* 0x03498 */ cXyz field_0x3498;
/* 0x034A4 */ cXyz field_0x34a4;
@@ -2729,7 +2886,7 @@ private:
/* 0x034D4 */ cXyz field_0x34d4;
/* 0x034E0 */ cXyz field_0x34e0;
/* 0x034EC */ cXyz field_0x34ec;
- /* 0x034F8 */ cXyz field_0x34f8;
+ /* 0x034F8 */ cXyz mLastJumpPos;
/* 0x03504 */ cXyz field_0x3504;
/* 0x03510 */ cXyz field_0x3510;
/* 0x0351C */ cXyz field_0x351c;
@@ -2756,7 +2913,7 @@ private:
/* 0x0363C */ cXyz field_0x363c[4];
/* 0x0366C */ cXyz field_0x366c[4];
/* 0x0369C */ cXyz field_0x369c;
- /* 0x036A8 */ cXyz field_0x36a8;
+ /* 0x036A8 */ cXyz mMagneBootsTopVec;
/* 0x036B4 */ cXyz field_0x36b4;
/* 0x036C0 */ cXyz field_0x36c0[4];
/* 0x036F0 */ cXyz field_0x36f0[4];
@@ -2787,15 +2944,18 @@ private:
/* 0x03844 */ csXyz* mIronBallChainAngle;
/* 0x03848 */ void* field_0x3848;
/* 0x0384C */ float* field_0x384c;
+ /* 0x03850 */ u32 field_0x3850;
+ /* 0x03854 */ u32 field_0x3854;
+ /* 0x03858 */ u32 field_0x3858;
};
struct daAlinkHIO_anm_c {
- /* 0x00 */ s16 field_0x00;
- /* 0x04 */ f32 field_0x04;
- /* 0x08 */ f32 field_0x08;
- /* 0x0C */ f32 field_0x0c;
- /* 0x10 */ f32 field_0x10;
-}; // size = 0x14
+ /* 0x00 */ s16 field_0x00; // end f?
+ /* 0x04 */ f32 field_0x04; // speed?
+ /* 0x08 */ f32 field_0x08; // start?
+ /* 0x0C */ f32 field_0x0c; // interpolation?
+ /* 0x10 */ f32 field_0x10; // CF?
+}; // size = 0x14
struct daAlinkHIO_basic_c1 {
/* 0x00 */ bool mOneHitKill;
@@ -2831,6 +2991,21 @@ public:
static daAlinkHIO_basic_c1 const m;
};
+class daAlinkHIO_backJump_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ f32 field_0x28;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+}; // Size: 0x38
+
+class daAlinkHIO_backJump_c0 {
+public:
+ static daAlinkHIO_backJump_c1 const m;
+};
+
class daAlinkHIO_autoJump_c1 {
public:
/* 0x00 */ daAlinkHIO_anm_c mJump;
@@ -2871,6 +3046,489 @@ public:
static daAlinkHIO_autoJump_c1 const m;
};
+class daAlinkHIO_cut_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mEquipAnm;
+ /* 0x14 */ daAlinkHIO_anm_c mReleaseAnm;
+ /* 0x28 */ daAlinkHIO_anm_c mRecoilAnm;
+ /* 0x3C */ daAlinkHIO_anm_c mStabAnm;
+ /* 0x50 */ bool mForceHitCombo;
+ /* 0x52 */ s16 mComboDuration;
+ /* 0x54 */ s16 mBlurAlpha;
+ /* 0x56 */ s16 mNormalSwingDuration;
+ /* 0x58 */ s16 mDashBlurAlpha;
+ /* 0x5A */ s16 mUnkTime; // might be related to flourish
+ /* 0x5C */ s16 mFlourishTime;
+ /* 0x5E */ s16 mUnkBodyDownwards; // ?
+ /* 0x60 */ s16 mUnkBodyUpwards; // ?
+ /* 0x62 */ s16 mSpinSlashWait; // ? maybe related to wii?
+ /* 0x64 */ f32 mRecoilSpeed;
+ /* 0x68 */ f32 mRecoilDeceleration;
+ /* 0x6C */ f32 mFlourishAnmSpeed;
+ /* 0x70 */ f32 mFlourishEndAnmSpeed;
+ /* 0x74 */ f32 mSwordLength;
+ /* 0x78 */ f32 mSwordRadius;
+ /* 0x7C */ f32 mSwordLengthHorseback;
+ /* 0x80 */ f32 mSwordRadiusHorseback;
+ /* 0x84 */ f32 mRunCutLength;
+ /* 0x88 */ f32 mRunCutRadius;
+ /* 0x8C */ f32 mUnkReleaseASpeed;
+ /* 0x90 */ f32 mSwordLengthHorsebackFight;
+ /* 0x94 */ f32 mSwordRadiusHorsebackFight;
+ /* 0x98 */ f32 mFlourishControlStartFrame;
+}; // Size: 0x9C
+
+class daAlinkHIO_cut_c0 {
+public:
+ static daAlinkHIO_cut_c1 const m;
+};
+
+class daAlinkHIO_cutJump_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mCutAnm;
+ /* 0x14 */ daAlinkHIO_anm_c mLandAnm;
+ /* 0x28 */ f32 mBaseJumpSpeedH;
+ /* 0x2C */ f32 mBaseJumpSpeedV;
+ /* 0x30 */ f32 mAirJumpSpeedH;
+ /* 0x34 */ f32 mAirJumpSpeedV;
+ /* 0x38 */ f32 mStartAttackFrame;
+ /* 0x3C */ f32 mEndAttackFrame;
+ /* 0x40 */ f32 mJumpSpinDelay;
+}; // Size: 0x44
+
+class daAlinkHIO_cutJump_c0 {
+public:
+ static daAlinkHIO_cutJump_c1 const m;
+};
+
+class daAlinkHIO_cutLargeJump_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mChargeAnm; // ?
+ /* 0x14 */ daAlinkHIO_anm_c mChargeMoveAnm; // ?
+ /* 0x28 */ daAlinkHIO_anm_c mCutAnm;
+ /* 0x3C */ daAlinkHIO_anm_c mLandAnm;
+ /* 0x50 */ f32 mCutSpeedH;
+ /* 0x54 */ f32 mCutSpeedV;
+ /* 0x58 */ f32 mJumpAttackStartF;
+ /* 0x5C */ f32 mJumpAttackEndF;
+ /* 0x60 */ f32 mCutInitF;
+ /* 0x64 */ f32 mLandAttackInitF;
+ /* 0x68 */ f32 mLandAttackEndF;
+ /* 0x6C */ f32 mLandAttackRadius;
+ /* 0x70 */ f32 mSpinSlashUnkCF;
+}; // Size: 0x74
+
+class daAlinkHIO_cutLargeJump_c0 {
+public:
+ static daAlinkHIO_cutLargeJump_c1 const m;
+};
+
+class daAlinkHIO_move_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mSlideAnm;
+ /* 0x14 */ s16 mMaxTurnAngle;
+ /* 0x16 */ s16 mMinTurnAngle;
+ /* 0x18 */ s16 mTurnAngleRate;
+ /* 0x1C */ f32 mWaitAnmSpeed;
+ /* 0x20 */ f32 mWalkAnmSpeed;
+ /* 0x24 */ f32 mRunAnmSpeed;
+ /* 0x28 */ f32 mWalkChangeRate;
+ /* 0x2C */ f32 mRunChangeRate;
+ /* 0x30 */ f32 mMaxSpeed;
+ /* 0x34 */ f32 mAcceleration;
+ /* 0x38 */ f32 mDeceleration;
+ /* 0x3C */ f32 mSlideThresholdSpeed; // speed needed to trigger a slide
+ /* 0x40 */ f32 mSlideSpeed;
+ /* 0x44 */ f32 mSlideDeceleration;
+ /* 0x48 */ f32 mFootPositionRatio;
+ /* 0x4C */ f32 mUnkInterpolation;
+ /* 0x50 */ f32 mMinWalkFrame;
+ /* 0x54 */ f32 mMinTiredWalkFrame;
+}; // Size: 0x58
+
+class daAlinkHIO_move_c0 {
+public:
+ static daAlinkHIO_move_c1 const m;
+};
+
+class daAlinkHIO_sideStep_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mSideJumpAnm;
+ /* 0x14 */ daAlinkHIO_anm_c mSideLandAnm;
+ /* 0x28 */ daAlinkHIO_anm_c mBackJumpAnm;
+ /* 0x3C */ daAlinkHIO_anm_c mBackLandAnm;
+ /* 0x50 */ f32 mSideJumpSpeedH;
+ /* 0x54 */ f32 mSideJumpSpeedV;
+ /* 0x58 */ f32 mBackJumpSpeedH;
+ /* 0x5C */ f32 mBackJumpSpeedV;
+ /* 0x60 */ f32 mFallHeight;
+ /* 0x64 */ f32 mFallInterpolation;
+}; // Size: 0x68
+
+class daAlinkHIO_sideStep_c0 {
+public:
+ static daAlinkHIO_sideStep_c1 const m;
+};
+
+class daAlinkHIO_atnMove_c1 {
+public:
+ /* 0x00 */ s16 mMaxTurnAngle;
+ /* 0x02 */ s16 mMinTurnAngle;
+ /* 0x04 */ s16 mTurnAngleRate;
+ /* 0x08 */ f32 mWaitAnmSpeed;
+ /* 0x0C */ f32 mWalkAnmSpeed;
+ /* 0x10 */ f32 mRunAnmSpeed;
+ /* 0x14 */ f32 mWalkChangeRate;
+ /* 0x18 */ f32 mRunChangeRate;
+ /* 0x1C */ f32 mMaxSpeed;
+ /* 0x20 */ f32 mAcceleration;
+ /* 0x24 */ f32 mDeceleration;
+ /* 0x28 */ f32 mBackWalkAnmSpeed;
+ /* 0x2C */ f32 mBackRunAnmSpeed;
+ /* 0x30 */ f32 mBackWalkChangeRate;
+ /* 0x34 */ f32 mBackRunChangeRate;
+ /* 0x38 */ f32 mMaxBackwardsSpeed;
+ /* 0x3C */ f32 mBackAcceleration;
+ /* 0x40 */ f32 mBackDeceleration;
+ /* 0x44 */ f32 mMinWalkFrame;
+ /* 0x48 */ f32 mMinBackWalkFrame;
+ /* 0x4C */ f32 mWalkForwardAnmSpeed;
+ /* 0x50 */ f32 mRunForwardAnmSpeed;
+}; // Size: 0x54
+
+class daAlinkHIO_atnMove_c0 {
+public:
+ static daAlinkHIO_atnMove_c1 const m;
+};
+
+class daAlinkHIO_wallMove_c1 {
+public:
+ /* 0x00 */ f32 mMinAnmSpeed;
+ /* 0x04 */ f32 mMaxAnmSpeed;
+ /* 0x08 */ f32 mInterpolation;
+ /* 0x0C */ f32 mMinSpeed;
+ /* 0x10 */ f32 mMaxSpeed;
+};
+
+class daAlinkHIO_wallMove_c0 {
+public:
+ static daAlinkHIO_wallMove_c1 const m;
+};
+
+class daAlinkHIO_turnMove_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mTurnAnm;
+ /* 0x14 */ s16 mTurnSpeedRate;
+ /* 0x16 */ s16 mMaxTurnSpeed;
+ /* 0x18 */ s16 mMinTurnSpeed;
+ /* 0x1A */ s16 mMaxHalfTurnSpeed;
+ /* 0x1C */ f32 mHalfTurnAnmSpeed;
+ /* 0x20 */ f32 mTwirlCutDelayF;
+ /* 0x24 */ f32 mSideRollAnmSpeed;
+ /* 0x28 */ f32 mSideRollSpeed;
+}; // Size: 0x2C
+
+class daAlinkHIO_turnMove_c0 {
+public:
+ static daAlinkHIO_turnMove_c1 const m;
+};
+
+class daAlinkHIO_slide_c1 {
+public:
+ // most of these havent been verified yet
+ /* 0x00 */ daAlinkHIO_anm_c mForwardSlideAnm;
+ /* 0x14 */ daAlinkHIO_anm_c mBackwardSlideAnm;
+ /* 0x28 */ daAlinkHIO_anm_c mForwardLandAnm; // this and 0x3C might have names reversed?
+ /* 0x3C */ daAlinkHIO_anm_c mBackwardLandAnm;
+ /* 0x50 */ f32 mMaxSpeed;
+ /* 0x54 */ f32 mAcceleration;
+ /* 0x58 */ f32 mSlideAngle;
+ /* 0x5C */ f32 mClimbAngle;
+ /* 0x60 */ f32 mClimbAnmMinSpeed;
+ /* 0x64 */ f32 mMaxClimbSpeed;
+ /* 0x68 */ f32 mLavaFloorSlideAngle; // ?
+ /* 0x6C */ f32 mLavaFloorWeakSlideAngle; // ?
+ /* 0x70 */ f32 mLavaFloorWeakSlideSpeed;
+ /* 0x74 */ f32 mMaxClimbAnmSpeed;
+}; // Size: 0x78
+
+class daAlinkHIO_slide_c0 {
+public:
+ static daAlinkHIO_slide_c1 const m;
+};
+
+class daAlinkHIO_frontRoll_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mRollAnm;
+ /* 0x14 */ daAlinkHIO_anm_c mCrashAnm;
+ /* 0x28 */ daAlinkHIO_anm_c mCrashHitAnm; // ?
+ /* 0x3C */ s16 mCrashAngleThreshold;
+ /* 0x3E */ s16 mTurnRate;
+ /* 0x40 */ s16 mTurnMaxAngle;
+ /* 0x42 */ s16 mTurnMinAngle;
+ /* 0x44 */ f32 mInitSpeed;
+ /* 0x48 */ f32 mSpeedRate;
+ /* 0x4C */ f32 mMinSpeed;
+ /* 0x50 */ f32 mCrashSpeedThreshold;
+ /* 0x54 */ f32 mCrashInitF;
+ /* 0x58 */ f32 mCrashEndF;
+ /* 0x5C */ f32 mCrashSpeedH;
+ /* 0x60 */ f32 mCrashSpeedV;
+ /* 0x64 */ f32 mBootsAttackInitF;
+ /* 0x68 */ f32 mBootsAttackEndF;
+ /* 0x6C */ f32 mBootsAttackRadius;
+}; // Size: 0x70
+
+class daAlinkHIO_frontRoll_c0 {
+public:
+ static daAlinkHIO_frontRoll_c1 const m;
+};
+
+class daAlinkHIO_swim_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mResurfaceAnm;
+ /* 0x14 */ daAlinkHIO_anm_c mDiveAnm;
+ /* 0x28 */ daAlinkHIO_anm_c mUnderwaterDiveAnm;
+ /* 0x3C */ daAlinkHIO_anm_c mDashAnm;
+ /* 0x50 */ s16 mTurnRate;
+ /* 0x52 */ s16 mTurnMin;
+ /* 0x54 */ s16 mTurnMax;
+ /* 0x56 */ s16 mUnderwaterTurnRate;
+ /* 0x58 */ s16 mUnderwaterTurnMin;
+ /* 0x5A */ s16 mUnderwaterTurnMax;
+ /* 0x5C */ s16 val1a; // related to dash
+ /* 0x5E */ s16 val1a_; // related to dash
+ /* 0x60 */ f32 mInitHeight;
+ /* 0x64 */ f32 mResurfaceHeight;
+ /* 0x68 */ f32 mMaxForwardSpeed;
+ /* 0x6C */ f32 mMaxStrafeSpeed;
+ /* 0x70 */ f32 mMaxBackwardSpeed;
+ /* 0x74 */ f32 mMaxUnderwaterSpeed;
+ /* 0x78 */ f32 mUnderwaterMaxSinkSpeed;
+ /* 0x7C */ f32 mAcceleration;
+ /* 0x80 */ f32 mDeceleration;
+ /* 0x84 */ f32 mMaxSinkSpeed;
+ /* 0x88 */ f32 mMaxFloatUpSpeed;
+ /* 0x8C */ f32 mBuoyancy; // ?
+ /* 0x90 */ f32 mWaitAnmSpeed;
+ /* 0x94 */ f32 mWaitInterpolation;
+ /* 0x98 */ f32 mWaitVibrationIntensity;
+ /* 0x9C */ f32 mForwardMinAnmSpeed;
+ /* 0xA0 */ f32 mForwardMaxAnmSpeed;
+ /* 0xA4 */ f32 mStrafeMinAnmSpeed;
+ /* 0xA8 */ f32 mStrafeMaxAnmSpeed;
+ /* 0xAC */ f32 mBackwardMinAnmSpeed;
+ /* 0xB0 */ f32 mBackwardMaxAnmSpeed;
+ /* 0xB4 */ f32 mUnderwaterMinAnmSpeed;
+ /* 0xB8 */ f32 mUnderwaterMaxAnmSpeed;
+ /* 0xBC */ f32 mMoveInterpolation;
+ /* 0xC0 */ f32 mClimbHeight;
+ /* 0xC4 */ f32 mUnderwaterClimbHeight;
+ /* 0xC8 */ f32 mForwardMinSpeed;
+ /* 0xCC */ f32 mInitMaxSinkSpeed;
+ /* 0xD0 */ f32 mBootsMaxSinkSpeed;
+ /* 0xD4 */ f32 mNormalFloatDepth;
+ /* 0xD8 */ f32 mZoraFloatDepth;
+ /* 0xDC */ f32 mUnderwaterButtonSpeed;
+ /* 0xE0 */ f32 mUnderwaterButtonAnmSpeed; // ?
+ /* 0xE4 */ f32 mBootsGravity;
+ /* 0xE8 */ f32 mSurfaceSwimSpeedRate;
+ /* 0xEC */ f32 mDMaxSpeed; // ?
+ /* 0xF0 */ f32 mDDeceleration;
+ /* 0xF4 */ f32 mDMinAnmSpeed;
+ /* 0xF8 */ f32 mDMaxAnmSpeed;
+}; // Size: 0xFC
+
+class daAlinkHIO_swim_c0 {
+public:
+ static daAlinkHIO_swim_c1 const m;
+};
+
+class daAlinkHIO_ladder_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ f32 field_0x28;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+ /* 0x38 */ f32 field_0x38;
+ /* 0x3C */ f32 field_0x3C;
+ /* 0x40 */ f32 field_0x40;
+ /* 0x44 */ f32 field_0x44;
+ /* 0x48 */ f32 field_0x48;
+ /* 0x4C */ f32 field_0x4C;
+ /* 0x50 */ f32 field_0x50;
+ /* 0x54 */ f32 field_0x54;
+ /* 0x58 */ f32 field_0x58;
+ /* 0x5C */ f32 field_0x5C;
+ /* 0x60 */ f32 field_0x60;
+ /* 0x64 */ f32 field_0x64;
+ /* 0x68 */ f32 field_0x68;
+ /* 0x6C */ f32 field_0x6C;
+}; // Size: 0x70
+
+class daAlinkHIO_ladder_c0 {
+public:
+ static daAlinkHIO_ladder_c1 const m;
+};
+
+class daAlinkHIO_horse_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ s16 field_0x50;
+ /* 0x52 */ s16 field_0x52;
+ /* 0x54 */ s16 field_0x54;
+ /* 0x56 */ s16 field_0x56;
+ /* 0x58 */ s16 field_0x58;
+ /* 0x5A */ s16 field_0x5A;
+ /* 0x5C */ f32 field_0x5C;
+ /* 0x60 */ f32 field_0x60;
+ /* 0x64 */ f32 field_0x64;
+ /* 0x68 */ f32 field_0x68;
+}; // Size: 0x6C
+
+class daAlinkHIO_horse_c0 {
+public:
+ static daAlinkHIO_horse_c1 const m;
+};
+
+class daAlinkHIO_wolf_c1 {
+public:
+ /* 0x00 */ s16 mMaxNeckTurnH;
+ /* 0x02 */ s16 mMaxNeckTurnUp;
+ /* 0x04 */ s16 mMaxNeckTurnDown;
+ /* 0x06 */ s16 mMaxTiredNeckTurnH;
+ /* 0x08 */ s16 mMaxTiredNeckTurnUp;
+ /* 0x0A */ s16 mMaxTiredNeckTurnDown;
+ /* 0x0C */ s16 mSensesLingerTime; // ?
+ /* 0x0E */ s16 mLightDropR;
+ /* 0x10 */ s16 mLightDropG;
+ /* 0x12 */ s16 mLightDropB;
+ /* 0x14 */ f32 mSwampInputRate; // ?
+}; // Size: 0x18
+
+class daAlinkHIO_wolf_c0 {
+public:
+ static daAlinkHIO_wolf_c1 const m;
+};
+
+class daAlinkHIO_wlMove_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ s16 field_0x50;
+ /* 0x52 */ s16 field_0x52;
+ /* 0x54 */ s16 field_0x54;
+ /* 0x56 */ s16 field_0x56;
+ /* 0x58 */ s16 field_0x58;
+ /* 0x5A */ s16 field_0x5A;
+ /* 0x5C */ s16 field_0x5C;
+ /* 0x5E */ s16 field_0x5E;
+ /* 0x60 */ s16 field_0x60;
+ /* 0x64 */ f32 field_0x64;
+ /* 0x68 */ f32 field_0x68;
+ /* 0x6C */ f32 field_0x6C;
+ /* 0x70 */ f32 field_0x70;
+ /* 0x74 */ f32 field_0x74;
+ /* 0x78 */ f32 field_0x78;
+ /* 0x7C */ f32 field_0x7C;
+ /* 0x80 */ f32 field_0x80;
+ /* 0x84 */ f32 field_0x84;
+ /* 0x88 */ f32 field_0x88;
+ /* 0x8C */ f32 field_0x8C;
+ /* 0x90 */ f32 field_0x90;
+ /* 0x94 */ f32 field_0x94;
+ /* 0x98 */ f32 field_0x98;
+ /* 0x9C */ f32 field_0x9C;
+ /* 0xA0 */ f32 field_0xA0;
+ /* 0xA4 */ f32 field_0xA4;
+ /* 0xA8 */ f32 field_0xA8;
+ /* 0xAC */ f32 field_0xAC;
+ /* 0xB0 */ f32 field_0xB0;
+ /* 0xB4 */ f32 field_0xB4;
+ /* 0xB8 */ f32 field_0xB8;
+ /* 0xBC */ f32 field_0xBC;
+ /* 0xC0 */ f32 field_0xC0;
+ /* 0xC4 */ f32 field_0xC4;
+ /* 0xC8 */ f32 field_0xC8;
+ /* 0xCC */ f32 field_0xCC;
+ /* 0xD0 */ f32 field_0xD0;
+ /* 0xD4 */ f32 field_0xD4;
+ /* 0xD8 */ f32 field_0xD8;
+ /* 0xDC */ f32 field_0xDC;
+ /* 0xE0 */ f32 field_0xE0;
+ /* 0xE4 */ f32 field_0xE4;
+ /* 0xE8 */ f32 field_0xE8;
+ /* 0xEC */ f32 field_0xEC;
+ /* 0xF0 */ f32 field_0xF0;
+ /* 0xF4 */ f32 field_0xF4;
+ /* 0xF8 */ f32 field_0xF8;
+ /* 0xFC */ f32 field_0xFC;
+}; // Size: 0x100
+
+class daAlinkHIO_wlMove_c0 {
+public:
+ static daAlinkHIO_wlMove_c1 const m;
+};
+
+class daAlinkHIO_wlMoveNoP_c1 {
+public:
+ /* 0x00 */ s16 field_0x0;
+ /* 0x02 */ s16 field_0x2;
+ /* 0x04 */ s16 field_0x4;
+ /* 0x08 */ f32 field_0x8;
+ /* 0x0C */ f32 field_0xC;
+ /* 0x10 */ f32 field_0x10;
+ /* 0x14 */ f32 field_0x14;
+ /* 0x18 */ f32 field_0x18;
+ /* 0x1C */ f32 field_0x1C;
+ /* 0x20 */ f32 field_0x20;
+ /* 0x24 */ f32 field_0x24;
+ /* 0x28 */ f32 field_0x28;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+ /* 0x38 */ f32 field_0x38;
+ /* 0x3C */ f32 field_0x3C;
+ /* 0x40 */ f32 field_0x40;
+ /* 0x44 */ f32 field_0x44;
+}; // Size: 0x48
+
+class daAlinkHIO_wlMoveNoP_c0 {
+public:
+ static daAlinkHIO_wlMoveNoP_c1 const m;
+};
+
+class daAlinkHIO_wlAtnMove_c1 {
+public:
+ /* 0x00 */ s16 field_0x0;
+ /* 0x02 */ s16 field_0x2;
+ /* 0x04 */ s16 field_0x4;
+ /* 0x08 */ f32 field_0x8;
+ /* 0x0C */ f32 field_0xC;
+ /* 0x10 */ f32 field_0x10;
+ /* 0x14 */ f32 field_0x14;
+ /* 0x18 */ f32 field_0x18;
+ /* 0x1C */ f32 field_0x1C;
+ /* 0x20 */ f32 field_0x20;
+ /* 0x24 */ f32 field_0x24;
+ /* 0x28 */ f32 field_0x28;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+}; // Size: 0x38
+
+class daAlinkHIO_wlAtnMove_c0 {
+public:
+ static daAlinkHIO_wlAtnMove_c1 const m;
+};
+
class daAlinkHIO_wlAutoJump_c1 {
public:
/* 0x00 */ daAlinkHIO_anm_c field_0x00;
@@ -2901,38 +3559,1060 @@ public:
static daAlinkHIO_wlAutoJump_c1 const m;
};
-class daHorse_c {
+class daAlinkHIO_wlSlide_c1 {
public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ s16 field_0x50;
+ /* 0x52 */ s16 field_0x52;
+ /* 0x54 */ f32 field_0x54;
+ /* 0x58 */ f32 field_0x58;
+ /* 0x5C */ f32 field_0x5C;
+ /* 0x60 */ f32 field_0x60;
+ /* 0x64 */ f32 field_0x64;
+ /* 0x68 */ f32 field_0x68;
+ /* 0x6C */ f32 field_0x6C;
+ /* 0x70 */ f32 field_0x70;
+ /* 0x74 */ f32 field_0x74;
+ /* 0x78 */ f32 field_0x78;
+}; // Size: 0x7C
+
+class daAlinkHIO_wlSlide_c0 {
+public:
+ static daAlinkHIO_wlSlide_c1 const m;
+};
+
+class daAlinkHIO_wlSideStep_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ f32 field_0x50;
+ /* 0x54 */ f32 field_0x54;
+ /* 0x58 */ f32 field_0x58;
+ /* 0x5C */ f32 field_0x5C;
+ /* 0x60 */ f32 field_0x60;
+ /* 0x64 */ f32 field_0x64;
+}; // Size: 0x68
+
+class daAlinkHIO_wlSideStep_c0 {
+public:
+ static daAlinkHIO_wlSideStep_c1 const m;
+};
+
+class daAlinkHIO_wlBackJump_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ f32 field_0x28;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+}; // Size: 0x38
+
+class daAlinkHIO_wlBackJump_c0 {
+public:
+ static daAlinkHIO_wlBackJump_c1 const m;
+};
+
+class daAlinkHIO_wlRope_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ s16 field_0x14;
+ /* 0x16 */ s16 field_0x16;
+ /* 0x18 */ f32 field_0x18;
+ /* 0x1C */ f32 field_0x1C;
+ /* 0x20 */ f32 field_0x20;
+ /* 0x24 */ f32 field_0x24;
+ /* 0x28 */ f32 field_0x28;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+}; // Size: 0x38
+
+class daAlinkHIO_wlRope_c0 {
+public:
+ static daAlinkHIO_wlRope_c1 const m;
+};
+
+class daAlinkHIO_wlPush_c1 {
+public:
+ /* 0x00 */ f32 field_0x0;
+ /* 0x04 */ f32 field_0x4;
+ /* 0x08 */ f32 field_0x8;
+ /* 0x0C */ f32 field_0xC;
+ /* 0x10 */ f32 field_0x10;
+}; // Size: 0x14
+
+class daAlinkHIO_wlPush_c0 {
+public:
+ static daAlinkHIO_wlPush_c1 const m;
+};
+
+class daAlinkHIO_wlPoint_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ daAlinkHIO_anm_c field_0x50;
+ /* 0x64 */ f32 field_0x64;
+ /* 0x68 */ f32 field_0x68;
+ /* 0x6C */ f32 field_0x6C;
+ /* 0x70 */ f32 field_0x70;
+ /* 0x74 */ f32 field_0x74;
+ /* 0x78 */ f32 field_0x78;
+}; // Size: 0x7C
+
+class daAlinkHIO_wlPoint_c0 {
+public:
+ static daAlinkHIO_wlPoint_c1 const m;
+};
+
+class daAlinkHIO_wlWallHang_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ daAlinkHIO_anm_c field_0x50;
+ /* 0x64 */ daAlinkHIO_anm_c field_0x64;
+ /* 0x78 */ f32 field_0x78;
+ /* 0x7C */ f32 field_0x7C;
+ /* 0x80 */ f32 field_0x80;
+ /* 0x84 */ f32 field_0x84;
+ /* 0x88 */ f32 field_0x88;
+ /* 0x8C */ f32 field_0x8C;
+ /* 0x90 */ f32 field_0x90;
+ /* 0x94 */ f32 field_0x94;
+ /* 0x98 */ f32 field_0x98;
+}; // Size: 0x9C
+
+class daAlinkHIO_wlWallHang_c0 {
+public:
+ static daAlinkHIO_wlWallHang_c1 const m;
+};
+
+class daAlinkHIO_wlSwim_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ s16 field_0x3C;
+ /* 0x3E */ s16 field_0x3E;
+ /* 0x40 */ s16 field_0x40;
+ /* 0x42 */ s16 field_0x42;
+ /* 0x44 */ s16 field_0x44;
+ /* 0x46 */ s16 field_0x46;
+ /* 0x48 */ f32 field_0x48;
+ /* 0x4C */ f32 field_0x4C;
+ /* 0x50 */ f32 field_0x50;
+ /* 0x54 */ f32 field_0x54;
+ /* 0x58 */ f32 field_0x58;
+ /* 0x5C */ f32 field_0x5C;
+ /* 0x60 */ f32 field_0x60;
+ /* 0x64 */ f32 field_0x64;
+ /* 0x68 */ f32 field_0x68;
+ /* 0x6C */ f32 field_0x6C;
+ /* 0x70 */ f32 field_0x70;
+ /* 0x74 */ f32 field_0x74;
+ /* 0x78 */ f32 field_0x78;
+ /* 0x7C */ f32 field_0x7C;
+ /* 0x80 */ f32 field_0x80;
+ /* 0x84 */ f32 field_0x84;
+ /* 0x88 */ f32 field_0x88;
+ /* 0x8C */ f32 field_0x8C;
+ /* 0x90 */ f32 field_0x90;
+ /* 0x94 */ f32 field_0x94;
+ /* 0x98 */ f32 field_0x98;
+ /* 0x9C */ f32 field_0x9C;
+ /* 0xA0 */ f32 field_0xA0;
+ /* 0xA4 */ f32 field_0xA4;
+}; // Size: 0xA8
+
+class daAlinkHIO_wlSwim_c0 {
+public:
+ static daAlinkHIO_wlSwim_c1 const m;
+};
+
+class daAlinkHIO_wlAttack_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mLandAnm;
+ /* 0x14 */ s16 mUnkTime;
+ /* 0x16 */ s16 mComboDuration;
+ /* 0x18 */ f32 mFallHeight;
+ /* 0x1C */ f32 mFallInterpolation;
+ /* 0x20 */ f32 mReadyInterpolation;
+ /* 0x24 */ f32 mAttackRange;
+ /* 0x28 */ f32 mJumpBackSpeedH;
+ /* 0x2C */ f32 mJumpBackSpeedV;
+ /* 0x30 */ f32 mJumpAttackSpeedV;
+ /* 0x34 */ f32 mJumpAttackSpeedH;
+}; // Size: 0x38
+
+class daAlinkHIO_wlAttack_c0 {
+public:
+ static daAlinkHIO_wlAttack_c1 const m;
+};
+
+class daAlinkHIO_wlHowl_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ f32 field_0x50;
+ /* 0x54 */ f32 field_0x54;
+ /* 0x58 */ f32 field_0x58;
+ /* 0x5C */ f32 field_0x5C;
+}; // Size: 0x60
+
+class daAlinkHIO_wlHowl_c0 {
+public:
+ static daAlinkHIO_wlHowl_c1 const m;
+};
+
+class daAlinkHIO_wlGrab_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ daAlinkHIO_anm_c field_0x50;
+}; // Size: 0x64
+
+class daAlinkHIO_wlGrab_c0 {
+public:
+ static daAlinkHIO_wlGrab_c1 const m;
+};
+
+class daAlinkHIO_wlChain_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ s16 field_0x3C;
+ /* 0x3E */ s16 field_0x3E;
+ /* 0x40 */ f32 field_0x40;
+ /* 0x44 */ f32 field_0x44;
+ /* 0x48 */ f32 field_0x48;
+ /* 0x4C */ f32 field_0x4C;
+ /* 0x50 */ f32 field_0x50;
+ /* 0x54 */ f32 field_0x54;
+ /* 0x58 */ f32 field_0x58;
+}; // Size: 0x5C
+
+class daAlinkHIO_wlChain_c0 {
+public:
+ static daAlinkHIO_wlChain_c1 const m;
+};
+
+class daAlinkHIO_wlBall_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ s16 field_0x28;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+}; // Size: 0x38
+
+class daAlinkHIO_wlBall_c0 {
+public:
+ static daAlinkHIO_wlBall_c1 const m;
+};
+
+class daAlinkHIO_wlLie_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ s16 field_0x28;
+ /* 0x2A */ s16 field_0x2A;
+ /* 0x2C */ s16 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+ /* 0x38 */ f32 field_0x38;
+ /* 0x3C */ f32 field_0x3C;
+ /* 0x40 */ f32 field_0x40;
+ /* 0x44 */ f32 field_0x44;
+ /* 0x48 */ f32 field_0x48;
+}; // Size: 0x4C
+
+class daAlinkHIO_wlLie_c0 {
+public:
+ static daAlinkHIO_wlLie_c1 const m;
+};
+
+class daAlinkHIO_wlLight_c1 {
+public:
+ /* 0x00 */ s16 field_0x0;
+ /* 0x02 */ s16 field_0x2;
+ /* 0x04 */ s16 field_0x4;
+ /* 0x06 */ s16 field_0x6;
+ /* 0x08 */ s16 field_0x8;
+ /* 0x0A */ s16 field_0xA;
+ /* 0x0C */ f32 field_0xC;
+ /* 0x10 */ f32 field_0x10;
+ /* 0x14 */ f32 field_0x14;
+ /* 0x18 */ f32 field_0x18;
+}; // Size: 0x1C
+
+class daAlinkHIO_wlLight_c0 {
+public:
+ static daAlinkHIO_wlLight_c1 const m;
+};
+
+class daAlinkHIO_wlAtWaTl_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ s16 field_0x14;
+ /* 0x16 */ s16 field_0x16;
+ /* 0x18 */ f32 field_0x18;
+ /* 0x1C */ f32 field_0x1C;
+ /* 0x20 */ f32 field_0x20;
+ /* 0x24 */ f32 field_0x24;
+ /* 0x28 */ f32 field_0x28;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+ /* 0x38 */ f32 field_0x38;
+}; // Size: 0x3C
+
+class daAlinkHIO_wlAtWaTl_c0 {
+public:
+ static daAlinkHIO_wlAtWaTl_c1 const m;
+};
+
+class daAlinkHIO_wlAtWaSc_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ s16 field_0x14;
+ /* 0x16 */ s16 field_0x16;
+ /* 0x18 */ f32 field_0x18;
+ /* 0x1C */ f32 field_0x1C;
+ /* 0x20 */ f32 field_0x20;
+ /* 0x24 */ f32 field_0x24;
+ /* 0x28 */ f32 field_0x28;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+ /* 0x38 */ f32 field_0x38;
+}; // Size: 0x3C
+
+class daAlinkHIO_wlAtWaSc_c0 {
+public:
+ static daAlinkHIO_wlAtWaSc_c1 const m;
+};
+
+class daAlinkHIO_wlAtWaLr_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ s16 field_0x14;
+ /* 0x16 */ s16 field_0x16;
+ /* 0x18 */ f32 field_0x18;
+ /* 0x1C */ f32 field_0x1C;
+ /* 0x20 */ f32 field_0x20;
+ /* 0x24 */ f32 field_0x24;
+ /* 0x28 */ f32 field_0x28;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+ /* 0x38 */ f32 field_0x38;
+}; // Size: 0x3C
+
+class daAlinkHIO_wlAtWaLr_c0 {
+public:
+ static daAlinkHIO_wlAtWaLr_c1 const m;
+};
+
+class daAlinkHIO_wlAtRoll_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ f32 field_0x14;
+ /* 0x18 */ f32 field_0x18;
+ /* 0x1C */ f32 field_0x1C;
+}; // Size: 0x20
+
+class daAlinkHIO_wlAtRoll_c0 {
+public:
+ static daAlinkHIO_wlAtRoll_c1 const m;
+};
+
+class daAlinkHIO_wlAtNjump_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ f32 field_0x14;
+ /* 0x18 */ f32 field_0x18;
+ /* 0x1C */ f32 field_0x1C;
+ /* 0x20 */ f32 field_0x20;
+ /* 0x24 */ f32 field_0x24;
+ /* 0x28 */ f32 field_0x28;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+ /* 0x38 */ f32 field_0x38;
+}; // Size: 0x3C
+
+class daAlinkHIO_wlAtNjump_c0 {
+public:
+ static daAlinkHIO_wlAtNjump_c1 const m;
+};
+
+class daAlinkHIO_wlAtLock_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ f32 field_0x3C;
+ /* 0x40 */ f32 field_0x40;
+ /* 0x44 */ f32 field_0x44;
+ /* 0x48 */ f32 field_0x48;
+ /* 0x4C */ f32 field_0x4C;
+ /* 0x50 */ f32 field_0x50;
+}; // Size: 0x54
+
+class daAlinkHIO_wlAtLock_c0 {
+public:
+ static daAlinkHIO_wlAtLock_c1 const m;
+};
+
+class daAlinkHIO_wlAtLand_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ f32 field_0x3C;
+}; // Size: 0x40
+
+class daAlinkHIO_wlAtLand_c0 {
+public:
+ static daAlinkHIO_wlAtLand_c1 const m;
+};
+
+class daAlinkHIO_wlDamage_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ f32 field_0x28;
+}; // Size: 0x2C
+
+class daAlinkHIO_wlDamage_c0 {
+public:
+ static daAlinkHIO_wlDamage_c1 const m;
+};
+
+class daAlinkHIO_wlDamNormal_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ f32 field_0x50;
+ /* 0x54 */ f32 field_0x54;
+ /* 0x58 */ f32 field_0x58;
+ /* 0x5C */ f32 field_0x5C;
+}; // Size: 0x60
+
+class daAlinkHIO_wlDamNormal_c0 {
+public:
+ static daAlinkHIO_wlDamNormal_c1 const m;
+};
+
+class daAlinkHIO_wlDamLarge_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ s16 field_0x50;
+ /* 0x54 */ f32 field_0x54;
+ /* 0x58 */ f32 field_0x58;
+ /* 0x5C */ f32 field_0x5C;
+ /* 0x60 */ f32 field_0x60;
+ /* 0x64 */ f32 field_0x64;
+ /* 0x68 */ f32 field_0x68;
+}; // Size: 0x6C
+
+class daAlinkHIO_wlDamLarge_c0 {
+public:
+ static daAlinkHIO_wlDamLarge_c1 const m;
+};
+
+class daAlinkHIO_wlDamHuge_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ s16 field_0x50;
+ /* 0x54 */ f32 field_0x54;
+ /* 0x58 */ f32 field_0x58;
+ /* 0x5C */ f32 field_0x5C;
+ /* 0x60 */ f32 field_0x60;
+ /* 0x64 */ f32 field_0x64;
+ /* 0x68 */ f32 field_0x68;
+}; // Size: 0x6C
+
+class daAlinkHIO_wlDamHuge_c0 {
+public:
+ static daAlinkHIO_wlDamHuge_c1 const m;
+};
+
+class daAlinkHIO_wlDamFall_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ s16 field_0x28;
+ /* 0x2A */ s16 field_0x2A;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+ /* 0x38 */ f32 field_0x38;
+ /* 0x3C */ f32 field_0x3C;
+}; // Size: 0x40
+
+class daAlinkHIO_wlDamFall_c0 {
+public:
+ static daAlinkHIO_wlDamFall_c1 const m;
+};
+
+class daAlinkHIO_wlDamCaught_c1 {
+public:
+ /* 0x00 */ s16 field_0x0;
+ /* 0x02 */ s16 field_0x2;
+ /* 0x04 */ f32 field_0x4;
+ /* 0x08 */ f32 field_0x8;
+ /* 0x0C */ f32 field_0xC;
+}; // Size: 0x10
+
+class daAlinkHIO_wlDamCaught_c0 {
+public:
+ static daAlinkHIO_wlDamCaught_c1 const m;
+};
+
+class daAlinkHIO_zwLight_c1 { // may be wrong
+public:
+ /* 0x00 */ s16 field_0x0;
+ /* 0x02 */ s16 field_0x2;
+ /* 0x04 */ s16 field_0x4;
+ /* 0x06 */ s16 field_0x6;
+ /* 0x08 */ s16 field_0x8;
+ /* 0x0A */ s16 field_0xA;
+ /* 0x0C */ f32 field_0xC;
+ /* 0x10 */ f32 field_0x10;
+ /* 0x14 */ f32 field_0x14;
+ /* 0x18 */ f32 field_0x18;
+}; // Size: 0x1C
+
+class daAlinkHIO_zwLight_c0 {
+public:
+ static daAlinkHIO_zwLight_c1 const m;
+};
+
+class daAlinkHIO_board_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ f32 field_0x50;
+ /* 0x54 */ f32 field_0x54;
+ /* 0x58 */ f32 field_0x58;
+ /* 0x5C */ f32 field_0x5C;
+ /* 0x60 */ f32 field_0x60;
+ /* 0x64 */ f32 field_0x64;
+ /* 0x68 */ f32 field_0x68;
+ /* 0x6C */ f32 field_0x6C;
+ /* 0x70 */ f32 field_0x70;
+ /* 0x74 */ f32 field_0x74;
+ /* 0x78 */ f32 field_0x78;
+ /* 0x7C */ f32 field_0x7C;
+ /* 0x80 */ f32 field_0x80;
+ /* 0x84 */ f32 field_0x84;
+ /* 0x88 */ f32 field_0x88;
+ /* 0x8C */ f32 field_0x8C;
+ /* 0x90 */ f32 field_0x90;
+ /* 0x94 */ f32 field_0x94;
+ /* 0x98 */ f32 field_0x98;
+}; // Size: 0x9C
+
+class daAlinkHIO_board_c0 {
+public:
+ static daAlinkHIO_board_c1 const m;
+};
+
+class daAlinkHIO_item_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mOneHandEquipAnm;
+ /* 0x14 */ daAlinkHIO_anm_c mTwoHandEquipAnm;
+ /* 0x28 */ s16 mItemFPTransitionTimer;
+ /* 0x2A */ s16 mItemFPMaxUnk;
+ /* 0x2C */ s16 mItemFPUpMaxUnk;
+ /* 0x2E */ s16 mWiiItemFPDownMaxUnk;
+ /* 0x30 */ s16 mWiiItemFPUpMaxUnk;
+ /* 0x34 */ f32 mOneHandReleaseAnmSpeed;
+ /* 0x38 */ f32 mTwoHandReleaseAnmSpeed;
+}; // Size: 0x3C
+
+class daAlinkHIO_item_c0 {
+public:
+ static daAlinkHIO_item_c1 const m;
+};
+
+class daAlinkHIO_bottle_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ daAlinkHIO_anm_c field_0x3C;
+ /* 0x50 */ daAlinkHIO_anm_c field_0x50;
+ /* 0x64 */ daAlinkHIO_anm_c field_0x64;
+ /* 0x78 */ daAlinkHIO_anm_c field_0x78;
+ /* 0x8C */ daAlinkHIO_anm_c field_0x8C;
+ /* 0xA0 */ daAlinkHIO_anm_c field_0xA0;
+}; // Size: 0xB4
+
+class daAlinkHIO_bottle_c0 {
+public:
+ static daAlinkHIO_bottle_c1 const m;
+};
+
+class daAlinkHIO_boom_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mThrowAnm;
+ /* 0x14 */ daAlinkHIO_anm_c mCatchAnm;
+ /* 0x28 */ s16 field_0x28;
+ /* 0x2A */ s16 mBgThroughTime;
+ /* 0x2C */ f32 field_0x2c;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+ /* 0x38 */ f32 field_0x38;
+ /* 0x3C */ f32 field_0x3c;
+ /* 0x40 */ f32 field_0x40;
+ /* 0x44 */ f32 field_0x44;
+ /* 0x48 */ f32 mCatchSpeed;
+}; // Size: 0x4c
+
+class daAlinkHIO_boom_c0 {
+public:
+ static daAlinkHIO_boom_c1 const m;
+};
+
+class daAlinkHIO_bow_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c val0;
+ /* 0x14 */ daAlinkHIO_anm_c val5;
+ /* 0x28 */ s16 vala;
+ /* 0x2A */ s16 valb;
+ /* 0x2C */ s16 valc;
+ /* 0x30 */ f32 vale;
+ /* 0x34 */ f32 valf;
+ /* 0x38 */ f32 val10;
+ /* 0x3C */ f32 val11;
+ /* 0x40 */ f32 val12;
+ /* 0x44 */ f32 val13;
+ /* 0x48 */ f32 val14;
+ /* 0x4C */ f32 val15;
+ /* 0x50 */ f32 val16;
+ /* 0x54 */ f32 val17;
+ /* 0x58 */ f32 val18;
+ /* 0x5C */ f32 val19;
+ /* 0x60 */ f32 val1a;
+ /* 0x64 */ f32 val1b;
+ /* 0x68 */ f32 val1c;
+ /* 0x6C */ f32 val1d;
+}; // Size: 0x70
+
+class daAlinkHIO_bow_c0 {
+public:
+ static daAlinkHIO_bow_c1 const m;
+};
+
+class daAlinkHIO_copyRod_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mSwingAnm;
+ /* 0x14 */ daAlinkHIO_anm_c mBigSwingAnm;
+ /* 0x28 */ f32 mBallSpeed;
+ /* 0x2c */ f32 mBallMaxDistance;
+ /* 0x30 */ f32 mBallReturnSpeed;
+ /* 0x34 */ f32 mBossBallMaxDistance;
+}; // Size: 0x38
+
+class daAlinkHIO_copyRod_c0 {
+public:
+ static daAlinkHIO_copyRod_c1 const m;
+};
+
+class daAlinkHIO_bomb_c1 {
+public:
+ /* 0x00 */ s16 mExplodeTime;
+ /* 0x02 */ s16 mEnemyBombColorR;
+ /* 0x04 */ s16 mBombInsectLimitAngle;
+ /* 0x08 */ f32 mGravity;
+ /* 0x0C */ f32 mMaxFallSpeed;
+ /* 0x10 */ f32 mBoundRate;
+ /* 0x14 */ f32 mStopSpeedY;
+ /* 0x18 */ f32 mMaxSpeedY;
+ /* 0x1C */ f32 mEffScale;
+ /* 0x20 */ f32 mAtRadius;
+ /* 0x24 */ f32 mPokeBombTrackRate;
+ /* 0x28 */ f32 mWaterGravity;
+ /* 0x2C */ f32 mWaterMaxFallSpeed;
+ /* 0x30 */ f32 mThrowSpeedH;
+ /* 0x34 */ f32 mThrowSpeedV;
+ /* 0x38 */ f32 mWaterThrowSpeedH;
+ /* 0x3C */ f32 mWaterThrowSpeedV;
+ /* 0x40 */ f32 mWolfThrowSpeedH;
+ /* 0x44 */ f32 mWolfThrowSpeedV;
+ /* 0x48 */ f32 mExplodeWaterEffectLimit;
+}; // Size: 0x4C
+
+class daAlinkHIO_bomb_c0 {
+public:
+ static daAlinkHIO_bomb_c1 const m;
+};
+
+class daAlinkHIO_magneBoots_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c mEquipAnm;
+ /* 0x14 */ f32 mInputFactor;
+ /* 0x18 */ f32 mFeetPositionRatio;
+ /* 0x1C */ f32 mWalkAnmSpeedMax;
+ /* 0x20 */ f32 mWalkAnmSpeedMin;
+ /* 0x24 */ f32 mWaterInputFactor;
+ /* 0x28 */ f32 mWaterStartWalkAnmRate;
+ /* 0x2C */ f32 mWaterWalkAnmRate;
+ /* 0x30 */ f32 mMaxMagneFlySpeed;
+ /* 0x34 */ f32 mMagneFlyAccelRate;
+ /* 0x38 */ f32 mWaterVelocityY;
+ /* 0x3C */ f32 mWaterVelocityX;
+ /* 0x40 */ f32 mWaterVelRateSword;
+ /* 0x44 */ f32 mZoraWaterInputFactor;
+ /* 0x48 */ f32 mZoraWaterAnmSpeed;
+}; // Size: 0x4C
+
+class daAlinkHIO_magneBoots_c0 {
+public:
+ static daAlinkHIO_magneBoots_c1 const m;
+};
+
+class daAlinkHIO_spinner_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ s16 field_0x14;
+ /* 0x16 */ s16 field_0x16;
+ /* 0x18 */ s16 field_0x18;
+ /* 0x1A */ s16 field_0x1A;
+ /* 0x1C */ s16 field_0x1C;
+ /* 0x20 */ f32 field_0x20;
+ /* 0x24 */ f32 field_0x24;
+ /* 0x28 */ f32 field_0x28;
+ /* 0x2C */ f32 field_0x2C;
+ /* 0x30 */ f32 field_0x30;
+ /* 0x34 */ f32 field_0x34;
+ /* 0x38 */ f32 field_0x38;
+ /* 0x3C */ f32 field_0x3C;
+}; // Size: 0x40
+
+class daAlinkHIO_spinner_c0 {
+public:
+ static daAlinkHIO_spinner_c1 const m;
+};
+
+class daAlinkHIO_hookshot_c1 {
+public:
+ /* 0x00 */ daAlinkHIO_anm_c field_0x0;
+ /* 0x14 */ daAlinkHIO_anm_c field_0x14;
+ /* 0x28 */ daAlinkHIO_anm_c field_0x28;
+ /* 0x3C */ f32 field_0x3C;
+ /* 0x40 */ f32 field_0x40;
+ /* 0x44 */ f32 field_0x44;
+ /* 0x48 */ f32 field_0x48;
+ /* 0x4C */ f32 field_0x4C;
+ /* 0x50 */ f32 field_0x50;
+ /* 0x54 */ f32 field_0x54;
+ /* 0x58 */ f32 field_0x58;
+ /* 0x5C */ f32 field_0x5C;
+ /* 0x60 */ f32 field_0x60;
+ /* 0x64 */ f32 field_0x64;
+ /* 0x68 */ f32 field_0x68;
+ /* 0x6C */ f32 field_0x6C;
+}; // Size: 0x70
+
+class daAlinkHIO_hookshot_c0 {
+public:
+ static daAlinkHIO_hookshot_c1 const m;
+};
+
+class daHorseRein_c {
+private:
+ /* 0x00 */ cXyz* field_0x0[2];
+ /* 0x08 */ int field_0x8[2];
+ /* 0x10 */ f32 field_0x10;
+ /* 0x14 */ f32 field_0x14;
+ /* 0x18 */ f32 field_0x18;
+ /* 0x1C */ cXyz field_0x1c;
+}; // Size: 0x28
+
+class daHorseFootData_c {
+private:
+ /* 0x0 */ u8 field_0x0[0xE4];
+}; // Size: 0xE4
+
+class daHorse_c : public fopAc_ac_c {
+public:
+ enum daHorse_ERFLG0 {
+ /* 0x010 */ MOVE_ACCEPT = 0x10,
+ /* 0x080 */ RIDE_RUN_FLG = 0x80,
+ /* 0x100 */ CUT_TURN_CANCEL = 0x100,
+ };
+
+ enum daHorse_RFLG0 {
+ /* 0x02 */ ENEMY_SEARCH = 2,
+ /* 0x08 */ LASH_DASH_START = 8,
+ /* 0x10 */ TURN_STAND = 0x10,
+ /* 0x40 */ TURN_STAND_CAMERA = 0x40,
+ };
+
+ enum daHorse_FLG0 {
+ /* 0x00000020 */ RODEO_LEFT = 0x20,
+ /* 0x00000040 */ RIDE_START_FLG = 0x40,
+ /* 0x00010000 */ PLAYER_BACK_RIDE_LASH = 0x10000,
+ /* 0x20000000 */ TURN_CANCEL_KEEP = 0x20000000,
+ /* 0x80000000 */ RODEO_MODE = 0x80000000
+ };
+
fopAc_ac_c* getZeldaActor();
+ bool checkNoBombProc() const { return field_0x16b4 == 0 || field_0x16b4 == 1; }
+ bool checkResetStateFlg0(daHorse_RFLG0 flag) { return mResetStateFlg0 & flag; }
+ bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) { return mEndResetStateFlg0 & flag; }
+ bool checkStateFlg0(daHorse_FLG0 flag) { return mStateFlg0 & flag; }
+
private:
- /* 0x0000 */ fopAc_ac_c mActor;
- /* 0x0568 */ u8 field_0x568[0xCEC];
+ /* 0x0568 */ u8 field_0x568[8];
+ /* 0x0570 */ J3DModel* field_0x570;
+ /* 0x0574 */ void* field_0x574;
+ /* 0x0578 */ J3DFrameCtrl field_0x578;
+ /* 0x058C */ int field_0x58c;
+ /* 0x0590 */ u8 field_0x590[4];
+ /* 0x0594 */ mDoExt_AnmRatioPack field_0x594[3];
+ /* 0x05AC */ void* field_0x5ac;
+ /* 0x05B0 */ daPy_frameCtrl_c field_0x5b0[3];
+ /* 0x05F8 */ u8 field_0x5f8[4];
+ /* 0x05FC */ dBgS_AcchCir field_0x5fc[3];
+ /* 0x06BC */ dBgS_Acch field_0x6bc;
+ /* 0x0894 */ dCcD_Stts field_0x894;
+ /* 0x08D0 */ dBgS_HorseLinChk field_0x8d0;
+ /* 0x0940 */ dCcD_Cyl field_0x940[3];
+ /* 0x0CF4 */ dCcD_Cyl field_0xcf4;
+ /* 0x0E30 */ dCcD_Cyl field_0xe30;
+ /* 0x0F6C */ dCcD_Sph field_0xf6c;
+ /* 0x10A4 */ Z2CreatureRide field_0x10a4;
+ /* 0x1140 */ u8 field_0x1140[0x10];
+ /* 0x1150 */ daHorseRein_c field_0x1150[3];
+ /* 0x11C8 */ u8 field_0x11c8[0x40];
+ /* 0x1208 */ dMsgFlow_c field_0x1208;
/* 0x1254 */ daPy_actorKeep_c mZeldaActorKeep;
+ /* 0x125C */ u8 field_0x125c[0xC8];
+ /* 0x1324 */ daHorseFootData_c mFootData[4];
+ /* 0x16B4 */ u8 field_0x16b4;
+ /* 0x16B5 */ u8 field_0x16b5[3];
+ /* 0x16B8 */ u8 field_0x16b8;
+ /* 0x16B9 */ u8 field_0x16b9[2];
+ /* 0x16BB */ u8 mRodeoPointCnt;
+ /* 0x16BC */ u8 field_0x16bc[0x36];
+ /* 0x16F2 */ s16 mAimNeckAngleY;
+ /* 0x16F4 */ u8 field_0x16f4[0xA];
+ /* 0x16FC */ s16 mDemoMoveAngle;
+ /* 0x16FE */ u8 field_0x16fe[4];
+ /* 0x1702 */ s16 field_0x1702;
+ /* 0x1704 */ u8 field_0x1704[2];
+ /* 0x1706 */ s16 mCowHitAngle;
+ /* 0x1708 */ s16 mCowHit;
+ /* 0x170A */ u8 field_0x170a[0x1E];
+ /* 0x1728 */ int field_0x1728;
+ /* 0x172C */ u8 field_0x172c[0x14];
+ /* 0x1740 */ u32 field_0x1740;
+ /* 0x1744 */ u32 mStateFlg0;
+ /* 0x1748 */ u32 mResetStateFlg0;
+ /* 0x174C */ u32 mEndResetStateFlg0;
+ /* 0x1750 */ f32 mMorfFrame;
+ /* 0x1754 */ u8 field_0x1754[0x14];
+ /* 0x1768 */ f32 field_0x1768;
+ /* 0x176C */ f32 field_0x176c;
+ /* 0x1770 */ f32 field_0x1770;
+ /* 0x1774 */ u8 field_0x1774[0x14];
+ /* 0x1788 */ f32 mDemoStickR;
+ /* 0x178C */ f32 mNormalMaxSpeedF;
+ /* 0x1790 */ f32 mLashMaxSpeedF;
+ /* 0x1794 */ u8 field_0x1794[0x30];
+ /* 0x17C4 */ cXyz mDemoPos0;
};
-class daMidna_c {
+class mDoExt_morf_c;
+
+class daMidna_c : public fopAc_ac_c {
public:
enum daMidna_ERFLG0 {
- NoServiceWait = 128,
- ForcePanic = 8,
+ NO_SERVICE_WAIT = 128,
+ FORCE_PANIC = 8,
};
- enum daMidna_FLG1 { ForceNormalColor = 8, ForceTiredColor = 4 };
- void onForcePanic(void);
- u32 checkForceNormalColor(void) const;
- u32 checkForceTiredColor(void) const;
- bool checkMidnaTired(void);
- void onNoServiceWait(void);
+ enum daMidna_FLG1 { FORCE_NORMAL_COLOR = 8, FORCE_TIRED_COLOR = 4 };
+
+ enum daMidna_ANM {};
+
+ void onForcePanic();
+ u32 checkForceNormalColor() const;
+ u32 checkForceTiredColor() const;
+ bool checkMidnaTired();
+ void onNoServiceWait();
+ /* 804BC3E0 */ void modelCallBack(int);
+ /* 804BC5C4 */ void changeUpperBck();
+ /* 804BC614 */ void changeFaceBck();
+ /* 804BC670 */ void baseModelCallBack(int);
+ /* 804BC740 */ void initInvModel(u16, J3DModel**, mDoExt_invisibleModel*, u32);
+ /* 804BC7D4 */ void initDemoModel(J3DModel**, char const*, u32);
+ /* 804BC868 */ void createHeap();
+ /* 804BD274 */ void create();
+ /* 804BD93C */ void allAnimePlay();
+ /* 804BDE04 */ void setMatrix();
+ /* 804BE470 */ void setBodyPartMatrix();
+ /* 804BED1C */ void setRoomInfo();
+ /* 804BEDB8 */ void setBodyPartPos();
+ /* 804BEFA0 */ void checkAppear();
+ /* 804BF070 */ void checkMidnaPosState();
+ /* 804BFF80 */ void setUpperAnime(u16, u16);
+ /* 804C0020 */ void setUpperAnimeAndSe(daMidna_c::daMidna_ANM);
+ /* 804C0094 */ void setFaceAnime(u16, u16);
+ /* 804C0134 */ void endHighModel();
+ /* 804C0238 */ void setDemoAnm();
+ /* 804C0BAC */ void setFaceBtp(u16, int);
+ /* 804C0C6C */ void setFaceBtk(u16, int);
+ /* 804C0D2C */ void setLeftHandShape(u16);
+ /* 804C0E18 */ void setRightHandShape(u16);
+ /* 804C0F04 */ void checkHairOnlyAnime(int) const;
+ /* 804C0F24 */ void setBckAnime(J3DAnmTransform*, int, f32);
+ /* 804C103C */ void setAnm();
+ /* 804C287C */ void getNeckAimAngle(cXyz const*, s16*, s16*, s16*, s16*);
+ /* 804C2A68 */ void clearEyeMove();
+ /* 804C2AB8 */ void setEyeMove(cXyz const*, s16, s16);
+ /* 804C2EBC */ void setNeckAngle();
+ /* 804C3168 */ void initHairAngle();
+ /* 804C3298 */ void setHairAngle();
+ /* 804C3F04 */ void setDemoData();
+ /* 804C4394 */ void setSimpleBrk(J3DModelData*, u16);
+ /* 804C4444 */ void setSimpleBtk(J3DModelData*, u16);
+ /* 804C44CC */ void initMidnaModel();
+ /* 804C49B8 */ void setMidnaNoDrawFlg();
+ /* 804C4AE8 */ void checkMetamorphoseEnableBase();
+ /* 804C4B68 */ void checkNoDrawState();
+ /* 804C4BC0 */ void setSound();
+ /* 804C4FDC */ void execute();
+ /* 804C5A08 */ void draw();
+ /* 804C61A4 */ ~daMidna_c();
void onEndResetStateFlg0(daMidna_ERFLG0 pFlg) { mEndResetStateFlg0 |= pFlg; }
u32 checkStateFlg1(daMidna_FLG1 pFlg) const { return mStateFlg1 & pFlg; }
+ static u8 const m_texDataTable[84];
+ static u8 const m_anmDataTable[636];
+
private:
- /* 0x0000 */ fopAc_ac_c mActor;
- /* 0x0568 */ u8 field_0x568[0x32C];
+ /* 0x0568 */ request_of_phase_process_class* field_0x568;
+ /* 0x056C */ u8 field_0x56c[4];
+ /* 0x0570 */ J3DModel* field_0x570;
+ /* 0x0574 */ J3DModel* field_0x574;
+ /* 0x0578 */ mDoExt_morf_c* field_0x578;
+ /* 0x057C */ mDoExt_McaMorfCallBack1_c* field_0x57c;
+ /* 0x0580 */ cXyz* field_0x580;
+ /* 0x0584 */ mDoExt_bckAnm field_0x584;
+ /* 0x05A0 */ mDoExt_bckAnm field_0x5a0;
+ /* 0x05BC */ u8 field_0x5bc[8];
+ /* 0x05C4 */ mDoExt_invisibleModel field_0x5c4;
+ /* 0x05CC */ mDoExt_invisibleModel field_0x5cc;
+ /* 0x05D4 */ mDoExt_invisibleModel field_0x5d4;
+ /* 0x05DC */ mDoExt_invisibleModel field_0x5dc;
+ /* 0x05E4 */ daPy_anmHeap_c field_0x5e4[3];
+ /* 0x0620 */ daPy_anmHeap_c field_0x620;
+ /* 0x0634 */ daPy_anmHeap_c field_0x634;
+ /* 0x0648 */ J3DAnmBase* field_0x648;
+ /* 0x064C */ J3DAnmBase* field_0x64c;
+ /* 0x0650 */ J3DAnmBase* field_0x650;
+ /* 0x0654 */ J3DAnmBase* field_0x654;
+ /* 0x0658 */ u8 field_0x658[0x10];
+ /* 0x0668 */ J3DAnmBase* field_0x668;
+ /* 0x066C */ J3DAnmBase* field_0x66c;
+ /* 0x0670 */ u8 field_0x670[4];
+ /* 0x0674 */ J3DModel* field_0x674;
+ /* 0x0678 */ u8 field_0x678[4];
+ /* 0x067C */ J3DModel* field_0x67c;
+ /* 0x0680 */ u8 field_0x680[4];
+ /* 0x0684 */ J3DModel* field_0x684;
+ /* 0x0688 */ J3DModel* field_0x688;
+ /* 0x068C */ J3DModel* field_0x68c;
+ /* 0x0690 */ J3DModel* field_0x690;
+ /* 0x0694 */ J3DModel* field_0x694;
+ /* 0x0698 */ J3DModel* field_0x698;
+ /* 0x069C */ u8 field_0x98c[0x10];
+ /* 0x06AC */ J3DModel* field_0x6ac;
+ /* 0x06B0 */ J3DModel* field_0x6b0;
+ /* 0x06B4 */ u8 field_0x6b4[4];
+ /* 0x06B8 */ mDoExt_bckAnm* field_0x6b8;
+ /* 0x06BC */ J3DDeformData* field_0x6bc;
+ /* 0x06C0 */ u8 field_0x6c0[4];
+ /* 0x06C4 */ J3DFrameCtrl* field_0x6c4;
+ /* 0x06C8 */ J3DModel* field_0x6c8;
+ /* 0x06CC */ mDoExt_bckAnm* field_0x6cc;
+ /* 0x06D0 */ J3DModel* field_0x6d0;
+ /* 0x06D4 */ mDoExt_bckAnm* field_0x6d4;
+ /* 0x06D8 */ J3DModel* field_0x6d8;
+ /* 0x06DC */ mDoExt_bckAnm* field_0x6dc;
+ /* 0x06E0 */ s16 field_0x6e0;
+ /* 0x06E2 */ s16 field_0x6e2;
+ /* 0x06E4 */ s16 field_0x6e4;
+ /* 0x06E6 */ s16 field_0x6e6;
+ /* 0x06E8 */ u8 field_0x6e8;
+ /* 0x06E9 */ u8 field_0x6e9;
+ /* 0x06EA */ u8 field_0x6ea;
+ /* 0x06EB */ u8 field_0x6eb;
+ /* 0x06EC */ u8 field_0x6ec;
+ /* 0x06ED */ u8 field_0x6ed;
+ /* 0x06EE */ u8 field_0x6ee;
+ /* 0x06EF */ u8 field_0x6ef;
+ /* 0x06F0 */ u8 field_0x6f0[8];
+ /* 0x06F8 */ void* field_0x6f8;
+ /* 0x06FC */ Z2Creature field_0x6fc;
+ /* 0x078C */ dMsgFlow_c field_0x78c;
+ /* 0x07D8 */ dBgS_LinkLinChk field_0x7d8;
+ /* 0x0848 */ u8 mMotionNum;
+ /* 0x0849 */ u8 mFaceNum;
+ /* 0x084A */ u8 field_0x84a[4];
+ /* 0x084E */ u8 field_0x84e;
+ /* 0x084F */ u8 mDemoType;
+ /* 0x0850 */ u8 field_0x850[0xA];
+ /* 0x085A */ s16 field_0x85a;
+ /* 0x085C */ u8 field_0x85c[0x22];
+ /* 0x087E */ s16 field_0x87e;
+ /* 0x0880 */ u8 field_0x880[0x10];
+ /* 0x0890 */ u32 mStateFlg0;
/* 0x0894 */ u32 mStateFlg1;
/* 0x0898 */ u32 mEndResetStateFlg0;
+ /* 0x089C */ u8 field_0x89c[0x24];
+ /* 0x08C0 */ u32 mDemoMode;
+ /* 0x08C4 */ u8 field_0x8c4[4];
+ /* 0x08C8 */ f32 field_0x8c8;
+ /* 0x08CC */ u8 field_0x8cc[0x14];
+ /* 0x08E0 */ cXyz field_0x8e0[5];
+ /* 0x091C */ cXyz field_0x91c[5];
+ /* 0x0958 */ u8 field_0x958[0xC];
+ /* 0x0964 */ cXyz field_0x964[5];
+ /* 0x09A0 */ u8 field_0x9a0[0x14];
+ /* 0x09C4 */ cXyz field_0x9c4;
};
#endif /* D_A_D_A_ALINK_H */ \ No newline at end of file
diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h
index 5807f9b45c..fa7b20ef7b 100644
--- a/include/d/a/d_a_player.h
+++ b/include/d/a/d_a_player.h
@@ -12,12 +12,15 @@
#include "f_op/f_op_actor.h"
class daPy_sightPacket_c : public dDlst_base_c {
+public:
/* 8015F1A0 */ virtual void draw();
/* 80140CDC */ virtual ~daPy_sightPacket_c();
/* 8015F2FC */ void setSight();
/* 8015F384 */ void setSightImage(ResTIMG*);
+ bool getDrawFlg() { return mDrawFlag; }
+
private:
/* 0x04 */ bool mDrawFlag;
/* 0x05 */ u8 field_0x5[3];
@@ -27,11 +30,18 @@ private:
/* 0x48 */ ResTIMG* field_0x48;
};
-struct daPy_boomerangMove_c {
+class daPy_boomerangMove_c {
+public:
/* 8015E5B0 */ void initOffset(cXyz const*);
/* 8015E654 */ void posMove(cXyz*, s16*, fopAc_ac_c*, s16);
/* 8015E87C */ void bgCheckAfterOffset(cXyz const*);
-};
+
+private:
+ /* 0x0 */ u8 field_0x0;
+ /* 0x2 */ u16 field_0x2;
+ /* 0x4 */ f32 field_0x4;
+ /* 0x8 */ f32 field_0x8;
+}; // Size: 0xC
class daPy_anmHeap_c {
public:
@@ -47,12 +57,13 @@ public:
J3DAnmBase* loadDataIdx(u16);
J3DAnmBase* loadDataPriIdx(u16);
J3DAnmBase* loadDataDemoRID(u16, u16);
- void setAnimeHeap();
+ JKRHeap* setAnimeHeap();
u16 getIdx() const { return mIdx; }
void resetIdx() { mIdx = 0xffff; }
void resetPriIdx() { mPriIdx = 0xffff; }
void resetArcNo() { mArcNo = 0xffff; }
+ bool checkNoSetArcNo() const { return mArcNo == 0xFFFF; }
private:
/* 0x00 */ u16 mIdx;
@@ -66,26 +77,27 @@ private:
class daPy_actorKeep_c {
public:
- daPy_actorKeep_c(void);
- void setActor(void);
+ daPy_actorKeep_c();
+ void setActor();
void setData(fopAc_ac_c*);
- void clearData(void);
+ void clearData();
- u32 getID(void) const { return mID; }
+ u32 getID() const { return mID; }
void setID(u32 id) { mID = id; }
- fopAc_ac_c* getActor(void) const { return mActor; }
+ fopAc_ac_c* getActor() const { return mActor; }
+ fopAc_ac_c* getActorConst() const { return mActor; }
private:
- u32 mID;
- fopAc_ac_c* mActor;
-};
+ /* 0x0 */ u32 mID;
+ /* 0x4 */ fopAc_ac_c* mActor;
+}; // Size: 0x8
class daPy_frameCtrl_c : public J3DFrameCtrl {
public:
/* 80140D24 */ ~daPy_frameCtrl_c();
/* 80140D80 */ daPy_frameCtrl_c();
- bool checkAnmEnd(void);
- void updateFrame(void);
+ bool checkAnmEnd();
+ void updateFrame();
void setFrameCtrl(u8, short, short, float, float);
u16 getEndFlg() { return mEndFlg; }
@@ -103,12 +115,18 @@ private:
/* 0x16 */ u16 mNowSetFlg;
};
+class Z2WolfHowlMgr;
+class daBoomerang_c;
+
class daPy_demo_c {
public:
void setSpecialDemoType();
void setDemoType(u16 pType) { mDemoType = pType; }
u16 getDemoType() const { return mDemoType; }
+ void setDemoMode(u32 mode) { mDemoMode = mode; }
+ u32 getDemoMode() const { return mDemoMode; }
+ void i_setSpecialDemoType() { setDemoType(5); }
private:
/* 0x00 */ u16 mDemoType;
@@ -117,24 +135,34 @@ private:
/* 0x06 */ s16 mParam2;
/* 0x08 */ int mParam0;
/* 0x0C */ int mParam1;
- /* 0x10 */ int mDemoMode;
+ /* 0x10 */ u32 mDemoMode;
/* 0x14 */ float mStick;
/* 0x18 */ cXyz mDemoPos0;
-}; // Size = 0x24
+}; // Size: 0x24
+
+class daMidna_c;
class daPy_py_c : public fopAc_ac_c {
public:
- /* 0x0568 */ u8 field_0x568[8];
- /* 0x0570 */ int mNoResetFlg0;
- /* 0x0574 */ int mNoResetFlg1;
- /* 0x0578 */ int mNoResetFlg2;
- /* 0x057C */ int mNoResetFlg3;
- /* 0x0580 */ int mResetFlg0;
- /* 0x0584 */ int mResetFlg1;
- /* 0x0588 */ int mEndResetFlg0;
- /* 0x058C */ int mEndResetFlg1;
- /* 0x0590 */ int mEndResetFlg2;
- /* 0x0594 */ u8 field_0x594[0x10];
+ /* 0x0568 */ u8 mCutType;
+ /* 0x0569 */ u8 mComboCutCount;
+ /* 0x056A */ u8 mSpecialMode; // maybe needs better name
+ /* 0x056B */ u8 field_0x56b;
+ /* 0x056C */ s16 mDamageTimer;
+ /* 0x056E */ u16 mSwordUpTimer;
+ /* 0x0570 */ u32 mNoResetFlg0;
+ /* 0x0574 */ u32 mNoResetFlg1;
+ /* 0x0578 */ u32 mNoResetFlg2;
+ /* 0x057C */ u32 mNoResetFlg3;
+ /* 0x0580 */ u32 mResetFlg0;
+ /* 0x0584 */ u32 mResetFlg1;
+ /* 0x0588 */ u32 mEndResetFlg0;
+ /* 0x058C */ u32 mEndResetFlg1;
+ /* 0x0590 */ u32 mEndResetFlg2;
+ /* 0x0594 */ f32 field_0x594;
+ /* 0x0598 */ u8 field_0x598[0x4];
+ /* 0x059C */ s16 mLookAngleY;
+ /* 0x059E */ u8 field_0x59e[0x6];
/* 0x05A4 */ cXyz mHeadTopPos;
/* 0x05B0 */ cXyz mItemPos;
/* 0x05BC */ cXyz mSwordTopPos;
@@ -147,23 +175,96 @@ public:
public:
enum daPy_FLG0 {
- EquipHeavyBoots = 0x2000000,
- MagneBootsOn = 0x1000,
- UnkFrollCrashFlg2 = 0x10,
- UnkFrollCrashFlg1 = 0x8
+ FLG0_UNK_40000000 = 0x40000000,
+ EQUIP_HEAVY_BOOTS = 0x2000000,
+ FLG0_UNK_8000000 = 0x8000000,
+ FLG0_UNK_1000000 = 0x1000000,
+ UNDER_WATER_MOVEMENT = 0x800000,
+ FLG0_UNK_80000 = 0x80000,
+ FLG0_UNK_20000 = 0x20000,
+ FLG0_UNK_8000 = 0x8000,
+ MAGNE_BOOTS_ON = 0x1000,
+ FLG0_UNK_80 = 0x80,
+ FLG0_UNK_40 = 0x40,
+ FLG0_UNK_20 = 0x20,
+ UNK_F_ROLL_CRASH_2 = 0x10,
+ UNK_F_ROLL_CRASH_1 = 0x8,
+ FLG0_UNK_4 = 4,
+
+ HEAVY_STATE_BOOTS = FLG0_UNK_40000000 | EQUIP_HEAVY_BOOTS | FLG0_UNK_20000,
+ };
+ enum daPy_FLG1 { IS_WOLF = 0x2000000, FLG1_UNK_10000 = 0x10000, THROW_DAMAGE = 0x4000 };
+ enum daPy_FLG2 {
+ FLG2_UNK_4080000 = 0x4080000,
+ FLG2_UNK_2080000 = 0x2080000,
+ BOAR_SINGLE_BATTLE = 0x1800000,
+ STATUS_WINDOW_DRAW = 0x400000,
+ UNK_ARMOR = 0x80000,
+ UNK_FLG2_2 = 2,
+ UNK_DAPY_FLG2_1 = 1
+ };
+ enum daPy_FLG3 {
+ FLG3_UNK_2000000 = 0x2000000,
+ FLG3_UNK_100000 = 0x100000,
+ COPY_ROD_THROW_AFTER = 0x40000
+ };
+ enum daPy_ERFLG0 {
+ ERFLG0_UNK_8000000 = 0x8000000,
+ ERFLG0_UNK_1000000 = 0x1000000,
+ ERFLG0_UNK_100000 = 0x100000,
+ ERFLG0_UNK_1 = 1,
+ };
+ enum daPy_ERFLG1 {
+ GANON_FINISH = 0x80000000,
+ UNK_FORCE_PUT_POS = 0x2000,
+ ERFLG1_UNK_1 = 1,
};
- enum daPy_FLG1 { Wolf = 0x2000000, ThrowDamage = 0x4000 };
- enum daPy_FLG2 { BoarSingleBattle = 0x1800000, UnkArmor = 0x80000, Unk = 1 };
- enum daPy_FLG3 { CopyRodThrowAfter = 0x40000 };
- enum daPy_ERFLG0 {};
- enum daPy_ERFLG1 { GanonFinish = 0x80000000, UnkForcePutPos = 0x2000 };
enum daPy_ERFLG2 {};
- enum daPy_RFLG0 {};
+ enum daPy_RFLG0 {
+ RFLG0_UNK_8000000 = 0x8000000,
+ RFLG0_UNK_80 = 0x80,
+ RFLG0_UNK_40 = 0x40,
+ RFLG0_UNK_2 = 0x2,
+ };
+
+ enum {
+ /* 0x01 */ SMODE_SUMO_READY = 1,
+ /* 0x25 */ SMODE_SUMO_LOSE = 37,
+ /* 0x27 */ SMODE_WOLF_PUZZLE = 39,
+ /* 0x2A */ SMODE_GOAT_STOP = 42,
+ /* 0x2B */ SMODE_GORON_THROW,
+ /* 0x2C */ SMODE_CARGO_CARRY,
+ };
+
+ enum CutType {
+ /* 0x01 */ TYPE_CUT_VERTICAL = 1,
+ /* 0x02 */ TYPE_CUT_STAB,
+ /* 0x03 */ TYPE_CUT_SWEEP,
+ /* 0x04 */ TYPE_CUT_HORIZONTAL,
+ /* 0x05 */ TYPE_CUT_HEAD, // Helm Splitter
+ /* 0x06 */ TYPE_CUT_LEFT_SWEEP_FINISH,
+ /* 0x07 */ TYPE_CUT_DOWN_FINISH,
+ /* 0x08 */ TYPE_CUT_TURN_RIGHT,
+ /* 0x0A */ TYPE_CUT_JUMP = 10,
+ /* 0x10 */ TYPE_CUT_AIR = 0x10,
+ /* 0x12 */ TYPE_CUT_LARGE_JUMP_INIT = 0x12,
+ /* 0x13 */ TYPE_CUT_LARGE_JUMP,
+ /* 0x14 */ TYPE_CUT_LARGE_JUMP_FINISH,
+ /* 0x15 */ TYPE_CUT_RIGHT_SWEEP_FINISH,
+ /* 0x16 */ TYPE_CUT_TURN_LEFT,
+ /* 0x17 */ TYPE_CUT_LARGE_TURN_LEFT,
+ /* 0x18 */ TYPE_CUT_LARGE_TURN_RIGHT,
+ /* 0x1A */ TYPE_CUT_FAST_MOVE = 0x1A,
+ /* 0x1E */ TYPE_CUT_TWIRL = 0x1E, // Back Slice
+ /* 0x1F */ TYPE_CUT_FAST,
+ /* 0x20 */ TYPE_CUT_STAB_FINISH,
+ /* 0x21 */ TYPE_CUT_STAB_COMBO,
+ };
- void setParamData(int, int, int, int);
+ static u32 setParamData(int, int, int, int);
int checkFishingRodItem(int);
- void checkBombItem(int);
- void checkBottleItem(int);
+ static BOOL checkBombItem(int);
+ static BOOL checkBottleItem(int);
void checkDrinkBottleItem(int);
static BOOL checkOilBottleItem(int);
static BOOL checkOpenBottleItem(int);
@@ -171,7 +272,7 @@ public:
static BOOL checkHookshotItem(int);
static BOOL checkTradeItem(int);
static BOOL checkDungeonWarpItem(int);
- BOOL checkMasterSwordEquip();
+ static BOOL checkMasterSwordEquip();
void checkWoodShieldEquip();
f32 getAttentionOffsetY();
s16 checkNowWolfEyeUp();
@@ -183,105 +284,104 @@ public:
void linkGrabSubjectNoDraw(fopAc_ac_c*);
void wolfGrabSubjectNoDraw(fopAc_ac_c*);
void checkRoomRestartStart();
- void checkCarryStartLightBallA();
- void checkCarryStartLightBallB();
+ static u32 checkCarryStartLightBallA();
+ static u32 checkCarryStartLightBallB();
float getSpinnerRideSpeed() const;
void checkSpinnerReflectEffect();
void checkBoomerangCharge();
bool checkBoomerangChargeTime();
- void getThrowBoomerangActor();
+ static daBoomerang_c* getThrowBoomerangActor();
void cancelBoomerangLockActor(fopAc_ac_c*);
void setPlayerDamage(int, int);
void setMidnaMotionNum(int);
void setMidnaFaceNum(int);
int checkNoResetFlg0(daPy_FLG0) const;
int checkEquipHeavyBoots() const;
- int checkBoarSingleBattle(void) const;
+ int checkBoarSingleBattle() const;
int checkEndResetFlg0(daPy_ERFLG0) const;
void onNoResetFlg2(daPy_py_c::daPy_FLG2);
void offNoResetFlg0(daPy_py_c::daPy_FLG0);
int checkEndResetFlg2(daPy_py_c::daPy_ERFLG2) const;
bool getSumouMode() const;
int checkNoResetFlg3(daPy_py_c::daPy_FLG3) const;
- void checkShieldGet();
+ BOOL checkShieldGet();
void onNoResetFlg0(daPy_py_c::daPy_FLG0);
int checkEndResetFlg1(daPy_py_c::daPy_ERFLG1) const;
void offNoResetFlg1(daPy_py_c::daPy_FLG1);
void offNoResetFlg2(daPy_py_c::daPy_FLG2);
int checkWolf() const;
- void checkSwordGet();
+ BOOL checkSwordGet();
int checkResetFlg0(daPy_py_c::daPy_RFLG0) const;
int checkNoResetFlg2(daPy_py_c::daPy_FLG2) const;
int checkMagneBootsOn() const;
- virtual void unk();
- virtual bool getMidnaAtnPos(void) const;
+ virtual cXyz* getMidnaAtnPos() const;
virtual void setMidnaMsgNum(fopAc_ac_c*, u16);
- virtual Mtx* getModelMtx(void);
- virtual Mtx* getInvMtx(void);
- virtual cXyz* getShadowTalkAtnPos(void);
- virtual float getGroundY();
- virtual Mtx* getLeftItemMatrix(void);
- virtual Mtx* getRightItemMatrix(void);
- virtual Mtx* getLeftHandMatrix(void);
- virtual Mtx* getRightHandMatrix(void);
- virtual Mtx* getLinkBackBone1Matrix(void);
- virtual Mtx* getWolfMouthMatrix(void);
- virtual Mtx* getWolfBackbone2Matrix(void);
- virtual bool getBottleMtx(void);
- virtual bool checkPlayerGuard(void) const;
- virtual bool checkPlayerFly() const;
- virtual bool checkFrontRoll() const;
- virtual bool checkWolfDash() const;
- virtual bool checkAutoJump(void) const;
- virtual bool checkSideStep(void) const;
- virtual bool checkWolfTriggerJump(void) const;
- virtual bool checkGuardBreakMode(void) const;
- virtual bool checkLv3Slide(void) const;
- virtual bool checkWolfHowlDemoMode(void) const;
- virtual bool checkChainBlockPushPull(void);
- virtual bool checkElecDamage(void) const;
- virtual bool checkEmptyBottleSwing(void) const;
- virtual bool checkBottleSwingMode(void) const;
- virtual bool checkHawkWait(void) const;
- virtual bool checkGoatThrow(void) const;
- virtual bool checkGoatThrowAfter(void) const;
- virtual bool checkWolfTagLockJump(void) const;
- virtual bool checkWolfTagLockJumpLand(void) const;
- virtual bool checkWolfRope(void);
- virtual bool checkWolfRopeHang(void) const;
- virtual bool checkRollJump(void) const;
- virtual bool checkGoronRideWait(void) const;
- virtual bool checkWolfChain(void) const;
- virtual bool checkWolfWait(void) const;
- virtual bool checkWolfJumpAttack(void) const;
- virtual bool checkWolfRSit(void) const;
- virtual bool checkBubbleFly(void) const;
- virtual bool checkBottleDrinkEnd(void) const;
- virtual bool checkWolfDig(void) const;
- virtual bool checkCutCharge(void) const;
- virtual bool checkCutTurnCharge(void) const;
- virtual bool checkCutLargeJumpCharge(void) const;
+ virtual MtxP getModelMtx();
+ virtual MtxP getInvMtx();
+ virtual cXyz* getShadowTalkAtnPos();
+ virtual f32 getGroundY();
+ virtual MtxP getLeftItemMatrix();
+ virtual MtxP getRightItemMatrix();
+ virtual MtxP getLeftHandMatrix();
+ virtual MtxP getRightHandMatrix();
+ virtual MtxP getLinkBackBone1Matrix();
+ virtual MtxP getWolfMouthMatrix();
+ virtual MtxP getWolfBackbone2Matrix();
+ virtual MtxP getBottleMtx();
+ virtual BOOL checkPlayerGuard() const;
+ virtual u32 checkPlayerFly() const;
+ virtual BOOL checkFrontRoll() const;
+ virtual BOOL checkWolfDash() const;
+ virtual BOOL checkAutoJump() const;
+ virtual bool checkSideStep() const;
+ virtual bool checkWolfTriggerJump() const;
+ virtual BOOL checkGuardBreakMode() const;
+ virtual bool checkLv3Slide() const;
+ virtual bool checkWolfHowlDemoMode() const;
+ virtual bool checkChainBlockPushPull();
+ virtual BOOL checkElecDamage() const;
+ virtual BOOL checkEmptyBottleSwing() const;
+ virtual BOOL checkBottleSwingMode() const;
+ virtual BOOL checkHawkWait() const;
+ virtual BOOL checkGoatThrow() const;
+ virtual BOOL checkGoatThrowAfter() const;
+ virtual BOOL checkWolfTagLockJump() const;
+ virtual BOOL checkWolfTagLockJumpLand() const;
+ virtual bool checkWolfRope();
+ virtual BOOL checkWolfRopeHang() const;
+ virtual BOOL checkRollJump() const;
+ virtual BOOL checkGoronRideWait() const;
+ virtual BOOL checkWolfChain() const;
+ virtual BOOL checkWolfWait() const;
+ virtual BOOL checkWolfJumpAttack() const;
+ virtual BOOL checkWolfRSit() const;
+ virtual bool checkBubbleFly() const;
+ virtual BOOL checkBottleDrinkEnd() const;
+ virtual BOOL checkWolfDig() const;
+ virtual BOOL checkCutCharge() const;
+ virtual BOOL checkCutTurnCharge() const;
+ virtual BOOL checkCutLargeJumpCharge() const;
virtual bool getBokoFlamePos(cXyz*);
- virtual bool checkComboCutTurn(void) const;
- virtual bool checkClimbMove(void) const;
- virtual bool checkGrassWhistle(void) const;
- virtual bool checkBoarRun(void) const;
- virtual bool checkFmChainPut(void) const;
- virtual bool checkHorseElecDamage(void) const;
- virtual float getBaseAnimeFrameRate(void) const;
- virtual float getBaseAnimeFrame(void) const;
+ virtual BOOL checkComboCutTurn() const;
+ virtual BOOL checkClimbMove() const;
+ virtual BOOL checkGrassWhistle() const;
+ virtual BOOL checkBoarRun() const;
+ virtual bool checkFmChainPut() const;
+ virtual bool checkHorseElecDamage() const;
+ virtual float getBaseAnimeFrameRate() const;
+ virtual float getBaseAnimeFrame() const;
virtual void setAnimeFrame(float);
virtual bool checkWolfLock(fopAc_ac_c*) const;
virtual bool cancelWolfLock(fopAc_ac_c*);
- virtual bool getAtnActorID(void) const;
- virtual s32 getItemID(void) const;
- virtual bool getGrabActorID(void) const;
+ virtual s32 getAtnActorID() const;
+ virtual s32 getItemID() const;
+ virtual s32 getGrabActorID() const;
virtual bool exchangeGrabActor(fopAc_ac_c*);
virtual bool setForceGrab(fopAc_ac_c*, int, int);
virtual void setForcePutPos(cXyz const&);
- virtual bool checkPlayerNoDraw(void);
- virtual bool checkRopeTag(void);
+ virtual bool checkPlayerNoDraw();
+ virtual bool checkRopeTag();
virtual void voiceStart(u32);
virtual void seStartOnlyReverb(u32);
virtual void seStartOnlyReverbLevel(u32);
@@ -289,14 +389,14 @@ public:
virtual void setGrabCollisionOffset(float, float, cBgS_PolyInfo*);
virtual void onMagneGrab(float, float);
virtual void onFrollCrashFlg(u8, int);
- virtual bool getModelJointMtx(u16);
- virtual bool getHeadMtx(void);
+ virtual MtxP getModelJointMtx(u16);
+ virtual MtxP getHeadMtx();
virtual bool setHookshotCarryOffset(unsigned int, cXyz const*);
- // virtual void checkCutJumpCancelTurn() const;
- virtual bool checkIronBallReturn(void) const;
- virtual bool checkIronBallGroundStop(void) const;
- virtual bool checkSingleBoarBattleSecondBowReady(void) const;
- virtual bool checkPointSubWindowMode(void) const;
+ virtual BOOL checkCutJumpCancelTurn() const;
+ virtual bool checkIronBallReturn() const;
+ virtual bool checkIronBallGroundStop() const;
+ virtual BOOL checkSingleBoarBattleSecondBowReady() const;
+ virtual bool checkPointSubWindowMode() const;
virtual void setClothesChange(int);
virtual void setPlayerPosAndAngle(float (*)[4]);
virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*);
@@ -306,27 +406,27 @@ public:
virtual bool setRollJump(float, float, short);
virtual void playerStartCollisionSE(u32, u32);
virtual void changeTextureAnime(u16, u16, int);
- virtual void cancelChangeTextureAnime(void);
- virtual void cancelDungeonWarpReadyNeck(void);
+ virtual void cancelChangeTextureAnime();
+ virtual void cancelDungeonWarpReadyNeck();
virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*);
virtual void onSceneChangeAreaJump(u8, u8, fopAc_ac_c*);
virtual void onSceneChangeDead(u8, int);
- virtual bool checkHorseRide() const;
- virtual bool checkBoarRide() const;
- virtual bool checkCanoeRide() const;
- virtual bool checkBoardRide() const;
+ virtual u32 checkHorseRide() const;
+ virtual u32 checkBoarRide() const;
+ virtual u32 checkCanoeRide() const;
+ virtual u32 checkBoardRide() const;
virtual u32 checkSpinnerRide() const;
- virtual bool getSpinnerActor(void);
- virtual bool checkHorseRideNotReady(void) const;
- virtual bool checkArrowChargeEnd(void) const;
- virtual void getSearchBallScale(void) const;
- virtual bool checkFastShotTime(void);
- virtual bool checkNoEquipItem(void) const;
- virtual bool checkFireMaterial(void) const;
+ virtual fopAc_ac_c* getSpinnerActor();
+ virtual BOOL checkHorseRideNotReady() const;
+ virtual bool checkArrowChargeEnd() const;
+ virtual f32 getSearchBallScale() const;
+ virtual s16 checkFastShotTime();
+ virtual bool checkNoEquipItem() const;
+ virtual bool checkFireMaterial() const;
virtual bool checkKandelaarSwing(int) const;
- virtual bool getBoardCutTurnOffsetAngleY(void) const;
- virtual cXyz* getMagneHitPos(void);
- virtual cXyz* getMagneBootsTopVec(void);
+ virtual s16 getBoardCutTurnOffsetAngleY() const;
+ virtual cXyz* getMagneHitPos();
+ virtual cXyz* getMagneBootsTopVec();
virtual bool getKandelaarFlamePos();
virtual bool checkUseKandelaar(int);
virtual void setDkCaught(fopAc_ac_c*);
@@ -337,53 +437,53 @@ public:
virtual void setWolfEnemyHangBiteAngle(short);
virtual void setKandelaarMtx(float (*)[4], int, int);
virtual bool getStickAngleFromPlayerShape(short*) const;
- virtual bool checkSpinnerPathMove(void);
- virtual bool checkSpinnerTriggerAttack(void);
- virtual void onSpinnerPathForceRemove(void);
- virtual bool getIronBallBgHit(void) const;
- virtual bool getIronBallCenterPos(void);
- virtual bool checkCanoeFishingGetLeft(void) const;
- virtual bool checkCanoeFishingGetRight(void) const;
- virtual bool checkBeeChildDrink(void) const;
- virtual void skipPortalObjWarp(void);
+ virtual bool checkSpinnerPathMove();
+ virtual bool checkSpinnerTriggerAttack();
+ virtual void onSpinnerPathForceRemove();
+ virtual bool getIronBallBgHit() const;
+ virtual bool getIronBallCenterPos();
+ virtual bool checkCanoeFishingGetLeft() const;
+ virtual bool checkCanoeFishingGetRight() const;
+ virtual u8 checkBeeChildDrink() const;
+ virtual void skipPortalObjWarp();
virtual bool checkTreasureRupeeReturn(int) const;
virtual void setSumouReady(fopAc_ac_c*);
virtual bool checkAcceptDungeonWarpAlink(int);
- virtual bool getSumouCounter(void) const;
- virtual bool checkSumouWithstand(void) const;
- virtual void cancelGoronThrowEvent(void);
+ virtual s16 getSumouCounter() const;
+ virtual s16 checkSumouWithstand() const;
+ virtual void cancelGoronThrowEvent();
virtual void setSumouGraspCancelCount(int);
virtual void setSumouPushBackDirection(short);
- virtual void setSumouLoseHeadUp(void);
- virtual s16 getGiantPuzzleAimAngle(void) const;
+ virtual void setSumouLoseHeadUp();
+ virtual s16 getGiantPuzzleAimAngle() const;
virtual void setGoronSideMove(fopAc_ac_c*);
virtual void setCargoCarry(fopAc_ac_c*);
- virtual bool getDpdFarFlg(void) const;
- virtual bool getHookshotTopPos(void);
- virtual bool checkHookshotReturnMode(void) const;
- virtual bool checkHookshotShootReturnMode(void) const;
- virtual bool checkOctaIealHang(void) const;
- virtual void cancelOctaIealHang(void);
- virtual void cancelDragonHangBackJump(void);
- virtual void setOctaIealWildHang(void);
- virtual bool checkDragonHangRide(void) const;
+ virtual bool getDpdFarFlg() const;
+ virtual bool getHookshotTopPos();
+ virtual bool checkHookshotReturnMode() const;
+ virtual bool checkHookshotShootReturnMode() const;
+ virtual bool checkOctaIealHang() const;
+ virtual void cancelOctaIealHang();
+ virtual void cancelDragonHangBackJump();
+ virtual void setOctaIealWildHang();
+ virtual bool checkDragonHangRide() const;
virtual void changeDragonActor(fopAc_ac_c*);
- virtual bool getClothesChangeWaitTimer(void) const;
- virtual bool getShieldChangeWaitTimer(void) const;
- virtual bool getSwordChangeWaitTimer(void) const;
- virtual bool checkMetamorphose(void) const;
- virtual bool checkWolfDownAttackPullOut(void) const;
- virtual bool checkBootsOrArmorHeavy(void) const;
- virtual s32 getBottleOpenAppearItem(void) const;
- virtual bool checkItemSwordEquip(void) const;
- virtual float getSinkShapeOffset(void) const;
- virtual bool checkSinkDead(void) const;
- virtual bool checkHorseStart(void);
- virtual bool getWolfHowlMgrP(void);
- virtual bool checkWolfHowlSuccessAnime(void) const;
- virtual bool checkCopyRodTopUse(void);
- virtual bool checkCopyRodEquip(void) const;
- virtual bool checkCutJumpMode(void) const;
+ virtual u8 getClothesChangeWaitTimer() const;
+ virtual u8 getShieldChangeWaitTimer() const;
+ virtual u8 getSwordChangeWaitTimer() const;
+ virtual BOOL checkMetamorphose() const;
+ virtual BOOL checkWolfDownAttackPullOut() const;
+ virtual BOOL checkBootsOrArmorHeavy() const;
+ virtual s32 getBottleOpenAppearItem() const;
+ virtual bool checkItemSwordEquip() const;
+ virtual float getSinkShapeOffset() const;
+ virtual BOOL checkSinkDead() const;
+ virtual BOOL checkHorseStart();
+ virtual Z2WolfHowlMgr* getWolfHowlMgrP();
+ virtual BOOL checkWolfHowlSuccessAnime() const;
+ virtual BOOL checkCopyRodTopUse();
+ virtual bool checkCopyRodEquip() const;
+ virtual BOOL checkCutJumpMode() const;
bool getSumouCameraMode() const {
bool sumouCameraMode = false;
@@ -393,20 +493,43 @@ public:
return sumouCameraMode;
}
+ bool checkStatusWindowDraw() { return i_checkNoResetFlg2(STATUS_WINDOW_DRAW); }
+ bool checkCargoCarry() const { return mSpecialMode == SMODE_CARGO_CARRY; }
+ bool getHeavyStateAndBoots() { return i_checkNoResetFlg0(HEAVY_STATE_BOOTS); }
+
// some functions use these function as an inline
// is there a better way to handle this?
int i_checkNoResetFlg0(daPy_FLG0 pFlag) const { return mNoResetFlg0 & pFlag; }
int i_checkNoResetFlg1(daPy_FLG1 pFlag) const { return mNoResetFlg1 & pFlag; }
int i_checkNoResetFlg2(daPy_FLG2 pFlag) const { return mNoResetFlg2 & pFlag; }
+ int i_checkNoResetFlg3(daPy_FLG3 pFlag) const { return mNoResetFlg3 & pFlag; }
void i_onNoResetFlg0(int pFlg) { mNoResetFlg0 |= pFlg; }
+ void i_onNoResetFlg1(int pFlg) { mNoResetFlg1 |= pFlg; }
+ void i_onNoResetFlg2(int pFlg) { mNoResetFlg2 |= pFlg; }
void i_onNoResetFlg3(int pFlg) { mNoResetFlg3 |= pFlg; }
+ void i_offNoResetFlg0(int pFlg) { mNoResetFlg0 &= ~pFlg; }
void i_offNoResetFlg3(int pFlg) { mNoResetFlg3 &= ~pFlg; }
+ void i_offResetFlg0(int flag) { mResetFlg0 &= ~flag; }
+ void i_onResetFlg0(int flag) { mResetFlg0 |= flag; }
+ void i_onResetFlg1(int flag) { mResetFlg1 |= flag; }
+ void i_onEndResetFlg0(int flag) { mEndResetFlg0 |= flag; }
+ int i_checkResetFlg0(daPy_py_c::daPy_RFLG0 flag) const { return mResetFlg0 & flag; }
+ int i_checkEndResetFlg0(daPy_py_c::daPy_ERFLG0 flag) const { return mEndResetFlg0 & flag; }
+ int i_checkEndResetFlg1(daPy_py_c::daPy_ERFLG1 flag) const { return mEndResetFlg1 & flag; }
void i_onEndResetFlg1(daPy_ERFLG1 pFlg) { mEndResetFlg1 |= pFlg; }
- int i_checkWolf() { return i_checkNoResetFlg1(Wolf); }
- BOOL i_checkEquipHeavyBoots() const { return i_checkNoResetFlg0(EquipHeavyBoots); }
+ int i_checkWolf() const { return i_checkNoResetFlg1(IS_WOLF); }
+ BOOL i_checkEquipHeavyBoots() const { return i_checkNoResetFlg0(EQUIP_HEAVY_BOOTS); }
+ BOOL i_checkMagneBootsOn() const { return i_checkNoResetFlg0(MAGNE_BOOTS_ON); }
+ bool i_checkMidnaRide() const { return i_checkNoResetFlg0(FLG0_UNK_4); }
+
+ inline u32 getLastSceneMode();
+ inline bool checkWoodSwordEquip();
+ inline BOOL i_checkSwordGet();
+ inline bool i_checkShieldGet() const;
inline BOOL checkNowWolf();
+ inline bool checkZoraWearFlg() const;
- static u8 m_midnaActor[4];
+ static daMidna_c* m_midnaActor;
};
#endif /* D_A_D_A_PLAYER_H */
diff --git a/include/d/bg/d_bg_s_acch.h b/include/d/bg/d_bg_s_acch.h
index a1d6f5dc10..e07a458783 100644
--- a/include/d/bg/d_bg_s_acch.h
+++ b/include/d/bg/d_bg_s_acch.h
@@ -137,6 +137,8 @@ public:
void SetGroundHit() { m_flags |= GROUND_HIT; }
void SetGroundLanding() { m_flags |= GROUND_LANDING; }
void SetGroundAway() { m_flags |= GROUND_AWAY; }
+ const u32 MaskWaterHit() { return m_flags & WATER_HIT; }
+ const bool ChkWaterHit() { return MaskWaterHit(); }
// inline dupe
void i_ClrGroundHit() { m_flags &= ~GROUND_HIT; }
diff --git a/include/d/cc/d_cc_d.h b/include/d/cc/d_cc_d.h
index 0c86f48f73..011835eb3b 100644
--- a/include/d/cc/d_cc_d.h
+++ b/include/d/cc/d_cc_d.h
@@ -57,6 +57,7 @@ public:
/* 80083830 */ void Move();
/* 8008523C */ virtual ~dCcD_GStts() {}
void ClrTg() { mTg = 0; }
+ void SetAtApid(unsigned int id) { mAtApid = id; }
// private:
/* 0x04 */ u8 mAt;
@@ -82,11 +83,19 @@ public:
}; // Size = 0x3C
+enum dCcG_At_Spl {
+ /* 0x0 */ dCcG_At_Spl_UNK_0,
+ /* 0x1 */ dCcG_At_Spl_UNK_01,
+};
+
+class dCcD_GObjInf;
+typedef void (*dCcD_AtHitCallback)(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*);
+
class dCcD_GAtTgCoCommonBase {
public:
/* 0x00 */ u32 mGFlag;
/* 0x04 */ u32 mRPrm;
- /* 0x08 */ u32 field_0x08;
+ /* 0x08 */ dCcD_AtHitCallback mHitCallback;
/* 0x0C */ u32 mApid;
/* 0x10 */ fopAc_ac_c* mAc;
/* 0x14 */ s8 mEffCounter;
@@ -108,7 +117,12 @@ public:
u32 GetGFlag() const { return mGFlag; }
u32 GetRPrm() const { return mRPrm; }
u32 MskSPrm(u32 mask) const { return mGFlag & mask; }
+ u32 MskRPrm(u32 mask) const { return mRPrm & mask; }
bool ChkSPrm(u32 mask) const { return MskSPrm(mask); }
+ void OnSPrm(u32 flag) { mGFlag |= flag; }
+ void OffSPrm(u32 flag) { mGFlag &= ~flag; }
+ bool ChkRPrm(u32 flag) const { return MskRPrm(flag); }
+ void SetHitCallback(dCcD_AtHitCallback callback) { mHitCallback = callback; }
}; // Size = 0x1C
class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase {
@@ -117,6 +131,11 @@ public:
/* 80083C44 */ virtual ~dCcD_GObjAt() {}
void SetVec(cXyz& vec) { mVec = vec; }
cXyz& GetVec() { return mVec; }
+ cXyz* GetVecP() { return &mVec; }
+ void SetHitMark(u8 mark) { mHitMark = mark; }
+ void SetSe(u8 se) { mSe = se; }
+ void SetMtrl(u8 mtrl) { mMtrl = mtrl; }
+ void SetAtSpl(dCcG_At_Spl spl) { mSpl = spl; }
// private:
/* 0x1C */ u8 mSe;
@@ -156,7 +175,7 @@ public:
/* 800840E4 */ virtual ~dCcD_GObjInf();
/* 80084268 */ cCcD_GObjInf* GetGObjInf();
/* 8008426C */ virtual void ClrAtHit();
- /* 800842C0 */ s32 ChkAtHit();
+ /* 800842C0 */ u32 ChkAtHit();
/* 80084318 */ void ResetAtHit();
/* 80084358 */ cCcD_Obj* GetAtHitObj();
/* 800843A8 */ cCcD_GObjInf* GetAtHitGObj();
@@ -176,6 +195,18 @@ public:
void SetAtVec(cXyz& vec) { mGObjAt.SetVec(vec); }
bool ChkAtNoMass() const { return mGObjAt.ChkSPrm(8); }
+ void OnAtNoHitMark() { mGObjAt.OnSPrm(2); }
+ void OffAtNoHitMark() { mGObjAt.OffSPrm(2); }
+ void OnAtNoConHit() { mGObjAt.OnSPrm(1); }
+ void OffAtNoConHit() { mGObjAt.OffSPrm(1); }
+ void SetAtHitMark(u8 mark) { mGObjAt.SetHitMark(mark); }
+ void SetAtSe(u8 se) { mGObjAt.SetSe(se); }
+ void SetAtMtrl(u8 mtrl) { mGObjAt.SetMtrl(mtrl); }
+ fopAc_ac_c* GetAtHitAc() { return mGObjAt.GetAc(); }
+ bool ChkAtShieldHit() { return mGObjAt.ChkRPrm(1); }
+ cXyz* GetAtVecP() { return mGObjAt.GetVecP(); }
+ void SetAtSpl(dCcG_At_Spl spl) { mGObjAt.SetAtSpl(spl); }
+ void SetAtHitCallback(dCcD_AtHitCallback callback) { mGObjAt.SetHitCallback(callback); }
static u32 const m_hitSeID[24];
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index caa7ccf7e2..202b637c5e 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -11,6 +11,7 @@
#include "d/d_vibration.h"
#include "d/event/d_event.h"
#include "d/event/d_event_manager.h"
+#include "d/particle/d_particle.h"
#include "d/save/d_save.h"
#include "dolphin/types.h"
@@ -68,6 +69,10 @@ STATIC_ASSERT(sizeof(dComIfG_camera_info_class) == 0x38);
enum PlayerPtr { LINK_PTR, HORSE_PTR };
+class daHorse_c;
+class dPa_control_c;
+class daAlink_c;
+
class dComIfG_play_c {
public:
dComIfG_play_c() { this->ct(); }
@@ -138,6 +143,14 @@ public:
mAStatus = status;
mASetFlag = flag;
}
+ void setXStatus(u8 status, u8 flag) {
+ mXStatus = status;
+ mXSetFlag = flag;
+ }
+ void setYStatus(u8 status, u8 flag) {
+ mYStatus = status;
+ mYSetFlag = flag;
+ }
void setBottleStatus(u8 status, u8 flag) {
mBottleStatus = status;
mBottleSetFlag = flag;
@@ -178,6 +191,20 @@ public:
void* getPlayerPtr(int ptrIdx) { return mPlayerPtr[ptrIdx]; }
JKRArchive* getMain2DArchive() { return mMain2DArchive; }
J2DGrafContext* getCurrentGrafPort() { return mCurrentGrafPort; }
+ dVibration_c& getVibration() { return mVibration; }
+ void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] |= flag; }
+ void clearPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] &= ~flag; }
+ bool checkPlayerStatus(int param_0, int i, u32 flag) { return flag & mPlayerStatus[i]; }
+ BOOL checkCameraAttentionStatus(int i, u32 flag) {
+ return mCameraInfo[i].mCameraAttentionStatus & flag;
+ }
+ s8 getPlayerCameraID(int i) { return mPlayerCameraID[i]; }
+ dPa_control_c* getParticle() { return mParticle; }
+ void set3DStatus(u8 status, u8 direction, u8 flag) {
+ m3DStatus = status;
+ m3DDirection = direction;
+ m3DSetFlag = flag;
+ }
public:
/* 0x00000 */ dBgS mDBgS;
@@ -217,7 +244,7 @@ public:
/* 0x04DBC */ JKRArchive* mMsgDtArchive[15];
/* 0x04DF8 */ JKRArchive* mMain2DArchive;
/* 0x04DFC */ void* field_0x4dfc[2];
- /* 0x04E04 */ void* mParticle;
+ /* 0x04E04 */ dPa_control_c* mParticle;
/* 0x04E08 */ void* mSimpleModel;
/* 0x04E0C */ u8 mWindowNum;
/* 0x04E0D */ u8 mLayerOld;
@@ -319,7 +346,7 @@ public:
/* 0x04F23 */ u8 mZSetFlagForce;
/* 0x04F24 */ u8 mXStatus;
/* 0x04F25 */ u8 mXStatusForce;
- /* 0x04F26 */ u8 field_0x4fbe; // related to XStatus
+ /* 0x04F26 */ u8 mXSetFlag;
/* 0x04F27 */ u8 mXSetFlagForce;
/* 0x04F28 */ u8 mYStatus;
/* 0x04F29 */ u8 mYStatusForce;
@@ -386,8 +413,8 @@ public:
/* 0x04FD4 */ fopAc_ac_c* mMesgCamInfoActor8;
/* 0x04FD8 */ fopAc_ac_c* mMesgCamInfoActor9;
/* 0x04FDC */ fopAc_ac_c* mMesgCamInfoActor10;
- /* 0x04FE0 */ int mPlayerStatus;
- /* 0x04FE4 */ u8 field_0x4fe4[0x14];
+ /* 0x04FE0 */ u32 mPlayerStatus[2];
+ /* 0x04FE8 */ u8 field_0x4fe8[0x10];
/* 0x04FF8 */ __d_timer_info_c mTimerInfo;
/* 0x0500C */ dDlst_window_c* mCurrentWindow;
/* 0x05010 */ void* mCurrentView;
@@ -453,6 +480,18 @@ void dComIfGs_setSelectEquipSword(u8);
void dComIfGs_setSelectEquipShield(u8);
void* dComIfG_getStageRes(char const*);
void dComLbG_PhaseHandler(request_of_phase_process_class*, int (**param_1)(void*), void*);
+void dComIfGp_addSelectItemNum(int, s16);
+BOOL dComIfGs_isOneZoneSwitch(int, int);
+u8 dComIfGp_getSelectItem(int);
+u8 dComIfGp_TargetWarpPt_get();
+void dComIfGp_TargetWarpPt_set(u8);
+BOOL dComIfGp_TransportWarp_check();
+void dComIfGp_setNextStage(char const*, s16, s8, s8, f32, u32, int, s8, s16, int, int);
+cXyz& dComIfGs_getWarpPlayerPos();
+const char* dComIfGs_getWarpStageName();
+s16 dComIfGs_getWarpPlayerAngleY();
+s8 dComIfGs_getWarpRoomNo();
+char* dComIfG_getRoomArcName(int);
inline void dComIfGp_setRStatus(u8 status, u8 flag) {
g_dComIfG_gameInfo.play.setRStatus(status, flag);
@@ -707,7 +746,7 @@ inline s16 dComIfGs_getLastWarpMarkPlayerAngleY() {
return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getAngleY();
}
-inline s8 dComIfGs_getLastWarpMarkRoomNo() {
+inline u8 dComIfGs_getLastWarpMarkRoomNo() {
return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getRoomNo();
}
@@ -1033,4 +1072,124 @@ inline dBgS& dComIfG_Bgsp() {
return g_dComIfG_gameInfo.play.mDBgS;
}
+inline s16 dComIfGs_getStartPoint() {
+ return g_dComIfG_gameInfo.info.getRestart().getStartPoint();
+}
+
+inline dVibration_c& dComIfGp_getVibration() {
+ return g_dComIfG_gameInfo.play.getVibration();
+}
+
+inline void dComIfGp_setPlayerStatus0(int param_0, u32 flag) {
+ g_dComIfG_gameInfo.play.setPlayerStatus(param_0, 0, flag);
+}
+
+inline void dComIfGp_setPlayerStatus1(int param_0, u32 flag) {
+ g_dComIfG_gameInfo.play.setPlayerStatus(param_0, 1, flag);
+}
+
+inline dEvent_manager_c* dComIfGp_getPEvtManager() {
+ return &g_dComIfG_gameInfo.play.getEvtManager();
+}
+
+inline void dComIfGp_evmng_cutEnd(int param_0) {
+ dComIfGp_getPEvtManager()->cutEnd(param_0);
+}
+
+inline BOOL dComIfGp_checkCameraAttentionStatus(int i, u32 flag) {
+ return g_dComIfG_gameInfo.play.checkCameraAttentionStatus(i, flag);
+}
+
+inline void dComIfGp_set3DStatus(u8 status, u8 direction, u8 flag) {
+ g_dComIfG_gameInfo.play.set3DStatus(status, direction, flag);
+}
+
+inline u8 dComIfGs_getLastSceneMode() {
+ return g_dComIfG_gameInfo.info.getRestart().getLastMode();
+}
+
+inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2,
+ const dKy_tevstr_c* param_3, const csXyz* param_4,
+ const cXyz* param_5, u8 param_6, dPa_levelEcallBack* param_7,
+ s8 param_8, const GXColor* param_9, const GXColor* param_10,
+ const cXyz* param_11) {
+ return g_dComIfG_gameInfo.play.getParticle()->setNormal(
+ param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9,
+ param_10, param_11, 1.0f);
+}
+
+inline void dComIfGp_particle_levelEmitterOnEventMove(u32 param_0) {
+ g_dComIfG_gameInfo.play.getParticle()->forceOnEventMove(param_0);
+}
+
+inline dPa_control_c::level_c::emitter_c* dComIfGp_particle_getEmitter(u32 param_0) {
+ return g_dComIfG_gameInfo.play.getParticle()->getEmitter(param_0);
+}
+
+inline u32 dComIfGp_particle_setPolyColor(u32 param_0, u16 param_1, cBgS_PolyInfo& param_2,
+ const cXyz* param_3, const dKy_tevstr_c* param_4,
+ const csXyz* param_5, const cXyz* param_6, int param_7,
+ dPa_levelEcallBack* param_8, s8 param_9,
+ const cXyz* param_10) {
+ return g_dComIfG_gameInfo.play.getParticle()->setPoly(param_0, param_1, param_2, param_3,
+ param_4, param_5, param_6, param_7,
+ param_8, param_9, param_10);
+}
+
+inline dRes_info_c* dComIfG_getObjectResInfo(const char* arc_name) {
+ return g_dComIfG_gameInfo.mResControl.getObjectResInfo(arc_name);
+}
+
+inline void dComIfGp_setXStatus(u8 status, u8 flag) {
+ g_dComIfG_gameInfo.play.setXStatus(status, flag);
+}
+
+inline void dComIfGp_setYStatus(u8 status, u8 flag) {
+ g_dComIfG_gameInfo.play.setYStatus(status, flag);
+}
+
+inline BOOL dComIfGp_event_compulsory(void* param_0, const char* param_1, u16 param_2) {
+ return g_dComIfG_gameInfo.play.getEvent().compulsory(param_0, param_1, param_2);
+}
+
+inline void dComIfGs_setTurnRestart(const cXyz& param_0, s16 param_1, s8 param_2, u32 param_3) {
+ g_dComIfG_gameInfo.info.getTurnRestart().set(param_0, param_1, param_2, param_3);
+}
+
+inline void dComIfGs_setRestartRoom(const cXyz& param_0, s16 param_1, s8 param_2) {
+ g_dComIfG_gameInfo.info.getRestart().setRoom(param_0, param_1, param_2);
+}
+
+inline s8 dComIfGs_getRestartRoomNo() {
+ return g_dComIfG_gameInfo.info.getRestart().getRoomNo();
+}
+
+inline void dComIfGs_setRestartRoomParam(u32 param) {
+ g_dComIfG_gameInfo.info.getRestart().setRoomParam(param);
+}
+
+inline void dComIfGp_clearPlayerStatus0(int param_0, u32 flag) {
+ g_dComIfG_gameInfo.play.clearPlayerStatus(param_0, 0, flag);
+}
+
+inline int* dComIfGp_evmng_getMyIntegerP(int index, char* name) {
+ return (int*)dComIfGp_getPEvtManager()->getMySubstanceP(index, name, dEvDtData_c::TYPE_INT);
+}
+
+inline char* dComIfGp_evmng_getMyStringP(int index, char* name) {
+ return (char*)dComIfGp_getPEvtManager()->getMySubstanceP(index, name, dEvDtData_c::TYPE_STRING);
+}
+
+inline f32* dComIfGp_evmng_getMyFloatP(int index, char* name) {
+ return (f32*)dComIfGp_getPEvtManager()->getMySubstanceP(index, name, dEvDtData_c::TYPE_FLOAT);
+}
+
+inline stage_scls_info_dummy_class* dComIfGp_getStageSclsInfo() {
+ return g_dComIfG_gameInfo.play.getStage().getSclsInfo();
+}
+
+inline dStage_roomStatus_c* dComIfGp_roomControl_getStatusRoomDt(int room_no) {
+ return g_dComIfG_gameInfo.play.getRoomControl()->getStatusRoomDt(room_no);
+}
+
#endif /* D_COM_D_COM_INF_GAME_H */
diff --git a/include/d/d_attention.h b/include/d/d_attention.h
index 0edb7ab71b..ed98d11aa1 100644
--- a/include/d/d_attention.h
+++ b/include/d/d_attention.h
@@ -148,6 +148,16 @@ public:
/* 80070178 */ virtual void execute(u16, J3DTransformInfo*);
};
+struct dist_entry {
+ f32 field_0x0;
+ f32 field_0x4;
+ f32 field_0x8;
+ f32 field_0xc;
+ f32 field_0x10;
+ f32 field_0x14;
+ u32 field_0x18;
+}; // Size: 0x1C
+
class dAttention_c {
public:
dAttention_c() {}
@@ -185,14 +195,26 @@ public:
/* 800736CC */ void LockonTargetPId(s32);
/* 80073734 */ void ActionTarget(s32);
/* 8007378C */ void CheckObjectTarget(s32);
- /* 800737E4 */ void LockonTruth();
+ /* 800737E4 */ bool LockonTruth();
/* 80073838 */ void checkDistance(cXyz*, s16, cXyz*, f32, f32, f32, f32);
dAttCatch_c& getCatghTarget() { return mCatghTarget; }
+ bool chkFlag(u32 flag) { return mFlags & flag; }
+ BOOL Lockon() {
+ bool chk = true;
+ if (!LockonTruth()) {
+ if (!chkFlag(0x20000000)) {
+ chk = false;
+ }
+ }
+ return chk;
+
+ // return !LockonTruth() && !chkFlag(0x20000000);
+ }
static u8 loc_type_tbl[12];
static u8 act_type_tbl[20];
- static u8 dist_table[6552];
+ static dist_entry dist_table[234];
static u32 loc_type_num;
static u32 act_type_num;
static u32 chk_type_tbl;
diff --git a/include/d/d_bomb.h b/include/d/d_bomb.h
index 7a9b57caee..cc3d612a85 100644
--- a/include/d/d_bomb.h
+++ b/include/d/d_bomb.h
@@ -41,6 +41,14 @@ public:
bool checkFlowerBombWait(fopAc_ac_c*);
bool checkWaterBomb(fopAc_ac_c*);
bool checkInsectBombMove(fopAc_ac_c*);
+
+ static fopAc_ac_c* createNormalBombPlayer(cXyz* p_pos) {
+ return (fopAc_ac_c*)fopAcM_fastCreate(0x221, 8, p_pos, -1, NULL, NULL, -1, NULL, NULL);
+ }
+
+ static fopAc_ac_c* createWaterBombPlayer(cXyz* p_pos) {
+ return (fopAc_ac_c*)fopAcM_fastCreate(0x221, 9, p_pos, -1, NULL, NULL, -1, NULL, NULL);
+ }
};
#endif /* D_D_BOMB_H */
diff --git a/include/d/d_jnt_col.h b/include/d/d_jnt_col.h
index 2b88c55ed3..71d566c05d 100644
--- a/include/d/d_jnt_col.h
+++ b/include/d/d_jnt_col.h
@@ -20,6 +20,8 @@ public:
/* 80036C44 */ void getHitmarkPosAndAngle(cXyz const*, csXyz const*, cXyz*, csXyz*, int) const;
/* 80036FA8 */ void setArrowPosAndAngle(cXyz const*, cXyz const*, int, cXyz*, csXyz*);
+ bool checkPassNum(int bit) { return field_0xc & (1 << bit); }
+
/* 0x00 */ dJntColData_c* mData;
/* 0x04 */ J3DModel* mModel;
/* 0x08 */ int field_0x8;
diff --git a/include/d/d_resorce.h b/include/d/d_resorce.h
index 8c038fcdfb..67e81da529 100644
--- a/include/d/d_resorce.h
+++ b/include/d/d_resorce.h
@@ -91,6 +91,10 @@ public:
return getRes(arcName, resName, &mStageInfo[0], ARRAY_SIZE(mStageInfo));
}
+ dRes_info_c* getObjectResInfo(const char* arcName) {
+ return getResInfo(arcName, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo));
+ }
+
/* 0x0000 */ dRes_info_c mObjectInfo[0x80];
/* 0x1200 */ dRes_info_c mStageInfo[0x40];
}; // Size: 0x1B00
diff --git a/include/d/d_stage.h b/include/d/d_stage.h
index 5b9a134a5a..c5b70bd256 100644
--- a/include/d/d_stage.h
+++ b/include/d/d_stage.h
@@ -45,7 +45,23 @@ struct stage_stag_info_class {
/* 0x2A */ u16 mStageTitleNo;
}; // Size: Unknown
-struct stage_scls_info_dummy_class {};
+inline u16 dStage_stagInfo_GetUpButton(stage_stag_info_class* p_info) {
+ return p_info->field_0x10 & 7;
+}
+
+struct stage_scls_info_class {
+ /* 0x0 */ char mStage[8];
+ /* 0x8 */ u8 mStart;
+ /* 0x9 */ s8 mRoom;
+ /* 0xA */ s8 field_0xa;
+ /* 0xB */ s8 field_0xb;
+ /* 0xC */ s8 mWipe;
+}; // Size: 0xD
+
+struct stage_scls_info_dummy_class {
+ /* 0x00 */ int numEntries;
+ /* 0x04 */ stage_scls_info_class* mEntries;
+};
struct stage_pure_lightvec_info_class {};
@@ -650,6 +666,7 @@ static int dStage_fieldMapFiliInfo2Init(dStage_dt_c*, void*, int, void*);
static int dStage_fieldMapMapPathInit(dStage_dt_c*, void*, int, void*);
u8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int);
+void dStage_changeScene(int, f32, u32, s8, s16, int);
inline u8 dStage_roomRead_dt_c_GetLoadRoomIndex(u8 param_0) {
return param_0 & 0x3f;
@@ -659,4 +676,24 @@ inline u32 dStage_stagInfo_GetSTType(stage_stag_info_class* pstag) {
return pstag->field_0x0c >> 0x10 & 7;
}
+inline u32 dStage_stagInfo_GetEscapeWarp(stage_stag_info_class* pstag) {
+ return pstag->field_0x10 >> 0x18;
+}
+
+inline s8 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) {
+ return p_info->field_0xb & 0xF;
+}
+
+inline s8 dStage_sclsInfo_getWipe(stage_scls_info_class* p_info) {
+ return p_info->mWipe;
+}
+
+inline s8 dStage_sclsInfo_getWipeTime(stage_scls_info_class* p_info) {
+ return p_info->field_0xb >> 5;
+}
+
+inline s8 dStage_sclsInfo_getTimeH(stage_scls_info_class* p_info) {
+ return (p_info->field_0xa >> 4) | (p_info->field_0xb & 16);
+}
+
#endif /* D_D_STAGE_H */
diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h
index 748dfb38be..6fdb8b79a4 100644
--- a/include/d/event/d_event.h
+++ b/include/d/event/d_event.h
@@ -60,7 +60,7 @@ public:
void skipper();
void Step();
void moveApproval(void*);
- bool compulsory(void*, char const*, u16);
+ BOOL compulsory(void*, char const*, u16);
void remove();
void* getStageEventDt(); // ret type probably wrong, fix later
void sceneChange(int);
@@ -80,6 +80,9 @@ public:
void isOrderOK();
u16 chkFlag2(u16 flag) { return flag & mFlag2; }
+ bool runCheck() { return field_0xe5 != 0; }
+ u16 chkEventFlag(u16 flag) { return flag & mEventFlag; }
+ u8 getMode() const { return mMode; }
public:
/* 0x000 */ u8 field_0x0[4];
diff --git a/include/d/event/d_event_data.h b/include/d/event/d_event_data.h
index 49f4aeea78..b1517d7bfa 100644
--- a/include/d/event/d_event_data.h
+++ b/include/d/event/d_event_data.h
@@ -5,25 +5,80 @@
#include "d/save/d_save.h"
#include "dolphin/types.h"
-struct event_binary_data_header {};
-
-struct dEvDtData_c {};
+struct event_binary_data_header {
+ /* 0x00 */ u32 eventTop; // offset to Event chunk
+ /* 0x04 */ s32 eventNum;
+ /* 0x08 */ u32 staffTop; // offset to Staff chunk
+ /* 0x0C */ s32 staffNum;
+ /* 0x10 */ u32 cutTop; // offset to Cut chunk
+ /* 0x14 */ s32 cutNum;
+ /* 0x18 */ u32 dataTop; // offset to Data chunk
+ /* 0x1C */ s32 dataNum;
+ /* 0x20 */ u32 fDataTop; // offset to FData chunk
+ /* 0x24 */ s32 fDataNum;
+ /* 0x28 */ u32 iDataTop; // offset to IData chunk
+ /* 0x2C */ s32 iDataNum;
+ /* 0x30 */ u32 sDataTop; // offset to SData chunk
+ /* 0x34 */ s32 sDataNum;
+ /* 0x38 */ u8 unk[8];
+}; // Size: 0x40
+
+class dEvDtData_c {
+public:
+ enum DataType {
+ /* 0x0 */ TYPE_FLOAT,
+ /* 0x1 */ TYPE_VEC,
+ /* 0x3 */ TYPE_INT = 3,
+ /* 0x4 */ TYPE_STRING
+ };
+
+ int getIndex() { return mDataIndex; }
+ int getNumber() { return mNumber; }
+ int getType() { return mType; }
+ int getNext() { return mNext; }
+ char* getName() { return mName; }
+
+ /* 0x00 */ char mName[32];
+ /* 0x20 */ u32 mIndex;
+ /* 0x24 */ int mType;
+ /* 0x28 */ int mDataIndex;
+ /* 0x2C */ int mNumber;
+ /* 0x30 */ int mNext;
+ /* 0x34 */ u8 field_0x34[12];
+}; // Size: 0x40
class dEvDtCut_c {
public:
void startCheck();
+ int getDataTop() { return mDataTop; }
+
private:
- /* 0x00 */ u8 field_0x0[0x20];
+ /* 0x00 */ char mName[32];
/* 0x20 */ u32 mTagID;
- /* 0x28 */ int field_0x28[3];
+ /* 0x24 */ u32 mIndex;
+ /* 0x28 */ int mFlags[3];
/* 0x34 */ u32 mFlagId;
- /* 0x38 */ u32 mDataTop;
- /* 0x3C */ u32 mNext;
-};
+ /* 0x38 */ int mDataTop;
+ /* 0x3C */ int mNext;
+ /* 0x40 */ u8 field_0x40[0x10];
+}; // Size: 0x50
class dEvDtStaff_c {
public:
+ enum StaffType {
+ /* 0x0 */ TYPE_DEFAULT,
+ /* 0x1 */ TYPE_ALL,
+ /* 0x2 */ TYPE_CAMERA,
+ /* 0x4 */ TYPE_TIMEKEEPER = 4,
+ /* 0x6 */ TYPE_DIRECTOR = 6,
+ /* 0x7 */ TYPE_MESSAGE,
+ /* 0x8 */ TYPE_SOUND,
+ /* 0x9 */ TYPE_LIGHT,
+ /* 0xB */ TYPE_PACKAGE = 11,
+ /* 0xC */ TYPE_CREATE,
+ };
+
void specialProc_WaitStart(int);
void specialProc_WaitProc(int);
void specialProc();
@@ -38,40 +93,52 @@ public:
void specialProcTimekeeper();
void specialProcEffect();
+ int getType() { return mType; }
+ char* getName() { return mName; }
+ int getCurrentCut() { return mCurrentCut; }
+ int getStartCut() { return mStartCut; }
+
private:
- /* 0x00 */ u8 field_0x00[4];
- /* 0x04 */ void* field_0x04;
- /* 0x08 */ u32 field_0x08;
- /* 0x0C */ int field_0x0c;
- /* 0x10 */ u32 field_0x10;
- /* 0x14 */ u8 field_0x14[0xC];
+ /* 0x00 */ char mName[32];
/* 0x20 */ u32 mTagID;
- /* 0x24 */ u32 field_0x24;
- /* 0x28 */ u8 field_0x28[4];
+ /* 0x24 */ u32 mIndex;
+ /* 0x28 */ u32 mFlagID;
/* 0x2C */ int mType;
- /* 0x30 */ u32 mStartCut;
+ /* 0x30 */ int mStartCut;
/* 0x34 */ u8 field_0x34[2];
/* 0x36 */ s16 field_0x36;
/* 0x38 */ int mCurrentCut;
/* 0x3C */ u32 field_0x3c;
- /* 0x40 */ u8 field_0x40;
- /* 0x41 */ u8 field_0x41;
+ /* 0x40 */ bool field_0x40;
+ /* 0x41 */ bool field_0x41;
/* 0x42 */ s16 field_0x42;
/* 0x44 */ s16 mSoundWait;
- /* 0x46 */ u8 field_0x46[4];
- /* 0x4A */ int field_0x4a;
-};
+ /* 0x46 */ u8 field_0x46[10];
+}; // Size: 0x50
class dEvDtEvent_c {
public:
void finishCheck();
void forceFinish();
void specialStaffProc(dEvDtStaff_c*);
-
- /* 0x00 */ s32 mEventNum;
- /* 0x04 */ u8 field_0x4[0xA0];
- /* 0xA4 */ int field_0xa4;
-};
+ int getNStaff() { return mNStaff; }
+ int getStaff(int idx) { return mStaff[idx]; }
+
+ /* 0x00 */ char mName[32];
+ /* 0x20 */ u32 mIndex;
+ /* 0x24 */ int field_0x24;
+ /* 0x28 */ int mPriority;
+ /* 0x2C */ int mStaff[20];
+ /* 0x7C */ int mNStaff;
+ /* 0x80 */ u8 field_0x80[4];
+ /* 0x84 */ int field_0x84;
+ /* 0x88 */ int field_0x88[2];
+ /* 0x90 */ int field_0x90;
+ /* 0x94 */ bool mPlaySound;
+ /* 0x95 */ u8 field_0x95[0xF];
+ /* 0xA4 */ int mEventState;
+ /* 0xA8 */ u8 field_0xa8[8];
+}; // Size: 0xB0
class dEvDtFlag_c {
public:
@@ -91,23 +158,56 @@ class dEvDtBase_c {
public:
dEvDtBase_c();
~dEvDtBase_c() {}
- void init();
- void init(char*, int);
+ int init();
+ int init(char*, int);
void advanceCut(dEvDtEvent_c*);
void advanceCutLocal(dEvDtStaff_c*);
event_binary_data_header* getHeaderP() { return mHeaderP; }
- s32 getEventNum() { return mEventP->mEventNum; }
+ dEvDtStaff_c* getStaffP(int i) { return &mStaffP[i]; }
+ dEvDtEvent_c* getEventP(int i) { return &mEventP[i]; }
+ dEvDtData_c* getDataP(int i) { return &mDataP[i]; }
+ dEvDtCut_c* getCutP(int i) { return &mCutP[i]; }
+ int getStaffCurrentCut(int i) { return mStaffP[i].getCurrentCut(); }
+ dEvDtCut_c* getCutStaffCurrentCutP(int i) { return getCutP(getStaffCurrentCut(i)); }
+ int getStaffStartCut(int i) { return mStaffP[i].getStartCut(); }
+ dEvDtCut_c* getCutStaffStartCutP(int i) { return getCutP(getStaffStartCut(i)); }
+ int* getIDataP(int i) { return &mIDataP[i]; }
+ f32* getFDataP(int i) { return &mFDataP[i]; }
+ char* getSDataP(int i) { return &mSDataP[i]; }
+ u32 getEventTop() { return mHeaderP->eventTop; }
+ s32 getEventNum() { return mHeaderP->eventNum; }
+ u32 getStaffTop() { return mHeaderP->staffTop; }
+ s32 getStaffNum() { return mHeaderP->staffNum; }
+ u32 getCutTop() { return mHeaderP->cutTop; }
+ s32 getCutNum() { return mHeaderP->cutNum; }
+ u32 getDataTop() { return mHeaderP->dataTop; }
+ s32 getDataNum() { return mHeaderP->dataNum; }
+ u32 getFDataTop() { return mHeaderP->fDataTop; }
+ s32 getFDataNum() { return mHeaderP->fDataNum; }
+ u32 getIDataTop() { return mHeaderP->iDataTop; }
+ s32 getIDataNum() { return mHeaderP->iDataNum; }
+ u32 getSDataTop() { return mHeaderP->sDataTop; }
+ s32 getSDataNum() { return mHeaderP->sDataNum; }
s32 roomNo() { return mRoomNo; }
+ void setHeaderP(event_binary_data_header* p_header) { mHeaderP = p_header; }
+ void setEventP(dEvDtEvent_c* p_event) { mEventP = p_event; }
+ void setStaffP(dEvDtStaff_c* p_staff) { mStaffP = p_staff; }
+ void setCutP(dEvDtCut_c* p_cut) { mCutP = p_cut; }
+ void setDataP(dEvDtData_c* p_data) { mDataP = p_data; }
+ void setFDataP(f32* p_fdata) { mFDataP = p_fdata; }
+ void setIDataP(int* p_idata) { mIDataP = p_idata; }
+ void setSDataP(char* p_sdata) { mSDataP = p_sdata; }
+
private:
/* 0x00 */ event_binary_data_header* mHeaderP;
/* 0x04 */ dEvDtEvent_c* mEventP;
/* 0x08 */ dEvDtStaff_c* mStaffP;
/* 0x0C */ dEvDtCut_c* mCutP;
/* 0x10 */ dEvDtData_c* mDataP;
- /* 0x14 */ float* mFDataP;
- /* 0x18 */ s32* mIDataP;
+ /* 0x14 */ f32* mFDataP;
+ /* 0x18 */ int* mIDataP;
/* 0x1C */ char* mSDataP;
/* 0x20 */ s32 mRoomNo;
}; // Size = 0x24
diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h
index 45d0c24903..7427c80c4d 100644
--- a/include/d/event/d_event_manager.h
+++ b/include/d/event/d_event_manager.h
@@ -22,7 +22,7 @@ private:
class dEvent_manager_c {
public:
- void getSubstance(dEvDtData_c*, int);
+ void* getSubstance(dEvDtData_c*, int);
dEvent_manager_c();
~dEvent_manager_c() {}
int create();
@@ -48,12 +48,12 @@ public:
void startCheckOld(char const*);
void endCheck(s16);
void endCheckOld(char const*);
- void getMyStaffId(char const*, fopAc_ac_c*, int);
+ s32 getMyStaffId(char const*, fopAc_ac_c*, int);
void getIsAddvance(int);
void getMyActIdx(int, char const* const*, int, int, int);
void getMyNowCutName(int);
- void getMyDataP(int, char const*, int);
- void getMySubstanceP(int, char const*, int);
+ dEvDtData_c* getMyDataP(int, char const*, int);
+ void* getMySubstanceP(int, char const*, int);
void getMySubstanceNum(int, char const*);
void cutEnd(int);
void getEventPrio(fopAc_ac_c*, s16);
@@ -63,11 +63,13 @@ public:
void getGoal();
void getRunEventName();
void specialCast_Shutter(s16, int);
- void specialCast(char const*, int);
+ fopAc_ac_c* specialCast(char const*, int);
void ChkPresentEnd();
void checkStartDemo();
void setStartDemo(int param_0) { mEventException.setStartDemo(param_0); }
+ void setCameraPlay(int status) { mCameraPlay = status; }
+ dEvDtBase_c& getBase() { return mEventList[field_0x1b4]; }
private:
/* 0x0000 */ dEvDtBase_c mEventList[11];
@@ -77,7 +79,7 @@ private:
/* 0x01A8 */ u8 field_0x1a8[2];
/* 0x01AA */ s16 field_0x1aa;
/* 0x01AC */ u8 field_0x1ac[4];
- /* 0x01B0 */ u32 field_0x1b0;
+ /* 0x01B0 */ int mRoomNo;
/* 0x01B4 */ u32 field_0x1b4;
/* 0x01B8 */ u32 field_0x1b8;
/* 0x01BC */ dEvDtFlag_c mFlags;
diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h
index 4a35b1fc32..60bb54f246 100644
--- a/include/d/kankyo/d_kankyo.h
+++ b/include/d/kankyo/d_kankyo.h
@@ -12,6 +12,7 @@
#include "m_Do/m_Do_ext.h"
void dKankyo_DayProc();
+void dKy_set_nexttime(f32);
struct LIGHT_INFLUENCE {
/* 800CFC7C */ ~LIGHT_INFLUENCE();
@@ -114,7 +115,6 @@ struct GB_MAPLE_COL_CHANGE {
class dKy_tevstr_c {
public:
-private:
/* 0x000 */ J3DLightObj field_0x000;
/* 0x074 */ J3DLightObj field_0x074[6];
/* 0x32C */ cXyz field_0x32c;
@@ -124,10 +124,18 @@ private:
/* 0x34C */ int field_0x34c;
/* 0x350 */ int field_0x350;
/* 0x354 */ int field_0x354;
- /* 0x358 */ int field_0x358;
- /* 0x35C */ int field_0x35c;
- /* 0x360 */ int field_0x360;
- /* 0x364 */ int field_0x364;
+ /* 0x358 */ u16 field_0x358;
+ /* 0x35A */ u16 field_0x35a;
+ /* 0x35C */ u16 field_0x35c;
+ /* 0x35E */ u8 field_0x35e[2];
+ /* 0x360 */ u8 field_0x360;
+ /* 0x361 */ u8 field_0x361;
+ /* 0x362 */ u8 field_0x362;
+ /* 0x363 */ u8 field_0x363;
+ /* 0x364 */ u8 field_0x364;
+ /* 0x365 */ u8 field_0x365;
+ /* 0x366 */ u8 field_0x366;
+ /* 0x367 */ u8 field_0x367;
/* 0x368 */ f32 field_0x368;
/* 0x36C */ f32 field_0x36c;
/* 0x370 */ f32 field_0x370;
@@ -656,5 +664,6 @@ public:
STATIC_ASSERT(sizeof(dScnKy_env_light_c) == 4880);
BOOL dKy_darkworld_stage_check(char const*, int);
+BOOL dKy_withwarp_capture_check();
#endif /* D_KANKYO_D_KANKYO_H */
diff --git a/include/d/meter/d_meter2.h b/include/d/meter/d_meter2.h
index aa8d94eadd..890777f971 100644
--- a/include/d/meter/d_meter2.h
+++ b/include/d/meter/d_meter2.h
@@ -1,6 +1,158 @@
#ifndef D_METER_D_METER2_H
#define D_METER_D_METER2_H
+#include "JSystem/JKernel/JKRExpHeap.h"
+#include "d/com/d_com_inf_game.h"
+#include "d/meter/d_meter2_draw.h"
+#include "d/meter/d_meter_map.h"
#include "dolphin/types.h"
+class msg_class {
+public:
+ /* 0x0 */ u8 field_0x0[0x100];
+};
+
+class dMeterMap_c;
+
+class dMeter2_c {
+public:
+ /* 8021EA14 */ void _create();
+ /* 8021F128 */ void _execute();
+ /* 8021F370 */ void _draw();
+ /* 8021F49C */ void _delete();
+ /* 8021F6EC */ void emphasisButtonDelete();
+ /* 8021F780 */ void setLifeZero();
+ /* 8021F7B0 */ void checkStatus();
+ /* 8021FD60 */ void moveLife();
+ /* 80220180 */ void moveKantera();
+ /* 8022051C */ void moveOxygen();
+ /* 80220888 */ void moveLightDrop();
+ /* 80220C30 */ void moveRupee();
+ /* 802210AC */ void moveKey();
+ /* 80221244 */ void moveButtonA();
+ /* 802217F4 */ void moveButtonB();
+ /* 80221EC8 */ void moveButtonR();
+ /* 80222000 */ void moveButtonZ();
+ /* 802222A0 */ void moveButton3D();
+ /* 80222364 */ void moveButtonC();
+ /* 80222494 */ void moveButtonS();
+ /* 80222518 */ void moveButtonXY();
+ /* 80222E88 */ void moveButtonCross();
+ /* 802230F8 */ void moveTouchSubMenu();
+ /* 802230FC */ void moveSubContents();
+ /* 802231C8 */ void move2DContents();
+ /* 802237D4 */ void checkSubContents();
+ /* 80223BC4 */ void check2DContents();
+ /* 80223E00 */ void moveBombNum();
+ /* 80224258 */ void moveBottleNum();
+ /* 80224354 */ void moveArrowNum();
+ /* 80224680 */ void movePachinkoNum();
+ /* 802248E4 */ void alphaAnimeLife();
+ /* 80224A04 */ void alphaAnimeKantera();
+ /* 80224BAC */ void alphaAnimeOxygen();
+ /* 80224D6C */ void alphaAnimeLightDrop();
+ /* 80224DC0 */ void alphaAnimeRupee();
+ /* 80224F70 */ void alphaAnimeKey();
+ /* 802250F4 */ void alphaAnimeButton();
+ /* 802254C0 */ void alphaAnimeButtonCross();
+ /* 802256DC */ void isShowLightDrop();
+ /* 802258A0 */ void killSubContents(u8);
+ /* 80225960 */ void isKeyVisible();
+ /* 802259F8 */ void isArrowEquip();
+ /* 80225A64 */ void isPachinkoEquip();
+
+private:
+ /* 0x100 */ JKRExpHeap* mpHeap;
+ /* 0x104 */ JKRExpHeap* mpSubHeap;
+ /* 0x108 */ void* field_0x108;
+ /* 0x10C */ dMeter2Draw_c* mpMeterDraw;
+ /* 0x110 */ dDlst_base_c* field_0x110;
+ /* 0x114 */ dDlst_base_c* field_0x114;
+ /* 0x118 */ dDlst_base_c* field_0x118;
+ /* 0x11C */ void* field_0x11c;
+ /* 0x120 */ dMeterMap_c* mpMap;
+ /* 0x124 */ u32 field_0x124;
+ /* 0x128 */ int field_0x128;
+ /* 0x12C */ int field_0x12c;
+ /* 0x130 */ f32 field_0x130;
+ /* 0x134 */ f32 field_0x134[2];
+ /* 0x13C */ f32 field_0x13c[2];
+ /* 0x144 */ f32 field_0x144;
+ /* 0x148 */ f32 field_0x148[2];
+ /* 0x150 */ f32 field_0x150[2];
+ /* 0x158 */ f32 field_0x158;
+ /* 0x15C */ f32 field_0x15c;
+ /* 0x160 */ f32 field_0x160[4];
+ /* 0x170 */ u8 field_0x170[4];
+ /* 0x174 */ f32 field_0x174[4];
+ /* 0x184 */ u8 field_0x184[4];
+ /* 0x188 */ f32 field_0x188;
+ /* 0x18C */ f32 field_0x18c;
+ /* 0x190 */ s16 field_0x190;
+ /* 0x192 */ s16 mNowLifeGauge;
+ /* 0x194 */ s16 field_0x194;
+ /* 0x196 */ s16 field_0x196;
+ /* 0x198 */ s16 field_0x198;
+ /* 0x19A */ s16 field_0x19a;
+ /* 0x19C */ int field_0x19c;
+ /* 0x1A0 */ int field_0x1a0;
+ /* 0x1A4 */ int field_0x1a4;
+ /* 0x1A8 */ int field_0x1a8;
+ /* 0x1AC */ int field_0x1ac;
+ /* 0x1B0 */ u16 field_0x1b0;
+ /* 0x1B2 */ u16 field_0x1b2;
+ /* 0x1B4 */ u16 field_0x1b4;
+ /* 0x1B6 */ u16 mSubContentsStringType;
+ /* 0x1B8 */ u16 field_0x1b8[5];
+ /* 0x1C2 */ u8 field_0x1c2;
+ /* 0x1C3 */ u8 field_0x1c3;
+ /* 0x1C4 */ u8 field_0x1c4;
+ /* 0x1C5 */ u8 field_0x1c5;
+ /* 0x1C6 */ u8 field_0x1c6;
+ /* 0x1C7 */ u8 field_0x1c7;
+ /* 0x1C8 */ u8 field_0x1c8;
+ /* 0x1C9 */ u8 field_0x1c9;
+ /* 0x1CA */ u8 field_0x1ca;
+ /* 0x1CB */ u8 field_0x1cb;
+ /* 0x1CC */ u8 field_0x1cc;
+ /* 0x1CD */ u8 field_0x1cd;
+ /* 0x1CE */ u8 field_0x1ce;
+ /* 0x1CF */ u8 field_0x1cf;
+ /* 0x1D0 */ u8 field_0x1d0;
+ /* 0x1D1 */ u8 field_0x1d1;
+ /* 0x1D2 */ u8 field_0x1d2[4];
+ /* 0x1D6 */ u8 field_0x1d6[2];
+ /* 0x1D8 */ u8 field_0x1d8[2];
+ /* 0x1DA */ u8 field_0x1da;
+ /* 0x1DB */ u8 field_0x1db;
+ /* 0x1DC */ u8 field_0x1dc;
+ /* 0x1DD */ u8 field_0x1dd;
+ /* 0x1DE */ u8 field_0x1de;
+ /* 0x1DF */ u8 field_0x1df;
+ /* 0x1E0 */ u8 field_0x1e0;
+ /* 0x1E1 */ u8 field_0x1e1;
+ /* 0x1E2 */ u8 field_0x1e2;
+ /* 0x1E3 */ u8 field_0x1e3;
+ /* 0x1E4 */ u8 field_0x1e4;
+ /* 0x1E5 */ u8 mSubContents;
+ /* 0x1E6 */ u8 field_0x1e6;
+ /* 0x1E7 */ u8 field_0x1e7;
+ /* 0x1E8 */ u8 field_0x1e8;
+ /* 0x1E9 */ u8 field_0x1e9;
+ /* 0x1EA */ u8 field_0x1ea;
+ /* 0x1EB */ u8 field_0x1eb;
+ /* 0x1EC */ u8 field_0x1ec;
+ /* 0x1ED */ u8 field_0x1ed;
+ /* 0x1EE */ u8 field_0x1ee;
+ /* 0x1EF */ u8 field_0x1ef[4];
+ /* 0x1F3 */ u8 field_0x1f3[3];
+ /* 0x1F6 */ u8 field_0x1f6[3];
+ /* 0x1F9 */ u8 field_0x1f9[4];
+ /* 0x1FD */ u8 field_0x1fd;
+ /* 0x1FE */ u8 field_0x1fe;
+ /* 0x1FF */ u8 field_0x1ff;
+ /* 0x200 */ u8 field_0x200;
+ /* 0x201 */ u8 field_0x201;
+};
+
#endif /* D_METER_D_METER2_H */
diff --git a/include/d/meter/d_meter2_draw.h b/include/d/meter/d_meter2_draw.h
index ee222f506a..8a3cd44dcd 100644
--- a/include/d/meter/d_meter2_draw.h
+++ b/include/d/meter/d_meter2_draw.h
@@ -1,6 +1,364 @@
#ifndef D_METER_D_METER2_DRAW_H
#define D_METER_D_METER2_DRAW_H
+#include "JSystem/J2DGraph/J2DAnimation.h"
+#include "JSystem/J2DGraph/J2DPicture.h"
+#include "JSystem/JKernel/JKRExpHeap.h"
+#include "JSystem/JUtility/TColor.h"
+#include "d/d_drawlist.h"
+#include "d/pane/d_pane_class.h"
#include "dolphin/types.h"
+class dKantera_icon_c;
+
+class dMeter2Draw_c : public dDlst_base_c {
+public:
+ /* 8020FAB4 */ dMeter2Draw_c(JKRExpHeap*);
+ /* 80210FB0 */ void init();
+ /* 8021135C */ void exec(u32);
+ /* 8021151C */ void draw();
+ /* 80211BEC */ void initLife();
+ /* 80211E64 */ void initMagic();
+ /* 80212190 */ void initLightDrop();
+ /* 80212404 */ void initRupeeKey();
+ /* 802126E4 */ void initButton();
+ /* 8021350C */ void initButtonCross();
+ /* 80213CEC */ void playPikariBckAnimation(f32);
+ /* 80213D6C */ void setPikariBpkAnimation(J2DAnmColor*);
+ /* 80213E3C */ void playPikariBpkAnimation(f32);
+ /* 80213E94 */ void playOxygenBpkAnimation(J2DAnmColor*);
+ /* 802140DC */ void drawPikari(f32, f32, f32*, f32, JUtility::TColor, JUtility::TColor,
+ JUtility::TColor, JUtility::TColor, f32, u8);
+ /* 80213FF0 */ void drawPikari(CPaneMgr*, f32*, f32, JUtility::TColor, JUtility::TColor,
+ JUtility::TColor, JUtility::TColor, f32, u8);
+ /* 8021462C */ void drawPikariHakusha(f32, f32, f32, f32, JUtility::TColor, JUtility::TColor,
+ JUtility::TColor, JUtility::TColor);
+ /* 802147CC */ void changeTextureLife(int, bool, u8);
+ /* 802149F4 */ void drawLife(s16, s16, f32, f32);
+ /* 80214C20 */ void setAlphaLifeChange(bool);
+ /* 80214DF4 */ void setAlphaLifeAnimeMin();
+ /* 80214E54 */ void setAlphaLifeAnimeMax();
+ /* 80214EB4 */ void drawKanteraScreen(u8);
+ /* 80215290 */ void drawMagic(s16, s16, f32, f32);
+ /* 80215380 */ void setAlphaMagicChange(bool);
+ /* 802154A8 */ void drawKantera(s32, s32, f32, f32);
+ /* 802155B8 */ void setAlphaKanteraChange(bool);
+ /* 802156E0 */ void setAlphaKanteraAnimeMin();
+ /* 8021575C */ void setAlphaKanteraAnimeMax();
+ /* 802157E0 */ void drawOxygen(s32, s32, f32, f32);
+ /* 802158F0 */ void setAlphaOxygenChange(bool);
+ /* 80215A18 */ void setAlphaOxygenAnimeMin();
+ /* 80215A94 */ void setAlphaOxygenAnimeMax();
+ /* 80215B18 */ void drawLightDrop(u8, u8, f32, f32, f32, f32, u8);
+ /* 80215DA4 */ void setAlphaLightDropChange(bool);
+ /* 80215DA8 */ void getNowLightDropRateCalc();
+ /* 80215E40 */ void setAlphaLightDropAnimeMin();
+ /* 80215F88 */ void setAlphaLightDropAnimeMax();
+ /* 8021632C */ void drawRupee(s16);
+ /* 80216684 */ void setAlphaRupeeChange(bool);
+ /* 802168D0 */ void setAlphaRupeeAnimeMin();
+ /* 80216990 */ void setAlphaRupeeAnimeMax();
+ /* 80216A40 */ void drawKey(s16);
+ /* 80216B28 */ void setAlphaKeyChange(bool);
+ /* 80216CA8 */ void setAlphaKeyAnimeMin();
+ /* 80216D2C */ void setAlphaKeyAnimeMax();
+ /* 80216DAC */ void drawButtonA(u8, f32, f32, f32, f32, f32, bool, bool);
+ /* 802170E4 */ void drawButtonB(u8, bool, f32, f32, f32, f32, f32, bool);
+ /* 8021764C */ void drawButtonR(u8, u8, bool, bool);
+ /* 802176EC */ void drawButtonZ(u8);
+ /* 80217904 */ void drawButton3D(u8);
+ /* 80217954 */ void drawButtonC(u8, bool);
+ /* 802179C0 */ void drawButtonS(u8);
+ /* 80217A10 */ void drawButtonBin(u8);
+ /* 80217AB4 */ void drawButtonXY(int, u8, u8, bool, bool);
+ /* 80218238 */ void getButtonCrossParentInitTransY();
+ /* 80218254 */ void drawButtonCross(f32, f32);
+ /* 80218338 */ void setAlphaButtonCrossAnimeMin();
+ /* 802183A8 */ void setAlphaButtonCrossAnimeMax();
+ /* 80218448 */ void setAlphaButtonCrossItemAnimeMin();
+ /* 80218524 */ void setAlphaButtonCrossItemAnimeMax();
+ /* 802185E8 */ void setAlphaButtonCrossMapAnimeMin();
+ /* 802186C4 */ void setAlphaButtonCrossMapAnimeMax();
+ /* 80218788 */ void setAlphaButtonChange(bool);
+ /* 8021901C */ void setAlphaButtonAnimeMin();
+ /* 802190A8 */ void setAlphaButtonAnimeMax();
+ /* 80219174 */ void setAlphaButtonAAnimeMin();
+ /* 80219258 */ void setAlphaButtonAAnimeMax();
+ /* 80219324 */ void setAlphaButtonBAnimeMin();
+ /* 80219474 */ void setAlphaButtonBAnimeMax();
+ /* 802195A4 */ void setButtonIconAAlpha(u8, u32, bool);
+ /* 80219788 */ void setButtonIconBAlpha(u8, u32, bool);
+ /* 80219A84 */ void setButtonIconMidonaAlpha(u32);
+ /* 80219E98 */ void setButtonIconAlpha(int, u8, u32, bool);
+ /* 8021A29C */ void getNumberTexture(int);
+ /* 8021A2F4 */ void getActionString(u8, u8, u8*);
+ /* 8021A468 */ void changeTextureItemB(u8);
+ /* 8021A71C */ void changeTextureItemXY(int, u8);
+ /* 8021A9C8 */ void setAlphaAnimeMin(CPaneMgrAlpha*, s16);
+ /* 8021AAA4 */ void setAlphaAnimeMax(CPaneMgrAlpha*, s16);
+ /* 8021AB84 */ void setItemNum(u8, u8, u8);
+ /* 8021AEC8 */ void drawItemNum(u8, f32);
+ /* 8021AF78 */ void drawKanteraMeter(u8, f32);
+ /* 8021B0C8 */ void isButtonVisible();
+ /* 8021B104 */ void setItemParamX(u8);
+ /* 8021B364 */ void setItemParamY(u8);
+ /* 8021B5B0 */ void setItemParamZ(u8);
+ /* 8021B810 */ void setItemParamB(u8);
+ /* 8021BB6C */ void getFishingType();
+ /* 8021BBB4 */ void getCanoeFishing();
+ /* 8021BC24 */ void getCameraSubject();
+ /* 8021BC54 */ void getItemSubject();
+ /* 8021BCAC */ void getPlayerSubject();
+ /* 8021BCC0 */ void isBButtonShow(bool);
+ /* 8021BDD0 */ void getButtonTimer();
+
+ /* 802102F8 */ virtual ~dMeter2Draw_c();
+
+private:
+ /* 0x004 */ f32 field_0x4;
+ /* 0x008 */ f32 field_0x8;
+ /* 0x00C */ f32 field_0xc;
+ /* 0x010 */ f32 field_0x10;
+ /* 0x014 */ f32 field_0x14;
+ /* 0x028 */ f32 field_0x18;
+ /* 0x01C */ f32 field_0x1c;
+ /* 0x020 */ f32 field_0x20;
+ /* 0x024 */ f32 field_0x24;
+ /* 0x028 */ f32 field_0x28;
+ /* 0x02C */ f32 field_0x2c;
+ /* 0x030 */ f32 field_0x30;
+ /* 0x034 */ f32 field_0x34;
+ /* 0x038 */ f32 field_0x38;
+ /* 0x03C */ f32 field_0x3c;
+ /* 0x040 */ f32 field_0x40;
+ /* 0x044 */ f32 field_0x44;
+ /* 0x048 */ f32 field_0x48;
+ /* 0x04C */ f32 field_0x4c;
+ /* 0x050 */ f32 field_0x50;
+ /* 0x054 */ f32 field_0x54;
+ /* 0x058 */ f32 field_0x58;
+ /* 0x05C */ f32 field_0x5c;
+ /* 0x060 */ f32 field_0x60;
+ /* 0x064 */ f32 field_0x64;
+ /* 0x068 */ f32 field_0x68;
+ /* 0x06C */ f32 field_0x6c;
+ /* 0x070 */ f32 field_0x70;
+ /* 0x074 */ JKRExpHeap* mp_heap;
+ /* 0x078 */ J2DScreen* mpScreen;
+ /* 0x07C */ J2DScreen* mpKanteraScreen;
+ /* 0x080 */ J2DScreen* mpPikariScreen;
+ /* 0x084 */ J2DScreen* mpItemNumTex[2][3];
+ /* 0x09C */ int field_0x9c[3];
+ /* 0x0A8 */ int field_0xa8;
+ /* 0x0AC */ dKantera_icon_c* mpKanteraMeter[2];
+ /* 0x0B4 */ u8 field_0xb4[8];
+ /* 0x0BC */ void* mpParent;
+ /* 0x0C0 */ CPaneMgr* mpAText[5];
+ /* 0x0D4 */ CPaneMgr* mpBText[5];
+ /* 0x0E8 */ CPaneMgr* mpXYText[5][3];
+ /* 0x124 */ CPaneMgr* mpLifeParent;
+ /* 0x128 */ CPaneMgr* mpLifeParts[20];
+ /* 0x178 */ CPaneMgr* mpHeartMask[20];
+ /* 0x1C8 */ CPaneMgr* mpBigHeart;
+ /* 0x1CC */ CPaneMgr* mpMagicParent;
+ /* 0x1D0 */ CPaneMgr* mpMagicBase;
+ /* 0x1D4 */ CPaneMgr* mpMagicFrameL;
+ /* 0x1D8 */ CPaneMgr* mpMagicMeter;
+ /* 0x1DC */ CPaneMgr* mpMagicFrameR;
+ /* 0x1E0 */ CPaneMgr* mpLightDropParent;
+ /* 0x1E4 */ int field_0x1e4;
+ /* 0x1E8 */ CPaneMgr* mpSIParent[2];
+ /* 0x1F0 */ CPaneMgr* mpSIParts[16][3];
+ /* 0x2B0 */ CPaneMgr* mpRupeeKeyParent;
+ /* 0x2B4 */ CPaneMgr* mpRupeeParent[3];
+ /* 0x2C0 */ CPaneMgr* mpRupeeTexture[4][2];
+ /* 0x2E0 */ CPaneMgr* mpKeyParent;
+ /* 0x2E4 */ CPaneMgr* mpKeyTexture[5];
+ /* 0x2F8 */ CPaneMgr* mpButtonParent;
+ /* 0x2FC */ int field_0x2fc;
+ /* 0x300 */ CPaneMgr* mpButtonA;
+ /* 0x304 */ CPaneMgr* mpButtonB;
+ /* 0x308 */ CPaneMgr* mpButtonMidona;
+ /* 0x30C */ CPaneMgr* mpButtonXY[3];
+ /* 0x318 */ CPaneMgr* mpLightB;
+ /* 0x31C */ CPaneMgr* mpLightXY[3];
+ /* 0x328 */ CPaneMgr* mpItemB;
+ /* 0x32C */ CPaneMgr* mpItemXY[2];
+ /* 0x334 */ CPaneMgr* mpItemR;
+ /* 0x338 */ CPaneMgr* mpBTextA;
+ /* 0x33C */ CPaneMgr* mpBTextB;
+ /* 0x340 */ CPaneMgr* mpBTextXY[2];
+ /* 0x348 */ int field_0x348;
+ /* 0x34C */ CPaneMgr* mpTextA;
+ /* 0x350 */ CPaneMgr* mpTextB;
+ /* 0x354 */ CPaneMgr* mpTextXY[3];
+ /* 0x360 */ CPaneMgr* mpTextI;
+ /* 0x364 */ CPaneMgr* mpTextM;
+ /* 0x368 */ CPaneMgr* mpButtonCrossParent;
+ /* 0x36C */ int field_0x36c;
+ /* 0x370 */ u8 field_0x370[0x2C];
+ /* 0x39C */ CPaneMgr* mpPikariParent;
+ /* 0x3A0 */ CPaneMgr* mpLifeTexture[20][2];
+ /* 0x440 */ CPaneMgr* mpHeartBase[20];
+ /* 0x490 */ CPaneMgr* mpJujiI[5];
+ /* 0x4A4 */ CPaneMgr* mpJujiM[5];
+ /* 0x4B8 */ CPaneMgr* mpUzu;
+ /* 0x4BC */ u8 field_0x4bc[0x28];
+ /* 0x4E4 */ JKRHeap* mpItemBTex[2][2];
+ /* 0x4F4 */ JKRHeap* mpItemXYTex[2][2][2];
+ /* 0x514 */ J2DPicture* mpItemBPane;
+ /* 0x518 */ J2DPicture* mpItemXYPane[3];
+ /* 0x524 */ int field_0x524[2][2];
+ /* 0x534 */ u8 field_0x534[8];
+ /* 0x53C */ void* field_0x53c;
+ /* 0x540 */ J2DAnmBase* field_0x540; // bpk
+ /* 0x544 */ J2DAnmBase* field_0x544; // bpk
+ /* 0x548 */ u8 field_0x548[8];
+ /* 0x550 */ f32 field_0x550;
+ /* 0x554 */ f32 field_0x554;
+ /* 0x558 */ f32 field_0x558;
+ /* 0x55C */ f32 field_0x55c;
+ /* 0x560 */ f32 field_0x560;
+ /* 0x564 */ f32 field_0x564;
+ /* 0x568 */ f32 field_0x568;
+ /* 0x56C */ f32 field_0x56c;
+ /* 0x570 */ f32 field_0x570;
+ /* 0x574 */ f32 field_0x574;
+ /* 0x578 */ f32 field_0x578;
+ /* 0x57C */ f32 field_0x57c;
+ /* 0x580 */ f32 field_0x580;
+ /* 0x584 */ u8 field_0x584[0x78];
+ /* 0x5FC */ f32 field_0x5fc[3];
+ /* 0x608 */ f32 field_0x608;
+ /* 0x60C */ f32 field_0x60c;
+ /* 0x610 */ f32 field_0x610[3];
+ /* 0x61C */ f32 field_0x61c;
+ /* 0x620 */ f32 field_0x620[3];
+ /* 0x62C */ f32 field_0x62c[16];
+ /* 0x66C */ f32 field_0x66c[16];
+ /* 0x6AC */ f32 field_0x6ac[3];
+ /* 0x6B8 */ f32 field_0x6b8[3];
+ /* 0x6C4 */ f32 field_0x6c4[3];
+ /* 0x6D0 */ f32 field_0x6d0[3];
+ /* 0x6DC */ f32 field_0x6dc;
+ /* 0x6E0 */ f32 field_0x6e0;
+ /* 0x6E4 */ f32 field_0x6e4;
+ /* 0x6E8 */ f32 field_0x6e8;
+ /* 0x6EC */ f32 field_0x6ec;
+ /* 0x6F0 */ f32 field_0x6f0;
+ /* 0x6F4 */ f32 field_0x6f4;
+ /* 0x6F8 */ f32 field_0x6f8;
+ /* 0x6FC */ f32 field_0x6fc;
+ /* 0x700 */ u8 field_0x700[0x18];
+ /* 0x718 */ f32 field_0x718;
+ /* 0x71C */ u8 field_0x71c[4];
+ /* 0x720 */ f32 mZButtonAlpha;
+ /* 0x724 */ f32 field_0x724;
+ /* 0x728 */ f32 field_0x728;
+ /* 0x72C */ f32 field_0x72c;
+ /* 0x730 */ f32 field_0x730;
+ /* 0x734 */ f32 field_0x734;
+ /* 0x738 */ f32 field_0x738;
+ /* 0x73C */ u8 field_0x73c[4];
+ /* 0x740 */ u16 field_0x740;
+ /* 0x742 */ u16 field_0x742[3];
+ /* 0x748 */ u8 field_0x748[0xE];
+ /* 0x756 */ u16 field_0x754;
+ /* 0x756 */ u16 field_0x756;
+ /* 0x758 */ u8 field_0x758;
+ /* 0x759 */ u8 field_0x759;
+ /* 0x75A */ u8 field_0x75a;
+ /* 0x75B */ u8 field_0x75b;
+ /* 0x75C */ u8 field_0x75c[3];
+ /* 0x75F */ u8 field_0x75f;
+ /* 0x760 */ u8 field_0x760;
+ /* 0x761 */ u8 field_0x761;
+ /* 0x762 */ u8 field_0x762;
+ /* 0x763 */ u8 field_0x763;
+ /* 0x764 */ u8 field_0x764;
+ /* 0x765 */ u8 field_0x765;
+ /* 0x766 */ u8 field_0x766;
+ /* 0x767 */ u8 field_0x767;
+ /* 0x768 */ u8 field_0x768[3];
+ /* 0x76B */ u8 field_0x76b;
+ /* 0x76C */ u8 field_0x76c[2];
+ /* 0x76E */ u8 field_0x76e;
+ /* 0x76F */ u8 field_0x76f;
+ /* 0x770 */ u8 field_0x770;
+ /* 0x771 */ u8 field_0x771;
+ /* 0x772 */ u8 field_0x772;
+ /* 0x773 */ u8 field_0x773[2];
+ /* 0x778 */ f32 field_0x778;
+ /* 0x77C */ f32 field_0x77c;
+ /* 0x780 */ f32 field_0x780;
+ /* 0x784 */ f32 field_0x784;
+ /* 0x788 */ f32 field_0x788;
+ /* 0x78C */ f32 field_0x78c;
+ /* 0x790 */ f32 field_0x790;
+ /* 0x794 */ f32 field_0x794;
+ /* 0x798 */ f32 field_0x798;
+ /* 0x79C */ f32 field_0x79c;
+ /* 0x7A0 */ f32 field_0x7a0;
+ /* 0x7A4 */ f32 field_0x7a4;
+ /* 0x7A8 */ f32 field_0x7a8;
+ /* 0x7AC */ f32 field_0x7ac;
+ /* 0x7B0 */ f32 field_0x7b0;
+ /* 0x7B4 */ f32 field_0x7b4;
+ /* 0x7B8 */ f32 field_0x7b8;
+ /* 0x7BC */ f32 field_0x7bc;
+ /* 0x7C0 */ f32 field_0x7c0;
+ /* 0x7C4 */ f32 field_0x7c4;
+ /* 0x7C8 */ f32 field_0x7c8;
+ /* 0x7CC */ f32 field_0x7cc;
+ /* 0x7D0 */ f32 field_0x7d0;
+ /* 0x7D4 */ f32 field_0x7d4;
+ /* 0x7D8 */ f32 field_0x7d8;
+ /* 0x7DC */ f32 field_0x7dc;
+ /* 0x7E0 */ f32 field_0x7e0;
+ /* 0x7E4 */ f32 field_0x7e4;
+ /* 0x7E8 */ f32 field_0x7e8;
+ /* 0x7EC */ f32 field_0x7ec;
+ /* 0x7F0 */ f32 field_0x7f0;
+ /* 0x7F4 */ f32 field_0x7f4;
+ /* 0x7F8 */ f32 field_0x7f8;
+ /* 0x7FC */ f32 field_0x7fc;
+ /* 0x800 */ f32 field_0x800;
+ /* 0x804 */ f32 field_0x804;
+ /* 0x808 */ f32 field_0x808;
+ /* 0x80C */ f32 field_0x80c;
+ /* 0x810 */ f32 field_0x810;
+ /* 0x814 */ f32 field_0x814[2];
+ /* 0x81C */ f32 field_0x81c[2];
+ /* 0x824 */ f32 field_0x824[2];
+ /* 0x82C */ f32 field_0x82c[2];
+ /* 0x834 */ f32 field_0x834;
+ /* 0x838 */ f32 field_0x838;
+ /* 0x83C */ f32 field_0x83c;
+ /* 0x840 */ f32 field_0x840;
+ /* 0x844 */ f32 field_0x844;
+ /* 0x848 */ f32 field_0x848;
+ /* 0x84C */ u8 field_0x84c;
+ /* 0x84D */ u8 field_0x84d;
+ /* 0x84E */ u8 field_0x84e;
+ /* 0x84F */ u8 field_0x84f;
+ /* 0x850 */ u8 field_0x850;
+ /* 0x851 */ u8 field_0x851;
+ /* 0x852 */ u8 field_0x852;
+ /* 0x853 */ u8 field_0x853;
+ /* 0x854 */ u8 field_0x854;
+ /* 0x855 */ u8 field_0x855;
+ /* 0x856 */ u8 field_0x856;
+ /* 0x857 */ u8 field_0x857;
+ /* 0x858 */ u8 field_0x858;
+ /* 0x859 */ u8 field_0x859;
+ /* 0x85A */ u8 field_0x85a;
+ /* 0x85B */ u8 field_0x85b;
+ /* 0x85C */ u8 field_0x85c;
+ /* 0x85D */ u8 field_0x85d;
+ /* 0x85E */ u8 field_0x85e;
+ /* 0x85F */ u8 field_0x85f;
+ /* 0x860 */ u8 field_0x860;
+ /* 0x861 */ u8 field_0x861;
+};
+
#endif /* D_METER_D_METER2_DRAW_H */
diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h
index 1a4884dec7..5d3f9847c3 100644
--- a/include/d/meter/d_meter2_info.h
+++ b/include/d/meter/d_meter2_info.h
@@ -4,6 +4,7 @@
#include "JSystem/JUtility/JUTTexture.h"
#include "d/d_resorce.h"
#include "d/menu/d_menu_window.h"
+#include "d/meter/d_meter2.h"
#include "d/msg/d_msg_flow.h"
#include "d/pane/d_pane_class.h"
#include "dolphin/types.h"
@@ -13,18 +14,9 @@ struct dMsgObject_c {
/* 802384C4 */ static void setLetterNameID(u16);
/* 802379AC */ void setKillMessageFlag();
/* 8023822C */ void getStatus();
+ /* 802371E4 */ void isPlaceMessage();
};
-class dMeterMap_c {
-public:
- /* 8020D900 */ static bool isMapOpenCheck();
- /* 8020D650 */ void isEnableDispMapAndMapDispSizeTypeNo();
- /* 8020D874 */ void setDispPosInsideFlg_SE_On();
- /* 8020D8BC */ void setDispPosOutsideFlg_SE_On();
-};
-
-struct J2DPicture {};
-
struct JMSMesgEntry_c {
/* 0x00 */ u32 mStringOffset;
/* 0x04 */ u16 mStringId;
@@ -64,11 +56,9 @@ struct dItem_data {
};
class dMw_c;
-
-class dMeter2_c {
-public:
- /* 8021F6EC */ void emphasisButtonDelete();
-};
+class dMeter2_c;
+class J2DPicture;
+class dMeterMap_c;
class dMeter2Info_c {
public:
@@ -95,7 +85,7 @@ public:
void getStringKana(u32, char*, JMSMesgEntry_c*);
void getStringKanji(u32, char*, JMSMesgEntry_c*);
double getStringLength(J2DTextBox*, char*); // define J2DTextBox
- dMeter2Info_c* getStringLength(JUTFont*, float, float, char*);
+ dMeter2Info_c* getStringLength(JUTFont*, f32, f32, char*);
void onDirectUseItem(int);
bool isDirectUseItem(int);
int setMeterString(s32);
@@ -132,6 +122,13 @@ public:
dMw_c* getMenuWindowClass() { return mMenuWindowClass; }
void offUseButton(int pButton) { mUseButton &= ~(u16)pButton; }
u16 getOilGaugeBackUp() { return mOilGaugeBackUp; }
+ u8 getWarpStatus() { return mWarpStatus; }
+ u8 getWarpRoomNo() { return mWarpInfo.mRoomNo; }
+ u8 getWarpPlayerNo() { return mWarpInfo.mWarpPlayerNo; }
+ cXyz& getWarpPos() { return mWarpInfo.mPosition; }
+ const char* getWarpStageName() { return mWarpInfo.mStageName; }
+ void setNowCount(u8 count) { mNowCount = count; }
+ void setMaxCount(u8 count) { mMaxCount = count; }
private:
/* 0x04 */ u8 unk4[4];
@@ -144,18 +141,18 @@ private:
/* 0x24 */ dMw_c* mMenuWindowClass;
/* 0x28 */ CPaneMgr* mMeterItemPanePtr[4];
/* 0x38 */ WarpInfo_c mWarpInfo;
- /* 0x54 */ float unk84;
- /* 0x58 */ float unk88;
- /* 0x5C */ float unk92;
- /* 0x60 */ float unk96;
- /* 0x64 */ float unk100;
- /* 0x68 */ float unk104;
- /* 0x6C */ float unk108;
- /* 0x70 */ float m2DWidth;
- /* 0x74 */ float m2DHeight;
- /* 0x78 */ float m2DPosH;
- /* 0x7C */ float m2DPosV;
- /* 0x80 */ float unk128;
+ /* 0x54 */ f32 unk84;
+ /* 0x58 */ f32 unk88;
+ /* 0x5C */ f32 unk92;
+ /* 0x60 */ f32 unk96;
+ /* 0x64 */ f32 unk100;
+ /* 0x68 */ f32 unk104;
+ /* 0x6C */ f32 unk108;
+ /* 0x70 */ f32 m2DWidth;
+ /* 0x74 */ f32 m2DHeight;
+ /* 0x78 */ f32 m2DPosH;
+ /* 0x7C */ f32 m2DPosV;
+ /* 0x80 */ f32 unk128;
/* 0x84 */ u32 mTimeMs;
/* 0x88 */ u32 mMsgTimeMs;
/* 0x8C */ u32 mMeterString;
@@ -252,4 +249,32 @@ inline void dMeter2Info_setSaveStageName(const char* name) {
g_meter2_info.setSaveStageName(name);
}
+inline u8 dMeter2Info_getWarpStatus() {
+ return g_meter2_info.getWarpStatus();
+}
+
+inline u8 dMeter2Info_getWarpRoomNo() {
+ return g_meter2_info.getWarpRoomNo();
+}
+
+inline u8 dMeter2Info_getWarpPlayerNo() {
+ return g_meter2_info.getWarpPlayerNo();
+}
+
+inline cXyz& dMeter2Info_getWarpPos() {
+ return g_meter2_info.getWarpPos();
+}
+
+inline const char* dMeter2Info_getWarpStageName() {
+ return g_meter2_info.getWarpStageName();
+}
+
+inline void dMeter2Info_setNowCount(u8 count) {
+ g_meter2_info.setNowCount(count);
+}
+
+inline void dMeter2Info_setMaxCount(u8 count) {
+ g_meter2_info.setMaxCount(count);
+}
+
#endif /* D_METER_D_METER2_INFO_H */
diff --git a/include/d/meter/d_meter_map.h b/include/d/meter/d_meter_map.h
index 82798fb016..4d10d3521e 100644
--- a/include/d/meter/d_meter_map.h
+++ b/include/d/meter/d_meter_map.h
@@ -1,6 +1,38 @@
#ifndef D_METER_D_METER_MAP_H
#define D_METER_D_METER_MAP_H
+#include "JSystem/J2DGraph/J2DScreen.h"
#include "dolphin/types.h"
+class dMeterMap_c {
+public:
+ /* 8020D49C */ void isEnableDispMap();
+ /* 8020D528 */ void getMapDispSizeTypeNo();
+ /* 8020D650 */ void isEnableDispMapAndMapDispSizeTypeNo();
+ /* 8020D690 */ void getMapDispEdgeBottomY_Layout();
+ /* 8020D698 */ void isEventRunCheck();
+ /* 8020D72C */ void getMapDispEdgeLeftX_Layout();
+ /* 8020D75C */ void getMapDispEdgeTop();
+ /* 8020D7E4 */ bool getDispPosInside_OffsetX();
+ /* 8020D7EC */ void getDispPosOutSide_OffsetX();
+ /* 8020D874 */ void setDispPosInsideFlg_SE_On();
+ /* 8020D8BC */ void setDispPosOutsideFlg_SE_On();
+ /* 8020D8F8 */ void setMapAlpha(u8);
+ /* 8020D900 */ static bool isMapOpenCheck();
+ /* 8020D948 */ dMeterMap_c(J2DScreen*);
+ /* 8020D990 */ ~dMeterMap_c();
+ /* 8020D9EC */ void _create(J2DScreen*);
+ /* 8020DC50 */ void _delete();
+ /* 8020DCE4 */ void _move(u32);
+ /* 8020DF1C */ void _draw();
+ /* 8020DF68 */ void draw();
+ /* 8020E070 */ void ctrlShowMap();
+ /* 8020E45C */ void checkMoveStatus();
+ /* 8020E4C8 */ void isShow(u32);
+ /* 8020E620 */ void isFmapScreen();
+ /* 8020E70C */ void isDmapScreen();
+ /* 8020E754 */ void meter_map_move(u32);
+ /* 8020E9CC */ void keyCheck();
+};
+
#endif /* D_METER_D_METER_MAP_H */
diff --git a/include/d/particle/d_particle.h b/include/d/particle/d_particle.h
index 5bb102e092..17c46ea4c0 100644
--- a/include/d/particle/d_particle.h
+++ b/include/d/particle/d_particle.h
@@ -7,33 +7,181 @@
class JPAEmitterCallBack {
public:
- /* 80050368 */ void execute(JPABaseEmitter*);
- /* 8005036C */ void draw(JPABaseEmitter*);
- /* 80050370 */ void drawAfter(JPABaseEmitter*);
- /* 80050374 */ void executeAfter(JPABaseEmitter*);
- /* 8027E6A4 */ ~JPAEmitterCallBack();
+ /* 8027E6A4 */ virtual ~JPAEmitterCallBack() = 0;
+ /* 80050368 */ virtual void execute(JPABaseEmitter*);
+ /* 80050374 */ virtual void executeAfter(JPABaseEmitter*);
+ /* 8005036C */ virtual void draw(JPABaseEmitter*);
+ /* 80050370 */ virtual void drawAfter(JPABaseEmitter*);
+};
+
+struct JPAResourceManager {
+ /* 80273E10 */ JPAResourceManager(void const*, JKRHeap*);
+ /* 80273EA8 */ void checkUserIndexDuplication(u16) const;
+ /* 80273EEC */ void swapTexture(ResTIMG const*, char const*);
+ /* 80273FCC */ void getResUserWork(u16) const;
};
class dPa_levelEcallBack : public JPAEmitterCallBack {
public:
- /* 8004FB18 */ ~dPa_levelEcallBack();
- /* 8004FB8C */ void cleanup();
+ /* 8004FB18 */ virtual ~dPa_levelEcallBack();
+ /* 8004FB8C */ virtual void cleanup();
};
class dPa_hermiteEcallBack_c : public dPa_levelEcallBack {
public:
/* 8004F6B8 */ void setOldPosP(cXyz const*, cXyz const*);
- /* 8004F6C4 */ void executeAfter(JPABaseEmitter*);
- /* 8004FABC */ void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
- /* 8004FCC8 */ ~dPa_hermiteEcallBack_c();
+
+ /* 8004FCC8 */ virtual ~dPa_hermiteEcallBack_c();
+ /* 8004F6C4 */ virtual void executeAfter(JPABaseEmitter*);
+ /* 8004FABC */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
private:
- /* 0x00 */ void* vtable;
- /* 0x04 */ float mRate;
+ /* 0x04 */ f32 mRate;
/* 0x08 */ int mMaxCnt;
/* 0x0C */ cXyz* field_0xc;
/* 0x10 */ cXyz* field_0x10;
/* 0x14 */ cXyz* field_0x14;
};
+class mDoDvdThd_toMainRam_c;
+class cBgS_PolyInfo;
+class JPAEmitterManager;
+struct JPADrawInfo;
+
+class dPa_simpleEcallBack : public JPAEmitterCallBack {
+public:
+ /* 8004ADF4 */ dPa_simpleEcallBack();
+ /* 8004AF98 */ void create(JPAEmitterManager*, u16, u8);
+ /* 8004B064 */ void createEmitter(JPAEmitterManager*);
+ /* 8004B168 */ void set(cXyz const*, dKy_tevstr_c const*, u8, _GXColor const&, _GXColor const&,
+ int, f32);
+
+ /* 8004FC08 */ virtual ~dPa_simpleEcallBack();
+ /* 8004AE1C */ virtual void executeAfter(JPABaseEmitter*);
+ /* 8004AF94 */ virtual void draw(JPABaseEmitter*);
+
+ /* 0x04 */ JPABaseEmitter* mEmitter;
+ /* 0x08 */ u16 mID;
+ /* 0x0A */ u8 field_0xa;
+ /* 0x0C */ s16 field_0xc;
+ /* 0x10 */ void* mData;
+}; // Size: 0x14
+
+class dPa_control_c {
+public:
+ class level_c {
+ public:
+ class emitter_c {
+ public:
+ /* 8004B504 */ void onActive();
+ /* 8004B544 */ void entry(u32, u16, JPABaseEmitter*, dPa_levelEcallBack*);
+ /* 8004B5AC */ void cleanup();
+ /* 8004FBFC */ emitter_c();
+
+ private:
+ /* 0x00 */ u32 mId;
+ /* 0x04 */ u16 mNameId;
+ /* 0x06 */ u8 mStatus;
+ /* 0x08 */ JPABaseEmitter* mEmitter;
+ /* 0x0C */ dPa_levelEcallBack* mCallback;
+ /* 0x10 */ emitter_c* mPre;
+ /* 0x14 */ emitter_c* mNext;
+ }; // Size: 0x18
+
+ /* 8004B688 */ level_c();
+ /* 8004B7A8 */ void execute();
+ /* 8004B6F8 */ void execute(dPa_control_c::level_c::emitter_c*);
+ /* 8004B808 */ void cleanup();
+ /* 8004B874 */ void get(u32);
+ /* 8004B8B4 */ void forceOnEventMove(u32);
+ /* 8004B8E8 */ void allForceOnEventMove();
+ /* 8004B918 */ emitter_c* getEmitter(u32);
+ /* 8004B94C */ void entry(u16, JPABaseEmitter*, dPa_levelEcallBack*);
+ /* 8004BA40 */ void addTable(dPa_control_c::level_c::emitter_c*);
+ /* 8004BA74 */ void cutTable(dPa_control_c::level_c::emitter_c*);
+
+ /* 0x000 */ u32 field_0x0;
+ /* 0x004 */ u8 field_0x4;
+ /* 0x005 */ u8 field_0x5;
+ /* 0x006 */ u8 field_0x6;
+ /* 0x008 */ emitter_c mEmitter[0x80];
+ /* 0xC08 */
+ };
+
+ /* 8004BACC */ dPa_control_c();
+ /* 8004BB70 */ void getRM_ID(u16);
+ /* 8004BB78 */ void createCommon(void const*);
+ /* 8004BCDC */ void createRoomScene();
+ /* 8004BDFC */ void readScene(u8, mDoDvdThd_toMainRam_c**);
+ /* 8004BEB0 */ void createScene(void const*);
+ /* 8004BF3C */ void removeRoomScene(bool);
+ /* 8004BFD4 */ void removeScene(bool);
+ /* 8004C054 */ void cleanup();
+ /* 8004C078 */ void calc3D();
+ /* 8004C0EC */ void calc2D();
+ /* 8004C134 */ void calcMenu();
+ /* 8004C188 */ void draw(JPADrawInfo*, u8);
+ /* 8004C218 */ void setHitMark(u16, fopAc_ac_c*, cXyz const*, csXyz const*, cXyz const*, u32);
+ /* 8004C838 */ void setWaterRipple(u32*, cBgS_PolyInfo&, cXyz const*, f32, dKy_tevstr_c const*,
+ cXyz const*, s8);
+ /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
+ u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
+ cXyz const*, f32);
+ /* 8004D4CC */ u32 set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
+ cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
+ _GXColor const*, cXyz const*, f32);
+ /* 8004CF90 */ void getPolyColor(cBgS_PolyInfo&, int, _GXColor*, _GXColor*, u8*, f32*);
+ /* 8004D6A4 */ u32 setPoly(u32, u16, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*,
+ csXyz const*, cXyz const*, int, dPa_levelEcallBack*, s8,
+ cXyz const*);
+ /* 8004D068 */ void setPoly(u16, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*, csXyz const*,
+ cXyz const*, int, dPa_levelEcallBack*, s8, cXyz const*);
+ /* 8004D128 */ void newSimple(u16, u8, u32*);
+ /* 8004D1B8 */ void setSimple(u16, cXyz const*, dKy_tevstr_c const*, u8, _GXColor const&,
+ _GXColor const&, int, f32);
+ /* 8004D23C */ void getSimple(u16);
+ /* 8004D770 */ void setStopContinue(u32);
+ /* 8004D7C4 */ void setSimpleFoot(u32, u32*, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*,
+ int, csXyz const*, cXyz const*, dPa_levelEcallBack*, s8,
+ cXyz const*);
+ /* 8004D988 */ void setCommonPoly(u32*, cBgS_PolyInfo*, cXyz const*, cXyz const*,
+ dKy_tevstr_c const*, u32, u32, csXyz const*, cXyz const*, s8);
+
+ void forceOnEventMove(u32 param_0) { field_0x210.forceOnEventMove(param_0); }
+ level_c::emitter_c* getEmitter(u32 param_0) { return field_0x210.getEmitter(param_0); }
+ u32 setNormal(u32 param_0, u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3,
+ const csXyz* param_4, const cXyz* param_5, u8 param_6,
+ dPa_levelEcallBack* param_7, s8 param_8, const GXColor* param_9,
+ const GXColor* param_10, const cXyz* param_11, f32 param_12) {
+ return set(param_0, 0, param_1, param_2, param_3, param_4, param_5, param_6, param_7,
+ param_8, param_9, param_10, param_11, param_12);
+ }
+
+ static u8 mTsubo[64];
+ static u8 mLifeBall[24];
+ static u8 mWindViewMatrix[48];
+ static u8 mEmitterMng[4];
+ static u8 mWaterBubblePcallBack[4];
+ static u8 mFsenthPcallBack[4];
+ static u8 mLight8EcallBack[4];
+ static u8 mLight8PcallBack[4];
+ static u8 m_b_Light8EcallBack[4];
+ static u8 m_b_Light8PcallBack[4];
+ static u8 m_d_Light8EcallBack[4];
+ static u8 m_d_Light8PcallBack[4];
+ static u8 mParticleTracePCB[4 + 4 /* padding */];
+
+private:
+ /* 0x000 */ JKRSolidHeap* mHeap;
+ /* 0x004 */ JPAResourceManager* mCommonResMng;
+ /* 0x008 */ JKRExpHeap* m_resHeap;
+ /* 0x00C */ JKRSolidHeap* m_sceneHeap;
+ /* 0x010 */ void* m_sceneRes;
+ /* 0x014 */ JPAResourceManager* mSceneResMng;
+ /* 0x018 */ u8 field_0x18;
+ /* 0x019 */ u8 field_0x19;
+ /* 0x01C */ dPa_simpleEcallBack field_0x1c[25];
+ /* 0x210 */ level_c field_0x210;
+};
+
#endif /* D_PARTICLE_D_PARTICLE_H */
diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h
index 96baf9dc29..217ba4c419 100644
--- a/include/d/save/d_save.h
+++ b/include/d/save/d_save.h
@@ -315,6 +315,10 @@ enum ItemTable {
/* 0xFF */ NO_ITEM
};
+enum EquipItem {
+ /* 0x103 */ EQUIP_SWORD = 0x103,
+};
+
enum CollectItem {
/* 0x0 */ COLLECT_CLOTHING,
/* 0x1 */ COLLECT_SWORD,
@@ -915,6 +919,11 @@ class dSv_restart_c {
public:
void setRoom(const cXyz&, s16, s8);
+ void setRoomParam(u32 param) { mRoomParam = param; }
+ s16 getStartPoint() const { return mStartPoint; }
+ u32 getLastMode() const { return mLastMode; }
+ s8 getRoomNo() const { return mRoomNo; }
+
private:
/* 0x00 */ s8 mRoomNo;
/* 0x01 */ u8 field_0x01[3];
@@ -999,6 +1008,9 @@ public:
dSv_zone_c* getZones() { return mZone; }
dSv_player_c& getPlayer() { return mSavedata.getPlayer(); }
dSv_event_c& getTmp() { return mTmp; }
+ dSv_restart_c& getRestart() { return mRestart; }
+ dSv_turnRestart_c& getTurnRestart() { return mTurnRestart; }
+ dSv_event_c& getEvent() { return mSavedata.getEvent(); }
s64 getStartTime() { return mStartTime; }
s64 getSaveTotalTime() { return mSaveTotalTime; }
void initDan(s8 param_0) { mDan.init(param_0); }
diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h
index b709c27196..bf16d5b99a 100644
--- a/include/f_op/f_op_actor.h
+++ b/include/f_op/f_op_actor.h
@@ -19,7 +19,7 @@ public:
void onCondition(u16);
void offCondition(u16);
bool checkCommandCatch();
- bool checkCommandDoor();
+ BOOL checkCommandDoor();
bool checkCommandDemoAccrpt();
void setCommand(u16 command) { mCommand = command; }
@@ -52,7 +52,7 @@ public:
struct actor_place {
cXyz mPosition;
csXyz mAngle;
- u8 mRoomNo;
+ s8 mRoomNo;
};
struct actor_attention_types {
@@ -88,7 +88,7 @@ public:
/* 0x4E4 */ csXyz mCollisionRot;
/* 0x4EC */ cXyz mScale;
/* 0x4F8 */ cXyz mSpeed;
- /* 0x504 */ Mtx* mCullMtx;
+ /* 0x504 */ MtxP mCullMtx;
union {
struct {
/* 0x508 */ cXyz mMin;
diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h
index ac29bdf894..dc72b471b2 100644
--- a/include/f_op/f_op_actor_mng.h
+++ b/include/f_op/f_op_actor_mng.h
@@ -54,6 +54,8 @@ public:
static bool gndCheck(const cXyz*);
static u8 mGndCheck[84];
static f32 mGroundY;
+
+ static f32 getGroundY() { return mGroundY; }
};
class fopAcM_wt_c {
@@ -100,6 +102,14 @@ inline u32 fopAcM_GetParam(const void* pActor) {
return fpcM_GetParam(pActor);
}
+inline void fopAcM_SetParam(void* p_actor, u32 param) {
+ fpcM_SetParam(p_actor, param);
+}
+
+inline u8 fopAcM_GetGroup(const fopAc_ac_c* p_actor) {
+ return p_actor->mGroup;
+}
+
inline void fopAcM_OnStatus(fopAc_ac_c* pActor, u32 flag) {
pActor->mStatus |= flag;
}
@@ -132,6 +142,14 @@ inline csXyz& fopAcM_GetShapeAngle_p(fopAc_ac_c* pActor) {
return pActor->mCollisionRot;
}
+inline bool fopAcM_CheckCondition(fopAc_ac_c* p_actor, u32 flag) {
+ return p_actor->mCondition & flag;
+}
+
+inline void fopAcM_OnCondition(fopAc_ac_c* p_actor, u32 flag) {
+ p_actor->mCondition |= flag;
+}
+
void* fopAcM_FastCreate(s16 pProcTypeID, FastCreateReqFunc param_2, void* param_3, void* pData);
void fopAcM_setStageLayer(void*);
int fopAcM_setRoomLayer(void*, int);
@@ -230,7 +248,7 @@ static const char* fopAcM_getProcNameString(const fopAc_ac_c*);
// s32 fopAcM_findObjectCB(const fopAc_ac_c*, void*);
s32 fopAcM_searchFromName(const char*, u32, u32);
s32 fopAcM_findObject4EventCB(fopAc_ac_c*, void*);
-s32 fopAcM_searchFromName4Event(const char*, s16);
+fopAc_ac_c* fopAcM_searchFromName4Event(const char*, s16);
s32 fopAcM_getWaterY(const cXyz*, f32*);
void fpoAcM_relativePos(const fopAc_ac_c*, const cXyz*, cXyz*);
s32 fopAcM_getWaterStream(const cXyz*, const cBgS_PolyInfo&, cXyz*, int*, int);
diff --git a/include/f_op/f_op_msg_mng.h b/include/f_op/f_op_msg_mng.h
index e5796a0a8d..f97e09759d 100644
--- a/include/f_op/f_op_msg_mng.h
+++ b/include/f_op/f_op_msg_mng.h
@@ -6,4 +6,6 @@
typedef int (*fopMsgCreateFunc)(void*);
+JKRExpHeap* fopMsgM_createExpHeap(u32, JKRHeap*);
+
#endif \ No newline at end of file
diff --git a/include/f_pc/f_pc_manager.h b/include/f_pc/f_pc_manager.h
index 1d13f495d3..772db2e504 100644
--- a/include/f_pc/f_pc_manager.h
+++ b/include/f_pc/f_pc_manager.h
@@ -22,6 +22,10 @@ inline u32 fpcM_GetParam(const void* pActor) {
return ((base_process_class*)pActor)->mParameters;
}
+inline void fpcM_SetParam(void* p_actor, u32 param) {
+ ((base_process_class*)p_actor)->mParameters = param;
+}
+
void fpcM_Draw(void* pProc);
s32 fpcM_DrawIterater(fpcM_DrawIteraterFunc pFunc);
void fpcM_Execute(void* pProc);
diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h
index c9f4cfaab0..aebbcd2b20 100644
--- a/include/m_Do/m_Do_audio.h
+++ b/include/m_Do/m_Do_audio.h
@@ -31,4 +31,8 @@ public:
extern JKRSolidHeap* g_mDoAud_audioHeap;
+inline void mDoAud_bgmSetSwordUsing(s32 id) {
+ Z2AudioMgr::getInterface()->mSeqMgr.bgmSetSwordUsing(id);
+}
+
#endif /* M_DO_M_DO_AUDIO_H */
diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h
index 47c48def6c..ff338d68b0 100644
--- a/include/m_Do/m_Do_ext.h
+++ b/include/m_Do/m_Do_ext.h
@@ -15,61 +15,57 @@ public:
/* 8000D428 */ void play();
private:
- J3DFrameCtrl frame_control;
-};
+ /* 0x0 */ J3DFrameCtrl mFrameCtrl;
+}; // Size: 0x14
-class mDoExt_btkAnm {
+class mDoExt_btkAnm : public mDoExt_baseAnm {
public:
- mDoExt_btkAnm(void) { field_0x14 = 0; }
+ mDoExt_btkAnm(void) { mBtkAnm = 0; }
/* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16);
/* 8000D6D8 */ void entry(J3DMaterialTable*, f32);
private:
- mDoExt_baseAnm base_anm;
- u32 field_0x14;
-};
+ /* 0x14 */ u32 mBtkAnm;
+}; // Size: 0x18
STATIC_ASSERT(sizeof(mDoExt_btkAnm) == 0x18);
-class mDoExt_brkAnm {
+class mDoExt_brkAnm : public mDoExt_baseAnm {
public:
- mDoExt_brkAnm(void) { field_0x14 = 0; }
+ mDoExt_brkAnm(void) { mBrkAnm = 0; }
/* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16);
/* 8000D7A8 */ void entry(J3DMaterialTable*, f32);
private:
- mDoExt_baseAnm mDoExt_baseAnm;
- u32 field_0x14;
-};
+ /* 0x14 */ u32 mBrkAnm;
+}; // Size: 0x18
STATIC_ASSERT(sizeof(mDoExt_brkAnm) == 0x18);
-class mDoExt_bpkAnm {
+class mDoExt_bpkAnm : public mDoExt_baseAnm {
public:
- mDoExt_bpkAnm(void) { field_0x14 = 0; }
+ mDoExt_bpkAnm(void) { mBpkAnm = 0; }
/* 8000D47C */ void init(J3DMaterialTable*, J3DAnmColor*, int, int, f32, s16, s16);
/* 8000D518 */ void entry(J3DMaterialTable*, f32);
private:
- mDoExt_baseAnm mDoExt_baseAnm;
- u32 field_0x14;
-};
+ /* 0x14 */ u32 mBpkAnm;
+}; // Size: 0x18
STATIC_ASSERT(sizeof(mDoExt_bpkAnm) == 0x18);
-class mDoExt_bckAnm {
+class mDoExt_bckAnm : public mDoExt_baseAnm {
public:
- mDoExt_bckAnm(void) { field_0x18 = 0; }
+ mDoExt_bckAnm(void) { mAnm = 0; }
/* 8000D7DC */ void init(J3DAnmTransform*, int, int, f32, s16, s16, bool);
/* 8000D990 */ void changeBckOnly(J3DAnmTransform*);
/* 8000D9CC */ void entry(J3DModelData*, f32);
/* 8000D9E8 */ void entryJoint(J3DModelData*, u16, f32);
private:
- mDoExt_baseAnm base_anm;
- u8 field_0x14[4];
- u32 field_0x18;
-}; // Size = 0x1C
+ /* 0x14 */ u32 mBckAnm;
+ /* 0x18 */ u32 mAnm;
+}; // Size: 0x1C
STATIC_ASSERT(sizeof(mDoExt_bckAnm) == 0x1C);
@@ -77,8 +73,6 @@ class J3DTransformInfo;
class mDoExt_McaMorfCallBack1_c {
public:
-private:
- /*void* vtable;*/
virtual void execute(u16, J3DTransformInfo*) = 0;
};
@@ -87,10 +81,71 @@ public:
/* 80140DF0 */ ~mDoExt_AnmRatioPack();
/* 80140E2C */ mDoExt_AnmRatioPack();
+ void setRatio(f32 ratio) { mRatio = ratio; }
+ J3DAnmTransform* getAnmTransform() { return mAnmTransform; }
+
private:
- /* 0x0 */ float mRatio;
+ /* 0x0 */ f32 mRatio;
/* 0x4 */ J3DAnmTransform* mAnmTransform;
-}; // Size = 0x8
+}; // Size: 0x8
+
+class mDoExt_invJntPacket : public J3DPacket {
+public:
+ /* 8000E654 */ mDoExt_invJntPacket();
+
+ /* 80012220 */ virtual void draw();
+ /* 8000E5F8 */ virtual ~mDoExt_invJntPacket();
+
+private:
+ /* 0x10 */ J3DModel* field_0x10;
+ /* 0x14 */ u16 field_0x14;
+ /* 0x16 */ u8 field_0x16;
+}; // Size: 0x18
+
+class mDoExt_invisibleModel {
+public:
+ /* 8000E53C */ void create(J3DModel*, u8);
+ /* 8000E6C8 */ void entryJoint(cXyz*);
+ /* 8000E7C0 */ void entryDL(cXyz*);
+
+ /* 0x0 */ J3DModel* mModel;
+ /* 0x4 */ mDoExt_invJntPacket* field_0x4;
+};
+
+class mDoExt_morf_c
+ : public J3DMtxCalcNoAnm<J3DMtxCalcCalcTransformMaya, J3DMtxCalcJ3DSysInitMaya> {
+public:
+ /* 8000F950 */ mDoExt_morf_c();
+ /* 8000FB7C */ void setMorf(f32);
+ /* 8000FBC0 */ void frameUpdate();
+
+ /* 8000FAE8 */ virtual ~mDoExt_morf_c();
+
+private:
+ /* 0x04 */ u32 field_0x4;
+ /* 0x08 */ u32 mAnm;
+ /* 0x0C */ J3DFrameCtrl mFrameCtrl;
+ /* 0x20 */ u32 field_0x20;
+ /* 0x24 */ u32 field_0x24;
+};
+
+class mDoExt_MtxCalcOldFrame {
+public:
+ /* 8000F848 */ void initOldFrameMorf(f32, u16, u16);
+ /* 8000F8CC */ void decOldFrameMorfCounter();
+
+private:
+ /* 0x00 */ bool mOldFrameFlg;
+ /* 0x04 */ f32 mOldFrameMorfCounter;
+ /* 0x08 */ f32 field_0x8;
+ /* 0x0C */ f32 mOldFrameRate;
+ /* 0x10 */ f32 field_0x10;
+ /* 0x14 */ f32 field_0x14;
+ /* 0x18 */ u16 mOldFrameStartJoint;
+ /* 0x1A */ u16 mOldFrameEndJoint;
+ /* 0x1C */ J3DTransformInfo* mOldFrameTransInfo;
+ /* 0x20 */ Quaternion* mOldFrameQuaternion;
+}; // Size: 0x24
JKRSolidHeap* mDoExt_createSolidHeapFromGame(u32, u32);
void mDoExt_destroySolidHeap(JKRSolidHeap*);
diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h
index 7eaa3aa2e2..79c09b2fbf 100644
--- a/include/m_Do/m_Do_mtx.h
+++ b/include/m_Do/m_Do_mtx.h
@@ -61,4 +61,10 @@ public:
/* 0x118 */ mDoMtx_quatStack_c* field_0x118;
}; // Size: 0x11C
+inline void mDoMtx_multVecZero(MtxP param_0, Vec* param_1) {
+ param_1->x = param_0[0][3];
+ param_1->y = param_0[1][3];
+ param_1->z = param_0[2][3];
+}
+
#endif /* M_DO_M_DO_MTX_H */
diff --git a/include/rel/d/a/d_a_boomerang/d_a_boomerang.h b/include/rel/d/a/d_a_boomerang/d_a_boomerang.h
index 6317a31575..cd39bb9e4f 100644
--- a/include/rel/d/a/d_a_boomerang/d_a_boomerang.h
+++ b/include/rel/d/a/d_a_boomerang/d_a_boomerang.h
@@ -1,6 +1,128 @@
#ifndef D_A_BOOMERANG_H
#define D_A_BOOMERANG_H
+#include "JSystem/J2DGraph/J2DScreen.h"
+#include "Z2AudioLib/Z2SoundObject.h"
+#include "d/bg/d_bg_s_acch.h"
+#include "d/particle/d_particle_copoly.h"
#include "dolphin/types.h"
+#include "f_op/f_op_actor.h"
+
+class daBoomerang_sight_c {
+public:
+ /* 8049E0B8 */ void createHeap();
+ /* 8049E36C */ void initialize();
+ /* 8049EB64 */ void playAnime(int, int);
+ /* 8049EDA8 */ void initFrame(int);
+ /* 8049EDE8 */ void copyNumData(int);
+ /* 8049EEC8 */ void setSight(cXyz const*, int);
+ /* 8049EF60 */ void draw();
+
+ /* 804A278C */ virtual ~daBoomerang_sight_c();
+
+private:
+ /* 0x04 */ J2DScreen* field_0x4;
+ /* 0x08 */ J2DPane* field_0x8;
+ /* 0x0C */ J2DPane* field_0xc;
+ /* 0x10 */ J2DPane* field_0x10;
+ /* 0x14 */ J2DPane* field_0x14;
+ /* 0x18 */ J2DAnmBase* field_0x18;
+ /* 0x1C */ J2DAnmBase* field_0x1c;
+ /* 0x20 */ J2DScreen* field_0x20;
+ /* 0x24 */ J2DPane* field_0x24;
+ /* 0x28 */ J2DPane* field_0x28;
+ /* 0x2C */ J2DPane* field_0x2c;
+ /* 0x30 */ J2DPane* field_0x30;
+ /* 0x34 */ J2DAnmBase* field_0x34;
+ /* 0x38 */ J2DAnmBase* field_0x38;
+ /* 0x3C */ J2DScreen* field_0x3c;
+ /* 0x40 */ J2DPane* field_0x40;
+ /* 0x44 */ J2DPane* field_0x44;
+ /* 0x48 */ J2DPane* field_0x48;
+ /* 0x4C */ J2DPane* field_0x4c;
+ /* 0x50 */ J2DAnmBase* field_0x50;
+ /* 0x54 */ J2DAnmBase* field_0x54;
+ /* 0x58 */ J2DAnmBase* field_0x58;
+ /* 0x5C */ J2DAnmBase* field_0x5c;
+ /* 0x60 */ bool mRedSight;
+ /* 0x61 */ u8 mReserve;
+ /* 0x62 */ u8 mAlpha[6];
+ /* 0x68 */ f32 field_0x68[6];
+ /* 0x80 */ f32 field_0x80[6];
+ /* 0x98 */ f32 field_0x98[6];
+ /* 0xB0 */ f32 field_0xb0[6];
+ /* 0xC8 */ cXyz field_0xc8[6];
+}; // Size: 0x110
+
+struct daMirror_c;
+class daAlink_c;
+
+class daBoomerang_c : public fopAc_ac_c {
+public:
+ enum daBoomerang_FLG0 {
+ /* 0x80 */ WIND_CATCH = 0x80,
+ };
+
+ /* 8049F280 */ void windModelCallBack();
+ /* 8049F39C */ void draw();
+ /* 8049F5F4 */ void lockLineCallback(fopAc_ac_c*);
+ /* 8049F660 */ void moveLineCallback(fopAc_ac_c*);
+ /* 8049F710 */ void pushLockList(int);
+ /* 8049F818 */ void cancelLockActorBase(fopAc_ac_c*);
+ /* 8049F874 */ void setAimActorBase(fopAc_ac_c*);
+ /* 8049F8B0 */ void setLockActor(fopAc_ac_c*, int);
+ /* 8049F9A4 */ void resetLockActor();
+ /* 8049F9F0 */ void setRoomInfo();
+ /* 8049FAA4 */ void setKeepMatrix();
+ /* 8049FBAC */ void setMoveMatrix();
+ /* 8049FCD0 */ void setRotAngle();
+ /* 8049FD6C */ void setAimPos();
+ /* 8049FE6C */ void checkBgHit(cXyz*, cXyz*);
+ /* 804A006C */ void setEffectTraceMatrix(u32*, u16);
+ /* 804A012C */ void setEffect();
+ /* 804A0874 */ void procWait();
+ /* 804A0F0C */ void procMove();
+ /* 804A1814 */ void execute();
+ /* 804A1BF4 */ ~daBoomerang_c();
+ /* 804A1EE4 */ void createHeap();
+ /* 804A2084 */ void create();
+ /* 804A230C */ daBoomerang_c();
+
+ void onStateFlg0(daBoomerang_FLG0 flag) { mStateFlg0 |= flag; }
+ void onWindCatch() { onStateFlg0(WIND_CATCH); }
+
+private:
+ /* 0x568 */ daMirror_c* field_0x568;
+ /* 0x56C */ J3DModel* field_0x56c;
+ /* 0x570 */ daAlink_c* field_0x570;
+ /* 0x574 */ u8 field_0x574[0x1C];
+ /* 0x590 */ J3DModel* field_0x590;
+ /* 0x594 */ void* field_0x594;
+ /* 0x598 */ daBoomerang_sight_c mSight;
+ /* 0x6A8 */ int field_0x6a8;
+ /* 0x6AC */ int field_0x6ac[5];
+ /* 0x6C0 */ fopAc_ac_c* field_0x6c0[5];
+ /* 0x6D4 */ u8 field_0x6d4[8];
+ /* 0x6DC */ cXyz field_0x6dc[5];
+ /* 0x718 */ u8 field_0x718[5];
+ /* 0x720 */ Z2SoundObjSimple field_0x720;
+ /* 0x740 */ dBgS_Acch field_0x740;
+ /* 0x918 */ dPaPo_c field_0x918;
+ /* 0x950 */ u8 field_0x950;
+ /* 0x951 */ u8 field_0x951;
+ /* 0x952 */ u8 field_0x952;
+ /* 0x953 */ u8 field_0x953;
+ /* 0x954 */ u8 field_0x954;
+ /* 0x955 */ u8 field_0x955;
+ /* 0x956 */ u8 field_0x956;
+ /* 0x957 */ u8 field_0x957;
+ /* 0x958 */ s16 field_0x958;
+ /* 0x95A */ s16 field_0x95a;
+ /* 0x95C */ s16 field_0x95c;
+ /* 0x95E */ s16 field_0x95e;
+ /* 0x960 */ s16 field_0x960;
+ /* 0x962 */ s16 field_0x962;
+ /* 0x964 */ u32 mStateFlg0;
+};
#endif /* D_A_BOOMERANG_H */
diff --git a/include/rel/d/a/d_a_crod/d_a_crod.h b/include/rel/d/a/d_a_crod/d_a_crod.h
index c357d01fc0..422d74dcc9 100644
--- a/include/rel/d/a/d_a_crod/d_a_crod.h
+++ b/include/rel/d/a/d_a_crod/d_a_crod.h
@@ -1,6 +1,53 @@
#ifndef D_A_CROD_H
#define D_A_CROD_H
+#include "d/a/d_a_player.h"
+#include "d/cc/d_cc_d.h"
#include "dolphin/types.h"
+#include "f_op/f_op_actor.h"
+#include "f_op/f_op_actor_mng.h"
+
+class daCrod_c : public fopAc_ac_c {
+public:
+ /* 80141A94 */ void setControllActorData();
+ /* 804A2E38 */ void createHeap();
+ /* 804A2F18 */ void create();
+ /* 804A3304 */ ~daCrod_c();
+ /* 804A34B0 */ void setRoomInfo();
+ /* 804A34B4 */ void setMatrix();
+ /* 804A3500 */ void posMove();
+ /* 804A3580 */ void setBckAnm(u16);
+ /* 804A35FC */ void setReturn();
+ /* 804A365C */ void setLightPower();
+ /* 804A36D8 */ void execute();
+ /* 804A3FD4 */ void draw();
+
+ static fopAc_ac_c* makeIronBallDummy(fopAc_ac_c* p_actor) {
+ return (fopAc_ac_c*)fopAcM_fastCreate(0x2F4, 6, &p_actor->mCurrent.mPosition,
+ fopAcM_GetRoomNo(p_actor), NULL, NULL, -1, NULL,
+ NULL);
+ }
+
+ fopAc_ac_c* getControllActor() { return mControllActor.getActor(); }
+
+ fopAc_ac_c* getCameraActor() { return mCameraActor.getActor(); }
+
+ void setThrow() { fopAcM_SetParam(this, 2); }
+
+private:
+ /* 0x568 */ J3DModel* field_568;
+ /* 0x56C */ mDoExt_bckAnm field_0x56c;
+ /* 0x588 */ J3DAnmTevRegKey* field_0x588;
+ /* 0x58C */ J3DAnmTextureSRTKey* field_0x58c;
+ /* 0x590 */ dCcD_Stts field_0x590;
+ /* 0x5CC */ dCcD_Cps field_0x5cc;
+ /* 0x710 */ LIGHT_INFLUENCE field_0x710;
+ /* 0x730 */ u8 field_0x730;
+ /* 0x731 */ u8 field_0x731;
+ /* 0x732 */ u8 field_0x732;
+ /* 0x734 */ cXyz field_0x734;
+ /* 0x740 */ daPy_actorKeep_c mControllActor;
+ /* 0x748 */ daPy_actorKeep_c mCameraActor;
+}; // Size: 0x750
#endif /* D_A_CROD_H */
diff --git a/include/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h b/include/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h
index 25408550ad..49c654ce50 100644
--- a/include/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h
+++ b/include/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h
@@ -2,5 +2,14 @@
#define D_A_KYTAG05_H
#include "dolphin/types.h"
+#include "f_op/f_op_actor.h"
+
+class kytag05_class : public fopAc_ac_c {
+public:
+ u8 getSceneListID() const { return mSceneListID; }
+
+ /* 0x568 */ u8 field_0x568[5];
+ /* 0x56D */ u8 mSceneListID;
+};
#endif /* D_A_KYTAG05_H */
diff --git a/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h b/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h
index 04447c6feb..ee58264a42 100644
--- a/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h
+++ b/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h
@@ -1,6 +1,204 @@
#ifndef D_A_OBJ_CARRY_H
#define D_A_OBJ_CARRY_H
+#include "SSystem/SComponent/c_xyz.h"
+#include "d/bg/d_bg_s_acch.h"
+#include "d/cc/d_cc_d.h"
#include "dolphin/types.h"
+class daObjCarry_c : public fopAc_ac_c {
+public:
+ enum {
+ /* 0x0 */ TYPE_TSUBO, // Small Blue Pot
+ /* 0x1 */ TYPE_OOTSUBO, // Big Red Pot
+ /* 0x2 */ TYPE_KIBAKO, // Box
+ /* 0x3 */ TYPE_IRON_BALL, // Cannon Ball
+ /* 0x4 */ TYPE_TARU, // Barrel
+ /* 0x5 */ TYPE_DOKURO, // Skull
+ /* 0x6 */ TYPE_BOKKURI, // Deku Nut
+ /* 0x7 */ TYPE_TSUBO_2, // Small Red Pot
+ /* 0x8 */ TYPE_BALL_S, // Light Ball A
+ /* 0x9 */ TYPE_BALL_S_2, // Light Ball B
+ /* 0xA */ TYPE_AOTSUBO, // Big Blue Pot
+ /* 0xB */ TYPE_LV8_BALL,
+ /* 0xC */ TYPE_TSUBO_S, // Small pot - Twilight
+ /* 0xD */ TYPE_TSUBO_B, // Big pot - Twilight
+ };
+
+ /* 80031CF8 */ static void clrSaveFlag();
+ /* 80031D04 */ static void setSaveFlag();
+ /* 80031D10 */ void chkSaveFlag();
+ /* 80031D24 */ void getPos(int);
+ /* 80031D38 */ void savePos(int, cXyz);
+ /* 80031D64 */ void onSttsFlag(int, u8);
+ /* 80031D78 */ void offSttsFlag(int, u8);
+ /* 80031D8C */ void chkSttsFlag(int, u8);
+ /* 80031DAC */ void setRoomNo(int, s8);
+ /* 80031DB8 */ void getRoomNo(int);
+ /* 8046F6A4 */ void data();
+ /* 8046F6BC */ void getArcName();
+ /* 8046F6D4 */ void getBmdName();
+ /* 8046F6EC */ void checkFlag(u8);
+ /* 8046F724 */ void initBaseMtx();
+ /* 8046F7AC */ void setBaseMtx();
+ /* 8046FACC */ void preInit();
+ /* 8046FB78 */ daObjCarry_c();
+ /* 8046FFA4 */ void checkBreakWolfAttack();
+ /* 8046FFF8 */ void checkCarryBoomerang();
+ /* 80470054 */ void checkCarryHookshot();
+ /* 80470080 */ void checkCarryWolf();
+ /* 804700B4 */ void checkCarryOneHand();
+ /* 804700F0 */ void Create();
+ /* 804705DC */ void CreateInit_tsubo();
+ /* 80470650 */ void CreateInit_ootubo();
+ /* 80470674 */ void CreateInit_kibako();
+ /* 804706D4 */ void CreateInit_ironball();
+ /* 804707E0 */ void CreateInit_taru();
+ /* 80470840 */ void CreateInit_dokuro();
+ /* 80470890 */ void CreateInit_bokkuri();
+ /* 804709DC */ void CreateInit_LightBall();
+ /* 80470AB4 */ void CreateInit_Lv8Ball();
+ /* 80470B5C */ void CreateHeap();
+ /* 80470BF4 */ void create();
+ /* 80470CF0 */ void checkCreate_LightBallA();
+ /* 8047114C */ void checkCreate_LightBallB();
+ /* 804715A8 */ void checkCreate_Lv8Ball();
+ /* 80471680 */ void resetIconPosForLightBallA();
+ /* 804716D4 */ void setIconPosForLightBallAAtR00();
+ /* 804717B4 */ void setIconPosForLightBallBAtR00();
+ /* 80471894 */ void resetIconPosForLightBallB();
+ /* 804718E8 */ void execute();
+ /* 8047233C */ void checkCulling();
+ /* 80472460 */ void draw();
+ /* 80472730 */ void debugDraw();
+ /* 80472734 */ void _delete();
+ /* 80472B54 */ void crr_pos();
+ /* 80472D8C */ void check_sink(f32*);
+ /* 80472E5C */ void calc_gravity();
+ /* 80472EF0 */ void checkRollAngle();
+ /* 80473050 */ void mode_proc_call();
+ /* 804733E8 */ void mode_init_wait();
+ /* 804734B0 */ void mode_proc_wait();
+ /* 80473718 */ void mode_init_walk(u8);
+ /* 804737CC */ void mode_proc_walk();
+ /* 80473ED8 */ void mode_init_carry();
+ /* 804741A8 */ void mode_proc_carry();
+ /* 80474448 */ void mode_init_drop(u8);
+ /* 80474540 */ void mode_proc_drop();
+ /* 80474618 */ void mode_init_float();
+ /* 80474734 */ void mode_proc_float();
+ /* 80474A08 */ void mode_init_sink();
+ /* 80474B8C */ void mode_proc_sink();
+ /* 80474D64 */ void mode_init_yogan();
+ /* 80474E08 */ void mode_proc_yogan();
+ /* 80474E98 */ bool mode_proc_magne();
+ /* 80474EA0 */ bool mode_proc_magneCarry();
+ /* 80474EA8 */ void mode_init_boomCarry();
+ /* 80474FA8 */ void mode_proc_boomCarry();
+ /* 80475014 */ void mode_init_growth();
+ /* 804750C8 */ void mode_proc_growth();
+ /* 8047515C */ bool mode_proc_end();
+ /* 80475164 */ void mode_init_dbDrop(u8);
+ /* 80475210 */ void mode_proc_dbDrop();
+ /* 80475238 */ void mode_init_hookCarry();
+ /* 80475354 */ void mode_proc_hookCarry();
+ /* 80475384 */ void mode_init_fit();
+ /* 80475450 */ void mode_proc_fit();
+ /* 80475478 */ void mode_proc_controled();
+ /* 804754D0 */ void mode_init_resetLightBall();
+ /* 80475598 */ void mode_proc_resetLightBall();
+ /* 80475618 */ void chkSinkAll();
+ /* 8047567C */ void chkWaterLineIn();
+ /* 804756D4 */ void chkSinkObj();
+ /* 8047573C */ void bg_check();
+ /* 80476618 */ void check_bg_damage_proc_base();
+ /* 80476764 */ void bg_damage_proc_kotubo();
+ /* 804767C4 */ void bg_damage_proc_ootubo();
+ /* 804767E4 */ void bg_damage_proc_kibako();
+ /* 80476804 */ bool bg_damage_proc_ironball();
+ /* 8047680C */ void bg_damage_proc_taru();
+ /* 8047682C */ void bg_damage_proc_dokuro();
+ /* 8047684C */ void bg_damage_proc_bokkuri();
+ /* 80476930 */ bool bg_damage_proc_LightBall();
+ /* 80476938 */ bool bg_damage_proc_Lv8Ball();
+ /* 80476940 */ void obj_break(bool, bool, bool);
+ /* 80476A5C */ void check_cc_damage_proc_base(bool);
+ /* 80476B04 */ void cc_damage_proc_kotubo();
+ /* 80476B68 */ void cc_damage_proc_ootubo();
+ /* 80476B88 */ void cc_damage_proc_kibako();
+ /* 80476CE4 */ void cc_damage_proc_ironball();
+ /* 80476E04 */ void cc_damage_proc_taru();
+ /* 80476F88 */ void cc_damage_proc_dokuro();
+ /* 80476FA8 */ void cc_damage_proc_bokkuri();
+ /* 804771B0 */ bool cc_damage_proc_LightBall();
+ /* 804771B8 */ bool cc_damage_proc_Lv8Ball();
+ /* 804771C0 */ void eff_break_tuboBmd(u16, cXyz);
+ /* 8047731C */ void eff_break_kibakoBmd(cXyz);
+ /* 8047747C */ void eff_break_tsubo();
+ /* 804774D4 */ void eff_break_ootubo();
+ /* 8047752C */ void eff_break_kibako();
+ /* 80477574 */ void eff_break_ironball();
+ /* 80477578 */ void eff_break_taru();
+ /* 804775BC */ void eff_break_dokuro();
+ /* 80477614 */ void eff_break_bokkuri();
+ /* 80477798 */ void eff_break_kotubo2();
+ /* 804777F0 */ void eff_break_LightBall();
+ /* 804777F4 */ void eff_break_ootubo2();
+ /* 8047784C */ void eff_break_Lv8Ball();
+ /* 80477850 */ void eff_break_tsuboL8();
+ /* 804778A8 */ void eff_break_ootuboL8();
+ /* 80477900 */ void se_break(cBgS_PolyInfo*);
+ /* 80477990 */ void se_put(cBgS_PolyInfo*);
+ /* 80477A14 */ void se_put_water();
+ /* 80477A98 */ void se_fall_water();
+ /* 80477B1C */ void calc_rot_axis_base(u8);
+ /* 80477FE0 */ void calc_rot_axis_tsubo();
+ /* 80478004 */ void calc_rot_axis_ootubo();
+ /* 80478028 */ void calc_rot_axis_kibako();
+ /* 8047814C */ void calc_rot_axis_ironball();
+ /* 80478170 */ void calc_rot_axis_taru();
+ /* 80478190 */ void calc_rot_axis_dokuro();
+ /* 804781B4 */ void calc_rot_axis_bokkuri();
+ /* 804783C0 */ void calc_rot_axis_kotubo2();
+ /* 804783E4 */ void calc_rot_axis_LightBall();
+ /* 80478408 */ void calc_rot_axis_Lv8Ball();
+ /* 8047842C */ void set_wind_power();
+ /* 80478808 */ void exec_proc_tsubo();
+ /* 80478828 */ void exec_proc_ootubo();
+ /* 80478848 */ void exec_proc_kibako();
+ /* 8047884C */ void exec_proc_ironball();
+ /* 804788C4 */ void exec_proc_taru();
+ /* 804788C8 */ void exec_proc_dokuro();
+ /* 804788CC */ void exec_proc_bokkuri();
+ /* 80478C18 */ void exec_proc_LightBall();
+ /* 80478CE4 */ void exec_proc_Lv8Ball();
+ /* 80478D78 */ void bg_damage_proc_call();
+ /* 80478F50 */ void cc_damage_proc_call();
+ /* 80479128 */ void eff_break_call();
+ /* 804792D4 */ void calc_rot_call();
+ /* 80479480 */ void obj_execute_proc_call();
+ /* 8047962C */ void setTgHitCallBack();
+ /* 80479648 */ void setCoHitCallBack();
+ /* 80479664 */ void CreateInitCall();
+
+ s32 getType() { return mType; }
+
+ static u8 const mData[2072];
+
+private:
+ /* 0x568 */ u8 field_0x568[8];
+ /* 0x570 */ J3DModel* field_0x570;
+ /* 0x574 */ dBgS_Acch field_0x574;
+ /* 0x74C */ dBgS_AcchCir field_0x74c;
+ /* 0x78C */ dCcD_Stts field_0x78c;
+ /* 0x7C8 */ dCcD_Cyl field_0x7c8;
+ /* 0x904 */ dCcD_Sph field_0x904;
+ /* 0xA3C */ dCcD_Cps field_0xa3c;
+ /* 0xB80 */ dCcD_Cyl field_0xb80;
+ /* 0xCBC */ u8 field_0xcbc[0x34];
+ /* 0xCF0 */ u8 mType;
+ /* 0xCF4 */ cXyz field_0xcf4;
+ /* 0xD00 */
+};
+
#endif /* D_A_OBJ_CARRY_H */
diff --git a/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h b/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h
index 940e95c355..08fe8b32b9 100644
--- a/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h
+++ b/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h
@@ -1,6 +1,28 @@
#ifndef D_A_TAG_MMSG_H
#define D_A_TAG_MMSG_H
+#include "d/a/d_a_player.h"
#include "dolphin/types.h"
+class daTagMmsg_c : public fopAc_ac_c {
+public:
+ /* 80D5B918 */ void create();
+ /* 80D5BAB4 */ ~daTagMmsg_c();
+ /* 80D5BB30 */ void execute();
+
+ void onUseFlg() { mUseFlg = true; }
+
+private:
+ /* 0x568 */ u8 field_0x568;
+ /* 0x569 */ u8 field_0x569;
+ /* 0x56A */ u8 mAttention;
+ /* 0x56B */ u8 field_0x56b;
+ /* 0x56C */ bool mUseFlg;
+ /* 0x56D */ u8 field_0x56d[3];
+ /* 0x570 */ u16 field_0x570;
+ /* 0x572 */ u16 field_0x572;
+ /* 0x574 */ f32 field_0x574;
+ /* 0x578 */ f32 field_0x578;
+};
+
#endif /* D_A_TAG_MMSG_H */