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