mirror of https://github.com/zeldaret/tp.git
d_a_obj_TvCdlst matching (#2292)
* d_a_obj_TvCdlst matching * d_a_obj_kwheel00, 01, & d_a_obj_klift00 Equivalent (weak func and/or vtable order) (#2291) * d_a_obj_kwheel00, 01, & d_a_obj_klift00 Equivalent (weak func and/or vtable order) * Three rels equivalent * Basic documentation for the three rels * Define explicit constructor for dMdl_obj_c (needed for proper array creation in d_a_obj_klift00) * Modify d_a_obj_bky_rock to account for new explicit constructor of dMdl_obj_c * Specify weak func and/or vtable orders for rels in config.py * Cleanup includes and dol2asm artifacts * * Fix debug build * Restore incorrectly removed l_bmdidx * Fix US retail equivalency * d_a_obj_Turara equivalent (#2289) * Initial d_a_obj_Turara work * More d_a_obj_Turara work * d_a_obj_Turara equivalent except for weak func order of dEvLib_callback_c dtor * Updates to d_a_obj_Turara after feedback from Taka * b_dre equivalent (#2290) * Update d_a_obj_Turara to remove unnecessary comment based on hatal\'s request --------- Co-authored-by: TakaRikka <38417346+TakaRikka@users.noreply.github.com> * Fix spurious differences when using `ninja diff` (#2294) * Fix spurious differences when using ninja diff * Fix some clangd errors/warnings * d_a_obj_waterGate matching + d_a_obj_lv3Water2 equivalent (#2293) * d_a_obj_waterGate matching + d_a_obj_lv3Water2 equivalent * Add simpleCalcMaterial implicit inline to J3DModelData (seen in debug) * Basic documentation for both actors * WIP debug build implementations (note TODOs) * Update configure.py and note weak ordering issues for lv3Water2 * Actually add modified J3DModelData.h & explicitly note fake padding * Add fopAcM_Register... macros (for debug build) (#2295) * Update d_a_obj_Tvcdlst to use LIGHT_INFLUENCE after Taka gave feedback --------- Co-authored-by: Huitzi <73550465+marwernerh@users.noreply.github.com> Co-authored-by: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>
This commit is contained in:
parent
ca3e900835
commit
34b21412c4
|
|
@ -17,6 +17,6 @@ REL/global_destructor_chain.c:
|
|||
d/actor/d_a_obj_TvCdlst.cpp:
|
||||
.text start:0x000000EC end:0x00000C9C
|
||||
.ctors start:0x00000000 end:0x00000004
|
||||
.rodata start:0x00000000 end:0x00000070
|
||||
.rodata start:0x00000000 end:0x0000006E
|
||||
.data start:0x00000000 end:0x000000C4
|
||||
.bss start:0x00000008 end:0x0000001C
|
||||
|
|
|
|||
|
|
@ -18,10 +18,10 @@ pointLightProc__11daTvCdlst_cFv = .text:0x00000670; // type:function size:0xB0 s
|
|||
Execute__11daTvCdlst_cFv = .text:0x00000720; // type:function size:0x334 scope:global
|
||||
Draw__11daTvCdlst_cFv = .text:0x00000A54; // type:function size:0xA4 scope:global
|
||||
Delete__11daTvCdlst_cFv = .text:0x00000AF8; // type:function size:0x58 scope:global
|
||||
daTvCdlst_Draw__FP11daTvCdlst_c = .text:0x00000B50; // type:function size:0x20 scope:global
|
||||
daTvCdlst_Execute__FP11daTvCdlst_c = .text:0x00000B70; // type:function size:0x20 scope:global
|
||||
daTvCdlst_Delete__FP11daTvCdlst_c = .text:0x00000B90; // type:function size:0x20 scope:global
|
||||
daTvCdlst_Create__FP10fopAc_ac_c = .text:0x00000BB0; // type:function size:0x20 scope:global
|
||||
daTvCdlst_Draw__FP11daTvCdlst_c = .text:0x00000B50; // type:function size:0x20 scope:local
|
||||
daTvCdlst_Execute__FP11daTvCdlst_c = .text:0x00000B70; // type:function size:0x20 scope:local
|
||||
daTvCdlst_Delete__FP11daTvCdlst_c = .text:0x00000B90; // type:function size:0x20 scope:local
|
||||
daTvCdlst_Create__FP10fopAc_ac_c = .text:0x00000BB0; // type:function size:0x20 scope:local
|
||||
__dt__15daTvCdlst_HIO_cFv = .text:0x00000BD0; // type:function size:0x5C scope:global
|
||||
__sinit_d_a_obj_TvCdlst_cpp = .text:0x00000C2C; // type:function size:0x70 scope:local
|
||||
_ctors = .ctors:0x00000000; // type:label scope:global
|
||||
|
|
@ -44,7 +44,7 @@ mCcDObjInfo__11daTvCdlst_c = .rodata:0x00000000; // type:object size:0x30 scope:
|
|||
@3939 = .rodata:0x00000060; // type:object size:0x4 scope:local
|
||||
@stringBase0 = .rodata:0x00000064; // type:object size:0xA scope:local data:string_table
|
||||
mCcDCyl__11daTvCdlst_c = .data:0x00000000; // type:object size:0x44 scope:global
|
||||
l_daTvCdlst_Method = .data:0x00000044; // type:object size:0x20 scope:global
|
||||
l_daTvCdlst_Method = .data:0x00000044; // type:object size:0x20 scope:local
|
||||
g_profile_Obj_TvCdlst = .data:0x00000064; // type:object size:0x30 scope:global
|
||||
__vt__8cM3dGCyl = .data:0x00000094; // type:object size:0xC scope:global
|
||||
__vt__8cM3dGAab = .data:0x000000A0; // type:object size:0xC scope:global
|
||||
|
|
@ -52,4 +52,4 @@ __vt__15daTvCdlst_HIO_c = .data:0x000000AC; // type:object size:0xC scope:global
|
|||
__vt__14mDoHIO_entry_c = .data:0x000000B8; // type:object size:0xC scope:global
|
||||
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
|
||||
@3622 = .bss:0x00000008; // type:object size:0xC scope:local
|
||||
l_HIO = .bss:0x00000014; // type:object size:0x8 scope:global
|
||||
l_HIO = .bss:0x00000014; // type:object size:0x8 scope:local
|
||||
|
|
|
|||
|
|
@ -1800,7 +1800,7 @@ config.libs = [
|
|||
ActorRel(NonMatching, "d_a_npc_zrz"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_Lv5Key"),
|
||||
ActorRel(Equivalent, "d_a_obj_Turara"),
|
||||
ActorRel(NonMatching, "d_a_obj_TvCdlst"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_TvCdlst"),
|
||||
ActorRel(NonMatching, "d_a_obj_Y_taihou"),
|
||||
ActorRel(NonMatching, "d_a_obj_amiShutter"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_ari"),
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#define D_A_OBJ_TVCDLST_H
|
||||
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "include/d/d_com_inf_game.h"
|
||||
|
||||
/**
|
||||
* @ingroup actors-objects
|
||||
|
|
@ -14,30 +15,52 @@
|
|||
class daTvCdlst_c : public fopAc_ac_c {
|
||||
public:
|
||||
/* 80B9ED40 */ void setBaseMtx();
|
||||
/* 80B9EDC8 */ void CreateHeap();
|
||||
/* 80B9EE34 */ void create();
|
||||
/* 80B9F144 */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80B9EDC8 */ int CreateHeap();
|
||||
/* 80B9EE34 */ int create();
|
||||
/* 80B9F144 */ static int createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80B9F164 */ void lightInit();
|
||||
/* 80B9F1F0 */ void setLight();
|
||||
/* 80B9F220 */ void cutLight();
|
||||
/* 80B9F250 */ void pointLightProc();
|
||||
/* 80B9F300 */ void Execute();
|
||||
/* 80B9F634 */ void Draw();
|
||||
/* 80B9F6D8 */ void Delete();
|
||||
/* 80B9F300 */ int Execute();
|
||||
/* 80B9F634 */ int Draw();
|
||||
/* 80B9F6D8 */ int Delete();
|
||||
|
||||
static u8 const mCcDObjInfo[48];
|
||||
static u8 mCcDCyl[68];
|
||||
static dCcD_SrcGObjInf const mCcDObjInfo;
|
||||
static dCcD_SrcCyl mCcDCyl;
|
||||
|
||||
u8 getLightType() { return fopAcM_GetParamBit(this,8,8); }
|
||||
u8 getOnSw() { return fopAcM_GetParamBit(this,0,8); }
|
||||
u8 getOffSw() { return fopAcM_GetParamBit(this,0x10,8); }
|
||||
|
||||
private:
|
||||
/* 0x568 */ u8 field_0x568[0x754 - 0x568];
|
||||
/* 0x568 */ request_of_phase_process_class mPhaseReq;
|
||||
/* 0x570 */ J3DModel* mpModel;
|
||||
/* 0x574 */ dCcD_Stts mStts;
|
||||
/* 0x5b0 */ dCcD_Cyl mCyl;
|
||||
/* 0x6ec */ cXyz field_0x6ec;
|
||||
/* 0x6f8 */ u8 field_0x6f8;
|
||||
/* 0x6f9 */ u8 mIsOn;
|
||||
/* 0x6fa */ u8 mIsOff;
|
||||
/* 0x6fb */ u8 mOnSw;
|
||||
/* 0x6fc */ u8 mOffSw;
|
||||
/* 0x6fd */ u8 mDoIgnite;
|
||||
/* 0x700 */ cXyz field_0x700;
|
||||
/* 0x70c */ u8 mLightType;
|
||||
/* 0x710 */ f32 field_0x710;
|
||||
/* 0x714 */ LIGHT_INFLUENCE mLight;
|
||||
/* 0x734 */ Z2SoundObjSimple mSound;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daTvCdlst_c) == 0x754);
|
||||
|
||||
class daTvCdlst_HIO_c {
|
||||
class daTvCdlst_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
/* 80B9ECCC */ daTvCdlst_HIO_c();
|
||||
/* 80B9F7B0 */ ~daTvCdlst_HIO_c();
|
||||
/* 80B9F7B0 */ virtual ~daTvCdlst_HIO_c() {}
|
||||
|
||||
/* 0x4 */ u8 field_0x4;
|
||||
/* 0x5 */ u8 field_0x5;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -5,112 +5,247 @@
|
|||
|
||||
#include "d/actor/d_a_obj_TvCdlst.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void __ct__15daTvCdlst_HIO_cFv();
|
||||
extern "C" void __dt__14mDoHIO_entry_cFv();
|
||||
extern "C" void setBaseMtx__11daTvCdlst_cFv();
|
||||
extern "C" void CreateHeap__11daTvCdlst_cFv();
|
||||
extern "C" void create__11daTvCdlst_cFv();
|
||||
extern "C" void __dt__8cM3dGCylFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void createHeapCallBack__11daTvCdlst_cFP10fopAc_ac_c();
|
||||
extern "C" void lightInit__11daTvCdlst_cFv();
|
||||
extern "C" void setLight__11daTvCdlst_cFv();
|
||||
extern "C" void cutLight__11daTvCdlst_cFv();
|
||||
extern "C" void pointLightProc__11daTvCdlst_cFv();
|
||||
extern "C" void Execute__11daTvCdlst_cFv();
|
||||
extern "C" void Draw__11daTvCdlst_cFv();
|
||||
extern "C" void Delete__11daTvCdlst_cFv();
|
||||
extern "C" static void daTvCdlst_Draw__FP11daTvCdlst_c();
|
||||
extern "C" static void daTvCdlst_Execute__FP11daTvCdlst_c();
|
||||
extern "C" static void daTvCdlst_Delete__FP11daTvCdlst_c();
|
||||
extern "C" static void daTvCdlst_Create__FP10fopAc_ac_c();
|
||||
extern "C" void __dt__15daTvCdlst_HIO_cFv();
|
||||
extern "C" void __sinit_d_a_obj_TvCdlst_cpp();
|
||||
extern "C" u8 const mCcDObjInfo__11daTvCdlst_c[48];
|
||||
extern "C" extern char const* const d_a_obj_TvCdlst__stringBase0;
|
||||
extern "C" u8 mCcDCyl__11daTvCdlst_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 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 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 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 _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
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 u32 g_whiteColor;
|
||||
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
extern "C" void __register_global_object();
|
||||
#include "include/d/d_com_inf_game.h"
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80B9F9DC-80B9F9E4 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */
|
||||
static daTvCdlst_HIO_c l_HIO;
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80B9F900-80B9F944 000000 0044+00 2/2 0/0 0/0 .data mCcDCyl__11daTvCdlst_c */
|
||||
SECTION_DATA u8 daTvCdlst_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,
|
||||
dCcD_SrcCyl daTvCdlst_c::mCcDCyl = {
|
||||
daTvCdlst_c::mCcDObjInfo, // mObjInf
|
||||
{
|
||||
{0.0f, 0.0f, 0.0f}, // mCenter
|
||||
0.0f, // mRadius
|
||||
0.0f // mHeight
|
||||
} // mCyl
|
||||
};
|
||||
|
||||
/* 80B9ECCC-80B9ECF8 0000EC 002C+00 1/1 0/0 0/0 .text __ct__15daTvCdlst_HIO_cFv */
|
||||
daTvCdlst_HIO_c::daTvCdlst_HIO_c() {
|
||||
field_0x4 = 0x3c;
|
||||
field_0x5 = 1;
|
||||
}
|
||||
|
||||
/* 80B9ED40-80B9EDC8 000160 0088+00 2/2 0/0 0/0 .text setBaseMtx__11daTvCdlst_cFv */
|
||||
void daTvCdlst_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(scale);
|
||||
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
/* 80B9EDC8-80B9EE34 0001E8 006C+00 1/1 0/0 0/0 .text CreateHeap__11daTvCdlst_cFv */
|
||||
int daTvCdlst_c::CreateHeap() {
|
||||
J3DModelData* pModelData = (J3DModelData*) dComIfG_getObjectRes("HShokudai", 3);
|
||||
JUT_ASSERT(222, pModelData != NULL);
|
||||
mpModel = mDoExt_J3DModel__create(pModelData, 0x80000,0x11000084);
|
||||
if (mpModel == NULL)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80B9F890-80B9F8C0 000000 0030+00 4/4 0/0 0/0 .rodata mCcDObjInfo__11daTvCdlst_c */
|
||||
const dCcD_SrcGObjInf daTvCdlst_c::mCcDObjInfo = {
|
||||
{0, // mFlags
|
||||
{
|
||||
{0x0, 0x0, 0x0}, // mObjAt
|
||||
{0xD8FBFFFF, 0x1F}, // mObjTg
|
||||
{0x79} // mObjCo
|
||||
} // mSrcObjHitInf
|
||||
}, // mObj
|
||||
{1, 0, 0, 0, 0}, // mGObjAt
|
||||
{0xA, 0, 0, 0, 0}, // mGObjTg
|
||||
{0} // mGObjCo
|
||||
};
|
||||
|
||||
/* 80B9EE34-80B9F0B4 000254 0280+00 1/1 0/0 0/0 .text create__11daTvCdlst_cFv */
|
||||
int daTvCdlst_c::create() {
|
||||
fopAcM_SetupActor(this, daTvCdlst_c);
|
||||
int phase = dComIfG_resLoad(&mPhaseReq,"HShokudai");
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
if (fopAcM_entrySolidHeap(this,createHeapCallBack,0x820) == 0) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
setBaseMtx();
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
fopAcM_setCullSizeBox2(this, mpModel->getModelData());
|
||||
field_0x6ec.x = current.pos.x;
|
||||
field_0x6ec.y = current.pos.y + 155.0f;
|
||||
field_0x6ec.z = current.pos.z;
|
||||
mLightType = getLightType();
|
||||
if (mLightType == 0xff) {
|
||||
mLightType = 0;
|
||||
}
|
||||
lightInit();
|
||||
eyePos = field_0x6ec;
|
||||
mOnSw = getOnSw();
|
||||
mOffSw = getOffSw();
|
||||
mIsOn = fopAcM_isSwitch(this, mOnSw);
|
||||
mIsOff = fopAcM_isSwitch(this, mOffSw);
|
||||
mDoIgnite = 0;
|
||||
field_0x6f8 = 0;
|
||||
if (mIsOn && mIsOff == 0) {
|
||||
field_0x6f8 = 1;
|
||||
mDoIgnite = 0;
|
||||
setLight();
|
||||
}
|
||||
mStts.Init(0xff, 0xff, this);
|
||||
mCyl.Set(mCcDCyl);
|
||||
mCyl.SetStts(&mStts);
|
||||
mSound.init(¤t.pos, 1);
|
||||
// FIXME: Need mDoHIO_entry_c::entryHIO
|
||||
}
|
||||
return phase;
|
||||
}
|
||||
|
||||
/* 80B9F144-80B9F164 000564 0020+00 1/1 0/0 0/0 .text
|
||||
* createHeapCallBack__11daTvCdlst_cFP10fopAc_ac_c */
|
||||
int daTvCdlst_c::createHeapCallBack(fopAc_ac_c* i_this) {
|
||||
return static_cast<daTvCdlst_c*>(i_this)->CreateHeap();
|
||||
}
|
||||
|
||||
/* 80B9F164-80B9F1F0 000584 008C+00 1/1 0/0 0/0 .text lightInit__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::lightInit() {
|
||||
field_0x700 = field_0x6ec;
|
||||
field_0x700.y += 10.0f;
|
||||
if (mLightType) {
|
||||
mLight.mPosition = field_0x700;
|
||||
mLight.mColor.r = 0xbc;
|
||||
mLight.mColor.g = 0x66;
|
||||
mLight.mColor.b = 0x42;
|
||||
mLight.mPow = 500.0f;
|
||||
mLight.mFluctuation = 1.0f;
|
||||
return;
|
||||
}
|
||||
field_0x710 = 0.0f;
|
||||
}
|
||||
|
||||
/* 80B9F1F0-80B9F220 000610 0030+00 2/2 0/0 0/0 .text setLight__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::setLight() {
|
||||
if (mLightType) {
|
||||
dKy_plight_set(&mLight);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80B9F220-80B9F250 000640 0030+00 1/1 0/0 0/0 .text cutLight__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::cutLight() {
|
||||
if (mLightType) {
|
||||
dKy_plight_cut(&mLight);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80B9F250-80B9F300 000670 00B0+00 1/1 0/0 0/0 .text pointLightProc__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::pointLightProc() {
|
||||
if (mLightType == 0) {
|
||||
GXColor color = {0xbc, 0x66, 0x42, 0xff};
|
||||
if (field_0x6f8 != 0) {
|
||||
cLib_addCalc(&field_0x710, 1.0f, 0.5f, 0.1f, 0.0001f);
|
||||
} else {
|
||||
cLib_addCalc(&field_0x710, 0.0f, 0.5f, 0.1f, 0.0001f);
|
||||
}
|
||||
if (field_0x710 >= 1e-06f) {
|
||||
dKy_BossLight_set(&field_0x700, &color, field_0x710, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80B9F300-80B9F634 000720 0334+00 1/1 0/0 0/0 .text Execute__11daTvCdlst_cFv */
|
||||
int daTvCdlst_c::Execute() {
|
||||
mIsOn = fopAcM_isSwitch(this, mOnSw);
|
||||
mIsOff = fopAcM_isSwitch(this, mOffSw);
|
||||
if (mIsOn && mIsOff == 0 && field_0x6f8 == 0) {
|
||||
field_0x6f8 = 1;
|
||||
mDoIgnite = 1;
|
||||
setLight();
|
||||
}
|
||||
if ((mIsOn == 0 && mIsOff == 0 || mIsOff) && field_0x6f8 == 1) {
|
||||
s8 roomNo = fopAcM_GetRoomNo(this);
|
||||
mDoAud_seStart(Z2SE_OBJ_FIRE_OFF, &field_0x6ec, 0, dComIfGp_getReverb(roomNo));
|
||||
field_0x6f8 = 0;
|
||||
cutLight();
|
||||
}
|
||||
if (field_0x6f8) {
|
||||
dComIfGp_particle_setSimple(0x100, &field_0x6ec, 0xff, g_whiteColor, g_whiteColor, 0, 0.0f);
|
||||
dComIfGp_particle_setSimple(0x101, &field_0x6ec, 0xff, g_whiteColor, g_whiteColor, 0, 0.0f);
|
||||
dComIfGp_particle_setSimple(0x103, &field_0x6ec, 0xff, g_whiteColor, g_whiteColor, 0, 0.0f);
|
||||
if (mDoIgnite) {
|
||||
s8 roomNo = fopAcM_GetRoomNo(this);
|
||||
mDoAud_seStart(Z2SE_OBJ_FIRE_IGNITION, &field_0x6ec, 0, dComIfGp_getReverb(roomNo));
|
||||
mDoIgnite = 0;
|
||||
} else {
|
||||
s8 roomNo = fopAcM_GetRoomNo(this);
|
||||
mDoAud_seStartLevel(Z2SE_OBJ_FIRE_BURNING, &field_0x6ec, 0, dComIfGp_getReverb(roomNo));
|
||||
}
|
||||
}
|
||||
setBaseMtx();
|
||||
if (mCyl.ChkTgHit() && mCyl.GetTgHitObj()) {
|
||||
mSound.startCollisionSE(mCyl.GetTgHitObjHitSeID(1), 5, NULL);
|
||||
}
|
||||
s8 roomNo = fopAcM_GetRoomNo(this);
|
||||
mSound.framework(0, dComIfGp_getReverb(roomNo));
|
||||
mCyl.SetR(25.0f);
|
||||
mCyl.SetH(140.0f);
|
||||
mCyl.SetC(current.pos);
|
||||
dComIfG_Ccsp()->Set(&mCyl);
|
||||
pointLightProc();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80B9F634-80B9F6D8 000A54 00A4+00 1/1 0/0 0/0 .text Draw__11daTvCdlst_cFv */
|
||||
int daTvCdlst_c::Draw() {
|
||||
g_env_light.settingTevStruct(0x40, ¤t.pos, &tevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
|
||||
dComIfGd_setListBG();
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
dComIfGd_setList();
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80B9F6D8-80B9F730 000AF8 0058+00 1/1 0/0 0/0 .text Delete__11daTvCdlst_cFv */
|
||||
int daTvCdlst_c::Delete() {
|
||||
mSound.deleteObject();
|
||||
dComIfG_resDelete(&mPhaseReq, "HShokudai");
|
||||
if (mLightType) {
|
||||
dKy_plight_cut(&mLight);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80B9F730-80B9F750 000B50 0020+00 1/0 0/0 0/0 .text daTvCdlst_Draw__FP11daTvCdlst_c */
|
||||
static int daTvCdlst_Draw(daTvCdlst_c* i_this) {
|
||||
return i_this->Draw();
|
||||
}
|
||||
|
||||
/* 80B9F750-80B9F770 000B70 0020+00 1/0 0/0 0/0 .text daTvCdlst_Execute__FP11daTvCdlst_c
|
||||
*/
|
||||
static int daTvCdlst_Execute(daTvCdlst_c* i_this) {
|
||||
return i_this->Execute();
|
||||
}
|
||||
|
||||
/* 80B9F770-80B9F790 000B90 0020+00 1/0 0/0 0/0 .text daTvCdlst_Delete__FP11daTvCdlst_c
|
||||
*/
|
||||
static int daTvCdlst_Delete(daTvCdlst_c* i_this) {
|
||||
return i_this->Delete();
|
||||
}
|
||||
|
||||
/* 80B9F790-80B9F7B0 000BB0 0020+00 1/0 0/0 0/0 .text daTvCdlst_Create__FP10fopAc_ac_c */
|
||||
static int daTvCdlst_Create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daTvCdlst_c*>(i_this)->create();
|
||||
}
|
||||
|
||||
/* 80B9F944-80B9F964 -00001 0020+00 1/0 0/0 0/0 .data l_daTvCdlst_Method */
|
||||
static actor_method_class l_daTvCdlst_Method = {
|
||||
(process_method_func)daTvCdlst_Create__FP10fopAc_ac_c,
|
||||
(process_method_func)daTvCdlst_Delete__FP11daTvCdlst_c,
|
||||
(process_method_func)daTvCdlst_Execute__FP11daTvCdlst_c,
|
||||
(process_method_func)daTvCdlst_Create,
|
||||
(process_method_func)daTvCdlst_Delete,
|
||||
(process_method_func)daTvCdlst_Execute,
|
||||
0,
|
||||
(process_method_func)daTvCdlst_Draw__FP11daTvCdlst_c,
|
||||
(process_method_func)daTvCdlst_Draw,
|
||||
};
|
||||
|
||||
/* 80B9F964-80B9F994 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_TvCdlst */
|
||||
|
|
@ -131,267 +266,4 @@ extern actor_process_profile_definition g_profile_Obj_TvCdlst = {
|
|||
fopAc_CULLBOX_CUSTOM_e, // cullType
|
||||
};
|
||||
|
||||
/* 80B9F994-80B9F9A0 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,
|
||||
};
|
||||
|
||||
/* 80B9F9A0-80B9F9AC 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,
|
||||
};
|
||||
|
||||
/* 80B9F9AC-80B9F9B8 0000AC 000C+00 2/2 0/0 0/0 .data __vt__15daTvCdlst_HIO_c */
|
||||
SECTION_DATA extern void* __vt__15daTvCdlst_HIO_c[3] = {
|
||||
(void*)NULL /* RTTI */,
|
||||
(void*)NULL,
|
||||
(void*)__dt__15daTvCdlst_HIO_cFv,
|
||||
};
|
||||
|
||||
/* 80B9F9B8-80B9F9C4 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,
|
||||
};
|
||||
|
||||
/* 80B9ECCC-80B9ECF8 0000EC 002C+00 1/1 0/0 0/0 .text __ct__15daTvCdlst_HIO_cFv */
|
||||
daTvCdlst_HIO_c::daTvCdlst_HIO_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9ECF8-80B9ED40 000118 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */
|
||||
// mDoHIO_entry_c::~mDoHIO_entry_c() {
|
||||
extern "C" void __dt__14mDoHIO_entry_cFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9ED40-80B9EDC8 000160 0088+00 2/2 0/0 0/0 .text setBaseMtx__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::setBaseMtx() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80B9F8F4-80B9F8F4 000064 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80B9F8F4 = "HShokudai";
|
||||
#pragma pop
|
||||
|
||||
/* 80B9EDC8-80B9EE34 0001E8 006C+00 1/1 0/0 0/0 .text CreateHeap__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::CreateHeap() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80B9F890-80B9F8C0 000000 0030+00 4/4 0/0 0/0 .rodata mCcDObjInfo__11daTvCdlst_c */
|
||||
SECTION_RODATA u8 const daTvCdlst_c::mCcDObjInfo[48] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
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, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80B9F890, &daTvCdlst_c::mCcDObjInfo);
|
||||
|
||||
/* 80B9F8C0-80B9F8C4 000030 0004+00 1/1 0/0 0/0 .rodata @3750 */
|
||||
SECTION_RODATA static f32 const lit_3750 = 155.0f;
|
||||
COMPILER_STRIP_GATE(0x80B9F8C0, &lit_3750);
|
||||
|
||||
/* 80B9EE34-80B9F0B4 000254 0280+00 1/1 0/0 0/0 .text create__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::create() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9F0B4-80B9F0FC 0004D4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
|
||||
// cM3dGCyl::~cM3dGCyl() {
|
||||
extern "C" void __dt__8cM3dGCylFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9F0FC-80B9F144 00051C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
|
||||
// cM3dGAab::~cM3dGAab() {
|
||||
extern "C" void __dt__8cM3dGAabFv() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9F144-80B9F164 000564 0020+00 1/1 0/0 0/0 .text
|
||||
* createHeapCallBack__11daTvCdlst_cFP10fopAc_ac_c */
|
||||
void daTvCdlst_c::createHeapCallBack(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80B9F8C4-80B9F8C8 000034 0004+00 0/1 0/0 0/0 .rodata @3840 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3840 = 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80B9F8C4, &lit_3840);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F8C8-80B9F8CC 000038 0004+00 0/1 0/0 0/0 .rodata @3841 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3841 = 500.0f;
|
||||
COMPILER_STRIP_GATE(0x80B9F8C8, &lit_3841);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F8CC-80B9F8D0 00003C 0004+00 0/3 0/0 0/0 .rodata @3842 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3842 = 1.0f;
|
||||
COMPILER_STRIP_GATE(0x80B9F8CC, &lit_3842);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F8D0-80B9F8D4 000040 0004+00 0/3 0/0 0/0 .rodata @3843 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const lit_3843[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80B9F8D0, &lit_3843);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F164-80B9F1F0 000584 008C+00 1/1 0/0 0/0 .text lightInit__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::lightInit() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9F1F0-80B9F220 000610 0030+00 2/2 0/0 0/0 .text setLight__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::setLight() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9F220-80B9F250 000640 0030+00 1/1 0/0 0/0 .text cutLight__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::cutLight() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80B9F8D4-80B9F8D8 000044 0004+00 0/1 0/0 0/0 .rodata @3861 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u32 const lit_3861 = 0xBC6642FF;
|
||||
COMPILER_STRIP_GATE(0x80B9F8D4, &lit_3861);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F8D8-80B9F8DC 000048 0004+00 0/1 0/0 0/0 .rodata @3869 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3869 = 0.5f;
|
||||
COMPILER_STRIP_GATE(0x80B9F8D8, &lit_3869);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F8DC-80B9F8E0 00004C 0004+00 0/1 0/0 0/0 .rodata @3870 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3870 = 1.0f / 10.0f;
|
||||
COMPILER_STRIP_GATE(0x80B9F8DC, &lit_3870);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F8E0-80B9F8E4 000050 0004+00 0/1 0/0 0/0 .rodata @3871 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u32 const lit_3871 = 0x38D1B717;
|
||||
COMPILER_STRIP_GATE(0x80B9F8E0, &lit_3871);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F8E4-80B9F8E8 000054 0004+00 0/1 0/0 0/0 .rodata @3872 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u32 const lit_3872 = 0x358637BD;
|
||||
COMPILER_STRIP_GATE(0x80B9F8E4, &lit_3872);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F250-80B9F300 000670 00B0+00 1/1 0/0 0/0 .text pointLightProc__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::pointLightProc() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80B9F8E8-80B9F8EC 000058 0004+00 0/1 0/0 0/0 .rodata @3937 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3937 = -1.0f;
|
||||
COMPILER_STRIP_GATE(0x80B9F8E8, &lit_3937);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F8EC-80B9F8F0 00005C 0004+00 0/1 0/0 0/0 .rodata @3938 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3938 = 25.0f;
|
||||
COMPILER_STRIP_GATE(0x80B9F8EC, &lit_3938);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F8F0-80B9F8F4 000060 0004+00 0/1 0/0 0/0 .rodata @3939 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3939 = 140.0f;
|
||||
COMPILER_STRIP_GATE(0x80B9F8F0, &lit_3939);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F300-80B9F634 000720 0334+00 1/1 0/0 0/0 .text Execute__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::Execute() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9F634-80B9F6D8 000A54 00A4+00 1/1 0/0 0/0 .text Draw__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::Draw() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9F6D8-80B9F730 000AF8 0058+00 1/1 0/0 0/0 .text Delete__11daTvCdlst_cFv */
|
||||
void daTvCdlst_c::Delete() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9F730-80B9F750 000B50 0020+00 1/0 0/0 0/0 .text daTvCdlst_Draw__FP11daTvCdlst_c */
|
||||
static void daTvCdlst_Draw(daTvCdlst_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9F750-80B9F770 000B70 0020+00 1/0 0/0 0/0 .text daTvCdlst_Execute__FP11daTvCdlst_c
|
||||
*/
|
||||
static void daTvCdlst_Execute(daTvCdlst_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9F770-80B9F790 000B90 0020+00 1/0 0/0 0/0 .text daTvCdlst_Delete__FP11daTvCdlst_c
|
||||
*/
|
||||
static void daTvCdlst_Delete(daTvCdlst_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9F790-80B9F7B0 000BB0 0020+00 1/0 0/0 0/0 .text daTvCdlst_Create__FP10fopAc_ac_c */
|
||||
static void daTvCdlst_Create(fopAc_ac_c* param_0) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* 80B9F7B0-80B9F80C 000BD0 005C+00 2/1 0/0 0/0 .text __dt__15daTvCdlst_HIO_cFv */
|
||||
daTvCdlst_HIO_c::~daTvCdlst_HIO_c() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80B9F9D0-80B9F9DC 000008 000C+00 1/1 0/0 0/0 .bss @3622 */
|
||||
static u8 lit_3622[12];
|
||||
|
||||
/* 80B9F9DC-80B9F9E4 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */
|
||||
static u8 l_HIO[8];
|
||||
|
||||
/* 80B9F80C-80B9F87C 000C2C 0070+00 0/0 1/0 0/0 .text __sinit_d_a_obj_TvCdlst_cpp */
|
||||
void __sinit_d_a_obj_TvCdlst_cpp() {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
REGISTER_CTORS(0x80B9F80C, __sinit_d_a_obj_TvCdlst_cpp);
|
||||
#pragma pop
|
||||
|
||||
/* 80B9F8F4-80B9F8F4 000064 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
|
|
|||
Loading…
Reference in New Issue