diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/actor/d_a_e_db.h | 67 | ||||
| -rw-r--r-- | include/d/actor/d_a_e_oc.h | 1 | ||||
| -rw-r--r-- | include/d/actor/d_a_e_rdb.h | 2 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_key.h | 41 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_keyhole.h | 71 | ||||
| -rw-r--r-- | include/d/actor/d_a_obj_smallkey.h | 98 | ||||
| -rw-r--r-- | include/d/d_tresure.h | 4 |
7 files changed, 230 insertions, 54 deletions
diff --git a/include/d/actor/d_a_e_db.h b/include/d/actor/d_a_e_db.h index cf4d94e43a..1b5690b8d3 100644 --- a/include/d/actor/d_a_e_db.h +++ b/include/d/actor/d_a_e_db.h @@ -1,6 +1,10 @@ #ifndef D_A_E_DB_H #define D_A_E_DB_H + #include "f_op/f_op_actor_mng.h" +#include "d/d_bg_s_acch.h" +#include "d/d_cc_d.h" +#include "d/d_cc_uty.h" /** * @ingroup actors-enemies @@ -10,12 +14,65 @@ * @details * */ -class e_db_class : public fopEn_enemy_c { +class e_db_class { public: - /* 0x5ac */ u8 field_0x5ac[0x66a - 0x5ac]; - /* 0x66A */ s16 field_0x66a; - /* 0x66C */ s16 field_0x66c; - /* 0x66E */ u8 field_0x66e[0x1270 - 0x66e]; + /* 0x0000 */ fopEn_enemy_c enemy; + /* 0x05AC */ request_of_phase_process_class field_0x5ac; + /* 0x05B4 */ u8 field_0x5b4; + /* 0x05B5 */ u8 field_0x5b5; + /* 0x05B6 */ u8 field_0x5b6; + /* 0x05B7 */ u8 field_0x5b7; + /* 0x05B8 */ mDoExt_McaMorfSO* field_0x5b8; + /* 0x05BC */ Z2CreatureEnemy sound; + /* 0x0660 */ int field_0x660; + /* 0x0664 */ u32 field_0x664; + /* 0x0668 */ s16 field_0x668; + /* 0x066A */ s16 field_0x66a; + /* 0x066C */ s16 field_0x66c; + /* 0x0670 */ f32 field_0x670; + /* 0x0674 */ cXyz field_0x674; + /* 0x0680 */ s16 field_0x680; + /* 0x0682 */ u8 field_0x682[0x0684 - 0x0682]; + /* 0x0684 */ s16 field_0x684; + /* 0x0688 */ f32 field_0x688; + /* 0x068C */ f32 field_0x68c; + /* 0x0690 */ f32 field_0x690; + /* 0x0694 */ s16 field_0x694[3]; + /* 0x069A */ s16 field_0x69a; + /* 0x069C */ cXyz field_0x69c[12]; + /* 0x072C */ csXyz field_0x72c[12]; + /* 0x0774 */ J3DModel* field_0x774[11]; + /* 0x07A0 */ u8 field_0x7A0[0x07D4 - 0x07A0]; + /* 0x07D4 */ f32 field_0x7d4[11]; + /* 0x0800 */ u8 field_0x800[0x0804 - 0x0800]; + /* 0x0804 */ mDoExt_3DlineMat1_c field_0x804; + /* 0x0840 */ f32 field_0x840; + /* 0x0844 */ f32 field_0x844; + /* 0x0848 */ f32 field_0x848; + /* 0x084C */ u8 field_0x84C[0x084E - 0x084C]; + /* 0x084E */ s16 field_0x84e; + /* 0x0850 */ u8 field_0x850; + /* 0x0851 */ u8 field_0x851; + /* 0x0852 */ s8 field_0x852; + /* 0x0854 */ f32 field_0x854; + /* 0x0858 */ f32 field_0x858; + /* 0x085C */ s16 field_0x85c; + /* 0x085E */ u8 field_0x85E[0x0860 - 0x085E]; + /* 0x0860 */ s16 field_0x860; + /* 0x0864 */ f32 field_0x864; + /* 0x0868 */ dCcD_Stts field_0x868; + /* 0x08A4 */ dCcD_Sph field_0x8a4; + /* 0x09DC */ dCcD_Sph field_0x9dc; + /* 0x0B14 */ u8 field_0xb14; + /* 0x0B18 */ dCcD_Sph field_0xb18[4]; + /* 0x0FF8 */ dCcU_AtInfo field_0xff8; + /* 0x101C */ dBgS_AcchCir field_0x101c; + /* 0x105C */ dBgS_ObjAcch field_0x105c; + /* 0x1234 */ fpc_ProcID field_0x1234; + /* 0x1238 */ u8 field_0x1238; + /* 0x1239 */ u8 field_0x1239; + /* 0x123A */ u8 field_0x123A[0x126C - 0x123A]; + /* 0x126C */ u8 field_0x126c; }; STATIC_ASSERT(sizeof(e_db_class) == 0x1270); diff --git a/include/d/actor/d_a_e_oc.h b/include/d/actor/d_a_e_oc.h index 1cd72f679a..d096439948 100644 --- a/include/d/actor/d_a_e_oc.h +++ b/include/d/actor/d_a_e_oc.h @@ -84,6 +84,7 @@ public: f32 getPlayerRange() const { return mPlayerRange; } int getActionMode() const { return mActionMode; } daE_OC_c* getTalkOc() const { return mpTalk; } + J3DModel* getOcModel() { return mpMorf->getModel(); } private: /* 0x5a0 */ request_of_phase_process_class mPhaseReqs[2]; diff --git a/include/d/actor/d_a_e_rdb.h b/include/d/actor/d_a_e_rdb.h index 7cbda2ddfb..50f67eebdd 100644 --- a/include/d/actor/d_a_e_rdb.h +++ b/include/d/actor/d_a_e_rdb.h @@ -193,7 +193,7 @@ public: /* 0x10F4 */ f32 mDemoCamFovy; /* 0x10F8 */ f32 field_0x10f8; /* 0x10FC */ u8 field_0x10fc[0x1104 - 0x10fc]; - /* 0x1104 */ s8 field_0x1104; + /* 0x1104 */ u8 field_0x1104; /* 0x1105 */ u8 field_0x1105[0x1108 - 0x1105]; /* 0x1108 */ dMsgFlow_c mMsgFlow; }; diff --git a/include/d/actor/d_a_obj_key.h b/include/d/actor/d_a_obj_key.h index f518b458bf..78b5f9e985 100644 --- a/include/d/actor/d_a_obj_key.h +++ b/include/d/actor/d_a_obj_key.h @@ -2,6 +2,17 @@ #define D_A_OBJ_KEY_H #include "f_op/f_op_actor_mng.h" +#include "d/d_bg_s_acch.h" +#include "d/d_cc_d.h" + +struct obj_key_s { + /* 0x00 */ J3DModel* model[3]; + /* 0x0C */ cXyz pos[3]; + /* 0x30 */ cXyz field_0x30[3]; + /* 0x54 */ csXyz angle[3]; + /* 0x68 */ f32 ground_y[3]; + /* 0x74 */ fpc_ProcID key_actor_id; +}; /** * @ingroup actors-objects @@ -11,9 +22,27 @@ * @details * */ -class obj_key_class : public fopAc_ac_c { -private: - /* 0x568 */ u8 field_0x568[0x9b8 - 0x568]; +class obj_key_class { +public: + /* 0x000 */ fopAc_ac_c actor; + /* 0x568 */ request_of_phase_process_class phase; + /* 0x570 */ obj_key_s key_s; + /* 0x5E8 */ Z2SoundObjSimple sound; + /* 0x608 */ u8 field_0x608[0x60A - 0x608]; + /* 0x60A */ s16 action; + /* 0x60C */ s16 field_0x60c; + /* 0x60E */ s16 timers[2]; + /* 0x612 */ s16 field_0x612; + /* 0x614 */ s16 field_0x614; + /* 0x616 */ s16 field_0x616; + /* 0x618 */ f32 field_0x618; + /* 0x61C */ u8 hide; + /* 0x620 */ dBgS_AcchCir acchcir; + /* 0x660 */ dBgS_ObjAcch acch; + /* 0x838 */ dCcD_Stts ccStts; + /* 0x874 */ dCcD_Sph ccSph; + /* 0x9AC */ u32 field_0x9ac[2]; + /* 0x9B4 */ u8 HIOInit; }; STATIC_ASSERT(sizeof(obj_key_class) == 0x9b8); @@ -21,7 +50,11 @@ STATIC_ASSERT(sizeof(obj_key_class) == 0x9b8); class daObj_Key_HIO_c { public: /* 80C3F40C */ daObj_Key_HIO_c(); - /* 80C40F28 */ ~daObj_Key_HIO_c(); + /* 80C40F28 */ virtual ~daObj_Key_HIO_c() {} + + /* 0x4 */ s8 id; + /* 0x8 */ f32 size; + /* 0xC */ f32 chain_size; }; diff --git a/include/d/actor/d_a_obj_keyhole.h b/include/d/actor/d_a_obj_keyhole.h index 0df0d79a20..ac3b92ea7f 100644 --- a/include/d/actor/d_a_obj_keyhole.h +++ b/include/d/actor/d_a_obj_keyhole.h @@ -2,6 +2,20 @@ #define D_A_OBJ_KEYHOLE_H #include "f_op/f_op_actor_mng.h" +#include "d/d_cc_d.h" +#include "d/d_cc_uty.h" + +struct kh_chain_s { + /* 0x000 */ J3DModel* model[16]; + /* 0x040 */ cXyz field_0x40; + /* 0x04C */ cXyz field_0x4c; + /* 0x058 */ cXyz field_0x58[16]; + /* 0x118 */ cXyz field_0x118[16]; + /* 0x1D8 */ csXyz field_0x1d8[16]; + /* 0x238 */ f32 field_0x238; + /* 0x23C */ dCcD_Stts ccStts; + /* 0x278 */ dCcD_Sph ccSph[3]; +}; /** * @ingroup actors-objects @@ -11,29 +25,58 @@ * @details * */ -class obj_keyhole_class : public fopAc_ac_c { +class obj_keyhole_class{ public: - void setOpen() { mOpenState = 1; } - bool checkOpenEnd() { return mOpenState == 3; } + void setOpen() { open_state = 1; } + void setOpenEnd() { open_state = 3; } + bool checkOpenEnd() { return open_state == 3; } + bool checkOpen() { return open_state == 1; } -private: - /* 0x0568 */ u8 field_0x0568[0x2ca4 - 0x568]; - /* 0x2ca4 */ u8 mOpenState; - /* 0x2ca5 */ u8 field_0x2ca5[0x2cb8 - 0x2ca5]; + /* 0x0000 */ fopAc_ac_c actor; + /* 0x0568 */ request_of_phase_process_class phase; + /* 0x0570 */ char* arcname; + /* 0x0574 */ mDoExt_McaMorf* lock_modelMorf; + /* 0x0578 */ J3DModel* lock_model; + /* 0x057C */ int chain_num; + /* 0x0580 */ int field_0x580; + /* 0x0584 */ u8 arg0; + /* 0x0588 */ Z2Creature sound; + /* 0x0618 */ s16 hit_timer; + /* 0x061A */ s16 field_0x61a; + /* 0x061C */ s16 action; + /* 0x061E */ s16 mode; + /* 0x0620 */ s16 timers[2]; + /* 0x0624 */ kh_chain_s chain_s[6]; + /* 0x2AE4 */ f32 field_0x2ae4; + /* 0x2AE8 */ f32 field_0x2ae8; + /* 0x2AEC */ s16 field_0x2aec; + /* 0x2AF0 */ f32 field_0x2af0; + /* 0x2AF4 */ f32 field_0x2af4; + /* 0x2AF8 */ f32 field_0x2af8; + /* 0x2AFC */ f32 field_0x2afc; + /* 0x2B00 */ s16 field_0x2b00; + /* 0x2B04 */ dCcD_Stts ccStts; + /* 0x2B40 */ dCcD_Sph ccSph; + /* 0x2C78 */ dCcU_AtInfo atInfo; + /* 0x2C9C */ u32 field_0x2c9c; + /* 0x2CA0 */ u32 field_0x2ca0; + /* 0x2CA4 */ u8 open_state; + /* 0x2CA5 */ u8 HIOInit; + /* 0x2CA6 */ s8 field_0x2ca6; + /* 0x2CA7 */ s8 hide_lock; + /* 0x2CA8 */ cXyz field_0x2ca8; + /* 0x2CB4 */ u8 field_0x2cb4; }; STATIC_ASSERT(sizeof(obj_keyhole_class) == 0x2CB8); -class kh_chain_s { -public: - /* 80C436A0 */ ~kh_chain_s(); - /* 80C437A4 */ kh_chain_s(); -}; - class daObj_Keyhole_HIO_c { public: /* 80C4124C */ daObj_Keyhole_HIO_c(); - /* 80C4394C */ ~daObj_Keyhole_HIO_c(); + /* 80C4394C */ virtual ~daObj_Keyhole_HIO_c() {} + + /* 0x4 */ s8 id; + /* 0x8 */ f32 obj_size; }; diff --git a/include/d/actor/d_a_obj_smallkey.h b/include/d/actor/d_a_obj_smallkey.h index 10be114381..d6bb966664 100644 --- a/include/d/actor/d_a_obj_smallkey.h +++ b/include/d/actor/d_a_obj_smallkey.h @@ -2,6 +2,8 @@ #define D_A_OBJ_SMALLKEY_H #include "f_op/f_op_actor_mng.h" +#include "d/actor/d_a_itembase.h" +#include "d/d_particle.h" /** * @ingroup actors-objects @@ -11,52 +13,88 @@ * @details * */ -class daKey_c : public fopAc_ac_c { +class daKey_c : public daItemBase_c { +private: + /* 80CDB2E0 */ void seStartTwinkle_private(u32); + public: + enum daKey_Status_e { + STATUS_INIT_e, + STATUS_PARENT_WAIT_e, + STATUS_WAIT_e, + STATUS_ORDER_GET_DEMO_e, + STATUS_GET_DEMO_e, + STATUS_SW_ON_WAIT_e, + STATUS_BOOMERANG_CARRY_e, + STATUS_E_GB_e, + }; + /* 80CD9F2C */ void initBaseMtx(); /* 80CD9F68 */ void setBaseMtx(); - /* 80CD9FDC */ void Create(); - /* 80CDA15C */ bool __CreateHeap(); - /* 80CDA164 */ void create(); + /* 80CD9FDC */ int Create(); + /* 80CDA15C */ int __CreateHeap(); + /* 80CDA164 */ int create(); /* 80CDA680 */ void bg_check(); - /* 80CDA7E8 */ void actionInitInit(); - /* 80CDA81C */ void actionInit(); - /* 80CDA8C8 */ void actionParentWaitInit(); - /* 80CDA8FC */ void actionParentWait(); - /* 80CDA9AC */ void actionWaitInit(); - /* 80CDAA28 */ void actionWait(); - /* 80CDAB74 */ void initActionOrderGetDemo(); - /* 80CDAC18 */ void actionOrderGetDemo(); - /* 80CDAC94 */ void actionGetDemo(); - /* 80CDAD28 */ void actionInitSwOnWait(); - /* 80CDADD4 */ void actionSwOnWait(); - /* 80CDAE54 */ void actionInitBoomerangCarry(); - /* 80CDAF40 */ void actionBoomerangCarry(); + /* 80CDA7E8 */ int actionInitInit(); + /* 80CDA81C */ int actionInit(); + /* 80CDA8C8 */ int actionParentWaitInit(); + /* 80CDA8FC */ int actionParentWait(); + /* 80CDA9AC */ int actionWaitInit(); + /* 80CDAA28 */ int actionWait(); + /* 80CDAB74 */ int initActionOrderGetDemo(); + /* 80CDAC18 */ int actionOrderGetDemo(); + /* 80CDAC94 */ int actionGetDemo(); + /* 80CDAD28 */ int actionInitSwOnWait(); + /* 80CDADD4 */ int actionSwOnWait(); + /* 80CDAE54 */ int actionInitBoomerangCarry(); + /* 80CDAF40 */ int actionBoomerangCarry(); /* 80CDAFB4 */ void effectSet(); /* 80CDB0D8 */ void effectStop(); /* 80CDB128 */ void effectCtrl(); - /* 80CDB2E0 */ void seStartTwinkle_private(u32); - /* 80CDB36C */ void actionInitE_GB(); - /* 80CDB3D8 */ void actionE_GB(); - /* 80CDB404 */ void execute(); - /* 80CDB5D4 */ void draw(); - /* 80CDB628 */ void _delete(); + /* 80CDB36C */ int actionInitE_GB(); + /* 80CDB3D8 */ int actionE_GB(); + /* 80CDB404 */ int execute(); + /* 80CDB5D4 */ int draw(); + /* 80CDB628 */ int _delete(); + + int getSwNo() { return fopAcM_GetParamBit(this, 16, 8); } + int getSaveBitNo() { return fopAcM_GetParamBit(this, 8, 8); } - void setPos(cXyz pos) { - current.pos = pos; + u16 getSwOnWaitTimer() { return field_0x93a & 0x3F; } + + void setStatus(u8 i_status) { mStatus = i_status; } + bool chkStatus(u8 i_status) { return mStatus == i_status; } + + void setPos(cXyz i_pos) { + current.pos = i_pos; } - void startMove(f32 param_1, f32 param_2) { - speedF = param_1; - speed.y = param_2; + void startMove(f32 i_speedF, f32 i_speedY) { + speedF = i_speedF; + speed.y = i_speedY; gravity = -6.0f; actionWaitInit(); } - /* 0x568 */ u8 field_0x568[0x978 - 0x568]; + void seStartTwinkle(u32 i_soundId, cXyz* param_1) { + field_0x978 = *param_1; + mDoAud_seStartLevel(i_soundId, &field_0x978, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + field_0x984 = 1; + } + + /* 0x92C */ fpc_ProcID mItemId; + /* 0x930 */ int field_0x930; + /* 0x934 */ u8 mStatus; + /* 0x935 */ u8 mSwOnTimer; + /* 0x936 */ u8 field_0x936; + /* 0x937 */ u8 mIsPrmInit; + /* 0x938 */ s16 field_0x938; + /* 0x93A */ u16 field_0x93a; + /* 0x93C */ dPa_followEcallBack mEffect[2]; + /* 0x964 */ csXyz mEffRot; + /* 0x96C */ cXyz mPrevSpeed; /* 0x978 */ cXyz field_0x978; /* 0x984 */ u8 field_0x984; - /* 0x985 */ u8 field_0x985[0x988 - 0x985]; }; STATIC_ASSERT(sizeof(daKey_c) == 0x988); diff --git a/include/d/d_tresure.h b/include/d/d_tresure.h index 30c4827465..9eab96cb47 100644 --- a/include/d/d_tresure.h +++ b/include/d/d_tresure.h @@ -90,6 +90,10 @@ public: setPosition(i_tboxNo, 11, i_pos, -1); } + static void offStatus(int param_0, int i_flag) { + offStatus(0, param_0, i_flag); + } + static u8 const typeToTypeGroup[17][2]; static type_group_list mTypeGroupListAll[17]; static typeGroupData_c* mTypeGroupData; |
