d_a_obj_lv1Candle01, d_a_obj_lv2Candle OK (#1978)

Co-authored-by: hatal175 <hatal175@users.noreply.github.com>
This commit is contained in:
Caroline Madsen
2023-11-12 00:12:21 -05:00
committed by GitHub
parent 0b95ee0c23
commit 18cb3aa72f
53 changed files with 833 additions and 3301 deletions
+1
View File
@@ -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); }
@@ -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;
@@ -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 */
@@ -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 */
@@ -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 */