diff options
| author | Caroline Madsen <69010899+randomsalience@users.noreply.github.com> | 2024-10-19 04:54:40 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-19 11:54:40 +0300 |
| commit | 69dc7cbbf15ece9533ca6afc85f9500ba1b2647b (patch) | |
| tree | a8ff6e3f3f5113d2185100af36df67c9e568d0d1 /include/d | |
| parent | 0652b2c7b3722e40ded1a34f8846b8ae9d8fa4eb (diff) | |
d_a_b_yo and d_a_b_yo_ice mostly OK (#2219)
Diffstat (limited to 'include/d')
| -rw-r--r-- | include/d/actor/d_a_b_yo.h | 233 | ||||
| -rw-r--r-- | include/d/actor/d_a_b_yo_ice.h | 81 | ||||
| -rw-r--r-- | include/d/actor/d_a_mirror.h | 2 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_ystone.h | 8 | ||||
| -rw-r--r-- | include/d/d_camera.h | 2 | ||||
| -rw-r--r-- | include/d/d_cc_d.h | 1 |
6 files changed, 276 insertions, 51 deletions
diff --git a/include/d/actor/d_a_b_yo.h b/include/d/actor/d_a_b_yo.h index c2d6ccc1d8..ade6df2a97 100644 --- a/include/d/actor/d_a_b_yo.h +++ b/include/d/actor/d_a_b_yo.h @@ -1,7 +1,14 @@ #ifndef D_A_B_YO_H #define D_A_B_YO_H -#include "f_op/f_op_actor_mng.h" +#include "Z2AudioLib/Z2Creature.h" +#include "f_op/f_op_actor.h" +#include "d/d_cc_d.h" +#include "d/d_cc_uty.h" +#include "d/d_bg_s_acch.h" + +class dBgW; +class msg_class; /** * @ingroup actors-enemies @@ -13,7 +20,7 @@ */ class daB_YO_c : public fopEn_enemy_c { public: - /* 8062F51C */ s32 draw(); + /* 8062F51C */ int draw(); /* 8062FBEC */ void onIceBreak(u16); /* 8062FC08 */ void setBck(int, u8, f32, f32); /* 8062FE0C */ void setActionMode(int, int); @@ -30,16 +37,16 @@ public: /* 80630BF0 */ void setApperEffect(); /* 80630CA0 */ void setApperEffect2(); /* 80630DD8 */ void demo_skip(int); - /* 80630E3C */ void DemoSkipCallBack(void*, int); + /* 80630E3C */ static int DemoSkipCallBack(void*, int); /* 80630E70 */ void setYoMessage(int); - /* 80630EAC */ void doYoMessage(); + /* 80630EAC */ int doYoMessage(); /* 80630F28 */ void executeOpening(); /* 80632598 */ void reflectFreeMove(); /* 80632660 */ void calcFreeMove(f32); /* 8063290C */ void setReflectAngle(); /* 806329CC */ void executeChase(); /* 806331CC */ void executeSeriousDemo(); - /* 80633EDC */ void checkIcecleRevival(); + /* 80633EDC */ u8 checkIcecleRevival(); /* 80633F50 */ void createIcecleRevival(u8); /* 80634040 */ void executeJump(); /* 80634548 */ void executeAttackIce(); @@ -54,48 +61,198 @@ public: /* 806374BC */ void action(); /* 80637990 */ void mtx_set(); /* 80637B30 */ void cc_set(); - /* 80637E10 */ void execute(); - /* 80637FC8 */ void _delete(); - /* 806380F8 */ void CreateHeap(); - /* 806388A0 */ void CreateHeap2(); - /* 806389C0 */ void create(); + /* 80637E10 */ int execute(); + /* 80637FC8 */ int _delete(); + /* 806380F8 */ int CreateHeap(); + /* 806388A0 */ int CreateHeap2(); + /* 806389C0 */ cPhs__Step create(); - u8 getModelNo() { return mModelNo;} - s16 getFrizadRollAngle() { return mFrizadRollAngle;} - f32 getModeRarius() { return mModeRarius;} - u8 getFrizadAttack() { return mFrizadAttack;} + u8 getModelNo() { return mModelNo; } + s16 getFrizadRollAngle() { return mIceAngle; } + f32 getModeRarius() { return mFreezardRadius; } + u8 getFrizadAttack() { return mFreezardAttack; } + cXyz getIceCenterPos() { return mIceCenterPos; } + f32 getIceRange() { return mIceRange; } + s16 getIceAngle() { return mIceAngle; } + f32 getPlayerXBuf(int param_0) { return mPlayerXBuf[param_0]; } + f32 getPlayerZBuf(int param_0) { return mPlayerZBuf[param_0]; } + void onIceStatus(u16 i_no) { mIceStatus |= (1 << i_no); } private: - /* 0x5AC */ u8 field_0x5ac[0x5D8 - 0x5AC]; - /* 0x5D8 */ mDoExt_btkAnm* mBtk; - /* 0x5DC */ mDoExt_btpAnm* mBtp; - /* 0x5E0 */ mDoExt_brkAnm* mBrk; - /* 0x5E4 */ mDoExt_bckAnm* mBck; - /* 0x5E8 */ mDoExt_McaMorfSO* mpMorf; - /* 0x5EC */ u8 field_0x5f8[0xF54 - 0x5EC]; - /* 0xF54 */ f32 mModeRarius; - /* 0xF58 */ u8 field_0xf58[0xF5C - 0xF58]; - /* 0xF5C */ s16 mFrizadRollAngle; - /* 0xF5E */ u8 field_0xf5e[0xF6E - 0xF5E]; - /* 0xF6E */ u16 mIceBreak; - /* 0xF70 */ u8 field_0xf70[0xFA8 - 0xF70]; - /* 0xFA8 */ u8 mModelNo; - /* 0xFA9 */ u8 field_0xfa9[0xFAD - 0xFA9]; - /* 0xFAD */ u8 mFrizadAttack; - /* 0xFAE */ u8 field_0xfae[0xFCC - 0xFAE]; - /* 0xFCC */ u8 field_0xfcc; - /* 0xFCD */ u8 field_0xfcd[0x1B88 - 0xFCD]; + /* 0x05AC */ request_of_phase_process_class mPhase1; + /* 0x05B4 */ request_of_phase_process_class mPhase2; + /* 0x05BC */ request_of_phase_process_class mPhase3; + /* 0x05C4 */ request_of_phase_process_class mPhase4; + /* 0x05CC */ request_of_phase_process_class mPhase5; + /* 0x05D4 */ mDoExt_btkAnm* mpBtkAnm; + /* 0x05D8 */ mDoExt_btkAnm* mpYetaBtkAnm; + /* 0x05DC */ mDoExt_btpAnm* mpYetaBtpAnm; + /* 0x05E0 */ mDoExt_brkAnm* mpYetaBrkAnm; + /* 0x05E4 */ mDoExt_brkAnm* mpYetaWhiteBrkAnm; + /* 0x05E8 */ J3DModel* mpModel[3]; + /* 0x05F4 */ mDoExt_McaMorfSO* mpYetaMorf; + /* 0x05F8 */ mDoExt_McaMorfSO* mpYetaRevertedMorf; + /* 0x05FC */ J3DModel* mpRoomModel[2]; + /* 0x0604 */ J3DModel* mpFurnitureModel; + /* 0x0608 */ u32 mIcicleID[10]; + /* 0x0630 */ u32 mYstoneID; + /* 0x0634 */ Z2CreatureEnemy mCreatureSound; + /* 0x06D8 */ cXyz unk_6D8[5]; + /* 0x0714 */ f32 mHensinScale; + /* 0x0718 */ cXyz mCamEye; + /* 0x0724 */ cXyz mCamCenter; + /* 0x0730 */ f32 mCamFovY; + /* 0x0734 */ f32 mCamEyeRange; + /* 0x0738 */ f32 mCamEyeSpeed; + /* 0x073C */ f32 mCamCenterSpeed; + /* 0x0740 */ s16 mCamEyeAngle; + /* 0x0744 */ f32 mScale; + /* 0x0748 */ f32 mPlayerXBuf[200]; + /* 0x0A68 */ f32 mPlayerZBuf[200]; + /* 0x0D88 */ s16 unk_D88[200]; + /* 0x0F18 */ s16 mPlayerAngle; + /* 0x0F1C */ cXyz mOldPlayerPos; + /* 0x0F28 */ cXyz mYstonePos; + /* 0x0F34 */ cXyz mIceCenterPos; + /* 0x0F40 */ u8 unk_F40[0xF4C - 0xF40]; + /* 0x0F4C */ f32 mIceRange; + /* 0x0F50 */ f32 mIceCenterSpeed; + /* 0x0F54 */ f32 mFreezardRadius; + /* 0x0F58 */ f32 unk_F58; + /* 0x0F5C */ s16 mIceAngle; + /* 0x0F5E */ s16 mIceAngleSpeed; + /* 0x0F60 */ f32 mYstoneScale; + /* 0x0F64 */ f32 field_0xf64; + /* 0x0F68 */ s16 field_0xf68; + /* 0x0F6A */ s16 field_0xf6a; + /* 0x0F6C */ u16 mIceStatus; + /* 0x0F6E */ u16 mIceBreak; + /* 0x0F70 */ int mAction; + /* 0x0F74 */ int mMode; + /* 0x0F78 */ u32 mShadowKey; + /* 0x0F7C */ u8 unk_F7C[0xF80 - 0xF7C]; + /* 0x0F80 */ s16 field_0xf80; + /* 0x0F82 */ s16 mAngleSpeed; + /* 0x0F84 */ s16 mWallAngle; + /* 0x0F86 */ u16 mIFrameTimer; + /* 0x0F88 */ u16 mIFrameIronTimer; + /* 0x0F8C */ int mActionTimer; + /* 0x0F90 */ int mActionTimer2; + /* 0x0F94 */ int mDamageTimer; + /* 0x0F98 */ int mFreezardTimer; + /* 0x0F9C */ int mQuakeTimer; + /* 0x0FA0 */ int mAttentionTimer; + /* 0x0FA4 */ int mCamLockOnTimer; + /* 0x0FA8 */ u8 mModelNo; + /* 0x0FA9 */ u8 mSwNo; + /* 0x0FAA */ u8 mSwNo2; + /* 0x0FAB */ u8 mLastPhaseDamage; + /* 0x0FAC */ bool field_0xfac; + /* 0x0FAD */ u8 mFreezardAttack; + /* 0x0FAE */ u8 field_0xfae; + /* 0x0FAF */ u8 mFreeMoveMode; + /* 0x0FB0 */ u8 field_0xfb0; + /* 0x0FB1 */ u8 field_0xfb1; + /* 0x0FB2 */ u8 field_0xfb2; + /* 0x0FB3 */ u8 field_0xfb3; + /* 0x0FB4 */ u8 field_0xfb4; + /* 0x0FB5 */ u8 field_0xfb5; + /* 0x0FB6 */ u8 mFreezardNo; + /* 0x0FB7 */ u8 mRoomType; + /* 0x0FB8 */ f32 mRoomAlpha[2]; + /* 0x0FC0 */ u8 mColorMode; + /* 0x0FC4 */ f32 mColBlend; + /* 0x0FC8 */ f32 mBlureRate; + /* 0x0FCC */ bool field_0xfcc; + /* 0x0FCD */ bool field_0xfcd; + /* 0x0FCE */ u8 mIsInactive; + /* 0x0FCF */ u8 mIsInactive2; + /* 0x0FD0 */ bool mReverted; + /* 0x0FD1 */ bool field_0xfd1; + /* 0x0FD2 */ bool unk_FD2; + /* 0x0FD4 */ s32 mWarpHoleID; + /* 0x0FD8 */ int mMsgIdx; + /* 0x0FDC */ u32 mMsgPcID; + /* 0x0FE0 */ msg_class* mpMsg; + /* 0x0FE4 */ Mtx mBgMtx; + /* 0x1014 */ dBgW* mpRoomNormalBgW; + /* 0x1018 */ dBgW* mpRoomArenaBgW; + /* 0x101C */ dBgS_AcchCir mAcchCir; + /* 0x105C */ dBgS_ObjAcch mAcch; + /* 0x1234 */ dCcD_Stts mCcStts; + /* 0x1270 */ dCcD_Stts mCcIronStts; + /* 0x12AC */ dCcD_Cyl mAtCyl; + /* 0x13E8 */ dCcD_Sph mTgSph[3]; + /* 0x1790 */ dCcD_Sph mTgIronSph[3]; + /* 0x1B38 */ dCcU_AtInfo mAtInfo; + /* 0x1B5C */ u8 unk_1B5C[0x1B64 - 0x1B5C]; + /* 0x1B64 */ u32 mChillKey; + /* 0x1B68 */ u32 mHensinKey[4]; + /* 0x1B78 */ u8 unk_1B78[0x1B7C - 0x1B78]; + /* 0x1B7C */ u32 mParticleKey; + /* 0x1B80 */ u32 mAppearKey; + /* 0x1B84 */ bool mHIOInit; + + enum Action { + /* 0 */ ACT_OPENING, + /* 1 */ ACT_CHASE, + /* 2 */ ACT_SERIOUS_DEMO, + /* 3 */ ACT_JUMP, + /* 4 */ ACT_ATTACK_ICE, + /* 5 */ ACT_ATTACK_YOSE, + /* 6 */ ACT_ATTACK_BODY, + /* 7 */ ACT_DEMO_REVIVAL, + /* 8 */ ACT_DAMAGE, + /* 9 */ ACT_DEATH, + }; + + enum Animation { + /* 0x00 */ ANM_ANGRY, + /* 0x01 */ ANM_ANGRY_WAIT, + /* 0x02 */ ANM_FLOAT, + /* 0x03 */ ANM_TALK_A, + /* 0x04 */ ANM_TALK_B, + /* 0x05 */ ANM_TO_TALK_B, + /* 0x06 */ ANM_WAIT_A, + /* 0x07 */ ANM_WAIT_B, + /* 0x08 */ ANM_WALK, + /* 0x09 */ ANM_SCREAM, + /* 0x0A */ ANM_SCREAM_WAIT, + /* 0x0B */ ANM_WAIT_C2, + /* 0x0C */ ANM_WAIT_C, + /* 0x0D */ ANM_FLOAT_B, + /* 0x0E */ ANM_WAIT_D, + /* 0x0F */ ANM_DOWN_A, + /* 0x10 */ ANM_DOWN_B, + /* 0x11 */ ANM_DOWN_C, + /* 0x12 */ ANM_DOWN, + }; }; STATIC_ASSERT(sizeof(daB_YO_c) == 0x1B88); -struct daB_YO_HIO_c { +class daB_YO_HIO_c { +public: /* 8062F46C */ daB_YO_HIO_c(); - /* 806395E4 */ ~daB_YO_HIO_c(); -}; + /* 806395E4 */ virtual ~daB_YO_HIO_c() {} -struct daB_YOI_c { - /* 8063A480 */ void setOperate(int); + /* 0x04 */ s8 field_0x4; + /* 0x08 */ f32 mScale[8]; + /* 0x28 */ f32 mFreezardNum; + /* 0x2C */ f32 mMaxFallSpeed; + /* 0x30 */ f32 mReboundSpeedRatio; + /* 0x34 */ f32 mChaseSpeed; + /* 0x38 */ f32 mReboundSpeedMax; + /* 0x3C */ bool field_0x3c; + /* 0x40 */ f32 mGatherTimer; + /* 0x44 */ f32 mAttackTimer; + /* 0x48 */ f32 mFreezardRadius; + /* 0x4C */ f32 field_0x4c; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ bool field_0x54; + /* 0x58 */ f32 field_0x58; }; +STATIC_ASSERT(sizeof(daB_YO_HIO_c) == 0x5C); + #endif /* D_A_B_YO_H */ diff --git a/include/d/actor/d_a_b_yo_ice.h b/include/d/actor/d_a_b_yo_ice.h index 0f20a07636..9ad2225173 100644 --- a/include/d/actor/d_a_b_yo_ice.h +++ b/include/d/actor/d_a_b_yo_ice.h @@ -1,8 +1,14 @@ #ifndef D_A_B_YO_ICE_H #define D_A_B_YO_ICE_H -#include "dolphin/types.h" -#include "f_op/f_op_actor_mng.h" +#include "SSystem/SComponent/c_phase.h" +#include "Z2AudioLib/Z2Creature.h" +#include "f_op/f_op_actor.h" +#include "d/d_bg_s_gnd_chk.h" +#include "d/d_cc_d.h" +#include "d/d_cc_uty.h" + +class daB_YO_c; /** * @ingroup actors-enemies @@ -14,7 +20,7 @@ */ class daB_YOI_c : public fopEn_enemy_c { public: - /* 8063A17C */ void draw(); + /* 8063A17C */ int draw(); /* 8063A2D8 */ void setActionMode(int, int); /* 8063A2E4 */ void damage_check(); /* 8063A480 */ void setOperate(int); @@ -25,7 +31,7 @@ public: /* 8063A824 */ void setApperEffect2(); /* 8063A8C8 */ void setLandingEffect(); /* 8063A96C */ void executeFirst(); - /* 8063ABC0 */ void getSingleFallPos(); + /* 8063ABC0 */ cXyz getSingleFallPos(); /* 8063ACCC */ void executeRiseUp(); /* 8063B238 */ void executeSingleFall(); /* 8063BB40 */ void executeYose(); @@ -37,22 +43,75 @@ public: /* 8063CD90 */ void action(); /* 8063D0C8 */ void mtx_set(); /* 8063D1B0 */ void cc_set(); - /* 8063D350 */ void execute(); - /* 8063D45C */ void _delete(); - /* 8063D4F8 */ void CreateHeap(); - /* 8063D5D0 */ void create(); + /* 8063D350 */ int execute(); + /* 8063D45C */ int _delete(); + /* 8063D4F8 */ int CreateHeap(); + /* 8063D5D0 */ cPhs__Step create(); /* 8063D8FC */ daB_YOI_c(); + void setSubNumber(int i_subNumber) { mSubNumber = i_subNumber; } + private: - /* 0x5ac */ u8 field_0x5ac[0xb3c - 0x5ac]; + /* 0x5AC */ request_of_phase_process_class mPhase; + /* 0x5B4 */ J3DModel* mpModel; + /* 0x5B8 */ Z2Creature mCreatureSound; + /* 0x648 */ Z2SoundObjSimple mSoundObj; + /* 0x668 */ daB_YO_c* mpBlizzeta; + /* 0x66C */ cXyz mFallTarget; + /* 0x678 */ csXyz mWobbleAngle; + /* 0x680 */ f32 mScaleF; + /* 0x684 */ f32 mYoseSpeed; + /* 0x688 */ f32 mCcOffset; + /* 0x68C */ int mIcicleNo; + /* 0x690 */ int mSubNumber; + /* 0x694 */ int mAction; + /* 0x698 */ int mMode; + /* 0x69C */ s16 mTargetAngleX; + /* 0x69E */ s16 mAngleSpeedY; + /* 0x6A0 */ u16 mIFrameTimer; + /* 0x6A4 */ int mTimer1; + /* 0x6A8 */ int mTimer2; + /* 0x6AC */ u8 mInitAction; + /* 0x6AD */ bool field_0x6ad; + /* 0x6AE */ u8 mDeleteTimer; + /* 0x6B0 */ J3DModel* mpCrackModel; + /* 0x6B4 */ cXyz mpCrackPos; + /* 0x6C0 */ f32 mCrackAlpha; + /* 0x6C4 */ s16 mpCrackAngleY; + /* 0x6C8 */ dBgS_GndChk mGndChk; + /* 0x71C */ dCcD_Stts mCcStts; + /* 0x758 */ dCcD_Cyl mCcCyl0; + /* 0x894 */ dCcD_Cyl mCcCyl1; + /* 0x9D0 */ dCcD_Cyl mCcCyl2; + /* 0xB0C */ dCcU_AtInfo mAtInfo; + /* 0xB30 */ u32 mParticleKey; + /* 0xB34 */ u32 mAppearKey; + /* 0xB38 */ bool mHIOInit; + + enum Action { + /* 0 */ ACT_FIRST, + /* 1 */ ACT_RISE_UP, + /* 2 */ ACT_DEMO_REVIVAL, + /* 3 */ ACT_SINGLE_FALL, + /* 4 */ ACT_YOSE, + /* 5 */ ACT_YOSE_FALL, + /* 6 */ ACT_DAMAGE, + /* 7 */ ACT_DEATH, + }; }; -STATIC_ASSERT(sizeof(daB_YOI_c) == 0xb3c); +STATIC_ASSERT(sizeof(daB_YOI_c) == 0xB3C); class daB_YOI_HIO_c { public: /* 8063A14C */ daB_YOI_HIO_c(); - /* 8063DBD0 */ ~daB_YOI_HIO_c(); + /* 8063DBD0 */ virtual ~daB_YOI_HIO_c() {} + + /* 0x4 */ s8 field_0x4; + /* 0x8 */ f32 mScaleY; + /* 0xC */ f32 mScaleXZ; }; +STATIC_ASSERT(sizeof(daB_YOI_HIO_c) == 0x10); + #endif /* D_A_B_YO_ICE_H */ diff --git a/include/d/actor/d_a_mirror.h b/include/d/actor/d_a_mirror.h index c8a72919c9..1d6fbd21bd 100644 --- a/include/d/actor/d_a_mirror.h +++ b/include/d/actor/d_a_mirror.h @@ -44,7 +44,7 @@ public: /* 808723E4 */ int execute(); /* 80872560 */ int entryModel(J3DModel*); /* 8003194C */ static int entry(J3DModel*); - /* 80031990 */ static int remove(); + /* 80031990 */ static bool remove(); inline int Delete(); inline int draw(); diff --git a/include/d/actor/d_a_obj_ystone.h b/include/d/actor/d_a_obj_ystone.h index bc86d689b2..830e5a6d30 100644 --- a/include/d/actor/d_a_obj_ystone.h +++ b/include/d/actor/d_a_obj_ystone.h @@ -18,6 +18,14 @@ public: current.pos = i_pos; } + void setShapeAngle(csXyz i_angle) { + shape_angle = i_angle; + } + + void setScale(f32 i_scale) { + mScaleF = i_scale; + } + void setBaseMtx(MtxP i_mtx) { field_0x598 = 1; if (mLevel < 3) { diff --git a/include/d/d_camera.h b/include/d/d_camera.h index 79d334354a..b8dd28ac64 100644 --- a/include/d/d_camera.h +++ b/include/d/d_camera.h @@ -361,7 +361,7 @@ public: /* 80181278 */ void SetBlureActor(fopAc_ac_c*); /* 80181280 */ void blureCamera(); /* 80181490 */ void onHorseDush(); - /* 80181500 */ void GetForceLockOnActor(); + /* 80181500 */ fopAc_ac_c* GetForceLockOnActor(); /* 80181534 */ void ForceLockOn(fopAc_ac_c*); /* 80181560 */ void ForceLockOff(fpc_ProcID); /* 8018159C */ void ForceLockOff(fopAc_ac_c*); diff --git a/include/d/d_cc_d.h b/include/d/d_cc_d.h index 6ec77a91ea..592a6d6e66 100644 --- a/include/d/d_cc_d.h +++ b/include/d/d_cc_d.h @@ -50,6 +50,7 @@ enum dCcD_Material { enum dCcG_At_Spl { /* 0x0 */ dCcG_At_Spl_UNK_0, /* 0x1 */ dCcG_At_Spl_UNK_1, + /* 0xD */ dCcG_At_Spl_UNK_D = 0xD, }; enum dCcG_Tg_Spl { |
