diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2021-11-10 23:54:31 -0800 |
|---|---|---|
| committer | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2021-11-10 23:54:31 -0800 |
| commit | 70eabb12bd5e9327ccd01b1f9367fca109d4fbfa (patch) | |
| tree | bc478c843622a25b54dd87479b6575be425b7488 /include | |
| parent | 74ed2da8bc93804373cddf64c0c878603150b699 (diff) | |
wip
Diffstat (limited to 'include')
28 files changed, 1718 insertions, 600 deletions
diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h index e0b78ce035..18ff4ee9e2 100644 --- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h +++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h @@ -299,6 +299,8 @@ public: virtual ~J3DFrameCtrl() {} f32 getRate() const { return mRate; } + f32 getFrame() const { return mFrame; } + u8 getAttribute() const { return mAttribute; } void setAttribute(u8 attr) { mAttribute = attr; } void setEnd(s16 end) { mEnd = end; } void setRate(f32 rate) { mRate = rate; } diff --git a/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h b/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h index 191908b869..f3c349f72a 100644 --- a/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h +++ b/include/JSystem/J3DGraphAnimator/J3DMaterialAnm.h @@ -124,6 +124,8 @@ public: /* 800A4820 */ virtual ~J3DMaterialAnm(); /* 8032C3C4 */ virtual void calc(J3DMaterial*) const; + const J3DTexMtxAnm& getTexMtxAnm(int i) const { return mTexMtxAnm[i]; } + private: /* 0x04 */ J3DMatColorAnm mMatColorAnm[2]; /* 0x14 */ J3DTexMtxAnm mTexMtxAnm[8]; diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h index 290f05fe66..16bf6deacd 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModel.h +++ b/include/JSystem/J3DGraphAnimator/J3DModel.h @@ -34,7 +34,7 @@ public: /* 803281B4 */ void calcBumpMtx(); /* 803282B8 */ void calcBBoardMtx(); /* 803282EC */ void prepareShapePackets(); - Mtx* getAnmMtx(int); + MtxP getAnmMtx(int); /* 80327CA4 */ virtual void update(); /* 80327E4C */ virtual void entry(); @@ -48,6 +48,7 @@ public: void onFlag(u32 flag) { mFlags |= flag; } void offFlag(u32 flag) { mFlags &= ~flag; } bool checkFlag(u32 flag) const { return (mFlags & flag) ? true : false; } + Mtx& getBaseTRMtx() { return mBaseTransformMtx; } // is there a better way to handle inlines with same name as non-inlines? MtxP i_getAnmMtx(int p1) { return mMtxBuffer->getAnmMtx(p1); } diff --git a/include/JSystem/J3DGraphBase/J3DMaterial.h b/include/JSystem/J3DGraphBase/J3DMaterial.h index d4219a9985..5478f70764 100644 --- a/include/JSystem/J3DGraphBase/J3DMaterial.h +++ b/include/JSystem/J3DGraphBase/J3DMaterial.h @@ -49,6 +49,7 @@ public: J3DColorBlock* getColorBlock() const { return mColorBlock; } J3DTexGenBlock* getTexGenBlock() const { return mTexGenBlock; } J3DDisplayListObj* getSharedDisplayListObj() const { return mSharedDLObj; } + J3DShape* getShape() { return mShape; } J3DMaterialAnm* getMaterialAnm() const { if ((u32)mMaterialAnm < 0xC0000000) { return mMaterialAnm; diff --git a/include/JSystem/J3DGraphBase/J3DShape.h b/include/JSystem/J3DGraphBase/J3DShape.h index 9410d61ab9..332acb3d15 100644 --- a/include/JSystem/J3DGraphBase/J3DShape.h +++ b/include/JSystem/J3DGraphBase/J3DShape.h @@ -48,6 +48,8 @@ public: void setVertexDataPointer(J3DVertexData* pVtxData) { mVertexData = pVtxData; } void* getVcdVatCmd() const { return mVcdVatCmd; } void setVcdVatCmd(void* pVatCmd) { mVcdVatCmd = pVatCmd; } + void show() { offFlag(1); } + void hide() { onFlag(1); } static void resetVcdVatCache() { sOldVcdVatCmd = NULL; } diff --git a/include/JSystem/JMath/JMath.h b/include/JSystem/JMath/JMath.h index d71f5de5e7..cb252d9aea 100644 --- a/include/JSystem/JMath/JMath.h +++ b/include/JSystem/JMath/JMath.h @@ -10,6 +10,14 @@ inline f32 JMAFastReciprocal(f32 value) { return __fres(value); } +inline f32 JMAFastSqrt(f32 input) { + if (input > 0.0f) { + f64 tmp = __frsqrte(input); + return tmp * input; + } + return input; +} + namespace JMath { inline f32 fastReciprocal(f32 value) { diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h index dff6740eed..1bc91d70f0 100644 --- a/include/SSystem/SComponent/c_cc_d.h +++ b/include/SSystem/SComponent/c_cc_d.h @@ -273,6 +273,7 @@ public: u8 GetWeightUc() const { return mWeight; } void SetWeight(u8 weight) { mWeight = weight; } fopAc_ac_c* GetAc() { return mActor; } + void SetActor(void* ac) { mActor = (fopAc_ac_c*)ac; } }; // Size = 0x1C STATIC_ASSERT(0x1C == sizeof(cCcD_Stts)); @@ -281,8 +282,8 @@ class cCcD_Obj; // placeholder class cCcD_ObjCommonBase { protected: - /* 0x00 */ int mSPrm; - /* 0x04 */ int mRPrm; + /* 0x00 */ u32 mSPrm; + /* 0x04 */ u32 mRPrm; /* 0x08 */ cCcD_Obj* mHitObj; /* 0x0C vtable */ public: @@ -295,6 +296,8 @@ public: s32 getRPrm() const { return mRPrm; } cCcD_Obj* getHitObj() { return mHitObj; } u32 MskSPrm(u32 mask) const { return mSPrm & mask; } + void OnSPrmBit(u32 flag) { mSPrm |= flag; } + void OffSPrmBit(u32 flag) { mSPrm &= ~flag; } }; STATIC_ASSERT(0x10 == sizeof(cCcD_ObjCommonBase)); @@ -311,6 +314,8 @@ public: bool ChkSet() const { return MskSPrm(1); } u8 GetAtp() const { return mAtp; } u32 MskType(u32 msk) const { return mType & msk; } + void SetType(u32 type) { mType = type; } + void SetAtp(int atp) { mAtp = atp; } protected: /* 0x10 */ int mType; @@ -388,6 +393,11 @@ public: bool ChkAtType(u32 type) const { return mObjAt.MskType(type); } u32 ChkCoNoCrr() const { return mObjCo.ChkNoCrr(); } u32 ChkCoSph3DCrr() const { return mObjCo.ChkSph3DCrr(); } + void OnAtSPrmBit(u32 flag) { mObjAt.OnSPrmBit(flag); } + void OffAtSPrmBit(u32 flag) { mObjAt.OffSPrmBit(flag); } + void SetAtType(u32 type) { mObjAt.SetType(type); } + void OnAtSetBit() { mObjAt.OnSPrmBit(1); } + void SetAtAtp(int atp) { mObjAt.SetAtp(atp); } }; // Size = 0x40 diff --git a/include/SSystem/SComponent/c_lib.h b/include/SSystem/SComponent/c_lib.h index 8ff0092bc1..ca3406b0e0 100644 --- a/include/SSystem/SComponent/c_lib.h +++ b/include/SSystem/SComponent/c_lib.h @@ -42,6 +42,18 @@ inline u8 cLib_checkBit(u8& pVar, u8 pBit) { return pVar & pBit; } +template<typename T> +inline T cLib_minMaxLimit(T param_0, T min, T max) { + if (param_0 < min) { + return max; + } + min = param_0; + if (min > max) { + min = max; + } + return min; +} + void MtxInit(void); void MtxTrans(float, float, float, unsigned char); void MtxScale(float, float, float, unsigned char); diff --git a/include/SSystem/SComponent/c_xyz.h b/include/SSystem/SComponent/c_xyz.h index 0f28e22048..f7a57a7b6a 100644 --- a/include/SSystem/SComponent/c_xyz.h +++ b/include/SSystem/SComponent/c_xyz.h @@ -2,6 +2,7 @@ #define C_XYZ_H #include "dolphin/mtx/vec.h" +#include "msl_c/math.h" #include "global.h" struct cXyz : Vec { @@ -116,6 +117,10 @@ struct cXyz : Vec { cXyz tmp2(other.x, 0, other.z); return tmp.abs2(tmp2); } + f32 absXZ(const Vec& other) const { + f32 abs = abs2XZ(other); + return sqrtf(abs); + } f32 getMagXZ() const { return cXyz(this->x, 0, this->z).getSquareMag(); } }; diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index cdce05bcbf..22e01aed97 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -4,6 +4,7 @@ #include "JSystem/J3DGraphBase/J3DMatBlock.h" #include "Z2AudioLib/Z2Creature.h" #include "Z2AudioLib/Z2WolfHowlMgr.h" +#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h" #include "d/a/d_a_player.h" #include "d/bg/d_bg_s.h" #include "d/cc/d_cc_d.h" @@ -17,12 +18,12 @@ #include "d/msg/d_msg_flow.h" #include "d/particle/d_particle.h" #include "d/particle/d_particle_copoly.h" +#include "rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h" #include "dolphin/types.h" class fopEn_enemy_c; class daAlinkHIO_anm_c; class J3DAnmTevRegKey; -class dCcG_At_Spl; class dDemo_actor_c; class J2DScreen; @@ -78,7 +79,7 @@ public: /* 800CFD58 */ virtual ~daAlink_blur_c(); private: - /* 0x010 */ u8 field_0x10[4]; + /* 0x010 */ void* m_blurTex; /* 0x014 */ int field_0x14; /* 0x018 */ u8 field_0x18[4]; /* 0x01C */ int field_0x1c; @@ -108,13 +109,55 @@ public: /* 800CFCF4 */ daAlink_footData_c(); private: - u8 field_0x00[0xa4]; + /* 0x00 */ u8 field_0x00[0x8]; + /* 0x08 */ cXyz field_0x8; + /* 0x14 */ Mtx field_0x14; + /* 0x44 */ Mtx field_0x44; + /* 0x74 */ Mtx field_0x74; +}; // Size: 0xA4 + +STATIC_ASSERT(sizeof(daAlink_footData_c) == 0xA4); + +class daAlink_matAnm_c : public J3DMaterialAnm { +public: + /* 8009D8E4 */ void init(); + /* 800D0180 */ void offSetFlg(); + + /* 800D0B8C */ virtual ~daAlink_matAnm_c(); + /* 8009D90C */ virtual void calc(J3DMaterial*) const; + +private: + /* 0x0F4 */ f32 field_0xf4; + /* 0x0F8 */ f32 field_0xf8; + /* 0x0FC */ f32 mNowOffsetX; + /* 0x100 */ f32 mNowOffsetY; + /* 0x104 */ int mSetFlag; }; class daAlink_c : public daPy_py_c { public: enum daAlink_ANM { - GANON_FINISH = 408 // name probably wrong, fix later + /* 0x13 */ ANM_DASH = 19, + /* 0x15 */ ANM_WAIT_TURN = 0x15, + /* 0x19 */ ANM_IDLE = 0x19, // name might be inaccurate + /* 0x1B */ ANM_WAIT_INIT = 0x1B, + /* 0x1D */ ANM_SIDE_STEP_LEFT = 0x1D, + /* 0x1E */ ANM_SIDE_STEP_RIGHT, + /* 0x1F */ ANM_SIDE_STEP_LEFT_LAND, + /* 0x20 */ ANM_SIDE_STEP_RIGHT_LAND, + /* 0x21 */ ANM_BACK_JUMP = 0x21, + /* 0x22 */ ANM_BACK_JUMP_LAND, + /* 0x23 */ ANM_FRONT_ROLL, + /* 0x24 */ ANM_ROLL_CRASH, + /* 0x71 */ ANM_CUT_JUMP = 0x71, + /* 0x90 */ ANM_SERVICE_WAIT = 0x90, + /* 0xB6 */ ANM_TIRED_WAIT = 0xB6, + /* 0xB7 */ ANM_TIRED_WAIT_INIT, + /* 0xBD */ ANM_FORWARD_SLIDE = 0xBD, + /* 0xBE */ ANM_BACKWARD_SLIDE, + /* 0xBF */ ANM_BACKWARD_SLIDE_LAND, + /* 0xC0 */ ANM_FORWARD_SLIDE_LAND, + ANM_GANON_FINISH = 408 // name probably wrong, fix later }; enum daAlink_UPPER { @@ -126,157 +169,196 @@ public: enum daAlink_UNDER {}; enum daAlink_FTANM {}; enum daAlink_WARP_MAT_MODE {}; - enum daAlink_WANM {}; + + enum daAlink_WANM { + /* 0x5E */ ANM_WOLF_HOWL_SUCCESS = 94 + }; enum MODE_FLG { - PLAYER_FLY = 0x70852, + /* 0x00000001 */ MODE_IDLE = (1 << 0), + /* 0x00000002 */ MODE_JUMP = (1 << 1), + /* 0x00000004 */ MODE_DISABLE_ITEMS = (1 << 2), // ? + /* 0x00000008 */ MODE_HIT_STUN = (1 << 3), + /* 0x00000010 */ MODE_CLIMB = (1 << 4), // ? + /* 0x00000020 */ MODE_UNK_20 = 0x20, // related to wolf? + /* 0x00000040 */ MODE_NO_COLLISION = 0x40, // disables wall col checks + /* 0x00000080 */ MODE_GUARD_ENABLED = 0x80, + /* 0x00000100 */ MODE_UNK_100 = 0x100, + /* 0x00000400 */ MODE_RIDING = 0x400, + /* 0x00000800 */ MODE_UNK_800 = 0x800, + /* 0x00001000 */ MODE_UNK_1000 = 0x1000, // affects things like anim set when controlling rod statue + /* 0x00002000 */ MODE_UNK_2000 = 0x2000, + /* 0x00004000 */ MODE_UNK_4000 = 0x4000, + /* 0x00008000 */ MODE_UNK_8000 = 0x8000, + /* 0x00010000 */ MODE_VINE_CLIMB = 0x10000, // used for vine climbing + /* 0x00020000 */ MODE_ROPE_WALK = 0x20000, + /* 0x00040000 */ MODE_SWIMMING = 0x40000, // this might be more than swimming + /* 0x00100000 */ MODE_GRAB_PLACE = 0x100000, + /* 0x00800000 */ MODE_UNK_800000 = 0x800000, // moves camera down + /* 0x01000000 */ MODE_UNK_1000000 = 0x1000000, // attention related? + /* 0x02000000 */ MODE_UNK_2000000 = 0x2000000, // maybe related to snow/sand? + /* 0x04000000 */ MODE_UNK_4000000 = 0x4000000, + /* 0x08000000 */ MODE_UNK_8000000 = 0x8000000, + /* 0x10000000 */ MODE_UNK_10000000 = 0x10000000, // catch boomerang? + /* 0x20000000 */ MODE_UNK_20000000 = 0x20000000, + /* 0x40000000 */ MODE_UNK_40000000 = 0x40000000, }; enum daAlink_PROC { - PREACTION_UNEQUIP, - SERVICE_WAIT, - HUMAN_WAIT = 3, - HUMAN_SIDESTEP = 10, - HUMAN_SIDESTEP_LAND, - HUMAN_SLIDE, - FRONT_ROLL = 14, - FRONT_ROLL_CRASH, - HUMAN_KNOCKBACK, - SIDE_ROLL, - BACK_JUMP, - BACK_JUMP_LAND, - SLIP, - HUMAN_AUTOJUMP, - DIVE_JUMP, - ROLL_JUMP, - FALL, - LAND, - SMALL_JUMP, - STEP_MOVE, - GUARD_SLIP = 29, - GUARD_ATTACK, - GUARD_BREAK, - TURN_MOVE, - CUT_NORMAL, - CUT_FINISH, - CUT_FINISH_JUMP_UP, - CUT_FINISH_JUMP_UP_LAND, - CUT_REVERSE, - CUT_JUMP, - CUT_JUMP_LAND, - COMBO_CUT_TURN, - CUT_CHARGE, - CUT_TURN_MOVE, - CUT_DOWN, - CUT_DOWN_LAND, - CUT_HEAD, - CUT_HEAD_LAND, - CUT_LARGE_JUMP_CHARGE, - CUT_LARGE_JUMP, - CUT_LARGE_JUMP_LAND, - DAMAGE, - LAND_DAMAGE = 52, - CRAWL_START, - CRAWL_MOVE, - CRAWL_AUTOMOVE, - CRAWL_END, - PULL_MOVE, - HORSE_RIDE, - HORSE_GETOFF, - HORSE_TURN = 61, - HORSE_JUMP, - HORSE_LAND, - HORSE_SUBJECTIVITY, - HORSE_CUT, - HORSE_CUT_CHARGE_READY, - HORSE_CUT_TURN, - HORSE_DAMAGE, - RIDE_BOW_READY, - HORSE_BOTTLE_DRINK = 76, - HORSE_KANDELAAR_POUR = 78, - HORSE_RUN, - HORSE_HANG, - BOAR_RUN = 83, - HANG_START = 85, - HANG_FALL_START, - HANG_UP, - HANG_WAIT, - HANG_MOVE, - COPY_ROD_SWING = 101, - GRAB_READY = 108, - GRAB_UP, - GRAB_THROW = 111, - GRAB_DOWN, - GRAB_REBOUND = 114, - GRAB_STAND, - INSECT_CATCH, - PICK_UP, - PICK_PUT, - HUMAN_ST_ESCAPE, - CLIMB_MOVE_VERTICAL = 130, - CLIMB_MOVE_HORIZONTAL, - CANOE_RIDE = 140, - CANOE_JUMP_RIDE, - CANOE_GETOFF, - CANOE_ROW = 144, - CANOE_PADDLE_SHIFT, - CANOE_PADDLE_PUT, - CANOE_PADDLE_GRAB, - CANOE_ROD_GRAB, - CANOE_FISHING_REEL = 150, - CANOE_FISHING_GET, - CANOE_SUBJECTIVITY, - CANOE_BOTTLE_DRINK = 160, - CANOE_KANDELAAR_POUR, - FISHING_FOOD = 163, - BOARD_CUT_TURN = 173, - FM_CHAIN_UP, - BOTTLE_DRINK = 179, - EMPTY_BOTTLE_SWING = 181, - GRASS_WHISTLE = 186, - HAWK_WAIT = 188, - FLOOR_DOWN_REBOUND = 189, - GORON_RIDE_WAIT, - GOAT_THROW = 192, - GOAT_STROKE, - MAGNE_BOOTS_FLY = 204, - BOOTS_EQUIP, - SUMOU_PUSH = 207, - SUMOU_SIDE_MOVE, - SUMOU_ACTION, - SUMOU_STAGGER, - SUMOU_WIN_LOSE, - BOSS_ENEMY_HANG = 220, - SCREAM_WAIT = 222, - DUNGEON_WARP_READY = 234, - WOLF_HOWL = 237, - WOLF_WAIT = 241, - WOLF_DASH = 243, - WOLF_KNOCKBACK = 244, - WOLF_SIDESTEP = 247, - WOLF_AUTOJUMP = 252, - WOLF_RSIT = 255, - WOLF_DAMAGE = 263, - WOLF_SLIDE = 271, - WOLF_ROPE_HANG = 275, - WOLF_TAGLOCK_JUMP = 280, - WOLF_TAGLOCK_LAND, - WOLF_DOWNATTACK_PULLOUT = 291, - WOLF_JUMPATTACK = 284, - WOLF_ST_ESCAPE = 289, - WOLF_CHAIN = 305, - WOLF_DIG, - WOLF_ENEMY_HANG_BITE = 310, - SUBJECTIVITY = 318, - POLY_DAMAGE = 321, - ELEC_DAMAGE, - PUSH_PULL_WAIT, - PUSH_MOVE, - TRESURE_STAND = 328, - METAMORPHOSE = 333, - DEAD = 336, - LARGE_DAMAGE = 345, - LARGE_DAMAGE_WALL, + /* 0x000 */ PREACTION_UNEQUIP, + /* 0x001 */ SERVICE_WAIT, + /* 0x003 */ HUMAN_WAIT = 3, + /* 0x004 */ HUMAN_MOVE, + /* 0x005 */ HUMAN_ATN_MOVE, + /* 0x006 */ HUMAN_ATN_ACTOR_WAIT, + /* 0x007 */ HUMAN_ATN_ACTOR_MOVE, + /* 0x008 */ HUMAN_WAIT_TURN, + /* 0x009 */ HUMAN_MOVE_TURN, + /* 0x00A */ HUMAN_SIDESTEP, + /* 0x00B */ HUMAN_SIDESTEP_LAND, + /* 0x00C */ HUMAN_SLIDE, + /* 0x00D */ HUMAN_SLIDE_LAND, + /* 0x00E */ FRONT_ROLL, + /* 0x00F */ FRONT_ROLL_CRASH, + /* 0x010 */ HUMAN_KNOCKBACK, + /* 0x011 */ SIDE_ROLL, + /* 0x012 */ BACK_JUMP, + /* 0x013 */ BACK_JUMP_LAND, + /* 0x014 */ SLIP, + /* 0x015 */ HUMAN_AUTOJUMP, + /* 0x016 */ DIVE_JUMP, + /* 0x017 */ ROLL_JUMP, + /* 0x018 */ FALL, + /* 0x019 */ LAND, + /* 0x01A */ SMALL_JUMP, + /* 0x01B */ STEP_MOVE, + /* 0x01D */ GUARD_SLIP = 29, + /* 0x01E */ GUARD_ATTACK, + /* 0x01F */ GUARD_BREAK, + /* 0x020 */ TURN_MOVE, + /* 0x021 */ CUT_NORMAL, + /* 0x022 */ CUT_FINISH, + /* 0x023 */ CUT_FINISH_JUMP_UP, + /* 0x024 */ CUT_FINISH_JUMP_UP_LAND, + /* 0x025 */ CUT_REVERSE, + /* 0x026 */ CUT_JUMP, + /* 0x027 */ CUT_JUMP_LAND, + /* 0x028 */ COMBO_CUT_TURN, + /* 0x029 */ CUT_CHARGE, + /* 0x02A */ CUT_TURN_MOVE, + /* 0x02B */ CUT_DOWN, + /* 0x02C */ CUT_DOWN_LAND, + /* 0x02D */ CUT_HEAD, + /* 0x02E */ CUT_HEAD_LAND, + /* 0x02F */ CUT_LARGE_JUMP_CHARGE, + /* 0x030 */ CUT_LARGE_JUMP, + /* 0x031 */ CUT_LARGE_JUMP_LAND, + /* 0x032 */ DAMAGE, + /* 0x034 */ LAND_DAMAGE = 52, + /* 0x035 */ CRAWL_START, + /* 0x036 */ CRAWL_MOVE, + /* 0x037 */ CRAWL_AUTOMOVE, + /* 0x038 */ CRAWL_END, + /* 0x039 */ PULL_MOVE, + /* 0x03A */ HORSE_RIDE, + /* 0x03B */ HORSE_GETOFF, + /* 0x03D */ HORSE_TURN = 61, + /* 0x03E */ HORSE_JUMP, + /* 0x03F */ HORSE_LAND, + /* 0x040 */ HORSE_SUBJECTIVITY, + /* 0x041 */ HORSE_CUT, + /* 0x042 */ HORSE_CUT_CHARGE_READY, + /* 0x043 */ HORSE_CUT_TURN, + /* 0x044 */ HORSE_DAMAGE, + /* 0x045 */ RIDE_BOW_READY, + /* 0x04C */ HORSE_BOTTLE_DRINK = 76, + /* 0x04E */ HORSE_KANDELAAR_POUR = 78, + /* 0x04F */ HORSE_RUN, + /* 0x050 */ HORSE_HANG, + /* 0x053 */ BOAR_RUN = 83, + /* 0x055 */ HANG_START = 85, + /* 0x056 */ HANG_FALL_START, + /* 0x057 */ HANG_UP, + /* 0x058 */ HANG_WAIT, + /* 0x059 */ HANG_MOVE, + /* 0x065 */ COPY_ROD_SWING = 101, + /* 0x06B */ CLIMB_MOVE_LADDER = 107, + /* 0x06C */ GRAB_READY = 108, + /* 0x06D */ GRAB_UP, + /* 0x06F */ GRAB_THROW = 111, + /* 0x070 */ GRAB_DOWN, + /* 0x072 */ GRAB_REBOUND = 114, + /* 0x073 */ GRAB_STAND, + /* 0x074 */ INSECT_CATCH, + /* 0x075 */ PICK_UP, + /* 0x076 */ PICK_PUT, + /* 0x077 */ HUMAN_ST_ESCAPE, + /* 0x082 */ CLIMB_MOVE_VERTICAL = 130, + /* 0x083 */ CLIMB_MOVE_HORIZONTAL, + /* 0x084 */ CLIMB_HANG, + /* 0x08C */ CANOE_RIDE = 140, + /* 0x08D */ CANOE_JUMP_RIDE, + /* 0x08E */ CANOE_GETOFF, + /* 0x090 */ CANOE_ROW = 144, + /* 0x091 */ CANOE_PADDLE_SHIFT, + /* 0x092 */ CANOE_PADDLE_PUT, + /* 0x093 */ CANOE_PADDLE_GRAB, + /* 0x094 */ CANOE_ROD_GRAB, + /* 0x096 */ CANOE_FISHING_REEL = 150, + /* 0x097 */ CANOE_FISHING_GET, + /* 0x098 */ CANOE_SUBJECTIVITY, + /* 0x0A0 */ CANOE_BOTTLE_DRINK = 160, + /* 0x0A1 */ CANOE_KANDELAAR_POUR, + /* 0x0A3 */ FISHING_FOOD = 163, + /* 0x0AD */ BOARD_CUT_TURN = 173, + /* 0x0AF */ FM_CHAIN_UP, + /* 0x0B3 */ BOTTLE_DRINK = 179, + /* 0x0B5 */ BOTTLE_SWING = 181, + /* 0x0BA */ GRASS_WHISTLE = 186, + /* 0x0BC */ HAWK_WAIT = 188, + /* 0x0BD */ FLOOR_DOWN_REBOUND = 189, + /* 0x0BE */ GORON_RIDE_WAIT, + /* 0x0C0 */ GOAT_THROW = 192, + /* 0x0C1 */ GOAT_STROKE, + /* 0x0CC */ MAGNE_BOOTS_FLY = 204, + /* 0x0CD */ BOOTS_EQUIP, + /* 0x0CF */ SUMOU_PUSH = 207, + /* 0x0D0 */ SUMOU_SIDE_MOVE, + /* 0x0D1 */ SUMOU_ACTION, + /* 0x0D2 */ SUMOU_STAGGER, + /* 0x0D3 */ SUMOU_WIN_LOSE, + /* 0x0DC */ BOSS_ENEMY_HANG = 220, + /* 0x0DE */ SCREAM_WAIT = 222, + /* 0x0EA */ DUNGEON_WARP_READY = 234, + /* 0x0ED */ WOLF_HOWL = 237, + /* 0x0F1 */ WOLF_WAIT = 241, + /* 0x0F2 */ WOLF_MOVE, + /* 0x0F3 */ WOLF_DASH, + /* 0x0F4 */ WOLF_KNOCKBACK, + /* 0x0F7 */ WOLF_SIDESTEP = 247, + /* 0x0FC */ WOLF_AUTOJUMP = 252, + /* 0x0FF */ WOLF_RSIT = 255, + /* 0x107 */ WOLF_DAMAGE = 263, + /* 0x10F */ WOLF_SLIDE = 271, + /* 0x114 */ WOLF_ROPE_HANG = 276, + /* 0x118 */ WOLF_TAGLOCK_JUMP = 280, + /* 0x119 */ WOLF_TAGLOCK_LAND, + /* 0x11C */ WOLF_JUMPATTACK = 284, + /* 0x121 */ WOLF_ST_ESCAPE = 289, + /* 0x123 */ WOLF_DOWNATTACK_PULLOUT = 291, + /* 0x131 */ WOLF_CHAIN = 305, + /* 0x132 */ WOLF_DIG, + /* 0x136 */ WOLF_ENEMY_HANG_BITE = 310, + /* 0x13E */ SUBJECTIVITY = 318, + /* 0x141 */ POLY_DAMAGE = 321, + /* 0x142 */ ELEC_DAMAGE, + /* 0x143 */ PUSH_PULL_WAIT, + /* 0x144 */ PUSH_MOVE, + /* 0x148 */ TRESURE_STAND = 328, + /* 0x14D */ METAMORPHOSE = 333, + /* 0x150 */ DEAD = 336, + /* 0x159 */ LARGE_DAMAGE = 345, + /* 0x15A */ LARGE_DAMAGE_WALL, }; // this might be one of the above enums, but not clear yet @@ -297,9 +379,10 @@ public: /* 0x24 */ cXyz field_0x24; }; - class hsChainShape_c { - /* 800D0CDC */ ~hsChainShape_c(); - /* 80107900 */ void draw(); + class hsChainShape_c : public J3DPacket { + public: + /* 80107900 */ virtual void draw(); + /* 800D0CDC */ virtual ~hsChainShape_c(); }; /* 8009D87C */ bool getE3Zhint(); @@ -326,7 +409,7 @@ public: /* 800A1AEC */ void setEyeMove(cXyz*, s16, s16); /* 800A1F90 */ void setNeckAngle(); /* 800A2198 */ void commonLineCheck(cXyz*, cXyz*); - /* 800A21E0 */ void getMoveBGActorName(cBgS_PolyInfo&, int); + /* 800A21E0 */ static s16 getMoveBGActorName(cBgS_PolyInfo&, int); /* 800A2280 */ void checkGoronRide(); /* 800A22E8 */ void setMoveSlantAngle(); /* 800A2710 */ void setArmMatrix(); @@ -343,10 +426,10 @@ public: /* 800A3E98 */ void initModelEnv(u16, u32); /* 800A3F00 */ void initDemoModel(J3DModel**, char const*, u32); /* 800A3F98 */ void initDemoBck(mDoExt_bckAnm**, char const*); - /* 800A4068 */ void createHeap(); + /* 800A4068 */ static void createHeap(); /* 800A4910 */ void setSelectEquipItem(int); - /* 800A4BC8 */ void checkBoarStart(); - /* 800A4C40 */ void checkCanoeStart(); + /* 800A4BC8 */ BOOL checkBoarStart(); + /* 800A4C40 */ BOOL checkCanoeStart(); /* 800A4CB4 */ void playerInit(); /* 800A54F4 */ BOOL checkHorseStart(u32, int); /* 800A551C */ void setStartProcInit(); @@ -447,14 +530,14 @@ public: /* 800B1FB8 */ bool checkLv2MiddleBossBgRide(s16); /* 800B1FD8 */ void getSlidePolygon(cM3dGPla*); /* 800B21EC */ void checkSlope() const; - /* 800B25CC */ u32 itemTriggerCheck(u8); - /* 800B25E8 */ u32 itemButtonCheck(u8); + /* 800B25CC */ BOOL itemTriggerCheck(u8); + /* 800B25E8 */ BOOL itemButtonCheck(u8); /* 800B2604 */ void itemButton(); /* 800B2634 */ void itemTrigger(); /* 800B2664 */ void spActionButton(); /* 800B2688 */ void spActionTrigger(); - /* 800B26AC */ u32 midnaTalkTrigger() const; - /* 800B26B8 */ void swordSwingTrigger(); + /* 800B26AC */ BOOL midnaTalkTrigger() const; + /* 800B26B8 */ BOOL swordSwingTrigger(); /* 800B26DC */ void setItemActionButtonStatus(u8); /* 800B26FC */ void itemActionTrigger(); /* 800B271C */ void setStickData(); @@ -465,7 +548,7 @@ public: /* 800B3268 */ void setDoStatusEmphasys(u8); /* 800B3280 */ void setDoStatusContinuation(u8); /* 800B3298 */ void setBStatus(u8); - /* 800B32B0 */ void checkAtnWaitAnime(); + /* 800B32B0 */ BOOL checkAtnWaitAnime(); /* 800B3358 */ void setTiredVoice(daPy_frameCtrl_c*); /* 800B33E4 */ void checkRestHPAnime(); /* 800B3494 */ void getDirectionFromAngle(s16); @@ -485,19 +568,19 @@ public: /* 800B4918 */ float getMetamorphoseFarDis() const; /* 800B4928 */ s16 getMetamorphoseFarAngle() const; /* 800B4938 */ void setMidnaMsg(); - /* 800B4950 */ void notTalk(); + /* 800B4950 */ bool notTalk(); /* 800B4A08 */ void setTalkStatus(); - /* 800B4B2C */ void getFrontRollRate(); + /* 800B4B2C */ f32 getFrontRollRate(); /* 800B4B7C */ void decideCommonDoStatus(); /* 800B5284 */ void decideDoStatus(); - /* 800B58EC */ void checkWaitAction(); + /* 800B58EC */ BOOL checkWaitAction(); /* 800B5BC0 */ void setFallVoice(); /* 800B5C34 */ void setLandPassiveData(); /* 800B5C64 */ void setStepLandVibration(); /* 800B5CCC */ void checkLandAction(int); /* 800B5F6C */ void checkSlideAction(); /* 800B607C */ void checkAutoJumpAction(); - /* 800B69CC */ void checkCutJumpInFly(); + /* 800B69CC */ bool checkCutJumpInFly(); /* 800B6A30 */ BOOL checkFrontWallTypeAction(); /* 800B6F28 */ void checkItemActionInitStart(); /* 800B7090 */ void checkItemChangeAutoAction(); @@ -505,23 +588,23 @@ public: /* 800B7190 */ void cancelItemUseQuake(int); /* 800B71EC */ void cancelUpperItemReadyAnime(int); /* 800B72E4 */ void checkItemActorPointer(); - /* 800B7390 */ void checkSwordTwirlAction(); - /* 800B74B4 */ void checkUpperItemActionFly(); + /* 800B7390 */ bool checkSwordTwirlAction(); + /* 800B74B4 */ BOOL checkUpperItemActionFly(); /* 800B7528 */ void checkItemButtonChange(); /* 800B75EC */ void checkUpperItemAction(); /* 800B7B7C */ void orderPeep(); /* 800B7BF8 */ void orderTalk(int); /* 800B80C4 */ void orderZTalk(); /* 800B8374 */ void checkNormalAction(); - /* 800B8930 */ void checkReadyItem(); + /* 800B8930 */ bool checkReadyItem(); /* 800B8988 */ void checkItemAction(); /* 800B9010 */ bool checkRAction(); /* 800B9018 */ void checkMoveDoAction(); - /* 800B9148 */ void checkSideRollAction(int); - /* 800B9254 */ void checkNoUpperAnime() const; + /* 800B9148 */ BOOL checkSideRollAction(int); + /* 800B9254 */ BOOL checkNoUpperAnime() const; /* 800B92D0 */ void checkOneHandItemEquipAnime() const; /* 800B92F8 */ void checkItemEquipAnime() const; - /* 800B9340 */ void checkEquipAnime() const; + /* 800B9340 */ BOOL checkEquipAnime() const; /* 800B9398 */ void checkWindDashAnime() const; /* 800B93CC */ void checkSwordTwirlAnime() const; /* 800B93F4 */ void swordEquip(int); @@ -530,9 +613,9 @@ public: /* 800B96A4 */ void itemUnequip(u16, f32); /* 800B97EC */ void checkFastUnequip(); /* 800B983C */ void allUnequip(int); - /* 800B994C */ void checkItemChangeFromButton(); - /* 800B9D2C */ void checkNextActionFromButton(); - /* 800B9F50 */ void checkGroundSpecialMode(); + /* 800B994C */ BOOL checkItemChangeFromButton(); + /* 800B9D2C */ BOOL checkNextActionFromButton(); + /* 800B9F50 */ BOOL checkGroundSpecialMode(); /* 800BA09C */ void commonCheckNextAction(int); /* 800BA0D0 */ int checkNextAction(int); /* 800BA6A0 */ void commonChangeItem(); @@ -544,7 +627,7 @@ public: /* 800BB2B0 */ void setBodyAngleXReadyAnime(int); /* 800BB324 */ void setMagicArmorBrk(int); /* 800BB408 */ BOOL checkMagicArmorHeavy() const; - /* 800BB4B8 */ void checkHeavyStateOn(int, int); + /* 800BB4B8 */ BOOL checkHeavyStateOn(int, int); /* 800BB644 */ void initGravity(); /* 800BB770 */ void setSpecialGravity(f32, f32, int); /* 800BB7A0 */ void transAnimeProc(cXyz*, f32, f32); @@ -571,10 +654,10 @@ public: /* 800BF79C */ void setMetamorphoseModel(int); /* 800BF854 */ void keepItemData(); /* 800BF884 */ void returnKeepItemData(); - /* 800BF8D0 */ void setItemModel(); - /* 800BF9F0 */ void setItemActor(); + /* 800BF8D0 */ BOOL setItemModel(); + /* 800BF9F0 */ BOOL setItemActor(); /* 800BFD74 */ void makeItemType(); - /* 800BFDB0 */ void checkZoraWearAbility() const; + /* 800BFDB0 */ BOOL checkZoraWearAbility() const; /* 800BFDFC */ BOOL checkMagicArmorWearAbility() const; /* 800BFE48 */ void loadAramBmd(u16, u32); /* 800BFF04 */ void loadAram(u16, u32); @@ -588,16 +671,16 @@ public: /* 800C0284 */ void checkField(); /* 800C02C8 */ void checkBossRoom(); /* 800C0310 */ void checkDungeon(); - /* 800C0358 */ bool checkCastleTown(); - /* 800C03A0 */ void checkCloudSea(); - /* 800C03E8 */ void checkRoomOnly(); - /* 800C044C */ void checkLv2DungeonRoomSpecial(); - /* 800C04B4 */ void checkRoomSpecial(); - /* 800C0520 */ bool checkRoom(); - /* 800C0594 */ bool checkNotBattleStage(); - /* 800C05DC */ void checkNotHeavyBootsStage(); - /* 800C0630 */ void checkNotAutoJumpStage(); - /* 800C0678 */ void checkCastleTownUseItem(u16); + /* 800C0358 */ static bool checkCastleTown(); + /* 800C03A0 */ static bool checkCloudSea(); + /* 800C03E8 */ static bool checkRoomOnly(); + /* 800C044C */ static bool checkLv2DungeonRoomSpecial(); + /* 800C04B4 */ static bool checkRoomSpecial(); + /* 800C0520 */ static bool checkRoom(); + /* 800C0594 */ static bool checkNotBattleStage(); + /* 800C05DC */ bool checkNotHeavyBootsStage(); + /* 800C0630 */ bool checkNotAutoJumpStage(); + /* 800C0678 */ static bool checkCastleTownUseItem(u16); /* 800C077C */ void changeItemTriggerKeepProc(u8, int); /* 800C0A9C */ void checkNewItemChange(u8); /* 800C12DC */ void deleteEquipItem(int, int); @@ -609,32 +692,32 @@ public: /* 800C2DDC */ void procPreActionUnequipInit(int, fopAc_ac_c*); /* 800C2EAC */ void procPreActionUnequip(); /* 800C3098 */ bool procServiceWaitInit(); - /* 800C30F0 */ void procServiceWait(); + /* 800C30F0 */ bool procServiceWait(); /* 800C3224 */ void procTiredWaitInit(); - /* 800C3338 */ void procTiredWait(); - /* 800C33B8 */ void procWaitInit(); + /* 800C3338 */ bool procTiredWait(); + /* 800C33B8 */ bool procWaitInit(); /* 800C3504 */ void procWait(); - /* 800C36CC */ void procMoveInit(); - /* 800C3730 */ void procMove(); - /* 800C3810 */ void procAtnMoveInit(); + /* 800C36CC */ bool procMoveInit(); + /* 800C3730 */ bool procMove(); + /* 800C3810 */ bool procAtnMoveInit(); /* 800C3868 */ bool procAtnMove(); - /* 800C38CC */ void procAtnActorWaitInit(); - /* 800C397C */ void procAtnActorWait(); - /* 800C39EC */ void procAtnActorMoveInit(); - /* 800C3A44 */ void procAtnActorMove(); - /* 800C3A94 */ void procWaitTurnInit(); - /* 800C3B1C */ void procWaitTurn(); - /* 800C3C3C */ void procMoveTurnInit(int); - /* 800C3D38 */ void procMoveTurn(); - /* 800C3DA0 */ void procSideStepInit(int); - /* 800C3F60 */ void procSideStep(); - /* 800C40F0 */ void procSideStepLandInit(); - /* 800C4278 */ void procSideStepLand(); - /* 800C4378 */ void procSlideInit(s16); + /* 800C38CC */ bool procAtnActorWaitInit(); + /* 800C397C */ bool procAtnActorWait(); + /* 800C39EC */ bool procAtnActorMoveInit(); + /* 800C3A44 */ bool procAtnActorMove(); + /* 800C3A94 */ bool procWaitTurnInit(); + /* 800C3B1C */ BOOL procWaitTurn(); + /* 800C3C3C */ bool procMoveTurnInit(int); + /* 800C3D38 */ bool procMoveTurn(); + /* 800C3DA0 */ bool procSideStepInit(int); + /* 800C3F60 */ bool procSideStep(); + /* 800C40F0 */ bool procSideStepLandInit(); + /* 800C4278 */ bool procSideStepLand(); + /* 800C4378 */ bool procSlideInit(s16); /* 800C4514 */ void procSlide(); - /* 800C47AC */ void procSlideLandInit(int); - /* 800C4894 */ void procSlideLand(); - /* 800C494C */ void procFrontRollInit(); + /* 800C47AC */ bool procSlideLandInit(int); + /* 800C4894 */ bool procSlideLand(); + /* 800C494C */ bool procFrontRollInit(); /* 800C4B40 */ void procFrontRoll(); /* 800C4F14 */ void procFrontRollCrashInit(); /* 800C4FFC */ void procFrontRollCrash(); @@ -643,7 +726,7 @@ public: /* 800C5328 */ void procSideRollInit(int); /* 800C5484 */ void procSideRoll(); /* 800C5700 */ void backJumpSpeedDec(); - /* 800C57A4 */ void procBackJumpInit(int); + /* 800C57A4 */ bool procBackJumpInit(int); /* 800C5964 */ void procBackJump(); /* 800C5A54 */ void procBackJumpLandInit(int); /* 800C5AF0 */ void procBackJumpLand(); @@ -655,7 +738,7 @@ public: /* 800C6798 */ void procDiveJump(); /* 800C6850 */ void procRollJumpInit(); /* 800C692C */ void procRollJump(); - /* 800C6A48 */ void procFallInit(int, f32); + /* 800C6A48 */ bool procFallInit(int, f32); /* 800C6D20 */ void procFall(); /* 800C6F18 */ void procLandInit(f32); /* 800C6FE4 */ void procLand(); @@ -669,15 +752,15 @@ public: /* 800C7C64 */ void procCoMetamorphose(); /* 800C82E8 */ void procCoMetamorphoseOnlyInit(); /* 800C83A0 */ void procCoMetamorphoseOnly(); - /* 800C8460 */ void procFloorDownReboundInit(); + /* 800C8460 */ BOOL procFloorDownReboundInit(); /* 800C84D0 */ void procFloorDownRebound(); /* 800C854C */ void procGoronRideWaitInit(fopAc_ac_c*); /* 800C85D8 */ void procGoronRideWait(); /* 800C8700 */ void execute(); /* 800CAFC8 */ void setDrawHand(); - /* 800CB480 */ void checkSwordDraw(); - /* 800CB53C */ void checkShieldDraw(); - /* 800CB5F8 */ void checkItemDraw(); + /* 800CB480 */ bool checkSwordDraw(); + /* 800CB53C */ bool checkShieldDraw(); + /* 800CB5F8 */ bool checkItemDraw(); /* 800CB694 */ void initShadowScaleLight(); /* 800CBA38 */ void moveShadowScaleLight(); /* 800CBC18 */ void shadowDraw(); @@ -715,45 +798,44 @@ public: /* 800D0164 */ void set3DStatus(u8, u8); /* 800D018C */ u32 checkModeFlg(u32) const; /* 800D2684 */ void checkCutTurnCharge(); - /* 800D07A4 */ void checkCutJumpCancelTurn() const; /* 800D0E08 */ void checkLightSwordMtrl(); - /* 800D0E98 */ void checkSwordEquipAnime() const; - /* 800D0ECC */ void checkCutDashAnime() const; - /* 800D0EFC */ void checkCutDashEnemyHit(dCcD_GObjInf&); - /* 800D0F5C */ void getSwordAtType(); + /* 800D0E98 */ BOOL checkSwordEquipAnime() const; + /* 800D0ECC */ BOOL checkCutDashAnime() const; + /* 800D0EFC */ BOOL checkCutDashEnemyHit(dCcD_GObjInf&); + /* 800D0F5C */ static u32 getSwordAtType(); /* 800D0F90 */ void initCutTurnAt(f32, int); - /* 800D102C */ void checkCutFinishJumpUp(); + /* 800D102C */ bool checkCutFinishJumpUp(); /* 800D1088 */ void changeCutFast(); /* 800D10E0 */ void checkCutFastReady(); /* 800D1268 */ void setSwordModel(); /* 800D1310 */ void offSwordModel(); - /* 800D13AC */ void checkCutTypeNoBlur() const; - /* 800D13E4 */ void checkCutTurnInput() const; - /* 800D1424 */ void getCutTurnDirection() const; + /* 800D13AC */ BOOL checkCutTypeNoBlur() const; + /* 800D13E4 */ bool checkCutTurnInput() const; + /* 800D1424 */ int getCutTurnDirection() const; /* 800D1430 */ void resetCombo(int); /* 800D1454 */ void checkComboCnt(); /* 800D152C */ void setCutType(u8); /* 800D1540 */ void setCylAtParam(u32, dCcG_At_Spl, u8, u8, int, f32, f32); /* 800D1688 */ void setSwordAtParam(dCcG_At_Spl, u8, u8, int, f32, f32); - /* 800D1788 */ void notSwordHitVibActor(fopAc_ac_c*); + /* 800D1788 */ static bool notSwordHitVibActor(fopAc_ac_c*); /* 800D17EC */ void setSwordHitVibration(dCcD_GObjInf*); - /* 800D1920 */ void checkAtShieldHit(dCcD_GObjInf&); - /* 800D1978 */ void checkCutReverseAt(dCcD_GObjInf*); - /* 800D19C8 */ void changeCutReverseProc(daAlink_c::daAlink_ANM); + /* 800D1920 */ BOOL checkAtShieldHit(dCcD_GObjInf&); + /* 800D1978 */ bool checkCutReverseAt(dCcD_GObjInf*); + /* 800D19C8 */ BOOL changeCutReverseProc(daAlink_c::daAlink_ANM); /* 800D1E1C */ void setCutDash(int, int); - /* 800D20B4 */ void checkForceSwordSwing(); + /* 800D20B4 */ BOOL checkForceSwordSwing(); /* 800D20FC */ void setComboReserb(); - /* 800D2188 */ void checkComboReserb(); - /* 800D21D0 */ void commonCutAction(); + /* 800D2188 */ BOOL checkComboReserb(); + /* 800D21D0 */ bool commonCutAction(); /* 800D2284 */ void setSwordVoiceSe(u32); /* 800D22BC */ void setSwordChargeVoiceSe(); /* 800D2304 */ void setSwordComboVoice(); - /* 800D2368 */ void checkCutTurnInputTrigger(); + /* 800D2368 */ bool checkCutTurnInputTrigger(); /* 800D23C0 */ void checkCutAction(); /* 800D26EC */ void getCutDirection(); /* 800D2760 */ void checkCutCancelNextMode(int); /* 800D27E4 */ void checkDoCutAction(); - /* 800D2890 */ void checkCutBackState(); + /* 800D2890 */ static BOOL checkCutBackState(); /* 800D28F4 */ void checkCutHeadState(); /* 800D29D4 */ void checkDownAttackState(); /* 800D2ABC */ void checkCutLargeTurnState() const; @@ -771,8 +853,8 @@ public: /* 800D3ECC */ void procCutFinishJumpUpLand(); /* 800D4068 */ void procCutReverseInit(daAlink_c::daAlink_ANM); /* 800D41FC */ void procCutReverse(); - /* 800D42FC */ void procCutJumpInit(int); - /* 800D43F8 */ void procCutJump(); + /* 800D42FC */ bool procCutJumpInit(int); + /* 800D43F8 */ bool procCutJump(); /* 800D452C */ void procCutJumpLandInit(int); /* 800D4684 */ void procCutJumpLand(); /* 800D47DC */ void procCutTurnInit(int, int); @@ -846,16 +928,16 @@ public: /* 800DC214 */ void procCoLavaReturn(); /* 800DC278 */ void procCoSwimFreezeReturnInit(); /* 800DC474 */ void procCoSwimFreezeReturn(); - /* 800DC548 */ void checkEnemyGroup(fopAc_ac_c*); - /* 800DC5A4 */ void checkSpecialNpc(fopAc_ac_c*); + /* 800DC548 */ static BOOL checkEnemyGroup(fopAc_ac_c*); + /* 800DC5A4 */ static BOOL checkSpecialNpc(fopAc_ac_c*); /* 800DC5DC */ void checkShieldAttackEmphasys(); - /* 800DC678 */ void checkGuardActionChange(); + /* 800DC678 */ BOOL checkGuardActionChange(); /* 800DC79C */ void stickArrowIncrement(int); /* 800DC8C4 */ void setArrowShieldActor(fopAc_ac_c*, int); /* 800DCA2C */ void checkWoodShieldEquipNotIronBall() const; /* 800DCA80 */ void getArrowShieldOffset(cXyz const*, csXyz const*, cXyz*, cXyz*) const; /* 800DCD74 */ void setArrowShieldPos(cXyz*, csXyz*, cXyz const*, cXyz const*) const; - /* 800DCDF0 */ void checkUpperGuardAnime() const; + /* 800DCDF0 */ BOOL checkUpperGuardAnime() const; /* 800DCF04 */ void checkPlayerGuardAndAttack() const; /* 800DCF64 */ void checkGuardAccept(); /* 800DD008 */ void setUpperGuardAnime(f32); @@ -875,7 +957,7 @@ public: /* 800DE750 */ void getBombArrowFlyExplodeTime() const; /* 800DE760 */ void getArrowIncAtMaxStart() const; /* 800DE770 */ void getArrowIncAtMax() const; - /* 800DE780 */ void checkBowAndSlingItem(int); + /* 800DE780 */ BOOL checkBowAndSlingItem(int); /* 800DE7D4 */ void setSlingModel(); /* 800DE884 */ void checkBowCameraArrowPosP(s16*, s16*); /* 800DE9B8 */ void checkBowReadyAnime() const; @@ -892,7 +974,7 @@ public: /* 800DF798 */ void checkUpperItemActionBowFly(); /* 800DF814 */ void checkNextActionBow(); /* 800DFAE8 */ void setBowModel(); - /* 800DFBC8 */ void checkBowGrabLeftHand() const; + /* 800DFBC8 */ bool checkBowGrabLeftHand() const; /* 800DFC28 */ void setBowHangAnime(); /* 800DFC70 */ void setBowNormalAnime(); /* 800DFCD8 */ void setBowSight(); @@ -972,26 +1054,25 @@ public: /* 800E30DC */ void procBootsEquip(); /* 800E3218 */ void procMagneBootsFlyInit(); /* 800E3454 */ void procMagneBootsFly(); - /* 800E3760 */ void getBombExplodeTime() const; - /* 800E3770 */ void getBombGravity() const; - /* 800E3780 */ void getBombMaxFallSpeed() const; - /* 800E3790 */ void getBombBoundRate() const; - /* 800E37A0 */ void getBombStopSpeedY() const; - /* 800E37B0 */ void getBombMaxSpeedY() const; - /* 800E37C0 */ void getBombEffScale() const; - /* 800E37D0 */ void getBombAtR() const; - /* 800E37E0 */ void getEnemyBombColorR() const; - /* 800E37F0 */ void getBombWaterGravity() const; - /* 800E3800 */ void getBombWaterMaxFallSpeed() const; - /* 800E3810 */ void getBombExplodeWaterEffectLimit() const; - /* 800E3820 */ void getBombInsectLimitAngle() const; + /* 800E3760 */ s16 getBombExplodeTime() const; + /* 800E3770 */ f32 getBombGravity() const; + /* 800E3780 */ f32 getBombMaxFallSpeed() const; + /* 800E3790 */ f32 getBombBoundRate() const; + /* 800E37A0 */ f32 getBombStopSpeedY() const; + /* 800E37B0 */ f32 getBombMaxSpeedY() const; + /* 800E37C0 */ f32 getBombEffScale() const; + /* 800E37D0 */ f32 getBombAtR() const; + /* 800E37E0 */ s16 getEnemyBombColorR() const; + /* 800E37F0 */ f32 getBombWaterGravity() const; + /* 800E3800 */ f32 getBombWaterMaxFallSpeed() const; + /* 800E3810 */ f32 getBombExplodeWaterEffectLimit() const; + /* 800E3820 */ s16 getBombInsectLimitAngle() const; /* 800E38EC */ void checkGrabLineCheck(); - /* 800E3BCC */ void getGrabThrowRate(); /* 800E3C1C */ void checkGrabThrowAnime() const; /* 800E3C6C */ void checkGrabAnime() const; /* 800E3C9C */ void checkGrabAnimeAndThrow() const; - /* 800E3CF4 */ void checkGrabCarryActor(); + /* 800E3CF4 */ BOOL checkGrabCarryActor(); /* 800E3D1C */ void checkGrabSlowMoveActor(); /* 800E3D6C */ void checkGrabHeavyActor(); /* 800E3D94 */ void checkGrabSideActor(); @@ -1099,11 +1180,11 @@ public: /* 800ECDC4 */ void checkHorseWaitLashAnime() const; /* 800ECDEC */ void checkHorseReinLeftOnly() const; /* 800ECE10 */ void getReinHandType() const; - /* 800ECF04 */ void checkHorseLieAnime() const; + /* 800ECF04 */ BOOL checkHorseLieAnime() const; /* 800ECF5C */ void checkHorseSubjectivity() const; /* 800ECF9C */ void setHorseSwordUpAnime(); /* 800ECFF4 */ void setHorseTurnUpperAnime(int); - /* 800ED074 */ void checkHorseNoUpperAnime() const; + /* 800ED074 */ BOOL checkHorseNoUpperAnime() const; /* 800ED0D4 */ void getHorseReinHandPos(cXyz*, cXyz*); /* 800ED1F0 */ void checkHorseNotGrab() const; /* 800ED310 */ void setHorseStirrup(); @@ -1575,7 +1656,7 @@ public: /* 80115860 */ void procIronBallThrow(); /* 801159F0 */ void procIronBallReturnInit(); /* 80115AA0 */ void procIronBallReturn(); - /* 80115C20 */ void checkEventRun() const; + /* 80115C20 */ BOOL checkEventRun() const; /* 80115C50 */ void createNpcTks(cXyz*, int, u32); /* 80115EC0 */ void checkDemoAction(); /* 80116E60 */ void checkDemoMoveMode(u32) const; @@ -1685,7 +1766,7 @@ public: /* 8011EC60 */ void procMasterSwordStick(); /* 8011ED18 */ bool procMasterSwordPullInit(); /* 8011ED8C */ void procMasterSwordPull(); - /* 8011EE40 */ void checkLv7DungeonShop(); + /* 8011EE40 */ static BOOL checkLv7DungeonShop(); /* 8011EE94 */ void procDungeonWarpReadyInit(); /* 8011EFB8 */ void procDungeonWarpReady(); /* 8011F084 */ void procDungeonWarpInit(); @@ -1767,7 +1848,7 @@ public: /* 80127F50 */ void setSpeedAndAngleWolf(); /* 80128478 */ void setSpeedAndAngleWolfAtn(); /* 80128798 */ void checkWolfAtnWait(); - /* 8012880C */ void checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM) const; + /* 8012880C */ BOOL checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM) const; /* 80128844 */ void setBlendWolfMoveAnime(f32); /* 80128F0C */ void checkWolfAtnMoveBack(s16); /* 80128F5C */ void setWolfAtnMoveDirection(); @@ -1929,7 +2010,7 @@ public: /* 80138DC0 */ void setWolfBallModel(); /* 80138F18 */ void resetWolfBallGrab(); /* 80139048 */ void checkWolfLockData(); - /* 801391DC */ void getWolfLockActorEnd(); + /* 801391DC */ fopAc_ac_c* getWolfLockActorEnd(); /* 801391E4 */ void searchWolfLockEnemy(fopAc_ac_c*, void*); /* 801392E4 */ void checkWolfComboCnt(); /* 801393A4 */ void checkWolfAttackAction(); @@ -2008,68 +2089,68 @@ public: /* 80140984 */ void statusWindowDraw(); /* 80140AC8 */ void resetStatusWindow(); - virtual bool getMidnaAtnPos(void) const; + virtual cXyz* getMidnaAtnPos() const; virtual void setMidnaMsgNum(fopAc_ac_c*, u16); - virtual Mtx* getModelMtx(void); - virtual Mtx* getInvMtx(void); - virtual cXyz* getShadowTalkAtnPos(void); - virtual float getGroundY(); - virtual Mtx* getLeftItemMatrix(void); - virtual Mtx* getRightItemMatrix(void); - virtual Mtx* getLeftHandMatrix(void); - virtual Mtx* getRightHandMatrix(void); - virtual Mtx* getLinkBackBone1Matrix(void); - virtual Mtx* getWolfMouthMatrix(void); - virtual Mtx* getWolfBackbone2Matrix(void); - virtual bool getBottleMtx(void); - virtual bool checkPlayerGuard(void) const; + virtual MtxP getModelMtx(); + virtual MtxP getInvMtx(); + virtual cXyz* getShadowTalkAtnPos(); + virtual f32 getGroundY(); + virtual MtxP getLeftItemMatrix(); + virtual MtxP getRightItemMatrix(); + virtual MtxP getLeftHandMatrix(); + virtual MtxP getRightHandMatrix(); + virtual MtxP getLinkBackBone1Matrix(); + virtual MtxP getWolfMouthMatrix(); + virtual MtxP getWolfBackbone2Matrix(); + virtual MtxP getBottleMtx(); + virtual BOOL checkPlayerGuard() const; virtual u32 checkPlayerFly() const; virtual BOOL checkFrontRoll() const; - virtual bool checkWolfDash() const; - virtual bool checkAutoJump(void) const; - virtual bool checkSideStep(void) const; - virtual bool checkWolfTriggerJump(void) const; - virtual bool checkGuardBreakMode(void) const; - virtual bool checkLv3Slide(void) const; - virtual bool checkWolfHowlDemoMode(void) const; - virtual bool checkChainBlockPushPull(void); - virtual bool checkElecDamage(void) const; - virtual bool checkEmptyBottleSwing(void) const; - virtual bool checkBottleSwingMode(void) const; - virtual bool checkHawkWait(void) const; - virtual bool checkGoatThrow(void) const; - virtual bool checkGoatThrowAfter(void) const; - virtual bool checkWolfTagLockJump(void) const; - virtual bool checkWolfTagLockJumpLand(void) const; - virtual bool checkWolfRope(void); - virtual bool checkWolfRopeHang(void) const; - virtual bool checkRollJump(void) const; - virtual bool checkGoronRideWait(void) const; - virtual bool checkWolfChain(void) const; - virtual bool checkWolfWait(void) const; - virtual bool checkWolfJumpAttack(void) const; - virtual bool checkWolfRSit(void) const; - virtual bool checkBottleDrinkEnd(void) const; - virtual bool checkWolfDig(void) const; - virtual bool checkCutCharge(void) const; - virtual BOOL checkCutTurnCharge(void) const; - virtual bool checkCutLargeJumpCharge(void) const; - virtual bool checkComboCutTurn(void) const; - virtual bool checkClimbMove(void) const; - virtual bool checkGrassWhistle(void) const; - virtual bool checkBoarRun(void) const; - virtual float getBaseAnimeFrameRate(void) const; - virtual float getBaseAnimeFrame(void) const; + virtual BOOL checkWolfDash() const; + virtual BOOL checkAutoJump() const; + virtual bool checkSideStep() const; + virtual bool checkWolfTriggerJump() const; + virtual BOOL checkGuardBreakMode() const; + virtual bool checkLv3Slide() const; + virtual bool checkWolfHowlDemoMode() const; + virtual bool checkChainBlockPushPull(); + virtual BOOL checkElecDamage() const; + virtual BOOL checkEmptyBottleSwing() const; + virtual BOOL checkBottleSwingMode() const; + virtual BOOL checkHawkWait() const; + virtual BOOL checkGoatThrow() const; + virtual BOOL checkGoatThrowAfter() const; + virtual BOOL checkWolfTagLockJump() const; + virtual BOOL checkWolfTagLockJumpLand() const; + virtual bool checkWolfRope(); + virtual BOOL checkWolfRopeHang() const; + virtual BOOL checkRollJump() const; + virtual BOOL checkGoronRideWait() const; + virtual BOOL checkWolfChain() const; + virtual BOOL checkWolfWait() const; + virtual BOOL checkWolfJumpAttack() const; + virtual BOOL checkWolfRSit() const; + virtual BOOL checkBottleDrinkEnd() const; + virtual BOOL checkWolfDig() const; + virtual BOOL checkCutCharge() const; + virtual BOOL checkCutTurnCharge() const; + virtual BOOL checkCutLargeJumpCharge() const; + virtual BOOL checkComboCutTurn() const; + virtual BOOL checkClimbMove() const; + virtual BOOL checkGrassWhistle() const; + virtual BOOL checkBoarRun() const; + virtual f32 getBaseAnimeFrameRate() const; + virtual f32 getBaseAnimeFrame() const; virtual void setAnimeFrame(float); virtual bool checkWolfLock(fopAc_ac_c*) const; virtual bool cancelWolfLock(fopAc_ac_c*); - virtual s32 getAtnActorID(void) const; - virtual s32 getItemID(void) const; - virtual s32 getGrabActorID(void) const; + virtual s32 getAtnActorID() const; + virtual s32 getItemID() const; + virtual s32 getGrabActorID() const; virtual bool exchangeGrabActor(fopAc_ac_c*); virtual bool setForceGrab(fopAc_ac_c*, int, int); virtual void setForcePutPos(cXyz const&); - virtual bool checkPlayerNoDraw(void); + virtual BOOL checkPlayerNoDraw(); virtual void voiceStart(u32); virtual void seStartOnlyReverb(u32); virtual void seStartOnlyReverbLevel(u32); @@ -2077,11 +2158,12 @@ public: virtual void setGrabCollisionOffset(float, float, cBgS_PolyInfo*); virtual void onFrollCrashFlg(u8, int); virtual MtxP getModelJointMtx(u16); - virtual bool getHeadMtx(void); + virtual MtxP getHeadMtx(); virtual bool setHookshotCarryOffset(unsigned int, cXyz const*); - virtual bool checkIronBallReturn(void) const; - virtual bool checkIronBallGroundStop(void) const; - virtual bool checkSingleBoarBattleSecondBowReady(void) const; + virtual BOOL checkCutJumpCancelTurn() const; + virtual bool checkIronBallReturn() const; + virtual bool checkIronBallGroundStop() const; + virtual BOOL checkSingleBoarBattleSecondBowReady() const; virtual void setClothesChange(int); virtual void setPlayerPosAndAngle(float (*)[4]); virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*); @@ -2090,7 +2172,7 @@ public: virtual bool checkSetNpcTks(cXyz*, int, int); virtual bool setRollJump(float, float, short); virtual void playerStartCollisionSE(u32, u32); - virtual void cancelDungeonWarpReadyNeck(void); + virtual void cancelDungeonWarpReadyNeck(); virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*); virtual void onSceneChangeAreaJump(u8, u8, fopAc_ac_c*); virtual void onSceneChangeDead(u8, int); @@ -2099,15 +2181,15 @@ public: virtual u32 checkCanoeRide() const; virtual u32 checkBoardRide() const; virtual u32 checkSpinnerRide() const; - virtual fopAc_ac_c* getSpinnerActor(void); - virtual bool checkHorseRideNotReady(void) const; - virtual bool checkArrowChargeEnd(void) const; - virtual void getSearchBallScale(void) const; - virtual bool checkFastShotTime(void); - virtual bool checkNoEquipItem(void) const; + virtual fopAc_ac_c* getSpinnerActor(); + virtual BOOL checkHorseRideNotReady() const; + virtual bool checkArrowChargeEnd() const; + virtual f32 getSearchBallScale() const; + virtual s16 checkFastShotTime(); + virtual bool checkNoEquipItem() const; virtual bool checkKandelaarSwing(int) const; - virtual bool getBoardCutTurnOffsetAngleY(void) const; - virtual cXyz* getMagneBootsTopVec(void); + virtual s16 getBoardCutTurnOffsetAngleY() const; + virtual cXyz* getMagneBootsTopVec(); virtual bool getKandelaarFlamePos(); virtual bool checkUseKandelaar(int); virtual void setDkCaught(fopAc_ac_c*); @@ -2118,58 +2200,77 @@ public: virtual void setWolfEnemyHangBiteAngle(short); virtual void setKandelaarMtx(float (*)[4], int, int); virtual bool getStickAngleFromPlayerShape(short*) const; - virtual bool checkSpinnerPathMove(void); - virtual bool checkSpinnerTriggerAttack(void); - virtual void onSpinnerPathForceRemove(void); - virtual bool getIronBallBgHit(void) const; - virtual bool getIronBallCenterPos(void); - virtual bool checkCanoeFishingGetLeft(void) const; - virtual bool checkCanoeFishingGetRight(void) const; - virtual bool checkBeeChildDrink(void) const; - virtual void skipPortalObjWarp(void); + virtual bool checkSpinnerPathMove(); + virtual bool checkSpinnerTriggerAttack(); + virtual void onSpinnerPathForceRemove(); + virtual bool getIronBallBgHit() const; + virtual bool getIronBallCenterPos(); + virtual bool checkCanoeFishingGetLeft() const; + virtual bool checkCanoeFishingGetRight() const; + virtual u8 checkBeeChildDrink() const; + virtual void skipPortalObjWarp(); virtual bool checkTreasureRupeeReturn(int) const; virtual void setSumouReady(fopAc_ac_c*); virtual void checkAcceptDungeonWarpAlink(int); - virtual s16 getSumouCounter(void) const; - virtual s16 checkSumouWithstand(void) const; - virtual void cancelGoronThrowEvent(void); + virtual s16 getSumouCounter() const; + virtual s16 checkSumouWithstand() const; + virtual void cancelGoronThrowEvent(); virtual void setSumouGraspCancelCount(int); virtual void setSumouPushBackDirection(short); - virtual void setSumouLoseHeadUp(void); - virtual s16 getGiantPuzzleAimAngle(void) const; + virtual void setSumouLoseHeadUp(); + virtual s16 getGiantPuzzleAimAngle() const; virtual void setGoronSideMove(fopAc_ac_c*); virtual void setCargoCarry(fopAc_ac_c*); - virtual bool getHookshotTopPos(void); - virtual bool checkHookshotReturnMode(void) const; - virtual bool checkHookshotShootReturnMode(void) const; - virtual bool checkOctaIealHang(void) const; - virtual void cancelOctaIealHang(void); - virtual void cancelDragonHangBackJump(void); - virtual void setOctaIealWildHang(void); - virtual bool checkDragonHangRide(void) const; + virtual bool getHookshotTopPos(); + virtual bool checkHookshotReturnMode() const; + virtual bool checkHookshotShootReturnMode() const; + virtual bool checkOctaIealHang() const; + virtual void cancelOctaIealHang(); + virtual void cancelDragonHangBackJump(); + virtual void setOctaIealWildHang(); + virtual bool checkDragonHangRide() const; virtual void changeDragonActor(fopAc_ac_c*); - virtual u8 getClothesChangeWaitTimer(void) const; - virtual u8 getShieldChangeWaitTimer(void) const; - virtual bool getSwordChangeWaitTimer(void) const; - virtual bool checkMetamorphose(void) const; - virtual bool checkWolfDownAttackPullOut(void) const; - virtual BOOL checkBootsOrArmorHeavy(void) const; - virtual s32 getBottleOpenAppearItem(void) const; - virtual bool checkItemSwordEquip(void) const; - virtual float getSinkShapeOffset(void) const; - virtual bool checkSinkDead(void) const; - virtual bool checkHorseStart(void); - virtual bool getWolfHowlMgrP(void); - virtual bool checkWolfHowlSuccessAnime(void) const; - virtual bool checkCopyRodTopUse(void); - virtual bool checkCopyRodEquip(void) const; - virtual bool checkCutJumpMode(void) const; - - // inlined version of checkModeFlg + virtual u8 getClothesChangeWaitTimer() const; + virtual u8 getShieldChangeWaitTimer() const; + virtual u8 getSwordChangeWaitTimer() const; + virtual BOOL checkMetamorphose() const; + virtual BOOL checkWolfDownAttackPullOut() const; + virtual BOOL checkBootsOrArmorHeavy() const; + virtual s32 getBottleOpenAppearItem() const; + virtual bool checkItemSwordEquip() const; + virtual float getSinkShapeOffset() const; + virtual BOOL checkSinkDead() const; + virtual BOOL checkHorseStart(); + virtual Z2WolfHowlMgr* getWolfHowlMgrP(); + virtual BOOL checkWolfHowlSuccessAnime() const; + virtual bool checkCopyRodTopUse(); + virtual bool checkCopyRodEquip() const; + virtual BOOL checkCutJumpMode() const; + + // inlined dupes u32 i_checkModeFlg(u32 pFlag) const { return mModeFlg & pFlag; } + bool i_checkSmallUpperGuardAnime() const { return checkUpperAnime(0x16); } + bool i_checkFmChainGrabAnime() const { return checkUpperAnime(0x62) || checkUpperAnime(0x2A0); } + bool i_checkAttentionLock() { return mAttention->Lockon(); } + bool checkUpperAnime(u16 pIdx) const { return mUpperAnime[UPPER_NOW].getIdx() == pIdx; } bool checkIronBallWaitAnime() const { return checkUpperAnime(0x19C); } s16 checkWolfEyeUp() const { return mWolfEyeUp; } + void onModeFlg(u32 flag) { mModeFlg |= flag; } + void offModeFlg(u32 flag) { mModeFlg &= ~flag; } + bool checkHorseTurnLAnime() const { return checkUpperAnime(0x24C); } + bool checkHorseTurnRAnime() const { return checkUpperAnime(0x24D); } + bool checkHorseTurnAnime() const { return checkHorseTurnLAnime() || checkHorseTurnRAnime(); } + bool checkHookshotShootAnime() const { return checkUpperAnime(0x18C); } + bool checkHookshotReadyAnime() const { return checkUpperAnime(0x18D); } + bool checkHookshotAnime() const { return checkHookshotReadyAnime() || checkHookshotShootAnime(); } + bool swordButton() { return itemButtonCheck(8); } + daPy_actorKeep_c* getThrowBoomerangAcKeep() { return &mThrowBoomerangActor; } + s32 getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; } + bool checkFisingRodLure() const { return mEquipItem == 0x105; } + bool doTrigger() const { return mItemTrigger & 0x10; } + u32 getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; } + BOOL i_checkReinRide() const { return mRideStatus == 1 || mRideStatus == 2; } static u8 const m_mainBckShield[80]; static u8 const m_mainBckSword[20]; @@ -2187,12 +2288,12 @@ public: private: /* 0x0062C */ void* field_0x062C; - /* 0x00630 */ void* field_0x0630; - /* 0x00634 */ void* field_0x0634; + /* 0x00630 */ int field_0x0630; + /* 0x00634 */ char* mArcName; /* 0x00638 */ JKRExpHeap** field_0x0638; /* 0x0063C */ void* field_0x063C; - /* 0x00640 */ void* field_0x0640; - /* 0x00644 */ void* field_0x0644; + /* 0x00640 */ int field_0x0640; + /* 0x00644 */ char* mShieldArcName; /* 0x00648 */ JKRExpHeap** field_0x0648; /* 0x0064C */ J3DModelData* field_0x064C; /* 0x00650 */ J3DModel* field_0x0650; @@ -2205,7 +2306,7 @@ private: /* 0x0066C */ J3DModel* field_0x066c; /* 0x00670 */ J3DModel* field_0x0670; /* 0x00674 */ J3DModel* field_0x0674; - /* 0x00678 */ J3DModel* field_0x0678; + /* 0x00678 */ J3DModel* mShieldModel; /* 0x0067C */ J3DAnmBase* field_0x067c; /* 0x00680 */ J3DAnmBase* field_0x0680; /* 0x00684 */ J3DModel* field_0x0684; @@ -2221,12 +2322,12 @@ private: /* 0x006AC */ mDoExt_bckAnm* field_0x06ac; /* 0x006B0 */ mDoExt_bckAnm* field_0x06b0; /* 0x006B4 */ J3DAnmTransform* field_0x06b4; - /* 0x006B8 */ J3DModel* field_0x06b8; + /* 0x006B8 */ J3DModel* mSwordModel; /* 0x006BC */ J3DModel* field_0x06bc; /* 0x006C0 */ J3DModelData* field_0x06c0; - /* 0x006C4 */ J3DAnmBase* field_0x06c4; - /* 0x006C8 */ J3DAnmBase* field_0x06c8; - /* 0x006CC */ J3DAnmBase* field_0x06cc; + /* 0x006C4 */ J3DAnmBase* m_nSwordBtk; + /* 0x006C8 */ J3DAnmBase* m_mSwordBtk; + /* 0x006CC */ J3DAnmBase* m_mSwordBck; /* 0x006D0 */ void* field_0x06d0; /* 0x006D4 */ void* field_0x06d4; /* 0x006D8 */ void* field_0x06d8; @@ -2241,7 +2342,7 @@ private: /* 0x006FC */ J3DModel* field_0x06fc; /* 0x00700 */ J3DModel* field_0x0700; /* 0x00704 */ J3DAnmBase* field_0x0704; - /* 0x00708 */ J3DModel* field_0x0708; + /* 0x00708 */ J3DModel* mHeldItemModel; /* 0x0070C */ J3DModel* field_0x070c; /* 0x00710 */ J3DModel* field_0x0710; /* 0x00714 */ J3DModel* field_0x0714; @@ -2254,7 +2355,7 @@ private: /* 0x00730 */ mDoExt_bckAnm field_0x730; /* 0x0074C */ mDoExt_bckAnm field_0x74C; /* 0x00768 */ u8 field_0x0768[0x5C]; - /* 0x007C4 */ daPy_actorKeep_c field_0x07C4[10]; + /* 0x007C4 */ daPy_actorKeep_c mWolfLockAcKeep[10]; /* 0x00814 */ dCcD_Stts field_0x814; /* 0x00850 */ dCcD_Cyl field_0x850[3]; /* 0x00C04 */ dCcD_Cyl field_0xC04[3]; @@ -2300,7 +2401,7 @@ private: /* 0x021B0 */ daPy_anmHeap_c mItemHeap[2]; /* 0x021D8 */ daPy_anmHeap_c mAnmHeap9; /* 0x021EC */ u8 field_0x21ec[4]; - /* 0x021F0 */ daAlink_blur_c mBlur; + /* 0x021F0 */ daAlink_blur_c m_swordBlur; /* 0x027C8 */ dAlink_bottleWaterPcallBack_c field_0x27c8; /* 0x027E0 */ dAttention_c* mAttention; /* 0x027E4 */ dAttList_c* mAttList; @@ -2310,19 +2411,19 @@ private: /* 0x027F4 */ fopAc_ac_c* field_0x27f4; /* 0x027F8 */ fopAc_ac_c* field_0x27f8; /* 0x027FC */ fopAc_ac_c* field_0x27fc; - /* 0x02800 */ fopAc_ac_c* field_0x2800; + /* 0x02800 */ daTagMmsg_c* mMidnaMsg; /* 0x02804 */ fopAc_ac_c* field_0x2804; /* 0x02808 */ fopAc_ac_c* field_0x2808; /* 0x0280C */ daPy_actorKeep_c field_0x280c; /* 0x02814 */ daPy_actorKeep_c mRideActor; // daspinnerc? /* 0x0281C */ daPy_actorKeep_c field_0x281c; /* 0x02824 */ daPy_actorKeep_c mItemActor; // name might be wrong - /* 0x0282C */ daPy_actorKeep_c field_0x282c; - /* 0x02834 */ daPy_actorKeep_c field_0x2834; + /* 0x0282C */ daPy_actorKeep_c mGrabItemActor; + /* 0x02834 */ daPy_actorKeep_c mThrowBoomerangActor; /* 0x0283C */ daPy_actorKeep_c field_0x283c; /* 0x02844 */ daPy_actorKeep_c field_0x2844; /* 0x0284C */ daPy_actorKeep_c field_0x284c; - /* 0x02854 */ daPy_actorKeep_c field_0x2854; + /* 0x02854 */ daPy_actorKeep_c mCargoCarryActor; /* 0x0285C */ daPy_actorKeep_c field_0x285c; /* 0x02864 */ dMsgFlow_c mMsgFlow; /* 0x028B0 */ u8 field_0x28b0[0x40]; @@ -2338,7 +2439,7 @@ private: /* 0x02B98 */ float* field_0x2b9c; /* 0x02BA0 */ float* field_0x2ba0; /* 0x02BA4 */ float* field_0x2ba4; - /* 0x02BA8 */ float* field_0x2ba8; + /* 0x02BA8 */ f32 mSinkShapeOffset; /* 0x02BAC */ cXyz field_0x2bac; /* 0x02BB8 */ Mtx mInvMtx; /* 0x02BE8 */ Mtx field_0x2be8; @@ -2375,17 +2476,17 @@ private: /* 0x02F97 */ u8 field_0x2f97; /* 0x02F98 */ u8 field_0x2f98; /* 0x02F99 */ u8 field_0x2f99; - /* 0x02F9A */ s8 field_0x2f9a; + /* 0x02F9A */ s8 mVoiceReverbIntensity; /* 0x02F9B */ u8 field_0x2f9b; /* 0x02F9C */ u8 mSelectItemId; /* 0x02F9D */ u8 field_0x2f9d; /* 0x02F9E */ u8 field_0x2f9e; /* 0x02F9F */ u8 field_0x2f9f; /* 0x02FA0 */ u8 field_0x2fa0; - /* 0x02FA1 */ u8 field_0x2fa1; - /* 0x02FA2 */ u8 field_0x2fa2; + /* 0x02FA1 */ u8 mRunCutComboCount; + /* 0x02FA2 */ u8 mActiveBombNum; /* 0x02FA3 */ u8 field_0x2fa3; - /* 0x02FA4 */ u8 field_0x2fa4; + /* 0x02FA4 */ u8 mRollCrashFlg; /* 0x02FA5 */ u8 field_0x2fa5; /* 0x02FA6 */ u8 field_0x2fa6; /* 0x02FA7 */ u8 field_0x2fa7; @@ -2398,8 +2499,8 @@ private: /* 0x02FAE */ u8 field_0x2fae; /* 0x02FAF */ u8 field_0x2faf; /* 0x02FB0 */ u8 field_0x2fb0; - /* 0x02FB1 */ u8 field_0x2fb1; - /* 0x02FB2 */ u8 field_0x2fb2; + /* 0x02FB1 */ u8 mWolfLockNum; + /* 0x02FB2 */ u8 mMidnaTalkDelayTimer; /* 0x02FB3 */ u8 field_0x2fb3; /* 0x02FB4 */ u8 field_0x2fb4; /* 0x02FB5 */ u8 field_0x2fb5; @@ -2435,11 +2536,11 @@ private: /* 0x02FD3 */ u8 field_0x2fd3; /* 0x02FD4 */ u8 field_0x2fd4; /* 0x02FD5 */ u8 field_0x2fd5; - /* 0x02FD6 */ u8 field_0x2fd6; + /* 0x02FD6 */ u8 mSwordChangeWaitTimer; /* 0x02FD7 */ u8 field_0x2fd7; /* 0x02FD8 */ u8 field_0x2fd8; /* 0x02FD9 */ u8 field_0x2fd9[3]; - /* 0x02FDC */ u16 field_0x2fdc; + /* 0x02FDC */ u16 mEquipItem; /* 0x02FDE */ u16 field_0x2fde; /* 0x02FE0 */ u16 field_0x2fe0; /* 0x02FE2 */ s16 field_0x2fe2; @@ -2525,7 +2626,7 @@ private: /* 0x03088 */ s16 field_0x3088; /* 0x0308A */ s16 field_0x308a; /* 0x0308C */ s16 field_0x308c; - /* 0x0308E */ s16 field_0x308e; + /* 0x0308E */ s16 mFastShotTime; /* 0x03090 */ s16 field_0x3090; /* 0x03092 */ s16 field_0x3092; /* 0x03094 */ s16 field_0x3094; @@ -2565,7 +2666,7 @@ private: /* 0x030EE */ s16 field_0x30ee; /* 0x030F0 */ u16 field_0x30f0; /* 0x030F2 */ u8 field_0x30f2[2]; - /* 0x030F4 */ s16 field_0x30f4; + /* 0x030F4 */ s16 mSwordFlourishTimer; /* 0x030F6 */ s16 field_0x30f6; /* 0x030F8 */ s16 field_0x30f8; /* 0x030FA */ s16 field_0x30fa; @@ -2602,7 +2703,7 @@ private: /* 0x03172 */ u8 field_0x3172[2]; /* 0x03174 */ int field_0x3174; /* 0x03178 */ int field_0x3178; - /* 0x0317C */ dAttention_c* field_0x317c; + /* 0x0317C */ int field_0x317c; /* 0x03180 */ int field_0x3180; /* 0x03184 */ int field_0x3184; /* 0x03184 */ int field_0x3188; @@ -2719,7 +2820,7 @@ private: /* 0x03484 */ float field_0x3484; /* 0x03488 */ float field_0x3488; /* 0x0348C */ float field_0x348c; - /* 0x03490 */ float field_0x3490; + /* 0x03490 */ float mSearchBallScale; /* 0x03494 */ float field_0x3494; /* 0x03498 */ cXyz field_0x3498; /* 0x034A4 */ cXyz field_0x34a4; @@ -2756,7 +2857,7 @@ private: /* 0x0363C */ cXyz field_0x363c[4]; /* 0x0366C */ cXyz field_0x366c[4]; /* 0x0369C */ cXyz field_0x369c; - /* 0x036A8 */ cXyz field_0x36a8; + /* 0x036A8 */ cXyz mMagneBootsTopVec; /* 0x036B4 */ cXyz field_0x36b4; /* 0x036C0 */ cXyz field_0x36c0[4]; /* 0x036F0 */ cXyz field_0x36f0[4]; @@ -2787,14 +2888,17 @@ private: /* 0x03844 */ csXyz* mIronBallChainAngle; /* 0x03848 */ void* field_0x3848; /* 0x0384C */ float* field_0x384c; + /* 0x03850 */ u32 field_0x3850; + /* 0x03854 */ u32 field_0x3854; + /* 0x03858 */ u32 field_0x3858; }; struct daAlinkHIO_anm_c { - /* 0x00 */ s16 field_0x00; - /* 0x04 */ f32 field_0x04; - /* 0x08 */ f32 field_0x08; - /* 0x0C */ f32 field_0x0c; - /* 0x10 */ f32 field_0x10; + /* 0x00 */ s16 field_0x00; // end f? + /* 0x04 */ f32 field_0x04; // speed? + /* 0x08 */ f32 field_0x08; // start? + /* 0x0C */ f32 field_0x0c; // interpolation? + /* 0x10 */ f32 field_0x10; // CF? }; // size = 0x14 struct daAlinkHIO_basic_c1 { @@ -2901,29 +3005,419 @@ public: static daAlinkHIO_wlAutoJump_c1 const m; }; -class daHorse_c { +class daAlinkHIO_bomb_c1 { +public: + /* 0x00 */ s16 mExplodeTime; + /* 0x02 */ s16 mEnemyBombColorR; + /* 0x04 */ s16 mBombInsectLimitAngle; + /* 0x08 */ f32 mGravity; + /* 0x0C */ f32 mMaxFallSpeed; + /* 0x10 */ f32 mBoundRate; + /* 0x14 */ f32 mStopSpeedY; + /* 0x18 */ f32 mMaxSpeedY; + /* 0x1C */ f32 mEffScale; + /* 0x20 */ f32 mAtRadius; + /* 0x24 */ f32 mPokeBombTrackRate; + /* 0x28 */ f32 mWaterGravity; + /* 0x2C */ f32 mWaterMaxFallSpeed; + /* 0x30 */ f32 mThrowSpeedH; + /* 0x34 */ f32 mThrowSpeedV; + /* 0x38 */ f32 mWaterThrowSpeedH; + /* 0x3C */ f32 mWaterThrowSpeedV; + /* 0x40 */ f32 mWolfThrowSpeedH; + /* 0x44 */ f32 mWolfThrowSpeedV; + /* 0x48 */ f32 mExplodeWaterEffectLimit; +}; // Size: 0x4C + +class daAlinkHIO_bomb_c0 { +public: + static daAlinkHIO_bomb_c1 const m; +}; + +class daAlinkHIO_magneBoots_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mEquipAnm; + /* 0x14 */ f32 mInputFactor; + /* 0x18 */ f32 mFeetPositionRatio; + /* 0x1C */ f32 mWalkAnmSpeedMax; + /* 0x20 */ f32 mWalkAnmSpeedMin; + /* 0x24 */ f32 mWaterInputFactor; + /* 0x28 */ f32 mWaterStartWalkAnmRate; + /* 0x2C */ f32 mWaterWalkAnmRate; + /* 0x30 */ f32 mMaxMagneFlySpeed; + /* 0x34 */ f32 mMagneFlyAccelRate; + /* 0x38 */ f32 mWaterVelocityY; + /* 0x3C */ f32 mWaterVelocityX; + /* 0x40 */ f32 mWaterVelRateSword; + /* 0x44 */ f32 mZoraWaterInputFactor; + /* 0x48 */ f32 mZoraWaterAnmSpeed; +}; // Size: 0x4C + +class daAlinkHIO_magneBoots_c0 { +public: + static daAlinkHIO_magneBoots_c1 const m; +}; + +class daAlinkHIO_cut_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mEquipAnm; + /* 0x14 */ daAlinkHIO_anm_c mReleaseAnm; + /* 0x28 */ daAlinkHIO_anm_c mRecoilAnm; + /* 0x3C */ daAlinkHIO_anm_c mStabAnm; + /* 0x50 */ bool mForceHitCombo; + /* 0x52 */ s16 mComboDuration; + /* 0x54 */ s16 mBlurAlpha; + /* 0x56 */ s16 mNormalSwingDuration; + /* 0x58 */ s16 mDashBlurAlpha; + /* 0x5A */ s16 mUnkTime; // might be related to flourish + /* 0x5C */ s16 mFlourishTime; + /* 0x5E */ s16 mUnkBodyDownwards; // ? + /* 0x60 */ s16 mUnkBodyUpwards; // ? + /* 0x62 */ s16 mSpinSlashWait; // ? maybe related to wii? + /* 0x64 */ f32 mRecoilSpeed; + /* 0x68 */ f32 mRecoilDeceleration; + /* 0x6C */ f32 mFlourishAnmSpeed; + /* 0x70 */ f32 mFlourishEndAnmSpeed; + /* 0x74 */ f32 mSwordLength; + /* 0x78 */ f32 mSwordRadius; + /* 0x7C */ f32 mSwordLengthHorseback; + /* 0x80 */ f32 mSwordRadiusHorseback; + /* 0x84 */ f32 mRunCutLength; + /* 0x88 */ f32 mRunCutRadius; + /* 0x8C */ f32 mUnkReleaseASpeed; + /* 0x90 */ f32 mSwordLengthHorsebackFight; + /* 0x94 */ f32 mSwordRadiusHorsebackFight; + /* 0x98 */ f32 mFlourishControlStartFrame; +}; // Size: 0x9C + +class daAlinkHIO_cut_c0 { +public: + static daAlinkHIO_cut_c1 const m; +}; + +class daAlinkHIO_cutJump_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mCutAnm; + /* 0x14 */ daAlinkHIO_anm_c mLandAnm; + /* 0x28 */ f32 mBaseJumpSpeedH; + /* 0x2C */ f32 mBaseJumpSpeedV; + /* 0x30 */ f32 mAirJumpSpeedH; + /* 0x34 */ f32 mAirJumpSpeedV; + /* 0x38 */ f32 mStartAttackFrame; + /* 0x3C */ f32 mEndAttackFrame; + /* 0x40 */ f32 mJumpSpinDelay; +}; // Size: 0x44 + +class daAlinkHIO_cutJump_c0 { +public: + static daAlinkHIO_cutJump_c1 const m; +}; + +class daAlinkHIO_move_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mSlideAnm; + /* 0x14 */ s16 mMaxTurnAngle; + /* 0x16 */ s16 mMinTurnAngle; + /* 0x18 */ s16 mTurnAngleRate; + /* 0x1C */ f32 mWaitAnmSpeed; + /* 0x20 */ f32 mWalkAnmSpeed; + /* 0x24 */ f32 mRunAnmSpeed; + /* 0x28 */ f32 mWalkChangeRate; + /* 0x2C */ f32 mRunChangeRate; + /* 0x30 */ f32 mMaxSpeed; + /* 0x34 */ f32 mAcceleration; + /* 0x38 */ f32 mDeceleration; + /* 0x3C */ f32 mSlideThresholdSpeed; // speed needed to trigger a slide + /* 0x40 */ f32 mSlideSpeed; + /* 0x44 */ f32 mSlideDeceleration; + /* 0x48 */ f32 mFootPositionRatio; + /* 0x4C */ f32 mUnkInterpolation; + /* 0x50 */ f32 mMinWalkFrame; + /* 0x54 */ f32 mMinTiredWalkFrame; +}; // Size: 0x58 + +class daAlinkHIO_move_c0 { +public: + static daAlinkHIO_move_c1 const m; +}; + +class daAlinkHIO_sideStep_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mSideJumpAnm; + /* 0x14 */ daAlinkHIO_anm_c mSideLandAnm; + /* 0x28 */ daAlinkHIO_anm_c mBackJumpAnm; + /* 0x3C */ daAlinkHIO_anm_c mBackLandAnm; + /* 0x50 */ f32 mSideJumpSpeedH; + /* 0x54 */ f32 mSideJumpSpeedV; + /* 0x58 */ f32 mBackJumpSpeedH; + /* 0x5C */ f32 mBackJumpSpeedV; + /* 0x60 */ f32 mFallHeight; + /* 0x64 */ f32 mFallInterpolation; +}; // Size: 0x68 + +class daAlinkHIO_sideStep_c0 { +public: + static daAlinkHIO_sideStep_c1 const m; +}; + +class daAlinkHIO_atnMove_c1 { +public: + /* 0x00 */ s16 mMaxTurnAngle; + /* 0x02 */ s16 mMinTurnAngle; + /* 0x04 */ s16 mTurnAngleRate; + /* 0x08 */ f32 mWaitAnmSpeed; + /* 0x0C */ f32 mWalkAnmSpeed; + /* 0x10 */ f32 mRunAnmSpeed; + /* 0x14 */ f32 mWalkChangeRate; + /* 0x18 */ f32 mRunChangeRate; + /* 0x1C */ f32 mMaxSpeed; + /* 0x20 */ f32 mAcceleration; + /* 0x24 */ f32 mDeceleration; + /* 0x28 */ f32 mBackWalkAnmSpeed; + /* 0x2C */ f32 mBackRunAnmSpeed; + /* 0x30 */ f32 mBackWalkChangeRate; + /* 0x34 */ f32 mBackRunChangeRate; + /* 0x38 */ f32 mMaxBackwardsSpeed; + /* 0x3C */ f32 mBackAcceleration; + /* 0x40 */ f32 mBackDeceleration; + /* 0x44 */ f32 mMinWalkFrame; + /* 0x48 */ f32 mMinBackWalkFrame; + /* 0x4C */ f32 mWalkForwardAnmSpeed; + /* 0x50 */ f32 mRunForwardAnmSpeed; +}; // Size: 0x54 + +class daAlinkHIO_atnMove_c0 { +public: + static daAlinkHIO_atnMove_c1 const m; +}; + +class daAlinkHIO_wallMove_c1 { +public: + /* 0x00 */ f32 mMinAnmSpeed; + /* 0x04 */ f32 mMaxAnmSpeed; + /* 0x08 */ f32 mInterpolation; + /* 0x0C */ f32 mMinSpeed; + /* 0x10 */ f32 mMaxSpeed; +}; + +class daAlinkHIO_wallMove_c0 { +public: + static daAlinkHIO_wallMove_c1 const m; +}; + +class daAlinkHIO_turnMove_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mTurnAnm; + /* 0x14 */ s16 mTurnSpeedRate; + /* 0x16 */ s16 mMaxTurnSpeed; + /* 0x18 */ s16 mMinTurnSpeed; + /* 0x1A */ s16 mMaxHalfTurnSpeed; + /* 0x1C */ f32 mHalfTurnAnmSpeed; + /* 0x20 */ f32 mTwirlCutDelayF; + /* 0x24 */ f32 mSideRollAnmSpeed; + /* 0x28 */ f32 mSideRollSpeed; +}; // Size: 0x2C + +class daAlinkHIO_turnMove_c0 { +public: + static daAlinkHIO_turnMove_c1 const m; +}; + +class daAlinkHIO_slide_c1 { +public: + // most of these havent been verified yet + /* 0x00 */ daAlinkHIO_anm_c mForwardSlideAnm; + /* 0x14 */ daAlinkHIO_anm_c mBackwardSlideAnm; + /* 0x28 */ daAlinkHIO_anm_c mForwardLandAnm; // this and 0x3C might have names reversed? + /* 0x3C */ daAlinkHIO_anm_c mBackwardLandAnm; + /* 0x50 */ f32 mMaxSpeed; + /* 0x54 */ f32 mAcceleration; + /* 0x58 */ f32 mSlideAngle; + /* 0x5C */ f32 mClimbAngle; + /* 0x60 */ f32 mClimbAnmMinSpeed; + /* 0x64 */ f32 mMaxClimbSpeed; + /* 0x68 */ f32 mLavaFloorSlideAngle; // ? + /* 0x6C */ f32 mLavaFloorWeakSlideAngle; // ? + /* 0x70 */ f32 mLavaFloorWeakSlideSpeed; + /* 0x74 */ f32 mMaxClimbAnmSpeed; +}; // Size: 0x78 + +class daAlinkHIO_slide_c0 { +public: + static daAlinkHIO_slide_c1 const m; +}; + +class daAlinkHIO_frontRoll_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mRollAnm; + /* 0x14 */ daAlinkHIO_anm_c mCrashAnm; + /* 0x28 */ daAlinkHIO_anm_c mCrashHitAnm; // ? + /* 0x3C */ s16 mCrashAngleThreshold; + /* 0x3E */ s16 mTurnRate; + /* 0x40 */ s16 mTurnMaxAngle; + /* 0x42 */ s16 mTurnMinAngle; + /* 0x44 */ f32 mInitSpeed; + /* 0x48 */ f32 mSpeedRate; + /* 0x4C */ f32 mMinSpeed; + /* 0x50 */ f32 mCrashSpeedThreshold; + /* 0x54 */ f32 mCrashInitF; + /* 0x58 */ f32 mCrashEndF; + /* 0x5C */ f32 mCrashSpeedH; + /* 0x60 */ f32 mCrashSpeedV; + /* 0x64 */ f32 mBootsAttackInitF; + /* 0x68 */ f32 mBootsAttackEndF; + /* 0x6C */ f32 mBootsAttackRadius; +}; // Size: 0x70 + +class daAlinkHIO_frontRoll_c0 { +public: + static daAlinkHIO_frontRoll_c1 const m; +}; + +class daAlinkHIO_wlAttack_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mLandAnm; + /* 0x14 */ s16 mUnkTime; + /* 0x16 */ s16 mComboDuration; + /* 0x18 */ f32 mFallHeight; + /* 0x1C */ f32 mFallInterpolation; + /* 0x20 */ f32 mReadyInterpolation; + /* 0x24 */ f32 mAttackRange; + /* 0x28 */ f32 mJumpBackSpeedH; + /* 0x2C */ f32 mJumpBackSpeedV; + /* 0x30 */ f32 mJumpAttackSpeedV; + /* 0x34 */ f32 mJumpAttackSpeedH; +}; // Size: 0x38 + +class daAlinkHIO_wlAttack_c0 { +public: + static daAlinkHIO_wlAttack_c1 const m; +}; + +class daHorseRein_c { +private: + /* 0x00 */ cXyz* field_0x0[2]; + /* 0x08 */ int field_0x8[2]; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ cXyz field_0x1c; +}; // Size: 0x28 + +class daHorseFootData_c { +private: + /* 0x0 */ u8 field_0x0[0xE4]; +}; // Size: 0xE4 + +class daHorse_c : public fopAc_ac_c { public: + enum daHorse_ERFLG0 { + /* 0x010 */ MOVE_ACCEPT = 0x10, + /* 0x080 */ RIDE_RUN_FLG = 0x80, + /* 0x100 */ CUT_TURN_CANCEL = 0x100, + }; + + enum daHorse_RFLG0 { + /* 0x02 */ ENEMY_SEARCH = 2, + /* 0x08 */ LASH_DASH_START = 8, + /* 0x10 */ TURN_STAND = 0x10, + /* 0x40 */ TURN_STAND_CAMERA = 0x40, + }; + + enum daHorse_FLG0 { + /* 0x00000020 */ RODEO_LEFT = 0x20, + /* 0x00000040 */ RIDE_START_FLG = 0x40, + /* 0x00010000 */ PLAYER_BACK_RIDE_LASH = 0x10000, + /* 0x20000000 */ TURN_CANCEL_KEEP = 0x20000000, + /* 0x80000000 */ RODEO_MODE = 0x80000000 + }; + fopAc_ac_c* getZeldaActor(); + bool checkNoBombProc() const { + return field_0x16b4 == 0 || field_0x16b4 == 1; + } + bool checkResetStateFlg0(daHorse_RFLG0 flag) { return mResetStateFlg0 & flag; } + bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) { return mEndResetStateFlg0 & flag; } + bool checkStateFlg0(daHorse_FLG0 flag) { return mStateFlg0 & flag; } + private: - /* 0x0000 */ fopAc_ac_c mActor; - /* 0x0568 */ u8 field_0x568[0xCEC]; + /* 0x0568 */ u8 field_0x568[8]; + /* 0x0570 */ J3DModel* field_0x570; + /* 0x0574 */ void* field_0x574; + /* 0x0578 */ J3DFrameCtrl field_0x578; + /* 0x058C */ int field_0x58c; + /* 0x0590 */ u8 field_0x590[4]; + /* 0x0594 */ mDoExt_AnmRatioPack field_0x594[3]; + /* 0x05AC */ void* field_0x5ac; + /* 0x05B0 */ daPy_frameCtrl_c field_0x5b0[3]; + /* 0x05F8 */ u8 field_0x5f8[4]; + /* 0x05FC */ dBgS_AcchCir field_0x5fc[3]; + /* 0x06BC */ dBgS_Acch field_0x6bc; + /* 0x0894 */ dCcD_Stts field_0x894; + /* 0x08D0 */ dBgS_HorseLinChk field_0x8d0; + /* 0x0940 */ dCcD_Cyl field_0x940[3]; + /* 0x0CF4 */ dCcD_Cyl field_0xcf4; + /* 0x0E30 */ dCcD_Cyl field_0xe30; + /* 0x0F6C */ dCcD_Sph field_0xf6c; + /* 0x10A4 */ Z2CreatureRide field_0x10a4; + /* 0x1140 */ u8 field_0x1140[0x10]; + /* 0x1150 */ daHorseRein_c field_0x1150[3]; + /* 0x11C8 */ u8 field_0x11c8[0x40]; + /* 0x1208 */ dMsgFlow_c field_0x1208; /* 0x1254 */ daPy_actorKeep_c mZeldaActorKeep; + /* 0x125C */ u8 field_0x125c[0xC8]; + /* 0x1324 */ daHorseFootData_c mFootData[4]; + /* 0x16B4 */ u8 field_0x16b4; + /* 0x16B5 */ u8 field_0x16b5[3]; + /* 0x16B8 */ u8 field_0x16b8; + /* 0x16B9 */ u8 field_0x16b9[2]; + /* 0x16BB */ u8 mRodeoPointCnt; + /* 0x16BC */ u8 field_0x16bc[0x36]; + /* 0x16F2 */ s16 mAimNeckAngleY; + /* 0x16F4 */ u8 field_0x16f4[0xA]; + /* 0x16FC */ s16 mDemoMoveAngle; + /* 0x16FE */ u8 field_0x16fe[4]; + /* 0x1702 */ s16 field_0x1702; + /* 0x1704 */ u8 field_0x1704[2]; + /* 0x1706 */ s16 mCowHitAngle; + /* 0x1708 */ s16 mCowHit; + /* 0x170A */ u8 field_0x170a[0x1E]; + /* 0x1728 */ int field_0x1728; + /* 0x172C */ u8 field_0x172c[0x14]; + /* 0x1740 */ u32 field_0x1740; + /* 0x1744 */ u32 mStateFlg0; + /* 0x1748 */ u32 mResetStateFlg0; + /* 0x174C */ u32 mEndResetStateFlg0; + /* 0x1750 */ f32 mMorfFrame; + /* 0x1754 */ u8 field_0x1754[0x14]; + /* 0x1768 */ f32 field_0x1768; + /* 0x176C */ f32 field_0x176c; + /* 0x1770 */ f32 field_0x1770; + /* 0x1774 */ u8 field_0x1774[0x14]; + /* 0x1788 */ f32 mDemoStickR; + /* 0x178C */ f32 mNormalMaxSpeedF; + /* 0x1790 */ f32 mLashMaxSpeedF; + /* 0x1794 */ u8 field_0x1794[0x30]; + /* 0x17C4 */ cXyz mDemoPos0; }; class daMidna_c { public: enum daMidna_ERFLG0 { - NoServiceWait = 128, - ForcePanic = 8, + NO_SERVICE_WAIT = 128, + FORCE_PANIC = 8, + }; + enum daMidna_FLG1 { + FORCE_NORMAL_COLOR = 8, + FORCE_TIRED_COLOR = 4 }; - enum daMidna_FLG1 { ForceNormalColor = 8, ForceTiredColor = 4 }; - void onForcePanic(void); - u32 checkForceNormalColor(void) const; - u32 checkForceTiredColor(void) const; - bool checkMidnaTired(void); - void onNoServiceWait(void); + void onForcePanic(); + u32 checkForceNormalColor() const; + u32 checkForceTiredColor() const; + bool checkMidnaTired(); + void onNoServiceWait(); void onEndResetStateFlg0(daMidna_ERFLG0 pFlg) { mEndResetStateFlg0 |= pFlg; } u32 checkStateFlg1(daMidna_FLG1 pFlg) const { return mStateFlg1 & pFlg; } diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 5807f9b45c..786338348d 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -27,11 +27,18 @@ private: /* 0x48 */ ResTIMG* field_0x48; }; -struct daPy_boomerangMove_c { +class daPy_boomerangMove_c { +public: /* 8015E5B0 */ void initOffset(cXyz const*); /* 8015E654 */ void posMove(cXyz*, s16*, fopAc_ac_c*, s16); /* 8015E87C */ void bgCheckAfterOffset(cXyz const*); -}; + +private: + /* 0x0 */ u8 field_0x0; + /* 0x2 */ u16 field_0x2; + /* 0x4 */ f32 field_0x4; + /* 0x8 */ f32 field_0x8; +}; // Size: 0xC class daPy_anmHeap_c { public: @@ -66,14 +73,15 @@ private: class daPy_actorKeep_c { public: - daPy_actorKeep_c(void); - void setActor(void); + daPy_actorKeep_c(); + void setActor(); void setData(fopAc_ac_c*); - void clearData(void); + void clearData(); - u32 getID(void) const { return mID; } + u32 getID() const { return mID; } void setID(u32 id) { mID = id; } - fopAc_ac_c* getActor(void) const { return mActor; } + fopAc_ac_c* getActor() const { return mActor; } + fopAc_ac_c* getActorConst() const { return mActor; } private: u32 mID; @@ -84,8 +92,8 @@ class daPy_frameCtrl_c : public J3DFrameCtrl { public: /* 80140D24 */ ~daPy_frameCtrl_c(); /* 80140D80 */ daPy_frameCtrl_c(); - bool checkAnmEnd(void); - void updateFrame(void); + bool checkAnmEnd(); + void updateFrame(); void setFrameCtrl(u8, short, short, float, float); u16 getEndFlg() { return mEndFlg; } @@ -103,12 +111,17 @@ private: /* 0x16 */ u16 mNowSetFlg; }; +class Z2WolfHowlMgr; +class daBoomerang_c; + class daPy_demo_c { public: void setSpecialDemoType(); void setDemoType(u16 pType) { mDemoType = pType; } u16 getDemoType() const { return mDemoType; } + void setDemoMode(u32 mode) { mDemoMode = mode; } + u32 getDemoMode() const { return mDemoMode; } private: /* 0x00 */ u16 mDemoType; @@ -117,24 +130,32 @@ private: /* 0x06 */ s16 mParam2; /* 0x08 */ int mParam0; /* 0x0C */ int mParam1; - /* 0x10 */ int mDemoMode; + /* 0x10 */ u32 mDemoMode; /* 0x14 */ float mStick; /* 0x18 */ cXyz mDemoPos0; -}; // Size = 0x24 +}; // Size: 0x24 class daPy_py_c : public fopAc_ac_c { public: - /* 0x0568 */ u8 field_0x568[8]; - /* 0x0570 */ int mNoResetFlg0; - /* 0x0574 */ int mNoResetFlg1; - /* 0x0578 */ int mNoResetFlg2; - /* 0x057C */ int mNoResetFlg3; - /* 0x0580 */ int mResetFlg0; - /* 0x0584 */ int mResetFlg1; - /* 0x0588 */ int mEndResetFlg0; - /* 0x058C */ int mEndResetFlg1; - /* 0x0590 */ int mEndResetFlg2; - /* 0x0594 */ u8 field_0x594[0x10]; + /* 0x0568 */ u8 mCutType; + /* 0x0569 */ u8 mComboCutCount; + /* 0x056A */ u8 mSpecialMode; // maybe needs better name + /* 0x056B */ u8 field_0x56b; + /* 0x056C */ s16 mDamageTimer; + /* 0x056E */ u8 field_0x56e[2]; + /* 0x0570 */ u32 mNoResetFlg0; + /* 0x0574 */ u32 mNoResetFlg1; + /* 0x0578 */ u32 mNoResetFlg2; + /* 0x057C */ u32 mNoResetFlg3; + /* 0x0580 */ u32 mResetFlg0; + /* 0x0584 */ u32 mResetFlg1; + /* 0x0588 */ u32 mEndResetFlg0; + /* 0x058C */ u32 mEndResetFlg1; + /* 0x0590 */ u32 mEndResetFlg2; + /* 0x0594 */ f32 field_0x594; + /* 0x0598 */ u8 field_0x598[0x4]; + /* 0x059C */ s16 mLookAngleY; + /* 0x059E */ u8 field_0x59e[0x6]; /* 0x05A4 */ cXyz mHeadTopPos; /* 0x05B0 */ cXyz mItemPos; /* 0x05BC */ cXyz mSwordTopPos; @@ -147,23 +168,67 @@ public: public: enum daPy_FLG0 { - EquipHeavyBoots = 0x2000000, - MagneBootsOn = 0x1000, - UnkFrollCrashFlg2 = 0x10, - UnkFrollCrashFlg1 = 0x8 + EQUIP_HEAVY_BOOTS = 0x2000000, + FLG0_UNK_8000000 = 0x8000000, + FLG0_UNK_1000000 = 0x1000000, + UNDER_WATER_MOVEMENT = 0x800000, + FLG0_UNK_80000 = 0x80000, + FLG0_UNK_8000 = 0x8000, + MAGNE_BOOTS_ON = 0x1000, + FLG0_UNK_40 = 0x40, + UNK_F_ROLL_CRASH_2 = 0x10, + UNK_F_ROLL_CRASH_1 = 0x8 }; - enum daPy_FLG1 { Wolf = 0x2000000, ThrowDamage = 0x4000 }; - enum daPy_FLG2 { BoarSingleBattle = 0x1800000, UnkArmor = 0x80000, Unk = 1 }; - enum daPy_FLG3 { CopyRodThrowAfter = 0x40000 }; - enum daPy_ERFLG0 {}; - enum daPy_ERFLG1 { GanonFinish = 0x80000000, UnkForcePutPos = 0x2000 }; + enum daPy_FLG1 { IS_WOLF = 0x2000000, THROW_DAMAGE = 0x4000 }; + enum daPy_FLG2 { FLG2_UNK_4080000 = 0x4080000, FLG2_UNK_2080000 = 0x2080000, BOAR_SINGLE_BATTLE = 0x1800000, STATUS_WINDOW_DRAW = 0x400000, UNK_ARMOR = 0x80000, UNK_FLG2_2 = 2, UNK_DAPY_FLG2_1 = 1 }; + enum daPy_FLG3 { FLG3_UNK_100000 = 0x100000, COPY_ROD_THROW_AFTER = 0x40000 }; + enum daPy_ERFLG0 { ERFLG0_UNK_8000000 = 0x8000000, ERFLG0_UNK_1000000 = 0x1000000, ERFLG0_UNK_100000 = 0x100000, }; + enum daPy_ERFLG1 { GANON_FINISH = 0x80000000, UNK_FORCE_PUT_POS = 0x2000 }; enum daPy_ERFLG2 {}; - enum daPy_RFLG0 {}; + enum daPy_RFLG0 { + RFLG0_UNK_8000000 = 0x8000000, + RFLG0_UNK_80 = 0x80, + RFLG0_UNK_40 = 0x40, + RFLG0_UNK_2 = 0x2, + }; + + enum { + /* 0x01 */ SMODE_SUMO_READY = 1, + /* 0x25 */ SMODE_SUMO_LOSE = 37, + /* 0x2A */ SMODE_GOAT_STOP = 42, + /* 0x2B */ SMODE_GORON_THROW, + /* 0x2C */ SMODE_CARGO_CARRY, + }; + + enum CutType { + /* 0x01 */ TYPE_CUT_VERTICAL = 1, + /* 0x02 */ TYPE_CUT_STAB, + /* 0x03 */ TYPE_CUT_SWEEP, + /* 0x04 */ TYPE_CUT_HORIZONTAL, + /* 0x05 */ TYPE_CUT_HEAD, // Helm Splitter + /* 0x06 */ TYPE_CUT_LEFT_SWEEP_FINISH, + /* 0x07 */ TYPE_CUT_DOWN_FINISH, + /* 0x08 */ TYPE_CUT_TURN_RIGHT, + /* 0x0A */ TYPE_CUT_JUMP = 10, + /* 0x10 */ TYPE_CUT_AIR = 0x10, + /* 0x12 */ TYPE_CUT_LARGE_JUMP_INIT = 0x12, + /* 0x13 */ TYPE_CUT_LARGE_JUMP, + /* 0x14 */ TYPE_CUT_LARGE_JUMP_FINISH, + /* 0x15 */ TYPE_CUT_RIGHT_SWEEP_FINISH, + /* 0x16 */ TYPE_CUT_TURN_LEFT, + /* 0x17 */ TYPE_CUT_LARGE_TURN_LEFT, + /* 0x18 */ TYPE_CUT_LARGE_TURN_RIGHT, + /* 0x1A */ TYPE_CUT_FAST_MOVE = 0x1A, + /* 0x1E */ TYPE_CUT_TWIRL = 0x1E, // Back Slice + /* 0x1F */ TYPE_CUT_FAST, + /* 0x20 */ TYPE_CUT_STAB_FINISH, + /* 0x21 */ TYPE_CUT_STAB_COMBO, + }; void setParamData(int, int, int, int); int checkFishingRodItem(int); - void checkBombItem(int); - void checkBottleItem(int); + static BOOL checkBombItem(int); + static BOOL checkBottleItem(int); void checkDrinkBottleItem(int); static BOOL checkOilBottleItem(int); static BOOL checkOpenBottleItem(int); @@ -171,7 +236,7 @@ public: static BOOL checkHookshotItem(int); static BOOL checkTradeItem(int); static BOOL checkDungeonWarpItem(int); - BOOL checkMasterSwordEquip(); + static BOOL checkMasterSwordEquip(); void checkWoodShieldEquip(); f32 getAttentionOffsetY(); s16 checkNowWolfEyeUp(); @@ -183,105 +248,104 @@ public: void linkGrabSubjectNoDraw(fopAc_ac_c*); void wolfGrabSubjectNoDraw(fopAc_ac_c*); void checkRoomRestartStart(); - void checkCarryStartLightBallA(); - void checkCarryStartLightBallB(); + static u32 checkCarryStartLightBallA(); + static u32 checkCarryStartLightBallB(); float getSpinnerRideSpeed() const; void checkSpinnerReflectEffect(); void checkBoomerangCharge(); bool checkBoomerangChargeTime(); - void getThrowBoomerangActor(); + static daBoomerang_c* getThrowBoomerangActor(); void cancelBoomerangLockActor(fopAc_ac_c*); void setPlayerDamage(int, int); void setMidnaMotionNum(int); void setMidnaFaceNum(int); int checkNoResetFlg0(daPy_FLG0) const; int checkEquipHeavyBoots() const; - int checkBoarSingleBattle(void) const; + int checkBoarSingleBattle() const; int checkEndResetFlg0(daPy_ERFLG0) const; void onNoResetFlg2(daPy_py_c::daPy_FLG2); void offNoResetFlg0(daPy_py_c::daPy_FLG0); int checkEndResetFlg2(daPy_py_c::daPy_ERFLG2) const; bool getSumouMode() const; int checkNoResetFlg3(daPy_py_c::daPy_FLG3) const; - void checkShieldGet(); + BOOL checkShieldGet(); void onNoResetFlg0(daPy_py_c::daPy_FLG0); int checkEndResetFlg1(daPy_py_c::daPy_ERFLG1) const; void offNoResetFlg1(daPy_py_c::daPy_FLG1); void offNoResetFlg2(daPy_py_c::daPy_FLG2); int checkWolf() const; - void checkSwordGet(); + BOOL checkSwordGet(); int checkResetFlg0(daPy_py_c::daPy_RFLG0) const; int checkNoResetFlg2(daPy_py_c::daPy_FLG2) const; int checkMagneBootsOn() const; - virtual void unk(); - virtual bool getMidnaAtnPos(void) const; + virtual cXyz* getMidnaAtnPos() const; virtual void setMidnaMsgNum(fopAc_ac_c*, u16); - virtual Mtx* getModelMtx(void); - virtual Mtx* getInvMtx(void); - virtual cXyz* getShadowTalkAtnPos(void); - virtual float getGroundY(); - virtual Mtx* getLeftItemMatrix(void); - virtual Mtx* getRightItemMatrix(void); - virtual Mtx* getLeftHandMatrix(void); - virtual Mtx* getRightHandMatrix(void); - virtual Mtx* getLinkBackBone1Matrix(void); - virtual Mtx* getWolfMouthMatrix(void); - virtual Mtx* getWolfBackbone2Matrix(void); - virtual bool getBottleMtx(void); - virtual bool checkPlayerGuard(void) const; - virtual bool checkPlayerFly() const; - virtual bool checkFrontRoll() const; - virtual bool checkWolfDash() const; - virtual bool checkAutoJump(void) const; - virtual bool checkSideStep(void) const; - virtual bool checkWolfTriggerJump(void) const; - virtual bool checkGuardBreakMode(void) const; - virtual bool checkLv3Slide(void) const; - virtual bool checkWolfHowlDemoMode(void) const; - virtual bool checkChainBlockPushPull(void); - virtual bool checkElecDamage(void) const; - virtual bool checkEmptyBottleSwing(void) const; - virtual bool checkBottleSwingMode(void) const; - virtual bool checkHawkWait(void) const; - virtual bool checkGoatThrow(void) const; - virtual bool checkGoatThrowAfter(void) const; - virtual bool checkWolfTagLockJump(void) const; - virtual bool checkWolfTagLockJumpLand(void) const; - virtual bool checkWolfRope(void); - virtual bool checkWolfRopeHang(void) const; - virtual bool checkRollJump(void) const; - virtual bool checkGoronRideWait(void) const; - virtual bool checkWolfChain(void) const; - virtual bool checkWolfWait(void) const; - virtual bool checkWolfJumpAttack(void) const; - virtual bool checkWolfRSit(void) const; - virtual bool checkBubbleFly(void) const; - virtual bool checkBottleDrinkEnd(void) const; - virtual bool checkWolfDig(void) const; - virtual bool checkCutCharge(void) const; - virtual bool checkCutTurnCharge(void) const; - virtual bool checkCutLargeJumpCharge(void) const; + virtual MtxP getModelMtx(); + virtual MtxP getInvMtx(); + virtual cXyz* getShadowTalkAtnPos(); + virtual f32 getGroundY(); + virtual MtxP getLeftItemMatrix(); + virtual MtxP getRightItemMatrix(); + virtual MtxP getLeftHandMatrix(); + virtual MtxP getRightHandMatrix(); + virtual MtxP getLinkBackBone1Matrix(); + virtual MtxP getWolfMouthMatrix(); + virtual MtxP getWolfBackbone2Matrix(); + virtual MtxP getBottleMtx(); + virtual BOOL checkPlayerGuard() const; + virtual u32 checkPlayerFly() const; + virtual BOOL checkFrontRoll() const; + virtual BOOL checkWolfDash() const; + virtual BOOL checkAutoJump() const; + virtual bool checkSideStep() const; + virtual bool checkWolfTriggerJump() const; + virtual BOOL checkGuardBreakMode() const; + virtual bool checkLv3Slide() const; + virtual bool checkWolfHowlDemoMode() const; + virtual bool checkChainBlockPushPull(); + virtual BOOL checkElecDamage() const; + virtual BOOL checkEmptyBottleSwing() const; + virtual BOOL checkBottleSwingMode() const; + virtual BOOL checkHawkWait() const; + virtual BOOL checkGoatThrow() const; + virtual BOOL checkGoatThrowAfter() const; + virtual BOOL checkWolfTagLockJump() const; + virtual BOOL checkWolfTagLockJumpLand() const; + virtual bool checkWolfRope(); + virtual BOOL checkWolfRopeHang() const; + virtual BOOL checkRollJump() const; + virtual BOOL checkGoronRideWait() const; + virtual BOOL checkWolfChain() const; + virtual BOOL checkWolfWait() const; + virtual BOOL checkWolfJumpAttack() const; + virtual BOOL checkWolfRSit() const; + virtual bool checkBubbleFly() const; + virtual BOOL checkBottleDrinkEnd() const; + virtual BOOL checkWolfDig() const; + virtual BOOL checkCutCharge() const; + virtual BOOL checkCutTurnCharge() const; + virtual BOOL checkCutLargeJumpCharge() const; virtual bool getBokoFlamePos(cXyz*); - virtual bool checkComboCutTurn(void) const; - virtual bool checkClimbMove(void) const; - virtual bool checkGrassWhistle(void) const; - virtual bool checkBoarRun(void) const; - virtual bool checkFmChainPut(void) const; - virtual bool checkHorseElecDamage(void) const; - virtual float getBaseAnimeFrameRate(void) const; - virtual float getBaseAnimeFrame(void) const; + virtual BOOL checkComboCutTurn() const; + virtual BOOL checkClimbMove() const; + virtual BOOL checkGrassWhistle() const; + virtual BOOL checkBoarRun() const; + virtual bool checkFmChainPut() const; + virtual bool checkHorseElecDamage() const; + virtual float getBaseAnimeFrameRate() const; + virtual float getBaseAnimeFrame() const; virtual void setAnimeFrame(float); virtual bool checkWolfLock(fopAc_ac_c*) const; virtual bool cancelWolfLock(fopAc_ac_c*); - virtual bool getAtnActorID(void) const; - virtual s32 getItemID(void) const; - virtual bool getGrabActorID(void) const; + virtual s32 getAtnActorID() const; + virtual s32 getItemID() const; + virtual s32 getGrabActorID() const; virtual bool exchangeGrabActor(fopAc_ac_c*); virtual bool setForceGrab(fopAc_ac_c*, int, int); virtual void setForcePutPos(cXyz const&); - virtual bool checkPlayerNoDraw(void); - virtual bool checkRopeTag(void); + virtual bool checkPlayerNoDraw(); + virtual bool checkRopeTag(); virtual void voiceStart(u32); virtual void seStartOnlyReverb(u32); virtual void seStartOnlyReverbLevel(u32); @@ -289,14 +353,14 @@ public: virtual void setGrabCollisionOffset(float, float, cBgS_PolyInfo*); virtual void onMagneGrab(float, float); virtual void onFrollCrashFlg(u8, int); - virtual bool getModelJointMtx(u16); - virtual bool getHeadMtx(void); + virtual MtxP getModelJointMtx(u16); + virtual MtxP getHeadMtx(); virtual bool setHookshotCarryOffset(unsigned int, cXyz const*); - // virtual void checkCutJumpCancelTurn() const; - virtual bool checkIronBallReturn(void) const; - virtual bool checkIronBallGroundStop(void) const; - virtual bool checkSingleBoarBattleSecondBowReady(void) const; - virtual bool checkPointSubWindowMode(void) const; + virtual BOOL checkCutJumpCancelTurn() const; + virtual bool checkIronBallReturn() const; + virtual bool checkIronBallGroundStop() const; + virtual BOOL checkSingleBoarBattleSecondBowReady() const; + virtual bool checkPointSubWindowMode() const; virtual void setClothesChange(int); virtual void setPlayerPosAndAngle(float (*)[4]); virtual void setPlayerPosAndAngle(cXyz const*, csXyz const*); @@ -306,27 +370,27 @@ public: virtual bool setRollJump(float, float, short); virtual void playerStartCollisionSE(u32, u32); virtual void changeTextureAnime(u16, u16, int); - virtual void cancelChangeTextureAnime(void); - virtual void cancelDungeonWarpReadyNeck(void); + virtual void cancelChangeTextureAnime(); + virtual void cancelDungeonWarpReadyNeck(); virtual void onSceneChangeArea(u8, u8, fopAc_ac_c*); virtual void onSceneChangeAreaJump(u8, u8, fopAc_ac_c*); virtual void onSceneChangeDead(u8, int); - virtual bool checkHorseRide() const; - virtual bool checkBoarRide() const; - virtual bool checkCanoeRide() const; - virtual bool checkBoardRide() const; + virtual u32 checkHorseRide() const; + virtual u32 checkBoarRide() const; + virtual u32 checkCanoeRide() const; + virtual u32 checkBoardRide() const; virtual u32 checkSpinnerRide() const; - virtual bool getSpinnerActor(void); - virtual bool checkHorseRideNotReady(void) const; - virtual bool checkArrowChargeEnd(void) const; - virtual void getSearchBallScale(void) const; - virtual bool checkFastShotTime(void); - virtual bool checkNoEquipItem(void) const; - virtual bool checkFireMaterial(void) const; + virtual fopAc_ac_c* getSpinnerActor(); + virtual BOOL checkHorseRideNotReady() const; + virtual bool checkArrowChargeEnd() const; + virtual f32 getSearchBallScale() const; + virtual s16 checkFastShotTime(); + virtual bool checkNoEquipItem() const; + virtual bool checkFireMaterial() const; virtual bool checkKandelaarSwing(int) const; - virtual bool getBoardCutTurnOffsetAngleY(void) const; - virtual cXyz* getMagneHitPos(void); - virtual cXyz* getMagneBootsTopVec(void); + virtual s16 getBoardCutTurnOffsetAngleY() const; + virtual cXyz* getMagneHitPos(); + virtual cXyz* getMagneBootsTopVec(); virtual bool getKandelaarFlamePos(); virtual bool checkUseKandelaar(int); virtual void setDkCaught(fopAc_ac_c*); @@ -337,53 +401,53 @@ public: virtual void setWolfEnemyHangBiteAngle(short); virtual void setKandelaarMtx(float (*)[4], int, int); virtual bool getStickAngleFromPlayerShape(short*) const; - virtual bool checkSpinnerPathMove(void); - virtual bool checkSpinnerTriggerAttack(void); - virtual void onSpinnerPathForceRemove(void); - virtual bool getIronBallBgHit(void) const; - virtual bool getIronBallCenterPos(void); - virtual bool checkCanoeFishingGetLeft(void) const; - virtual bool checkCanoeFishingGetRight(void) const; - virtual bool checkBeeChildDrink(void) const; - virtual void skipPortalObjWarp(void); + virtual bool checkSpinnerPathMove(); + virtual bool checkSpinnerTriggerAttack(); + virtual void onSpinnerPathForceRemove(); + virtual bool getIronBallBgHit() const; + virtual bool getIronBallCenterPos(); + virtual bool checkCanoeFishingGetLeft() const; + virtual bool checkCanoeFishingGetRight() const; + virtual u8 checkBeeChildDrink() const; + virtual void skipPortalObjWarp(); virtual bool checkTreasureRupeeReturn(int) const; virtual void setSumouReady(fopAc_ac_c*); virtual bool checkAcceptDungeonWarpAlink(int); - virtual bool getSumouCounter(void) const; - virtual bool checkSumouWithstand(void) const; - virtual void cancelGoronThrowEvent(void); + virtual s16 getSumouCounter() const; + virtual s16 checkSumouWithstand() const; + virtual void cancelGoronThrowEvent(); virtual void setSumouGraspCancelCount(int); virtual void setSumouPushBackDirection(short); - virtual void setSumouLoseHeadUp(void); - virtual s16 getGiantPuzzleAimAngle(void) const; + virtual void setSumouLoseHeadUp(); + virtual s16 getGiantPuzzleAimAngle() const; virtual void setGoronSideMove(fopAc_ac_c*); virtual void setCargoCarry(fopAc_ac_c*); - virtual bool getDpdFarFlg(void) const; - virtual bool getHookshotTopPos(void); - virtual bool checkHookshotReturnMode(void) const; - virtual bool checkHookshotShootReturnMode(void) const; - virtual bool checkOctaIealHang(void) const; - virtual void cancelOctaIealHang(void); - virtual void cancelDragonHangBackJump(void); - virtual void setOctaIealWildHang(void); - virtual bool checkDragonHangRide(void) const; + virtual bool getDpdFarFlg() const; + virtual bool getHookshotTopPos(); + virtual bool checkHookshotReturnMode() const; + virtual bool checkHookshotShootReturnMode() const; + virtual bool checkOctaIealHang() const; + virtual void cancelOctaIealHang(); + virtual void cancelDragonHangBackJump(); + virtual void setOctaIealWildHang(); + virtual bool checkDragonHangRide() const; virtual void changeDragonActor(fopAc_ac_c*); - virtual bool getClothesChangeWaitTimer(void) const; - virtual bool getShieldChangeWaitTimer(void) const; - virtual bool getSwordChangeWaitTimer(void) const; - virtual bool checkMetamorphose(void) const; - virtual bool checkWolfDownAttackPullOut(void) const; - virtual bool checkBootsOrArmorHeavy(void) const; - virtual s32 getBottleOpenAppearItem(void) const; - virtual bool checkItemSwordEquip(void) const; - virtual float getSinkShapeOffset(void) const; - virtual bool checkSinkDead(void) const; - virtual bool checkHorseStart(void); - virtual bool getWolfHowlMgrP(void); - virtual bool checkWolfHowlSuccessAnime(void) const; - virtual bool checkCopyRodTopUse(void); - virtual bool checkCopyRodEquip(void) const; - virtual bool checkCutJumpMode(void) const; + virtual u8 getClothesChangeWaitTimer() const; + virtual u8 getShieldChangeWaitTimer() const; + virtual u8 getSwordChangeWaitTimer() const; + virtual BOOL checkMetamorphose() const; + virtual BOOL checkWolfDownAttackPullOut() const; + virtual BOOL checkBootsOrArmorHeavy() const; + virtual s32 getBottleOpenAppearItem() const; + virtual bool checkItemSwordEquip() const; + virtual float getSinkShapeOffset() const; + virtual BOOL checkSinkDead() const; + virtual BOOL checkHorseStart(); + virtual Z2WolfHowlMgr* getWolfHowlMgrP(); + virtual BOOL checkWolfHowlSuccessAnime() const; + virtual bool checkCopyRodTopUse(); + virtual bool checkCopyRodEquip() const; + virtual BOOL checkCutJumpMode() const; bool getSumouCameraMode() const { bool sumouCameraMode = false; @@ -393,18 +457,37 @@ public: return sumouCameraMode; } + bool checkStatusWindowDraw() { return i_checkNoResetFlg2(STATUS_WINDOW_DRAW); } + // some functions use these function as an inline // is there a better way to handle this? int i_checkNoResetFlg0(daPy_FLG0 pFlag) const { return mNoResetFlg0 & pFlag; } int i_checkNoResetFlg1(daPy_FLG1 pFlag) const { return mNoResetFlg1 & pFlag; } int i_checkNoResetFlg2(daPy_FLG2 pFlag) const { return mNoResetFlg2 & pFlag; } + int i_checkNoResetFlg3(daPy_FLG3 pFlag) const { return mNoResetFlg3 & pFlag; } void i_onNoResetFlg0(int pFlg) { mNoResetFlg0 |= pFlg; } + void i_onNoResetFlg1(int pFlg) { mNoResetFlg1 |= pFlg; } + void i_onNoResetFlg2(int pFlg) { mNoResetFlg2 |= pFlg; } void i_onNoResetFlg3(int pFlg) { mNoResetFlg3 |= pFlg; } + void i_offNoResetFlg0(int pFlg) { mNoResetFlg0 &= ~pFlg; } void i_offNoResetFlg3(int pFlg) { mNoResetFlg3 &= ~pFlg; } + void i_offResetFlg0(int flag) { mResetFlg0 &= ~flag; } + void i_onResetFlg0(int flag) { mResetFlg0 |= flag; } + void i_onResetFlg1(int flag) { mResetFlg1 |= flag; } + void i_onEndResetFlg0(int flag) { mEndResetFlg0 |= flag; } + int i_checkResetFlg0(daPy_py_c::daPy_RFLG0 flag) const { return mResetFlg0 & flag; } + int i_checkEndResetFlg0(daPy_py_c::daPy_ERFLG0 flag) const { return mEndResetFlg0 & flag; } void i_onEndResetFlg1(daPy_ERFLG1 pFlg) { mEndResetFlg1 |= pFlg; } - int i_checkWolf() { return i_checkNoResetFlg1(Wolf); } - BOOL i_checkEquipHeavyBoots() const { return i_checkNoResetFlg0(EquipHeavyBoots); } + int i_checkWolf() const { return i_checkNoResetFlg1(IS_WOLF); } + BOOL i_checkEquipHeavyBoots() const { return i_checkNoResetFlg0(EQUIP_HEAVY_BOOTS); } + BOOL i_checkMagneBootsOn() const { return i_checkNoResetFlg0(MAGNE_BOOTS_ON); } + + inline u32 getLastSceneMode(); + inline bool checkWoodSwordEquip(); + inline BOOL i_checkSwordGet(); + inline bool i_checkShieldGet() const; inline BOOL checkNowWolf(); + inline bool checkZoraWearFlg() const; static u8 m_midnaActor[4]; }; diff --git a/include/d/cc/d_cc_d.h b/include/d/cc/d_cc_d.h index 0c86f48f73..447f8bee02 100644 --- a/include/d/cc/d_cc_d.h +++ b/include/d/cc/d_cc_d.h @@ -57,6 +57,7 @@ public: /* 80083830 */ void Move(); /* 8008523C */ virtual ~dCcD_GStts() {} void ClrTg() { mTg = 0; } + void SetAtApid(unsigned int id) { mAtApid = id; } // private: /* 0x04 */ u8 mAt; @@ -108,7 +109,11 @@ public: u32 GetGFlag() const { return mGFlag; } u32 GetRPrm() const { return mRPrm; } u32 MskSPrm(u32 mask) const { return mGFlag & mask; } + u32 MskRPrm(u32 mask) const { return mRPrm & mask; } bool ChkSPrm(u32 mask) const { return MskSPrm(mask); } + void OnSPrm(u32 flag) { mGFlag |= flag; } + void OffSPrm(u32 flag) { mGFlag &= ~flag; } + bool ChkRPrm(u32 flag) const { return MskRPrm(flag); } }; // Size = 0x1C class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase { @@ -117,6 +122,9 @@ public: /* 80083C44 */ virtual ~dCcD_GObjAt() {} void SetVec(cXyz& vec) { mVec = vec; } cXyz& GetVec() { return mVec; } + void SetHitMark(u8 mark) { mHitMark = mark; } + void SetSe(u8 se) { mSe = se; } + void SetMtrl(u8 mtrl) { mMtrl = mtrl; } // private: /* 0x1C */ u8 mSe; @@ -156,7 +164,7 @@ public: /* 800840E4 */ virtual ~dCcD_GObjInf(); /* 80084268 */ cCcD_GObjInf* GetGObjInf(); /* 8008426C */ virtual void ClrAtHit(); - /* 800842C0 */ s32 ChkAtHit(); + /* 800842C0 */ u32 ChkAtHit(); /* 80084318 */ void ResetAtHit(); /* 80084358 */ cCcD_Obj* GetAtHitObj(); /* 800843A8 */ cCcD_GObjInf* GetAtHitGObj(); @@ -176,6 +184,15 @@ public: void SetAtVec(cXyz& vec) { mGObjAt.SetVec(vec); } bool ChkAtNoMass() const { return mGObjAt.ChkSPrm(8); } + void OnAtNoHitMark() { mGObjAt.OnSPrm(2); } + void OffAtNoHitMark() { mGObjAt.OffSPrm(2); } + void OnAtNoConHit() { mGObjAt.OnSPrm(1); } + void OffAtNoConHit() { mGObjAt.OffSPrm(1); } + void SetAtHitMark(u8 mark) { mGObjAt.SetHitMark(mark); } + void SetAtSe(u8 se) { mGObjAt.SetSe(se); } + void SetAtMtrl(u8 mtrl) { mGObjAt.SetMtrl(mtrl); } + fopAc_ac_c* GetAtHitAc() { return mGObjAt.GetAc(); } + bool ChkAtShieldHit() { return mGObjAt.ChkRPrm(1); } static u32 const m_hitSeID[24]; @@ -224,6 +241,10 @@ public: dCcD_Tri() {} }; +enum dCcG_At_Spl { + /* 0x1 */ dCcG_At_Spl_UNK_01 = 1, +}; + dCcD_GObjInf* dCcD_GetGObjInf(cCcD_Obj* param_0); #endif /* D_CC_D_CC_D_H */ diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 058e907b88..83b3fd5380 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -176,6 +176,15 @@ public: void* getPlayerPtr(int ptrIdx) { return mPlayerPtr[ptrIdx]; } JKRArchive* getMain2DArchive() { return mMain2DArchive; } J2DGrafContext* getCurrentGrafPort() { return mCurrentGrafPort; } + dVibration_c& getVibration() { return mVibration; } + void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] |= flag; } + BOOL checkCameraAttentionStatus(int i, u32 flag) { return mCameraInfo[i].mCameraAttentionStatus & flag; } + s8 getPlayerCameraID(int i) { return mPlayerCameraID[i]; } + void set3DStatus(u8 status, u8 direction, u8 flag) { + m3DStatus = status; + m3DDirection = direction; + m3DSetFlag = flag; + } public: /* 0x00000 */ dBgS mDBgS; @@ -384,8 +393,8 @@ public: /* 0x04FD4 */ fopAc_ac_c* mMesgCamInfoActor8; /* 0x04FD8 */ fopAc_ac_c* mMesgCamInfoActor9; /* 0x04FDC */ fopAc_ac_c* mMesgCamInfoActor10; - /* 0x04FE0 */ int mPlayerStatus; - /* 0x04FE4 */ u8 field_0x4fe4[0x14]; + /* 0x04FE0 */ u32 mPlayerStatus[2]; + /* 0x04FE8 */ u8 field_0x4fe8[0x10]; /* 0x04FF8 */ __d_timer_info_c mTimerInfo; /* 0x0500C */ dDlst_window_c* mCurrentWindow; /* 0x05010 */ void* mCurrentView; @@ -451,6 +460,8 @@ void dComIfGs_setSelectEquipSword(u8); void dComIfGs_setSelectEquipShield(u8); void* dComIfG_getStageRes(char const*); void dComLbG_PhaseHandler(request_of_phase_process_class*, int (**param_1)(void*), void*); +void dComIfGp_addSelectItemNum(int, s16); +BOOL dComIfGs_isOneZoneSwitch(int, int); inline void dComIfGp_setRStatus(u8 status, u8 flag) { g_dComIfG_gameInfo.play.setRStatus(status, flag); @@ -1019,4 +1030,40 @@ inline dBgS& dComIfG_Bgsp() { return g_dComIfG_gameInfo.play.mDBgS; } +inline s16 dComIfGs_getStartPoint() { + return g_dComIfG_gameInfo.info.getRestart().getStartPoint(); +} + +inline dVibration_c& dComIfGp_getVibration() { + return g_dComIfG_gameInfo.play.getVibration(); +} + +inline void dComIfGp_setPlayerStatus0(int param_0, u32 flag) { + g_dComIfG_gameInfo.play.setPlayerStatus(param_0, 0, flag); +} + +inline void dComIfGp_setPlayerStatus1(int param_0, u32 flag) { + g_dComIfG_gameInfo.play.setPlayerStatus(param_0, 1, flag); +} + +inline dEvent_manager_c* dComIfGp_getPEvtManager() { + return &g_dComIfG_gameInfo.play.getEvtManager(); +} + +inline void dComIfGp_evmng_cutEnd(int param_0) { + dComIfGp_getPEvtManager()->cutEnd(param_0); +} + +inline BOOL dComIfGp_checkCameraAttentionStatus(int i, u32 flag) { + return g_dComIfG_gameInfo.play.checkCameraAttentionStatus(i, flag); +} + +inline void dComIfGp_set3DStatus(u8 status, u8 direction, u8 flag) { + g_dComIfG_gameInfo.play.set3DStatus(status, direction, flag); +} + +inline u8 dComIfGs_getLastSceneMode() { + return g_dComIfG_gameInfo.info.getRestart().getLastMode(); +} + #endif /* D_COM_D_COM_INF_GAME_H */ diff --git a/include/d/d_attention.h b/include/d/d_attention.h index 0edb7ab71b..ad270ddfb0 100644 --- a/include/d/d_attention.h +++ b/include/d/d_attention.h @@ -148,6 +148,16 @@ public: /* 80070178 */ virtual void execute(u16, J3DTransformInfo*); }; +struct dist_entry { + f32 field_0x0; + f32 field_0x4; + f32 field_0x8; + f32 field_0xc; + f32 field_0x10; + f32 field_0x14; + u32 field_0x18; +}; // Size: 0x1C + class dAttention_c { public: dAttention_c() {} @@ -185,14 +195,22 @@ public: /* 800736CC */ void LockonTargetPId(s32); /* 80073734 */ void ActionTarget(s32); /* 8007378C */ void CheckObjectTarget(s32); - /* 800737E4 */ void LockonTruth(); + /* 800737E4 */ bool LockonTruth(); /* 80073838 */ void checkDistance(cXyz*, s16, cXyz*, f32, f32, f32, f32); dAttCatch_c& getCatghTarget() { return mCatghTarget; } + bool chkFlag(u32 flag) { return mFlags & flag; } + bool Lockon() { + bool chk = true; + if (!LockonTruth() && !chkFlag(0x20000000)) { + chk = false; + } + return chk; + } static u8 loc_type_tbl[12]; static u8 act_type_tbl[20]; - static u8 dist_table[6552]; + static dist_entry dist_table[234]; static u32 loc_type_num; static u32 act_type_num; static u32 chk_type_tbl; diff --git a/include/d/d_bomb.h b/include/d/d_bomb.h index 7a9b57caee..cc3d612a85 100644 --- a/include/d/d_bomb.h +++ b/include/d/d_bomb.h @@ -41,6 +41,14 @@ public: bool checkFlowerBombWait(fopAc_ac_c*); bool checkWaterBomb(fopAc_ac_c*); bool checkInsectBombMove(fopAc_ac_c*); + + static fopAc_ac_c* createNormalBombPlayer(cXyz* p_pos) { + return (fopAc_ac_c*)fopAcM_fastCreate(0x221, 8, p_pos, -1, NULL, NULL, -1, NULL, NULL); + } + + static fopAc_ac_c* createWaterBombPlayer(cXyz* p_pos) { + return (fopAc_ac_c*)fopAcM_fastCreate(0x221, 9, p_pos, -1, NULL, NULL, -1, NULL, NULL); + } }; #endif /* D_D_BOMB_H */ diff --git a/include/d/d_jnt_col.h b/include/d/d_jnt_col.h index 2b88c55ed3..71d566c05d 100644 --- a/include/d/d_jnt_col.h +++ b/include/d/d_jnt_col.h @@ -20,6 +20,8 @@ public: /* 80036C44 */ void getHitmarkPosAndAngle(cXyz const*, csXyz const*, cXyz*, csXyz*, int) const; /* 80036FA8 */ void setArrowPosAndAngle(cXyz const*, cXyz const*, int, cXyz*, csXyz*); + bool checkPassNum(int bit) { return field_0xc & (1 << bit); } + /* 0x00 */ dJntColData_c* mData; /* 0x04 */ J3DModel* mModel; /* 0x08 */ int field_0x8; diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h index 748dfb38be..b541927041 100644 --- a/include/d/event/d_event.h +++ b/include/d/event/d_event.h @@ -80,6 +80,8 @@ public: void isOrderOK(); u16 chkFlag2(u16 flag) { return flag & mFlag2; } + bool runCheck() { return field_0xe5 != 0; } + u16 chkEventFlag(u16 flag) { return flag & mEventFlag; } public: /* 0x000 */ u8 field_0x0[4]; diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h index 45d0c24903..3e68b3a741 100644 --- a/include/d/event/d_event_manager.h +++ b/include/d/event/d_event_manager.h @@ -48,7 +48,7 @@ public: void startCheckOld(char const*); void endCheck(s16); void endCheckOld(char const*); - void getMyStaffId(char const*, fopAc_ac_c*, int); + s32 getMyStaffId(char const*, fopAc_ac_c*, int); void getIsAddvance(int); void getMyActIdx(int, char const* const*, int, int, int); void getMyNowCutName(int); diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index 4a35b1fc32..42c1e9ead2 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -114,7 +114,6 @@ struct GB_MAPLE_COL_CHANGE { class dKy_tevstr_c { public: -private: /* 0x000 */ J3DLightObj field_0x000; /* 0x074 */ J3DLightObj field_0x074[6]; /* 0x32C */ cXyz field_0x32c; @@ -124,10 +123,18 @@ private: /* 0x34C */ int field_0x34c; /* 0x350 */ int field_0x350; /* 0x354 */ int field_0x354; - /* 0x358 */ int field_0x358; - /* 0x35C */ int field_0x35c; - /* 0x360 */ int field_0x360; - /* 0x364 */ int field_0x364; + /* 0x358 */ u16 field_0x358; + /* 0x35A */ u16 field_0x35a; + /* 0x35C */ u16 field_0x35c; + /* 0x35E */ u8 field_0x35e[2]; + /* 0x360 */ u8 field_0x360; + /* 0x361 */ u8 field_0x361; + /* 0x362 */ u8 field_0x362; + /* 0x363 */ u8 field_0x363; + /* 0x364 */ u8 field_0x364; + /* 0x365 */ u8 field_0x365; + /* 0x366 */ u8 field_0x366; + /* 0x367 */ u8 field_0x367; /* 0x368 */ f32 field_0x368; /* 0x36C */ f32 field_0x36c; /* 0x370 */ f32 field_0x370; @@ -655,6 +662,6 @@ public: STATIC_ASSERT(sizeof(dScnKy_env_light_c) == 4880); -BOOL dKy_darkworld_stage_check(char const*, int); +bool dKy_darkworld_stage_check(char const*, int); #endif /* D_KANKYO_D_KANKYO_H */ diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index 96baf9dc29..91977e0be3 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -315,6 +315,10 @@ enum ItemTable { /* 0xFF */ NO_ITEM }; +enum EquipItem { + /* 0x103 */ EQUIP_SWORD = 0x103, +}; + enum CollectItem { /* 0x0 */ COLLECT_CLOTHING, /* 0x1 */ COLLECT_SWORD, @@ -915,6 +919,9 @@ class dSv_restart_c { public: void setRoom(const cXyz&, s16, s8); + s16 getStartPoint() const { return mStartPoint; } + u32 getLastMode() const { return mLastMode; } + private: /* 0x00 */ s8 mRoomNo; /* 0x01 */ u8 field_0x01[3]; @@ -999,6 +1006,8 @@ public: dSv_zone_c* getZones() { return mZone; } dSv_player_c& getPlayer() { return mSavedata.getPlayer(); } dSv_event_c& getTmp() { return mTmp; } + dSv_restart_c& getRestart() { return mRestart; } + dSv_event_c& getEvent() { return mSavedata.getEvent(); } s64 getStartTime() { return mStartTime; } s64 getSaveTotalTime() { return mSaveTotalTime; } void initDan(s8 param_0) { mDan.init(param_0); } diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index b709c27196..bf16d5b99a 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -19,7 +19,7 @@ public: void onCondition(u16); void offCondition(u16); bool checkCommandCatch(); - bool checkCommandDoor(); + BOOL checkCommandDoor(); bool checkCommandDemoAccrpt(); void setCommand(u16 command) { mCommand = command; } @@ -52,7 +52,7 @@ public: struct actor_place { cXyz mPosition; csXyz mAngle; - u8 mRoomNo; + s8 mRoomNo; }; struct actor_attention_types { @@ -88,7 +88,7 @@ public: /* 0x4E4 */ csXyz mCollisionRot; /* 0x4EC */ cXyz mScale; /* 0x4F8 */ cXyz mSpeed; - /* 0x504 */ Mtx* mCullMtx; + /* 0x504 */ MtxP mCullMtx; union { struct { /* 0x508 */ cXyz mMin; diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index ac29bdf894..92a42a42dc 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -54,6 +54,8 @@ public: static bool gndCheck(const cXyz*); static u8 mGndCheck[84]; static f32 mGroundY; + + static f32 getGroundY() { return mGroundY; } }; class fopAcM_wt_c { @@ -100,6 +102,10 @@ inline u32 fopAcM_GetParam(const void* pActor) { return fpcM_GetParam(pActor); } +inline u8 fopAcM_GetGroup(const fopAc_ac_c* p_actor) { + return p_actor->mGroup; +} + inline void fopAcM_OnStatus(fopAc_ac_c* pActor, u32 flag) { pActor->mStatus |= flag; } @@ -132,6 +138,14 @@ inline csXyz& fopAcM_GetShapeAngle_p(fopAc_ac_c* pActor) { return pActor->mCollisionRot; } +inline bool fopAcM_CheckCondition(fopAc_ac_c* p_actor, u32 flag) { + return p_actor->mCondition & flag; +} + +inline void fopAcM_OnCondition(fopAc_ac_c* p_actor, u32 flag) { + p_actor->mCondition |= flag; +} + void* fopAcM_FastCreate(s16 pProcTypeID, FastCreateReqFunc param_2, void* param_3, void* pData); void fopAcM_setStageLayer(void*); int fopAcM_setRoomLayer(void*, int); diff --git a/include/m_Do/m_Do_audio.h b/include/m_Do/m_Do_audio.h index c9f4cfaab0..aebbcd2b20 100644 --- a/include/m_Do/m_Do_audio.h +++ b/include/m_Do/m_Do_audio.h @@ -31,4 +31,8 @@ public: extern JKRSolidHeap* g_mDoAud_audioHeap; +inline void mDoAud_bgmSetSwordUsing(s32 id) { + Z2AudioMgr::getInterface()->mSeqMgr.bgmSetSwordUsing(id); +} + #endif /* M_DO_M_DO_AUDIO_H */ diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index 47c48def6c..efb15dbf7a 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -87,8 +87,10 @@ public: /* 80140DF0 */ ~mDoExt_AnmRatioPack(); /* 80140E2C */ mDoExt_AnmRatioPack(); + void setRatio(f32 ratio) { mRatio = ratio; } + private: - /* 0x0 */ float mRatio; + /* 0x0 */ f32 mRatio; /* 0x4 */ J3DAnmTransform* mAnmTransform; }; // Size = 0x8 diff --git a/include/rel/d/a/d_a_boomerang/d_a_boomerang.h b/include/rel/d/a/d_a_boomerang/d_a_boomerang.h index 6317a31575..111712b628 100644 --- a/include/rel/d/a/d_a_boomerang/d_a_boomerang.h +++ b/include/rel/d/a/d_a_boomerang/d_a_boomerang.h @@ -2,5 +2,127 @@ #define D_A_BOOMERANG_H #include "dolphin/types.h" +#include "f_op/f_op_actor.h" +#include "JSystem/J2DGraph/J2DScreen.h" +#include "d/bg/d_bg_s_acch.h" +#include "d/particle/d_particle_copoly.h" +#include "Z2AudioLib/Z2SoundObject.h" + +class daBoomerang_sight_c { +public: + /* 8049E0B8 */ void createHeap(); + /* 8049E36C */ void initialize(); + /* 8049EB64 */ void playAnime(int, int); + /* 8049EDA8 */ void initFrame(int); + /* 8049EDE8 */ void copyNumData(int); + /* 8049EEC8 */ void setSight(cXyz const*, int); + /* 8049EF60 */ void draw(); + + /* 804A278C */ virtual ~daBoomerang_sight_c(); + +private: + /* 0x04 */ J2DScreen* field_0x4; + /* 0x08 */ J2DPane* field_0x8; + /* 0x0C */ J2DPane* field_0xc; + /* 0x10 */ J2DPane* field_0x10; + /* 0x14 */ J2DPane* field_0x14; + /* 0x18 */ J2DAnmBase* field_0x18; + /* 0x1C */ J2DAnmBase* field_0x1c; + /* 0x20 */ J2DScreen* field_0x20; + /* 0x24 */ J2DPane* field_0x24; + /* 0x28 */ J2DPane* field_0x28; + /* 0x2C */ J2DPane* field_0x2c; + /* 0x30 */ J2DPane* field_0x30; + /* 0x34 */ J2DAnmBase* field_0x34; + /* 0x38 */ J2DAnmBase* field_0x38; + /* 0x3C */ J2DScreen* field_0x3c; + /* 0x40 */ J2DPane* field_0x40; + /* 0x44 */ J2DPane* field_0x44; + /* 0x48 */ J2DPane* field_0x48; + /* 0x4C */ J2DPane* field_0x4c; + /* 0x50 */ J2DAnmBase* field_0x50; + /* 0x54 */ J2DAnmBase* field_0x54; + /* 0x58 */ J2DAnmBase* field_0x58; + /* 0x5C */ J2DAnmBase* field_0x5c; + /* 0x60 */ bool mRedSight; + /* 0x61 */ u8 mReserve; + /* 0x62 */ u8 mAlpha[6]; + /* 0x68 */ f32 field_0x68[6]; + /* 0x80 */ f32 field_0x80[6]; + /* 0x98 */ f32 field_0x98[6]; + /* 0xB0 */ f32 field_0xb0[6]; + /* 0xC8 */ cXyz field_0xc8[6]; +}; // Size: 0x110 + +struct daMirror_c; +class daAlink_c; + +class daBoomerang_c : public fopAc_ac_c { +public: + enum daBoomerang_FLG0 { + /* 0x80 */ WIND_CATCH = 0x80, + }; + + /* 8049F280 */ void windModelCallBack(); + /* 8049F39C */ void draw(); + /* 8049F5F4 */ void lockLineCallback(fopAc_ac_c*); + /* 8049F660 */ void moveLineCallback(fopAc_ac_c*); + /* 8049F710 */ void pushLockList(int); + /* 8049F818 */ void cancelLockActorBase(fopAc_ac_c*); + /* 8049F874 */ void setAimActorBase(fopAc_ac_c*); + /* 8049F8B0 */ void setLockActor(fopAc_ac_c*, int); + /* 8049F9A4 */ void resetLockActor(); + /* 8049F9F0 */ void setRoomInfo(); + /* 8049FAA4 */ void setKeepMatrix(); + /* 8049FBAC */ void setMoveMatrix(); + /* 8049FCD0 */ void setRotAngle(); + /* 8049FD6C */ void setAimPos(); + /* 8049FE6C */ void checkBgHit(cXyz*, cXyz*); + /* 804A006C */ void setEffectTraceMatrix(u32*, u16); + /* 804A012C */ void setEffect(); + /* 804A0874 */ void procWait(); + /* 804A0F0C */ void procMove(); + /* 804A1814 */ void execute(); + /* 804A1BF4 */ ~daBoomerang_c(); + /* 804A1EE4 */ void createHeap(); + /* 804A2084 */ void create(); + /* 804A230C */ daBoomerang_c(); + + void onStateFlg0(daBoomerang_FLG0 flag) { mStateFlg0 |= flag; } + void onWindCatch() { onStateFlg0(WIND_CATCH); } + +private: + /* 0x568 */ daMirror_c* field_0x568; + /* 0x56C */ J3DModel* field_0x56c; + /* 0x570 */ daAlink_c* field_0x570; + /* 0x574 */ u8 field_0x574[0x1C]; + /* 0x590 */ J3DModel* field_0x590; + /* 0x594 */ void* field_0x594; + /* 0x598 */ daBoomerang_sight_c mSight; + /* 0x6A8 */ int field_0x6a8; + /* 0x6AC */ int field_0x6ac[5]; + /* 0x6C0 */ fopAc_ac_c* field_0x6c0[5]; + /* 0x6D4 */ u8 field_0x6d4[8]; + /* 0x6DC */ cXyz field_0x6dc[5]; + /* 0x718 */ u8 field_0x718[5]; + /* 0x720 */ Z2SoundObjSimple field_0x720; + /* 0x740 */ dBgS_Acch field_0x740; + /* 0x918 */ dPaPo_c field_0x918; + /* 0x950 */ u8 field_0x950; + /* 0x951 */ u8 field_0x951; + /* 0x952 */ u8 field_0x952; + /* 0x953 */ u8 field_0x953; + /* 0x954 */ u8 field_0x954; + /* 0x955 */ u8 field_0x955; + /* 0x956 */ u8 field_0x956; + /* 0x957 */ u8 field_0x957; + /* 0x958 */ s16 field_0x958; + /* 0x95A */ s16 field_0x95a; + /* 0x95C */ s16 field_0x95c; + /* 0x95E */ s16 field_0x95e; + /* 0x960 */ s16 field_0x960; + /* 0x962 */ s16 field_0x962; + /* 0x964 */ u32 mStateFlg0; +}; #endif /* D_A_BOOMERANG_H */ diff --git a/include/rel/d/a/d_a_crod/d_a_crod.h b/include/rel/d/a/d_a_crod/d_a_crod.h index c357d01fc0..4ef24817a3 100644 --- a/include/rel/d/a/d_a_crod/d_a_crod.h +++ b/include/rel/d/a/d_a_crod/d_a_crod.h @@ -1,6 +1,28 @@ #ifndef D_A_CROD_H #define D_A_CROD_H +#include "f_op/f_op_actor.h" +#include "f_op/f_op_actor_mng.h" #include "dolphin/types.h" +class daCrod_c { +public: + /* 80141A94 */ void setControllActorData(); + /* 804A2E38 */ void createHeap(); + /* 804A2F18 */ void create(); + /* 804A3304 */ ~daCrod_c(); + /* 804A34B0 */ void setRoomInfo(); + /* 804A34B4 */ void setMatrix(); + /* 804A3500 */ void posMove(); + /* 804A3580 */ void setBckAnm(u16); + /* 804A35FC */ void setReturn(); + /* 804A365C */ void setLightPower(); + /* 804A36D8 */ void execute(); + /* 804A3FD4 */ void draw(); + + static fopAc_ac_c* makeIronBallDummy(fopAc_ac_c* p_actor) { + return (fopAc_ac_c*)fopAcM_fastCreate(0x2F4, 6, &p_actor->mCurrent.mPosition, fopAcM_GetRoomNo(p_actor), NULL, NULL, -1, NULL, NULL); + } +}; + #endif /* D_A_CROD_H */ diff --git a/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h b/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h index 04447c6feb..828cd41a1a 100644 --- a/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h +++ b/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h @@ -2,5 +2,203 @@ #define D_A_OBJ_CARRY_H #include "dolphin/types.h" +#include "SSystem/SComponent/c_xyz.h" +#include "d/bg/d_bg_s_acch.h" +#include "d/cc/d_cc_d.h" + +class daObjCarry_c : public fopAc_ac_c { +public: + enum { + /* 0x0 */ TYPE_TSUBO, // Small Blue Pot + /* 0x1 */ TYPE_OOTSUBO, // Big Red Pot + /* 0x2 */ TYPE_KIBAKO, // Box + /* 0x3 */ TYPE_IRON_BALL, // Cannon Ball + /* 0x4 */ TYPE_TARU, // Barrel + /* 0x5 */ TYPE_DOKURO, // Skull + /* 0x6 */ TYPE_BOKKURI, // Deku Nut + /* 0x7 */ TYPE_TSUBO_2, // Small Red Pot + /* 0x8 */ TYPE_BALL_S, // Light Ball A + /* 0x9 */ TYPE_BALL_S_2, // Light Ball B + /* 0xA */ TYPE_AOTSUBO, // Big Blue Pot + /* 0xB */ TYPE_LV8_BALL, + /* 0xC */ TYPE_TSUBO_S, // Small pot - Twilight + /* 0xD */ TYPE_TSUBO_B, // Big pot - Twilight + }; + + /* 80031CF8 */ static void clrSaveFlag(); + /* 80031D04 */ static void setSaveFlag(); + /* 80031D10 */ void chkSaveFlag(); + /* 80031D24 */ void getPos(int); + /* 80031D38 */ void savePos(int, cXyz); + /* 80031D64 */ void onSttsFlag(int, u8); + /* 80031D78 */ void offSttsFlag(int, u8); + /* 80031D8C */ void chkSttsFlag(int, u8); + /* 80031DAC */ void setRoomNo(int, s8); + /* 80031DB8 */ void getRoomNo(int); + /* 8046F6A4 */ void data(); + /* 8046F6BC */ void getArcName(); + /* 8046F6D4 */ void getBmdName(); + /* 8046F6EC */ void checkFlag(u8); + /* 8046F724 */ void initBaseMtx(); + /* 8046F7AC */ void setBaseMtx(); + /* 8046FACC */ void preInit(); + /* 8046FB78 */ daObjCarry_c(); + /* 8046FFA4 */ void checkBreakWolfAttack(); + /* 8046FFF8 */ void checkCarryBoomerang(); + /* 80470054 */ void checkCarryHookshot(); + /* 80470080 */ void checkCarryWolf(); + /* 804700B4 */ void checkCarryOneHand(); + /* 804700F0 */ void Create(); + /* 804705DC */ void CreateInit_tsubo(); + /* 80470650 */ void CreateInit_ootubo(); + /* 80470674 */ void CreateInit_kibako(); + /* 804706D4 */ void CreateInit_ironball(); + /* 804707E0 */ void CreateInit_taru(); + /* 80470840 */ void CreateInit_dokuro(); + /* 80470890 */ void CreateInit_bokkuri(); + /* 804709DC */ void CreateInit_LightBall(); + /* 80470AB4 */ void CreateInit_Lv8Ball(); + /* 80470B5C */ void CreateHeap(); + /* 80470BF4 */ void create(); + /* 80470CF0 */ void checkCreate_LightBallA(); + /* 8047114C */ void checkCreate_LightBallB(); + /* 804715A8 */ void checkCreate_Lv8Ball(); + /* 80471680 */ void resetIconPosForLightBallA(); + /* 804716D4 */ void setIconPosForLightBallAAtR00(); + /* 804717B4 */ void setIconPosForLightBallBAtR00(); + /* 80471894 */ void resetIconPosForLightBallB(); + /* 804718E8 */ void execute(); + /* 8047233C */ void checkCulling(); + /* 80472460 */ void draw(); + /* 80472730 */ void debugDraw(); + /* 80472734 */ void _delete(); + /* 80472B54 */ void crr_pos(); + /* 80472D8C */ void check_sink(f32*); + /* 80472E5C */ void calc_gravity(); + /* 80472EF0 */ void checkRollAngle(); + /* 80473050 */ void mode_proc_call(); + /* 804733E8 */ void mode_init_wait(); + /* 804734B0 */ void mode_proc_wait(); + /* 80473718 */ void mode_init_walk(u8); + /* 804737CC */ void mode_proc_walk(); + /* 80473ED8 */ void mode_init_carry(); + /* 804741A8 */ void mode_proc_carry(); + /* 80474448 */ void mode_init_drop(u8); + /* 80474540 */ void mode_proc_drop(); + /* 80474618 */ void mode_init_float(); + /* 80474734 */ void mode_proc_float(); + /* 80474A08 */ void mode_init_sink(); + /* 80474B8C */ void mode_proc_sink(); + /* 80474D64 */ void mode_init_yogan(); + /* 80474E08 */ void mode_proc_yogan(); + /* 80474E98 */ bool mode_proc_magne(); + /* 80474EA0 */ bool mode_proc_magneCarry(); + /* 80474EA8 */ void mode_init_boomCarry(); + /* 80474FA8 */ void mode_proc_boomCarry(); + /* 80475014 */ void mode_init_growth(); + /* 804750C8 */ void mode_proc_growth(); + /* 8047515C */ bool mode_proc_end(); + /* 80475164 */ void mode_init_dbDrop(u8); + /* 80475210 */ void mode_proc_dbDrop(); + /* 80475238 */ void mode_init_hookCarry(); + /* 80475354 */ void mode_proc_hookCarry(); + /* 80475384 */ void mode_init_fit(); + /* 80475450 */ void mode_proc_fit(); + /* 80475478 */ void mode_proc_controled(); + /* 804754D0 */ void mode_init_resetLightBall(); + /* 80475598 */ void mode_proc_resetLightBall(); + /* 80475618 */ void chkSinkAll(); + /* 8047567C */ void chkWaterLineIn(); + /* 804756D4 */ void chkSinkObj(); + /* 8047573C */ void bg_check(); + /* 80476618 */ void check_bg_damage_proc_base(); + /* 80476764 */ void bg_damage_proc_kotubo(); + /* 804767C4 */ void bg_damage_proc_ootubo(); + /* 804767E4 */ void bg_damage_proc_kibako(); + /* 80476804 */ bool bg_damage_proc_ironball(); + /* 8047680C */ void bg_damage_proc_taru(); + /* 8047682C */ void bg_damage_proc_dokuro(); + /* 8047684C */ void bg_damage_proc_bokkuri(); + /* 80476930 */ bool bg_damage_proc_LightBall(); + /* 80476938 */ bool bg_damage_proc_Lv8Ball(); + /* 80476940 */ void obj_break(bool, bool, bool); + /* 80476A5C */ void check_cc_damage_proc_base(bool); + /* 80476B04 */ void cc_damage_proc_kotubo(); + /* 80476B68 */ void cc_damage_proc_ootubo(); + /* 80476B88 */ void cc_damage_proc_kibako(); + /* 80476CE4 */ void cc_damage_proc_ironball(); + /* 80476E04 */ void cc_damage_proc_taru(); + /* 80476F88 */ void cc_damage_proc_dokuro(); + /* 80476FA8 */ void cc_damage_proc_bokkuri(); + /* 804771B0 */ bool cc_damage_proc_LightBall(); + /* 804771B8 */ bool cc_damage_proc_Lv8Ball(); + /* 804771C0 */ void eff_break_tuboBmd(u16, cXyz); + /* 8047731C */ void eff_break_kibakoBmd(cXyz); + /* 8047747C */ void eff_break_tsubo(); + /* 804774D4 */ void eff_break_ootubo(); + /* 8047752C */ void eff_break_kibako(); + /* 80477574 */ void eff_break_ironball(); + /* 80477578 */ void eff_break_taru(); + /* 804775BC */ void eff_break_dokuro(); + /* 80477614 */ void eff_break_bokkuri(); + /* 80477798 */ void eff_break_kotubo2(); + /* 804777F0 */ void eff_break_LightBall(); + /* 804777F4 */ void eff_break_ootubo2(); + /* 8047784C */ void eff_break_Lv8Ball(); + /* 80477850 */ void eff_break_tsuboL8(); + /* 804778A8 */ void eff_break_ootuboL8(); + /* 80477900 */ void se_break(cBgS_PolyInfo*); + /* 80477990 */ void se_put(cBgS_PolyInfo*); + /* 80477A14 */ void se_put_water(); + /* 80477A98 */ void se_fall_water(); + /* 80477B1C */ void calc_rot_axis_base(u8); + /* 80477FE0 */ void calc_rot_axis_tsubo(); + /* 80478004 */ void calc_rot_axis_ootubo(); + /* 80478028 */ void calc_rot_axis_kibako(); + /* 8047814C */ void calc_rot_axis_ironball(); + /* 80478170 */ void calc_rot_axis_taru(); + /* 80478190 */ void calc_rot_axis_dokuro(); + /* 804781B4 */ void calc_rot_axis_bokkuri(); + /* 804783C0 */ void calc_rot_axis_kotubo2(); + /* 804783E4 */ void calc_rot_axis_LightBall(); + /* 80478408 */ void calc_rot_axis_Lv8Ball(); + /* 8047842C */ void set_wind_power(); + /* 80478808 */ void exec_proc_tsubo(); + /* 80478828 */ void exec_proc_ootubo(); + /* 80478848 */ void exec_proc_kibako(); + /* 8047884C */ void exec_proc_ironball(); + /* 804788C4 */ void exec_proc_taru(); + /* 804788C8 */ void exec_proc_dokuro(); + /* 804788CC */ void exec_proc_bokkuri(); + /* 80478C18 */ void exec_proc_LightBall(); + /* 80478CE4 */ void exec_proc_Lv8Ball(); + /* 80478D78 */ void bg_damage_proc_call(); + /* 80478F50 */ void cc_damage_proc_call(); + /* 80479128 */ void eff_break_call(); + /* 804792D4 */ void calc_rot_call(); + /* 80479480 */ void obj_execute_proc_call(); + /* 8047962C */ void setTgHitCallBack(); + /* 80479648 */ void setCoHitCallBack(); + /* 80479664 */ void CreateInitCall(); + + s32 getType() { return mType; } + + static u8 const mData[2072]; + +private: + /* 0x568 */ u8 field_0x568[8]; + /* 0x570 */ J3DModel* field_0x570; + /* 0x574 */ dBgS_Acch field_0x574; + /* 0x74C */ dBgS_AcchCir field_0x74c; + /* 0x78C */ dCcD_Stts field_0x78c; + /* 0x7C8 */ dCcD_Cyl field_0x7c8; + /* 0x904 */ dCcD_Sph field_0x904; + /* 0xA3C */ dCcD_Cps field_0xa3c; + /* 0xB80 */ dCcD_Cyl field_0xb80; + /* 0xCBC */ u8 field_0xcbc[0x34]; + /* 0xCF0 */ u8 mType; + /* 0xCF4 */ cXyz field_0xcf4; + /* 0xD00 */ +}; #endif /* D_A_OBJ_CARRY_H */ diff --git a/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h b/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h index 940e95c355..08fe8b32b9 100644 --- a/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h +++ b/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h @@ -1,6 +1,28 @@ #ifndef D_A_TAG_MMSG_H #define D_A_TAG_MMSG_H +#include "d/a/d_a_player.h" #include "dolphin/types.h" +class daTagMmsg_c : public fopAc_ac_c { +public: + /* 80D5B918 */ void create(); + /* 80D5BAB4 */ ~daTagMmsg_c(); + /* 80D5BB30 */ void execute(); + + void onUseFlg() { mUseFlg = true; } + +private: + /* 0x568 */ u8 field_0x568; + /* 0x569 */ u8 field_0x569; + /* 0x56A */ u8 mAttention; + /* 0x56B */ u8 field_0x56b; + /* 0x56C */ bool mUseFlg; + /* 0x56D */ u8 field_0x56d[3]; + /* 0x570 */ u16 field_0x570; + /* 0x572 */ u16 field_0x572; + /* 0x574 */ f32 field_0x574; + /* 0x578 */ f32 field_0x578; +}; + #endif /* D_A_TAG_MMSG_H */ |
