summaryrefslogtreecommitdiff
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
parent74ed2da8bc93804373cddf64c0c878603150b699 (diff)
wip
-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
-rw-r--r--libs/Z2AudioLib/Z2LinkMgr.cpp1
-rw-r--r--rel/d/a/d_a_boomerang/d_a_boomerang.cpp258
-rw-r--r--rel/d/a/d_a_crod/d_a_crod.cpp81
-rw-r--r--rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.cpp416
-rw-r--r--rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.cpp32
-rw-r--r--src/d/a/d_a_alink.cpp3563
-rw-r--r--src/d/a/d_a_player.cpp83
-rw-r--r--src/d/bg/d_bg_s_acch.cpp4
-rw-r--r--src/d/com/d_com_inf_game.cpp36
-rw-r--r--src/d/d_att_dist.cpp674
-rw-r--r--src/d/d_attention.cpp4
-rw-r--r--src/d/d_drawlist.cpp2
-rw-r--r--src/d/d_jnt_col.cpp1
-rw-r--r--src/d/event/d_event_manager.cpp2
-rw-r--r--src/d/kankyo/d_kankyo.cpp2
-rw-r--r--src/d/particle/d_particle.cpp2
-rw-r--r--src/d/save/d_save.cpp14
-rw-r--r--src/m_Do/m_Do_ext.cpp1
-rw-r--r--src/m_Do/m_Do_mtx.cpp1
47 files changed, 3773 insertions, 3722 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 */
diff --git a/libs/Z2AudioLib/Z2LinkMgr.cpp b/libs/Z2AudioLib/Z2LinkMgr.cpp
index b65cfd2804..08c33a6589 100644
--- a/libs/Z2AudioLib/Z2LinkMgr.cpp
+++ b/libs/Z2AudioLib/Z2LinkMgr.cpp
@@ -167,7 +167,6 @@ extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" extern void* __vt__14Z2SoundStarter[5 + 1 /* padding */];
extern "C" extern void* __vt__16Z2SoundObjSimple[8];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" extern u32 __float_nan;
extern "C" extern u8 data_80450B40[4];
extern "C" extern u8 data_80450B44[4];
extern "C" extern u8 data_80450B48[4];
diff --git a/rel/d/a/d_a_boomerang/d_a_boomerang.cpp b/rel/d/a/d_a_boomerang/d_a_boomerang.cpp
index 4819b54c46..0a7ca0e6f1 100644
--- a/rel/d/a/d_a_boomerang/d_a_boomerang.cpp
+++ b/rel/d/a/d_a_boomerang/d_a_boomerang.cpp
@@ -11,21 +11,6 @@
// Types:
//
-struct csXyz {
- /* 802673F4 */ csXyz(s16, s16, s16);
-};
-
-struct Vec {};
-
-struct cXyz {
- /* 80266B34 */ void operator-(Vec const&) const;
- /* 80266C18 */ void operator/(f32) const;
- /* 80267128 */ void atan2sX_Z() const;
- /* 80267150 */ void atan2sY_XZ() const;
- /* 8049EE8C */ ~cXyz();
- /* 804A27FC */ cXyz();
-};
-
struct mDoMtx_stack_c {
/* 8000CD64 */ void transS(cXyz const&);
/* 8000CD9C */ void transM(f32, f32, f32);
@@ -34,77 +19,10 @@ struct mDoMtx_stack_c {
static u8 now[48];
};
-struct J3DModelData {};
-
-struct J3DAnmTransform {};
-
-struct mDoExt_bckAnm {
- /* 8000D7DC */ void init(J3DAnmTransform*, int, int, f32, s16, s16, bool);
- /* 8000D9CC */ void entry(J3DModelData*, f32);
-};
-
-struct fopAc_ac_c {
- /* 80018B64 */ fopAc_ac_c();
- /* 80018C8C */ ~fopAc_ac_c();
-};
-
-struct fopAcM_wt_c {
- /* 8001DD84 */ void waterCheck(cXyz const*);
-
- static f32 mWaterY[1 + 1 /* padding */];
-};
-
-struct fopAcM_rc_c {
- /* 8001DD1C */ void roofCheck(cXyz const*);
-
- static u8 mRoofCheck[80];
- static f32 mRoofY;
-};
-
-struct J3DModel {};
-
struct daMirror_c {
/* 8003194C */ void entry(J3DModel*);
};
-struct daBoomerang_sight_c {
- /* 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 */ ~daBoomerang_sight_c();
-};
-
-struct daBoomerang_c {
- /* 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();
-};
-
struct daBoomerang_HIO_c0 {
static u16 const m_lockWaitTime;
static f32 const m_minCircleR;
@@ -114,8 +32,6 @@ struct daBoomerang_HIO_c0 {
static f32 const m_lockWindScale;
};
-struct J3DAnmBase {};
-
struct daAlink_c {
/* 8009D884 */ void getAlinkArcName();
/* 800A9248 */ void simpleAnmPlay(J3DAnmBase*);
@@ -129,24 +45,8 @@ struct daAlink_c {
/* 800E08C4 */ void returnBoomerang(int);
};
-struct dKy_tevstr_c {};
-
-struct dScnKy_env_light_c {
- /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
- /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
-};
-
-struct dRes_info_c {};
-
-struct dRes_control_c {
- /* 8003C1E4 */ void getResInfo(char const*, dRes_info_c*, int);
- /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
-};
-
struct dPa_levelEcallBack {};
-struct _GXColor {};
-
struct dPa_control_c {
struct level_c {
/* 8004B918 */ void getEmitter(u32);
@@ -157,8 +57,6 @@ struct dPa_control_c {
_GXColor const*, cXyz const*, f32);
};
-struct cBgS_PolyInfo {};
-
struct dBgS {
/* 80074BE8 */ void GetPolyColor(cBgS_PolyInfo const&);
/* 80074DAC */ void GetUnderwaterRoofCode(cBgS_PolyInfo const&);
@@ -166,29 +64,6 @@ struct dBgS {
/* 80075100 */ void GetRoomId(cBgS_PolyInfo const&);
};
-struct dBgS_AcchCir {};
-
-struct dBgS_Acch {
- /* 80075F94 */ ~dBgS_Acch();
- /* 800760A0 */ dBgS_Acch();
- /* 80076288 */ void Set(fopAc_ac_c*, int, dBgS_AcchCir*);
- /* 80076AAC */ void CrrPos(dBgS&);
-};
-
-struct dPaPo_c {
- /* 80050C9C */ void init(dBgS_Acch*, f32, f32);
- /* 80051008 */ void setEffectCenter(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
- csXyz const*, cXyz const*, s8, f32, f32);
-};
-
-struct dDlst_base_c {
- /* 804A2718 */ void draw();
-};
-
-struct dDlst_list_c {
- /* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*);
-};
-
struct cCcD_Obj {};
struct dCcMassS_Mng {
@@ -223,47 +98,6 @@ struct dCcD_Cps {
/* 80084824 */ void CalcAtVec();
};
-struct dBgS_PolyPassChk {
- /* 80078E68 */ void SetObj();
-};
-
-struct dBgS_ObjLinChk {
- /* 80077F5C */ dBgS_ObjLinChk();
- /* 80077FB8 */ ~dBgS_ObjLinChk();
-};
-
-struct dBgS_ObjGndChk {
- /* 804A2524 */ ~dBgS_ObjGndChk();
-};
-
-struct dBgS_ObjAcch {
- /* 804A2688 */ ~dBgS_ObjAcch();
-};
-
-struct dBgS_LinChk {
- /* 80077D64 */ void Set(cXyz const*, cXyz const*, fopAc_ac_c const*);
-};
-
-struct dBgS_GndChk {
- /* 8007757C */ dBgS_GndChk();
- /* 800775F0 */ ~dBgS_GndChk();
-};
-
-struct dBgS_BoomerangLinChk {
- /* 800782B8 */ dBgS_BoomerangLinChk();
- /* 80078314 */ ~dBgS_BoomerangLinChk();
-};
-
-struct cM3dGPla {
- /* 804A082C */ ~cM3dGPla();
-};
-
-struct cM3dGCyl {
- /* 8026F1DC */ void SetC(cXyz const&);
- /* 8026F1F8 */ void SetH(f32);
- /* 804A259C */ ~cM3dGCyl();
-};
-
struct cM3dGCps {
/* 8026EF88 */ cM3dGCps();
/* 8026EFA4 */ ~cM3dGCps();
@@ -282,29 +116,12 @@ struct cCcD_GStts {
/* 804A271C */ ~cCcD_GStts();
};
-struct cBgS_LinChk {};
-
-struct cBgS_GndChk {
- /* 80267D28 */ void SetPos(cXyz const*);
-};
-
struct cBgS {
/* 800743B4 */ void LineCross(cBgS_LinChk*);
/* 800744A0 */ void GroundCross(cBgS_GndChk*);
/* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
};
-struct Z2SoundObjSimple {
- /* 802BE844 */ Z2SoundObjSimple();
-};
-
-struct Z2SoundObjBase {
- /* 802BDF48 */ ~Z2SoundObjBase();
- /* 802BDFF8 */ void deleteObject();
-};
-
-struct JAISoundID {};
-
struct Z2SeMgr {
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
};
@@ -317,51 +134,11 @@ struct JMath {
static u8 sincosTable_[65536];
};
-struct JKRFileLoader {
- /* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*);
-};
-
-struct JKRArchive {};
-
-struct JGeometry {
- template <typename A1>
- struct TVec3 {};
- /* TVec3<f32> */
- struct TVec3__template0 {};
-};
-
-struct J3DSys {
- static u8 mCurrentMtx[48];
-};
-
-struct J3DAnmTextureSRTKey {
- /* 8032B1D4 */ void searchUpdateMaterialID(J3DModelData*);
-};
-
-struct J3DMaterialTable {
- /* 8032FCC4 */ void entryTexMtxAnimator(J3DAnmTextureSRTKey*);
-};
-
-struct J3DJoint {};
-
-struct J3DFrameCtrl {
- /* 803283FC */ void init(s16);
- /* 804A2800 */ ~J3DFrameCtrl();
-};
-
-struct J2DGrafContext {};
-
-struct J2DScreen {
- /* 802F8498 */ J2DScreen();
- /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*);
- /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*);
- /* 802F9690 */ void animation();
-};
-
struct J2DAnmLoaderDataBase {
/* 80308A6C */ void load(void const*);
};
+
//
// Forward References:
//
@@ -547,11 +324,6 @@ extern "C" void load__20J2DAnmLoaderDataBaseFPCv();
extern "C" void init__12J3DFrameCtrlFs();
extern "C" void searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData();
extern "C" void entryTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey();
-extern "C" void PSMTXCopy();
-extern "C" void PSMTXConcat();
-extern "C" void PSVECSquareMag();
-extern "C" void PSVECDotProduct();
-extern "C" void PSVECSquareDistance();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void __ptmf_scall();
@@ -585,13 +357,10 @@ extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mRoofCheck__11fopAcM_rc_c[80];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
-extern "C" extern u8 j3dSys[284];
extern "C" u8 mCurrentMtx__6J3DSys[48];
extern "C" u8 sincosTable___5JMath[65536];
-extern "C" extern u32 __float_nan;
extern "C" f32 mRoofY__11fopAcM_rc_c;
extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */];
-extern "C" extern u8 struct_80450D64[4];
extern "C" extern u8 struct_8045101C[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
@@ -831,7 +600,8 @@ asm void daBoomerang_sight_c::copyNumData(int param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm cXyz::~cXyz() {
+// asm cXyz::~cXyz() {
+extern "C" asm void __dt__4cXyzFv() {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__4cXyzFv.s"
}
@@ -1600,7 +1370,8 @@ asm void daBoomerang_c::setEffect() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm cM3dGPla::~cM3dGPla() {
+// asm cM3dGPla::~cM3dGPla() {
+extern "C" asm void __dt__8cM3dGPlaFv() {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__8cM3dGPlaFv.s"
}
@@ -1813,7 +1584,8 @@ asm daBoomerang_c::daBoomerang_c() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm dBgS_ObjGndChk::~dBgS_ObjGndChk() {
+// asm dBgS_ObjGndChk::~dBgS_ObjGndChk() {
+extern "C" asm void __dt__14dBgS_ObjGndChkFv() {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__14dBgS_ObjGndChkFv.s"
}
@@ -1823,7 +1595,8 @@ asm dBgS_ObjGndChk::~dBgS_ObjGndChk() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm cM3dGCyl::~cM3dGCyl() {
+// asm cM3dGCyl::~cM3dGCyl() {
+extern "C" asm void __dt__8cM3dGCylFv() {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__8cM3dGCylFv.s"
}
@@ -1853,7 +1626,8 @@ asm dCcD_GStts::~dCcD_GStts() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm dBgS_ObjAcch::~dBgS_ObjAcch() {
+// asm dBgS_ObjAcch::~dBgS_ObjAcch() {
+extern "C" asm void __dt__12dBgS_ObjAcchFv() {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__12dBgS_ObjAcchFv.s"
}
@@ -1871,7 +1645,7 @@ static asm void daBoomerang_Create(fopAc_ac_c* param_0) {
#pragma pop
/* 804A2718-804A271C 0046D8 0004+00 1/0 0/0 0/0 .text draw__12dDlst_base_cFv */
-void dDlst_base_c::draw() {
+void draw__12dDlst_base_cFv() {
/* empty function */
}
@@ -1939,14 +1713,15 @@ static asm void func_804A2784() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm daBoomerang_sight_c::~daBoomerang_sight_c() {
+// asm daBoomerang_sight_c::~daBoomerang_sight_c() {
+extern "C" asm void __dt__19daBoomerang_sight_cFv() {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__19daBoomerang_sight_cFv.s"
}
#pragma pop
/* 804A27FC-804A2800 0047BC 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
-cXyz::cXyz() {
+extern "C" void __ct__4cXyzFv() {
/* empty function */
}
@@ -1954,7 +1729,8 @@ cXyz::cXyz() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm J3DFrameCtrl::~J3DFrameCtrl() {
+// asm J3DFrameCtrl::~J3DFrameCtrl() {
+extern "C" asm void __dt__12J3DFrameCtrlFv() {
nofralloc
#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/__dt__12J3DFrameCtrlFv.s"
}
diff --git a/rel/d/a/d_a_crod/d_a_crod.cpp b/rel/d/a/d_a_crod/d_a_crod.cpp
index 1297281f70..149ae46ce8 100644
--- a/rel/d/a/d_a_crod/d_a_crod.cpp
+++ b/rel/d/a/d_a_crod/d_a_crod.cpp
@@ -11,15 +11,6 @@
// Types:
//
-struct csXyz {};
-
-struct Vec {};
-
-struct cXyz {
- /* 80266B34 */ void operator-(Vec const&) const;
- /* 80267128 */ void atan2sX_Z() const;
-};
-
struct mDoMtx_stack_c {
/* 8000CD64 */ void transS(cXyz const&);
/* 8000CF44 */ void ZXYrotM(csXyz const&);
@@ -27,45 +18,11 @@ struct mDoMtx_stack_c {
static u8 now[48];
};
-struct J3DModelData {};
-
-struct J3DAnmTransform {};
-
-struct mDoExt_bckAnm {
- /* 8000D7DC */ void init(J3DAnmTransform*, int, int, f32, s16, s16, bool);
- /* 8000D9CC */ void entry(J3DModelData*, f32);
-};
-
-struct mDoExt_baseAnm {
- /* 8000D428 */ void play();
-};
-
-struct fopAc_ac_c {
- /* 80018B64 */ fopAc_ac_c();
- /* 80018C8C */ ~fopAc_ac_c();
-};
-
struct daPy_actorKeep_c {
/* 8015ECB8 */ void setData(fopAc_ac_c*);
/* 8015ECFC */ void clearData();
};
-struct daCrod_c {
- /* 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();
-};
-
-struct J3DAnmBase {};
-
struct daAlink_c {
/* 8009D884 */ void getAlinkArcName();
/* 800A9248 */ void simpleAnmPlay(J3DAnmBase*);
@@ -74,13 +31,6 @@ struct daAlink_c {
/* 800E1A30 */ void returnCopyRod();
};
-struct dKy_tevstr_c {};
-
-struct dScnKy_env_light_c {
- /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
- /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
-};
-
struct dRes_info_c {};
struct dRes_control_c {
@@ -147,32 +97,10 @@ struct Z2AudioMgr {
static u8 mAudioMgrPtr[4 + 4 /* padding */];
};
-struct LIGHT_INFLUENCE {};
-
struct JMath {
static u8 sincosTable_[65536];
};
-struct J3DModel {};
-
-struct J3DAnmTextureSRTKey {
- /* 8032B1D4 */ void searchUpdateMaterialID(J3DModelData*);
-};
-
-struct J3DAnmTevRegKey {
- /* 8032B87C */ void searchUpdateMaterialID(J3DModelData*);
-};
-
-struct J3DMaterialTable {
- /* 8032FCC4 */ void entryTexMtxAnimator(J3DAnmTextureSRTKey*);
- /* 8032FE70 */ void entryTevRegAnimator(J3DAnmTevRegKey*);
-};
-
-struct J3DFrameCtrl {
- /* 803283FC */ void init(s16);
- /* 804A329C */ ~J3DFrameCtrl();
-};
-
//
// Forward References:
//
@@ -251,11 +179,6 @@ extern "C" void searchUpdateMaterialID__19J3DAnmTextureSRTKeyFP12J3DModelData();
extern "C" void searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData();
extern "C" void entryTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey();
extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey();
-extern "C" void PSMTXCopy();
-extern "C" void PSMTXMultVec();
-extern "C" void PSVECAdd();
-extern "C" void PSVECSquareMag();
-extern "C" void PSVECSquareDistance();
extern "C" void _savegpr_27();
extern "C" void _savegpr_29();
extern "C" void _restgpr_27();
@@ -271,7 +194,6 @@ extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" u8 sincosTable___5JMath[65536];
-extern "C" extern u32 __float_nan;
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" extern u8 data_804A4218[4];
@@ -416,7 +338,8 @@ asm dCcD_GStts::~dCcD_GStts() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm J3DFrameCtrl::~J3DFrameCtrl() {
+// asm J3DFrameCtrl::~J3DFrameCtrl() {
+extern "C" asm void __dt__12J3DFrameCtrlFv() {
nofralloc
#include "asm/rel/d/a/d_a_crod/d_a_crod/__dt__12J3DFrameCtrlFv.s"
}
diff --git a/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.cpp b/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.cpp
index 86c07b80e7..7e416ddff6 100644
--- a/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.cpp
+++ b/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.cpp
@@ -11,14 +11,6 @@
// Types:
//
-struct request_of_phase_process_class {};
-
-struct csXyz {
- /* 802673F4 */ csXyz(s16, s16, s16);
-};
-
-struct Quaternion {};
-
struct mDoMtx_stack_c {
/* 8000CD9C */ void transM(f32, f32, f32);
/* 8000CF44 */ void ZXYrotM(csXyz const&);
@@ -27,211 +19,6 @@ struct mDoMtx_stack_c {
static u8 now[48];
};
-struct fopAc_ac_c {
- /* 80018B64 */ fopAc_ac_c();
-};
-
-struct Vec {};
-
-struct cXyz {
- /* 80266B34 */ void operator-(Vec const&) const;
- /* 80266B84 */ void operator*(f32) const;
- /* 80266F48 */ void normalizeZP();
- /* 80266FDC */ void normalizeRS();
- /* 8026706C */ bool operator!=(Vec const&) const;
- /* 802670AC */ void isZero() const;
-
- static f32 Zero[3];
- static u8 BaseX[12];
-};
-
-struct fopAcM_lc_c {
- /* 8001DC68 */ void lineCheck(cXyz const*, cXyz const*, fopAc_ac_c const*);
-};
-
-struct fopAcM_gc_c {
- /* 8001DCBC */ void gndCheck(cXyz const*);
-
- static u8 mGndCheck[84];
- static f32 mGroundY;
-};
-
-struct daPy_py_c {
- /* 8015F60C */ void wolfGrabSubjectNoDraw(fopAc_ac_c*);
- /* 8015F698 */ void checkCarryStartLightBallA();
- /* 8015F730 */ void checkCarryStartLightBallB();
-};
-
-struct daPy_boomerangMove_c {
- /* 8015E5B0 */ void initOffset(cXyz const*);
- /* 8015E654 */ void posMove(cXyz*, s16*, fopAc_ac_c*, s16);
- /* 8015E87C */ void bgCheckAfterOffset(cXyz const*);
-};
-
-struct cBgS_PolyInfo {
- /* 802680B0 */ ~cBgS_PolyInfo();
-};
-
-struct daObjCarry_c {
- /* 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();
-
- static u8 const mData[2072];
-};
-
-struct J3DModel {};
-
struct daMirror_c {
/* 8003194C */ void entry(J3DModel*);
};
@@ -240,40 +27,6 @@ struct dTres_c {
/* 8009C3CC */ void setPosition(int, u8, Vec const*, int);
};
-struct dSv_info_c {
- /* 80035200 */ void onSwitch(int, int);
- /* 80035360 */ void isSwitch(int, int) const;
- /* 800356B4 */ void offActor(int, int);
-};
-
-struct dSv_event_c {
- /* 8003498C */ void onEventBit(u16);
- /* 800349A4 */ void offEventBit(u16);
- /* 800349BC */ void isEventBit(u16) const;
-};
-
-struct dStage_roomControl_c {
- /* 800244E8 */ void checkRoomDisp(int) const;
-};
-
-struct dKy_tevstr_c {};
-
-struct J3DModelData {};
-
-struct dScnKy_env_light_c {
- /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
- /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
-};
-
-struct dRes_info_c {};
-
-struct dRes_control_c {
- /* 8003C37C */ void getRes(char const*, char const*, dRes_info_c*, int);
- /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
-};
-
-struct JPABaseEmitter {};
-
struct dPa_modelEcallBack {
/* 8004AC00 */ void setModel(JPABaseEmitter*, J3DModelData*, dKy_tevstr_c const&, u8, void*, u8,
u8);
@@ -283,8 +36,6 @@ struct dPa_modelEcallBack {
struct dPa_levelEcallBack {};
-struct _GXColor {};
-
struct dPa_control_c {
/* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
@@ -302,81 +53,10 @@ struct dJntCol_c {
/* 80035CA0 */ void init(fopAc_ac_c*, dJntColData_c const*, J3DModel*, int);
};
-struct dDlst_shadowControl_c {
- static u8 mSimpleTexObj[32];
-};
-
-struct cCcD_Obj {};
-
struct dCcMassS_Mng {
/* 80085D98 */ void Set(cCcD_Obj*, u8);
};
-struct dCcD_Stts {
- /* 80083860 */ void Init(int, int, fopAc_ac_c*);
-};
-
-struct dCcD_SrcSph {};
-
-struct dCcD_SrcCyl {};
-
-struct dCcD_SrcCps {};
-
-struct dCcD_Sph {
- /* 80084A34 */ void Set(dCcD_SrcSph const&);
-};
-
-struct dCcD_GStts {
- /* 80083760 */ dCcD_GStts();
- /* 80083830 */ void Move();
- /* 8046FE68 */ ~dCcD_GStts();
-};
-
-struct dCcD_GObjInf {
- /* 80083A28 */ dCcD_GObjInf();
- /* 800842C0 */ void ChkAtHit();
- /* 80084460 */ void ChkTgHit();
- /* 800844F8 */ void GetTgHitObj();
- /* 80084548 */ void GetTgHitGObj();
- /* 8008457C */ void GetTgHitObjSe();
- /* 800845B0 */ void getHitSeID(u8, int);
- /* 80084658 */ void ChkCoHit();
-};
-
-struct dCcD_GAtTgCoCommonBase {
- /* 80083688 */ void GetAc();
-};
-
-struct dCcD_Cyl {
- /* 800848B4 */ void Set(dCcD_SrcCyl const&);
-};
-
-struct dCcD_Cps {
- /* 800847D0 */ void Set(dCcD_SrcCps const&);
-};
-
-struct dBgS_SplGrpChk {
- /* 80078B90 */ void Set(cXyz&, f32);
-};
-
-struct dBgS_PolyPassChk {
- /* 80078E68 */ void SetObj();
- /* 80078E74 */ void ClrObj();
- /* 80078E98 */ void SetLink();
- /* 80078F94 */ void SetIronBall();
- /* 80078FA0 */ void ClrIronBall();
-};
-
-struct dBgS_ObjAcch {
- /* 8046FF34 */ ~dBgS_ObjAcch();
-};
-
-struct dBgS_AcchCir {
- /* 80075EAC */ dBgS_AcchCir();
- /* 80075F58 */ void SetWall(f32, f32);
- /* 8046FEC4 */ ~dBgS_AcchCir();
-};
-
struct dBgS {
/* 80074B40 */ void ChkMoveBG_NoDABg(cBgS_PolyInfo const&);
/* 80074E50 */ void GetPolyAtt0(cBgS_PolyInfo const&);
@@ -384,64 +64,16 @@ struct dBgS {
/* 80075564 */ void SplGrpChk(dBgS_SplGrpChk*);
};
-struct dBgS_Acch {
- /* 80075F94 */ ~dBgS_Acch();
- /* 800760A0 */ dBgS_Acch();
- /* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*);
- /* 80076AAC */ void CrrPos(dBgS&);
- /* 800773A4 */ void ClrMoveBGOnly();
-};
-
-struct cM3dGSph {
- /* 8026F648 */ void SetC(cXyz const&);
- /* 8046FD90 */ ~cM3dGSph();
-};
-
-struct cM3dGPla {
- /* 8046F2F4 */ ~cM3dGPla();
-};
-
-struct cM3dGCylS {};
-
-struct cM3dGCyl {
- /* 8026F114 */ void Set(cM3dGCylS const&);
- /* 8026F1DC */ void SetC(cXyz const&);
- /* 8046FDD8 */ ~cM3dGCyl();
-};
-
-struct cM3dGCps {
- /* 8026EF88 */ cM3dGCps();
- /* 8026F000 */ void Set(cXyz const&, cXyz const&, f32);
-};
-
-struct cM3dGCir {
- /* 8026EF18 */ ~cM3dGCir();
-};
-
-struct cM3dGAab {
- /* 8046FE20 */ ~cM3dGAab();
-};
-
struct cCcS {
/* 80264BA8 */ void Set(cCcD_Obj*);
};
-struct cCcD_Stts {
- /* 8026395C */ void ClrCcMove();
-};
-
-struct cCcD_GStts {
- /* 80479890 */ ~cCcD_GStts();
-};
-
struct cBgS {
/* 80074618 */ void GetActorPointer(int) const;
/* 80074660 */ void ChkPolySafe(cBgS_PolyInfo const&);
/* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const;
};
-struct _GXTexObj {};
-
struct Z2SoundObjSimple {
/* 802BE844 */ Z2SoundObjSimple();
};
@@ -462,16 +94,10 @@ struct Z2AudioMgr {
static u8 mAudioMgrPtr[4 + 4 /* padding */];
};
-struct JUTNameTab {
- /* 802DEAF8 */ void getName(u16) const;
-};
-
struct JMath {
static u8 sincosTable_[65536];
};
-struct DALKMIST_INFLUENCE {};
-
//
// Forward References:
//
@@ -657,7 +283,6 @@ extern "C" extern char const* const d_a_obj_carry__stringBase0;
// External References:
//
-extern "C" void OSReport_Error();
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
extern "C" void mDoMtx_XrotM__FPA4_fs();
extern "C" void mDoMtx_YrotS__FPA4_fs();
@@ -796,20 +421,6 @@ extern "C" void startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase();
extern "C" void __ct__16Z2SoundObjSimpleFv();
extern "C" void __dl__FPv();
extern "C" void getName__10JUTNameTabCFUs();
-extern "C" void PSMTXIdentity();
-extern "C" void PSMTXCopy();
-extern "C" void PSMTXConcat();
-extern "C" void PSMTXRotAxisRad();
-extern "C" void PSMTXTrans();
-extern "C" void PSMTXMultVec();
-extern "C" void PSVECAdd();
-extern "C" void PSVECScale();
-extern "C" void PSVECSquareMag();
-extern "C" void PSVECDotProduct();
-extern "C" void C_VECReflect();
-extern "C" void PSVECSquareDistance();
-extern "C" void PSQUATMultiply();
-extern "C" void C_QUATSlerp();
extern "C" void __ptmf_scall();
extern "C" void __cvt_fp2unsigned();
extern "C" void _savegpr_23();
@@ -826,7 +437,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
-extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" extern u8 ZeroQuat[16];
@@ -848,9 +458,7 @@ extern "C" extern u8 g_env_light[4880];
extern "C" f32 Zero__4cXyz[3];
extern "C" u8 BaseX__4cXyz[12];
extern "C" u8 sincosTable___5JMath[65536];
-extern "C" extern u32 __float_nan;
extern "C" f32 mGroundY__11fopAcM_gc_c;
-extern "C" extern u8 struct_80450D64[4];
extern "C" u8 mEcallback__18dPa_modelEcallBack[4];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
@@ -2499,7 +2107,8 @@ static asm void bound(cXyz* param_0, cBgS_PolyInfo const& param_1, f32 param_2)
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm cM3dGPla::~cM3dGPla() {
+extern "C" asm void __dt__8cM3dGPlaFv() {
+// asm cM3dGPla::~cM3dGPla() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry/__dt__8cM3dGPlaFv.s"
}
@@ -2782,7 +2391,8 @@ asm daObjCarry_c::daObjCarry_c() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm cM3dGSph::~cM3dGSph() {
+extern "C" asm void __dt__8cM3dGSphFv() {
+// asm cM3dGSph::~cM3dGSph() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry/__dt__8cM3dGSphFv.s"
}
@@ -2792,7 +2402,8 @@ asm cM3dGSph::~cM3dGSph() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm cM3dGCyl::~cM3dGCyl() {
+extern "C" asm void __dt__8cM3dGCylFv() {
+// asm cM3dGCyl::~cM3dGCyl() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry/__dt__8cM3dGCylFv.s"
}
@@ -2802,7 +2413,8 @@ asm cM3dGCyl::~cM3dGCyl() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm cM3dGAab::~cM3dGAab() {
+extern "C" asm void __dt__8cM3dGAabFv() {
+// asm cM3dGAab::~cM3dGAab() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry/__dt__8cM3dGAabFv.s"
}
@@ -2812,7 +2424,8 @@ asm cM3dGAab::~cM3dGAab() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm dCcD_GStts::~dCcD_GStts() {
+extern "C" asm void __dt__10dCcD_GSttsFv() {
+// asm dCcD_GStts::~dCcD_GStts() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry/__dt__10dCcD_GSttsFv.s"
}
@@ -2822,7 +2435,8 @@ asm dCcD_GStts::~dCcD_GStts() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm dBgS_AcchCir::~dBgS_AcchCir() {
+extern "C" asm void __dt__12dBgS_AcchCirFv() {
+// asm dBgS_AcchCir::~dBgS_AcchCir() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry/__dt__12dBgS_AcchCirFv.s"
}
@@ -2832,7 +2446,8 @@ asm dBgS_AcchCir::~dBgS_AcchCir() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm dBgS_ObjAcch::~dBgS_ObjAcch() {
+extern "C" asm void __dt__12dBgS_ObjAcchFv() {
+// asm dBgS_ObjAcch::~dBgS_ObjAcch() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry/__dt__12dBgS_ObjAcchFv.s"
}
@@ -4690,7 +4305,8 @@ static asm void daObjCarry_Create(fopAc_ac_c* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm cCcD_GStts::~cCcD_GStts() {
+extern "C" asm void __dt__10cCcD_GSttsFv() {
+// asm cCcD_GStts::~cCcD_GStts() {
nofralloc
#include "asm/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry/__dt__10cCcD_GSttsFv.s"
}
diff --git a/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.cpp b/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.cpp
index fd40bd4011..1cbe7b23be 100644
--- a/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.cpp
+++ b/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.cpp
@@ -8,38 +8,6 @@
#include "dolphin/types.h"
//
-// Types:
-//
-
-struct fopAc_ac_c {
- /* 80018B64 */ fopAc_ac_c();
- /* 80018C8C */ ~fopAc_ac_c();
-};
-
-struct daTagMmsg_c {
- /* 80D5B918 */ void create();
- /* 80D5BAB4 */ ~daTagMmsg_c();
- /* 80D5BB30 */ void execute();
-};
-
-struct daPy_py_c {
- static u8 m_midnaActor[4];
-};
-
-struct dSv_info_c {
- /* 80035200 */ void onSwitch(int, int);
- /* 80035360 */ void isSwitch(int, int) const;
-};
-
-struct dSv_event_flag_c {
- static u8 saveBitLabels[1644 + 4 /* padding */];
-};
-
-struct dSv_event_c {
- /* 800349BC */ void isEventBit(u16) const;
-};
-
-//
// Forward References:
//
diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp
index cb7d394ae0..4827466f51 100644
--- a/src/d/a/d_a_alink.cpp
+++ b/src/d/a/d_a_alink.cpp
@@ -4,7 +4,10 @@
//
#include "d/a/d_a_alink.h"
+#include "d/d_bomb.h"
#include "JSystem/J3DGraphLoader/J3DAnmLoader.h"
+#include "JSystem/JMath/JMath.h"
+#include "SSystem/SComponent/c_math.h"
#include "Z2AudioLib/Z2AudioMgr.h"
#include "d/a/d_a_horse_static.h"
#include "d/com/d_com_inf_game.h"
@@ -12,7 +15,10 @@
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "m_Do/m_Do_ext.h"
+#include "m_Do/m_Do_audio.h"
#include "m_Do/m_Do_mtx.h"
+#include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h"
+#include "rel/d/a/d_a_crod/d_a_crod.h"
//
// Types:
@@ -70,19 +76,6 @@ struct daMirror_c {
/* 8003194C */ void entry(J3DModel*);
};
-struct daCrod_c {
- /* 80141A94 */ void setControllActorData();
-};
-
-struct daAlink_matAnm_c {
- /* 8009D8E4 */ void init();
- /* 8009D90C */ void calc(J3DMaterial*) const;
- /* 800D0180 */ void offSetFlg();
- /* 800D0B8C */ ~daAlink_matAnm_c();
-};
-
-struct dCcG_At_Spl {};
-
struct dDemo_actor_c {
/* 8003819C */ void getPrm_Morf();
/* 80038338 */ void getDemoIDData(int*, int*, int*, u16*, u8*);
@@ -188,10 +181,6 @@ struct daAlinkHIO_wlBackJump_c0 {
static u8 const m[56];
};
-struct daAlinkHIO_wlAttack_c0 {
- static u8 const m[56];
-};
-
struct daAlinkHIO_wlAtnMove_c0 {
static u8 const m[56];
};
@@ -236,10 +225,6 @@ struct daAlinkHIO_wlAtBite_c0 {
static u8 const m[92];
};
-struct daAlinkHIO_wallMove_c0 {
- static u8 const m[20];
-};
-
struct daAlinkHIO_wallHang_c0 {
static u8 const m[28];
};
@@ -252,10 +237,6 @@ struct daAlinkHIO_wallCatch_c0 {
static u8 const m[84];
};
-struct daAlinkHIO_turnMove_c0 {
- static u8 const m[44];
-};
-
struct daAlinkHIO_swim_c0 {
static u8 const m[252];
};
@@ -268,14 +249,6 @@ struct daAlinkHIO_smallJump_c0 {
static u8 const m[72];
};
-struct daAlinkHIO_slide_c0 {
- static u8 const m[120];
-};
-
-struct daAlinkHIO_sideStep_c0 {
- static u8 const m[104];
-};
-
struct daAlinkHIO_roofHang_c0 {
static u8 const m[76];
};
@@ -292,14 +265,6 @@ struct daAlinkHIO_noActAtnMove_c0 {
static u8 const m[84];
};
-struct daAlinkHIO_move_c0 {
- static u8 const m[88];
-};
-
-struct daAlinkHIO_magneBoots_c0 {
- static u8 const m[76];
-};
-
struct daAlinkHIO_ladder_c0 {
static u8 const m[112];
};
@@ -364,10 +329,6 @@ struct daAlinkHIO_gAtKick_c0 {
static u8 const m[36];
};
-struct daAlinkHIO_frontRoll_c0 {
- static u8 const m[112];
-};
-
struct daAlinkHIO_fmChain_c0 {
static u8 const m[40];
};
@@ -404,10 +365,6 @@ struct daAlinkHIO_damCaught_c0 {
static u8 const m[36];
};
-struct daAlinkHIO_cut_c0 {
- static u8 const m[156];
-};
-
struct daAlinkHIO_cut_c {
/* 80140BD4 */ ~daAlinkHIO_cut_c();
};
@@ -440,10 +397,6 @@ struct daAlinkHIO_cutLargeJump_c0 {
static u8 const m[116];
};
-struct daAlinkHIO_cutJump_c0 {
- static u8 const m[68];
-};
-
struct daAlinkHIO_cutHead_c0 {
static u8 const m[96];
};
@@ -521,10 +474,6 @@ struct daAlinkHIO_boom_c0 {
static u8 const m[76];
};
-struct daAlinkHIO_bomb_c0 {
- static u8 const m[76];
-};
-
struct daAlinkHIO_board_c0 {
static u8 const m[156];
};
@@ -533,10 +482,6 @@ struct daAlinkHIO_backJump_c0 {
static u8 const m[56];
};
-struct daAlinkHIO_atnMove_c0 {
- static u8 const m[84];
-};
-
struct dPa_control_c {
struct level_c {
/* 8004B8B4 */ void forceOnEventMove(u32);
@@ -621,12 +566,6 @@ struct JAISeq {
/* 802A0A8C */ JAISeq(JAISeqMgr*, JAISoundStrategyMgr<JAISeq>*);
};
-struct J3DMaterialAnm {
- /* 800A4820 */ ~J3DMaterialAnm();
- /* 8032C320 */ void initialize();
- /* 8032C3C4 */ void calc(J3DMaterial*) const;
-};
-
struct J2DAnmLoaderDataBase {
/* 80308A6C */ void load(void const*);
};
@@ -3638,6 +3577,14 @@ inline Z2CreatureLink* Z2GetLink() {
return Z2CreatureLink::mLinkPtr;
}
+inline u16 i_dComIfGs_getLife() {
+ return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getLife();
+}
+
+inline BOOL i_dComIfGs_isEventBit(u16 id) {
+ return g_dComIfG_gameInfo.info.getEvent().isEventBit(id);
+}
+
/* 8009D87C-8009D884 0981BC 0008+00 0/0 1/1 0/0 .text getE3Zhint__9daAlink_cFv */
bool daAlink_c::getE3Zhint() {
return false;
@@ -3713,8 +3660,10 @@ static u8 struct_80450FC4[4];
/* 80450FC8-80450FCC -00001 0004+00 5/5 0/0 0/0 .sbss None */
/* 80450FC8 0001+00 data_80450FC8 None */
+static bool struct_80450FC8; // sEyeMoveFlg
+
/* 80450FC9 0003+00 data_80450FC9 None */
-static u8 struct_80450FC8[4];
+static u8 sMorfFrame;
/* 80452C98-80452C9C 001298 0004+00 102/102 0/0 0/0 .sdata2 @5943 */
SECTION_SDATA2 static f32 lit_5943 = 0.5f;
@@ -3752,14 +3701,16 @@ SECTION_SDATA2 static u8 lit_6108[4] = {
};
/* 8009D8E4-8009D90C 098224 0028+00 2/2 0/0 0/0 .text init__16daAlink_matAnm_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_matAnm_c::init() {
- nofralloc
-#include "asm/d/a/d_a_alink/init__16daAlink_matAnm_cFv.s"
+void daAlink_matAnm_c::init() {
+ f32 tmp_0 = FLOAT_LABEL(lit_6108);
+ field_0xf4 = tmp_0;
+ field_0xf8 = tmp_0;
+ mNowOffsetX = tmp_0;
+ mNowOffsetY = tmp_0;
+ struct_80450FC8 = false; // sEyeMoveFlg
+ sMorfFrame = 0;
+ mSetFlag = 0;
}
-#pragma pop
/* 8009D90C-8009DA60 09824C 0154+00 1/0 0/0 0/0 .text calc__16daAlink_matAnm_cCFP11J3DMaterial */
#pragma push
@@ -3771,6 +3722,37 @@ asm void daAlink_matAnm_c::calc(J3DMaterial* param_0) const {
}
#pragma pop
+/* void daAlink_matAnm_c::calc(J3DMaterial* param_0) const {
+ J3DMaterialAnm::calc(param_0);
+
+ if (!daAlink_getAlinkActorClass()->checkStatusWindowDraw()) {
+ for (u32 i = 0; i < 8; i++) {
+ if (getTexMtxAnm(i).getAnmFlag()) {
+ J3DTexMtxInfo* info = &param_0->getTexGenBlock()->getTexMtx(i)->getTexMtxInfo();
+ if (sMorfFrame != 0) {
+ if (mSetFlag == 0) {
+ f32 tmp = 1.0f / sMorfFrame;
+ info->field_0x10.field_0xc = field_0xf4 * (1.0f - tmp) + info->field_0x10.field_0xc * tmp;
+ info->field_0x10.field_0x10 = field_0xf8 * (1.0f - tmp) + info->field_0x10.field_0xc * tmp;
+ //mSetFlag = 1;
+ } else {
+ info->field_0x10.field_0xc = field_0xf4;
+ info->field_0x10.field_0x10 = field_0xf8;
+ }
+ }
+
+ if (struct_80450FC8) {
+ info->field_0x10.field_0xc = mNowOffsetX;
+ info->field_0x10.field_0x10 = mNowOffsetY;
+ }
+
+
+
+ }
+ }
+ }
+} */
+
bool daAlink_c::checkStageName(const char* stage) {
return strcmp(dComIfGp_getStartStageName(), stage) == 0;
}
@@ -5076,26 +5058,16 @@ daAlinkHIO_basic_c1 const daAlinkHIO_basic_c0::m = {
60.0f, 85.0f, 300.0f, 200.0f, 20.0f, 30.0f, 23.0f, 41.0f, 0.7f, 0.5f, 0.7f, 400.0f, 5000.0f};
/* 8038D6BC-8038D714 019D1C 0058+00 34/47 0/0 0/0 .rodata m__18daAlinkHIO_move_c0 */
-SECTION_RODATA u8 const daAlinkHIO_move_c0::m[88] = {
- 0x00, 0x0B, 0x00, 0x00, 0x3F, 0x33, 0x33, 0x33, 0x40, 0x40, 0x00, 0x00, 0x40, 0x80, 0x00,
- 0x00, 0x41, 0x40, 0x00, 0x00, 0x11, 0x94, 0x00, 0x64, 0x00, 0x05, 0x00, 0x00, 0x3F, 0x80,
- 0x00, 0x00, 0x3F, 0x40, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x3E, 0xCC, 0xCC, 0xCD, 0x3F,
- 0x4C, 0xCC, 0xCD, 0x41, 0xB8, 0x00, 0x00, 0x3F, 0xF3, 0x33, 0x33, 0x40, 0x0C, 0xCC, 0xCD,
- 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x8C, 0xCC, 0xCD, 0x3F, 0xC0, 0x00, 0x00, 0x3F, 0x7D, 0x70,
- 0xA4, 0x40, 0x40, 0x00, 0x00, 0x3F, 0x33, 0x33, 0x33, 0x3E, 0xCC, 0xCC, 0xCD,
+daAlinkHIO_move_c1 const daAlinkHIO_move_c0::m = {
+ { 11, 0.7f, 3.0f, 4.0f, 12.0f },
+ 4500, 100, 5, 1.0f, 0.75f, 1.5f, 0.4f, 0.8f, 23.0f, 1.9f, 2.2f, 0.6f, 1.1f, 1.5f, 0.99f, 3.0f, 0.7f, 0.4f
};
-COMPILER_STRIP_GATE(0x8038D6BC, &daAlinkHIO_move_c0::m);
/* 8038D714-8038D768 019D74 0054+00 10/16 0/0 0/0 .rodata m__21daAlinkHIO_atnMove_c0 */
-SECTION_RODATA u8 const daAlinkHIO_atnMove_c0::m[84] = {
- 0x0B, 0xB8, 0x07, 0xD0, 0x00, 0x06, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A, 0x3F, 0x8C,
- 0xCC, 0xCD, 0x3F, 0xC0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x19, 0x99, 0x9A,
- 0x41, 0x50, 0x00, 0x00, 0x40, 0xC0, 0x00, 0x00, 0x40, 0xF0, 0x00, 0x00, 0x3F, 0x33,
- 0x33, 0x33, 0x3F, 0xB3, 0x33, 0x33, 0x3E, 0x80, 0x00, 0x00, 0x3F, 0x33, 0x33, 0x33,
- 0x41, 0x70, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3F, 0x00,
- 0x00, 0x00, 0x3E, 0xCC, 0xCC, 0xCD, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66,
+daAlinkHIO_atnMove_c1 const daAlinkHIO_atnMove_c0::m = {
+ 3000, 2000, 6, 1.2f, 1.1f, 1.5f, 0.5f, 0.6f, 13.0f, 6.0f, 7.5f,
+ 0.7f, 1.4f, 0.25f, 0.7f, 15.0f, 2.5f, 8.0f, 0.5f, 0.4f, 1.0f, 1.3f
};
-COMPILER_STRIP_GATE(0x8038D714, &daAlinkHIO_atnMove_c0::m);
/* 8038D768-8038D7BC 019DC8 0054+00 3/9 0/0 0/0 .rodata m__26daAlinkHIO_noActAtnMove_c0 */
SECTION_RODATA u8 const daAlinkHIO_noActAtnMove_c0::m[84] = {
@@ -5109,16 +5081,12 @@ SECTION_RODATA u8 const daAlinkHIO_noActAtnMove_c0::m[84] = {
COMPILER_STRIP_GATE(0x8038D768, &daAlinkHIO_noActAtnMove_c0::m);
/* 8038D7BC-8038D82C 019E1C 0070+00 5/7 0/0 0/0 .rodata m__23daAlinkHIO_frontRoll_c0 */
-SECTION_RODATA u8 const daAlinkHIO_frontRoll_c0::m[112] = {
- 0x00, 0x1D, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00,
- 0x41, 0xB0, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x40, 0x40, 0x00, 0x00,
- 0x40, 0x00, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A,
- 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, 0x27, 0x10, 0x00, 0x05,
- 0x03, 0xE8, 0x00, 0x64, 0x40, 0x40, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66, 0x41, 0xC8, 0x00, 0x00,
- 0x41, 0x20, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00,
- 0x41, 0x40, 0x00, 0x00, 0x41, 0x10, 0x00, 0x00, 0x41, 0x98, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00,
+daAlinkHIO_frontRoll_c1 const daAlinkHIO_frontRoll_c0::m = {
+ { 29, 1.1f, 0.0f, 3.0f, 22.0f },
+ { 29, 0.8f, 3.0f, 2.0f, 25.0f },
+ { 33, 1.2f, 0.0f, 1.0f, 25.0f },
+ 10000, 5, 1000, 100, 3.0f, 1.3f, 25.0f, 10.0f, 3.0f, 15.0f, 10.0f, 12.0f, 9.0f, 19.0f, 60.0f
};
-COMPILER_STRIP_GATE(0x8038D7BC, &daAlinkHIO_frontRoll_c0::m);
/* 8038D82C-8038D864 019E8C 0038+00 5/5 0/0 0/0 .rodata m__22daAlinkHIO_backJump_c0 */
SECTION_RODATA u8 const daAlinkHIO_backJump_c0::m[56] = {
@@ -5130,29 +5098,22 @@ SECTION_RODATA u8 const daAlinkHIO_backJump_c0::m[56] = {
COMPILER_STRIP_GATE(0x8038D82C, &daAlinkHIO_backJump_c0::m);
/* 8038D864-8038D8CC 019EC4 0068+00 3/3 0/0 0/0 .rodata m__22daAlinkHIO_sideStep_c0 */
-SECTION_RODATA u8 const daAlinkHIO_sideStep_c0::m[104] = {
- 0x00, 0x05, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00,
- 0x00, 0x40, 0xC0, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x3F,
- 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0xE0, 0x00, 0x00,
- 0x00, 0x09, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00,
- 0x00, 0x40, 0x80, 0x00, 0x00, 0x41, 0xE0, 0x00, 0x00, 0x41, 0xB0, 0x00, 0x00, 0x41, 0xC8,
- 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00,
+daAlinkHIO_sideStep_c1 const daAlinkHIO_sideStep_c0::m = {
+ { 5, 1.1f, 1.0f, 3.0f, 6.0f },
+ { 9, 1.0f, 0.0f, 3.0f, 2.0f },
+ { 6, 1.0f, 0.0f, 3.0f, 7.0f },
+ { 9, 1.1f, 0.0f, 3.0f, 4.0f },
+ 28.0f, 22.0f, 25.0f, 20.0f, 100.0f, 10.0f
};
-COMPILER_STRIP_GATE(0x8038D864, &daAlinkHIO_sideStep_c0::m);
/* 8038D8CC-8038D944 019F2C 0078+00 5/10 0/0 0/0 .rodata m__19daAlinkHIO_slide_c0 */
-SECTION_RODATA u8 const daAlinkHIO_slide_c0::m[120] = {
- 0x00, 0x0E, 0x00, 0x00, 0x3F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00,
- 0x00, 0x41, 0x70, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x00, 0x00,
- 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0xE0, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x3F,
- 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x10, 0x00, 0x00,
- 0x00, 0x14, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00,
- 0x00, 0x41, 0x80, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0x48,
- 0x00, 0x00, 0x41, 0xD8, 0x00, 0x00, 0x3E, 0x4C, 0xCC, 0xCD, 0x41, 0x40, 0x00, 0x00, 0x42,
- 0x48, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0x04, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A,
-};
-COMPILER_STRIP_GATE(0x8038D8CC, &daAlinkHIO_slide_c0::m);
+daAlinkHIO_slide_c1 const daAlinkHIO_slide_c0::m = {
+ { 14, 0.75f, 0.0f, 5.0f, 15.0f },
+ { 6, 0.9f, 0.0f, 3.0f, 7.0f },
+ { 15, 1.0f, 0.0f, 3.0f, 9.0f },
+ { 20, 1.0f, 0.0f, 3.0f, 16.0f },
+ 40.0f, 3.0f, 50.0f, 27.0f, 0.2f, 12.0f, 50.0f, 3.0f, 33.0f, 1.2f
+};
/* 8038D944-8038D964 019FA4 0020+00 0/1 0/0 0/0 .rodata m__20daAlinkHIO_cutNmV_c0 */
#pragma push
@@ -5282,14 +5243,11 @@ SECTION_RODATA u8 const daAlinkHIO_cutFnJU_c0::m[84] = {
COMPILER_STRIP_GATE(0x8038DAEC, &daAlinkHIO_cutFnJU_c0::m);
/* 8038DB40-8038DB84 01A1A0 0044+00 4/4 0/0 0/0 .rodata m__21daAlinkHIO_cutJump_c0 */
-SECTION_RODATA u8 const daAlinkHIO_cutJump_c0::m[68] = {
- 0x00, 0x11, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
- 0x00, 0x00, 0x41, 0x90, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x10, 0x00, 0x00, 0x41, 0xC8,
- 0x00, 0x00, 0x41, 0xD8, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x41, 0x50, 0x00, 0x00,
- 0x41, 0x50, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00,
+daAlinkHIO_cutJump_c1 const daAlinkHIO_cutJump_c0::m = {
+ { 17, 1.1f, 0.0f, 2.0f, 18.0f },
+ { 29, 1.0f, 2.0f, 0.0f, 9.0f },
+ 25.0f, 27.0f, 15.0f, 13.0f, 13.0f, 1.0f, 3.0f
};
-COMPILER_STRIP_GATE(0x8038DB40, &daAlinkHIO_cutJump_c0::m);
/* 8038DB84-8038DC1C 01A1E4 0098+00 5/6 0/0 0/0 .rodata m__21daAlinkHIO_cutTurn_c0 */
SECTION_RODATA u8 const daAlinkHIO_cutTurn_c0::m[152] = {
@@ -5425,19 +5383,16 @@ SECTION_RODATA u8 const daAlinkHIO_cutLargeJump_c0::m[116] = {
COMPILER_STRIP_GATE(0x8038DE18, &daAlinkHIO_cutLargeJump_c0::m);
/* 8038DE8C-8038DF28 01A4EC 009C+00 21/30 0/0 0/0 .rodata m__17daAlinkHIO_cut_c0 */
-SECTION_RODATA u8 const daAlinkHIO_cut_c0::m[156] = {
- 0x00, 0x12, 0x00, 0x00, 0xBF, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00,
- 0xBF, 0x80, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
- 0x40, 0x40, 0x00, 0x00, 0x41, 0xB8, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x41, 0xD8, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x0F, 0x00, 0x08, 0x00, 0x0A, 0x00, 0x5A, 0x00, 0x4B, 0x0F, 0xA0,
- 0xF0, 0x60, 0x00, 0x1E, 0x41, 0x40, 0x00, 0x00, 0x3F, 0xA0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x3F, 0xCC, 0xCC, 0xCD, 0x42, 0x34, 0x00, 0x00, 0x3F, 0xD3, 0x33, 0x33,
- 0x42, 0x82, 0x00, 0x00, 0x3F, 0x9A, 0xE1, 0x48, 0x42, 0x0C, 0x00, 0x00, 0x40, 0x13, 0x33, 0x33,
- 0x40, 0x0C, 0xCC, 0xCD, 0x42, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x8038DE8C, &daAlinkHIO_cut_c0::m);
+daAlinkHIO_cut_c1 const daAlinkHIO_cut_c0::m = {
+ { 18, -1.100f, 0.0f, 3.0f, -1.0f },
+ { 22, 0.9f, 0.0f, 3.0f, 23.0f },
+ { 45, 1.0f, 0.0f, 3.0f, 15.0f },
+ { 47, 1.0f, 0.0f, 5.0f, 27.0f },
+ 0, 1, 15, 8, 10, 90, 75, 4000, -4000, 30,
+ 12.0f, 1.250f, 1.0f, 1.0f, 1.6f, 45.0f,
+ 1.65f, 65.0f, 1.21f, 35.0f, 2.3f, 2.2f, 65.0f,
+ 0.0f
+};
/* 8038DF28-8038DF4C 01A588 0024+00 1/1 0/0 0/0 .rodata m__21daAlinkHIO_gAtPush_c0 */
SECTION_RODATA u8 const daAlinkHIO_gAtPush_c0::m[36] = {
@@ -5459,12 +5414,10 @@ COMPILER_STRIP_GATE(0x8038DF4C, &daAlinkHIO_gAtKick_c0::m);
#pragma pop
/* 8038DF70-8038DF9C 01A5D0 002C+00 4/4 0/0 0/0 .rodata m__22daAlinkHIO_turnMove_c0 */
-SECTION_RODATA u8 const daAlinkHIO_turnMove_c0::m[44] = {
- 0x00, 0x1B, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00,
- 0x00, 0x41, 0xB0, 0x00, 0x00, 0x00, 0x05, 0x09, 0xC4, 0x00, 0xC8, 0x03, 0xE8, 0x3F, 0x8C,
- 0xCC, 0xCD, 0x41, 0x98, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00,
+daAlinkHIO_turnMove_c1 const daAlinkHIO_turnMove_c0::m = {
+ { 27, 1.0f, 0.0f, 3.0f, 22.0f },
+ 5, 2500, 200, 1000, 1.1f, 19.0f, 1.5f, 25.0f,
};
-COMPILER_STRIP_GATE(0x8038DF70, &daAlinkHIO_turnMove_c0::m);
/* 8038DF9C-8038E01C 01A5FC 0080+00 6/7 0/0 0/0 .rodata m__19daAlinkHIO_guard_c0 */
SECTION_RODATA u8 const daAlinkHIO_guard_c0::m[128] = {
@@ -5552,11 +5505,9 @@ SECTION_RODATA u8 const daAlinkHIO_wallFall_c0::m[40] = {
COMPILER_STRIP_GATE(0x8038E1B8, &daAlinkHIO_wallFall_c0::m);
/* 8038E1E0-8038E1F4 01A840 0014+00 2/2 0/0 0/0 .rodata m__22daAlinkHIO_wallMove_c0 */
-SECTION_RODATA u8 const daAlinkHIO_wallMove_c0::m[20] = {
- 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x8C, 0xCC, 0xCD, 0x40, 0x40,
- 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00,
+daAlinkHIO_wallMove_c1 const daAlinkHIO_wallMove_c0::m = {
+ 0.8f, 1.1f, 3.0f, 2.0f, 3.0f
};
-COMPILER_STRIP_GATE(0x8038E1E0, &daAlinkHIO_wallMove_c0::m);
/* 8038E1F4-8038E210 01A854 001C+00 2/5 0/0 0/0 .rodata m__22daAlinkHIO_wallHang_c0 */
SECTION_RODATA u8 const daAlinkHIO_wallHang_c0::m[28] = {
@@ -5749,14 +5700,10 @@ SECTION_RODATA u8 const daAlinkHIO_boom_c0::m[76] = {
COMPILER_STRIP_GATE(0x8038E6C8, &daAlinkHIO_boom_c0::m);
/* 8038E714-8038E760 01AD74 004C+00 14/14 0/0 0/0 .rodata m__18daAlinkHIO_bomb_c0 */
-SECTION_RODATA u8 const daAlinkHIO_bomb_c0::m[76] = {
- 0x00, 0xA0, 0x00, 0x32, 0x00, 0x32, 0x00, 0x00, 0xC0, 0x86, 0x66, 0x66, 0xC2, 0xC8, 0x00, 0x00,
- 0x3E, 0xB3, 0x33, 0x33, 0x40, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66,
- 0x43, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x4C, 0xCC, 0xCD, 0xC0, 0xE0, 0x00, 0x00,
- 0x41, 0xD0, 0x00, 0x00, 0x42, 0x04, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00,
- 0x42, 0x20, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
+daAlinkHIO_bomb_c1 const daAlinkHIO_bomb_c0::m = {
+ 160, 50, 50, -4.2f, -100.0f, 0.350f, 2.0f, 20.0f, 1.3f, 225.0f, 0.0f, -0.8f, -7.0f, 26.0f, 33.0f,
+ 10.0f, 15.0f, 40.0f, 15.0f, 300.0f
};
-COMPILER_STRIP_GATE(0x8038E714, &daAlinkHIO_bomb_c0::m);
/* 8038E760-8038E77C 01ADC0 001C+00 0/1 0/0 0/0 .rodata m__21daAlinkHIO_huLight_c0 */
#pragma push
@@ -5787,14 +5734,10 @@ SECTION_RODATA u8 const daAlinkHIO_fmChain_c0::m[40] = {
COMPILER_STRIP_GATE(0x8038E7CC, &daAlinkHIO_fmChain_c0::m);
/* 8038E7F4-8038E840 01AE54 004C+00 17/21 0/0 0/0 .rodata m__24daAlinkHIO_magneBoots_c0 */
-SECTION_RODATA u8 const daAlinkHIO_magneBoots_c0::m[76] = {
- 0x00, 0x1D, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00,
- 0x41, 0xB8, 0x00, 0x00, 0x3E, 0xCC, 0xCC, 0xCD, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0xE6, 0x66, 0x66,
- 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x40, 0x00, 0x00, 0x3E, 0xE6, 0x66, 0x66, 0x3F, 0x19, 0x99, 0x9A,
- 0x42, 0x48, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x3E, 0xB3, 0x33, 0x33, 0x3E, 0x99, 0x99, 0x9A,
- 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0x33, 0x33, 0x33,
+daAlinkHIO_magneBoots_c1 const daAlinkHIO_magneBoots_c0::m = {
+ {29, 1.1f, 0.0f, 3.0f, 23.0f},
+ 0.4f, 1.0f, 1.8f, 0.7f, 0.75f, 0.45, 0.6f, 50.0f, 10.0f, 0.35f, 0.3f, 0.7f, 0.8f, 0.7f
};
-COMPILER_STRIP_GATE(0x8038E7F4, &daAlinkHIO_magneBoots_c0::m);
/* 8038E840-8038E870 01AEA0 0030+00 6/6 0/0 0/0 .rodata m__20daAlinkHIO_pickUp_c0 */
SECTION_RODATA u8 const daAlinkHIO_pickUp_c0::m[48] = {
@@ -6293,13 +6236,10 @@ SECTION_RODATA u8 const daAlinkHIO_wlAtBite_c0::m[92] = {
COMPILER_STRIP_GATE(0x8038F748, &daAlinkHIO_wlAtBite_c0::m);
/* 8038F7A4-8038F7DC 01BE04 0038+00 7/10 0/0 0/0 .rodata m__22daAlinkHIO_wlAttack_c0 */
-SECTION_RODATA u8 const daAlinkHIO_wlAttack_c0::m[56] = {
- 0x00, 0x3B, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
- 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x05, 0x42, 0xC8, 0x00, 0x00,
- 0x41, 0x20, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x43, 0x66, 0x00, 0x00, 0x41, 0x20,
- 0x00, 0x00, 0x41, 0x40, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00,
+daAlinkHIO_wlAttack_c1 const daAlinkHIO_wlAttack_c0::m = {
+ { 59, 1.2f, 0.0f, 2.0f, 5.0f },
+ 15, 5, 100.0f, 10.0f, 5.0f, 230.0f, 10.0f, 12.0f, 35.0f, 30.0f
};
-COMPILER_STRIP_GATE(0x8038F7A4, &daAlinkHIO_wlAttack_c0::m);
/* 8038F7DC-8038F858 01BE3C 007C+00 5/5 0/0 0/0 .rodata m__21daAlinkHIO_wlPoint_c0 */
SECTION_RODATA u8 const daAlinkHIO_wlPoint_c0::m[124] = {
@@ -6444,7 +6384,7 @@ asm void daAlink_c::commonLineCheck(cXyz* param_0, cXyz* param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::getMoveBGActorName(cBgS_PolyInfo& param_0, int param_1) {
+asm s16 daAlink_c::getMoveBGActorName(cBgS_PolyInfo& param_0, int param_1) {
nofralloc
#include "asm/d/a/d_a_alink/getMoveBGActorName__9daAlink_cFR13cBgS_PolyInfoi.s"
}
@@ -7405,101 +7345,81 @@ COMPILER_STRIP_GATE(0x80391734, &lit_5908);
/* 80391740-80391754 01DDA0 0014+00 0/1 0/0 0/0 .rodata atnNormalType1$6976 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const atnNormalType1[20] = {
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
+static int const atnNormalType1[5] = {
+ 4, 1, 1, 2, 0
};
-COMPILER_STRIP_GATE(0x80391740, &atnNormalType1);
#pragma pop
/* 80391754-80391768 01DDB4 0014+00 0/1 0/0 0/0 .rodata atnNormalType2$6977 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const atnNormalType2[20] = {
- 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
+static int const atnNormalType2[5] = {
+ 3, 0, 0, 1, 1
};
-COMPILER_STRIP_GATE(0x80391754, &atnNormalType2);
#pragma pop
/* 80391768-8039177C 01DDC8 0014+00 0/1 0/0 0/0 .rodata atnNormalType3$6978 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const atnNormalType3[20] = {
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+static int const atnNormalType3[5] = {
+ 4, 1, 1, 0, 0
};
-COMPILER_STRIP_GATE(0x80391768, &atnNormalType3);
#pragma pop
/* 8039177C-80391790 01DDDC 0014+00 0/1 0/0 0/0 .rodata atnFinishType$6979 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const atnFinishType[20] = {
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01,
+static int const atnFinishType[5] = {
+ 2, 1, 0, 5, 1
};
-COMPILER_STRIP_GATE(0x8039177C, &atnFinishType);
#pragma pop
/* 80391790-803917A4 01DDF0 0014+00 0/1 0/0 0/0 .rodata hitType$6980 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const hitType[20] = {
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+static int const hitType[5] = {
+ 4, 0, 5, 0, 1
};
-COMPILER_STRIP_GATE(0x80391790, &hitType);
#pragma pop
/* 803917A4-803917B8 01DE04 0014+00 0/1 0/0 0/0 .rodata hitFinishType$6981 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const hitFinishType[20] = {
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
+static int const hitFinishType[5] = {
+ 2, 1, 0, 5, 0
};
-COMPILER_STRIP_GATE(0x803917A4, &hitFinishType);
#pragma pop
/* 803917B8-803917CC 01DE18 0014+00 0/1 0/0 0/0 .rodata normalType1$6982 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const normalType1_6982[20] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01,
+static int const normalType1_6982[5] = {
+ 0, 2, 1, 2, 1
};
-COMPILER_STRIP_GATE(0x803917B8, &normalType1_6982);
#pragma pop
/* 803917CC-803917E0 01DE2C 0014+00 0/1 0/0 0/0 .rodata normalType2$6983 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const normalType2[20] = {
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02,
+static int const normalType2[5] = {
+ 1, 1, 2, 1, 2
};
-COMPILER_STRIP_GATE(0x803917CC, &normalType2);
#pragma pop
/* 803917E0-803917F4 01DE40 0014+00 0/1 0/0 0/0 .rodata normalType3$6984 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const normalType3[20] = {
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01,
+static int const normalType3[5] = {
+ 4, 0, 1, 2, 1
};
-COMPILER_STRIP_GATE(0x803917E0, &normalType3);
#pragma pop
/* 803917F4-80391808 01DE54 0014+00 0/1 0/0 0/0 .rodata finishType$6985 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const finishType[20] = {
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01,
+static int const finishType[5] = {
+ 2, 0, 0, 5, 1
};
-COMPILER_STRIP_GATE(0x803917F4, &finishType);
#pragma pop
/* 80391808-80391858 01DE68 0050+00 0/1 0/0 0/0 .rodata cutParamTable$7312 */
@@ -7530,28 +7450,24 @@ COMPILER_STRIP_GATE(0x80391858, &cutParamTable_7455);
#pragma pop
/* 803918B8-803918C4 01DF18 000C+00 1/1 0/0 0/0 .rodata localCenter$11047 */
-SECTION_RODATA static u8 const localCenter[12] = {
- 0xC1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x90, 0x00, 0x00,
+static Vec const localCenter = {
+ -15.0f, 0.0f, 18.0f
};
-COMPILER_STRIP_GATE(0x803918B8, &localCenter);
/* 803918C4-803918D0 01DF24 000C+00 1/1 0/0 0/0 .rodata localPos$11819 */
-SECTION_RODATA static u8 const localPos[12] = {
- 0x40, 0x5C, 0xCC, 0xCD, 0x42, 0x35, 0x47, 0xAE, 0xC0, 0xE0, 0x00, 0x00,
+static Vec const localPos = {
+ 3.45f, 45.32f, -7.0f
};
-COMPILER_STRIP_GATE(0x803918C4, &localPos);
/* 803918D0-803918DC 01DF30 000C+00 1/1 0/0 0/0 .rodata slingLocalPos$12042 */
-SECTION_RODATA static u8 const slingLocalPos[12] = {
- 0x41, 0x20, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+static Vec const slingLocalPos = {
+ 10.0f, 10.0f, 0.0f
};
-COMPILER_STRIP_GATE(0x803918D0, &slingLocalPos);
/* 803918DC-803918E8 01DF3C 000C+00 1/1 0/0 0/0 .rodata localSidePos$14270 */
-SECTION_RODATA static u8 const localSidePos[12] = {
- 0x40, 0x13, 0x33, 0x33, 0xC1, 0x78, 0x00, 0x00, 0x41, 0x79, 0x99, 0x9A,
+static Vec const localSidePos = {
+ 2.3f, -15.5f, 15.6f
};
-COMPILER_STRIP_GATE(0x803918DC, &localSidePos);
/* 803918E8-803918F4 01DF48 000C+00 0/1 0/0 0/0 .rodata m_handLeftOutSidePos__9daAlink_c */
#pragma push
@@ -14334,7 +14250,8 @@ asm void daAlink_c::createHeap() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm J3DMaterialAnm::~J3DMaterialAnm() {
+// asm J3DMaterialAnm::~J3DMaterialAnm() {
+extern "C" asm void __dt__14J3DMaterialAnmFv() {
nofralloc
#include "asm/d/a/d_a_alink/__dt__14J3DMaterialAnmFv.s"
}
@@ -14342,14 +14259,9 @@ asm J3DMaterialAnm::~J3DMaterialAnm() {
/* 800A48F0-800A4910 09F230 0020+00 1/1 0/0 0/0 .text daAlink_createHeap__FP10fopAc_ac_c
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daAlink_createHeap(fopAc_ac_c* param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/daAlink_createHeap__FP10fopAc_ac_c.s"
+static void daAlink_createHeap(fopAc_ac_c* param_0) {
+ daAlink_c::createHeap();
}
-#pragma pop
/* 800A4910-800A4BC8 09F250 02B8+00 5/5 0/0 0/0 .text setSelectEquipItem__9daAlink_cFi */
#pragma push
@@ -14362,24 +14274,16 @@ asm void daAlink_c::setSelectEquipItem(int param_0) {
#pragma pop
/* 800A4BC8-800A4C40 09F508 0078+00 2/2 0/0 0/0 .text checkBoarStart__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkBoarStart() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkBoarStart__9daAlink_cFv.s"
+BOOL daAlink_c::checkBoarStart() {
+ // Stage: Bulblin Camp Room: Outside Arbiter's
+ return (checkStageName("F_SP118") && getStartRoomNo() == 3) && dComIfGs_getStartPoint() == 0;
}
-#pragma pop
/* 800A4C40-800A4CB4 09F580 0074+00 2/2 0/0 0/0 .text checkCanoeStart__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkCanoeStart() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCanoeStart__9daAlink_cFv.s"
+BOOL daAlink_c::checkCanoeStart() {
+ // Stage: Lake Hylia Room: Lake
+ return (checkStageName("F_SP115") && getStartRoomNo() == 0) && dComIfGs_getStartPoint() == 2;
}
-#pragma pop
/* 800A4CB4-800A54F4 09F5F4 0840+00 1/1 0/0 0/0 .text playerInit__9daAlink_cFv */
#pragma push
@@ -14393,13 +14297,7 @@ asm void daAlink_c::playerInit() {
/* 800A54F4-800A551C 09FE34 0028+00 3/3 0/0 0/0 .text checkHorseStart__9daAlink_cFUli */
BOOL daAlink_c::checkHorseStart(u32 pLastMode, int pStartMode) {
- bool horseStart = false;
-
- if (pLastMode == 1 || pStartMode == 2 || pLastMode == 8) {
- horseStart = true;
- }
-
- return horseStart;
+ return pLastMode == 1 || pStartMode == 2 || pLastMode == 8;
}
/* 800A551C-800A5CC8 09FE5C 07AC+00 1/1 0/0 0/0 .text setStartProcInit__9daAlink_cFv */
@@ -14414,7 +14312,7 @@ asm void daAlink_c::setStartProcInit() {
/* ############################################################################################## */
/* 80450FCC-80450FD0 0004CC 0004+00 1/1 0/0 0/0 .sbss bgWaitFlg$58404 */
-static u8 bgWaitFlg[4];
+static s32 bgWaitFlg;
/* 80450FD0-80450FD8 -00001 0008+00 2/2 0/0 0/0 .sbss None */
/* 80450FD0 0001+00 data_80450FD0 None */
@@ -15063,24 +14961,21 @@ asm void daAlink_c::setWolfCollisionPos() {
#pragma pop
/* 800ABAE0-800ABB28 0A6420 0048+00 2/2 0/0 0/0 .text initLockAt__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::initLockAt() {
- nofralloc
-#include "asm/d/a/d_a_alink/initLockAt__9daAlink_cFv.s"
+void daAlink_c::initLockAt() {
+ field_0x122C[0].OnAtSPrmBit(0x20);
+ field_0x122C[0].OnAtNoHitMark();
+ field_0x122C[0].OffAtNoConHit();
+ field_0x122C[0].ResetAtHit();
}
-#pragma pop
/* 800ABB28-800ABB84 0A6468 005C+00 3/3 0/0 0/0 .text cancelLockAt__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::cancelLockAt() {
- nofralloc
-#include "asm/d/a/d_a_alink/cancelLockAt__9daAlink_cFv.s"
+void daAlink_c::cancelLockAt() {
+ field_0x122C[0].OffAtSPrmBit(0x20);
+ field_0x122C[0].OffAtNoHitMark();
+ field_0x122C[0].OnAtNoConHit();
+ field_0x122C[0].ResetAtHit();
+ field_0x814.SetAtApid(0xFFFFFFFF);
}
-#pragma pop
/* 800ABB84-800ABDB8 0A64C4 0234+00 1/1 0/0 0/0 .text setCollisionPos__9daAlink_cFv */
#pragma push
@@ -15113,26 +15008,28 @@ asm float daAlink_c::getBaseAnimeFrame() const {
#pragma pop
/* 800AC378-800AC394 0A6CB8 001C+00 1/0 0/0 0/0 .text setAnimeFrame__9daAlink_cFf */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setAnimeFrame(f32 param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/setAnimeFrame__9daAlink_cFf.s"
+void daAlink_c::setAnimeFrame(f32 frame) {
+ mFrameCtrl1[0].setFrame(frame);
+ mFrameCtrl1[1].setFrame(frame);
+ mFrameCtrl1[2].setFrame(frame);
+ mFrameCtrl2[0].setFrame(frame);
+ mFrameCtrl2[1].setFrame(frame);
+ mFrameCtrl2[2].setFrame(frame);
}
-#pragma pop
/* 800AC394-800AC450 0A6CD4 00BC+00 6/6 0/0 0/0 .text
* setFrameCtrl__9daAlink_cFP16daPy_frameCtrl_cUcssff */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setFrameCtrl(daPy_frameCtrl_c* param_0, u8 param_1, s16 param_2, s16 param_3,
- f32 param_4, f32 param_5) {
- nofralloc
-#include "asm/d/a/d_a_alink/setFrameCtrl__9daAlink_cFP16daPy_frameCtrl_cUcssff.s"
+void daAlink_c::setFrameCtrl(daPy_frameCtrl_c* p_ctrl, u8 attr, s16 start, s16 end,
+ f32 rate, f32 frame) {
+ if (i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) {
+ if (checkZoraWearAbility()) {
+ rate *= daAlinkHIO_magneBoots_c0::m.mZoraWaterAnmSpeed;
+ } else {
+ rate *= daAlinkHIO_magneBoots_c0::m.mWaterWalkAnmRate;
+ }
+ }
+ p_ctrl->setFrameCtrl(attr, start, end, rate, frame);
}
-#pragma pop
/* ############################################################################################## */
/* 80453278-80453280 001878 0008+00 1/1 0/0 0/0 .sdata2 kandelaarAnm$62207 */
@@ -15187,14 +15084,13 @@ asm void daAlink_c::getUnderUpperAnime(daAlink_c::daAlink_ANM param_0, J3DAnmTra
#pragma pop
/* 800AC738-800AC754 0A7078 001C+00 7/7 0/0 0/0 .text setDoubleAnimeBlendRatio__9daAlink_cFf */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setDoubleAnimeBlendRatio(f32 param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/setDoubleAnimeBlendRatio__9daAlink_cFf.s"
+void daAlink_c::setDoubleAnimeBlendRatio(f32 param_0) {
+ f32 tmp = lit_6040; // remove later
+ field_0x1f28[0].setRatio(tmp - param_0);
+ field_0x1f28[1].setRatio(param_0);
+ field_0x1f40[0].setRatio(tmp - param_0);
+ field_0x1f40[1].setRatio(param_0);
}
-#pragma pop
/* 800AC754-800ACA14 0A7094 02C0+00 2/2 0/0 0/0 .text
* commonDoubleAnime__9daAlink_cFP15J3DAnmTransformP15J3DAnmTransformP15J3DAnmTransformP15J3DAnmTransformfffi
@@ -15237,37 +15133,22 @@ asm void daAlink_c::commonSingleAnime(J3DAnmTransform* param_0, J3DAnmTransform*
/* 800ACF80-800ACFB0 0A78C0 0030+00 88/88 0/0 0/0 .text
* setSingleAnimeBase__9daAlink_cFQ29daAlink_c11daAlink_ANM */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setSingleAnimeBase(daAlink_c::daAlink_ANM param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/setSingleAnimeBase__9daAlink_cFQ29daAlink_c11daAlink_ANM.s"
+void daAlink_c::setSingleAnimeBase(daAlink_c::daAlink_ANM anm) {
+ setSingleAnime(anm, lit_6040, FLOAT_LABEL(lit_6108), -1, lit_6109);
}
-#pragma pop
/* 800ACFB0-800ACFE0 0A78F0 0030+00 27/27 0/0 0/0 .text
* setSingleAnimeBaseMorf__9daAlink_cFQ29daAlink_c11daAlink_ANMf */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM param_0, f32 param_1) {
- nofralloc
-#include "asm/d/a/d_a_alink/setSingleAnimeBaseMorf__9daAlink_cFQ29daAlink_c11daAlink_ANMf.s"
+void daAlink_c::setSingleAnimeBaseMorf(daAlink_c::daAlink_ANM anm, f32 param_1) {
+ setSingleAnime(anm, lit_6040, FLOAT_LABEL(lit_6108), -1, param_1);
}
-#pragma pop
/* 800ACFE0-800AD00C 0A7920 002C+00 77/77 0/0 0/0 .text
* setSingleAnimeBaseSpeed__9daAlink_cFQ29daAlink_c11daAlink_ANMff */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM param_0, f32 param_1,
+void daAlink_c::setSingleAnimeBaseSpeed(daAlink_c::daAlink_ANM anm, f32 param_1,
f32 param_2) {
- nofralloc
-#include "asm/d/a/d_a_alink/setSingleAnimeBaseSpeed__9daAlink_cFQ29daAlink_c11daAlink_ANMff.s"
+ setSingleAnime(anm, param_1, FLOAT_LABEL(lit_6108), -1, param_2);
}
-#pragma pop
/* 800AD00C-800AD0F4 0A794C 00E8+00 58/58 0/0 0/0 .text
* setSingleAnime__9daAlink_cFQ29daAlink_c11daAlink_ANMffsf */
@@ -15295,14 +15176,12 @@ asm void daAlink_c::setSingleAnimeParam(daAlink_c::daAlink_ANM param_0,
/* 800AD128-800AD170 0A7A68 0048+00 1/1 0/0 0/0 .text
* animePlay__9daAlink_cFP15J3DAnmTransformP16daPy_frameCtrl_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::animePlay(J3DAnmTransform* param_0, daPy_frameCtrl_c* param_1) {
- nofralloc
-#include "asm/d/a/d_a_alink/animePlay__9daAlink_cFP15J3DAnmTransformP16daPy_frameCtrl_c.s"
+void daAlink_c::animePlay(J3DAnmTransform* param_0, daPy_frameCtrl_c* param_1) {
+ if (param_0 != NULL) {
+ param_1->updateFrame();
+ param_0->setFrame(param_1->getFrame());
+ }
}
-#pragma pop
/* 800AD170-800AD2D8 0A7AB0 0168+00 2/2 0/0 0/0 .text allAnimePlay__9daAlink_cFv */
#pragma push
@@ -15891,13 +15770,13 @@ asm void daAlink_c::setPlayerPosAndAngle(f32 (*param_0)[4]) {
/* 800B25CC-800B25E8 0ACF0C 001C+00 16/16 0/0 0/0 .text itemTriggerCheck__9daAlink_cFUc
*/
-u32 daAlink_c::itemTriggerCheck(u8 pTrigger) {
+BOOL daAlink_c::itemTriggerCheck(u8 pTrigger) {
field_0x2fae |= pTrigger;
return mItemTrigger & pTrigger;
}
/* 800B25E8-800B2604 0ACF28 001C+00 11/11 0/0 0/0 .text itemButtonCheck__9daAlink_cFUc */
-u32 daAlink_c::itemButtonCheck(u8 pButton) {
+BOOL daAlink_c::itemButtonCheck(u8 pButton) {
field_0x2fae |= pButton;
return mItemButton & pButton;
}
@@ -15918,12 +15797,12 @@ void daAlink_c::spActionTrigger() {
itemTriggerCheck(64);
}
-u32 daAlink_c::midnaTalkTrigger() const {
+BOOL daAlink_c::midnaTalkTrigger() const {
return mItemTrigger & 4;
}
-void daAlink_c::swordSwingTrigger() {
- itemTriggerCheck(8);
+BOOL daAlink_c::swordSwingTrigger() {
+ return itemTriggerCheck(8);
}
/* 800B26DC-800B26FC 0AD01C 0020+00 2/2 0/0 0/0 .text setItemActionButtonStatus__9daAlink_cFUc */
@@ -15991,7 +15870,7 @@ void daAlink_c::setBStatus(u8 status) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkAtnWaitAnime() {
+asm BOOL daAlink_c::checkAtnWaitAnime() {
nofralloc
#include "asm/d/a/d_a_alink/checkAtnWaitAnime__9daAlink_cFv.s"
}
@@ -15999,14 +15878,15 @@ asm void daAlink_c::checkAtnWaitAnime() {
/* 800B3358-800B33E4 0ADC98 008C+00 2/2 0/0 0/0 .text
* setTiredVoice__9daAlink_cFP16daPy_frameCtrl_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setTiredVoice(daPy_frameCtrl_c* param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/setTiredVoice__9daAlink_cFP16daPy_frameCtrl_c.s"
+void daAlink_c::setTiredVoice(daPy_frameCtrl_c* param_0) {
+ if (param_0->checkPass(lit_7448)) {
+ if (i_dComIfGs_getLife() <= 2) {
+ voiceStart(Z2SE_AL_V_TIRED_L);
+ } else {
+ voiceStart(Z2SE_AL_V_TIRED_S);
+ }
+ }
}
-#pragma pop
/* 800B33E4-800B3494 0ADD24 00B0+00 4/4 0/0 0/0 .text checkRestHPAnime__9daAlink_cFv */
#pragma push
@@ -16144,22 +16024,20 @@ asm void daAlink_c::checkServiceWaitMode() {
#pragma pop
/* 800B48D0-800B4908 0AF210 0038+00 18/18 0/0 0/0 .text setJumpMode__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setJumpMode() {
- nofralloc
-#include "asm/d/a/d_a_alink/setJumpMode__9daAlink_cFv.s"
+void daAlink_c::setJumpMode() {
+ onModeFlg(MODE_JUMP);
+ field_0x34f8 = mCurrent.mPosition;
+ field_0x33c4 = field_0x34f8.y;
+ field_0x33c8 = field_0x34f8.y;
}
-#pragma pop
/* 800B4908-800B4918 0AF248 0010+00 0/0 0/0 1/1 .text getMetamorphoseNearDis__9daAlink_cCFv */
-float daAlink_c::getMetamorphoseNearDis() const {
+f32 daAlink_c::getMetamorphoseNearDis() const {
return daAlinkHIO_basic_c0::m.mTransformBlockNearDis;
}
/* 800B4918-800B4928 0AF258 0010+00 0/0 0/0 1/1 .text getMetamorphoseFarDis__9daAlink_cCFv */
-float daAlink_c::getMetamorphoseFarDis() const {
+f32 daAlink_c::getMetamorphoseFarDis() const {
return daAlinkHIO_basic_c0::m.mTransformBlockFarDis;
}
@@ -16169,24 +16047,27 @@ s16 daAlink_c::getMetamorphoseFarAngle() const {
}
/* 800B4938-800B4950 0AF278 0018+00 0/0 1/1 0/0 .text setMidnaMsg__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setMidnaMsg() {
- nofralloc
-#include "asm/d/a/d_a_alink/setMidnaMsg__9daAlink_cFv.s"
+void daAlink_c::setMidnaMsg() {
+ if (mMidnaMsg != NULL) {
+ mMidnaMsg->onUseFlg();
+ }
}
-#pragma pop
/* 800B4950-800B4A08 0AF290 00B8+00 3/3 0/0 0/0 .text notTalk__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::notTalk() {
- nofralloc
-#include "asm/d/a/d_a_alink/notTalk__9daAlink_cFv.s"
+bool daAlink_c::notTalk() {
+ BOOL chk;
+ if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd) && dBgS_CheckBGroundPoly(mLinkAcch.m_gnd)) {
+ chk = true;
+ } else {
+ chk = false;
+ }
+
+ if ((mMidnaTalkDelayTimer != 0 || (i_checkMagneBootsOn() && !cBgW_CheckBGround(mMagneBootsTopVec.y))) ||
+ !i_checkModeFlg(MODE_SWIMMING | MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_RIDING | MODE_NO_COLLISION | MODE_CLIMB | MODE_JUMP) && !chk) {
+ return true;
+ }
+ return false;
}
-#pragma pop
/* 800B4A08-800B4B2C 0AF348 0124+00 11/11 0/0 0/0 .text setTalkStatus__9daAlink_cFv */
#pragma push
@@ -16199,14 +16080,13 @@ asm void daAlink_c::setTalkStatus() {
#pragma pop
/* 800B4B2C-800B4B7C 0AF46C 0050+00 1/1 0/0 0/0 .text getFrontRollRate__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getFrontRollRate() {
- nofralloc
-#include "asm/d/a/d_a_alink/getFrontRollRate__9daAlink_cFv.s"
+f32 daAlink_c::getFrontRollRate() {
+ if (checkHeavyStateOn(1, 1)) {
+ return lit_16641 * mHeavySpeedMultiplier;
+ } else {
+ return lit_16641;
+ }
}
-#pragma pop
/* 800B4B7C-800B5284 0AF4BC 0708+00 2/2 0/0 0/0 .text decideCommonDoStatus__9daAlink_cFv
*/
@@ -16233,34 +16113,47 @@ asm void daAlink_c::decideDoStatus() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkWaitAction() {
+asm BOOL daAlink_c::checkWaitAction() {
nofralloc
#include "asm/d/a/d_a_alink/checkWaitAction__9daAlink_cFv.s"
}
#pragma pop
/* 800B5BC0-800B5C34 0B0500 0074+00 3/3 0/0 0/0 .text setFallVoice__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setFallVoice() {
- nofralloc
-#include "asm/d/a/d_a_alink/setFallVoice__9daAlink_cFv.s"
+void daAlink_c::setFallVoice() {
+ if (field_0x3014 == 0 && lit_8782 * (field_0x33c4 - mCurrent.mPosition.y) > lit_8676) {
+ voiceStart(Z2SE_AL_V_FALL);
+ field_0x3014 = 1;
+ }
}
-#pragma pop
/* 800B5C34-800B5C64 0B0574 0030+00 2/2 0/0 0/0 .text setLandPassiveData__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setLandPassiveData() {
- nofralloc
-#include "asm/d/a/d_a_alink/setLandPassiveData__9daAlink_cFv.s"
+void daAlink_c::setLandPassiveData() {
+ if (field_0x30f0 == 0) {
+ if (doTrigger()) {
+ field_0x30f0 = 0x41;
+ }
+ } else {
+ field_0x30f0--;
+ }
}
-#pragma pop
/* 800B5C64-800B5CCC 0B05A4 0068+00 5/5 0/0 0/0 .text setStepLandVibration__9daAlink_cFv
*/
+// cXyz issues
+#ifdef NONMATCHING
+void daAlink_c::setStepLandVibration() {
+ int shock;
+ if (checkBootsOrArmorHeavy()) {
+ shock = 3;
+ } else {
+ shock = 1;
+ }
+ cXyz xyz(0.0f, 1.0f, 0.0f);
+
+ dComIfGp_getVibration().StartShock(shock, 15, xyz);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -16269,6 +16162,7 @@ asm void daAlink_c::setStepLandVibration() {
#include "asm/d/a/d_a_alink/setStepLandVibration__9daAlink_cFv.s"
}
#pragma pop
+#endif
/* 800B5CCC-800B5F6C 0B060C 02A0+00 5/5 0/0 0/0 .text checkLandAction__9daAlink_cFi */
#pragma push
@@ -16302,14 +16196,12 @@ asm void daAlink_c::checkAutoJumpAction() {
#pragma pop
/* 800B69CC-800B6A30 0B130C 0064+00 2/2 0/0 0/0 .text checkCutJumpInFly__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkCutJumpInFly() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCutJumpInFly__9daAlink_cFv.s"
+bool daAlink_c::checkCutJumpInFly() {
+ if ((mEquipItem == EQUIP_SWORD && i_checkResetFlg0(RFLG0_UNK_80)) || checkForceSwordSwing()) {
+ return procCutJumpInit(1);
+ }
+ return false;
}
-#pragma pop
/* ############################################################################################## */
/* 80450698-8045069C 000118 0004+00 4/4 0/0 0/0 .sdata l_ladderAnmBaseTransY */
@@ -16391,7 +16283,7 @@ asm void daAlink_c::checkItemActorPointer() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkSwordTwirlAction() {
+asm bool daAlink_c::checkSwordTwirlAction() {
nofralloc
#include "asm/d/a/d_a_alink/checkSwordTwirlAction__9daAlink_cFv.s"
}
@@ -16401,7 +16293,7 @@ asm void daAlink_c::checkSwordTwirlAction() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkUpperItemActionFly() {
+asm BOOL daAlink_c::checkUpperItemActionFly() {
nofralloc
#include "asm/d/a/d_a_alink/checkUpperItemActionFly__9daAlink_cFv.s"
}
@@ -16506,7 +16398,7 @@ asm void daAlink_c::checkNormalAction() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkReadyItem() {
+asm bool daAlink_c::checkReadyItem() {
nofralloc
#include "asm/d/a/d_a_alink/checkReadyItem__9daAlink_cFv.s"
}
@@ -16542,7 +16434,7 @@ asm void daAlink_c::checkMoveDoAction() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkSideRollAction(int param_0) {
+asm BOOL daAlink_c::checkSideRollAction(int param_0) {
nofralloc
#include "asm/d/a/d_a_alink/checkSideRollAction__9daAlink_cFi.s"
}
@@ -16553,7 +16445,7 @@ asm void daAlink_c::checkSideRollAction(int param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkNoUpperAnime() const {
+asm BOOL daAlink_c::checkNoUpperAnime() const {
nofralloc
#include "asm/d/a/d_a_alink/checkNoUpperAnime__9daAlink_cCFv.s"
}
@@ -16584,7 +16476,7 @@ asm void daAlink_c::checkItemEquipAnime() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkEquipAnime() const {
+asm BOOL daAlink_c::checkEquipAnime() const {
nofralloc
#include "asm/d/a/d_a_alink/checkEquipAnime__9daAlink_cCFv.s"
}
@@ -16680,7 +16572,7 @@ asm void daAlink_c::allUnequip(int param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkItemChangeFromButton() {
+asm BOOL daAlink_c::checkItemChangeFromButton() {
nofralloc
#include "asm/d/a/d_a_alink/checkItemChangeFromButton__9daAlink_cFv.s"
}
@@ -16690,7 +16582,7 @@ asm void daAlink_c::checkItemChangeFromButton() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkNextActionFromButton() {
+asm BOOL daAlink_c::checkNextActionFromButton() {
nofralloc
#include "asm/d/a/d_a_alink/checkNextActionFromButton__9daAlink_cFv.s"
}
@@ -16700,7 +16592,7 @@ asm void daAlink_c::checkNextActionFromButton() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkGroundSpecialMode() {
+asm BOOL daAlink_c::checkGroundSpecialMode() {
nofralloc
#include "asm/d/a/d_a_alink/checkGroundSpecialMode__9daAlink_cFv.s"
}
@@ -16845,7 +16737,7 @@ BOOL daAlink_c::checkBootsOrArmorHeavy() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkHeavyStateOn(int param_0, int param_1) {
+asm BOOL daAlink_c::checkHeavyStateOn(int param_0, int param_1) {
nofralloc
#include "asm/d/a/d_a_alink/checkHeavyStateOn__9daAlink_cFii.s"
}
@@ -17059,6 +16951,12 @@ asm void daAlink_c::checkSceneChange(int param_0) {
#pragma pop
/* 800BF084-800BF0B8 0B99C4 0034+00 1/0 0/0 0/0 .text voiceStart__9daAlink_cFUl */
+// matches, but JAISoundID(u32) constructor needs to be inlined?
+#ifdef NONMATCHING
+void daAlink_c::voiceStart(u32 sfx_id) {
+ mZ2Link.startLinkVoice(sfx_id, mVoiceReverbIntensity);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -17067,6 +16965,7 @@ asm void daAlink_c::voiceStart(u32 param_0) {
#include "asm/d/a/d_a_alink/voiceStart__9daAlink_cFUl.s"
}
#pragma pop
+#endif
/* 800BF0B8-800BF0EC 0B99F8 0034+00 14/14 0/0 0/0 .text voiceStartLevel__9daAlink_cFUl */
#pragma push
@@ -17202,45 +17101,146 @@ asm void daAlink_c::returnKeepItemData() {
}
#pragma pop
+inline daHorse_c* i_dComIfGp_getHorseActor() {
+ return (daHorse_c*)g_dComIfG_gameInfo.play.getPlayerPtr(1);
+}
+
/* 800BF8D0-800BF9F0 0BA210 0120+00 2/2 0/0 0/0 .text setItemModel__9daAlink_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::setItemModel() {
+asm BOOL daAlink_c::setItemModel() {
nofralloc
#include "asm/d/a/d_a_alink/setItemModel__9daAlink_cFv.s"
}
#pragma pop
/* 800BF9F0-800BFD74 0BA330 0384+00 4/4 0/0 0/0 .text setItemActor__9daAlink_cFv */
+// register issues
+#ifdef NONMATCHING
+BOOL daAlink_c::setItemActor() {
+ if (mEquipItem == BOOMERANG) {
+ fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(0xFE, 0, &mCurrent.mPosition, -1, NULL, NULL, -1, NULL, NULL);
+ if (actor == NULL) {
+ deleteEquipItem(0, 0);
+ return false;
+ } else {
+ mItemActor.setData(actor);
+ field_0x2f94 = 2;
+ return true;
+ }
+ }
+ else if (mEquipItem == COPY_ROD) {
+ fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_fastCreate(0x2F4, 0, &mCurrent.mPosition, -1, NULL, NULL, -1, NULL, NULL);
+ if (actor == NULL) {
+ deleteEquipItem(0, 0);
+ return false;
+ } else {
+ mItemActor.setData(actor);
+ field_0x2f94 = 2;
+ return true;
+ }
+ }
+ else if (mEquipItem == IRONBALL) {
+ fopAc_ac_c* actor = daCrod_c::makeIronBallDummy(this);
+ if (actor == NULL) {
+ if (checkIronBallWaitAnime()) {
+ resetUpperAnime(UPPER_NOW, -1.0f);
+ }
+ deleteEquipItem(0, 0);
+ return false;
+ } else {
+ mItemActor.setData(actor);
+ field_0x173c.SetActor(actor);
+ return true;
+ }
+ }
+ else if (checkFisingRodLure()) {
+ u32 id = fopAcM_create(0x2E4, 0x10D, &mLeftHandPos, -1, NULL, NULL, 0xFF);
+ mItemActor.setID(id);
+ initFishingRodHand();
+ return 1;
+ }
+ else if (checkFishingRodItem(mEquipItem)) {
+ setGroundFishingRodActor();
+ return 1;
+ }
+ else if (checkBombItem(mEquipItem)) {
+ if (checkHorseRide()) {
+ if (!i_dComIfGp_getHorseActor()->checkNoBombProc() && (mActionID != HORSE_TURN || !i_checkModeFlg(MODE_DISABLE_ITEMS))) {
+ mEquipItem = NO_ITEM;
+ return 1;
+ }
+ }
+ cXyz create_pos = (mLeftHandPos + mRightHandPos) * 0.5f;
+ if (checkReadyItem()) {
+ fopAc_ac_c* actor;
+ if (mEquipItem == NORMAL_BOMB) {
+ actor = dBomb_c::createNormalBombPlayer(&create_pos);
+ } else {
+ actor = dBomb_c::createWaterBombPlayer(&create_pos);
+ }
+ if (actor != NULL) {
+ mActiveBombNum++;
+ setGrabItemActor(actor);
+ dComIfGp_addSelectItemNum(mSelectItemId, -1);
+ field_0x33e4 = 38.0f;
+ setGrabUpperAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
+ }
+ }
+ mEquipItem = NO_ITEM;
+ return true;
+ }
+ return false;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::setItemActor() {
+asm BOOL daAlink_c::setItemActor() {
nofralloc
#include "asm/d/a/d_a_alink/setItemActor__9daAlink_cFv.s"
}
#pragma pop
+#endif
/* 800BFD74-800BFDB0 0BA6B4 003C+00 2/2 0/0 0/0 .text makeItemType__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::makeItemType() {
- nofralloc
-#include "asm/d/a/d_a_alink/makeItemType__9daAlink_cFv.s"
+void daAlink_c::makeItemType() {
+ if (!setItemModel()) {
+ setItemActor();
+ }
+}
+
+bool daPy_py_c::checkZoraWearFlg() const {
+ return dComIfGs_getSelectEquipClothes() == WEAR_ZORA;
}
-#pragma pop
/* 800BFDB0-800BFDFC 0BA6F0 004C+00 28/28 0/0 0/0 .text checkZoraWearAbility__9daAlink_cCFv */
+// li 0 needs to be mr
+#ifdef NONMATCHING
+BOOL daAlink_c::checkZoraWearAbility() const {
+ bool ret = false;
+ bool wear_zora = false;
+ if (!i_checkWolf()) {
+ if (checkZoraWearFlg()) {
+ wear_zora = true;
+ }
+ }
+ if (wear_zora && !i_checkNoResetFlg2(UNK_ARMOR)) {
+ ret = true;
+ }
+ return ret;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkZoraWearAbility() const {
+asm BOOL daAlink_c::checkZoraWearAbility() const {
nofralloc
#include "asm/d/a/d_a_alink/checkZoraWearAbility__9daAlink_cCFv.s"
}
#pragma pop
+#endif
/* 800BFDFC-800BFE48 0BA73C 004C+00 5/5 0/0 0/0 .text checkMagicArmorWearAbility__9daAlink_cCFv */
#pragma push
@@ -17387,7 +17387,7 @@ asm bool daAlink_c::checkCastleTown() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkCloudSea() {
+asm bool daAlink_c::checkCloudSea() {
nofralloc
#include "asm/d/a/d_a_alink/checkCloudSea__9daAlink_cFv.s"
}
@@ -17397,109 +17397,72 @@ asm void daAlink_c::checkCloudSea() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkRoomOnly() {
+asm bool daAlink_c::checkRoomOnly() {
nofralloc
#include "asm/d/a/d_a_alink/checkRoomOnly__9daAlink_cFv.s"
}
#pragma pop
-/* ############################################################################################## */
-/* 80392094-80392094 01E6F4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_803925C2 = "D_MN04";
-#pragma pop
-
/* 800C044C-800C04B4 0BAD8C 0068+00 3/3 0/0 0/0 .text checkLv2DungeonRoomSpecial__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkLv2DungeonRoomSpecial() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkLv2DungeonRoomSpecial__9daAlink_cFv.s"
+bool daAlink_c::checkLv2DungeonRoomSpecial() {
+ return checkStageName("D_MN04") && (dComIfGp_roomControl_getStayNo() == 14 || dComIfGp_roomControl_getStayNo() == 16 || dComIfGp_roomControl_getStayNo() == 17);
}
-#pragma pop
/* 800C04B4-800C0520 0BADF4 006C+00 2/2 0/0 0/0 .text checkRoomSpecial__9daAlink_cFv */
+// 1 wrong branch
+#ifdef NONMATCHING
+bool daAlink_c::checkRoomSpecial() {
+ return !checkStageName("D_MN11") || dComIfGp_roomControl_getStayNo() == 1 || dComIfGp_roomControl_getStayNo() == 2 || checkLv2DungeonRoomSpecial();
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkRoomSpecial() {
+asm bool daAlink_c::checkRoomSpecial() {
nofralloc
#include "asm/d/a/d_a_alink/checkRoomSpecial__9daAlink_cFv.s"
}
#pragma pop
+#endif
/* 800C0520-800C0594 0BAE60 0074+00 1/1 0/0 0/0 .text checkRoom__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkRoom() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkRoom__9daAlink_cFv.s"
+bool daAlink_c::checkRoom() {
+ return checkRoomOnly() || checkRoomSpecial() || checkStageName("R_SP161") && !dComIfGs_isOneZoneSwitch(14, -1);
}
-#pragma pop
/* 800C0594-800C05DC 0BAED4 0048+00 8/8 0/0 0/0 .text checkNotBattleStage__9daAlink_cFv
*/
-#ifdef NONMATCHING
-bool daAlink_c::checkNotBattleStage(void) {
- bool isNotBattleStage = false;
-
- if (checkRoom() || checkCastleTown()) {
- isNotBattleStage = true;
- }
-
- return isNotBattleStage;
-}
-#else
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkNotBattleStage() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkNotBattleStage__9daAlink_cFv.s"
+bool daAlink_c::checkNotBattleStage() {
+ return checkRoom() || checkCastleTown();
}
-#pragma pop
-#endif
/* 800C05DC-800C0630 0BAF1C 0054+00 2/2 0/0 0/0 .text checkNotHeavyBootsStage__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkNotHeavyBootsStage() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkNotHeavyBootsStage__9daAlink_cFv.s"
+bool daAlink_c::checkNotHeavyBootsStage() {
+ return (checkNotBattleStage() || checkCloudSea()) && !checkLv2DungeonRoomSpecial();
}
-#pragma pop
/* 800C0630-800C0678 0BAF70 0048+00 1/1 0/0 0/0 .text checkNotAutoJumpStage__9daAlink_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkNotAutoJumpStage() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkNotAutoJumpStage__9daAlink_cFv.s"
+bool daAlink_c::checkNotAutoJumpStage() {
+ return checkRoomOnly() || checkCastleTown();
}
-#pragma pop
-
-/* ############################################################################################## */
-/* 80392094-80392094 01E6F4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_803925C9 = "R_SP128";
-#pragma pop
/* 800C0678-800C077C 0BAFB8 0104+00 3/3 0/0 0/0 .text checkCastleTownUseItem__9daAlink_cFUs */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkCastleTownUseItem(u16 param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCastleTownUseItem__9daAlink_cFUs.s"
+bool daAlink_c::checkCastleTownUseItem(u16 item_id) {
+ if (checkNotBattleStage()) {
+ if (item_id == KANTERA || checkTradeItem(item_id) ||
+ (item_id == DUNGEON_BACK && checkLv7DungeonShop()) ||
+ (checkRoomSpecial() && (item_id == EMPTY_BOTTLE || checkDungeonWarpItem(item_id))) ||
+ (checkStageName("R_SP128") && item_id == COPY_ROD) ||
+ (checkLv2DungeonRoomSpecial() && item_id == HVY_BOOTS) ||
+ (checkBottleItem(item_id) && item_id != EMPTY_BOTTLE)) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ return true;
}
-#pragma pop
/* 800C077C-800C0A9C 0BB0BC 0320+00 1/1 0/0 0/0 .text changeItemTriggerKeepProc__9daAlink_cFUci */
#pragma push
@@ -17594,11 +17557,11 @@ MtxP daAlink_c::getModelJointMtx(u16 param_0) {
/* 800C1DE0-800C1E0C 0BC720 002C+00 1/0 0/0 0/0 .text onFrollCrashFlg__9daAlink_cFUci */
void daAlink_c::onFrollCrashFlg(u8 param_0, int param_1) {
if (param_1 != 0) {
- i_onNoResetFlg0(UnkFrollCrashFlg2);
+ i_onNoResetFlg0(UNK_F_ROLL_CRASH_2);
} else {
- i_onNoResetFlg0(UnkFrollCrashFlg1);
+ i_onNoResetFlg0(UNK_F_ROLL_CRASH_1);
}
- field_0x2fa4 = param_0;
+ mRollCrashFlg = param_0;
}
/* ############################################################################################## */
@@ -17657,7 +17620,7 @@ void daAlink_c::procPreActionUnequipInit(int param_0, fopAc_ac_c* param_1) {
field_0x280c.setData(param_1);
field_0x300e = 1;
if (fopAcM_GetName(param_1) == 0x2cb) {
- if (field_0x2fdc == 0x48) {
+ if (mEquipItem == KANTERA) {
field_0x3010 = 1;
} else {
if (i_checkNoResetFlg2(1) != 0) {
@@ -17694,35 +17657,34 @@ asm void daAlink_c::procPreActionUnequip() {
/* 800C3098-800C30F0 0BD9D8 0058+00 1/1 0/0 0/0 .text procServiceWaitInit__9daAlink_cFv
*/
-#ifdef NONMATCHING
bool daAlink_c::procServiceWaitInit() {
commonProcInit(SERVICE_WAIT);
- setSingleAnimeBase(0x90);
- mNormalSpeed = 0.0f;
- mNext.mAngle.y = mCollisionRot.y;
+ setSingleAnimeBase(ANM_SERVICE_WAIT);
+ mNormalSpeed = FLOAT_LABEL(lit_6108);
+ mCurrent.mAngle.y = mCollisionRot.y;
field_0x2f98 = 4;
return true;
}
-#else
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::procServiceWaitInit() {
- nofralloc
-#include "asm/d/a/d_a_alink/procServiceWaitInit__9daAlink_cFv.s"
-}
-#pragma pop
-#endif
/* 800C30F0-800C3224 0BDA30 0134+00 1/0 0/0 0/0 .text procServiceWait__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procServiceWait() {
- nofralloc
-#include "asm/d/a/d_a_alink/procServiceWait__9daAlink_cFv.s"
+bool daAlink_c::procServiceWait() {
+ J3DFrameCtrl* ctrl = &mFrameCtrl1[0];
+ if ((!checkNextAction(0) && !checkFrontWallTypeAction()) && (checkEventRun() || checkGuardActionChange() || mCollisionRot.y != field_0x2fe6)) {
+ ctrl->setRate(FLOAT_LABEL(lit_6108));
+ procWaitInit();
+ } else {
+ if (ctrl->checkPass(lit_10040)) {
+ voiceStart(Z2SE_AL_V_RELAX_A);
+ }
+ else if (ctrl->checkPass(lit_11673)) {
+ voiceStart(Z2SE_AL_V_RELAX_B);
+ }
+ else if (ctrl->checkPass(lit_25684)) {
+ voiceStart(Z2SE_AL_V_RELAX_C);
+ }
+ }
+ return true;
}
-#pragma pop
/* 800C3224-800C3338 0BDB64 0114+00 2/2 0/0 0/0 .text procTiredWaitInit__9daAlink_cFv */
#pragma push
@@ -17735,20 +17697,24 @@ asm void daAlink_c::procTiredWaitInit() {
#pragma pop
/* 800C3338-800C33B8 0BDC78 0080+00 1/0 0/0 0/0 .text procTiredWait__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procTiredWait() {
- nofralloc
-#include "asm/d/a/d_a_alink/procTiredWait__9daAlink_cFv.s"
+bool daAlink_c::procTiredWait() {
+ daPy_frameCtrl_c* ctrl = &mFrameCtrl1[0];
+ if (!checkNextAction(0)) {
+ if (ctrl->checkAnmEnd()) {
+ setSingleAnimeBase(ANM_TIRED_WAIT);
+ }
+ else if (ctrl->getAttribute() == 2) {
+ setTiredVoice(ctrl);
+ }
+ }
+ return true;
}
-#pragma pop
/* 800C33B8-800C3504 0BDCF8 014C+00 26/26 0/0 0/0 .text procWaitInit__9daAlink_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::procWaitInit() {
+asm bool daAlink_c::procWaitInit() {
nofralloc
#include "asm/d/a/d_a_alink/procWaitInit__9daAlink_cFv.s"
}
@@ -17765,34 +17731,50 @@ asm void daAlink_c::procWait() {
#pragma pop
/* 800C36CC-800C3730 0BE00C 0064+00 3/3 0/0 0/0 .text procMoveInit__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procMoveInit() {
- nofralloc
-#include "asm/d/a/d_a_alink/procMoveInit__9daAlink_cFv.s"
+bool daAlink_c::procMoveInit() {
+ if (!commonProcInitNotSameProc(HUMAN_MOVE)) {
+ return false;
+ }
+ setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
+ setFootEffectProcType(3);
+ return true;
}
-#pragma pop
/* 800C3730-800C3810 0BE070 00E0+00 1/0 0/0 0/0 .text procMove__9daAlink_cFv */
+// results of cLib_minMaxLimit are put in r4 instead of r3
+#ifdef NONMATCHING
+bool daAlink_c::procMove() {
+ setFootEffectProcType(3);
+ if (!checkNextAction(0) && !checkFrontWallTypeAction()) {
+ if (mDemo.getDemoMode() == 2 && mNormalSpeed > field_0x594 * daAlinkHIO_move_c0::m.mWalkChangeRate) {
+ mNormalSpeed = field_0x594 * daAlinkHIO_move_c0::m.mWalkChangeRate;
+ }
+ setBlendMoveAnime(-1.0f);
+ if (field_0x3174 != 8) {
+ field_0x30a0 = cLib_minMaxLimit((s16)(field_0x2ff0 >> 1), daAlinkHIO_basic_c0::m.mNeckMaxUp, daAlinkHIO_basic_c0::m.mNeckMaxDown);
+ }
+ }
+ return true;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::procMove() {
+asm bool daAlink_c::procMove() {
nofralloc
#include "asm/d/a/d_a_alink/procMove__9daAlink_cFv.s"
}
#pragma pop
+#endif
/* 800C3810-800C3868 0BE150 0058+00 1/1 0/0 0/0 .text procAtnMoveInit__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procAtnMoveInit() {
- nofralloc
-#include "asm/d/a/d_a_alink/procAtnMoveInit__9daAlink_cFv.s"
+bool daAlink_c::procAtnMoveInit() {
+ if (!commonProcInitNotSameProc(HUMAN_ATN_MOVE)) {
+ return false;
+ }
+ setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
+ return true;
}
-#pragma pop
/* 800C3868-800C38CC 0BE1A8 0064+00 1/0 0/0 0/0 .text procAtnMove__9daAlink_cFv */
bool daAlink_c::procAtnMove() {
@@ -17806,136 +17788,329 @@ bool daAlink_c::procAtnMove() {
/* 800C38CC-800C397C 0BE20C 00B0+00 4/4 0/0 0/0 .text procAtnActorWaitInit__9daAlink_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procAtnActorWaitInit() {
- nofralloc
-#include "asm/d/a/d_a_alink/procAtnActorWaitInit__9daAlink_cFv.s"
+bool daAlink_c::procAtnActorWaitInit() {
+ if (!commonProcInitNotSameProc(HUMAN_ATN_ACTOR_WAIT)) {
+ return false;
+ }
+
+ if (mTargetedActor != NULL) {
+ fopAcM_searchActorAngleY(this, mTargetedActor);
+ }
+ mNormalSpeed = FLOAT_LABEL(lit_6108);
+ if (field_0x2f98 != 2) {
+ field_0x2f98 = 3;
+ }
+
+ if (checkAtnWaitAnime()) {
+ setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
+ } else {
+ setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
+ }
+
+ return true;
}
-#pragma pop
/* 800C397C-800C39EC 0BE2BC 0070+00 1/0 0/0 0/0 .text procAtnActorWait__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procAtnActorWait() {
- nofralloc
-#include "asm/d/a/d_a_alink/procAtnActorWait__9daAlink_cFv.s"
+bool daAlink_c::procAtnActorWait() {
+ if (!checkNextAction(0)) {
+ if (checkAtnWaitAnime()) {
+ setBlendAtnMoveAnime(lit_6041);
+ } else {
+ setBlendMoveAnime(lit_6041);
+ }
+ checkSwordTwirlAction();
+ }
+ return true;
}
-#pragma pop
/* 800C39EC-800C3A44 0BE32C 0058+00 3/3 0/0 0/0 .text procAtnActorMoveInit__9daAlink_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procAtnActorMoveInit() {
- nofralloc
-#include "asm/d/a/d_a_alink/procAtnActorMoveInit__9daAlink_cFv.s"
+bool daAlink_c::procAtnActorMoveInit() {
+ if (!commonProcInitNotSameProc(HUMAN_ATN_ACTOR_MOVE)) {
+ return false;
+ }
+ setBlendAtnMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
+ return true;
}
-#pragma pop
/* 800C3A44-800C3A94 0BE384 0050+00 1/0 0/0 0/0 .text procAtnActorMove__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procAtnActorMove() {
- nofralloc
-#include "asm/d/a/d_a_alink/procAtnActorMove__9daAlink_cFv.s"
+bool daAlink_c::procAtnActorMove() {
+ if (!checkNextAction(0)) {
+ setBlendAtnMoveAnime(lit_6041);
+ checkSwordTwirlAction();
+ }
+ return 1;
}
-#pragma pop
/* 800C3A94-800C3B1C 0BE3D4 0088+00 2/2 0/0 0/0 .text procWaitTurnInit__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procWaitTurnInit() {
- nofralloc
-#include "asm/d/a/d_a_alink/procWaitTurnInit__9daAlink_cFv.s"
+bool daAlink_c::procWaitTurnInit() {
+ if (!commonProcInitNotSameProc(HUMAN_WAIT_TURN)) {
+ return false;
+ }
+
+ setSingleAnimeBaseSpeed(ANM_WAIT_TURN, daAlinkHIO_basic_c0::m.mWaitTurnSpeed, daAlinkHIO_basic_c0::m.mAnmBlendFactor);
+ if (checkEventRun()) {
+ mNormalSpeed = FLOAT_LABEL(lit_6108);
+ }
+ field_0x300e = field_0x2fe2;
+ mCurrent.mAngle.y = mCollisionRot.y;
+ return true;
}
-#pragma pop
/* 800C3B1C-800C3C3C 0BE45C 0120+00 1/0 0/0 0/0 .text procWaitTurn__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procWaitTurn() {
- nofralloc
-#include "asm/d/a/d_a_alink/procWaitTurn__9daAlink_cFv.s"
+BOOL daAlink_c::procWaitTurn() {
+ cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), daAlinkHIO_move_c0::m.mDeceleration);
+ if (checkGroundSpecialMode()) {
+ return true;
+ } else {
+ if (i_checkEndResetFlg0(ERFLG0_UNK_100000)) {
+ return procFloorDownReboundInit();
+ } else {
+ s16 angle = cLib_addCalcAngleS(&mCollisionRot.y, field_0x300e, 30, 0x3CDF, 8000);
+ mCurrent.mAngle.y = mCollisionRot.y;
+ if (checkNextActionFromButton()) {
+ return true;
+ } else {
+ if (angle == 0) {
+ if (checkEventRun()) {
+ if (mDemo.getDemoMode() == 5) {
+ dComIfGp_evmng_cutEnd(field_0x3184);
+ }
+ else if (!checkNextAction(0)) {
+ checkWaitAction();
+ }
+ } else {
+ checkNextAction(0);
+ }
+ }
+ }
+ }
+ }
+ return true;
}
-#pragma pop
/* 800C3C3C-800C3D38 0BE57C 00FC+00 2/2 0/0 0/0 .text procMoveTurnInit__9daAlink_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procMoveTurnInit(int param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/procMoveTurnInit__9daAlink_cFi.s"
+bool daAlink_c::procMoveTurnInit(int param_0) {
+ if (!commonProcInitNotSameProc(HUMAN_MOVE_TURN)) {
+ return false;
+ }
+
+ setBlendMoveAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
+ dComIfGp_setPlayerStatus0(0, 0x800);
+
+ if (param_0 != 0) {
+ field_0x300e = (daAlinkHIO_move_c0::m.mMaxTurnAngle << 2) + 19030;
+ field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle << 1;
+ field_0x300a = 2;
+ mCurrent.mAngle.y = field_0x2fe2;
+ mNormalSpeed *= lit_5943;
+ } else {
+ field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle << 1;
+ field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle;
+ field_0x300a = 3;
+ }
+ field_0x300e = daAlinkHIO_move_c0::m.mMaxTurnAngle << 1;
+ field_0x3010 = daAlinkHIO_move_c0::m.mMaxTurnAngle;
+ return true;
}
-#pragma pop
/* 800C3D38-800C3DA0 0BE678 0068+00 1/0 0/0 0/0 .text procMoveTurn__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procMoveTurn() {
- nofralloc
-#include "asm/d/a/d_a_alink/procMoveTurn__9daAlink_cFv.s"
+bool daAlink_c::procMoveTurn() {
+ setSpeedAndAngleNormal();
+ cLib_addCalcAngleS(&mCollisionRot.y, mCurrent.mAngle.y, field_0x300a, field_0x300e, field_0x3010);
+
+ if (!checkNextAction(0)) {
+ setBlendMoveAnime(lit_6041);
+ }
+ return true;
}
-#pragma pop
/* 800C3DA0-800C3F60 0BE6E0 01C0+00 2/2 0/0 0/0 .text procSideStepInit__9daAlink_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procSideStepInit(int param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/procSideStepInit__9daAlink_cFi.s"
+bool daAlink_c::procSideStepInit(int jump_type) {
+ if (jump_type == 1 && !checkHeavyStateOn(1, 1) && (checkNoUpperAnime() || checkEquipAnime() || field_0x2fcc != 0 && checkUpperGuardAnime())) {
+ return procBackJumpInit(0);
+ } else {
+ commonProcInit(HUMAN_SIDESTEP);
+ field_0x2f98 = jump_type;
+
+ if (field_0x2f98 == 1) {
+ mCurrent.mAngle.y = mCollisionRot.y + 0x8000;
+ setSingleAnimeParam(ANM_BACK_JUMP, &daAlinkHIO_sideStep_c0::m.mBackJumpAnm);
+ mNormalSpeed = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedH;
+ mSpeed.y = daAlinkHIO_sideStep_c0::m.mBackJumpSpeedV;
+ field_0x300a = 0;
+ } else {
+ daAlink_ANM anm_id;
+ if (field_0x2f98 == 2) {
+ anm_id = ANM_SIDE_STEP_LEFT;
+ mCurrent.mAngle.y = mCollisionRot.y + 0x4000;
+ } else {
+ anm_id = ANM_SIDE_STEP_RIGHT;
+ mCurrent.mAngle.y = mCollisionRot.y - 0x4000;
+ }
+ setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideJumpAnm);
+ mNormalSpeed = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedH;
+ mSpeed.y = daAlinkHIO_sideStep_c0::m.mSideJumpSpeedV;
+ field_0x300a = 1;
+ }
+ if (i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) {
+ mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
+ mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
+ }
+ voiceStart(Z2SE_AL_V_JUMP_S);
+ mCommonCounter = 0;
+ field_0x300e = 0;
+ return 1;
+ }
}
-#pragma pop
/* 800C3F60-800C40F0 0BE8A0 0190+00 1/0 0/0 0/0 .text procSideStep__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procSideStep() {
- nofralloc
-#include "asm/d/a/d_a_alink/procSideStep__9daAlink_cFv.s"
+bool daAlink_c::procSideStep() {
+ if (mTargetedActor != NULL && field_0x300a != 0) {
+ s16 actor_angle = fopAcM_searchActorAngleY(this, mTargetedActor);
+ cLib_addCalcAngleS(&mCollisionRot.y, actor_angle, 5, 0x5E8, 0x13C);
+ if (field_0x2f98 == 2) {
+ mCurrent.mAngle.y = mCollisionRot.y + 0x4000;
+ } else {
+ mCurrent.mAngle.y = mCollisionRot.y - 0x4000;
+ }
+ }
+ if (doTrigger() && field_0x300a != 0) {
+ mCommonCounter = 1;
+ }
+
+ if (checkUpperItemActionFly()) {
+ return true;
+ }
+ else if (mLinkAcch.ChkGroundHit() && field_0x300e != 0) {
+ if (mCommonCounter != 0 && checkSideRollAction(field_0x2f98)) {
+ return true;
+ } else {
+ return procSideStepLandInit();
+ }
+ }
+ else if (checkNoUpperAnime() && checkForceSwordSwing()) {
+ setCutDash(1, 0);
+ }
+ else if (mDemo.getDemoMode() != 16 && mCurrent.mPosition.y < field_0x34f8.y - daAlinkHIO_sideStep_c0::m.mFallHeight) {
+ return procFallInit(2, daAlinkHIO_sideStep_c0::m.mFallInterpolation);
+ }
+
+ field_0x300e = 1;
+ checkItemChangeFromButton();
+ return true;
}
-#pragma pop
/* 800C40F0-800C4278 0BEA30 0188+00 1/1 0/0 0/0 .text procSideStepLandInit__9daAlink_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procSideStepLandInit() {
- nofralloc
-#include "asm/d/a/d_a_alink/procSideStepLandInit__9daAlink_cFv.s"
+bool daAlink_c::procSideStepLandInit() {
+ commonProcInit(HUMAN_SIDESTEP_LAND);
+ if (field_0x2f98 == 1) {
+ field_0x2f9d = 4;
+ setSingleAnimeParam(ANM_BACK_JUMP_LAND, &daAlinkHIO_sideStep_c0::m.mBackLandAnm);
+ field_0x3478 = daAlinkHIO_sideStep_c0::m.mBackLandAnm.field_0x10;
+ field_0x2f98 = 2;
+ field_0x300a = 0;
+ field_0x2fb0 = 0;
+ field_0x2fcc = 10;
+ } else {
+ daAlink_ANM anm_id;
+ u16 uvar3;
+ if (field_0x2f98 == 2) {
+ anm_id = ANM_SIDE_STEP_LEFT_LAND;
+ uvar3 = 0x3F;
+ } else {
+ anm_id = ANM_SIDE_STEP_RIGHT_LAND;
+ uvar3 = 0x40;
+ }
+ setSingleAnimeParam(anm_id, &daAlinkHIO_sideStep_c0::m.mSideLandAnm);
+ field_0x3478 = daAlinkHIO_sideStep_c0::m.mSideLandAnm.field_0x10;
+ field_0x300a = 1;
+ field_0x2fb0 = 8;
+ field_0x2fcc = 0;
+ if (checkEnemyGroup(mTargetedActor) && mEquipItem == EQUIP_SWORD && checkNoUpperAnime()) {
+ setUpperAnimeBaseSpeed(uvar3, daAlinkHIO_atnMove_c0::m.mWaitAnmSpeed, lit_6041);
+ seStartSwordCut(Z2SE_AL_WAIT_SWORD_SWING);
+ }
+ }
+ field_0x2f9d = 4;
+ setFootEffectProcType(2);
+ i_onResetFlg1(0x30);
+ mNormalSpeed = FLOAT_LABEL(lit_6108);
+ mCommonCounter = 0;
+ mCurrent.mAngle.y = mCollisionRot.y;
+ setStepLandVibration();
+ return true;
}
-#pragma pop
/* 800C4278-800C4378 0BEBB8 0100+00 1/0 0/0 0/0 .text procSideStepLand__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procSideStepLand() {
- nofralloc
-#include "asm/d/a/d_a_alink/procSideStepLand__9daAlink_cFv.s"
+bool daAlink_c::procSideStepLand() {
+ daPy_frameCtrl_c* ctrl = &mFrameCtrl1[0];
+ i_onEndResetFlg0(ERFLG0_UNK_8000000);
+ if (field_0x2fcc != 0) {
+ field_0x2fcc = 10;
+ }
+
+ if (doTrigger() && field_0x300a != 0) {
+ mCommonCounter = 1;
+ }
+
+ if (ctrl->checkAnmEnd()) {
+ if (mDemo.getDemoMode() == 16) {
+ dComIfGp_evmng_cutEnd(field_0x3184);
+ } else {
+ checkNextAction(0);
+ }
+ }
+ else if (ctrl->getFrame() > field_0x3478) {
+ if (mCommonCounter != 0 && checkSideRollAction(field_0x2f98)) {
+ return true;
+ }
+ checkNextAction(1);
+ }
+
+ return true;
}
-#pragma pop
/* 800C4378-800C4514 0BECB8 019C+00 1/1 0/0 0/0 .text procSlideInit__9daAlink_cFs */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procSlideInit(s16 param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/procSlideInit__9daAlink_cFs.s"
+bool daAlink_c::procSlideInit(s16 param_0) {
+ commonProcInit(HUMAN_SLIDE);
+
+ field_0x814.SetWeight(255);
+ field_0x3090 = 8;
+ mCurrent.mAngle.y = param_0;
+
+ if (getMoveBGActorName(mLinkAcch.m_gnd, 0) == 0xD4) {
+ field_0x300e = 1;
+ } else {
+ field_0x300e = 0;
+ }
+
+ if (cLib_distanceAngleS(param_0, mCollisionRot.y) < 0x3800 || field_0x300e != 0) {
+ field_0x3198 = 1;
+ setSingleAnimeParam(ANM_FORWARD_SLIDE, &daAlinkHIO_slide_c0::m.mForwardSlideAnm);
+ dComIfGp_setPlayerStatus1(0, 0x100);
+ onModeFlg(MODE_UNK_8000);
+ onModeFlg(MODE_UNK_2000000);
+ onModeFlg(MODE_UNK_20000000);
+ mNormalSpeed = FLOAT_LABEL(lit_6108);
+ field_0x2f9d = 4;
+ setUpperAnimeBaseMorf(0xCE, lit_6041);
+ i_onNoResetFlg1(0x10000000);
+ setFootEffectProcType(0);
+ } else {
+ field_0x3198 = 0;
+ setSingleAnimeParam(ANM_BACKWARD_SLIDE, &daAlinkHIO_slide_c0::m.mBackwardSlideAnm);
+ dComIfGp_setPlayerStatus1(0, 0x200);
+ field_0x2f9d = 0x60;
+ setFootEffectProcType(1);
+ }
+ field_0x594 = daAlinkHIO_slide_c0::m.mMaxSpeed;
+ field_0x33cc = FLOAT_LABEL(lit_6108);
+ mCommonCounter = 0;
+ field_0x3010 = 0;
+ return true;
}
-#pragma pop
/* ############################################################################################## */
/* 804532E0-804532E4 0018E0 0004+00 1/1 0/0 0/0 .sdata2 @73057 */
@@ -17952,34 +18127,113 @@ asm void daAlink_c::procSlide() {
#pragma pop
/* 800C47AC-800C4894 0BF0EC 00E8+00 1/1 0/0 0/0 .text procSlideLandInit__9daAlink_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procSlideLandInit(int param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/procSlideLandInit__9daAlink_cFi.s"
+bool daAlink_c::procSlideLandInit(int param_0) {
+ commonProcInit(HUMAN_SLIDE_LAND);
+
+ if (param_0 != 0) {
+ setSingleAnimeParam(ANM_BACKWARD_SLIDE_LAND, &daAlinkHIO_slide_c0::m.mForwardLandAnm);
+ field_0x3478 = daAlinkHIO_slide_c0::m.mForwardLandAnm.field_0x10;
+ field_0x3198 = 1;
+ field_0x2f99 = 4;
+ field_0x3588.x = l_waitBaseAnime[0];
+ field_0x3588.y = l_waitBaseAnime[1];
+ field_0x3588.z = l_waitBaseAnime[2];
+ } else {
+ setSingleAnimeParam(ANM_FORWARD_SLIDE_LAND, &daAlinkHIO_slide_c0::m.mBackwardLandAnm);
+ field_0x3478 = daAlinkHIO_slide_c0::m.mBackwardLandAnm.field_0x10;
+ field_0x3198 = 0;
+ }
+ field_0x814.SetWeight(255);
+ mNormalSpeed *= lit_5943;
+ return true;
}
-#pragma pop
/* 800C4894-800C494C 0BF1D4 00B8+00 1/0 0/0 0/0 .text procSlideLand__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procSlideLand() {
- nofralloc
-#include "asm/d/a/d_a_alink/procSlideLand__9daAlink_cFv.s"
+bool daAlink_c::procSlideLand() {
+ daPy_frameCtrl_c* ctrl = &mFrameCtrl1[0];
+
+ cLib_chaseF(&mNormalSpeed, FLOAT_LABEL(lit_6108), lit_7450);
+ if (field_0x3198 != 0) {
+ field_0x2f99 = 4;
+ }
+
+ if (ctrl->checkAnmEnd()) {
+ mCurrent.mAngle.y = mCollisionRot.y;
+ checkNextAction(0);
+ } else {
+ if (ctrl->getFrame() > field_0x3478) {
+ s16 tmp_angle = mCurrent.mAngle.y;
+ mCurrent.mAngle.y = mCollisionRot.y;
+ if (!checkNextAction(1)) {
+ mCurrent.mAngle.y = tmp_angle;
+ }
+ }
+ }
+ return true;
}
-#pragma pop
/* 800C494C-800C4B40 0BF28C 01F4+00 4/3 0/0 0/0 .text procFrontRollInit__9daAlink_cFv */
+#ifdef NONMATCHING
+bool daAlink_c::procFrontRollInit() {
+ BOOL check = checkUpperGuardAnime();
+ if (mActionID == FRONT_ROLL && mDemo.getDemoMode() == 0x28) {
+ return 0;
+ } else {
+ BOOL check = mActionID == 0x16;
+ commonProcInit(FRONT_ROLL);
+
+ f32 fvar1;
+ if (!check) {
+ fvar1 = daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x04;
+ } else {
+ fvar1 = lit_7977;
+ }
+ setSingleAnime(ANM_FRONT_ROLL, daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x04, fvar1, daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x00, daAlinkHIO_frontRoll_c0::m.mRollAnm.field_0x0c);
+ mNormalSpeed = mSpeedF * daAlinkHIO_frontRoll_c0::m.mInitSpeed + daAlinkHIO_frontRoll_c0::m.mSpeedRate;
+ if (mNormalSpeed > daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.field_0x08) {
+ mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mCrashHitAnm.field_0x08;
+ }
+ if (mNormalSpeed < daAlinkHIO_frontRoll_c0::m.mMinSpeed) {
+ mNormalSpeed = daAlinkHIO_frontRoll_c0::m.mMinSpeed;
+ }
+
+ if (!i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) {
+ if (checkHeavyStateOn(1, 1)) {
+ mNormalSpeed *= mHeavySpeedMultiplier;
+ }
+ } else {
+ mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
+ }
+ mCurrent.mAngle.y = mCollisionRot.y;
+ voiceStart(Z2SE_AL_V_BACKTEN);
+ mCommonCounter = 0;
+ setFootEffectProcType(0);
+ if (check) {
+ i_onNoResetFlg0(2);
+ }
+ if (i_checkEquipHeavyBoots()) {
+ field_0xFB8.SetAtType(0x200000);
+ field_0xFB8.SetAtHitMark(1);
+ field_0xFB8.SetAtSe(9);
+ field_0xFB8.SetAtAtp(2);
+ field_0xFB8.SetAtMtrl(0);
+ field_0xFB8.ResetAtHit();
+ field_0xFB8.SetR(daAlinkHIO_frontRoll_c0::m.mBootsAttackRadius);
+ field_0xFB8.OnAtSetBit();
+ }
+ return true;
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::procFrontRollInit() {
+asm bool daAlink_c::procFrontRollInit() {
nofralloc
#include "asm/d/a/d_a_alink/procFrontRollInit__9daAlink_cFv.s"
}
#pragma pop
+#endif
/* 800C4B40-800C4F14 0BF480 03D4+00 1/0 0/0 0/0 .text procFrontRoll__9daAlink_cFv */
#pragma push
@@ -18053,20 +18307,31 @@ asm void daAlink_c::procSideRoll() {
#pragma pop
/* 800C5700-800C57A4 0C0040 00A4+00 2/2 0/0 0/0 .text backJumpSpeedDec__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::backJumpSpeedDec() {
- nofralloc
-#include "asm/d/a/d_a_alink/backJumpSpeedDec__9daAlink_cFv.s"
+void daAlink_c::backJumpSpeedDec() {
+ if (mLinkAcch.ChkGroundHit()) {
+ if (dComIfG_Bgsp().ChkPolySafe(mLinkAcch.m_gnd)) {
+ f32 jump_speed;
+ if (dBgS_CheckBWallPoly(mLinkAcch.m_gnd)) {
+ jump_speed = FLOAT_LABEL(lit_6108);
+ } else {
+ jump_speed = field_0x3478 * cM_scos(field_0x2ff0);
+ if (field_0x2ff0 > 0) {
+ jump_speed *= cM_scos(field_0x2ff0);
+ }
+ }
+
+ if (mNormalSpeed > jump_speed) {
+ mNormalSpeed = jump_speed;
+ }
+ }
+ }
}
-#pragma pop
/* 800C57A4-800C5964 0C00E4 01C0+00 6/6 0/0 0/0 .text procBackJumpInit__9daAlink_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::procBackJumpInit(int param_0) {
+asm bool daAlink_c::procBackJumpInit(int param_0) {
nofralloc
#include "asm/d/a/d_a_alink/procBackJumpInit__9daAlink_cFi.s"
}
@@ -18195,7 +18460,7 @@ asm void daAlink_c::procRollJump() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::procFallInit(int param_0, f32 param_1) {
+asm bool daAlink_c::procFallInit(int param_0, f32 param_1) {
nofralloc
#include "asm/d/a/d_a_alink/procFallInit__9daAlink_cFif.s"
}
@@ -18404,7 +18669,7 @@ asm void daAlink_c::procCoMetamorphoseOnly() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::procFloorDownReboundInit() {
+asm BOOL daAlink_c::procFloorDownReboundInit() {
nofralloc
#include "asm/d/a/d_a_alink/procFloorDownReboundInit__9daAlink_cFv.s"
}
@@ -18502,35 +18767,33 @@ asm void daAlink_c::setDrawHand() {
}
#pragma pop
+BOOL daPy_py_c::i_checkSwordGet() {
+ return dComIfGs_getSelectEquipSword() != 0xFF;
+}
+
/* 800CB480-800CB53C 0C5DC0 00BC+00 3/3 0/0 0/0 .text checkSwordDraw__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkSwordDraw() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkSwordDraw__9daAlink_cFv.s"
+bool daAlink_c::checkSwordDraw() {
+ return ((i_checkSwordGet() && mSwordChangeWaitTimer == 0) && !i_checkNoResetFlg2(FLG2_UNK_2080000)) && (!i_checkWolf() || !i_dComIfGs_isEventBit(0x0C08));
+}
+
+bool daPy_py_c::i_checkShieldGet() const {
+ return dComIfGs_getSelectEquipShield() != NO_ITEM;
}
-#pragma pop
/* 800CB53C-800CB5F8 0C5E7C 00BC+00 3/3 0/0 0/0 .text checkShieldDraw__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkShieldDraw() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkShieldDraw__9daAlink_cFv.s"
+bool daAlink_c::checkShieldDraw() {
+ return ((i_checkShieldGet() && mShieldChangeWaitTimer == 0) && !i_checkNoResetFlg2(FLG2_UNK_4080000)) && (!i_checkWolf() || !i_dComIfGs_isEventBit(0x0C08));
}
-#pragma pop
/* 800CB5F8-800CB694 0C5F38 009C+00 2/2 0/0 0/0 .text checkItemDraw__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkItemDraw() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkItemDraw__9daAlink_cFv.s"
+bool daAlink_c::checkItemDraw() {
+ if (mHeldItemModel != NULL && (mEquipItem != IRONBALL || !checkSwordEquipAnime())) {
+ if (!checkBowAndSlingItem(mEquipItem) || checkBowGrabLeftHand() || !i_checkShieldGet() || field_0x2e44.checkPassNum(15)) {
+ return true;
+ }
+ }
+ return false;
}
-#pragma pop
/* 800CB694-800CBA38 0C5FD4 03A4+00 0/0 0/0 1/1 .text initShadowScaleLight__9daAlink_cFv
*/
@@ -18569,14 +18832,11 @@ asm void daAlink_c::shadowDraw() {
#pragma pop
/* 800CC25C-800CC298 0C6B9C 003C+00 3/3 0/0 0/0 .text modelCalc__9daAlink_cFP8J3DModel */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::modelCalc(J3DModel* param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/modelCalc__9daAlink_cFP8J3DModel.s"
+void daAlink_c::modelCalc(J3DModel* p_model) {
+ if (mClothesChangeWaitTimer == 0) {
+ p_model->calc();
+ }
}
-#pragma pop
/* 800CC298-800CC2E0 0C6BD8 0048+00 2/2 0/0 0/0 .text basicModelDraw__9daAlink_cFP8J3DModel */
#pragma push
@@ -18617,14 +18877,14 @@ asm void daAlink_c::setWaterDropColor(J3DGXColorS10 const* param_0) {
#pragma pop
/* 800CC7DC-800CC7FC 0C711C 0020+00 2/2 0/0 0/0 .text initTevCustomColor__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::initTevCustomColor() {
- nofralloc
-#include "asm/d/a/d_a_alink/initTevCustomColor__9daAlink_cFv.s"
+void daAlink_c::initTevCustomColor() {
+ mTevStr.field_0x367 = 0;
+ mTevStr.field_0x358 = 0;
+ mTevStr.field_0x35a = 0;
+ mTevStr.field_0x35c = 0;
+ mTevStr.field_0x360 = 0;
+ mTevStr.field_0x362 = 0;
}
-#pragma pop
/* 800CC7FC-800CD78C 0C713C 0F90+00 1/1 0/0 0/0 .text draw__9daAlink_cFv */
#pragma push
@@ -18692,14 +18952,31 @@ asm daAlink_c::~daAlink_c() {
#pragma pop
/* 800CE208-800CE294 0C8B48 008C+00 1/0 0/0 0/0 .text daAlink_Delete__FP9daAlink_c */
+// destructor issue
+#ifdef NONMATCHING
+static bool daAlink_Delete(daAlink_c* p_link) {
+ if (p_link->getClothesChangeWaitTimer() != 0) {
+ p_link->loadModelDVD();
+ return false;
+ }
+ else if (p_link->getShieldChangeWaitTimer() != 0) {
+ p_link->loadShieldModelDVD();
+ return false;
+ } else {
+ delete p_link;
+ return true;
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-static asm void daAlink_Delete(daAlink_c* param_0) {
+static asm bool daAlink_Delete(daAlink_c* param_0) {
nofralloc
#include "asm/d/a/d_a_alink/daAlink_Delete__FP9daAlink_c.s"
}
#pragma pop
+#endif
/* 800CE294-800CE468 0C8BD4 01D4+00 1/1 0/0 0/0 .text checkNoSubjectModeCamera__9daAlink_cFv */
#pragma push
@@ -18878,14 +19155,9 @@ u32 daAlink_c::checkHorseRide() const {
}
/* 800CF298-800CF2B4 0C9BD8 001C+00 1/0 0/0 0/0 .text getLeftItemMatrix__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm Mtx* daAlink_c::getLeftItemMatrix() {
- nofralloc
-#include "asm/d/a/d_a_alink/getLeftItemMatrix__9daAlink_cFv.s"
+MtxP daAlink_c::getLeftItemMatrix() {
+ return field_0x0650->i_getAnmMtx(field_0x30c0);
}
-#pragma pop
/* 800CF2B4-800CF2C8 0C9BF4 0014+00 1/0 0/0 0/0 .text checkBoarRide__9daAlink_cCFv */
u32 daAlink_c::checkBoarRide() const {
@@ -18898,55 +19170,32 @@ u32 daAlink_c::checkSpinnerRide() const {
}
/* 800CF2DC-800CF2F8 0C9C1C 001C+00 1/0 0/0 0/0 .text getLeftHandMatrix__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm Mtx* daAlink_c::getLeftHandMatrix() {
- nofralloc
-#include "asm/d/a/d_a_alink/getLeftHandMatrix__9daAlink_cFv.s"
+MtxP daAlink_c::getLeftHandMatrix() {
+ return field_0x0650->i_getAnmMtx(field_0x30b8);
}
-#pragma pop
/* 800CF2F8-800CF314 0C9C38 001C+00 1/0 0/0 0/0 .text getRightHandMatrix__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm Mtx* daAlink_c::getRightHandMatrix() {
- nofralloc
-#include "asm/d/a/d_a_alink/getRightHandMatrix__9daAlink_cFv.s"
+MtxP daAlink_c::getRightHandMatrix() {
+ return field_0x0650->i_getAnmMtx(field_0x30ba);
}
-#pragma pop
/* 800CF314-800CF328 0C9C54 0014+00 1/0 0/0 0/0 .text
* onSceneChangeArea__9daAlink_cFUcUcP10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::onSceneChangeArea(u8 param_0, u8 param_1, fopAc_ac_c* param_2) {
- nofralloc
-#include "asm/d/a/d_a_alink/onSceneChangeArea__9daAlink_cFUcUcP10fopAc_ac_c.s"
+void daAlink_c::onSceneChangeArea(u8 param_0, u8 param_1, fopAc_ac_c* param_2) {
+ field_0x3112 = param_0;
+ field_0x2fac = param_1;
+ field_0x2808 = param_2;
}
-#pragma pop
/* 800CF328-800CF344 0C9C68 001C+00 1/0 0/0 0/0 .text getRightItemMatrix__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm Mtx* daAlink_c::getRightItemMatrix() {
- nofralloc
-#include "asm/d/a/d_a_alink/getRightItemMatrix__9daAlink_cFv.s"
+MtxP daAlink_c::getRightItemMatrix() {
+ return field_0x0650->i_getAnmMtx(field_0x30c2);
}
-#pragma pop
/* 800CF344-800CF380 0C9C84 003C+00 1/0 0/0 0/0 .text checkPlayerNoDraw__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkPlayerNoDraw() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkPlayerNoDraw__9daAlink_cFv.s"
+BOOL daAlink_c::checkPlayerNoDraw() {
+ return dComIfGp_checkCameraAttentionStatus(field_0x317c, 2) || i_checkNoResetFlg0(FLG0_UNK_8000000);
}
-#pragma pop
/* 800CF380-800CFC3C 0C9CC0 08BC+00 1/1 0/0 0/0 .text __ct__9daAlink_cFv */
#pragma push
@@ -19067,33 +19316,18 @@ static asm void cMtx_multVec(f32 const (*param_0)[4], Vec const* param_1, Vec* p
#pragma pop
/* 800CFFE0-800CFFF4 0CA920 0014+00 1/1 0/0 0/0 .text getAnmMtx__8J3DModelFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm Mtx* J3DModel::getAnmMtx(int param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/getAnmMtx__8J3DModelFi.s"
+MtxP J3DModel::getAnmMtx(int i) {
+ return mMtxBuffer->getAnmMtx(i);
}
-#pragma pop
/* 800CFFF4-800D0020 0CA934 002C+00 1/1 0/0 0/0 .text setBaseTRMtx__8J3DModelFPA4_f */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void J3DModel::setBaseTRMtx(f32 (*param_0)[4]) {
- nofralloc
-#include "asm/d/a/d_a_alink/setBaseTRMtx__8J3DModelFPA4_f.s"
+void J3DModel::setBaseTRMtx(MtxP matrix) {
+ PSMTXCopy(matrix, mBaseTransformMtx);
}
-#pragma pop
/* 800D0020-800D0048 0CA960 0028+00 1/1 0/0 0/0 .text checkFmChainGrabAnime__9daAlink_cCFv */
BOOL daAlink_c::checkFmChainGrabAnime() const {
- bool fmChainGrab = false;
-
- if (checkUpperAnime(ANM_HUMAN_CHAIN_GRAB) || checkUpperAnime(ANM_WOLF_CHAIN_GRAB)) {
- fmChainGrab = true;
- }
- return fmChainGrab;
+ return checkUpperAnime(ANM_HUMAN_CHAIN_GRAB) || checkUpperAnime(ANM_WOLF_CHAIN_GRAB);
}
/* 800D0048-800D005C 0CA988 0014+00 1/1 0/0 0/0 .text checkSmallUpperGuardAnime__9daAlink_cCFv */
@@ -19139,35 +19373,13 @@ void dBgS_Acch::ClrGroundHit() {
}
/* 800D00EC-800D0110 0CAA2C 0024+00 1/1 0/0 0/0 .text checkReinRide__9daAlink_cCFv */
-// regalloc
-#ifdef NONMATCHING
BOOL daAlink_c::checkReinRide() const {
- bool reinRide = false;
-
- if (mRideStatus == 1 || mRideStatus == 2) {
- reinRide = true;
- }
- return reinRide;
-}
-#else
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm BOOL daAlink_c::checkReinRide() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkReinRide__9daAlink_cCFv.s"
+ return mRideStatus == 1 || mRideStatus == 2;
}
-#pragma pop
-#endif
/* 800D0110-800D0138 0CAA50 0028+00 1/1 0/0 0/0 .text checkWolfEnemyThrowAnime__9daAlink_cCFv */
BOOL daAlink_c::checkWolfEnemyThrowAnime() const {
- bool wolfEnemyThrowAnime = false;
-
- if (checkUpperAnime(ANM_WOLF_ENEMY_THROW_LEFT) || checkUpperAnime(ANM_WOLF_ENEMY_THROW_RIGHT)) {
- wolfEnemyThrowAnime = true;
- }
- return wolfEnemyThrowAnime;
+ return checkUpperAnime(ANM_WOLF_ENEMY_THROW_LEFT) || checkUpperAnime(ANM_WOLF_ENEMY_THROW_RIGHT);
}
/* 800D0138-800D014C 0CAA78 0014+00 1/1 0/0 0/0 .text checkSpecialDemoMode__9daAlink_cCFv
@@ -19183,24 +19395,14 @@ void daAlink_c::setMidnaTalkStatus(u8 status) {
}
/* 800D0164-800D0180 0CAAA4 001C+00 1/1 0/0 0/0 .text set3DStatus__9daAlink_cFUcUc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::set3DStatus(u8 param_0, u8 param_1) {
- nofralloc
-#include "asm/d/a/d_a_alink/set3DStatus__9daAlink_cFUcUc.s"
+void daAlink_c::set3DStatus(u8 status, u8 direction) {
+ dComIfGp_set3DStatus(status, direction, 0);
}
-#pragma pop
/* 800D0180-800D018C 0CAAC0 000C+00 1/1 0/0 0/0 .text offSetFlg__16daAlink_matAnm_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_matAnm_c::offSetFlg() {
- nofralloc
-#include "asm/d/a/d_a_alink/offSetFlg__16daAlink_matAnm_cFv.s"
+void daAlink_matAnm_c::offSetFlg() {
+ mSetFlag = 0;
}
-#pragma pop
/* 800D018C-800D0198 0CAACC 000C+00 1/1 0/0 0/0 .text checkModeFlg__9daAlink_cCFUl */
u32 daAlink_c::checkModeFlg(u32 pFlag) const {
@@ -19218,24 +19420,18 @@ u8 daAlink_c::getClothesChangeWaitTimer() const {
}
/* 800D01A8-800D01E0 0CAAE8 0038+00 1/0 0/0 0/0 .text checkHorseStart__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkHorseStart() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkHorseStart__9daAlink_cFv.s"
+u32 daPy_py_c::getLastSceneMode() {
+ return dComIfGs_getLastSceneMode();
+}
+
+BOOL daAlink_c::checkHorseStart() {
+ return checkHorseStart(getLastSceneMode() & 0xF, getStartMode());
}
-#pragma pop
/* 800D01E0-800D0208 0CAB20 0028+00 1/0 0/0 0/0 .text checkCutTurnCharge__9daAlink_cCFv
*/
BOOL daAlink_c::checkCutTurnCharge() const {
- bool cutTurnCharge = false;
-
- if (mActionID == CUT_TURN_MOVE && mCommonCounter == 0) {
- cutTurnCharge = true;
- }
- return cutTurnCharge;
+ return mActionID == CUT_TURN_MOVE && mCommonCounter == 0;
}
/* 800D0208-800D0228 0CAB48 0020+00 1/0 0/0 0/0 .text checkAcceptDungeonWarpAlink__9daAlink_cFi */
@@ -19270,86 +19466,55 @@ s16 daAlink_c::checkSumouWithstand() const {
*/
void daAlink_c::setMidnaMsgNum(fopAc_ac_c* param_0, u16 pMsgNum) {
mMidnaMsgNum = pMsgNum;
- field_0x2800 = param_0;
+ static_cast<fopAc_ac_c*>(mMidnaMsg) = param_0;
}
/* 800D0290-800D029C 0CABD0 000C+00 1/0 0/0 0/0 .text getModelMtx__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm Mtx* daAlink_c::getModelMtx() {
- nofralloc
-#include "asm/d/a/d_a_alink/getModelMtx__9daAlink_cFv.s"
+MtxP daAlink_c::getModelMtx() {
+ return field_0x0650->getBaseTRMtx();
}
-#pragma pop
/* 800D029C-800D02A4 0CABDC 0008+00 1/0 0/0 0/0 .text getInvMtx__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm Mtx* daAlink_c::getInvMtx() {
- nofralloc
-#include "asm/d/a/d_a_alink/getInvMtx__9daAlink_cFv.s"
+MtxP daAlink_c::getInvMtx() {
+ return mInvMtx;
}
-#pragma pop
/* 800D02A4-800D02B8 0CABE4 0014+00 1/0 0/0 0/0 .text getLinkBackBone1Matrix__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm Mtx* daAlink_c::getLinkBackBone1Matrix() {
- nofralloc
-#include "asm/d/a/d_a_alink/getLinkBackBone1Matrix__9daAlink_cFv.s"
+MtxP daAlink_c::getLinkBackBone1Matrix() {
+ return field_0x0650->i_getAnmMtx(1);
}
-#pragma pop
/* 800D02B8-800D02CC 0CABF8 0014+00 1/0 0/0 0/0 .text getWolfMouthMatrix__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm Mtx* daAlink_c::getWolfMouthMatrix() {
- nofralloc
-#include "asm/d/a/d_a_alink/getWolfMouthMatrix__9daAlink_cFv.s"
+MtxP daAlink_c::getWolfMouthMatrix() {
+ return field_0x0650->i_getAnmMtx(13);
}
-#pragma pop
/* 800D02CC-800D02E0 0CAC0C 0014+00 1/0 0/0 0/0 .text getWolfBackbone2Matrix__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm Mtx* daAlink_c::getWolfBackbone2Matrix() {
- nofralloc
-#include "asm/d/a/d_a_alink/getWolfBackbone2Matrix__9daAlink_cFv.s"
+MtxP daAlink_c::getWolfBackbone2Matrix() {
+ return field_0x0650->i_getAnmMtx(2);
}
-#pragma pop
/* 800D02E0-800D0334 0CAC20 0054+00 1/0 0/0 0/0 .text getBottleMtx__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::getBottleMtx() {
- nofralloc
-#include "asm/d/a/d_a_alink/getBottleMtx__9daAlink_cFv.s"
+MtxP daAlink_c::getBottleMtx() {
+ if (mHeldItemModel != NULL && checkBottleItem(mEquipItem)) {
+ return mHeldItemModel->getBaseTRMtx();
+ }
+
+ return NULL;
}
-#pragma pop
/* 800D0334-800D0350 0CAC74 001C+00 1/0 0/0 0/0 .text getHeadMtx__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::getHeadMtx() {
- nofralloc
-#include "asm/d/a/d_a_alink/getHeadMtx__9daAlink_cFv.s"
+MtxP daAlink_c::getHeadMtx() {
+ return field_0x0650->i_getAnmMtx(field_0x30b4);
}
-#pragma pop
/* 800D0350-800D0358 0CAC90 0008+00 1/0 0/0 0/0 .text getGroundY__9daAlink_cFv */
-float daAlink_c::getGroundY() {
+f32 daAlink_c::getGroundY() {
return mLinkAcch.GetGroundH();
}
/* 800D0358-800D0360 0CAC98 0008+00 1/0 0/0 0/0 .text getBaseAnimeFrameRate__9daAlink_cCFv */
-float daAlink_c::getBaseAnimeFrameRate() const {
+f32 daAlink_c::getBaseAnimeFrameRate() const {
return mFrameCtrl1[0].getRate();
}
@@ -19365,10 +19530,10 @@ s32 daAlink_c::getItemID() const {
/* 800D0370-800D038C 0CACB0 001C+00 1/0 0/0 0/0 .text getGrabActorID__9daAlink_cCFv */
s32 daAlink_c::getGrabActorID() const {
- if (field_0x2fdc == 0x102) {
+ if (mEquipItem == 0x102) {
return mItemActor.getID();
} else {
- return field_0x282c.getID();
+ return mGrabItemActor.getID();
}
}
@@ -19376,12 +19541,12 @@ s32 daAlink_c::getGrabActorID() const {
*/
void daAlink_c::setForcePutPos(cXyz const& pPutPos) {
mForcePutPos = pPutPos;
- i_onEndResetFlg1(UnkForcePutPos);
+ i_onEndResetFlg1(UNK_FORCE_PUT_POS);
}
/* 800D03B4-800D03C8 0CACF4 0014+00 1/0 0/0 0/0 .text checkPlayerFly__9daAlink_cCFv */
u32 daAlink_c::checkPlayerFly() const {
- return i_checkModeFlg(PLAYER_FLY);
+ return i_checkModeFlg(MODE_SWIMMING | MODE_ROPE_WALK | MODE_VINE_CLIMB | MODE_UNK_800 | MODE_NO_COLLISION | MODE_CLIMB | MODE_JUMP);
}
/* 800D03C8-800D03DC 0CAD08 0014+00 1/0 0/0 0/0 .text checkFrontRoll__9daAlink_cCFv */
@@ -19390,605 +19555,349 @@ BOOL daAlink_c::checkFrontRoll() const {
}
/* 800D03DC-800D03F0 0CAD1C 0014+00 1/0 0/0 0/0 .text checkWolfDash__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfDash() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfDash__9daAlink_cCFv.s"
+BOOL daAlink_c::checkWolfDash() const {
+ return mActionID == WOLF_DASH;
}
-#pragma pop
/* 800D03F0-800D0414 0CAD30 0024+00 1/0 0/0 0/0 .text checkAutoJump__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkAutoJump() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkAutoJump__9daAlink_cCFv.s"
+BOOL daAlink_c::checkAutoJump() const {
+ return mActionID == HUMAN_AUTOJUMP || mActionID == WOLF_AUTOJUMP;
}
-#pragma pop
/* 800D0414-800D0444 0CAD54 0030+00 1/0 0/0 0/0 .text checkSideStep__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkSideStep() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkSideStep__9daAlink_cCFv.s"
+bool daAlink_c::checkSideStep() const {
+ return (mActionID == HUMAN_SIDESTEP || mActionID == WOLF_SIDESTEP) && field_0x300a != 0;
}
-#pragma pop
/* 800D0444-800D0468 0CAD84 0024+00 1/0 0/0 0/0 .text checkWolfTriggerJump__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfTriggerJump() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfTriggerJump__9daAlink_cCFv.s"
+bool daAlink_c::checkWolfTriggerJump() const {
+ return mActionID == WOLF_SIDESTEP || mActionID == WOLF_JUMPATTACK;
}
-#pragma pop
/* 800D0468-800D047C 0CADA8 0014+00 1/0 0/0 0/0 .text checkGuardBreakMode__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkGuardBreakMode() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkGuardBreakMode__9daAlink_cCFv.s"
+BOOL daAlink_c::checkGuardBreakMode() const {
+ return mActionID == GUARD_BREAK;
}
-#pragma pop
/* 800D047C-800D04A4 0CADBC 0028+00 1/0 0/0 0/0 .text checkLv3Slide__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkLv3Slide() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkLv3Slide__9daAlink_cCFv.s"
+bool daAlink_c::checkLv3Slide() const {
+ return mActionID == HUMAN_SLIDE && field_0x300e != 0;
}
-#pragma pop
/* 800D04A4-800D04B8 0CADE4 0014+00 1/0 0/0 0/0 .text checkWolfHowlDemoMode__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfHowlDemoMode() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfHowlDemoMode__9daAlink_cCFv.s"
+bool daAlink_c::checkWolfHowlDemoMode() const {
+ return mActionID == WOLF_HOWL;
}
-#pragma pop
/* 800D04B8-800D04CC 0CADF8 0014+00 1/0 0/0 0/0 .text checkElecDamage__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkElecDamage() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkElecDamage__9daAlink_cCFv.s"
+BOOL daAlink_c::checkElecDamage() const {
+ return mActionID == ELEC_DAMAGE;
}
-#pragma pop
/* 800D04CC-800D04F4 0CAE0C 0028+00 1/0 0/0 0/0 .text checkEmptyBottleSwing__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkEmptyBottleSwing() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkEmptyBottleSwing__9daAlink_cCFv.s"
+BOOL daAlink_c::checkEmptyBottleSwing() const {
+ return mEquipItem == EMPTY_BOTTLE && mActionID == BOTTLE_SWING;
}
-#pragma pop
/* 800D04F4-800D0508 0CAE34 0014+00 1/0 0/0 0/0 .text checkBottleSwingMode__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkBottleSwingMode() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkBottleSwingMode__9daAlink_cCFv.s"
+BOOL daAlink_c::checkBottleSwingMode() const {
+ return mActionID == BOTTLE_SWING;
}
-#pragma pop
/* 800D0508-800D051C 0CAE48 0014+00 1/0 0/0 0/0 .text checkHawkWait__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkHawkWait() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkHawkWait__9daAlink_cCFv.s"
+BOOL daAlink_c::checkHawkWait() const {
+ return mActionID == HAWK_WAIT;
}
-#pragma pop
/* 800D051C-800D0544 0CAE5C 0028+00 1/0 0/0 0/0 .text checkGoatThrow__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkGoatThrow() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkGoatThrow__9daAlink_cCFv.s"
+BOOL daAlink_c::checkGoatThrow() const {
+ return mActionID == GOAT_THROW && mCommonCounter != 0;
}
-#pragma pop
/* 800D0544-800D0570 0CAE84 002C+00 1/0 0/0 0/0 .text checkGoatThrowAfter__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkGoatThrowAfter() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkGoatThrowAfter__9daAlink_cCFv.s"
+BOOL daAlink_c::checkGoatThrowAfter() const {
+ return mActionID == GOAT_THROW && field_0x3478 > FLOAT_LABEL(lit_6108);
}
-#pragma pop
/* 800D0570-800D0598 0CAEB0 0028+00 1/0 0/0 0/0 .text checkWolfTagLockJump__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfTagLockJump() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfTagLockJump__9daAlink_cCFv.s"
+BOOL daAlink_c::checkWolfTagLockJump() const {
+ return mActionID == WOLF_TAGLOCK_JUMP && field_0x3198 == 0;
}
-#pragma pop
/* 800D0598-800D05AC 0CAED8 0014+00 1/0 0/0 0/0 .text checkWolfTagLockJumpLand__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfTagLockJumpLand() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfTagLockJumpLand__9daAlink_cCFv.s"
+BOOL daAlink_c::checkWolfTagLockJumpLand() const {
+ return mActionID == WOLF_TAGLOCK_LAND;
}
-#pragma pop
/* 800D05AC-800D05C0 0CAEEC 0014+00 1/0 0/0 0/0 .text checkWolfRopeHang__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfRopeHang() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfRopeHang__9daAlink_cCFv.s"
+BOOL daAlink_c::checkWolfRopeHang() const {
+ return mActionID == WOLF_ROPE_HANG;
}
-#pragma pop
/* 800D05C0-800D05D4 0CAF00 0014+00 1/0 0/0 0/0 .text checkRollJump__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkRollJump() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkRollJump__9daAlink_cCFv.s"
+BOOL daAlink_c::checkRollJump() const {
+ return mActionID == ROLL_JUMP;
}
-#pragma pop
/* 800D05D4-800D05E8 0CAF14 0014+00 1/0 0/0 0/0 .text checkGoronRideWait__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkGoronRideWait() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkGoronRideWait__9daAlink_cCFv.s"
+BOOL daAlink_c::checkGoronRideWait() const {
+ return mActionID == GORON_RIDE_WAIT;
}
-#pragma pop
/* 800D05E8-800D05FC 0CAF28 0014+00 1/0 0/0 0/0 .text checkWolfChain__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfChain() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfChain__9daAlink_cCFv.s"
+BOOL daAlink_c::checkWolfChain() const {
+ return mActionID == WOLF_CHAIN;
}
-#pragma pop
/* 800D05FC-800D0610 0CAF3C 0014+00 1/0 0/0 0/0 .text checkWolfWait__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfWait() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfWait__9daAlink_cCFv.s"
+BOOL daAlink_c::checkWolfWait() const {
+ return mActionID == WOLF_WAIT;
}
-#pragma pop
/* 800D0610-800D0624 0CAF50 0014+00 1/0 0/0 0/0 .text checkWolfJumpAttack__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfJumpAttack() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfJumpAttack__9daAlink_cCFv.s"
+BOOL daAlink_c::checkWolfJumpAttack() const {
+ return mActionID == WOLF_JUMPATTACK;
}
-#pragma pop
/* 800D0624-800D0638 0CAF64 0014+00 1/0 0/0 0/0 .text checkWolfRSit__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfRSit() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfRSit__9daAlink_cCFv.s"
+BOOL daAlink_c::checkWolfRSit() const {
+ return mActionID == WOLF_RSIT;
}
-#pragma pop
/* 800D0638-800D0660 0CAF78 0028+00 1/0 0/0 0/0 .text checkBottleDrinkEnd__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkBottleDrinkEnd() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkBottleDrinkEnd__9daAlink_cCFv.s"
+BOOL daAlink_c::checkBottleDrinkEnd() const {
+ return mActionID == BOTTLE_DRINK && field_0x300e != 0;
}
-#pragma pop
/* 800D0660-800D0674 0CAFA0 0014+00 1/0 0/0 0/0 .text checkWolfDig__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfDig() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfDig__9daAlink_cCFv.s"
+BOOL daAlink_c::checkWolfDig() const {
+ return mActionID == WOLF_DIG;
}
-#pragma pop
/* 800D0674-800D0688 0CAFB4 0014+00 1/0 0/0 0/0 .text checkCutCharge__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkCutCharge() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCutCharge__9daAlink_cCFv.s"
+BOOL daAlink_c::checkCutCharge() const {
+ return mActionID == CUT_TURN_MOVE;
}
-#pragma pop
/* 800D0688-800D06B0 0CAFC8 0028+00 1/0 0/0 0/0 .text checkCutLargeJumpCharge__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkCutLargeJumpCharge() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCutLargeJumpCharge__9daAlink_cCFv.s"
+BOOL daAlink_c::checkCutLargeJumpCharge() const {
+ return mActionID == CUT_TURN_MOVE && mCommonCounter != 0;
}
-#pragma pop
/* 800D06B0-800D06D8 0CAFF0 0028+00 1/0 0/0 0/0 .text checkComboCutTurn__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkComboCutTurn() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkComboCutTurn__9daAlink_cCFv.s"
+BOOL daAlink_c::checkComboCutTurn() const {
+ return mActionID == COMBO_CUT_TURN && mComboCutCount != 0;
}
-#pragma pop
/* 800D06D8-800D0704 0CB018 002C+00 1/0 0/0 0/0 .text checkClimbMove__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkClimbMove() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkClimbMove__9daAlink_cCFv.s"
+BOOL daAlink_c::checkClimbMove() const {
+ return mActionID == CLIMB_MOVE_VERTICAL || mActionID == CLIMB_MOVE_LADDER || mActionID == CLIMB_MOVE_HORIZONTAL;
}
-#pragma pop
/* 800D0704-800D0718 0CB044 0014+00 1/0 0/0 0/0 .text checkGrassWhistle__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkGrassWhistle() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkGrassWhistle__9daAlink_cCFv.s"
+BOOL daAlink_c::checkGrassWhistle() const {
+ return mActionID == GRASS_WHISTLE;
}
-#pragma pop
/* 800D0718-800D072C 0CB058 0014+00 1/0 0/0 0/0 .text checkBoarRun__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkBoarRun() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkBoarRun__9daAlink_cCFv.s"
+BOOL daAlink_c::checkBoarRun() const {
+ return mActionID == BOAR_RUN;
}
-#pragma pop
/* 800D072C-800D0794 0CB06C 0068+00 1/0 0/0 0/0 .text checkHorseRideNotReady__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkHorseRideNotReady() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkHorseRideNotReady__9daAlink_cCFv.s"
+BOOL daAlink_c::checkHorseRideNotReady() const {
+ return checkHorseRide() && mActionID != HORSE_RIDE && mActionID != HORSE_GETOFF;
}
-#pragma pop
/* 800D0794-800D079C 0CB0D4 0008+00 1/0 0/0 0/0 .text getSearchBallScale__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getSearchBallScale() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getSearchBallScale__9daAlink_cCFv.s"
+f32 daAlink_c::getSearchBallScale() const {
+ return mSearchBallScale;
}
-#pragma pop
/* 800D079C-800D07A4 0CB0DC 0008+00 1/0 0/0 0/0 .text checkFastShotTime__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkFastShotTime() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkFastShotTime__9daAlink_cFv.s"
+s16 daAlink_c::checkFastShotTime() {
+ return mFastShotTime;
}
-#pragma pop
/* 800D07A4-800D07D4 0CB0E4 0030+00 1/0 0/0 0/0 .text checkCutJumpCancelTurn__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkCutJumpCancelTurn() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCutJumpCancelTurn__9daAlink_cCFv.s"
+BOOL daAlink_c::checkCutJumpCancelTurn() const {
+ return (mActionID == CUT_JUMP || mActionID == CUT_JUMP_LAND) && field_0x3198 != 2;
}
-#pragma pop
/* 800D07D4-800D07FC 0CB114 0028+00 1/0 0/0 0/0 .text
* checkSingleBoarBattleSecondBowReady__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkSingleBoarBattleSecondBowReady() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkSingleBoarBattleSecondBowReady__9daAlink_cCFv.s"
+BOOL daAlink_c::checkSingleBoarBattleSecondBowReady() const {
+ return mActionID == RIDE_BOW_READY && mCommonCounter != 0;
}
-#pragma pop
/* 800D07FC-800D0818 0CB13C 001C+00 1/0 0/0 0/0 .text cancelDungeonWarpReadyNeck__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::cancelDungeonWarpReadyNeck() {
- nofralloc
-#include "asm/d/a/d_a_alink/cancelDungeonWarpReadyNeck__9daAlink_cFv.s"
+void daAlink_c::cancelDungeonWarpReadyNeck() {
+ if (mActionID != DUNGEON_WARP_READY) {
+ return;
+ }
+ offModeFlg(MODE_UNK_100);
}
-#pragma pop
/* 800D0818-800D0830 0CB158 0018+00 1/0 0/0 0/0 .text
* onSceneChangeAreaJump__9daAlink_cFUcUcP10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::onSceneChangeAreaJump(u8 param_0, u8 param_1, fopAc_ac_c* param_2) {
- nofralloc
-#include "asm/d/a/d_a_alink/onSceneChangeAreaJump__9daAlink_cFUcUcP10fopAc_ac_c.s"
+void daAlink_c::onSceneChangeAreaJump(u8 param_0, u8 param_1, fopAc_ac_c* param_2) {
+ field_0x3112 = param_0 | 0x8000;
+ field_0x2fac = param_1;
+ field_0x2808 = param_2;
}
-#pragma pop
/* 800D0830-800D084C 0CB170 001C+00 1/0 0/0 0/0 .text onSceneChangeDead__9daAlink_cFUci
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::onSceneChangeDead(u8 param_0, int param_1) {
- nofralloc
-#include "asm/d/a/d_a_alink/onSceneChangeDead__9daAlink_cFUci.s"
+void daAlink_c::onSceneChangeDead(u8 param_0, int param_1) {
+ if (mActionID != DEAD) {
+ return;
+ }
+ field_0x3012 = param_0;
+ field_0x3198 = param_1;
}
-#pragma pop
/* 800D084C-800D0860 0CB18C 0014+00 1/0 0/0 0/0 .text checkNoEquipItem__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkNoEquipItem() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkNoEquipItem__9daAlink_cCFv.s"
+bool daAlink_c::checkNoEquipItem() const {
+ return mEquipItem == NO_ITEM;
}
-#pragma pop
/* 800D0860-800D087C 0CB1A0 001C+00 1/0 0/0 0/0 .text getBoardCutTurnOffsetAngleY__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::getBoardCutTurnOffsetAngleY() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBoardCutTurnOffsetAngleY__9daAlink_cCFv.s"
+s16 daAlink_c::getBoardCutTurnOffsetAngleY() const {
+ if (mActionID == BOARD_CUT_TURN) {
+ return field_0x3012;
+ }
+ return 0;
}
-#pragma pop
/* 800D087C-800D0884 0CB1BC 0008+00 1/0 0/0 0/0 .text getMagneBootsTopVec__9daAlink_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm cXyz* daAlink_c::getMagneBootsTopVec() {
- nofralloc
-#include "asm/d/a/d_a_alink/getMagneBootsTopVec__9daAlink_cFv.s"
+cXyz* daAlink_c::getMagneBootsTopVec() {
+ return &mMagneBootsTopVec;
}
-#pragma pop
/* 800D0884-800D08B0 0CB1C4 002C+00 1/0 0/0 0/0 .text setCargoCarry__9daAlink_cFP10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setCargoCarry(fopAc_ac_c* param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/setCargoCarry__9daAlink_cFP10fopAc_ac_c.s"
+void daAlink_c::setCargoCarry(fopAc_ac_c* p_actor) {
+ mSpecialMode = SMODE_CARGO_CARRY;
+ mCargoCarryActor.setData(p_actor);
}
-#pragma pop
/* 800D08B0-800D08DC 0CB1F0 002C+00 1/0 0/0 0/0 .text setGoronSideMove__9daAlink_cFP10fopAc_ac_c
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setGoronSideMove(fopAc_ac_c* param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/setGoronSideMove__9daAlink_cFP10fopAc_ac_c.s"
+void daAlink_c::setGoronSideMove(fopAc_ac_c* p_actor) {
+ mSpecialMode = SMODE_GORON_THROW;
+ mCargoCarryActor.setData(p_actor);
}
-#pragma pop
/* 800D08DC-800D091C 0CB21C 0040+00 1/0 0/0 0/0 .text setSumouReady__9daAlink_cFP10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setSumouReady(fopAc_ac_c* param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/setSumouReady__9daAlink_cFP10fopAc_ac_c.s"
+void daAlink_c::setSumouReady(fopAc_ac_c* p_actor) {
+ mSpecialMode = SMODE_SUMO_READY;
+ mCargoCarryActor.setData(p_actor);
+ mDemo.setDemoMode(1);
}
-#pragma pop
/* 800D091C-800D0930 0CB25C 0014+00 1/0 0/0 0/0 .text setSumouPushBackDirection__9daAlink_cFs */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setSumouPushBackDirection(s16 param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/setSumouPushBackDirection__9daAlink_cFs.s"
+void daAlink_c::setSumouPushBackDirection(s16 param_0) {
+ if (mActionID != SUMOU_PUSH) {
+ return;
+ }
+ field_0x3010 = param_0;
}
-#pragma pop
/* 800D0930-800D0948 0CB270 0018+00 1/0 0/0 0/0 .text setSumouLoseHeadUp__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setSumouLoseHeadUp() {
- nofralloc
-#include "asm/d/a/d_a_alink/setSumouLoseHeadUp__9daAlink_cFv.s"
+void daAlink_c::setSumouLoseHeadUp() {
+ if (mActionID != SUMOU_WIN_LOSE) {
+ return;
+ }
+ mSpecialMode = SMODE_SUMO_LOSE;
}
-#pragma pop
/* 800D0948-800D095C 0CB288 0014+00 1/0 0/0 0/0 .text checkPriActorOwn__9daAlink_cCFPC10fopAc_ac_c
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkPriActorOwn(fopAc_ac_c const* param_0) const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkPriActorOwn__9daAlink_cCFPC10fopAc_ac_c.s"
+bool daAlink_c::checkPriActorOwn(fopAc_ac_c const* p_actor) const {
+ return field_0x27f4 == p_actor;
}
-#pragma pop
/* 800D095C-800D0970 0CB29C 0014+00 1/0 0/0 0/0 .text
* checkWolfEnemyBiteAllOwn__9daAlink_cCFPC10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfEnemyBiteAllOwn(fopAc_ac_c const* param_0) const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfEnemyBiteAllOwn__9daAlink_cCFPC10fopAc_ac_c.s"
+bool daAlink_c::checkWolfEnemyBiteAllOwn(fopAc_ac_c const* p_actor) const {
+ return field_0x281c.getActorConst() == p_actor;
}
-#pragma pop
/* 800D0970-800D0984 0CB2B0 0014+00 1/0 0/0 0/0 .text setWolfEnemyHangBiteAngle__9daAlink_cFs */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setWolfEnemyHangBiteAngle(s16 param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/setWolfEnemyHangBiteAngle__9daAlink_cFs.s"
+void daAlink_c::setWolfEnemyHangBiteAngle(s16 angle) {
+ if (mActionID != WOLF_ENEMY_HANG_BITE) {
+ return;
+ }
+ field_0x3010 = angle;
}
-#pragma pop
/* 800D0984-800D0998 0CB2C4 0014+00 1/0 0/0 0/0 .text setSumouGraspCancelCount__9daAlink_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setSumouGraspCancelCount(int param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/setSumouGraspCancelCount__9daAlink_cFi.s"
+void daAlink_c::setSumouGraspCancelCount(int param_0) {
+ if (mActionID != SUMOU_PUSH) {
+ return;
+ }
+ mCommonCounter = param_0;
}
-#pragma pop
/* 800D0998-800D09AC 0CB2D8 0014+00 1/0 0/0 0/0 .text checkItemSwordEquip__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkItemSwordEquip() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkItemSwordEquip__9daAlink_cCFv.s"
+bool daAlink_c::checkItemSwordEquip() const {
+ return mEquipItem == EQUIP_SWORD;
}
-#pragma pop
/* 800D09AC-800D09B4 0CB2EC 0008+00 1/0 0/0 0/0 .text getSinkShapeOffset__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm float daAlink_c::getSinkShapeOffset() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getSinkShapeOffset__9daAlink_cCFv.s"
+f32 daAlink_c::getSinkShapeOffset() const {
+ return mSinkShapeOffset;
}
-#pragma pop
/* 800D09B4-800D09C8 0CB2F4 0014+00 1/0 0/0 0/0 .text checkSinkDead__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkSinkDead() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkSinkDead__9daAlink_cCFv.s"
+BOOL daAlink_c::checkSinkDead() const {
+ return field_0x2fbd == 0xFF;
}
-#pragma pop
/* 800D09C8-800D09DC 0CB308 0014+00 1/0 0/0 0/0 .text checkCutJumpMode__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkCutJumpMode() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCutJumpMode__9daAlink_cCFv.s"
+BOOL daAlink_c::checkCutJumpMode() const {
+ return mActionID == CUT_JUMP;
}
-#pragma pop
/* 800D09DC-800D09E4 0CB31C 0008+00 1/0 0/0 0/0 .text getGiantPuzzleAimAngle__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm s16 daAlink_c::getGiantPuzzleAimAngle() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getGiantPuzzleAimAngle__9daAlink_cCFv.s"
+s16 daAlink_c::getGiantPuzzleAimAngle() const {
+ return mCommonCounter;
}
-#pragma pop
/* 800D09E4-800D09EC 0CB324 0008+00 1/0 0/0 0/0 .text getSwordChangeWaitTimer__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::getSwordChangeWaitTimer() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getSwordChangeWaitTimer__9daAlink_cCFv.s"
+u8 daAlink_c::getSwordChangeWaitTimer() const {
+ return mSwordChangeWaitTimer;
}
-#pragma pop
/* 800D09EC-800D0A14 0CB32C 0028+00 1/0 0/0 0/0 .text checkMetamorphose__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkMetamorphose() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkMetamorphose__9daAlink_cCFv.s"
+BOOL daAlink_c::checkMetamorphose() const {
+ return mActionID == METAMORPHOSE && field_0x300a == 0;
}
-#pragma pop
/* 800D0A14-800D0A28 0CB354 0014+00 1/0 0/0 0/0 .text checkWolfDownAttackPullOut__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfDownAttackPullOut() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfDownAttackPullOut__9daAlink_cCFv.s"
+BOOL daAlink_c::checkWolfDownAttackPullOut() const {
+ return mActionID == WOLF_DOWNATTACK_PULLOUT;
}
-#pragma pop
/* 800D0A28-800D0A30 0CB368 0008+00 1/0 0/0 0/0 .text getMidnaAtnPos__9daAlink_cCFv */
+// vtable issue
+#ifdef NONMATCHING
+cXyz* daAlink_c::getMidnaAtnPos() const {
+ return &mMidnaAtnPos;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -19998,135 +19907,86 @@ extern "C" asm void getMidnaAtnPos__9daAlink_cCFv() {
#include "asm/d/a/d_a_alink/getMidnaAtnPos__9daAlink_cCFv.s"
}
#pragma pop
+#endif
/* 800D0A30-800D0A44 0CB370 0014+00 1/0 0/0 0/0 .text checkCopyRodEquip__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkCopyRodEquip() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCopyRodEquip__9daAlink_cCFv.s"
+bool daAlink_c::checkCopyRodEquip() const {
+ return mEquipItem == COPY_ROD;
}
-#pragma pop
/* 800D0A44-800D0A6C 0CB384 0028+00 1/0 0/0 0/0 .text checkCanoeFishingGetLeft__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkCanoeFishingGetLeft() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCanoeFishingGetLeft__9daAlink_cCFv.s"
+bool daAlink_c::checkCanoeFishingGetLeft() const {
+ return mActionID == CANOE_FISHING_GET && field_0x300e == 0;
}
-#pragma pop
/* 800D0A6C-800D0A94 0CB3AC 0028+00 1/0 0/0 0/0 .text checkCanoeFishingGetRight__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkCanoeFishingGetRight() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCanoeFishingGetRight__9daAlink_cCFv.s"
+bool daAlink_c::checkCanoeFishingGetRight() const {
+ return mActionID == CANOE_FISHING_GET && field_0x300e == 1;
}
-#pragma pop
/* 800D0A94-800D0A9C 0CB3D4 0008+00 1/0 0/0 0/0 .text checkBeeChildDrink__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkBeeChildDrink() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkBeeChildDrink__9daAlink_cCFv.s"
+u8 daAlink_c::checkBeeChildDrink() const {
+ return field_0x2fd3;
}
-#pragma pop
/* 800D0A9C-800D0AA4 0CB3DC 0008+00 1/0 0/0 0/0 .text getWolfHowlMgrP__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::getWolfHowlMgrP() {
- nofralloc
-#include "asm/d/a/d_a_alink/getWolfHowlMgrP__9daAlink_cFv.s"
+Z2WolfHowlMgr* daAlink_c::getWolfHowlMgrP() {
+ return &mZ2WolfHowlMgr;
}
-#pragma pop
/* 800D0AA4-800D0AC8 0CB3E4 0024+00 1/0 0/0 0/0 .text checkWolfHowlSuccessAnime__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfHowlSuccessAnime() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfHowlSuccessAnime__9daAlink_cCFv.s"
+BOOL daAlink_c::checkWolfHowlSuccessAnime() const {
+ return checkUnderMove0BckNoArcWolf(ANM_WOLF_HOWL_SUCCESS);
}
-#pragma pop
/* 800D0AC8-800D0AF0 0CB408 0028+00 1/0 0/0 0/0 .text checkOctaIealHang__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkOctaIealHang() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkOctaIealHang__9daAlink_cCFv.s"
+bool daAlink_c::checkOctaIealHang() const {
+ return mActionID == BOSS_ENEMY_HANG && field_0x32cc == 0;
}
-#pragma pop
/* 800D0AF0-800D0B08 0CB430 0018+00 1/0 0/0 0/0 .text cancelOctaIealHang__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::cancelOctaIealHang() {
- nofralloc
-#include "asm/d/a/d_a_alink/cancelOctaIealHang__9daAlink_cFv.s"
+void daAlink_c::cancelOctaIealHang() {
+ if (mActionID != BOSS_ENEMY_HANG) {
+ return;
+ }
+ field_0x300e = 1;
}
-#pragma pop
/* 800D0B08-800D0B20 0CB448 0018+00 1/0 0/0 0/0 .text cancelDragonHangBackJump__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::cancelDragonHangBackJump() {
- nofralloc
-#include "asm/d/a/d_a_alink/cancelDragonHangBackJump__9daAlink_cFv.s"
+void daAlink_c::cancelDragonHangBackJump() {
+ if (mActionID != BOSS_ENEMY_HANG) {
+ return;
+ }
+ field_0x300e = -1;
}
-#pragma pop
/* 800D0B20-800D0B38 0CB460 0018+00 1/0 0/0 0/0 .text setOctaIealWildHang__9daAlink_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setOctaIealWildHang() {
- nofralloc
-#include "asm/d/a/d_a_alink/setOctaIealWildHang__9daAlink_cFv.s"
+void daAlink_c::setOctaIealWildHang() {
+ if (mActionID != BOSS_ENEMY_HANG) {
+ return;
+ }
+ field_0x3008 = 1;
}
-#pragma pop
/* 800D0B38-800D0B60 0CB478 0028+00 1/0 0/0 0/0 .text checkDragonHangRide__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkDragonHangRide() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkDragonHangRide__9daAlink_cCFv.s"
+bool daAlink_c::checkDragonHangRide() const {
+ return mActionID == BOSS_ENEMY_HANG && field_0x32cc != 0;
}
-#pragma pop
/* 800D0B60-800D0B8C 0CB4A0 002C+00 1/0 0/0 0/0 .text playerStartCollisionSE__9daAlink_cFUlUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::playerStartCollisionSE(u32 param_0, u32 param_1) {
- nofralloc
-#include "asm/d/a/d_a_alink/playerStartCollisionSE__9daAlink_cFUlUl.s"
+void daAlink_c::playerStartCollisionSE(u32 param_0, u32 param_1) {
+ mZ2Link.startCollisionSE(param_0, param_1);
}
-#pragma pop
/* 800D0B8C-800D0C6C 0CB4CC 00E0+00 1/0 0/0 0/0 .text __dt__16daAlink_matAnm_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm daAlink_matAnm_c::~daAlink_matAnm_c() {
+// asm daAlink_matAnm_c::~daAlink_matAnm_c() {
+extern "C" asm void __dt__16daAlink_matAnm_cFv() {
nofralloc
#include "asm/d/a/d_a_alink/__dt__16daAlink_matAnm_cFv.s"
}
@@ -20207,76 +20067,70 @@ asm void daAlink_c::checkLightSwordMtrl() {
/* 800D0E98-800D0ECC 0CB7D8 0034+00 5/5 0/0 0/0 .text checkSwordEquipAnime__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkSwordEquipAnime() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkSwordEquipAnime__9daAlink_cCFv.s"
+BOOL daAlink_c::checkSwordEquipAnime() const {
+ return !i_checkNoResetFlg0(FLG0_UNK_1000000) && (checkUpperAnime(0x255) || checkUpperAnime(0x261));
}
-#pragma pop
/* 800D0ECC-800D0EFC 0CB80C 0030+00 8/8 0/0 0/0 .text checkCutDashAnime__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkCutDashAnime() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCutDashAnime__9daAlink_cCFv.s"
+BOOL daAlink_c::checkCutDashAnime() const {
+ return checkUpperAnime(0x80) || checkUpperAnime(0x82) || checkUpperAnime(0x81);
}
-#pragma pop
/* 800D0EFC-800D0F5C 0CB83C 0060+00 1/1 0/0 0/0 .text
* checkCutDashEnemyHit__9daAlink_cFR12dCcD_GObjInf */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkCutDashEnemyHit(dCcD_GObjInf& param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCutDashEnemyHit__9daAlink_cFR12dCcD_GObjInf.s"
+BOOL daAlink_c::checkCutDashEnemyHit(dCcD_GObjInf& obj) {
+ return obj.ChkAtHit() && checkEnemyGroup(obj.GetAtHitAc());
}
-#pragma pop
/* 800D0F5C-800D0F90 0CB89C 0034+00 6/6 0/0 0/0 .text getSwordAtType__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getSwordAtType() {
- nofralloc
-#include "asm/d/a/d_a_alink/getSwordAtType__9daAlink_cFv.s"
+u32 daAlink_c::getSwordAtType() {
+ return checkMasterSwordEquip() ? 0x4000002 : 2;
}
-#pragma pop
/* 800D0F90-800D102C 0CB8D0 009C+00 3/3 0/0 0/0 .text initCutTurnAt__9daAlink_cFfi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::initCutTurnAt(f32 param_0, int param_1) {
- nofralloc
-#include "asm/d/a/d_a_alink/initCutTurnAt__9daAlink_cFfi.s"
+void daAlink_c::initCutTurnAt(f32 param_0, int param_1) {
+ field_0xFB8.ResetAtHit();
+ field_0xFB8.OnAtSetBit();
+ field_0xFB8.SetAtType(getSwordAtType());
+ field_0xFB8.SetAtHitMark(3);
+ field_0xFB8.SetAtSe(1);
+ field_0xFB8.SetAtAtp(param_1);
+ u8 mtrl;
+ if (!i_checkNoResetFlg3(FLG3_UNK_100000)) {
+ mtrl = 0;
+ } else {
+ mtrl = 4;
+ }
+ field_0xFB8.SetAtMtrl(mtrl);
+ field_0xFB8.SetR(param_0);
+ field_0x2fd0 = 1;
}
-#pragma pop
/* 800D102C-800D1088 0CB96C 005C+00 2/2 0/0 0/0 .text checkCutFinishJumpUp__9daAlink_cFv
*/
+#ifdef NONMATCHING
+bool daAlink_c::checkCutFinishJumpUp() {
+ return checkCutBackState() && (!checkNotBattleStage() && swordSwingTrigger());
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkCutFinishJumpUp() {
+asm bool daAlink_c::checkCutFinishJumpUp() {
nofralloc
#include "asm/d/a/d_a_alink/checkCutFinishJumpUp__9daAlink_cFv.s"
}
#pragma pop
+#endif
/* 800D1088-800D10E0 0CB9C8 0058+00 2/2 0/0 0/0 .text changeCutFast__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::changeCutFast() {
- nofralloc
-#include "asm/d/a/d_a_alink/changeCutFast__9daAlink_cFv.s"
+void daAlink_c::changeCutFast() {
+ deleteEquipItem(0, 0);
+ setSwordModel();
+ mComboCutCount = 3;
+ checkCutAction();
+ i_onNoResetFlg0(FLG0_UNK_80000);
}
-#pragma pop
/* 800D10E0-800D1268 0CBA20 0188+00 1/1 0/0 0/0 .text checkCutFastReady__9daAlink_cFv */
#pragma push
@@ -20288,42 +20142,48 @@ asm void daAlink_c::checkCutFastReady() {
}
#pragma pop
+bool daPy_py_c::checkWoodSwordEquip() {
+ return dComIfGs_getSelectEquipSword() == WOOD_STICK;
+}
+
/* 800D1268-800D1310 0CBBA8 00A8+00 9/9 0/0 0/0 .text setSwordModel__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setSwordModel() {
- nofralloc
-#include "asm/d/a/d_a_alink/setSwordModel__9daAlink_cFv.s"
+void daAlink_c::setSwordModel() {
+ field_0x2fde = 0xFF;
+ mEquipItem = EQUIP_SWORD;
+
+ mDoAud_bgmSetSwordUsing(1);
+ field_0x2f94 = 0;
+
+ if (checkWoodSwordEquip()) {
+ mSwordModel->getModelData()->getMaterialNodePointer(1)->getShape()->hide();
+ } else {
+ mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->show();
+ }
}
-#pragma pop
/* 800D1310-800D13AC 0CBC50 009C+00 2/2 0/0 0/0 .text offSwordModel__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::offSwordModel() {
- nofralloc
-#include "asm/d/a/d_a_alink/offSwordModel__9daAlink_cFv.s"
+void daAlink_c::offSwordModel() {
+ mDoAud_bgmSetSwordUsing(0);
+
+ if (mSwordModel == field_0x0668 || mSwordModel == field_0x0660) {
+ mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->hide();
+ }
+ else if (mSwordModel == field_0x0670) {
+ field_0x0670->getModelData()->getMaterialNodePointer(1)->getShape()->show();
+ }
}
-#pragma pop
/* 800D13AC-800D13E4 0CBCEC 0038+00 1/1 0/0 0/0 .text checkCutTypeNoBlur__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkCutTypeNoBlur() const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCutTypeNoBlur__9daAlink_cCFv.s"
+BOOL daAlink_c::checkCutTypeNoBlur() const {
+ return mCutType == TYPE_CUT_STAB || mCutType == TYPE_CUT_STAB_COMBO || mCutType == TYPE_CUT_STAB_FINISH || i_checkNoResetFlg0(UNDER_WATER_MOVEMENT);
}
-#pragma pop
/* 800D13E4-800D1424 0CBD24 0040+00 7/7 0/0 0/0 .text checkCutTurnInput__9daAlink_cCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkCutTurnInput() const {
+asm bool daAlink_c::checkCutTurnInput() const {
nofralloc
#include "asm/d/a/d_a_alink/checkCutTurnInput__9daAlink_cCFv.s"
}
@@ -20331,26 +20191,33 @@ asm void daAlink_c::checkCutTurnInput() const {
/* 800D1424-800D1430 0CBD64 000C+00 7/7 0/0 0/0 .text getCutTurnDirection__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getCutTurnDirection() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getCutTurnDirection__9daAlink_cCFv.s"
+int daAlink_c::getCutTurnDirection() const {
+ return field_0x3180 < 0;
}
-#pragma pop
/* 800D1430-800D1454 0CBD70 0024+00 17/17 0/0 0/0 .text resetCombo__9daAlink_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::resetCombo(int param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/resetCombo__9daAlink_cFi.s"
+void daAlink_c::resetCombo(int param_0) {
+ mComboCutCount = 0;
+ i_offNoResetFlg0(FLG0_UNK_8000);
+ if (param_0 != 0) {
+ mRunCutComboCount = 0;
+ }
}
-#pragma pop
/* 800D1454-800D152C 0CBD94 00D8+00 1/1 0/0 0/0 .text checkComboCnt__9daAlink_cFv */
+// something with i_checkAttentionLock
+#ifdef NONMATCHING
+void daAlink_c::checkComboCnt() {
+ if ((mEquipItem == EQUIP_SWORD && mComboCutCount == 2) && (i_checkAttentionLock() && (field_0x122C[0].ChkAtHit() || field_0x122C[1].ChkAtHit() || field_0x122C[2].ChkAtHit()))) {
+ i_onNoResetFlg0(FLG0_UNK_8000);
+ }
+ if (field_0x307e > 0) {
+ field_0x307e--;
+ } else {
+ resetCombo(1);
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -20359,16 +20226,13 @@ asm void daAlink_c::checkComboCnt() {
#include "asm/d/a/d_a_alink/checkComboCnt__9daAlink_cFv.s"
}
#pragma pop
+#endif
/* 800D152C-800D1540 0CBE6C 0014+00 22/22 0/0 0/0 .text setCutType__9daAlink_cFUc */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setCutType(u8 param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/setCutType__9daAlink_cFUc.s"
+void daAlink_c::setCutType(u8 type) {
+ mCutType = type;
+ i_offResetFlg0(RFLG0_UNK_8000000);
}
-#pragma pop
/* 800D1540-800D1688 0CBE80 0148+00 8/8 0/0 0/0 .text
* setCylAtParam__9daAlink_cFUl11dCcG_At_SplUcUciff */
@@ -20396,14 +20260,15 @@ asm void daAlink_c::setSwordAtParam(dCcG_At_Spl param_0, u8 param_1, u8 param_2,
/* 800D1788-800D17EC 0CC0C8 0064+00 1/1 0/0 1/1 .text
* notSwordHitVibActor__9daAlink_cFP10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::notSwordHitVibActor(fopAc_ac_c* param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/notSwordHitVibActor__9daAlink_cFP10fopAc_ac_c.s"
+bool daAlink_c::notSwordHitVibActor(fopAc_ac_c* p_actor) {
+ if (p_actor != NULL && fopAcM_GetGroup(p_actor) == 4) {
+ s16 name = fopAcM_GetName(p_actor);
+ if (!checkSpecialNpc(p_actor) && name != 0x108 && name != 0x240) {
+ return true;
+ }
+ }
+ return false;
}
-#pragma pop
/* 800D17EC-800D1920 0CC12C 0134+00 4/4 0/0 0/0 .text
* setSwordHitVibration__9daAlink_cFP12dCcD_GObjInf */
@@ -20418,32 +20283,23 @@ asm void daAlink_c::setSwordHitVibration(dCcD_GObjInf* param_0) {
/* 800D1920-800D1978 0CC260 0058+00 3/3 0/0 0/0 .text checkAtShieldHit__9daAlink_cFR12dCcD_GObjInf
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkAtShieldHit(dCcD_GObjInf& param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/checkAtShieldHit__9daAlink_cFR12dCcD_GObjInf.s"
+BOOL daAlink_c::checkAtShieldHit(dCcD_GObjInf& param_0) {
+ return param_0.ChkAtHit() && param_0.ChkAtShieldHit();
}
-#pragma pop
/* 800D1978-800D19C8 0CC2B8 0050+00 1/1 0/0 0/0 .text
* checkCutReverseAt__9daAlink_cFP12dCcD_GObjInf */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkCutReverseAt(dCcD_GObjInf* param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCutReverseAt__9daAlink_cFP12dCcD_GObjInf.s"
+bool daAlink_c::checkCutReverseAt(dCcD_GObjInf* param_0) {
+ param_0->GetAtHitAc();
+ return checkAtShieldHit(*param_0) ? true : false;
}
-#pragma pop
/* 800D19C8-800D1E1C 0CC308 0454+00 5/5 0/0 0/0 .text
* changeCutReverseProc__9daAlink_cFQ29daAlink_c11daAlink_ANM */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::changeCutReverseProc(daAlink_c::daAlink_ANM param_0) {
+asm BOOL daAlink_c::changeCutReverseProc(daAlink_c::daAlink_ANM param_0) {
nofralloc
#include "asm/d/a/d_a_alink/changeCutReverseProc__9daAlink_cFQ29daAlink_c11daAlink_ANM.s"
}
@@ -20461,85 +20317,87 @@ asm void daAlink_c::setCutDash(int param_0, int param_1) {
/* 800D20B4-800D20FC 0CC9F4 0048+00 4/4 0/0 0/0 .text checkForceSwordSwing__9daAlink_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkForceSwordSwing() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkForceSwordSwing__9daAlink_cFv.s"
+BOOL daAlink_c::checkForceSwordSwing() {
+ return mEquipItem == EQUIP_SWORD && swordSwingTrigger();
}
-#pragma pop
/* 800D20FC-800D2188 0CCA3C 008C+00 7/7 0/0 0/0 .text setComboReserb__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setComboReserb() {
- nofralloc
-#include "asm/d/a/d_a_alink/setComboReserb__9daAlink_cFv.s"
+void daAlink_c::setComboReserb() {
+ if (i_checkWolf()) {
+ field_0x307e = daAlinkHIO_wlAttack_c0::m.mComboDuration;
+ } else {
+ field_0x307e = daAlinkHIO_cut_c0::m.mComboDuration;
+ }
+ if (mComboCutCount != 4 && field_0x2fce == 0 && swordSwingTrigger()) {
+ i_onNoResetFlg2(UNK_FLG2_2);
+ }
}
-#pragma pop
/* 800D2188-800D21D0 0CCAC8 0048+00 1/1 0/0 0/0 .text checkComboReserb__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkComboReserb() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkComboReserb__9daAlink_cFv.s"
+BOOL daAlink_c::checkComboReserb() {
+ return i_checkNoResetFlg2(UNK_FLG2_2) && !checkEventRun();
+}
+
+inline u8 i_dComIfGp_getDoStatus() {
+ return g_dComIfG_gameInfo.play.getDoStatus();
}
-#pragma pop
/* 800D21D0-800D2284 0CCB10 00B4+00 1/1 0/0 0/0 .text commonCutAction__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::commonCutAction() {
- nofralloc
-#include "asm/d/a/d_a_alink/commonCutAction__9daAlink_cFv.s"
+bool daAlink_c::commonCutAction() {
+ if (mComboCutCount == 4) {
+ resetCombo(1);
+ }
+
+ if (i_dComIfGp_getDoStatus() == 4) {
+ setDoStatus(0);
+ }
+ mComboCutCount++;
+
+ if (i_checkReinRide()) {
+ procHorseCutInit();
+ if (mComboCutCount > 1) {
+ mComboCutCount = 1;
+ }
+ return true;
+ } else {
+ return false;
+ }
}
-#pragma pop
/* 800D2284-800D22BC 0CCBC4 0038+00 13/13 0/0 0/0 .text setSwordVoiceSe__9daAlink_cFUl */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setSwordVoiceSe(u32 param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/setSwordVoiceSe__9daAlink_cFUl.s"
+void daAlink_c::setSwordVoiceSe(u32 sfx_id) {
+ if (!i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) {
+ voiceStart(sfx_id);
+ }
}
-#pragma pop
/* 800D22BC-800D2304 0CCBFC 0048+00 3/3 0/0 0/0 .text setSwordChargeVoiceSe__9daAlink_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setSwordChargeVoiceSe() {
- nofralloc
-#include "asm/d/a/d_a_alink/setSwordChargeVoiceSe__9daAlink_cFv.s"
+void daAlink_c::setSwordChargeVoiceSe() {
+ if (mCommonCounter != 0) {
+ mCommonCounter--;
+ if (mCommonCounter == 0) {
+ setSwordVoiceSe(Z2SE_AL_V_TAME);
+ }
+ }
}
-#pragma pop
/* 800D2304-800D2368 0CCC44 0064+00 3/3 0/0 0/0 .text setSwordComboVoice__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::setSwordComboVoice() {
- nofralloc
-#include "asm/d/a/d_a_alink/setSwordComboVoice__9daAlink_cFv.s"
+void daAlink_c::setSwordComboVoice() {
+ if (mActionID == CUT_JUMP || mComboCutCount == 4) {
+ setSwordVoiceSe(Z2SE_AL_V_ATTACK_L);
+ }
+ else if (mComboCutCount == 1) {
+ setSwordVoiceSe(Z2SE_AL_V_ATTACK_S);
+ } else {
+ setSwordVoiceSe(Z2SE_AL_V_ATTACK_M);
+ }
}
-#pragma pop
/* 800D2368-800D23C0 0CCCA8 0058+00 3/3 0/0 0/0 .text checkCutTurnInputTrigger__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkCutTurnInputTrigger() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCutTurnInputTrigger__9daAlink_cFv.s"
+bool daAlink_c::checkCutTurnInputTrigger() {
+ return swordSwingTrigger() && checkCutTurnInput();
}
-#pragma pop
/* 800D23C0-800D2684 0CCD00 02C4+00 7/7 0/0 0/0 .text checkCutAction__9daAlink_cFv */
#pragma push
@@ -20552,14 +20410,17 @@ asm void daAlink_c::checkCutAction() {
#pragma pop
/* 800D2684-800D26EC 0CCFC4 0068+00 9/9 0/0 0/0 .text checkCutTurnCharge__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::checkCutTurnCharge() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCutTurnCharge__9daAlink_cFv.s"
+void daAlink_c::checkCutTurnCharge() {
+ if (swordButton()) {
+ if (field_0x3012 < 3) {
+ field_0x3012++;
+ } else {
+ i_onResetFlg0(RFLG0_UNK_40);
+ }
+ } else {
+ field_0x3012 = 0;
+ }
}
-#pragma pop
/* 800D26EC-800D2760 0CD02C 0074+00 4/4 0/0 0/0 .text getCutDirection__9daAlink_cFv */
#pragma push
@@ -20595,7 +20456,7 @@ asm void daAlink_c::checkDoCutAction() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkCutBackState() {
+asm BOOL daAlink_c::checkCutBackState() {
nofralloc
#include "asm/d/a/d_a_alink/checkCutBackState__9daAlink_cFv.s"
}
@@ -20664,6 +20525,47 @@ asm void daAlink_c::checkCutAtnActorChange() {
#pragma pop
/* 800D2C78-800D2F58 0CD5B8 02E0+00 2/2 0/0 0/0 .text setCutJumpSpeed__9daAlink_cFi */
+// literals, and small issue with JMAFastSqrt instructions
+#ifdef NONMATCHING
+void daAlink_c::setCutJumpSpeed(int cut_type) {
+ if (i_checkNoResetFlg0(UNDER_WATER_MOVEMENT)) {
+ mNormalSpeed *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityX;
+ mSpeed.y *= daAlinkHIO_magneBoots_c0::m.mWaterVelocityY;
+ } else if (checkHeavyStateOn(1, 1)) {
+ mSpeed.y *= 1.35f;
+ }
+
+ // cut_type 0 = standing jump attack
+ if (mTargetedActor != NULL && cut_type == 0) {
+ mCollisionRot.y = cLib_targetAngleY(&mCurrent.mPosition, &mTargetedActor->mEyePos);
+ cXyz targetPos(mTargetedActor->mEyePos.x - (cM_ssin(mCollisionRot.y) * 70.0f),
+ mTargetedActor->mEyePos.y + 50.0f,
+ mTargetedActor->mEyePos.z - (cM_scos(mCollisionRot.y) * 70.0f));
+
+ if (fopAcM_gc_c::gndCheck(&targetPos)) {
+ targetPos.y = fopAcM_gc_c::getGroundY();
+ } else {
+ targetPos.y = mTargetedActor->mEyePos.y;
+ }
+
+ f32 dvar12 = mSpeed.y + mGravity;
+ f32 dvar10 = 1.0f / mGravity;
+ f32 fvar1 = targetPos.y - (mCurrent.mPosition.y - (dvar10 * (dvar12 * dvar12) * 0.5f));
+
+ if (fvar1 > 0.0f) {
+ fvar1 = 0.0f;
+ }
+ f32 sqrt = JMAFastSqrt(fvar1 * 2.0f * dvar10);
+ f32 speedDiv = sqrt - (dvar12 * dvar10);
+ f32 squareDist = mCurrent.mPosition.absXZ(targetPos);
+
+ if (squareDist > 500.0f) {
+ squareDist = 500.0f;
+ }
+ mNormalSpeed = squareDist / speedDiv;
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -20672,6 +20574,7 @@ asm void daAlink_c::setCutJumpSpeed(int param_0) {
#include "asm/d/a/d_a_alink/setCutJumpSpeed__9daAlink_cFi.s"
}
#pragma pop
+#endif
/* 800D2F58-800D31B8 0CD898 0260+00 3/3 0/0 0/0 .text procCutNormalInit__9daAlink_cFi */
#pragma push
@@ -20776,24 +20679,63 @@ asm void daAlink_c::procCutReverse() {
#pragma pop
/* 800D42FC-800D43F8 0CEC3C 00FC+00 2/2 0/0 0/0 .text procCutJumpInit__9daAlink_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::procCutJumpInit(int param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/procCutJumpInit__9daAlink_cFi.s"
+bool daAlink_c::procCutJumpInit(int jump_type) {
+ commonProcInit(CUT_JUMP);
+ setSingleAnimeParam(ANM_CUT_JUMP, &daAlinkHIO_cutJump_c0::m.mCutAnm);
+ if (jump_type != 0) {
+ mNormalSpeed = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedH;
+ mSpeed.y = daAlinkHIO_cutJump_c0::m.mAirJumpSpeedV;
+ } else {
+ mNormalSpeed = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedH;
+ mSpeed.y = daAlinkHIO_cutJump_c0::m.mBaseJumpSpeedV;
+ }
+ setCutJumpSpeed(jump_type);
+ mCurrent.mAngle.y = mCollisionRot.y;
+ setSwordAtParam(dCcG_At_Spl_UNK_01, 3, 1, 3, daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius);
+ setCutType(TYPE_CUT_JUMP);
+ setSwordComboVoice();
+ dComIfGp_setPlayerStatus0(0, 0x8000);
+ field_0x3198 = 2;
+ return true;
}
-#pragma pop
/* 800D43F8-800D452C 0CED38 0134+00 1/0 0/0 0/0 .text procCutJump__9daAlink_cFv */
+#ifdef NONMATCHING
+bool daAlink_c::procCutJump() {
+ if (mCurrent.mAngle.y == mCollisionRot.y && changeCutReverseProc(ANM_CUT_JUMP)) {
+ mCurrent.mAngle.y += 0x8000;
+ mNormalSpeed = 27.0f;
+ cXyz xyz(0.0f, 1.0f, 0.0f);
+ dComIfGp_getVibration().StartShock(5, 31, xyz);
+ }
+ else if (mCurrent.mAngle.y != mCollisionRot.y) {
+ cLib_chaseF(&mNormalSpeed, 5.0f, 1.0f);
+ }
+
+ if (checkCutTurnInput()) {
+ field_0x3198 = getCutTurnDirection();
+ }
+ if (mLinkAcch.ChkGroundHit()) {
+ procCutJumpLandInit(field_0x3198);
+ }
+ else if (mFrameCtrl1[0].getFrame() >= daAlinkHIO_cutJump_c0::m.mStartAttackFrame) {
+ if (!i_checkNoResetFlg0(FLG0_UNK_40)) {
+ seStartSwordCut(Z2SE_AL_SWORD_SWING_L);
+ }
+ i_onResetFlg0(RFLG0_UNK_2);
+ }
+ return true;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::procCutJump() {
+asm bool daAlink_c::procCutJump() {
nofralloc
#include "asm/d/a/d_a_alink/procCutJump__9daAlink_cFv.s"
}
#pragma pop
+#endif
/* 800D452C-800D4684 0CEE6C 0158+00 1/1 0/0 0/0 .text procCutJumpLandInit__9daAlink_cFi
*/
@@ -21584,7 +21526,7 @@ asm void daAlink_c::procCoSwimFreezeReturn() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkEnemyGroup(fopAc_ac_c* param_0) {
+asm BOOL daAlink_c::checkEnemyGroup(fopAc_ac_c* param_0) {
nofralloc
#include "asm/d/a/d_a_alink/checkEnemyGroup__9daAlink_cFP10fopAc_ac_c.s"
}
@@ -21594,7 +21536,7 @@ asm void daAlink_c::checkEnemyGroup(fopAc_ac_c* param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkSpecialNpc(fopAc_ac_c* param_0) {
+asm BOOL daAlink_c::checkSpecialNpc(fopAc_ac_c* param_0) {
nofralloc
#include "asm/d/a/d_a_alink/checkSpecialNpc__9daAlink_cFP10fopAc_ac_c.s"
}
@@ -21614,7 +21556,7 @@ asm void daAlink_c::checkShieldAttackEmphasys() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkGuardActionChange() {
+asm BOOL daAlink_c::checkGuardActionChange() {
nofralloc
#include "asm/d/a/d_a_alink/checkGuardActionChange__9daAlink_cFv.s"
}
@@ -21681,21 +21623,43 @@ asm void daAlink_c::setArrowShieldPos(cXyz* param_0, csXyz* param_1, cXyz const*
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkUpperGuardAnime() const {
+asm BOOL daAlink_c::checkUpperGuardAnime() const {
nofralloc
#include "asm/d/a/d_a_alink/checkUpperGuardAnime__9daAlink_cCFv.s"
}
#pragma pop
/* 800DCE6C-800DCF04 0D77AC 0098+00 1/0 0/0 0/0 .text checkPlayerGuard__9daAlink_cCFv */
+#ifdef NONMATCHING
+BOOL daAlink_c::checkPlayerGuard() const {
+ bool ret = true;
+ bool bvar2 = true;
+ if (!i_checkSmallUpperGuardAnime()) {
+ bool bvar1 = false;
+ if (i_checkShieldGet() && checkHorseLieAnime()) {
+ bvar1 = true;
+ }
+ if (!bvar1) {
+ bvar2 = false;
+ }
+ }
+
+ if (!bvar2 && !checkUpperGuardAnime()) {
+ ret = false;
+ }
+
+ return ret;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm bool daAlink_c::checkPlayerGuard() const {
+asm BOOL daAlink_c::checkPlayerGuard() const {
nofralloc
#include "asm/d/a/d_a_alink/checkPlayerGuard__9daAlink_cCFv.s"
}
#pragma pop
+#endif
/* 800DCF04-800DCF64 0D7844 0060+00 5/5 0/0 0/0 .text checkPlayerGuardAndAttack__9daAlink_cCFv */
#pragma push
@@ -21895,7 +21859,7 @@ asm void daAlink_c::getArrowIncAtMax() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkBowAndSlingItem(int param_0) {
+asm BOOL daAlink_c::checkBowAndSlingItem(int param_0) {
nofralloc
#include "asm/d/a/d_a_alink/checkBowAndSlingItem__9daAlink_cFi.s"
}
@@ -22079,7 +22043,7 @@ asm void daAlink_c::setBowModel() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkBowGrabLeftHand() const {
+asm bool daAlink_c::checkBowGrabLeftHand() const {
nofralloc
#include "asm/d/a/d_a_alink/checkBowGrabLeftHand__9daAlink_cCFv.s"
}
@@ -22911,168 +22875,97 @@ asm void daAlink_c::procMagneBootsFly() {
/* 800E3760-800E3770 0DE0A0 0010+00 0/0 0/0 7/7 .text getBombExplodeTime__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getBombExplodeTime() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBombExplodeTime__9daAlink_cCFv.s"
+s16 daAlink_c::getBombExplodeTime() const {
+ return daAlinkHIO_bomb_c0::m.mExplodeTime;
}
-#pragma pop
/* 800E3770-800E3780 0DE0B0 0010+00 0/0 0/0 2/2 .text getBombGravity__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getBombGravity() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBombGravity__9daAlink_cCFv.s"
+f32 daAlink_c::getBombGravity() const {
+ return daAlinkHIO_bomb_c0::m.mGravity;
}
-#pragma pop
/* 800E3780-800E3790 0DE0C0 0010+00 0/0 0/0 2/2 .text getBombMaxFallSpeed__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getBombMaxFallSpeed() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBombMaxFallSpeed__9daAlink_cCFv.s"
+f32 daAlink_c::getBombMaxFallSpeed() const {
+ return daAlinkHIO_bomb_c0::m.mMaxFallSpeed;
}
-#pragma pop
/* 800E3790-800E37A0 0DE0D0 0010+00 0/0 0/0 1/1 .text getBombBoundRate__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getBombBoundRate() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBombBoundRate__9daAlink_cCFv.s"
+f32 daAlink_c::getBombBoundRate() const {
+ return daAlinkHIO_bomb_c0::m.mBoundRate;
}
-#pragma pop
/* 800E37A0-800E37B0 0DE0E0 0010+00 0/0 0/0 1/1 .text getBombStopSpeedY__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getBombStopSpeedY() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBombStopSpeedY__9daAlink_cCFv.s"
+f32 daAlink_c::getBombStopSpeedY() const {
+ return daAlinkHIO_bomb_c0::m.mStopSpeedY;
}
-#pragma pop
/* 800E37B0-800E37C0 0DE0F0 0010+00 0/0 0/0 1/1 .text getBombMaxSpeedY__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getBombMaxSpeedY() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBombMaxSpeedY__9daAlink_cCFv.s"
+f32 daAlink_c::getBombMaxSpeedY() const {
+ return daAlinkHIO_bomb_c0::m.mMaxSpeedY;
}
-#pragma pop
/* 800E37C0-800E37D0 0DE100 0010+00 0/0 0/0 1/1 .text getBombEffScale__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getBombEffScale() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBombEffScale__9daAlink_cCFv.s"
+f32 daAlink_c::getBombEffScale() const {
+ return daAlinkHIO_bomb_c0::m.mEffScale;
}
-#pragma pop
/* 800E37D0-800E37E0 0DE110 0010+00 0/0 0/0 1/1 .text getBombAtR__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getBombAtR() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBombAtR__9daAlink_cCFv.s"
+f32 daAlink_c::getBombAtR() const {
+ return daAlinkHIO_bomb_c0::m.mAtRadius;
}
-#pragma pop
/* 800E37E0-800E37F0 0DE120 0010+00 0/0 0/0 1/1 .text getEnemyBombColorR__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getEnemyBombColorR() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getEnemyBombColorR__9daAlink_cCFv.s"
+s16 daAlink_c::getEnemyBombColorR() const {
+ return daAlinkHIO_bomb_c0::m.mEnemyBombColorR;
}
-#pragma pop
/* 800E37F0-800E3800 0DE130 0010+00 0/0 0/0 2/2 .text getBombWaterGravity__9daAlink_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getBombWaterGravity() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBombWaterGravity__9daAlink_cCFv.s"
+f32 daAlink_c::getBombWaterGravity() const {
+ return daAlinkHIO_bomb_c0::m.mWaterGravity;
}
-#pragma pop
/* 800E3800-800E3810 0DE140 0010+00 0/0 0/0 2/2 .text getBombWaterMaxFallSpeed__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getBombWaterMaxFallSpeed() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBombWaterMaxFallSpeed__9daAlink_cCFv.s"
+f32 daAlink_c::getBombWaterMaxFallSpeed() const {
+ return daAlinkHIO_bomb_c0::m.mWaterMaxFallSpeed;
}
-#pragma pop
/* 800E3810-800E3820 0DE150 0010+00 0/0 0/0 1/1 .text
* getBombExplodeWaterEffectLimit__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getBombExplodeWaterEffectLimit() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBombExplodeWaterEffectLimit__9daAlink_cCFv.s"
+f32 daAlink_c::getBombExplodeWaterEffectLimit() const {
+ return daAlinkHIO_bomb_c0::m.mExplodeWaterEffectLimit;
}
-#pragma pop
/* 800E3820-800E3830 0DE160 0010+00 0/0 0/0 1/1 .text getBombInsectLimitAngle__9daAlink_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getBombInsectLimitAngle() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBombInsectLimitAngle__9daAlink_cCFv.s"
+s16 daAlink_c::getBombInsectLimitAngle() const {
+ return daAlinkHIO_bomb_c0::m.mBombInsectLimitAngle;
}
-#pragma pop
/* 800E3830-800E3858 0DE170 0028+00 2/2 0/0 0/0 .text daAlink_checkLightBallA__FP10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daAlink_checkLightBallA(fopAc_ac_c* param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/daAlink_checkLightBallA__FP10fopAc_ac_c.s"
+static bool daAlink_checkLightBallA(fopAc_ac_c* p_actor) {
+ if (fopAcM_GetName(p_actor) == 0x2FC && static_cast<daObjCarry_c*>(p_actor)->getType() == daObjCarry_c::TYPE_BALL_S) {
+ return true;
+ }
+ return false;
}
-#pragma pop
/* 800E3858-800E3880 0DE198 0028+00 2/2 0/0 0/0 .text daAlink_checkLightBallB__FP10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daAlink_checkLightBallB(fopAc_ac_c* param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/daAlink_checkLightBallB__FP10fopAc_ac_c.s"
+static bool daAlink_checkLightBallB(fopAc_ac_c* p_actor) {
+ if (fopAcM_GetName(p_actor) == 0x2FC && static_cast<daObjCarry_c*>(p_actor)->getType() == daObjCarry_c::TYPE_BALL_S_2) {
+ return true;
+ }
+ return false;
}
-#pragma pop
/* 800E3880-800E38EC 0DE1C0 006C+00 1/1 0/0 0/0 .text daAlink_searchLightBall__FP10fopAc_ac_cPv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daAlink_searchLightBall(fopAc_ac_c* param_0, void* param_1) {
- nofralloc
-#include "asm/d/a/d_a_alink/daAlink_searchLightBall__FP10fopAc_ac_cPv.s"
+static fopAc_ac_c* daAlink_searchLightBall(fopAc_ac_c* p_actor, void* param_1) {
+ if ((daPy_py_c::checkCarryStartLightBallA() && daAlink_checkLightBallA(p_actor)) || (daPy_py_c::checkCarryStartLightBallB() && daAlink_checkLightBallB(p_actor))) {
+ return p_actor;
+ }
+ return NULL;
}
-#pragma pop
/* 800E38EC-800E3994 0DE22C 00A8+00 1/1 0/0 0/0 .text checkGrabLineCheck__9daAlink_cFv */
#pragma push
@@ -23097,24 +22990,38 @@ asm void daAlink_c::setGrabCollisionOffset(f32 param_0, f32 param_1, cBgS_PolyIn
/* 800E3A14-800E3A9C 0DE354 0088+00 1/0 0/0 0/0 .text exchangeGrabActor__9daAlink_cFP10fopAc_ac_c
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::exchangeGrabActor(fopAc_ac_c* param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/exchangeGrabActor__9daAlink_cFP10fopAc_ac_c.s"
+bool daAlink_c::exchangeGrabActor(fopAc_ac_c* p_actor) {
+ fopAc_ac_c* actor = mGrabItemActor.getActor();
+
+ if (actor == NULL) {
+ return false;
+ }
+
+ fopAcM_cancelCarryNow(actor);
+ actor->mCollisionRot.z = 0;
+ actor->mCollisionRot.x = 0;
+ if (checkGrabCarryActor()) {
+ actor->mCurrent.mAngle.z = 0;
+ actor->mCurrent.mAngle.x = 0;
+ }
+ setGrabItemActor(p_actor);
+ return true;
}
-#pragma pop
/* 800E3A9C-800E3BCC 0DE3DC 0130+00 1/0 0/0 0/0 .text setForceGrab__9daAlink_cFP10fopAc_ac_cii */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::setForceGrab(fopAc_ac_c* param_0, int param_1, int param_2) {
- nofralloc
-#include "asm/d/a/d_a_alink/setForceGrab__9daAlink_cFP10fopAc_ac_cii.s"
+bool daAlink_c::setForceGrab(fopAc_ac_c* p_actor, int param_1, int param_2) {
+ if (((param_1 != 0 || !checkEventRun()) && !i_checkWolf()) &&
+ (((mEquipItem == NO_ITEM || (param_2 != 0 && checkHookshotItem(mEquipItem)))) &&
+ ((i_checkModeFlg(MODE_UNK_10000000) && (checkHorseNoUpperAnime() || checkHorseTurnAnime())) ||
+ param_2 != 0 && checkHookshotAnime()))) {
+ deleteEquipItem(1, 0);
+ setGrabItemActor(p_actor);
+ field_0x33e4 = lit_8785;
+ setGrabUpperAnime(daAlinkHIO_basic_c0::m.mAnmBlendFactor);
+ return true;
+ }
+ return false;
}
-#pragma pop
/* 800E3BCC-800E3C1C 0DE50C 0050+00 2/2 0/0 0/0 .text getGrabThrowRate__9daAlink_cFv */
#pragma push
@@ -23162,7 +23069,7 @@ asm void daAlink_c::checkGrabAnimeAndThrow() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkGrabCarryActor() {
+asm BOOL daAlink_c::checkGrabCarryActor() {
nofralloc
#include "asm/d/a/d_a_alink/checkGrabCarryActor__9daAlink_cFv.s"
}
@@ -23700,14 +23607,19 @@ asm void daAlink_c::setFmChainPosFromOut(fopAc_ac_c* param_0, cXyz* param_1, int
#pragma pop
/* 800E7BD0-800E7C30 0E2510 0060+00 1/0 0/0 0/0 .text checkChainBlockPushPull__9daAlink_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkChainBlockPushPull() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkChainBlockPushPull__9daAlink_cFv.s"
+bool daAlink_c::checkChainBlockPushPull() {
+ if (i_checkFmChainGrabAnime()) {
+ fopAc_ac_c* actor = field_0x2844.getActor();
+ if (actor != NULL) {
+ s16 name = fopAcM_GetName(actor);
+ // actor is Cblock || chainSw || Cwall
+ if (name == 0x7E || name == 0x16F || name == 0x7F) {
+ return true;
+ }
+ }
+ }
+ return false;
}
-#pragma pop
/* 800E7C30-800E7CC0 0E2570 0090+00 2/2 0/0 0/0 .text procFmChainUpInit__9daAlink_cFv */
#pragma push
@@ -23815,10 +23727,10 @@ asm void daAlink_c::checkPullBehindWall() {
/* 800E8298-800E82B0 0E2BD8 0018+00 3/3 0/0 0/0 .text offGoatStopGame__9daAlink_cFv */
void daAlink_c::offGoatStopGame() {
- if (field_0x560[0xA] != 0x2a) {
+ if (mSpecialMode != SMODE_GOAT_STOP) {
return;
} else {
- field_0x560[0xA] = 0;
+ mSpecialMode = 0;
}
}
@@ -24057,8 +23969,8 @@ asm void daAlink_c::checkSumouVsActor() {
/* 800EA8D0-800EA908 0E5210 0038+00 5/5 0/0 0/0 .text cancelSumouMode__9daAlink_cFv */
void daAlink_c::cancelSumouMode() {
- field_0x2854.clearData();
- field_0x560[0xA] = 0;
+ mCargoCarryActor.clearData();
+ mSpecialMode = 0;
}
/* 800EA908-800EA92C 0E5248 0024+00 2/2 0/0 0/0 .text sumouPunchTrigger__9daAlink_cFv */
@@ -24386,7 +24298,7 @@ asm void daAlink_c::getReinHandType() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkHorseLieAnime() const {
+asm BOOL daAlink_c::checkHorseLieAnime() const {
nofralloc
#include "asm/d/a/d_a_alink/checkHorseLieAnime__9daAlink_cCFv.s"
}
@@ -24427,7 +24339,7 @@ asm void daAlink_c::setHorseTurnUpperAnime(int param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkHorseNoUpperAnime() const {
+asm BOOL daAlink_c::checkHorseNoUpperAnime() const {
nofralloc
#include "asm/d/a/d_a_alink/checkHorseNoUpperAnime__9daAlink_cCFv.s"
}
@@ -27970,7 +27882,8 @@ asm void daAlink_c::procBoardCutTurn() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::hsChainShape_c::draw() {
+extern "C" asm void draw__Q29daAlink_c14hsChainShape_cFv() {
+// asm void daAlink_c::hsChainShape_c::draw() {
nofralloc
#include "asm/d/a/d_a_alink/draw__Q29daAlink_c14hsChainShape_cFv.s"
}
@@ -29652,7 +29565,7 @@ asm void daAlink_c::procIronBallReturn() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkEventRun() const {
+asm BOOL daAlink_c::checkEventRun() const {
nofralloc
#include "asm/d/a/d_a_alink/checkEventRun__9daAlink_cCFv.s"
}
@@ -30739,10 +30652,10 @@ asm void daAlink_c::procGanonFinishInit() {
/* 8011EA78-8011EAE8 1193B8 0070+00 1/0 0/0 0/0 .text procGanonFinish__9daAlink_cFv */
bool daAlink_c::procGanonFinish() {
- i_onEndResetFlg1(GanonFinish);
+ i_onEndResetFlg1(GANON_FINISH);
mCurrent.mPosition = field_0x37c8;
if (mFrameCtrl1[0].checkAnmEnd()) {
- setSingleAnimeBaseMorf(GANON_FINISH, lit_6041);
+ setSingleAnimeBaseMorf(ANM_GANON_FINISH, lit_6041);
}
return true;
}
@@ -30815,7 +30728,7 @@ asm void daAlink_c::procMasterSwordPull() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkLv7DungeonShop() {
+asm BOOL daAlink_c::checkLv7DungeonShop() {
nofralloc
#include "asm/d/a/d_a_alink/checkLv7DungeonShop__9daAlink_cFv.s"
}
@@ -31831,7 +31744,7 @@ asm void daAlink_c::checkWolfAtnWait() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daAlink_c::checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM param_0) const {
+asm BOOL daAlink_c::checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM param_0) const {
nofralloc
#include "asm/d/a/d_a_alink/checkUnderMove0BckNoArcWolf__9daAlink_cCFQ29daAlink_c12daAlink_WANM.s"
}
@@ -32763,6 +32676,22 @@ asm void daObj_Sekizoa_c::setWolfHowling() {
#pragma pop
/* 80131408-80131450 12BD48 0048+00 1/0 0/0 0/0 .text checkWolfRope__9daAlink_cFv */
+#ifdef NONMATCHING
+bool daAlink_c::checkWolfRope() {
+ bool ret = false;
+ bool bvar1 = false;
+
+ if (i_checkModeFlg(MODE_UNK_20000) && field_0x280c.getActor() != NULL) {
+ bvar1 = true;
+ }
+
+ // actor is Crope
+ if (bvar1 && fopAcM_GetName(field_0x280c.getActor()) == 0x2BE) {
+ ret = true;
+ }
+ return ret;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -32771,6 +32700,7 @@ asm bool daAlink_c::checkWolfRope() {
#include "asm/d/a/d_a_alink/checkWolfRope__9daAlink_cFv.s"
}
#pragma pop
+#endif
/* 80131450-80131628 12BD90 01D8+00 2/2 0/0 0/0 .text
* checkWolfRopeHit__9daAlink_cCFP12dCcD_GObjInfPC4cXyzi */
@@ -33579,35 +33509,35 @@ asm void daAlink_c::checkWolfLockData() {
#pragma pop
/* 8013911C-8013916C 133A5C 0050+00 1/0 0/0 0/0 .text checkWolfLock__9daAlink_cCFP10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::checkWolfLock(fopAc_ac_c* param_0) const {
- nofralloc
-#include "asm/d/a/d_a_alink/checkWolfLock__9daAlink_cCFP10fopAc_ac_c.s"
+bool daAlink_c::checkWolfLock(fopAc_ac_c* p_actor) const {
+ u32 id = fopAcM_GetID(p_actor);
+
+ for (int i = 0; i < mWolfLockNum; i++) {
+ if (id == mWolfLockAcKeep[i].getID()) {
+ return true;
+ }
+ }
+ return false;
}
-#pragma pop
/* 8013916C-801391DC 133AAC 0070+00 1/0 0/0 0/0 .text cancelWolfLock__9daAlink_cFP10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool daAlink_c::cancelWolfLock(fopAc_ac_c* param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/cancelWolfLock__9daAlink_cFP10fopAc_ac_c.s"
+bool daAlink_c::cancelWolfLock(fopAc_ac_c* p_actor) {
+ u32 id = fopAcM_GetID(p_actor);
+
+ for (int i = 0; i < mWolfLockNum; i++) {
+ if (id == mWolfLockAcKeep[i].getID()) {
+ mWolfLockAcKeep[i].clearData();
+ return true;
+ }
+ }
+ return false;
}
-#pragma pop
/* 801391DC-801391E4 133B1C 0008+00 0/0 0/0 1/1 .text getWolfLockActorEnd__9daAlink_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daAlink_c::getWolfLockActorEnd() {
- nofralloc
-#include "asm/d/a/d_a_alink/getWolfLockActorEnd__9daAlink_cFv.s"
+fopAc_ac_c* daAlink_c::getWolfLockActorEnd() {
+ return mWolfLockAcKeep[0].getActor();
}
-#pragma pop
/* 801391E4-801392A8 133B24 00C4+00 1/1 0/0 0/0 .text
* searchWolfLockEnemy__9daAlink_cFP10fopAc_ac_cPv */
@@ -34718,14 +34648,9 @@ asm void dEvt_info_c::offCondition(u16 param_0) {
#pragma pop
/* 80141210-80141230 13BB50 0020+00 1/1 0/0 0/0 .text checkShieldGet__9daPy_py_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daPy_py_c::checkShieldGet() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkShieldGet__9daPy_py_cFv.s"
+BOOL daPy_py_c::checkShieldGet() {
+ return dComIfGs_getSelectEquipShield() != NO_ITEM;
}
-#pragma pop
/* 80141230-80141264 13BB70 0034+00 1/1 0/0 0/0 .text fopAcM_onSwitch__FPC10fopAc_ac_ci
*/
@@ -34767,7 +34692,7 @@ static asm void dComIfGp_getStage() {
/* 801412B0-801412BC 13BBF0 000C+00 1/1 0/0 0/0 .text checkEquipHeavyBoots__9daPy_py_cCFv
*/
BOOL daPy_py_c::checkEquipHeavyBoots() const {
- return i_checkNoResetFlg0(EquipHeavyBoots);
+ return i_checkNoResetFlg0(EQUIP_HEAVY_BOOTS);
}
/* 801412BC-801412C4 13BBFC 0008+00 1/1 4/4 0/0 .text fopAcM_GetName__FPv */
@@ -34886,29 +34811,19 @@ asm bool dEvt_info_c::checkCommandCatch() {
#pragma pop
/* 8014139C-801413CC 13BCDC 0030+00 1/1 1/1 0/0 .text dComIfGs_isEventBit__FUs */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm BOOL dComIfGs_isEventBit(u16 param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/dComIfGs_isEventBit__FUs.s"
+BOOL dComIfGs_isEventBit(u16 id) {
+ return g_dComIfG_gameInfo.info.getEvent().isEventBit(id);
}
-#pragma pop
/* 801413CC-801413D8 13BD0C 000C+00 1/1 0/0 0/0 .text checkWolf__9daPy_py_cCFv */
int daPy_py_c::checkWolf() const {
- return i_checkNoResetFlg1(Wolf);
+ return i_checkNoResetFlg1(IS_WOLF);
}
/* 801413D8-801413F8 13BD18 0020+00 1/1 0/0 0/0 .text checkSwordGet__9daPy_py_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daPy_py_c::checkSwordGet() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkSwordGet__9daPy_py_cFv.s"
+BOOL daPy_py_c::checkSwordGet() {
+ return dComIfGs_getSelectEquipSword() != 0xFF;
}
-#pragma pop
/* 801413F8-80141404 13BD38 000C+00 1/1 0/0 0/0 .text
* checkResetFlg0__9daPy_py_cCFQ29daPy_py_c10daPy_RFLG0 */
@@ -34928,6 +34843,11 @@ int daPy_py_c::checkNoResetFlg0(daPy_FLG0 pFlag) const {
}
/* 8014141C-80141438 13BD5C 001C+00 1/1 0/0 0/0 .text dComIfGp_getPlayerCameraID__Fi */
+#ifdef NONMATCHING
+static s32 dComIfGp_getPlayerCameraID(int i) {
+ return g_dComIfG_gameInfo.play.getPlayerCameraID(i);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -34936,48 +34856,29 @@ static asm void dComIfGp_getPlayerCameraID(int param_0) {
#include "asm/d/a/d_a_alink/dComIfGp_getPlayerCameraID__Fi.s"
}
#pragma pop
+#endif
/* 80141438-80141450 13BD78 0018+00 1/1 0/0 0/0 .text dComIfGp_event_chkEventFlag__FUs */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void dComIfGp_event_chkEventFlag(u16 param_0) {
- nofralloc
-#include "asm/d/a/d_a_alink/dComIfGp_event_chkEventFlag__FUs.s"
+static u16 dComIfGp_event_chkEventFlag(u16 flag) {
+ return g_dComIfG_gameInfo.play.getEvent().chkEventFlag(flag);
}
-#pragma pop
/* 80141450-80141464 13BD90 0014+00 1/1 0/0 0/0 .text checkCommandDoor__11dEvt_info_cFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm bool dEvt_info_c::checkCommandDoor() {
- nofralloc
-#include "asm/d/a/d_a_alink/checkCommandDoor__11dEvt_info_cFv.s"
+BOOL dEvt_info_c::checkCommandDoor() {
+ return mCommand == 3;
}
-#pragma pop
/* 80141464-801414A4 13BDA4 0040+00 1/1 0/0 0/0 .text
* dComIfGp_evmng_getMyStaffId__FPCcP10fopAc_ac_ci */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void dComIfGp_evmng_getMyStaffId(char const* param_0, fopAc_ac_c* param_1, int param_2) {
- nofralloc
-#include "asm/d/a/d_a_alink/dComIfGp_evmng_getMyStaffId__FPCcP10fopAc_ac_ci.s"
+static s32 dComIfGp_evmng_getMyStaffId(char const* param_0, fopAc_ac_c* param_1, int param_2) {
+ return dComIfGp_getPEvtManager()->getMyStaffId(param_0, param_1, param_2);
}
-#pragma pop
/* 801414A4-801414C0 13BDE4 001C+00 1/1 0/0 0/0 .text dComIfGp_event_runCheck__Fv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void dComIfGp_event_runCheck() {
- nofralloc
-#include "asm/d/a/d_a_alink/dComIfGp_event_runCheck__Fv.s"
+static BOOL dComIfGp_event_runCheck() {
+ return g_dComIfG_gameInfo.play.getEvent().runCheck();
}
-#pragma pop
/* 801414C0-801414CC 13BE00 000C+00 1/1 0/0 0/0 .text
* checkNoResetFlg2__9daPy_py_cCFQ29daPy_py_c9daPy_FLG2 */
@@ -34987,22 +34888,17 @@ int daPy_py_c::checkNoResetFlg2(daPy_FLG2 pFlag) const {
/* 801414CC-801414D8 13BE0C 000C+00 1/1 2/2 0/0 .text checkMagneBootsOn__9daPy_py_cCFv */
int daPy_py_c::checkMagneBootsOn() const {
- return i_checkNoResetFlg0(MagneBootsOn);
+ return i_checkNoResetFlg0(MAGNE_BOOTS_ON);
}
/* 801414D8-801414E8 13BE18 0010+00 1/1 2/2 0/0 .text dComIfGp_getHorseActor__Fv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void dComIfGp_getHorseActor() {
- nofralloc
-#include "asm/d/a/d_a_alink/dComIfGp_getHorseActor__Fv.s"
+daHorse_c* dComIfGp_getHorseActor() {
+ return (daHorse_c*)g_dComIfG_gameInfo.play.getPlayerPtr(1);
}
-#pragma pop
/* 801414E8-801414F4 13BE28 000C+00 1/1 0/0 0/0 .text checkBoarSingleBattle__9daPy_py_cCFv */
int daPy_py_c::checkBoarSingleBattle() const {
- return i_checkNoResetFlg2(BoarSingleBattle);
+ return i_checkNoResetFlg2(BOAR_SINGLE_BATTLE);
}
/* 801414F4-80141500 13BE34 000C+00 1/1 0/0 0/0 .text
@@ -35024,12 +34920,12 @@ void daPy_py_c::setMidnaMsgNum(fopAc_ac_c* param_0, u16 param_1) {
}
/* 8014150C-80141514 13BE4C 0008+00 1/0 0/0 0/0 .text getModelMtx__9daPy_py_cFv */
-Mtx* daPy_py_c::getModelMtx() {
+MtxP daPy_py_c::getModelMtx() {
return mCullMtx;
}
/* 80141514-8014151C 13BE54 0008+00 1/0 0/0 0/0 .text getInvMtx__9daPy_py_cFv */
-Mtx* daPy_py_c::getInvMtx() {
+MtxP daPy_py_c::getInvMtx() {
return mCullMtx;
}
@@ -35040,52 +34936,52 @@ cXyz* daPy_py_c::getShadowTalkAtnPos() {
}
/* 80141524-8014152C 13BE64 0008+00 1/0 0/0 0/0 .text getLeftItemMatrix__9daPy_py_cFv */
-Mtx* daPy_py_c::getLeftItemMatrix() {
+MtxP daPy_py_c::getLeftItemMatrix() {
return mCullMtx;
}
/* 8014152C-80141534 13BE6C 0008+00 1/0 0/0 0/0 .text getRightItemMatrix__9daPy_py_cFv */
-Mtx* daPy_py_c::getRightItemMatrix() {
+MtxP daPy_py_c::getRightItemMatrix() {
return mCullMtx;
}
/* 80141534-8014153C 13BE74 0008+00 1/0 0/0 0/0 .text getLeftHandMatrix__9daPy_py_cFv */
-Mtx* daPy_py_c::getLeftHandMatrix() {
+MtxP daPy_py_c::getLeftHandMatrix() {
return mCullMtx;
}
/* 8014153C-80141544 13BE7C 0008+00 1/0 0/0 0/0 .text getRightHandMatrix__9daPy_py_cFv */
-Mtx* daPy_py_c::getRightHandMatrix() {
+MtxP daPy_py_c::getRightHandMatrix() {
return mCullMtx;
}
/* 80141544-8014154C 13BE84 0008+00 1/0 0/0 0/0 .text getLinkBackBone1Matrix__9daPy_py_cFv */
-Mtx* daPy_py_c::getLinkBackBone1Matrix() {
+MtxP daPy_py_c::getLinkBackBone1Matrix() {
return mCullMtx;
}
/* 8014154C-80141554 13BE8C 0008+00 1/0 0/0 0/0 .text getWolfMouthMatrix__9daPy_py_cFv */
-Mtx* daPy_py_c::getWolfMouthMatrix() {
+MtxP daPy_py_c::getWolfMouthMatrix() {
return mCullMtx;
}
/* 80141554-8014155C 13BE94 0008+00 1/0 0/0 0/0 .text getWolfBackbone2Matrix__9daPy_py_cFv */
-Mtx* daPy_py_c::getWolfBackbone2Matrix() {
+MtxP daPy_py_c::getWolfBackbone2Matrix() {
return mCullMtx;
}
/* 8014155C-80141564 13BE9C 0008+00 1/0 0/0 0/0 .text getBottleMtx__9daPy_py_cFv */
-bool daPy_py_c::getBottleMtx() {
- return false;
+MtxP daPy_py_c::getBottleMtx() {
+ return NULL;
}
/* 80141564-8014156C 13BEA4 0008+00 1/0 0/0 0/0 .text checkPlayerGuard__9daPy_py_cCFv */
-bool daPy_py_c::checkPlayerGuard() const {
+BOOL daPy_py_c::checkPlayerGuard() const {
return false;
}
/* 8014156C-80141574 13BEAC 0008+00 1/0 0/0 0/0 .text checkAutoJump__9daPy_py_cCFv */
-bool daPy_py_c::checkAutoJump() const {
+BOOL daPy_py_c::checkAutoJump() const {
return false;
}
@@ -35102,7 +34998,7 @@ bool daPy_py_c::checkWolfTriggerJump() const {
/* 80141584-8014158C 13BEC4 0008+00 1/0 0/0 0/0 .text checkGuardBreakMode__9daPy_py_cCFv
*/
-bool daPy_py_c::checkGuardBreakMode() const {
+BOOL daPy_py_c::checkGuardBreakMode() const {
return false;
}
@@ -35122,45 +35018,45 @@ bool daPy_py_c::checkChainBlockPushPull() {
}
/* 801415A4-801415AC 13BEE4 0008+00 1/0 0/0 0/0 .text checkElecDamage__9daPy_py_cCFv */
-bool daPy_py_c::checkElecDamage() const {
+BOOL daPy_py_c::checkElecDamage() const {
return false;
}
/* 801415AC-801415B4 13BEEC 0008+00 1/0 0/0 0/0 .text checkEmptyBottleSwing__9daPy_py_cCFv */
-bool daPy_py_c::checkEmptyBottleSwing() const {
+BOOL daPy_py_c::checkEmptyBottleSwing() const {
return false;
}
/* 801415B4-801415BC 13BEF4 0008+00 1/0 0/0 0/0 .text checkBottleSwingMode__9daPy_py_cCFv
*/
-bool daPy_py_c::checkBottleSwingMode() const {
+BOOL daPy_py_c::checkBottleSwingMode() const {
return false;
}
/* 801415BC-801415C4 13BEFC 0008+00 1/0 0/0 0/0 .text checkHawkWait__9daPy_py_cCFv */
-bool daPy_py_c::checkHawkWait() const {
+BOOL daPy_py_c::checkHawkWait() const {
return false;
}
/* 801415C4-801415CC 13BF04 0008+00 1/0 0/0 0/0 .text checkGoatThrow__9daPy_py_cCFv */
-bool daPy_py_c::checkGoatThrow() const {
+BOOL daPy_py_c::checkGoatThrow() const {
return false;
}
/* 801415CC-801415D4 13BF0C 0008+00 1/0 0/0 0/0 .text checkGoatThrowAfter__9daPy_py_cCFv
*/
-bool daPy_py_c::checkGoatThrowAfter() const {
+BOOL daPy_py_c::checkGoatThrowAfter() const {
return false;
}
/* 801415D4-801415DC 13BF14 0008+00 1/0 0/0 0/0 .text checkWolfTagLockJump__9daPy_py_cCFv
*/
-bool daPy_py_c::checkWolfTagLockJump() const {
+BOOL daPy_py_c::checkWolfTagLockJump() const {
return false;
}
/* 801415DC-801415E4 13BF1C 0008+00 1/0 0/0 0/0 .text checkWolfTagLockJumpLand__9daPy_py_cCFv */
-bool daPy_py_c::checkWolfTagLockJumpLand() const {
+BOOL daPy_py_c::checkWolfTagLockJumpLand() const {
return false;
}
@@ -35170,39 +35066,39 @@ bool daPy_py_c::checkWolfRope() {
}
/* 801415EC-801415F4 13BF2C 0008+00 1/0 0/0 0/0 .text checkWolfRopeHang__9daPy_py_cCFv */
-bool daPy_py_c::checkWolfRopeHang() const {
+BOOL daPy_py_c::checkWolfRopeHang() const {
return false;
}
/* 801415F4-801415FC 13BF34 0008+00 1/0 0/0 0/0 .text checkRollJump__9daPy_py_cCFv */
-bool daPy_py_c::checkRollJump() const {
+BOOL daPy_py_c::checkRollJump() const {
return false;
}
/* 801415FC-80141604 13BF3C 0008+00 1/0 0/0 0/0 .text checkGoronRideWait__9daPy_py_cCFv
*/
-bool daPy_py_c::checkGoronRideWait() const {
+BOOL daPy_py_c::checkGoronRideWait() const {
return false;
}
/* 80141604-8014160C 13BF44 0008+00 1/0 0/0 0/0 .text checkWolfChain__9daPy_py_cCFv */
-bool daPy_py_c::checkWolfChain() const {
+BOOL daPy_py_c::checkWolfChain() const {
return false;
}
/* 8014160C-80141614 13BF4C 0008+00 1/0 0/0 0/0 .text checkWolfWait__9daPy_py_cCFv */
-bool daPy_py_c::checkWolfWait() const {
+BOOL daPy_py_c::checkWolfWait() const {
return false;
}
/* 80141614-8014161C 13BF54 0008+00 1/0 0/0 0/0 .text checkWolfJumpAttack__9daPy_py_cCFv
*/
-bool daPy_py_c::checkWolfJumpAttack() const {
+BOOL daPy_py_c::checkWolfJumpAttack() const {
return false;
}
/* 8014161C-80141624 13BF5C 0008+00 1/0 0/0 0/0 .text checkWolfRSit__9daPy_py_cCFv */
-bool daPy_py_c::checkWolfRSit() const {
+BOOL daPy_py_c::checkWolfRSit() const {
return false;
}
@@ -35213,28 +35109,28 @@ bool daPy_py_c::checkBubbleFly() const {
/* 8014162C-80141634 13BF6C 0008+00 1/0 0/0 0/0 .text checkBottleDrinkEnd__9daPy_py_cCFv
*/
-bool daPy_py_c::checkBottleDrinkEnd() const {
+BOOL daPy_py_c::checkBottleDrinkEnd() const {
return false;
}
/* 80141634-8014163C 13BF74 0008+00 1/0 0/0 0/0 .text checkWolfDig__9daPy_py_cCFv */
-bool daPy_py_c::checkWolfDig() const {
+BOOL daPy_py_c::checkWolfDig() const {
return false;
}
/* 8014163C-80141644 13BF7C 0008+00 1/0 0/0 0/0 .text checkCutCharge__9daPy_py_cCFv */
-bool daPy_py_c::checkCutCharge() const {
+BOOL daPy_py_c::checkCutCharge() const {
return false;
}
/* 80141644-8014164C 13BF84 0008+00 1/0 0/0 0/0 .text checkCutTurnCharge__9daPy_py_cCFv
*/
-bool daPy_py_c::checkCutTurnCharge() const {
+BOOL daPy_py_c::checkCutTurnCharge() const {
return false;
}
/* 8014164C-80141654 13BF8C 0008+00 1/0 0/0 0/0 .text checkCutLargeJumpCharge__9daPy_py_cCFv */
-bool daPy_py_c::checkCutLargeJumpCharge() const {
+BOOL daPy_py_c::checkCutLargeJumpCharge() const {
return false;
}
@@ -35245,22 +35141,22 @@ bool daPy_py_c::getBokoFlamePos(cXyz* param_0) {
}
/* 8014165C-80141664 13BF9C 0008+00 1/0 0/0 0/0 .text checkComboCutTurn__9daPy_py_cCFv */
-bool daPy_py_c::checkComboCutTurn() const {
+BOOL daPy_py_c::checkComboCutTurn() const {
return false;
}
/* 80141664-8014166C 13BFA4 0008+00 1/0 0/0 0/0 .text checkClimbMove__9daPy_py_cCFv */
-bool daPy_py_c::checkClimbMove() const {
+BOOL daPy_py_c::checkClimbMove() const {
return false;
}
/* 8014166C-80141674 13BFAC 0008+00 1/0 0/0 0/0 .text checkGrassWhistle__9daPy_py_cCFv */
-bool daPy_py_c::checkGrassWhistle() const {
+BOOL daPy_py_c::checkGrassWhistle() const {
return false;
}
/* 80141674-8014167C 13BFB4 0008+00 1/0 0/0 0/0 .text checkBoarRun__9daPy_py_cCFv */
-bool daPy_py_c::checkBoarRun() const {
+BOOL daPy_py_c::checkBoarRun() const {
return false;
}
@@ -35281,14 +35177,9 @@ float daPy_py_c::getBaseAnimeFrameRate() const {
}
/* 80141694-8014169C 13BFD4 0008+00 1/0 0/0 0/0 .text getBaseAnimeFrame__9daPy_py_cCFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm float daPy_py_c::getBaseAnimeFrame() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getBaseAnimeFrame__9daPy_py_cCFv.s"
+f32 daPy_py_c::getBaseAnimeFrame() const {
+ return FLOAT_LABEL(lit_6108);
}
-#pragma pop
/* 8014169C-801416A0 13BFDC 0004+00 1/0 0/0 0/0 .text setAnimeFrame__9daPy_py_cFf */
void daPy_py_c::setAnimeFrame(f32 param_0) {
@@ -35369,13 +35260,13 @@ void daPy_py_c::onMagneGrab(f32 param_0, f32 param_1) {
}
/* 801416F4-801416FC 13C034 0008+00 1/0 0/0 0/0 .text getModelJointMtx__9daPy_py_cFUs */
-bool daPy_py_c::getModelJointMtx(u16 param_0) {
- return false;
+MtxP daPy_py_c::getModelJointMtx(u16 param_0) {
+ return NULL;
}
/* 801416FC-80141704 13C03C 0008+00 1/0 0/0 0/0 .text getHeadMtx__9daPy_py_cFv */
-bool daPy_py_c::getHeadMtx() {
- return false;
+MtxP daPy_py_c::getHeadMtx() {
+ return NULL;
}
/* 80141704-8014170C 13C044 0008+00 1/0 0/0 0/0 .text setHookshotCarryOffset__9daPy_py_cFUiPC4cXyz
@@ -35397,7 +35288,7 @@ bool daPy_py_c::checkIronBallGroundStop() const {
/* 8014171C-80141724 13C05C 0008+00 1/0 0/0 0/0 .text
* checkSingleBoarBattleSecondBowReady__9daPy_py_cCFv */
-bool daPy_py_c::checkSingleBoarBattleSecondBowReady() const {
+BOOL daPy_py_c::checkSingleBoarBattleSecondBowReady() const {
return false;
}
@@ -35485,12 +35376,12 @@ void daPy_py_c::onSceneChangeDead(u8 param_0, int param_1) {
}
/* 80141770-80141778 13C0B0 0008+00 1/0 0/0 0/0 .text getSpinnerActor__9daPy_py_cFv */
-bool daPy_py_c::getSpinnerActor() {
- return false;
+fopAc_ac_c* daPy_py_c::getSpinnerActor() {
+ return NULL;
}
/* 80141778-80141780 13C0B8 0008+00 1/0 0/0 0/0 .text checkHorseRideNotReady__9daPy_py_cCFv */
-bool daPy_py_c::checkHorseRideNotReady() const {
+BOOL daPy_py_c::checkHorseRideNotReady() const {
return false;
}
@@ -35502,18 +35393,13 @@ bool daPy_py_c::checkArrowChargeEnd() const {
/* 80141788-80141790 13C0C8 0008+00 1/0 0/0 0/0 .text getSearchBallScale__9daPy_py_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daPy_py_c::getSearchBallScale() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getSearchBallScale__9daPy_py_cCFv.s"
+f32 daPy_py_c::getSearchBallScale() const {
+ return FLOAT_LABEL(lit_6108);
}
-#pragma pop
/* 80141790-80141798 13C0D0 0008+00 1/0 0/0 0/0 .text checkFastShotTime__9daPy_py_cFv */
-bool daPy_py_c::checkFastShotTime() {
- return false;
+s16 daPy_py_c::checkFastShotTime() {
+ return 0;
}
/* 80141798-801417A0 13C0D8 0008+00 1/0 0/0 0/0 .text checkNoEquipItem__9daPy_py_cCFv */
@@ -35534,8 +35420,8 @@ bool daPy_py_c::checkKandelaarSwing(int param_0) const {
/* 801417B0-801417B8 13C0F0 0008+00 1/0 0/0 0/0 .text getBoardCutTurnOffsetAngleY__9daPy_py_cCFv
*/
-bool daPy_py_c::getBoardCutTurnOffsetAngleY() const {
- return false;
+s16 daPy_py_c::getBoardCutTurnOffsetAngleY() const {
+ return 0;
}
/* 801417B8-801417C0 13C0F8 0008+00 2/0 0/0 0/0 .text getMagneHitPos__9daPy_py_cFv */
@@ -35638,7 +35524,7 @@ bool daPy_py_c::checkCanoeFishingGetRight() const {
/* 80141834-8014183C 13C174 0008+00 1/0 0/0 0/0 .text checkBeeChildDrink__9daPy_py_cCFv
*/
-bool daPy_py_c::checkBeeChildDrink() const {
+u8 daPy_py_c::checkBeeChildDrink() const {
return false;
}
@@ -35663,14 +35549,14 @@ bool daPy_py_c::checkAcceptDungeonWarpAlink(int param_0) {
}
/* 80141854-8014185C 13C194 0008+00 1/0 0/0 0/0 .text getSumouCounter__9daPy_py_cCFv */
-bool daPy_py_c::getSumouCounter() const {
- return false;
+s16 daPy_py_c::getSumouCounter() const {
+ return 0;
}
/* 8014185C-80141864 13C19C 0008+00 1/0 0/0 0/0 .text checkSumouWithstand__9daPy_py_cCFv
*/
-bool daPy_py_c::checkSumouWithstand() const {
- return false;
+s16 daPy_py_c::checkSumouWithstand() const {
+ return 0;
}
/* 80141864-80141868 13C1A4 0004+00 1/0 0/0 0/0 .text cancelGoronThrowEvent__9daPy_py_cFv
@@ -35765,32 +35651,32 @@ void daPy_py_c::changeDragonActor(fopAc_ac_c* param_0) {
}
/* 801418C4-801418CC 13C204 0008+00 1/0 0/0 0/0 .text getClothesChangeWaitTimer__9daPy_py_cCFv */
-bool daPy_py_c::getClothesChangeWaitTimer() const {
- return false;
+u8 daPy_py_c::getClothesChangeWaitTimer() const {
+ return 0;
}
/* 801418CC-801418D4 13C20C 0008+00 1/0 0/0 0/0 .text getShieldChangeWaitTimer__9daPy_py_cCFv */
-bool daPy_py_c::getShieldChangeWaitTimer() const {
- return false;
+u8 daPy_py_c::getShieldChangeWaitTimer() const {
+ return 0;
}
/* 801418D4-801418DC 13C214 0008+00 1/0 0/0 0/0 .text getSwordChangeWaitTimer__9daPy_py_cCFv */
-bool daPy_py_c::getSwordChangeWaitTimer() const {
- return false;
+u8 daPy_py_c::getSwordChangeWaitTimer() const {
+ return 0;
}
/* 801418DC-801418E4 13C21C 0008+00 1/0 0/0 0/0 .text checkMetamorphose__9daPy_py_cCFv */
-bool daPy_py_c::checkMetamorphose() const {
+BOOL daPy_py_c::checkMetamorphose() const {
return false;
}
/* 801418E4-801418EC 13C224 0008+00 1/0 0/0 0/0 .text checkWolfDownAttackPullOut__9daPy_py_cCFv */
-bool daPy_py_c::checkWolfDownAttackPullOut() const {
+BOOL daPy_py_c::checkWolfDownAttackPullOut() const {
return false;
}
/* 801418EC-801418F4 13C22C 0008+00 1/0 0/0 0/0 .text checkBootsOrArmorHeavy__9daPy_py_cCFv */
-bool daPy_py_c::checkBootsOrArmorHeavy() const {
+BOOL daPy_py_c::checkBootsOrArmorHeavy() const {
return false;
}
@@ -35807,32 +35693,27 @@ bool daPy_py_c::checkItemSwordEquip() const {
/* 80141904-8014190C 13C244 0008+00 1/0 0/0 0/0 .text getSinkShapeOffset__9daPy_py_cCFv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm float daPy_py_c::getSinkShapeOffset() const {
- nofralloc
-#include "asm/d/a/d_a_alink/getSinkShapeOffset__9daPy_py_cCFv.s"
+f32 daPy_py_c::getSinkShapeOffset() const {
+ return FLOAT_LABEL(lit_6108);
}
-#pragma pop
/* 8014190C-80141914 13C24C 0008+00 1/0 0/0 0/0 .text checkSinkDead__9daPy_py_cCFv */
-bool daPy_py_c::checkSinkDead() const {
+BOOL daPy_py_c::checkSinkDead() const {
return false;
}
/* 80141914-8014191C 13C254 0008+00 1/0 0/0 0/0 .text checkHorseStart__9daPy_py_cFv */
-bool daPy_py_c::checkHorseStart() {
+BOOL daPy_py_c::checkHorseStart() {
return false;
}
/* 8014191C-80141924 13C25C 0008+00 1/0 0/0 0/0 .text getWolfHowlMgrP__9daPy_py_cFv */
-bool daPy_py_c::getWolfHowlMgrP() {
- return false;
+Z2WolfHowlMgr* daPy_py_c::getWolfHowlMgrP() {
+ return NULL;
}
/* 80141924-8014192C 13C264 0008+00 1/0 0/0 0/0 .text checkWolfHowlSuccessAnime__9daPy_py_cCFv */
-bool daPy_py_c::checkWolfHowlSuccessAnime() const {
+BOOL daPy_py_c::checkWolfHowlSuccessAnime() const {
return false;
}
@@ -35847,7 +35728,7 @@ bool daPy_py_c::checkCopyRodEquip() const {
}
/* 8014193C-80141944 13C27C 0008+00 1/0 0/0 0/0 .text checkCutJumpMode__9daPy_py_cCFv */
-bool daPy_py_c::checkCutJumpMode() const {
+BOOL daPy_py_c::checkCutJumpMode() const {
return false;
}
@@ -35914,18 +35795,18 @@ static void dMeter2Info_setFloatingMessage(u16 pMessageID, s16 pMessageTimer, bo
/* 801419F4-80141A04 13C334 0010+00 1/1 0/0 0/0 .text onForcePanic__9daMidna_cFv */
void daMidna_c::onForcePanic() {
- onEndResetStateFlg0(ForcePanic);
+ onEndResetStateFlg0(FORCE_PANIC);
}
/* 80141A04-80141A10 13C344 000C+00 1/1 0/0 0/0 .text checkForceNormalColor__9daMidna_cCFv */
u32 daMidna_c::checkForceNormalColor() const {
- return checkStateFlg1(ForceNormalColor);
+ return checkStateFlg1(FORCE_NORMAL_COLOR);
}
/* 80141A10-80141A1C 13C350 000C+00 1/1 0/0 0/0 .text checkForceTiredColor__9daMidna_cCFv
*/
u32 daMidna_c::checkForceTiredColor() const {
- return checkStateFlg1(ForceTiredColor);
+ return checkStateFlg1(FORCE_TIRED_COLOR);
}
/* 80141A1C-80141A84 13C35C 0068+00 1/1 0/0 0/0 .text checkMidnaTired__9daMidna_cFv */
@@ -35940,7 +35821,7 @@ asm bool daMidna_c::checkMidnaTired() {
/* 80141A84-80141A94 13C3C4 0010+00 1/1 0/0 0/0 .text onNoServiceWait__9daMidna_cFv */
void daMidna_c::onNoServiceWait() {
- onEndResetStateFlg0(NoServiceWait);
+ onEndResetStateFlg0(NO_SERVICE_WAIT);
}
/* 80141A94-80141ACC 13C3D4 0038+00 1/1 0/0 0/0 .text setControllActorData__8daCrod_cFv
diff --git a/src/d/a/d_a_player.cpp b/src/d/a/d_a_player.cpp
index 9249f54536..c625449590 100644
--- a/src/d/a/d_a_player.cpp
+++ b/src/d/a/d_a_player.cpp
@@ -10,6 +10,8 @@
#include "dolphin/types.h"
#include "f_op/f_op_actor_iter.h"
#include "f_op/f_op_actor_mng.h"
+#include "SSystem/SComponent/c_math.h"
+#include "rel/d/a/d_a_boomerang/d_a_boomerang.h"
//
// Types:
@@ -21,10 +23,6 @@ struct mDoMtx_stack_c {
static u8 now[48];
};
-struct JMath {
- static u8 sincosTable_[65536];
-};
-
struct J3DAnmLoaderDataBaseFlag {};
struct J3DAnmLoaderDataBase {
@@ -219,14 +217,18 @@ SECTION_SDATA2 static f32 lit_4250 = 65536.0f;
/* 8015E5B0-8015E654 158EF0 00A4+00 0/0 1/1 18/18 .text initOffset__20daPy_boomerangMove_cFPC4cXyz
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daPy_boomerangMove_c::initOffset(cXyz const* param_0) {
- nofralloc
-#include "asm/d/a/d_a_player/initOffset__20daPy_boomerangMove_cFPC4cXyz.s"
+void daPy_boomerangMove_c::initOffset(cXyz const* param_0) {
+ daBoomerang_c* boomerang = daPy_py_c::getThrowBoomerangActor();
+ if (boomerang != NULL) {
+ bgCheckAfterOffset(param_0);
+ boomerang->onWindCatch();
+ } else {
+ field_0x4 = cM_rndF(lit_4248) + lit_4247;
+ field_0x8 = cM_rndF(lit_4249) + lit_4249;
+ field_0x2 = cM_rndF(lit_4250);
+ }
+ field_0x0 = 0;
}
-#pragma pop
/* ############################################################################################## */
/* 80451018-8045101C 000518 0004+00 2/2 33/32 103/103 .sbss m_midnaActor__9daPy_py_c */
@@ -277,6 +279,17 @@ SECTION_SDATA2 static u8 lit_4381[8] = {
/* 8015E87C-8015EA0C 1591BC 0190+00 1/1 1/1 17/17 .text
* bgCheckAfterOffset__20daPy_boomerangMove_cFPC4cXyz */
+// matches with literals (used in inlines)
+#ifdef NONMATCHING
+void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* param_0) {
+ daBoomerang_c* boomerang = daPy_py_c::getThrowBoomerangActor();
+ if (boomerang != NULL) {
+ field_0x4 = param_0->y - boomerang->mCurrent.mPosition.y;
+ field_0x8 = boomerang->mCurrent.mPosition.absXZ(*param_0);
+ field_0x2 = cM_atan2s(param_0->x - boomerang->mCurrent.mPosition.x, param_0->z - boomerang->mCurrent.mPosition.z);
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -285,6 +298,7 @@ asm void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* param_0) {
#include "asm/d/a/d_a_player/bgCheckAfterOffset__20daPy_boomerangMove_cFPC4cXyz.s"
}
#pragma pop
+#endif
/* 8015EA0C-8015EA20 15934C 0014+00 0/0 3/3 0/0 .text setParamData__9daPy_py_cFiiii */
#pragma push
@@ -323,7 +337,7 @@ asm BOOL daPy_py_c::checkFishingRodItem(int param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daPy_py_c::checkBombItem(int param_0) {
+asm BOOL daPy_py_c::checkBombItem(int param_0) {
nofralloc
#include "asm/d/a/d_a_player/checkBombItem__9daPy_py_cFi.s"
}
@@ -333,7 +347,7 @@ asm void daPy_py_c::checkBombItem(int param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daPy_py_c::checkBottleItem(int param_0) {
+asm BOOL daPy_py_c::checkBottleItem(int param_0) {
nofralloc
#include "asm/d/a/d_a_player/checkBottleItem__9daPy_py_cFi.s"
}
@@ -352,40 +366,24 @@ asm void daPy_py_c::checkDrinkBottleItem(int param_0) {
/* 8015EB40-8015EB68 159480 0028+00 0/0 4/4 0/0 .text checkOilBottleItem__9daPy_py_cFi */
BOOL daPy_py_c::checkOilBottleItem(int i_itemNo) {
- bool isOilBottleItem = false;
- if (i_itemNo == CHUCHU_YELLOW || i_itemNo == OIL_BOTTLE_2 || i_itemNo == OIL_BOTTLE) {
- isOilBottleItem = true;
- }
- return isOilBottleItem;
+ return i_itemNo == CHUCHU_YELLOW || i_itemNo == OIL_BOTTLE_2 || i_itemNo == OIL_BOTTLE;
}
/* 8015EB68-8015EB90 1594A8 0028+00 0/0 2/2 0/0 .text checkOpenBottleItem__9daPy_py_cFi
*/
BOOL daPy_py_c::checkOpenBottleItem(int i_itemNo) {
- bool isOpenBottleItem = false;
- if (i_itemNo == WATER_BOTTLE || i_itemNo == WORM || i_itemNo == FAIRY) {
- isOpenBottleItem = true;
- }
- return isOpenBottleItem;
+ return i_itemNo == WATER_BOTTLE || i_itemNo == WORM || i_itemNo == FAIRY;
}
/* 8015EB90-8015EBB8 1594D0 0028+00 0/0 11/11 0/0 .text checkBowItem__9daPy_py_cFi */
BOOL daPy_py_c::checkBowItem(int i_itemNo) {
- bool isBowItem = false;
- if (i_itemNo == BOW || i_itemNo == BOMB_ARROW || i_itemNo == HAWK_ARROW) {
- isBowItem = true;
- }
- return isBowItem;
+ return i_itemNo == BOW || i_itemNo == BOMB_ARROW || i_itemNo == HAWK_ARROW;
}
/* 8015EBB8-8015EBD8 1594F8 0020+00 0/0 23/23 0/0 .text checkHookshotItem__9daPy_py_cFi
*/
BOOL daPy_py_c::checkHookshotItem(int i_itemNo) {
- bool isHookshotItem = false;
- if (i_itemNo == HOOKSHOT || i_itemNo == W_HOOKSHOT) {
- isHookshotItem = true;
- }
- return isHookshotItem;
+ return i_itemNo == HOOKSHOT || i_itemNo == W_HOOKSHOT;
}
/* 8015EBD8-8015EC28 159518 0050+00 0/0 3/3 0/0 .text checkTradeItem__9daPy_py_cFi */
@@ -401,11 +399,7 @@ asm BOOL daPy_py_c::checkTradeItem(int param_0) {
/* 8015EC28-8015EC48 159568 0020+00 0/0 2/2 0/0 .text checkDungeonWarpItem__9daPy_py_cFi
*/
BOOL daPy_py_c::checkDungeonWarpItem(int i_itemNo) {
- bool isDungeonWarpItem = false;
- if (i_itemNo == DUNGEON_EXIT || i_itemNo == DUNGEON_BACK) {
- isDungeonWarpItem = true;
- }
- return isDungeonWarpItem;
+ return i_itemNo == DUNGEON_EXIT || i_itemNo == DUNGEON_BACK;
}
/* 8015EC48-8015ECB8 159588 0070+00 0/0 10/10 3/3 .text setActor__16daPy_actorKeep_cFv */
@@ -909,7 +903,7 @@ asm void daPy_py_c::checkRoomRestartStart() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daPy_py_c::checkCarryStartLightBallA() {
+asm u32 daPy_py_c::checkCarryStartLightBallA() {
nofralloc
#include "asm/d/a/d_a_player/checkCarryStartLightBallA__9daPy_py_cFv.s"
}
@@ -919,7 +913,7 @@ asm void daPy_py_c::checkCarryStartLightBallA() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daPy_py_c::checkCarryStartLightBallB() {
+asm u32 daPy_py_c::checkCarryStartLightBallB() {
nofralloc
#include "asm/d/a/d_a_player/checkCarryStartLightBallB__9daPy_py_cFv.s"
}
@@ -962,14 +956,9 @@ bool daPy_py_c::checkBoomerangChargeTime() {
}
/* 8015F8D0-8015F8E4 15A210 0014+00 3/3 1/1 5/5 .text getThrowBoomerangActor__9daPy_py_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daPy_py_c::getThrowBoomerangActor() {
- nofralloc
-#include "asm/d/a/d_a_player/getThrowBoomerangActor__9daPy_py_cFv.s"
+daBoomerang_c* daPy_py_c::getThrowBoomerangActor() {
+ return static_cast<daBoomerang_c*>(daAlink_getAlinkActorClass()->getThrowBoomerangAcKeep()->getActor());
}
-#pragma pop
/* 8015F8E4-8015F914 15A224 0030+00 0/0 0/0 2/2 .text
* cancelBoomerangLockActor__9daPy_py_cFP10fopAc_ac_c */
diff --git a/src/d/bg/d_bg_s_acch.cpp b/src/d/bg/d_bg_s_acch.cpp
index 5c1fedf3e1..8dd0d7bb34 100644
--- a/src/d/bg/d_bg_s_acch.cpp
+++ b/src/d/bg/d_bg_s_acch.cpp
@@ -813,6 +813,6 @@ static asm void func_8007748C() {
#pragma pop
/* 80077494-8007749C 071DD4 0008+00 0/0 1/0 0/0 .text checkPlayerFly__9daPy_py_cCFv */
-bool daPy_py_c::checkPlayerFly() const {
- return false;
+u32 daPy_py_c::checkPlayerFly() const {
+ return 0;
}
diff --git a/src/d/com/d_com_inf_game.cpp b/src/d/com/d_com_inf_game.cpp
index 9f39275a30..557b44267a 100644
--- a/src/d/com/d_com_inf_game.cpp
+++ b/src/d/com/d_com_inf_game.cpp
@@ -401,7 +401,7 @@ inline u8 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) {
}
inline BOOL dComIfGs_isEventBit(u16 id) {
- return g_dComIfG_gameInfo.info.getSavedata().getEvent().isEventBit(id);
+ return g_dComIfG_gameInfo.info.getEvent().isEventBit(id);
}
inline int dComIfGs_isItemFirstBit(u8 i_no) {
@@ -978,9 +978,9 @@ int dComIfG_play_c::getLayerNo_common_common(const char* stageName, int roomId,
else if (dComIfGs_isTmpBit(0x0601)) {
if (dComIfGs_isTmpBit(0x0602)) {
layer = 2;
+ } else {
+ layer = 3;
}
- } else {
- layer = 3;
}
}
@@ -1150,22 +1150,22 @@ int dComIfG_play_c::getLayerNo_common_common(const char* stageName, int roomId,
layer = 13;
}
}
+ }
- // Stage is Hyrule Castle Sewers and room is Prison Cell
- if (!strcmp(stageName, "R_SP107") && roomId == 0) {
- // Haven't been to Hyrule Castle Sewers
- if (!dComIfGs_isEventBit(0x4D08)) {
- layer = 11;
- }
+ // Stage is Hyrule Castle Sewers and room is Prison Cell
+ if (!strcmp(stageName, "R_SP107") && roomId == 0) {
+ // Haven't been to Hyrule Castle Sewers
+ if (!dComIfGs_isEventBit(0x4D08)) {
+ layer = 11;
}
- // Stage and room is Zant Throne Room
- else if (!strcmp(stageName, "D_MN08A") && roomId == 10) {
- // Defeated Zant
- if (dComIfGs_isEventBit(0x5410)) {
- layer = 1;
- } else {
- layer = 0;
- }
+ }
+ // Stage and room is Zant Throne Room
+ else if (!strcmp(stageName, "D_MN08A") && roomId == 10) {
+ // Defeated Zant
+ if (dComIfGs_isEventBit(0x5410)) {
+ layer = 1;
+ } else {
+ layer = 0;
}
}
}
@@ -1728,7 +1728,7 @@ asm void dComIfGs_offOneZoneSwitch(int param_0, int param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dComIfGs_isOneZoneSwitch(int param_0, int param_1) {
+asm BOOL dComIfGs_isOneZoneSwitch(int param_0, int param_1) {
nofralloc
#include "asm/d/com/d_com_inf_game/dComIfGs_isOneZoneSwitch__Fii.s"
}
diff --git a/src/d/d_att_dist.cpp b/src/d/d_att_dist.cpp
index 80dd6e347d..f1669d0140 100644
--- a/src/d/d_att_dist.cpp
+++ b/src/d/d_att_dist.cpp
@@ -1,445 +1,243 @@
-//
-// Generated By: dol2asm
-// Translation Unit: d/d_att_dist
-//
-
#include "d/d_att_dist.h"
+#include "d/d_attention.h"
#include "dol2asm.h"
#include "dolphin/types.h"
-//
-// Types:
-//
-
-struct dAttention_c {
- static u8 dist_table[6552];
-};
-
-//
-// Forward References:
-//
-
-extern "C" u8 dist_table__12dAttention_c[6552];
-
-//
-// External References:
-//
-
-//
-// Declarations:
-//
-
/* ############################################################################################## */
/* 803A9C70-803AB608 006D90 1998+00 0/0 5/5 13/13 .data dist_table__12dAttention_c */
-SECTION_DATA u8 dAttention_c::dist_table[6552] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x3C, 0x23, 0xD7, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00,
- 0x43, 0xBB, 0x80, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0xC3, 0xC8, 0x00, 0x00,
- 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x3B, 0x80, 0x00, 0x43, 0x7A, 0x00, 0x00,
- 0x43, 0x9C, 0x40, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0xBB, 0x80, 0x00, 0x44, 0x1C, 0x40, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0xFA, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0x44, 0xBB, 0x80, 0x00, 0x44, 0xFA, 0x00, 0x00,
- 0xC4, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x3B, 0x80, 0x00,
- 0x43, 0x7A, 0x00, 0x00, 0x43, 0x9C, 0x40, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xA0, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x48, 0x00, 0x00, 0xC2, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00,
- 0xC2, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xC8, 0x00, 0x00,
- 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xA0, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0xC2, 0xDC, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x42, 0xA0, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x41, 0x20, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x43, 0x48, 0x00, 0x00, 0x43, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00,
- 0xC2, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xC8, 0x00, 0x00,
- 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC3, 0x70, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x43, 0x48, 0x00, 0x00, 0x43, 0x5C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0xC3, 0x48, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00,
- 0xC2, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00,
- 0x43, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0xC2, 0xF0, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0xC4, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0x48, 0x00, 0x00, 0xC4, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0x7A, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00,
- 0x43, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00,
- 0x45, 0x8C, 0xA0, 0x00, 0x44, 0xFA, 0x00, 0x00, 0xC4, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x43, 0xE1, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00,
- 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x45, 0x1C, 0x40, 0x00, 0x45, 0x22, 0x80, 0x00, 0x45, 0x1C, 0x40, 0x00, 0x45, 0x1C, 0x40, 0x00,
- 0xC4, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x9C, 0x40, 0x00,
- 0x45, 0xAB, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0xC4, 0xFA, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x9C, 0x40, 0x00, 0x45, 0xAB, 0xE0, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0xC4, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x41, 0xF0, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0xFA, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00,
- 0xC2, 0xF0, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x7A, 0x00, 0x00,
- 0x44, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x41, 0xF0, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x16, 0x00, 0x00, 0x43, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00,
- 0xC3, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0x16, 0x00, 0x00,
- 0x43, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, 0xC3, 0x16, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x7A, 0x00, 0x00, 0x44, 0x96, 0x00, 0x00,
- 0x44, 0xE1, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0xC4, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0xBB, 0x80, 0x00, 0x44, 0x1C, 0x40, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x44, 0x3B, 0x80, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0x96, 0x00, 0x00, 0x44, 0xE1, 0x00, 0x00, 0x44, 0x96, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0xC4, 0x89, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3C, 0x23, 0xD7, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0x43, 0x5C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x44, 0x44, 0xED, 0x80, 0x00, 0x44, 0xED, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0xFA, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0xED, 0x80, 0x00, 0x44, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xA0, 0x00, 0x00,
- 0x42, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xDC, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0xC2, 0xF0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x43, 0x02, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x34, 0x00, 0x00, 0xC2, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x43, 0x20, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
- 0xC3, 0x02, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x43, 0x3E, 0x00, 0x00,
- 0x43, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0xC2, 0xDC, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x43, 0xBB, 0x80, 0x00, 0x44, 0x1C, 0x40, 0x00,
- 0x43, 0xFA, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x16, 0x00, 0x00, 0x43, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00,
- 0xC3, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x7A, 0x00, 0x00,
- 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0xC3, 0x48, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00, 0x46, 0x1F, 0x60, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00, 0xC6, 0x1C, 0x40, 0x00, 0x42, 0xC8, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00, 0x46, 0x1F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x46, 0x1C, 0x40, 0x00, 0xC6, 0x1C, 0x40, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0xBB, 0x80, 0x00, 0x44, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x7A, 0x00, 0x00,
- 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0xC3, 0xC8, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x46, 0x1C, 0x40, 0x00, 0x46, 0x1F, 0x60, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00, 0xC6, 0x1C, 0x40, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x48, 0x00, 0x00, 0x43, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00,
- 0x42, 0xC8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00,
- 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x7A, 0x00, 0x00,
- 0x43, 0xFA, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x02, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x42, 0x34, 0x00, 0x00, 0xC2, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x47, 0xC3, 0x50, 0x00, 0x47, 0xC3, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xC3, 0x50, 0x00,
- 0xC7, 0xC3, 0x50, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00,
- 0x46, 0x1D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x3B, 0x80, 0x00, 0xC4, 0xFA, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x7A, 0x00, 0x00,
- 0x43, 0xFA, 0x00, 0x00, 0x44, 0x7A, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00,
- 0xC4, 0x2F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00,
- 0x46, 0x1F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x1C, 0x40, 0x00, 0xC6, 0x1C, 0x40, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x43, 0xE1, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0xC4, 0x16, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0x16, 0x00, 0x00, 0xC4, 0x16, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x44, 0xFA, 0x00, 0x00, 0x45, 0x09, 0x80, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x44, 0x16, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0xC4, 0x16, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0x16, 0x00, 0x00, 0xC4, 0x16, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x44, 0x96, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0x44, 0x96, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00,
- 0xC3, 0xFA, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x20, 0x00, 0x00,
- 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00, 0xC2, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x01, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0x44, 0x3B, 0x80, 0x00,
- 0x44, 0xFA, 0x00, 0x00, 0xC4, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0xFA, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, 0x44, 0x3B, 0x80, 0x00, 0x43, 0x48, 0x00, 0x00,
- 0xC3, 0x48, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00,
- 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC4, 0x7A, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC4, 0x7A, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x44, 0x7A, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0x7A, 0x00, 0x00, 0xC4, 0x7A, 0x00, 0x00, 0x3D, 0xCC, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x48, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0x96, 0x00, 0x00,
- 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x45, 0x3B, 0x80, 0x00, 0x45, 0x41, 0xC0, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0x45, 0x3B, 0x80, 0x00, 0xC5, 0x3B, 0x80, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0x45, 0x03, 0x40, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0x44, 0xFA, 0x00, 0x00, 0xC4, 0xFA, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x16, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00,
- 0xC2, 0xC8, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x45, 0x5A, 0xC0, 0x00,
- 0x45, 0x5A, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x3B, 0x80, 0x00, 0xC5, 0x3B, 0x80, 0x00,
- 0x42, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xBB, 0x80, 0x00, 0x44, 0x1C, 0x40, 0x00,
- 0x43, 0xFA, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC4, 0x7A, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
- 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC4, 0x7A, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x43, 0x16, 0x00, 0x00,
- 0x43, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0xC3, 0x02, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0xBB, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x43, 0xFA, 0x00, 0x00, 0xC3, 0xFA, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x44, 0xFA, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x7A, 0x00, 0x00,
- 0xC4, 0x7A, 0x00, 0x00, 0x3D, 0xCC, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x04, 0x42, 0xC8, 0x00, 0x00,
- 0x43, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x20, 0x00, 0x00, 0xC3, 0x16, 0x00, 0x00,
- 0x41, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0C, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
- 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x43, 0x48, 0x00, 0x00,
- 0x43, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0C, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
- 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x43, 0xC8, 0x00, 0x00,
- 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0C, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
- 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x44, 0x16, 0x00, 0x00,
- 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x44, 0x22, 0x80, 0x00, 0x44, 0x2F, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0C, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
- 0x44, 0x3B, 0x80, 0x00, 0x44, 0x54, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x44, 0x48, 0x00, 0x00,
- 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x0C, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
- 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x44, 0x7A, 0x00, 0x00,
- 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x14, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
- 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x43, 0x48, 0x00, 0x00,
- 0x43, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x14, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
- 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x43, 0xC8, 0x00, 0x00,
- 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x14, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
- 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x16, 0x00, 0x00,
- 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x22, 0x80, 0x00, 0x44, 0x2F, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x14, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
- 0x44, 0x3B, 0x80, 0x00, 0x44, 0x54, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x48, 0x00, 0x00,
- 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x14, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14,
- 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x44, 0x7A, 0x00, 0x00,
- 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x24, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24,
- 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x43, 0x48, 0x00, 0x00,
- 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x24, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24,
- 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x43, 0xC8, 0x00, 0x00,
- 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x24, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24,
- 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x44, 0x16, 0x00, 0x00,
- 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x44, 0x22, 0x80, 0x00, 0x44, 0x2F, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x24, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24,
- 0x44, 0x3B, 0x80, 0x00, 0x44, 0x54, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x44, 0x48, 0x00, 0x00,
- 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x24, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24,
- 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x44, 0x7A, 0x00, 0x00,
- 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x44, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
- 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x43, 0x48, 0x00, 0x00,
- 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x44, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
- 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x43, 0xC8, 0x00, 0x00,
- 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x44, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
- 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x16, 0x00, 0x00,
- 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x22, 0x80, 0x00, 0x44, 0x3B, 0x80, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x44, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
- 0x44, 0x3B, 0x80, 0x00, 0x44, 0x54, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x48, 0x00, 0x00,
- 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x44, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44,
- 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x44, 0x7A, 0x00, 0x00,
- 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x84, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84,
- 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x43, 0x48, 0x00, 0x00,
- 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x84, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84,
- 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x43, 0xC8, 0x00, 0x00,
- 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x84, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84,
- 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x16, 0x00, 0x00,
- 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x22, 0x80, 0x00, 0x44, 0x3B, 0x80, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x84, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84,
- 0x44, 0x3B, 0x80, 0x00, 0x44, 0x54, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x48, 0x00, 0x00,
- 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x84, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84,
- 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x44, 0x7A, 0x00, 0x00,
- 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x04, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04,
- 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x43, 0x48, 0x00, 0x00,
- 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x04, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04,
- 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x43, 0xC8, 0x00, 0x00,
- 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x04, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04,
- 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x44, 0x16, 0x00, 0x00,
- 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x44, 0x22, 0x80, 0x00, 0x44, 0x3B, 0x80, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x04, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04,
- 0x44, 0x3B, 0x80, 0x00, 0x44, 0x54, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x44, 0x48, 0x00, 0x00,
- 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x04, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04,
- 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x44, 0x7A, 0x00, 0x00,
- 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x42, 0x48, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x43, 0x16, 0x00, 0x00, 0x43, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0x48, 0x00, 0x00,
- 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0x7A, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x43, 0x96, 0x00, 0x00, 0x43, 0xAF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x43, 0xAF, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0xC8, 0x00, 0x00,
- 0x43, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x43, 0xE1, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x43, 0xFA, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x44, 0x09, 0x80, 0x00, 0x44, 0x22, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x16, 0x00, 0x00,
- 0x44, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x22, 0x80, 0x00, 0x44, 0x3B, 0x80, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x44, 0x3B, 0x80, 0x00, 0x44, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x48, 0x00, 0x00,
- 0x44, 0x6D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x54, 0x80, 0x00, 0x44, 0x7A, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x44, 0x61, 0x00, 0x00, 0x44, 0x89, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x44, 0x6D, 0x80, 0x00, 0x44, 0x8F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
- 0xC3, 0x96, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x44, 0x7A, 0x00, 0x00,
- 0x44, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
+dist_entry dAttention_c::dist_table[234] = {
+ { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.01f, 0 },
+ { 250.0f, 375.0f, 500.0f, 400.0f, -400.0f, 0.5f, 0 },
+ { 187.5f, 250.0f, 312.5f, 300.0f, -300.0f, 1.0f, 0 },
+ { 375.0f, 625.0f, 500.0f, 500.0f, -500.0f, 10.0f, 0 },
+ { 500.0f, 600.0f, 1500.0f, 2000.0f, -2000.0f, 10.0f, 0 },
+ { 187.5f, 250.0f, 312.5f, 300.0f, -300.0f, 1.0f, 0 },
+ { 80.0f, 100.0f, 0.0f, 30.0f, -130.0f, 1.0f, 1 },
+ { 100.0f, 120.0f, 0.0f, 50.0f, -120.0f, 1.0f, 1 },
+ { 100.0f, 120.0f, 0.0f, 45.0f, -125.0f, 1.0f, 1 },
+ { 100.0f, 120.0f, 0.0f, 40.0f, -130.0f, 1.0f, 1 },
+ { 80.0f, 100.0f, 0.0f, 40.0f, -110.0f, 1.0f, 1 },
+ { 80.0f, 100.0f, 0.0f, 10.0f, -130.0f, 1.0f, 1 },
+ { 200.0f, 240.0f, 0.0f, 100.0f, -120.0f, 1.0f, 1 },
+ { 100.0f, 120.0f, 0.0f, 30.0f, -240.0f, 1.0f, 1 },
+ { 200.0f, 220.0f, 0.0f, 200.0f, -200.0f, 10.0f, 4 },
+ { 100.0f, 120.0f, 300.0f, 300.0f, -200.0f, 1.0f, 4 },
+ { 100.0f, 120.0f, 0.0f, 20.0f, -120.0f, 1.0f, 0 },
+ { 200.0f, 200.0f, 0.0f, 400.0f, -120.0f, 1.0f, 1 },
+ { 500.0f, 700.0f, 0.0f, 800.0f, -800.0f, 1.0f, 0 },
+ { 500.0f, 700.0f, 0.0f, 800.0f, -800.0f, 1.0f, 0 },
+ { 1000.0f, 1100.0f, 0.0f, 700.0f, -300.0f, 1.0f, 0 },
+ { 150.0f, 200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 0 },
+ { 500.0f, 600.0f, 4500.0f, 2000.0f, -2000.0f, 1.0f, 0 },
+ { 400.0f, 450.0f, 200.0f, 500.0f, -500.0f, 1.0f, 0 },
+ { 2500.0f, 2600.0f, 2500.0f, 2500.0f, -2000.0f, 1.0f, 0 },
+ { 5000.0f, 5500.0f, 0.0f, 2000.0f, -2000.0f, 1.0f, 0 },
+ { 5000.0f, 5500.0f, 0.0f, 2000.0f, -2000.0f, 1.0f, 0 },
+ { 180.0f, 180.0f, 0.0f, 30.0f, -130.0f, 1.0f, 0 },
+ { 500.0f, 600.0f, 0.0f, 600.0f, -120.0f, 100.0f, 0 },
+ { 1000.0f, 1000.0f, 0.0f, 500.0f, -500.0f, 1.0f, 0 },
+ { -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0 },
+ { 120.0f, 120.0f, 0.0f, 30.0f, -130.0f, 1.0f, 0 },
+ { 150.0f, 160.0f, 0.0f, 200.0f, -200.0f, 1.0f, 4 },
+ { 150.0f, 160.0f, 0.0f, 150.0f, -150.0f, 1.0f, 132 },
+ { 1000.0f, 1200.0f, 1800.0f, 2000.0f, -2000.0f, 1.0f, 0 },
+ { 375.0f, 625.0f, 500.0f, 750.0f, -500.0f, 1.0f, 0 },
+ { 1200.0f, 1800.0f, 1200.0f, 500.0f, -1100.0f, 1.0f, 0 },
+ { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.01f, 0 },
+ { 200.0f, 220.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 1900.0f, 1900.0f, 0.0f, 2000.0f, -300.0f, 1.0f, 0 },
+ { 1900.0f, 2000.0f, 0.0f, 2000.0f, -300.0f, 1.0f, 1 },
+ { 80.0f, 100.0f, 0.0f, 30.0f, -130.0f, 1.0f, 1 },
+ { 100.0f, 110.0f, 0.0f, 50.0f, -120.0f, 1.0f, 4 },
+ { 130.0f, 140.0f, 0.0f, 45.0f, -125.0f, 1.0f, 1 },
+ { 160.0f, 180.0f, 0.0f, 40.0f, -130.0f, 1.0f, 1 },
+ { 190.0f, 210.0f, 0.0f, 40.0f, -110.0f, 1.0f, 1 },
+ { 375.0f, 625.0f, 500.0f, 800.0f, -500.0f, 10.0f, 0 },
+ { 100.0f, 400.0f, 500.0f, 500.0f, -500.0f, 10.0f, 0 },
+ { 150.0f, 160.0f, 0.0f, 200.0f, -200.0f, 1.0f, 4 },
+ { 1000.0f, 1100.0f, 0.0f, 200.0f, -200.0f, 1.0f, 0 },
+ { 10000.0f, 10200.0f, 0.0f, 10000.0f, -10000.0f, 100.0f, 0 },
+ { 10000.0f, 10200.0f, 0.0f, 10000.0f, -10000.0f, 1.0f, 0 },
+ { 1500.0f, 1800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 1000.0f, 1200.0f, 0.0f, 400.0f, -400.0f, 1.0f, 4 },
+ { 10000.0f, 10200.0f, 0.0f, 10000.0f, -10000.0f, 1.0f, 0 },
+ { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 0 },
+ { 200.0f, 240.0f, 0.0f, 700.0f, 100.0f, 1.0f, 0 },
+ { 600.0f, 700.0f, 0.0f, 700.0f, 100.0f, 1.0f, 0 },
+ { 700.0f, 1000.0f, 500.0f, 500.0f, -500.0f, 10.0f, 0 },
+ { 130.0f, 140.0f, 0.0f, 45.0f, -125.0f, 1.0f, 0 },
+ { 100000.0f, 100100.0f, 0.0f, 100000.0f, -100000.0f, 1.0f, 0 },
+ { 10000.0f, 10100.0f, 0.0f, 3000.0f, -2000.0f, 300.0f, 0 },
+ { 700.0f, 1000.0f, 500.0f, 1000.0f, -500.0f, 10.0f, 0 },
+ { 500.0f, 600.0f, 0.0f, 500.0f, -500.0f, 1.0f, 0 },
+ { 700.0f, 800.0f, 0.0f, 700.0f, -700.0f, 1.0f, 0 },
+ { 10000.0f, 10200.0f, 0.0f, 10000.0f, -10000.0f, 1.0f, 0 },
+ { 400.0f, 450.0f, 0.0f, 600.0f, -600.0f, 1.0f, 4 },
+ { 500.0f, 550.0f, 0.0f, 600.0f, -600.0f, 1.0f, 4 },
+ { 2000.0f, 2200.0f, 500.0f, 500.0f, -500.0f, 10.0f, 0 },
+ { 500.0f, 600.0f, 200.0f, 500.0f, -500.0f, 1.0f, 0 },
+ { 300.0f, 350.0f, 0.0f, 600.0f, -600.0f, 1.0f, 4 },
+ { 500.0f, 550.0f, 0.0f, 600.0f, -600.0f, 1.0f, 4 },
+ { 1200.0f, 2000.0f, 1200.0f, 800.0f, -500.0f, 2.0f, 0 },
+ { 160.0f, 180.0f, 0.0f, 40.0f, -130.0f, 1.0f, 0 },
+ { 140.0f, 150.0f, 0.0f, 250.0f, -50.0f, 1.0f, 1 },
+ { 500.0f, 600.0f, 750.0f, 2000.0f, -2000.0f, 1.0f, 0 },
+ { 500.0f, 600.0f, 750.0f, 200.0f, -200.0f, 1.0f, 0 },
+ { 200.0f, 250.0f, 0.0f, 300.0f, -1000.0f, 1.0f, 4 },
+ { 300.0f, 350.0f, 0.0f, 300.0f, -1000.0f, 1.0f, 4 },
+ { 1000.0f, 2000.0f, 0.0f, 1000.0f, -1000.0f, 0.1f, 0 },
+ { 200.0f, 250.0f, 0.0f, 300.0f, -300.0f, 2.5f, 4 },
+ { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 2.5f, 4 },
+ { 3000.0f, 3100.0f, 300.0f, 3000.0f, -3000.0f, 1.0f, 0 },
+ { 2000.0f, 2100.0f, 300.0f, 2000.0f, -2000.0f, 1.0f, 0 },
+ { 150.0f, 200.0f, 0.0f, 100.0f, -100.0f, 1.0f, 17 },
+ { 3500.0f, 3500.0f, 0.0f, 3000.0f, -3000.0f, 100.0f, 0 },
+ { 375.0f, 625.0f, 500.0f, 500.0f, -500.0f, 40.0f, 0 },
+ { 200.0f, 250.0f, 0.0f, 300.0f, -1000.0f, 1.0f, 68 },
+ { 300.0f, 350.0f, 0.0f, 300.0f, -1000.0f, 1.0f, 68 },
+ { 150.0f, 150.0f, 0.0f, 40.0f, -130.0f, 1.0f, 1 },
+ { 100.0f, 100.0f, 0.0f, 40.0f, -130.0f, 1.0f, 0 },
+ { 375.0f, 1000.0f, 500.0f, 500.0f, -500.0f, 10.0f, 0 },
+ { 2000.0f, 2000.0f, 0.0f, 1000.0f, -1000.0f, 0.1f, 4 },
+ { 100.0f, 200.0f, 0.0f, 160.0f, -150.0f, 10.0f, 4 },
+ { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 200.0f, 240.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 650.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 750.0f, 850.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 800.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 12 },
+ { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 200.0f, 240.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 650.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 750.0f, 850.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 800.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 20 },
+ { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 200.0f, 250.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 650.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 750.0f, 850.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 800.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 36 },
+ { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 200.0f, 250.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 650.0f, 750.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 750.0f, 850.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 800.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 68 },
+ { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 200.0f, 250.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 650.0f, 750.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 750.0f, 850.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 800.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 132 },
+ { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 200.0f, 250.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 650.0f, 750.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 750.0f, 850.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 800.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 260 },
+ { 50.0f, 70.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 100.0f, 120.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 150.0f, 180.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 200.0f, 250.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 250.0f, 300.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 300.0f, 350.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 350.0f, 400.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 400.0f, 450.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 450.0f, 500.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 500.0f, 550.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 550.0f, 650.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 600.0f, 700.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 650.0f, 750.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 700.0f, 800.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 750.0f, 900.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 800.0f, 950.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 850.0f, 1000.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 900.0f, 1100.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 950.0f, 1150.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
+ { 1000.0f, 1200.0f, 0.0f, 300.0f, -300.0f, 1.0f, 4 },
};
diff --git a/src/d/d_attention.cpp b/src/d/d_attention.cpp
index 61117fabb1..951cbc5c5b 100644
--- a/src/d/d_attention.cpp
+++ b/src/d/d_attention.cpp
@@ -177,13 +177,11 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
-extern "C" void tan();
extern "C" extern void* __vt__25mDoExt_McaMorfCallBack1_c[3];
extern "C" u8 dist_table__12dAttention_c[6552];
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" extern u32 __float_nan;
extern "C" extern u32 __float_max;
extern "C" extern u8 data_80450F58[8];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
@@ -936,7 +934,7 @@ asm void dAttention_c::CheckObjectTarget(s32 param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dAttention_c::LockonTruth() {
+asm bool dAttention_c::LockonTruth() {
nofralloc
#include "asm/d/d_attention/LockonTruth__12dAttention_cFv.s"
}
diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp
index 65b36253a7..596e402697 100644
--- a/src/d/d_drawlist.cpp
+++ b/src/d/d_drawlist.cpp
@@ -288,7 +288,6 @@ extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
-extern "C" void fmod();
extern "C" extern u8 g_mDoMtx_identity[48 + 24 /* padding */];
extern "C" extern void* __vt__26mDoExt_3DlineMatSortPacket[5];
extern "C" extern void* __vt__12dDlst_base_c[3];
@@ -303,7 +302,6 @@ extern "C" u8 mBackColor__13mDoGph_gInf_c[4];
extern "C" extern u8 g_clearColor[4];
extern "C" extern u32 g_blackColor;
extern "C" extern u32 g_whiteColor;
-extern "C" extern u32 __float_nan;
extern "C" extern u32 __float_max;
extern "C" f32 mSystemFar__14mDoLib_clipper;
extern "C" f32 mFovyRate__14mDoLib_clipper;
diff --git a/src/d/d_jnt_col.cpp b/src/d/d_jnt_col.cpp
index 9089295591..564620c3f0 100644
--- a/src/d/d_jnt_col.cpp
+++ b/src/d/d_jnt_col.cpp
@@ -88,7 +88,6 @@ extern "C" extern void* __vt__8cM3dGPla[3];
extern "C" extern void* __vt__8cM3dGCyl[3];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 BaseZ__4cXyz[12];
-extern "C" extern u32 __float_nan;
extern "C" extern u32 __float_max;
//
diff --git a/src/d/event/d_event_manager.cpp b/src/d/event/d_event_manager.cpp
index abcc88e10d..bc3f611c13 100644
--- a/src/d/event/d_event_manager.cpp
+++ b/src/d/event/d_event_manager.cpp
@@ -616,7 +616,7 @@ SECTION_DEAD static char const* const stringBase_8037A0C5 = "Link";
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void dEvent_manager_c::getMyStaffId(char const* param_0, fopAc_ac_c* param_1, int param_2) {
+asm s32 dEvent_manager_c::getMyStaffId(char const* param_0, fopAc_ac_c* param_1, int param_2) {
nofralloc
#include "asm/d/event/d_event_manager/getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci.s"
}
diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp
index fbdf59e1e1..e0f640af35 100644
--- a/src/d/kankyo/d_kankyo.cpp
+++ b/src/d/kankyo/d_kankyo.cpp
@@ -3204,7 +3204,7 @@ static asm void dKy_F_SP121Check(char const* param_0, int param_1, u8* param_2,
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm BOOL dKy_darkworld_stage_check(char const* param_0, int param_1) {
+asm bool dKy_darkworld_stage_check(char const* param_0, int param_1) {
nofralloc
#include "asm/d/kankyo/d_kankyo/dKy_darkworld_stage_check__FPCci.s"
}
diff --git a/src/d/particle/d_particle.cpp b/src/d/particle/d_particle.cpp
index a963fd0cb8..c677279916 100644
--- a/src/d/particle/d_particle.cpp
+++ b/src/d/particle/d_particle.cpp
@@ -605,8 +605,6 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u32 g_whiteColor;
-extern "C" extern u32 __float_nan;
-extern "C" extern u32 __float_epsilon;
extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4];
extern "C" extern u8 JPTracePCB4[4];
extern "C" f32 mWaterY__11fopAcM_wt_c[1 + 1 /* padding */];
diff --git a/src/d/save/d_save.cpp b/src/d/save/d_save.cpp
index 20ed84ed21..43a7a57c25 100644
--- a/src/d/save/d_save.cpp
+++ b/src/d/save/d_save.cpp
@@ -9,15 +9,7 @@
#include "d/meter/d_meter2_info.h"
#include "dol2asm.h"
#include "dolphin/types.h"
-
-//
-// Types:
-//
-
-struct daObjCarry_c {
- /* 80031CF8 */ void clrSaveFlag();
- /* 80031D04 */ void setSaveFlag();
-};
+#include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h"
//
// Forward References:
@@ -1456,11 +1448,11 @@ bool dSv_danBit_c::init(s8 i_stage) {
unk28[i] = 0xFFFF;
}
- clrSaveFlag__12daObjCarry_cFv();
+ daObjCarry_c::clrSaveFlag();
return true;
} else {
- setSaveFlag__12daObjCarry_cFv();
+ daObjCarry_c::setSaveFlag();
return false;
}
}
diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp
index 7e84af6951..0e6f5a4dde 100644
--- a/src/m_Do/m_Do_ext.cpp
+++ b/src/m_Do/m_Do_ext.cpp
@@ -596,7 +596,6 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mCurrentMtx__6J3DSys[48];
extern "C" f32 mParentS__6J3DSys[3];
extern "C" u8 sGDLObj__17J3DDisplayListObj[16];
-extern "C" extern u32 __float_nan;
extern "C" extern f32 G_CM3D_F_ABS_MIN[1 + 1 /* padding */];
extern "C" u8 sCurrentHeap__7JKRHeap[4];
extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
diff --git a/src/m_Do/m_Do_mtx.cpp b/src/m_Do/m_Do_mtx.cpp
index aa1bb4f6c0..1dca9d11b9 100644
--- a/src/m_Do/m_Do_mtx.cpp
+++ b/src/m_Do/m_Do_mtx.cpp
@@ -71,7 +71,6 @@ extern "C" void __register_global_object();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" u8 sincosTable___5JMath[65536];
-extern "C" extern u32 __float_epsilon;
extern "C" extern f32 G_CM3D_F_ABS_MIN[1 + 1 /* padding */];
//