diff options
| author | Caroline Madsen <69010899+randomsalience@users.noreply.github.com> | 2023-11-04 11:35:16 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-04 17:35:16 +0200 |
| commit | ea52bf09a467ab5b5df84cb6fbb83ca8c81cbe98 (patch) | |
| tree | 4435275f21d4ea54bff55bef0fc1faa567e7ff54 /rel | |
| parent | 2b766ef3ba779975f3156c0448edde6fb2979c13 (diff) | |
d_a_obj_lvl1Candle00 OK (#1976)
* d_a_obj_lv1Candle00 OK
* Update Progress.md
Diffstat (limited to 'rel')
| -rw-r--r-- | rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00.cpp | 830 |
1 files changed, 253 insertions, 577 deletions
diff --git a/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00.cpp b/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00.cpp index b6ba25121b..0e078c4a9c 100644 --- a/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00.cpp +++ b/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00.cpp @@ -4,638 +4,314 @@ // #include "rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00.h" -#include "dol2asm.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "SSystem/SComponent/c_phase.h" +#include "f_op/f_op_actor.h" +#include "f_op/f_op_actor_mng.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" +#include "f_pc/f_pc_method.h" -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct mDoHIO_entry_c { - /* 80C55D38 */ ~mDoHIO_entry_c(); -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daLv1Cdl00_c { - /* 80C55D80 */ void setBaseMtx(); - /* 80C55E08 */ void CreateHeap(); - /* 80C55E74 */ void create(); - /* 80C561A0 */ void createHeapCallBack(fopAc_ac_c*); - /* 80C561C0 */ void lightInit(); - /* 80C56268 */ void setLight(); - /* 80C562A0 */ void cutLight(); - /* 80C562D8 */ void pointLightProc(); - /* 80C56388 */ void Execute(); - /* 80C567EC */ void Draw(); - /* 80C56890 */ void Delete(); - - static u8 const mCcDObjInfo[48]; - static u8 mCcDCyl[68]; -}; - -struct daLv1Cdl00_HIO_c { - /* 80C55D0C */ daLv1Cdl00_HIO_c(); - /* 80C56970 */ ~daLv1Cdl00_HIO_c(); -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 800352B0 */ void offSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -struct cXyz {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct _GXColor {}; - -struct dPa_control_c { - /* 8004D1B8 */ void setSimple(u16, cXyz const*, dKy_tevstr_c const*, u8, _GXColor const&, - _GXColor const&, int, f32); -}; - -struct dCcD_Stts { - /* 80083860 */ void Init(int, int, fopAc_ac_c*); -}; - -struct dCcD_SrcCyl {}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); -}; - -struct dCcD_GObjInf { - /* 80083A28 */ dCcD_GObjInf(); - /* 80084460 */ void ChkTgHit(); - /* 800844F8 */ void GetTgHitObj(); - /* 80084548 */ void GetTgHitGObj(); - /* 8008457C */ void GetTgHitObjSe(); - /* 800845B0 */ void getHitSeID(u8, int); -}; - -struct dCcD_Cyl { - /* 800848B4 */ void Set(dCcD_SrcCyl const&); -}; - -struct cM3dGCyl { - /* 8026F1DC */ void SetC(cXyz const&); - /* 8026F1F8 */ void SetH(f32); - /* 8026F200 */ void SetR(f32); - /* 80C56110 */ ~cM3dGCyl(); -}; - -struct cM3dGAab { - /* 80C56158 */ ~cM3dGAab(); -}; - -struct cCcD_Obj { - /* 80263A48 */ void GetAc(); -}; - -struct cCcS { - /* 80264BA8 */ void Set(cCcD_Obj*); -}; - -struct Z2SoundObjSimple { - /* 802BE844 */ Z2SoundObjSimple(); -}; - -struct Z2SoundObjBase { - /* 802BDFF8 */ void deleteObject(); - /* 802BE4A4 */ void startCollisionSE(u32, u32, Z2SoundObjBase*); -}; - -struct JAISoundID {}; - -struct Vec {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); - /* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; +/* 80C56B9C-80C56BA4 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */ +static daLv1Cdl00_HIO_c l_HIO; -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; +/* 80C56A50-80C56A80 000000 0030+00 4/4 0/0 0/0 .rodata mCcDObjInfo__12daLv1Cdl00_c */ +dCcD_SrcGObjInf const daLv1Cdl00_c::mCcDObjInfo = { + { + 0, { + {0x200, 0, 0x13}, + {0xd8fbffff, 0x1f}, + {0x79} + } + }, + {1, 0, 0, 0, 0}, + {0xa, 0, 0, 0, 6}, + {0}, }; -struct LIGHT_INFLUENCE {}; - -struct J3DModel {}; - -// -// Forward References: -// - -extern "C" void __ct__16daLv1Cdl00_HIO_cFv(); -extern "C" void __dt__14mDoHIO_entry_cFv(); -extern "C" void setBaseMtx__12daLv1Cdl00_cFv(); -extern "C" void CreateHeap__12daLv1Cdl00_cFv(); -extern "C" void create__12daLv1Cdl00_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void createHeapCallBack__12daLv1Cdl00_cFP10fopAc_ac_c(); -extern "C" void lightInit__12daLv1Cdl00_cFv(); -extern "C" void setLight__12daLv1Cdl00_cFv(); -extern "C" void cutLight__12daLv1Cdl00_cFv(); -extern "C" void pointLightProc__12daLv1Cdl00_cFv(); -extern "C" void Execute__12daLv1Cdl00_cFv(); -extern "C" void Draw__12daLv1Cdl00_cFv(); -extern "C" void Delete__12daLv1Cdl00_cFv(); -extern "C" static void daLv1Cdl00_Draw__FP12daLv1Cdl00_c(); -extern "C" static void daLv1Cdl00_Execute__FP12daLv1Cdl00_c(); -extern "C" static void daLv1Cdl00_Delete__FP12daLv1Cdl00_c(); -extern "C" static void daLv1Cdl00_Create__FP10fopAc_ac_c(); -extern "C" void __dt__16daLv1Cdl00_HIO_cFv(); -extern "C" void __sinit_d_a_obj_lv1Candle00_cpp(); -extern "C" u8 const mCcDObjInfo__12daLv1Cdl00_c[48]; -extern "C" extern char const* const d_a_obj_lv1Candle00__stringBase0; -extern "C" u8 mCcDCyl__12daLv1Cdl00_c[68]; - -// -// External References: -// - -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void offSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void setSimple__13dPa_control_cFUsPC4cXyzPC12dKy_tevstr_cUcRC8_GXColorRC8_GXColorif(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void ChkTgHit__12dCcD_GObjInfFv(); -extern "C" void GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void GetTgHitGObj__12dCcD_GObjInfFv(); -extern "C" void GetTgHitObjSe__12dCcD_GObjInfFv(); -extern "C" void getHitSeID__12dCcD_GObjInfFUci(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void dKy_plight_set__FP15LIGHT_INFLUENCE(); -extern "C" void dKy_plight_cut__FP15LIGHT_INFLUENCE(); -extern "C" void dKy_BossLight_set__FP4cXyzP8_GXColorfUc(); -extern "C" void GetAc__8cCcD_ObjFv(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_addCalc__FPfffff(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void deleteObject__14Z2SoundObjBaseFv(); -extern "C" void startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase(); -extern "C" void __ct__16Z2SoundObjSimpleFv(); -extern "C" void __dl__FPv(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_env_light[4880]; -extern "C" extern u8 j3dSys[284]; -extern "C" extern u32 g_whiteColor; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); - -// -// Declarations: -// +/* 80C55D0C-80C55D38 0000EC 002C+00 1/1 0/0 0/0 .text __ct__16daLv1Cdl00_HIO_cFv */ +daLv1Cdl00_HIO_c::daLv1Cdl00_HIO_c() : + field_0x4(60), + field_0x5(1) + {} -/* ############################################################################################## */ /* 80C56AC0-80C56B04 000000 0044+00 2/2 0/0 0/0 .data mCcDCyl__12daLv1Cdl00_c */ -SECTION_DATA u8 daLv1Cdl00_c::mCcDCyl[68] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80C56B04-80C56B24 -00001 0020+00 1/0 0/0 0/0 .data l_daLv1Cdl00_Method */ -SECTION_DATA static void* l_daLv1Cdl00_Method[8] = { - (void*)daLv1Cdl00_Create__FP10fopAc_ac_c, - (void*)daLv1Cdl00_Delete__FP12daLv1Cdl00_c, - (void*)daLv1Cdl00_Execute__FP12daLv1Cdl00_c, - (void*)NULL, - (void*)daLv1Cdl00_Draw__FP12daLv1Cdl00_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 80C56B24-80C56B54 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv1Cdl00 */ -SECTION_DATA extern void* g_profile_Obj_Lv1Cdl00[12] = { - (void*)0xFFFFFFFD, (void*)0x0003FFFD, - (void*)0x00390000, (void*)&g_fpcLf_Method, - (void*)0x00000754, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x01EE0000, (void*)&l_daLv1Cdl00_Method, - (void*)0x00060000, (void*)0x000E0000, -}; - -/* 80C56B54-80C56B60 000094 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 80C56B60-80C56B6C 0000A0 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80C56B6C-80C56B78 0000AC 000C+00 2/2 0/0 0/0 .data __vt__16daLv1Cdl00_HIO_c */ -SECTION_DATA extern void* __vt__16daLv1Cdl00_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__16daLv1Cdl00_HIO_cFv, -}; - -/* 80C56B78-80C56B84 0000B8 000C+00 3/3 0/0 0/0 .data __vt__14mDoHIO_entry_c */ -SECTION_DATA extern void* __vt__14mDoHIO_entry_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14mDoHIO_entry_cFv, +dCcD_SrcCyl daLv1Cdl00_c::mCcDCyl = { + daLv1Cdl00_c::mCcDObjInfo, + { {0.0f, 0.0f, 0.0f}, 0, 0} }; -/* 80C55D0C-80C55D38 0000EC 002C+00 1/1 0/0 0/0 .text __ct__16daLv1Cdl00_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daLv1Cdl00_HIO_c::daLv1Cdl00_HIO_c() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/__ct__16daLv1Cdl00_HIO_cFv.s" -} -#pragma pop - -/* 80C55D38-80C55D80 000118 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm mDoHIO_entry_c::~mDoHIO_entry_c() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/__dt__14mDoHIO_entry_cFv.s" -} -#pragma pop - /* 80C55D80-80C55E08 000160 0088+00 2/2 0/0 0/0 .text setBaseMtx__12daLv1Cdl00_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv1Cdl00_c::setBaseMtx() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/setBaseMtx__12daLv1Cdl00_cFv.s" +void daLv1Cdl00_c::setBaseMtx() { + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::ZXYrotM(current.angle.x, current.angle.y, current.angle.z); + mpModel->setBaseScale(mScale); + mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); } -#pragma pop - -/* ############################################################################################## */ -/* 80C56AB4-80C56AB4 000064 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C56AB4 = "lv1cdl00"; -#pragma pop /* 80C55E08-80C55E74 0001E8 006C+00 1/1 0/0 0/0 .text CreateHeap__12daLv1Cdl00_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv1Cdl00_c::CreateHeap() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/CreateHeap__12daLv1Cdl00_cFv.s" +int daLv1Cdl00_c::CreateHeap() { + J3DModelData* bmd = (J3DModelData*)dComIfG_getObjectRes("lv1cdl00", 4); + mpModel = mDoExt_J3DModel__create(bmd, 0x80000, 0x11000084); + if (mpModel == NULL) { + return false; + } + return true; } -#pragma pop - -/* ############################################################################################## */ -/* 80C56A50-80C56A80 000000 0030+00 4/4 0/0 0/0 .rodata mCcDObjInfo__12daLv1Cdl00_c */ -SECTION_RODATA u8 const daLv1Cdl00_c::mCcDObjInfo[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, - 0xD8, 0xFB, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x79, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80C56A50, &daLv1Cdl00_c::mCcDObjInfo); - -/* 80C56A80-80C56A84 000030 0004+00 1/1 0/0 0/0 .rodata @3753 */ -SECTION_RODATA static f32 const lit_3753 = 120.0f; -COMPILER_STRIP_GATE(0x80C56A80, &lit_3753); /* 80C55E74-80C56110 000254 029C+00 1/1 0/0 0/0 .text create__12daLv1Cdl00_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv1Cdl00_c::create() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/create__12daLv1Cdl00_cFv.s" -} -#pragma pop - -/* 80C56110-80C56158 0004F0 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm cM3dGCyl::~cM3dGCyl() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/__dt__8cM3dGCylFv.s" +cPhs__Step daLv1Cdl00_c::create() { + fopAcM_SetupActor(this, daLv1Cdl00_c); + cPhs__Step step = (cPhs__Step)dComIfG_resLoad(&mPhase, "lv1cdl00"); + if (step == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x820)) { + return cPhs_ERROR_e; + } + setBaseMtx(); + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); + fopAcM_setCullSizeBox2(this, mpModel->getModelData()); + mStts.Init(0xff, 0xff, this); + mCyl.Set(mCcDCyl); + mCyl.SetStts(&mStts); + mTorchPos.x = current.pos.x; + mTorchPos.y = current.pos.y + 120.0f; + mTorchPos.z = current.pos.z; + field_0x708 = fopAcM_GetParam(this) >> 16; + if (field_0x708 == 0xff) { + field_0x708 = 0; + } + lightInit(); + mStartsOn = fopAcM_GetParam(this) >> 8; + if (mStartsOn == 0xff) { + mStartsOn = 0; + } + mEyePos = mTorchPos; + mSwitch = i_fopAcM_isSwitch(this, fopAcM_GetParam(this) & 0xff); + mIsOn = false; + if (!mStartsOn) { + if (mSwitch) { + mIsOn = true; + mCyl.SetAtMtrl(1); + setLight(); + } + } else { + if (!mSwitch) { + mIsOn = true; + mCyl.SetAtMtrl(1); + setLight(); + } + } + mSound.init(¤t.pos, 1); + field_0x730 = 0; + } + return step; } -#pragma pop - -/* 80C56158-80C561A0 000538 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm cM3dGAab::~cM3dGAab() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/__dt__8cM3dGAabFv.s" -} -#pragma pop /* 80C561A0-80C561C0 000580 0020+00 1/1 0/0 0/0 .text * createHeapCallBack__12daLv1Cdl00_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv1Cdl00_c::createHeapCallBack(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/createHeapCallBack__12daLv1Cdl00_cFP10fopAc_ac_c.s" +int daLv1Cdl00_c::createHeapCallBack(fopAc_ac_c* i_this) { + return static_cast<daLv1Cdl00_c*>(i_this)->CreateHeap(); } -#pragma pop - -/* ############################################################################################## */ -/* 80C56A84-80C56A88 000034 0004+00 0/1 0/0 0/0 .rodata @3847 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3847 = 10.0f; -COMPILER_STRIP_GATE(0x80C56A84, &lit_3847); -#pragma pop - -/* 80C56A88-80C56A8C 000038 0004+00 0/1 0/0 0/0 .rodata @3848 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3848 = 500.0f; -COMPILER_STRIP_GATE(0x80C56A88, &lit_3848); -#pragma pop - -/* 80C56A8C-80C56A90 00003C 0004+00 0/3 0/0 0/0 .rodata @3849 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3849 = 1.0f; -COMPILER_STRIP_GATE(0x80C56A8C, &lit_3849); -#pragma pop - -/* 80C56A90-80C56A94 000040 0004+00 0/3 0/0 0/0 .rodata @3850 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3850[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80C56A90, &lit_3850); -#pragma pop /* 80C561C0-80C56268 0005A0 00A8+00 1/1 0/0 0/0 .text lightInit__12daLv1Cdl00_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv1Cdl00_c::lightInit() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/lightInit__12daLv1Cdl00_cFv.s" +void daLv1Cdl00_c::lightInit() { + mLightPos = mTorchPos; + mLightPos.y += 10.0f; + if (field_0x708 == 1 || field_0x708 == 2) { + mLight.mPosition = mLightPos; + mLight.mColor.r = 0xbc; + mLight.mColor.g = 0x66; + mLight.mColor.b = 0x42; + mLight.mPow = 500.0f; + mLight.mFluctuation = 1.0f; + if (field_0x708 == 2) { + field_0x70c = 0.0f; + } + } else { + field_0x70c = 0.0f; + } } -#pragma pop /* 80C56268-80C562A0 000648 0038+00 2/2 0/0 0/0 .text setLight__12daLv1Cdl00_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv1Cdl00_c::setLight() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/setLight__12daLv1Cdl00_cFv.s" +void daLv1Cdl00_c::setLight() { + if (field_0x708 == 1 || field_0x708 == 2) { + dKy_plight_set(&mLight); + } } -#pragma pop /* 80C562A0-80C562D8 000680 0038+00 1/1 0/0 0/0 .text cutLight__12daLv1Cdl00_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv1Cdl00_c::cutLight() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/cutLight__12daLv1Cdl00_cFv.s" +void daLv1Cdl00_c::cutLight() { + if (field_0x708 == 1 || field_0x708 == 2) { + dKy_plight_cut(&mLight); + } } -#pragma pop - -/* ############################################################################################## */ -/* 80C56A94-80C56A98 000044 0004+00 0/1 0/0 0/0 .rodata @3872 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_3872 = 0xBC6642FF; -COMPILER_STRIP_GATE(0x80C56A94, &lit_3872); -#pragma pop - -/* 80C56A98-80C56A9C 000048 0004+00 0/1 0/0 0/0 .rodata @3880 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3880 = 0.5f; -COMPILER_STRIP_GATE(0x80C56A98, &lit_3880); -#pragma pop - -/* 80C56A9C-80C56AA0 00004C 0004+00 0/1 0/0 0/0 .rodata @3881 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3881 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80C56A9C, &lit_3881); -#pragma pop - -/* 80C56AA0-80C56AA4 000050 0004+00 0/1 0/0 0/0 .rodata @3882 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_3882 = 0x38D1B717; -COMPILER_STRIP_GATE(0x80C56AA0, &lit_3882); -#pragma pop - -/* 80C56AA4-80C56AA8 000054 0004+00 0/1 0/0 0/0 .rodata @3883 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_3883 = 0x358637BD; -COMPILER_STRIP_GATE(0x80C56AA4, &lit_3883); -#pragma pop /* 80C562D8-80C56388 0006B8 00B0+00 1/1 0/0 0/0 .text pointLightProc__12daLv1Cdl00_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv1Cdl00_c::pointLightProc() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/pointLightProc__12daLv1Cdl00_cFv.s" +void daLv1Cdl00_c::pointLightProc() { + if (field_0x708 != 1) { + GXColor color = { 0xbc, 0x66, 0x42, 0xff }; + if (mIsOn) { + cLib_addCalc(&field_0x70c, 1.0f, 0.5f, 0.1f, 0.0001f); + } else { + cLib_addCalc(&field_0x70c, 0.0f, 0.5f, 0.1f, 0.0001f); + } + if (field_0x70c >= 1e-6f) { + dKy_BossLight_set(&mLightPos, &color, field_0x70c, 0); + } + } } -#pragma pop - -/* ############################################################################################## */ -/* 80C56AA8-80C56AAC 000058 0004+00 0/1 0/0 0/0 .rodata @4006 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4006 = -1.0f; -COMPILER_STRIP_GATE(0x80C56AA8, &lit_4006); -#pragma pop - -/* 80C56AAC-80C56AB0 00005C 0004+00 0/1 0/0 0/0 .rodata @4007 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4007 = 25.0f; -COMPILER_STRIP_GATE(0x80C56AAC, &lit_4007); -#pragma pop - -/* 80C56AB0-80C56AB4 000060 0004+00 0/1 0/0 0/0 .rodata @4008 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4008 = 130.0f; -COMPILER_STRIP_GATE(0x80C56AB0, &lit_4008); -#pragma pop /* 80C56388-80C567EC 000768 0464+00 1/1 0/0 0/0 .text Execute__12daLv1Cdl00_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv1Cdl00_c::Execute() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/Execute__12daLv1Cdl00_cFv.s" +int daLv1Cdl00_c::Execute() { + u8 sw = i_fopAcM_isSwitch(this, fopAcM_GetParam(this) & 0xff); + if (mSwitch != sw) { + mIsOn = false; + mCyl.SetAtMtrl(0); + cutLight(); + if (!mStartsOn) { + if (sw) { + mIsOn = true; + mCyl.SetAtMtrl(1); + setLight(); + } + } else { + if (!sw) { + mIsOn = true; + mCyl.SetAtMtrl(1); + setLight(); + } + } + mSwitch = sw; + } + + if (mIsOn) { + dComIfGp_particle_setSimple(0x83a6, &mTorchPos, 0xff, + g_whiteColor, g_whiteColor, 0, 0.0f); + dComIfGp_particle_setSimple(0x83a7, &mTorchPos, 0xff, + g_whiteColor, g_whiteColor, 0, 0.0f); + dComIfGp_particle_setSimple(0x103, &mTorchPos, 0xff, + g_whiteColor, g_whiteColor, 0, 0.0f); + i_mDoAud_seStartLevel(0x80018, &mTorchPos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + } + + setBaseMtx(); + + if (mCyl.ChkTgHit()) { + dCcD_GObjInf* gobj = mCyl.GetTgHitGObj(); + if (gobj->GetAtType() == AT_TYPE_LANTERN_SWING && gobj->GetAtMtrl() == 1 && !mIsOn) { + mIsOn = true; + mCyl.SetAtMtrl(1); + if (!mStartsOn) { + i_fopAcM_onSwitch(this, fopAcM_GetParam(this) & 0xff); + } else { + i_fopAcM_offSwitch(this, fopAcM_GetParam(this) & 0xff); + } + mDoAud_seStart(0x80017, &mTorchPos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + setLight(); + } + if (gobj->GetAtType() == AT_TYPE_BOOMERANG && gobj->GetAtMtrl() == 3 && mIsOn == true) { + mIsOn = false; + mCyl.SetAtMtrl(0); + if (!mStartsOn) { + i_fopAcM_offSwitch(this, fopAcM_GetParam(this) & 0xff); + } else { + i_fopAcM_onSwitch(this, fopAcM_GetParam(this) & 0xff); + } + mDoAud_seStart(0x80019, &mTorchPos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + cutLight(); + } + cCcD_Obj* obj = mCyl.GetTgHitObj(); + if (obj != NULL) { + bool bvar1 = true; + if (fopAcM_GetName(obj->GetAc()) == PROC_ALINK) { + if (mCyl.GetTgHitGObj()->ChkAtType(AT_TYPE_NORMAL_SWORD) && field_0x730) { + bvar1 = false; + } + } + if (bvar1) { + mSound.startCollisionSE(mCyl.GetTgHitObjHitSeID(1), 5, NULL); + field_0x730 = true; + } + } + } else { + field_0x730 = 0; + } + + mSound.framework(0, dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + mCyl.SetR(25.0f); + mCyl.SetH(130.0f); + mCyl.SetC(current.pos); + dComIfG_Ccsp()->Set(&mCyl); + pointLightProc(); + return true; } -#pragma pop /* 80C567EC-80C56890 000BCC 00A4+00 1/1 0/0 0/0 .text Draw__12daLv1Cdl00_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv1Cdl00_c::Draw() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/Draw__12daLv1Cdl00_cFv.s" +int daLv1Cdl00_c::Draw() { + g_env_light.settingTevStruct(0x40, ¤t.pos, &mTevStr); + g_env_light.setLightTevColorType_MAJI(mpModel->mModelData, &mTevStr); + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(mpModel); + dComIfGd_setList(); + return true; } -#pragma pop /* 80C56890-80C568F0 000C70 0060+00 1/1 0/0 0/0 .text Delete__12daLv1Cdl00_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv1Cdl00_c::Delete() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/Delete__12daLv1Cdl00_cFv.s" +int daLv1Cdl00_c::Delete() { + mSound.deleteObject(); + dComIfG_resDelete(&mPhase, "lv1cdl00"); + if (field_0x708 == 1 || field_0x708 == 2) { + dKy_plight_cut(&mLight); + } + return true; } -#pragma pop /* 80C568F0-80C56910 000CD0 0020+00 1/0 0/0 0/0 .text daLv1Cdl00_Draw__FP12daLv1Cdl00_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daLv1Cdl00_Draw(daLv1Cdl00_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/daLv1Cdl00_Draw__FP12daLv1Cdl00_c.s" +static int daLv1Cdl00_Draw(daLv1Cdl00_c* i_this) { + return i_this->Draw(); } -#pragma pop /* 80C56910-80C56930 000CF0 0020+00 1/0 0/0 0/0 .text daLv1Cdl00_Execute__FP12daLv1Cdl00_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daLv1Cdl00_Execute(daLv1Cdl00_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/daLv1Cdl00_Execute__FP12daLv1Cdl00_c.s" +static int daLv1Cdl00_Execute(daLv1Cdl00_c* i_this) { + return i_this->Execute(); } -#pragma pop /* 80C56930-80C56950 000D10 0020+00 1/0 0/0 0/0 .text daLv1Cdl00_Delete__FP12daLv1Cdl00_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daLv1Cdl00_Delete(daLv1Cdl00_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/daLv1Cdl00_Delete__FP12daLv1Cdl00_c.s" +static int daLv1Cdl00_Delete(daLv1Cdl00_c* i_this) { + return i_this->Delete(); } -#pragma pop /* 80C56950-80C56970 000D30 0020+00 1/0 0/0 0/0 .text daLv1Cdl00_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daLv1Cdl00_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/daLv1Cdl00_Create__FP10fopAc_ac_c.s" -} -#pragma pop - -/* 80C56970-80C569CC 000D50 005C+00 2/1 0/0 0/0 .text __dt__16daLv1Cdl00_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daLv1Cdl00_HIO_c::~daLv1Cdl00_HIO_c() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/__dt__16daLv1Cdl00_HIO_cFv.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80C56B90-80C56B9C 000008 000C+00 1/1 0/0 0/0 .bss @3620 */ -static u8 lit_3620[12]; - -/* 80C56B9C-80C56BA4 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[8]; - -/* 80C569CC-80C56A3C 000DAC 0070+00 0/0 1/0 0/0 .text __sinit_d_a_obj_lv1Candle00_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_a_obj_lv1Candle00_cpp() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00/__sinit_d_a_obj_lv1Candle00_cpp.s" +static int daLv1Cdl00_Create(fopAc_ac_c* i_this) { + return static_cast<daLv1Cdl00_c*>(i_this)->create(); } -#pragma pop -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80C569CC, __sinit_d_a_obj_lv1Candle00_cpp); -#pragma pop +/* 80C56B04-80C56B24 -00001 0020+00 1/0 0/0 0/0 .data l_daLv1Cdl00_Method */ +static actor_method_class l_daLv1Cdl00_Method = { + (process_method_func)daLv1Cdl00_Create, + (process_method_func)daLv1Cdl00_Delete, + (process_method_func)daLv1Cdl00_Execute, + (process_method_func)NULL, + (process_method_func)daLv1Cdl00_Draw, +}; -/* 80C56AB4-80C56AB4 000064 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 80C56B24-80C56B54 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv1Cdl00 */ +extern actor_process_profile_definition g_profile_Obj_Lv1Cdl00 = { + fpcLy_CURRENT_e, + 3, + fpcPi_CURRENT_e, + PROC_Obj_Lv1Cdl00, + &g_fpcLf_Method.mBase, + sizeof(daLv1Cdl00_c), + 0, + 0, + &g_fopAc_Method.base, + 0x1EE, + &l_daLv1Cdl00_Method, + 0x60000, + fopAc_ACTOR_e, + fopAc_CULLBOX_CUSTOM_e, +};
\ No newline at end of file |
