summaryrefslogtreecommitdiff
path: root/rel
diff options
context:
space:
mode:
authorCaroline Madsen <69010899+randomsalience@users.noreply.github.com>2023-11-04 11:35:16 -0400
committerGitHub <noreply@github.com>2023-11-04 17:35:16 +0200
commitea52bf09a467ab5b5df84cb6fbb83ca8c81cbe98 (patch)
tree4435275f21d4ea54bff55bef0fc1faa567e7ff54 /rel
parent2b766ef3ba779975f3156c0448edde6fb2979c13 (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.cpp830
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(&current.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, &current.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