summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakaRikka <38417346+TakaRikka@users.noreply.github.com>2021-11-10 23:54:31 -0800
committerTakaRikka <38417346+TakaRikka@users.noreply.github.com>2021-11-10 23:54:31 -0800
commit70eabb12bd5e9327ccd01b1f9367fca109d4fbfa (patch)
treebc478c843622a25b54dd87479b6575be425b7488 /include
parent74ed2da8bc93804373cddf64c0c878603150b699 (diff)
wip
Diffstat (limited to 'include')
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DAnimation.h2
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h2
-rw-r--r--include/JSystem/J3DGraphAnimator/J3DModel.h3
-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_xyz.h5
-rw-r--r--include/d/a/d_a_alink.h1326
-rw-r--r--include/d/a/d_a_player.h413
-rw-r--r--include/d/cc/d_cc_d.h23
-rw-r--r--include/d/com/d_com_inf_game.h51
-rw-r--r--include/d/d_attention.h22
-rw-r--r--include/d/d_bomb.h8
-rw-r--r--include/d/d_jnt_col.h2
-rw-r--r--include/d/event/d_event.h2
-rw-r--r--include/d/event/d_event_manager.h2
-rw-r--r--include/d/kankyo/d_kankyo.h19
-rw-r--r--include/d/save/d_save.h9
-rw-r--r--include/f_op/f_op_actor.h6
-rw-r--r--include/f_op/f_op_actor_mng.h14
-rw-r--r--include/m_Do/m_Do_audio.h4
-rw-r--r--include/m_Do/m_Do_ext.h4
-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.h22
-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
28 files changed, 1718 insertions, 600 deletions
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/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..16bf6deacd 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,7 @@ 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; }
// 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 8ff0092bc1..ca3406b0e0 100644
--- a/include/SSystem/SComponent/c_lib.h
+++ b/include/SSystem/SComponent/c_lib.h
@@ -42,6 +42,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_xyz.h b/include/SSystem/SComponent/c_xyz.h
index 0f28e22048..f7a57a7b6a 100644
--- a/include/SSystem/SComponent/c_xyz.h
+++ b/include/SSystem/SComponent/c_xyz.h
@@ -2,6 +2,7 @@
#define C_XYZ_H
#include "dolphin/mtx/vec.h"
+#include "msl_c/math.h"
#include "global.h"
struct cXyz : Vec {
@@ -116,6 +117,10 @@ struct cXyz : Vec {
cXyz tmp2(other.x, 0, other.z);
return tmp.abs2(tmp2);
}
+ f32 absXZ(const Vec& other) const {
+ f32 abs = abs2XZ(other);
+ return sqrtf(abs);
+ }
f32 getMagXZ() const { return cXyz(this->x, 0, this->z).getSquareMag(); }
};
diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h
index cdce05bcbf..22e01aed97 100644
--- a/include/d/a/d_a_alink.h
+++ b/include/d/a/d_a_alink.h
@@ -4,6 +4,7 @@
#include "JSystem/J3DGraphBase/J3DMatBlock.h"
#include "Z2AudioLib/Z2Creature.h"
#include "Z2AudioLib/Z2WolfHowlMgr.h"
+#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
#include "d/a/d_a_player.h"
#include "d/bg/d_bg_s.h"
#include "d/cc/d_cc_d.h"
@@ -17,12 +18,12 @@
#include "d/msg/d_msg_flow.h"
#include "d/particle/d_particle.h"
#include "d/particle/d_particle_copoly.h"
+#include "rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h"
#include "dolphin/types.h"
class fopEn_enemy_c;
class daAlinkHIO_anm_c;
class J3DAnmTevRegKey;
-class dCcG_At_Spl;
class dDemo_actor_c;
class J2DScreen;
@@ -78,7 +79,7 @@ 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;
@@ -108,13 +109,55 @@ 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;
};
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,
+ ANM_GANON_FINISH = 408 // name probably wrong, fix later
};
enum daAlink_UPPER {
@@ -126,157 +169,196 @@ 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,
};
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,
+ /* 0x0F7 */ WOLF_SIDESTEP = 247,
+ /* 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,
+ /* 0x150 */ DEAD = 336,
+ /* 0x159 */ LARGE_DAMAGE = 345,
+ /* 0x15A */ LARGE_DAMAGE_WALL,
};
// this might be one of the above enums, but not clear yet
@@ -297,9 +379,10 @@ public:
/* 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();
@@ -326,7 +409,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();
@@ -343,10 +426,10 @@ public:
/* 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();
@@ -447,14 +530,14 @@ public:
/* 800B1FB8 */ bool checkLv2MiddleBossBgRide(s16);
/* 800B1FD8 */ void getSlidePolygon(cM3dGPla*);
/* 800B21EC */ void checkSlope() const;
- /* 800B25CC */ u32 itemTriggerCheck(u8);
- /* 800B25E8 */ u32 itemButtonCheck(u8);
+ /* 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 +548,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);
@@ -485,19 +568,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();
/* 800B607C */ void checkAutoJumpAction();
- /* 800B69CC */ void checkCutJumpInFly();
+ /* 800B69CC */ bool checkCutJumpInFly();
/* 800B6A30 */ BOOL checkFrontWallTypeAction();
/* 800B6F28 */ void checkItemActionInitStart();
/* 800B7090 */ void checkItemChangeAutoAction();
@@ -505,23 +588,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 +613,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 +627,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,10 +654,10 @@ 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);
/* 800BFF04 */ void loadAram(u16, u32);
@@ -588,16 +671,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,32 +692,32 @@ 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();
@@ -643,7 +726,7 @@ public:
/* 800C5328 */ void 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 +738,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();
@@ -669,15 +752,15 @@ public:
/* 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 +798,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 +853,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);
@@ -846,16 +928,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);
@@ -875,7 +957,7 @@ public:
/* 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 +974,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();
@@ -972,26 +1054,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 +1180,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();
@@ -1575,7 +1656,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 +1766,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();
@@ -1767,7 +1848,7 @@ public:
/* 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();
@@ -1929,7 +2010,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();
@@ -2008,68 +2089,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 +2158,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 +2172,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 +2181,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,58 +2200,77 @@ 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); }
s16 checkWolfEyeUp() const { return mWolfEyeUp; }
+ void onModeFlg(u32 flag) { mModeFlg |= flag; }
+ void offModeFlg(u32 flag) { mModeFlg &= ~flag; }
+ 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 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 i_checkReinRide() const { return mRideStatus == 1 || mRideStatus == 2; }
static u8 const m_mainBckShield[80];
static u8 const m_mainBckSword[20];
@@ -2187,12 +2288,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,7 +2306,7 @@ 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;
@@ -2221,12 +2322,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,7 +2342,7 @@ 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;
@@ -2254,7 +2355,7 @@ private:
/* 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];
@@ -2300,7 +2401,7 @@ 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;
@@ -2310,19 +2411,19 @@ private:
/* 0x027F4 */ fopAc_ac_c* 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;
+ /* 0x0282C */ daPy_actorKeep_c mGrabItemActor;
+ /* 0x02834 */ daPy_actorKeep_c mThrowBoomerangActor;
/* 0x0283C */ daPy_actorKeep_c field_0x283c;
/* 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,7 +2439,7 @@ 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;
@@ -2375,17 +2476,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 +2499,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 +2536,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;
@@ -2525,7 +2626,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 +2666,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 +2703,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;
@@ -2719,7 +2820,7 @@ private:
/* 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;
@@ -2756,7 +2857,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,14 +2888,17 @@ 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;
+ /* 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 {
@@ -2901,29 +3005,419 @@ public:
static daAlinkHIO_wlAutoJump_c1 const m;
};
-class daHorse_c {
+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_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_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_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 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 {
public:
enum daMidna_ERFLG0 {
- NoServiceWait = 128,
- ForcePanic = 8,
+ NO_SERVICE_WAIT = 128,
+ FORCE_PANIC = 8,
+ };
+ enum daMidna_FLG1 {
+ FORCE_NORMAL_COLOR = 8,
+ FORCE_TIRED_COLOR = 4
};
- enum daMidna_FLG1 { ForceNormalColor = 8, ForceTiredColor = 4 };
- void onForcePanic(void);
- u32 checkForceNormalColor(void) const;
- u32 checkForceTiredColor(void) const;
- bool checkMidnaTired(void);
- void onNoServiceWait(void);
+ void onForcePanic();
+ u32 checkForceNormalColor() const;
+ u32 checkForceTiredColor() const;
+ bool checkMidnaTired();
+ void onNoServiceWait();
void onEndResetStateFlg0(daMidna_ERFLG0 pFlg) { mEndResetStateFlg0 |= pFlg; }
u32 checkStateFlg1(daMidna_FLG1 pFlg) const { return mStateFlg1 & pFlg; }
diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h
index 5807f9b45c..786338348d 100644
--- a/include/d/a/d_a_player.h
+++ b/include/d/a/d_a_player.h
@@ -27,11 +27,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:
@@ -66,14 +73,15 @@ 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;
@@ -84,8 +92,8 @@ 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 +111,17 @@ 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; }
private:
/* 0x00 */ u16 mDemoType;
@@ -117,24 +130,32 @@ 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 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 */ u8 field_0x56e[2];
+ /* 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 +168,67 @@ public:
public:
enum daPy_FLG0 {
- EquipHeavyBoots = 0x2000000,
- MagneBootsOn = 0x1000,
- UnkFrollCrashFlg2 = 0x10,
- UnkFrollCrashFlg1 = 0x8
+ EQUIP_HEAVY_BOOTS = 0x2000000,
+ FLG0_UNK_8000000 = 0x8000000,
+ FLG0_UNK_1000000 = 0x1000000,
+ UNDER_WATER_MOVEMENT = 0x800000,
+ FLG0_UNK_80000 = 0x80000,
+ FLG0_UNK_8000 = 0x8000,
+ MAGNE_BOOTS_ON = 0x1000,
+ FLG0_UNK_40 = 0x40,
+ UNK_F_ROLL_CRASH_2 = 0x10,
+ UNK_F_ROLL_CRASH_1 = 0x8
};
- 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_FLG1 { IS_WOLF = 0x2000000, 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_100000 = 0x100000, COPY_ROD_THROW_AFTER = 0x40000 };
+ enum daPy_ERFLG0 { ERFLG0_UNK_8000000 = 0x8000000, ERFLG0_UNK_1000000 = 0x1000000, ERFLG0_UNK_100000 = 0x100000, };
+ enum daPy_ERFLG1 { GANON_FINISH = 0x80000000, UNK_FORCE_PUT_POS = 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,
+ /* 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);
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 +236,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 +248,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 +353,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 +370,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 +401,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,18 +457,37 @@ public:
return sumouCameraMode;
}
+ bool checkStatusWindowDraw() { return i_checkNoResetFlg2(STATUS_WINDOW_DRAW); }
+
// 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; }
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); }
+
+ 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];
};
diff --git a/include/d/cc/d_cc_d.h b/include/d/cc/d_cc_d.h
index 0c86f48f73..447f8bee02 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;
@@ -108,7 +109,11 @@ 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); }
}; // Size = 0x1C
class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase {
@@ -117,6 +122,9 @@ public:
/* 80083C44 */ virtual ~dCcD_GObjAt() {}
void SetVec(cXyz& vec) { mVec = vec; }
cXyz& GetVec() { return mVec; }
+ void SetHitMark(u8 mark) { mHitMark = mark; }
+ void SetSe(u8 se) { mSe = se; }
+ void SetMtrl(u8 mtrl) { mMtrl = mtrl; }
// private:
/* 0x1C */ u8 mSe;
@@ -156,7 +164,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 +184,15 @@ 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); }
static u32 const m_hitSeID[24];
@@ -224,6 +241,10 @@ public:
dCcD_Tri() {}
};
+enum dCcG_At_Spl {
+ /* 0x1 */ dCcG_At_Spl_UNK_01 = 1,
+};
+
dCcD_GObjInf* dCcD_GetGObjInf(cCcD_Obj* param_0);
#endif /* D_CC_D_CC_D_H */
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h
index 058e907b88..83b3fd5380 100644
--- a/include/d/com/d_com_inf_game.h
+++ b/include/d/com/d_com_inf_game.h
@@ -176,6 +176,15 @@ 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; }
+ BOOL checkCameraAttentionStatus(int i, u32 flag) { return mCameraInfo[i].mCameraAttentionStatus & flag; }
+ s8 getPlayerCameraID(int i) { return mPlayerCameraID[i]; }
+ void set3DStatus(u8 status, u8 direction, u8 flag) {
+ m3DStatus = status;
+ m3DDirection = direction;
+ m3DSetFlag = flag;
+ }
public:
/* 0x00000 */ dBgS mDBgS;
@@ -384,8 +393,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;
@@ -451,6 +460,8 @@ 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);
inline void dComIfGp_setRStatus(u8 status, u8 flag) {
g_dComIfG_gameInfo.play.setRStatus(status, flag);
@@ -1019,4 +1030,40 @@ 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();
+}
+
#endif /* D_COM_D_COM_INF_GAME_H */
diff --git a/include/d/d_attention.h b/include/d/d_attention.h
index 0edb7ab71b..ad270ddfb0 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,22 @@ 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() && !chkFlag(0x20000000)) {
+ chk = false;
+ }
+ return chk;
+ }
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/event/d_event.h b/include/d/event/d_event.h
index 748dfb38be..b541927041 100644
--- a/include/d/event/d_event.h
+++ b/include/d/event/d_event.h
@@ -80,6 +80,8 @@ public:
void isOrderOK();
u16 chkFlag2(u16 flag) { return flag & mFlag2; }
+ bool runCheck() { return field_0xe5 != 0; }
+ u16 chkEventFlag(u16 flag) { return flag & mEventFlag; }
public:
/* 0x000 */ u8 field_0x0[4];
diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h
index 45d0c24903..3e68b3a741 100644
--- a/include/d/event/d_event_manager.h
+++ b/include/d/event/d_event_manager.h
@@ -48,7 +48,7 @@ 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);
diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h
index 4a35b1fc32..42c1e9ead2 100644
--- a/include/d/kankyo/d_kankyo.h
+++ b/include/d/kankyo/d_kankyo.h
@@ -114,7 +114,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 +123,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;
@@ -655,6 +662,6 @@ public:
STATIC_ASSERT(sizeof(dScnKy_env_light_c) == 4880);
-BOOL dKy_darkworld_stage_check(char const*, int);
+bool dKy_darkworld_stage_check(char const*, int);
#endif /* D_KANKYO_D_KANKYO_H */
diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h
index 96baf9dc29..91977e0be3 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,9 @@ class dSv_restart_c {
public:
void setRoom(const cXyz&, s16, s8);
+ s16 getStartPoint() const { return mStartPoint; }
+ u32 getLastMode() const { return mLastMode; }
+
private:
/* 0x00 */ s8 mRoomNo;
/* 0x01 */ u8 field_0x01[3];
@@ -999,6 +1006,8 @@ 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_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..92a42a42dc 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,10 @@ inline u32 fopAcM_GetParam(const void* pActor) {
return fpcM_GetParam(pActor);
}
+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 +138,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);
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..efb15dbf7a 100644
--- a/include/m_Do/m_Do_ext.h
+++ b/include/m_Do/m_Do_ext.h
@@ -87,8 +87,10 @@ public:
/* 80140DF0 */ ~mDoExt_AnmRatioPack();
/* 80140E2C */ mDoExt_AnmRatioPack();
+ void setRatio(f32 ratio) { mRatio = ratio; }
+
private:
- /* 0x0 */ float mRatio;
+ /* 0x0 */ f32 mRatio;
/* 0x4 */ J3DAnmTransform* mAnmTransform;
}; // Size = 0x8
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..111712b628 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
@@ -2,5 +2,127 @@
#define D_A_BOOMERANG_H
#include "dolphin/types.h"
+#include "f_op/f_op_actor.h"
+#include "JSystem/J2DGraph/J2DScreen.h"
+#include "d/bg/d_bg_s_acch.h"
+#include "d/particle/d_particle_copoly.h"
+#include "Z2AudioLib/Z2SoundObject.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..4ef24817a3 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,28 @@
#ifndef D_A_CROD_H
#define D_A_CROD_H
+#include "f_op/f_op_actor.h"
+#include "f_op/f_op_actor_mng.h"
#include "dolphin/types.h"
+class daCrod_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);
+ }
+};
+
#endif /* D_A_CROD_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..828cd41a1a 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
@@ -2,5 +2,203 @@
#define D_A_OBJ_CARRY_H
#include "dolphin/types.h"
+#include "SSystem/SComponent/c_xyz.h"
+#include "d/bg/d_bg_s_acch.h"
+#include "d/cc/d_cc_d.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 */