diff options
Diffstat (limited to 'include')
5 files changed, 194 insertions, 10 deletions
diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h index 62d3e2136a..785cfdedfb 100644 --- a/include/SSystem/SComponent/c_cc_d.h +++ b/include/SSystem/SComponent/c_cc_d.h @@ -485,6 +485,7 @@ public: void OffCoSPrmBit(u32 flag) { mObjCo.OffSPrmBit(flag); } void SetAtType(u32 type) { mObjAt.SetType(type); } void OnAtSetBit() { mObjAt.OnSPrmBit(1); } + u32 MskTgSPrm(u32 mask) const { return mObjTg.MskSPrm(mask); } void SetAtAtp(int atp) { mObjAt.SetAtp(atp); } void OffCoSetBit() { mObjCo.ClrSet(); } void SetTgType(u32 type) { mObjTg.SetType(type); } diff --git a/include/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00.h b/include/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00.h index 8044f34cd0..87df9eea6e 100644 --- a/include/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00.h +++ b/include/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00.h @@ -5,7 +5,6 @@ #include "f_op/f_op_actor.h" #include "d/cc/d_cc_d.h" #include "m_Do/m_Do_hostIO.h" -#include "dolphin/types.h" class daLv1Cdl00_HIO_c : public mDoHIO_entry_c { public: @@ -35,14 +34,14 @@ public: /* 0x574 */ dCcD_Stts mStts; /* 0x5B0 */ dCcD_Cyl mCyl; /* 0x6EC */ cXyz mTorchPos; - /* 0x6F8 */ bool mIsOn; - /* 0x6F9 */ u8 mSwitch; - /* 0x6FA */ u8 mStartsOn; + /* 0x6F8 */ bool mIsLit; + /* 0x6F9 */ u8 mIsSwitch; + /* 0x6FA */ u8 mSwType; /* 0x6FC */ cXyz mLightPos; - /* 0x708 */ u8 field_0x708; - /* 0x70C */ f32 field_0x70c; + /* 0x708 */ u8 mLightType; + /* 0x70C */ f32 mIntensity; /* 0x710 */ LIGHT_INFLUENCE mLight; - /* 0x730 */ u8 field_0x730; + /* 0x730 */ u8 mTgHit; /* 0x734 */ Z2SoundObjSimple mSound; static dCcD_SrcGObjInf const mCcDObjInfo; diff --git a/include/rel/d/a/obj/d_a_obj_lv1Candle01/d_a_obj_lv1Candle01.h b/include/rel/d/a/obj/d_a_obj_lv1Candle01/d_a_obj_lv1Candle01.h index 2ba8d6bf2e..11ece32505 100644 --- a/include/rel/d/a/obj/d_a_obj_lv1Candle01/d_a_obj_lv1Candle01.h +++ b/include/rel/d/a/obj/d_a_obj_lv1Candle01/d_a_obj_lv1Candle01.h @@ -1,6 +1,51 @@ #ifndef D_A_OBJ_LV1CANDLE01_H #define D_A_OBJ_LV1CANDLE01_H -#include "dolphin/types.h" +#include "SSystem/SComponent/c_phase.h" +#include "d/bg/d_bg_s_movebg_actor.h" +#include "d/cc/d_cc_d.h" +#include "m_Do/m_Do_hostIO.h" + +class daLv1Cdl01_HIO_c : public mDoHIO_entry_c { +public: + /* 80C56CAC */ daLv1Cdl01_HIO_c(); + /* 80C5777C */ ~daLv1Cdl01_HIO_c() {} + + /* 0x4 */ u8 field_0x4; + /* 0x5 */ u8 field_0x5; +}; + +class daLv1Cdl01_c : public dBgS_MoveBgActor { +public: + /* 80C56D20 */ void setBaseMtx(); + /* 80C56DA8 */ int CreateHeap(); + /* 80C56E14 */ cPhs__Step create(); + /* 80C570D8 */ void lightInit(); + /* 80C57164 */ void setLight(); + /* 80C57194 */ void cutLight(); + /* 80C571C4 */ void pointLightProc(); + /* 80C57274 */ int Execute(f32 (**)[3][4]); + /* 80C575F4 */ int Draw(); + /* 80C57698 */ int Delete(); + + /* 0x5A0 */ request_of_phase_process_class mPhase; + /* 0x5A8 */ J3DModel* mpModel; + /* 0x5AC */ dCcD_Stts mStts; + /* 0x5E8 */ dCcD_Cyl mCyl; + /* 0x724 */ cXyz mTorchPos; + /* 0x730 */ bool mIsLit; + /* 0x731 */ u8 mTimer; + /* 0x734 */ cXyz mLightPos; + /* 0x740 */ u8 mLightType; + /* 0x744 */ f32 mIntensity; + /* 0x748 */ LIGHT_INFLUENCE mLight; + /* 0x768 */ u8 mTgHit; + /* 0x76C */ Z2SoundObjSimple mSound; + + static dCcD_SrcGObjInf const mCcDObjInfo; + static dCcD_SrcCyl mCcDCyl; +}; + +STATIC_ASSERT(sizeof(daLv1Cdl01_c) == 0x78C); #endif /* D_A_OBJ_LV1CANDLE01_H */ diff --git a/include/rel/d/a/obj/d_a_obj_lv2Candle/d_a_obj_lv2Candle.h b/include/rel/d/a/obj/d_a_obj_lv2Candle/d_a_obj_lv2Candle.h index 4450cdb755..1c277416e8 100644 --- a/include/rel/d/a/obj/d_a_obj_lv2Candle/d_a_obj_lv2Candle.h +++ b/include/rel/d/a/obj/d_a_obj_lv2Candle/d_a_obj_lv2Candle.h @@ -1,6 +1,79 @@ #ifndef D_A_OBJ_LV2CANDLE_H #define D_A_OBJ_LV2CANDLE_H -#include "dolphin/types.h" +#include "SSystem/SComponent/c_phase.h" +#include "d/cc/d_cc_d.h" +#include "f_op/f_op_actor_mng.h" +#include "m_Do/m_Do_hostIO.h" +#include "rel/d/a/obj/d_a_obj_lv4CandleTag/d_a_obj_lv4CandleTag.h" + +class daLv2Candle_HIO_c : public mDoHIO_entry_c { +public: + /* 8058E04C */ daLv2Candle_HIO_c(); + /* 8058F050 */ ~daLv2Candle_HIO_c() {} + + /* 0x04 */ u8 mTimer; + /* 0x08 */ f32 mPow; + /* 0x0C */ f32 mAnmMaxStep; + /* 0x10 */ f32 mAnmIntensity[6]; + /* 0x28 */ u8 mAnmTimers[6]; + /* 0x2E */ u8 mColor1R; + /* 0x2F */ u8 mColor1G; + /* 0x30 */ u8 mColor1B; + /* 0x31 */ u8 mColor2R; + /* 0x32 */ u8 mColor2G; + /* 0x33 */ u8 mColor2B; +}; + +class daLv2Candle_c : public fopAc_ac_c { +public: + /* 8058E13C */ void setBaseMtx(); + /* 8058E1C4 */ int CreateHeap(); + /* 8058E244 */ cPhs__Step create(); + /* 8058E5BC */ u8 isSwitch(); + /* 8058E608 */ static int createHeapCallBack(fopAc_ac_c*); + /* 8058E628 */ static void* searchDemoTagAct(void*, void*); + /* 8058E678 */ void lightInit(); + /* 8058E720 */ void setLight(); + /* 8058E750 */ void cutLight(); + /* 8058E780 */ void pointLightProc(); + /* 8058E99C */ int Execute(); + /* 8058EEC8 */ int Draw(); + /* 8058EF6C */ int Delete(); + + int getOffType() { return fopAcM_GetParamBit(this, 0x18, 4); } + u8 getModelType() { return fopAcM_GetParamBit(this, 0x14, 4); } + u8 getLightAnm() { return fopAcM_GetParamBit(this, 0x10, 4); } + u8 getLightType() { return fopAcM_GetParamBit(this, 0xc, 4); } + u8 getSwType() { return fopAcM_GetParamBit(this, 8, 4); } + u8 getSw() { return fopAcM_GetParamBit(this, 0, 8); } + + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ J3DModel* mpModel; + /* 0x574 */ dCcD_Stts mStts; + /* 0x5B0 */ dCcD_Cyl mCyl; + /* 0x6EC */ cXyz mTorchPos; + /* 0x6F8 */ u8 mSw; + /* 0x6F9 */ bool mIsLit; + /* 0x6FA */ u8 mIsSwitch; + /* 0x6FB */ u8 mTimer; + /* 0x6FC */ u8 mSwType; + /* 0x6FD */ u8 mModelType; + /* 0x6FE */ u8 mLightAnm; + /* 0x700 */ cXyz mLightPos; + /* 0x70C */ u8 mLightType; + /* 0x70D */ u8 mAnmTimer; + /* 0x70E */ u8 mAnmStage; + /* 0x710 */ f32 mIntensity; + /* 0x714 */ LIGHT_INFLUENCE mLight; + /* 0x734 */ dalv4CandleTag_c* field_0x734; + /* 0x738 */ u8 mTgHit; + /* 0x73C */ Z2SoundObjSimple mSound; + + static dCcD_SrcGObjInf const mCcDObjInfo; + static dCcD_SrcCyl mCcDCyl; +}; + +STATIC_ASSERT(sizeof(daLv2Candle_c) == 0x75C); #endif /* D_A_OBJ_LV2CANDLE_H */ diff --git a/include/rel/d/a/obj/d_a_obj_lv4CandleTag/d_a_obj_lv4CandleTag.h b/include/rel/d/a/obj/d_a_obj_lv4CandleTag/d_a_obj_lv4CandleTag.h index b086af36b4..c796bb9167 100644 --- a/include/rel/d/a/obj/d_a_obj_lv4CandleTag/d_a_obj_lv4CandleTag.h +++ b/include/rel/d/a/obj/d_a_obj_lv4CandleTag/d_a_obj_lv4CandleTag.h @@ -1,6 +1,72 @@ #ifndef D_A_OBJ_LV4CANDLETAG_H #define D_A_OBJ_LV4CANDLETAG_H -#include "dolphin/types.h" +#include "d/event/d_event_lib.h" +#include "f_op/f_op_actor_mng.h" +#include "m_Do/m_Do_hostIO.h" + +struct unknown { + u8 unk[8]; +}; + +// dalv4CandleTag_c should inherit fopAc_ac_c, unknown, and dEvLib_callback_c +// but this causes issues with weak function ordering +class dalv4CandleTag_c : public fopAc_ac_c { +public: + enum Mode { + MODE_WATCH, + MODE_NG, + MODE_NG_WAIT, + MODE_END, + }; + + // dalv4CandleTag_c() : dEvLib_callback_c(this) {} + ~dalv4CandleTag_c() {} + + // These members are not real, remove once inheritance issue is resolved + unknown mBase2; + dEvLib_callback_c mBase3; + void* mVtable; + + /* 80C5D4B8 */ void setBaseMtx(); + /* 80C5D4F0 */ cPhs__Step create(); + /* 80C5D5D4 */ int Execute(); + /* 80C5D618 */ void procMain(); + /* 80C5D6D4 */ void init_modeWatch(); + /* 80C5D6E0 */ void modeWatch(); + /* 80C5D78C */ void init_modeNG(); + /* 80C5D814 */ void modeNG(); + /* 80C5D8A0 */ void init_modeNGWait(); + /* 80C5D8AC */ void modeNGWait(); + /* 80C5D8FC */ void init_modeEnd(); + /* 80C5D908 */ void modeEnd(); + /* 80C5D90C */ int eventStart(); + /* 80C5D930 */ int Draw(); + /* 80C5D938 */ int Delete(); + + u8 getSwTop() { return fopAcM_GetParamBit(this, 0, 8); } + u8 getSwOK() { return fopAcM_GetParamBit(this, 8, 8); } + u8 getSwNG() { return fopAcM_GetParamBit(this, 0x10, 8); } + u8 getSwTotal() { return fopAcM_GetParamBit(this, 0x18, 8); } + int getEventID() { return shape_angle.x & 0xff; } + u8 getNGSwStat() { return i_fopAcM_isSwitch(this, mSwNG); } + + /* 0x584 */ u8 mMode; + /* 0x585 */ u8 mSwTop; + /* 0x586 */ u8 mSwOK; + /* 0x587 */ u8 mSwNG; + /* 0x588 */ u8 mSwTotal; + /* 0x589 */ u8 mTimer; +}; + +STATIC_ASSERT(sizeof(dalv4CandleTag_c) == 0x58C); + +class dalv4CandleTag_HIO_c : public mDoHIO_entry_c { +public: + /* 80C5D44C */ dalv4CandleTag_HIO_c(); + /* 80C5D9C0 */ ~dalv4CandleTag_HIO_c() {} + + u8 mTimer; +}; #endif /* D_A_OBJ_LV4CANDLETAG_H */ |
