d_a_obj_cb almost matching (#2265)

* d_a_obj_cb almost matching

* d_a_obj_bubblePillar OK

* Work on d_a_obj_fchain

* d_a_obj_gb OK

* daTimeFire_c OK

* d_a_obj_toaru_maki OK

* d_a_obj_ten OK
This commit is contained in:
hatal175
2024-12-17 01:16:19 +02:00
committed by GitHub
parent ee992eb80c
commit c5ab943cfc
23 changed files with 2329 additions and 2572 deletions
+1 -1
View File
@@ -14274,7 +14274,7 @@ void daAlink_c::posMove() {
}
setFootSpeed();
if (checkEndResetFlg0(ERFLG0_UNK_10000000)) {
if (checkEndResetFlg0(ERFLG0_WOLF_FCHAIN_PULL)) {
speedF = 0.0f;
mNormalSpeed = 0.0f;
}
+231 -380
View File
@@ -4,116 +4,18 @@
*/
#include "d/actor/d_a_obj_bubblePilar.h"
#include "dol2asm.h"
#include "d/d_com_inf_game.h"
#include "d/d_bg_w.h"
//
// Forward References:
//
extern "C" void __ct__17daBubbPilar_HIO_cFv();
extern "C" void __dt__14mDoHIO_entry_cFv();
extern "C" void setBaseMtx__13daBubbPilar_cFv();
extern "C" void CreateHeap__13daBubbPilar_cFv();
extern "C" void create__13daBubbPilar_cFv();
extern "C" void __dt__8cM3dGCylFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__10dCcD_GSttsFv();
extern "C" void Execute__13daBubbPilar_cFPPA3_A4_f();
extern "C" void initModeWait__13daBubbPilar_cFv();
extern "C" void modeWait__13daBubbPilar_cFv();
extern "C" void initModeEffOn__13daBubbPilar_cFv();
extern "C" void modeEffOn__13daBubbPilar_cFv();
extern "C" void Draw__13daBubbPilar_cFv();
extern "C" void Delete__13daBubbPilar_cFv();
extern "C" static void daBubbPilar_Draw__FP13daBubbPilar_c();
extern "C" static void daBubbPilar_Execute__FP13daBubbPilar_c();
extern "C" static void daBubbPilar_Delete__FP13daBubbPilar_c();
extern "C" static void daBubbPilar_Create__FP10fopAc_ac_c();
extern "C" void __dt__10cCcD_GSttsFv();
extern "C" void __dt__17daBubbPilar_HIO_cFv();
extern "C" void __sinit_d_a_obj_bubblePilar_cpp();
extern "C" u8 const mCcDObjInfo__13daBubbPilar_c[48];
extern "C" extern char const* const d_a_obj_bubblePilar__stringBase0;
extern "C" u8 mCcDCyl__13daBubbPilar_c[68];
//
// External References:
//
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
extern "C" void scaleM__14mDoMtx_stack_cFfff();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
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 isSwitch__10dSv_info_cCFii();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void getEmitter__Q213dPa_control_c7level_cFUl();
extern "C" void
set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void Release__4cBgSFP9dBgW_Base();
extern "C" void dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
extern "C" void __ct__16dBgS_MoveBgActorFv();
extern "C" bool Create__16dBgS_MoveBgActorFv();
extern "C" bool IsDelete__16dBgS_MoveBgActorFv();
extern "C" bool ToFore__16dBgS_MoveBgActorFv();
extern "C" bool ToBack__16dBgS_MoveBgActorFv();
extern "C" void
MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f();
extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv();
extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv();
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 GetTgHitGObj__12dCcD_GObjInfFv();
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_camera_water_in_status_check__Fv();
extern "C" void dKy_bg_MAxx_proc__FPv();
extern "C" void Set__4cCcSFP8cCcD_Obj();
extern "C" void SetC__8cM3dGCylFRC4cXyz();
extern "C" void SetH__8cM3dGCylFf();
extern "C" void SetR__8cM3dGCylFf();
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __dl__FPv();
extern "C" void __ptmf_scall();
extern "C" void _savegpr_24();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_24();
extern "C" void _restgpr_28();
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" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" void __register_global_object();
//
// Declarations:
//
/* ############################################################################################## */
/* 80BC40BC-80BC40C8 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80BC40C8-80BC40DC 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
#pragma push
#pragma force_active on
SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
static u32 lit_1787[1 + 4 /* padding */] = {
0x02000201,
/* padding */
0x40080000,
@@ -123,51 +25,242 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
};
#pragma pop
/* 80BC4224-80BC422C 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */
static daBubbPilar_HIO_c l_HIO;
/* 80BC4070-80BC40A0 000000 0030+00 3/3 0/0 0/0 .rodata mCcDObjInfo__13daBubbPilar_c */
const dCcD_SrcGObjInf daBubbPilar_c::mCcDObjInfo = {
{0, {{0, 0, 0}, {0x20, 0x11}, {0}}},
{dCcD_SE_NONE, 0, 1, 0, 0},
{dCcD_SE_NONE, 0, 0, 0, 2},
{0},
};
/* 80BC40DC-80BC4120 000020 0044+00 2/2 0/0 0/0 .data mCcDCyl__13daBubbPilar_c */
SECTION_DATA u8 daBubbPilar_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 daBubbPilar_c::mCcDCyl = {
daBubbPilar_c::mCcDObjInfo,
{{0.0f, 0.0f, 0.0f}, 0.0f, 0.0f}
};
/* 80BC4120-80BC412C -00001 000C+00 0/1 0/0 0/0 .data @3843 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_3843[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)modeWait__13daBubbPilar_cFv,
};
#pragma pop
/* 80BC33EC-80BC3418 0000EC 002C+00 1/1 0/0 0/0 .text __ct__17daBubbPilar_HIO_cFv */
daBubbPilar_HIO_c::daBubbPilar_HIO_c() {
field_0x4 = 20;
field_0x5 = 0;
}
/* 80BC412C-80BC4138 -00001 000C+00 0/1 0/0 0/0 .data @3844 */
#pragma push
#pragma force_active on
SECTION_DATA static void* lit_3844[3] = {
(void*)NULL,
(void*)0xFFFFFFFF,
(void*)modeEffOn__13daBubbPilar_cFv,
};
#pragma pop
/* 80BC3460-80BC3518 000160 00B8+00 2/2 0/0 0/0 .text setBaseMtx__13daBubbPilar_cFv */
void daBubbPilar_c::setBaseMtx() {
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z);
mDoMtx_stack_c::scaleM(scale.x, scale.y, scale.z);
cXyz baseScale(1.0f, 1.0f, 1.0f);
mModels[mModelMode]->setBaseScale(baseScale);
mModels[mModelMode]->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 80BC4138-80BC4150 00007C 0018+00 0/1 0/0 0/0 .data mode_proc$3842 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 mode_proc[24] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 80BC3518-80BC35D0 000218 00B8+00 1/0 0/0 0/0 .text CreateHeap__13daBubbPilar_cFv */
int daBubbPilar_c::CreateHeap() {
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("M_Crack", 4);
JUT_ASSERT(226, modelData != 0);
mModels[MODE_WAIT] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (mModels[MODE_WAIT] == NULL) {
return 0;
}
modelData = (J3DModelData*)dComIfG_getObjectRes("M_Crack", 5);
JUT_ASSERT(237, modelData != 0);
mModels[MODE_EFF_ON] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (mModels[MODE_EFF_ON] == NULL) {
return 0;
}
return 1;
}
/* 80BC35D0-80BC3848 0002D0 0278+00 1/1 0/0 0/0 .text create__13daBubbPilar_cFv */
int daBubbPilar_c::create() {
fopAcM_SetupActor(this, daBubbPilar_c);
int rv = dComIfG_resLoad(&mPhase, "M_Crack");
switch (rv) {
case cPhs_COMPLEATE_e:
if (MoveBGCreate("M_Crack", 8, dBgS_MoveBGProc_Typical, 0x1900, NULL) == cPhs_ERROR_e) {
return cPhs_ERROR_e;
}
mStts.Init(200, 0xff, this);
mCyl.Set(mCcDCyl);
mCyl.SetStts(&mStts);
mArg0 = getArg0();
mSw = getSw();
if (mArg0 != 0) {
if (mpBgW != NULL) {
dComIfG_Bgsp().Release(mpBgW);
}
mCyl.OffTgSetBit();
}
if (mSw == 0xff) {
initModeEffOn();
mModelMode = MODE_EFF_ON;
} else {
mIsSw = fopAcM_isSwitch(this, mSw);
if (mIsSw != 0) {
initModeEffOn();
mModelMode = MODE_EFF_ON;
} else {
initModeWait();
mModelMode = MODE_WAIT;
}
}
fopAcM_SetMtx(this, mModels[mModelMode]->getBaseTRMtx());
fopAcM_setCullSizeBox2(this, mModels[mModelMode]->getModelData());
setBaseMtx();
for (int i = 0; i < 4; i++) {
mEmitters[i] = NULL;
}
rv = cPhs_COMPLEATE_e;
break;
}
return rv;
}
/* 80BC3934-80BC3AB8 000634 0184+00 1/0 0/0 0/0 .text Execute__13daBubbPilar_cFPPA3_A4_f
*/
int daBubbPilar_c::Execute(Mtx** param_1) {
static daBubbPilar_c::modeProc const mode_proc[2] = {
&daBubbPilar_c::modeWait,
&daBubbPilar_c::modeEffOn,
};
if (mSw != 0xff) {
u8 prevIsSw = mIsSw;
mIsSw = fopAcM_isSwitch(this, mSw);
if (prevIsSw != mIsSw) {
if (mIsSw != 0) {
initModeEffOn();
} else {
initModeWait();
}
}
}
(this->*(mode_proc[mMode]))();
if (dKy_camera_water_in_status_check()) {
for (int i = 0; i < 4; i++) {
if (mEmitters[i] != NULL) {
mEmitters[i]->setGlobalAlpha(0xff);
}
}
} else {
for (int i = 0; i < 4; i++) {
if (mEmitters[i] != NULL) {
mEmitters[i]->setGlobalAlpha(0x20);
}
}
}
*param_1 = &mModels[mModelMode]->getBaseTRMtx();
setBaseMtx();
return 1;
}
/* 80BC3AB8-80BC3AC4 0007B8 000C+00 2/2 0/0 0/0 .text initModeWait__13daBubbPilar_cFv */
void daBubbPilar_c::initModeWait() {
mMode = 0;
}
/* 80BC3AC4-80BC3C74 0007C4 01B0+00 1/0 0/0 0/0 .text modeWait__13daBubbPilar_cFv */
void daBubbPilar_c::modeWait() {
if (mArg0 == 0) {
s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(this));
mDoAud_seStartLevel(Z2SE_OBJ_WTR_STREAM_S, &current.pos, 0, reverb);
mEmitterId = dComIfGp_particle_set(mEmitterId, 0x88bd, &current.pos, &shape_angle, &scale);
mEmitters[3] = (JPABaseEmitter*)dComIfGp_particle_getEmitter(mEmitterId);
if (mCyl.ChkTgHit()) {
if ((mCyl.GetTgHitGObj()->GetAtType() & AT_TYPE_BOMB) != 0) {
mModelMode = MODE_EFF_ON;
fopAcM_SetMtx(this, mModels[mModelMode]->getBaseTRMtx());
fopAcM_setCullSizeBox2(this, mModels[mModelMode]->getModelData());
fopAcM_onSwitch(this, mSw);
}
}
mCyl.SetR(100.0f);
mCyl.SetH(100.0f);
mCyl.SetC(current.pos);
dComIfG_Ccsp()->Set(&mCyl);
}
}
/* 80BC3C74-80BC3C98 000974 0024+00 2/2 0/0 0/0 .text initModeEffOn__13daBubbPilar_cFv */
void daBubbPilar_c::initModeEffOn() {
if (mArg0 == 0) {
mCyl.OffTgSetBit();
}
mMode = 1;
}
/* 80BC40AC-80BC40B4 00003C 0006+02 0/1 0/0 0/0 .rodata particle_id$3953 */
static u16 const particle_id[3] = {
0x88BE,
0x88BF,
0x88C0,
};
#pragma pop
/* 80BC3C98-80BC3DB0 000998 0118+00 1/0 0/0 0/0 .text modeEffOn__13daBubbPilar_cFv */
void daBubbPilar_c::modeEffOn() {
s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(this));
mDoAud_seStartLevel(Z2SE_OBJ_WTR_STREAM, &current.pos, 0, reverb);
for (int i = 0; i < 3; i = i + 1) {
mEmitterIds[i] = dComIfGp_particle_set(
mEmitterIds[i],
particle_id[i],
&current.pos, &shape_angle,
&scale);
mEmitters[i] = dComIfGp_particle_getEmitter(mEmitterIds[i]);
}
}
/* 80BC3DB0-80BC3E8C 000AB0 00DC+00 1/0 0/0 0/0 .text Draw__13daBubbPilar_cFv */
int daBubbPilar_c::Draw() {
if (mArg0 == 0) {
g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mModels[mModelMode], &tevStr);
dKy_bg_MAxx_proc(mModels[mModelMode]);
dComIfGd_setListBG();
mDoExt_modelUpdateDL(mModels[mModelMode]);
dComIfGd_setList();
}
return 1;
}
/* 80BC3E8C-80BC3EBC 000B8C 0030+00 1/0 0/0 0/0 .text Delete__13daBubbPilar_cFv */
int daBubbPilar_c::Delete() {
dComIfG_resDelete(&mPhase, "M_Crack");
return 1;
}
/* 80BC3EBC-80BC3EE8 000BBC 002C+00 1/0 0/0 0/0 .text daBubbPilar_Draw__FP13daBubbPilar_c
*/
static int daBubbPilar_Draw(daBubbPilar_c* i_this) {
return i_this->MoveBGDraw();
}
/* 80BC3EE8-80BC3F08 000BE8 0020+00 1/0 0/0 0/0 .text daBubbPilar_Execute__FP13daBubbPilar_c */
static int daBubbPilar_Execute(daBubbPilar_c* i_this) {
return i_this->MoveBGExecute();
}
/* 80BC3F08-80BC3F28 000C08 0020+00 1/0 0/0 0/0 .text daBubbPilar_Delete__FP13daBubbPilar_c */
static int daBubbPilar_Delete(daBubbPilar_c* i_this) {
return i_this->MoveBGDelete();
}
/* 80BC3F28-80BC3F48 000C28 0020+00 1/0 0/0 0/0 .text daBubbPilar_Create__FP10fopAc_ac_c
*/
static int daBubbPilar_Create(fopAc_ac_c* i_this) {
return static_cast<daBubbPilar_c*>(i_this)->create();
}
/* 80BC4150-80BC4170 -00001 0020+00 1/0 0/0 0/0 .data l_daBubbPilar_Method */
static actor_method_class l_daBubbPilar_Method = {
(process_method_func)daBubbPilar_Create__FP10fopAc_ac_c,
(process_method_func)daBubbPilar_Delete__FP13daBubbPilar_c,
(process_method_func)daBubbPilar_Execute__FP13daBubbPilar_c,
0,
(process_method_func)daBubbPilar_Draw__FP13daBubbPilar_c,
(process_method_func)daBubbPilar_Create,
(process_method_func)daBubbPilar_Delete,
(process_method_func)daBubbPilar_Execute,
NULL,
(process_method_func)daBubbPilar_Draw,
};
/* 80BC4170-80BC41A0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_awaPlar */
@@ -188,246 +281,4 @@ extern actor_process_profile_definition g_profile_Obj_awaPlar = {
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80BC41A0-80BC41AC 0000E4 000C+00 2/2 0/0 0/0 .data __vt__10cCcD_GStts */
SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10cCcD_GSttsFv,
};
/* 80BC41AC-80BC41B8 0000F0 000C+00 1/1 0/0 0/0 .data __vt__10dCcD_GStts */
SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10dCcD_GSttsFv,
};
/* 80BC41B8-80BC41C4 0000FC 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,
};
/* 80BC41C4-80BC41D0 000108 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,
};
/* 80BC41D0-80BC41F8 000114 0028+00 1/1 0/0 0/0 .data __vt__13daBubbPilar_c */
SECTION_DATA extern void* __vt__13daBubbPilar_c[10] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)CreateHeap__13daBubbPilar_cFv,
(void*)Create__16dBgS_MoveBgActorFv,
(void*)Execute__13daBubbPilar_cFPPA3_A4_f,
(void*)Draw__13daBubbPilar_cFv,
(void*)Delete__13daBubbPilar_cFv,
(void*)IsDelete__16dBgS_MoveBgActorFv,
(void*)ToFore__16dBgS_MoveBgActorFv,
(void*)ToBack__16dBgS_MoveBgActorFv,
};
/* 80BC41F8-80BC4204 00013C 000C+00 2/2 0/0 0/0 .data __vt__17daBubbPilar_HIO_c */
SECTION_DATA extern void* __vt__17daBubbPilar_HIO_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__17daBubbPilar_HIO_cFv,
};
/* 80BC4204-80BC4210 000148 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,
};
/* 80BC33EC-80BC3418 0000EC 002C+00 1/1 0/0 0/0 .text __ct__17daBubbPilar_HIO_cFv */
daBubbPilar_HIO_c::daBubbPilar_HIO_c() {
// NONMATCHING
}
/* 80BC3418-80BC3460 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
}
/* ############################################################################################## */
/* 80BC4070-80BC40A0 000000 0030+00 3/3 0/0 0/0 .rodata mCcDObjInfo__13daBubbPilar_c */
SECTION_RODATA u8 const daBubbPilar_c::mCcDObjInfo[48] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BC4070, &daBubbPilar_c::mCcDObjInfo);
/* 80BC40A0-80BC40A4 000030 0004+00 1/3 0/0 0/0 .rodata @3654 */
SECTION_RODATA static f32 const lit_3654 = 1.0f;
COMPILER_STRIP_GATE(0x80BC40A0, &lit_3654);
/* 80BC3460-80BC3518 000160 00B8+00 2/2 0/0 0/0 .text setBaseMtx__13daBubbPilar_cFv */
void daBubbPilar_c::setBaseMtx() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC40B4-80BC40B4 000044 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BC40B4 = "M_Crack";
#pragma pop
/* 80BC3518-80BC35D0 000218 00B8+00 1/0 0/0 0/0 .text CreateHeap__13daBubbPilar_cFv */
void daBubbPilar_c::CreateHeap() {
// NONMATCHING
}
/* 80BC35D0-80BC3848 0002D0 0278+00 1/1 0/0 0/0 .text create__13daBubbPilar_cFv */
void daBubbPilar_c::create() {
// NONMATCHING
}
/* 80BC3848-80BC3890 000548 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
// cM3dGCyl::~cM3dGCyl() {
extern "C" void __dt__8cM3dGCylFv() {
// NONMATCHING
}
/* 80BC3890-80BC38D8 000590 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
// cM3dGAab::~cM3dGAab() {
extern "C" void __dt__8cM3dGAabFv() {
// NONMATCHING
}
/* 80BC38D8-80BC3934 0005D8 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
// dCcD_GStts::~dCcD_GStts() {
extern "C" void __dt__10dCcD_GSttsFv() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC4218-80BC4224 000008 000C+00 1/1 0/0 0/0 .bss @3623 */
static u8 lit_3623[12];
/* 80BC4224-80BC422C 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */
static u8 l_HIO[8];
/* 80BC422C-80BC4230 00001C 0004+00 1/1 0/0 0/0 .bss None */
static u8 data_80BC422C[4];
/* 80BC3934-80BC3AB8 000634 0184+00 1/0 0/0 0/0 .text Execute__13daBubbPilar_cFPPA3_A4_f
*/
void daBubbPilar_c::Execute(f32 (**param_0)[3][4]) {
// NONMATCHING
}
/* 80BC3AB8-80BC3AC4 0007B8 000C+00 2/2 0/0 0/0 .text initModeWait__13daBubbPilar_cFv */
void daBubbPilar_c::initModeWait() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC40A4-80BC40A8 000034 0004+00 0/2 0/0 0/0 .rodata @3939 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3939 = -1.0f;
COMPILER_STRIP_GATE(0x80BC40A4, &lit_3939);
#pragma pop
/* 80BC40A8-80BC40AC 000038 0004+00 0/1 0/0 0/0 .rodata @3940 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3940 = 100.0f;
COMPILER_STRIP_GATE(0x80BC40A8, &lit_3940);
#pragma pop
/* 80BC3AC4-80BC3C74 0007C4 01B0+00 1/0 0/0 0/0 .text modeWait__13daBubbPilar_cFv */
void daBubbPilar_c::modeWait() {
// NONMATCHING
}
/* 80BC3C74-80BC3C98 000974 0024+00 2/2 0/0 0/0 .text initModeEffOn__13daBubbPilar_cFv */
void daBubbPilar_c::initModeEffOn() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC40AC-80BC40B4 00003C 0006+02 0/1 0/0 0/0 .rodata particle_id$3953 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const particle_id[6 + 2 /* padding */] = {
0x88,
0xBE,
0x88,
0xBF,
0x88,
0xC0,
/* padding */
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80BC40AC, &particle_id);
#pragma pop
/* 80BC3C98-80BC3DB0 000998 0118+00 1/0 0/0 0/0 .text modeEffOn__13daBubbPilar_cFv */
void daBubbPilar_c::modeEffOn() {
// NONMATCHING
}
/* 80BC3DB0-80BC3E8C 000AB0 00DC+00 1/0 0/0 0/0 .text Draw__13daBubbPilar_cFv */
void daBubbPilar_c::Draw() {
// NONMATCHING
}
/* 80BC3E8C-80BC3EBC 000B8C 0030+00 1/0 0/0 0/0 .text Delete__13daBubbPilar_cFv */
void daBubbPilar_c::Delete() {
// NONMATCHING
}
/* 80BC3EBC-80BC3EE8 000BBC 002C+00 1/0 0/0 0/0 .text daBubbPilar_Draw__FP13daBubbPilar_c
*/
static void daBubbPilar_Draw(daBubbPilar_c* param_0) {
// NONMATCHING
}
/* 80BC3EE8-80BC3F08 000BE8 0020+00 1/0 0/0 0/0 .text daBubbPilar_Execute__FP13daBubbPilar_c */
static void daBubbPilar_Execute(daBubbPilar_c* param_0) {
// NONMATCHING
}
/* 80BC3F08-80BC3F28 000C08 0020+00 1/0 0/0 0/0 .text daBubbPilar_Delete__FP13daBubbPilar_c */
static void daBubbPilar_Delete(daBubbPilar_c* param_0) {
// NONMATCHING
}
/* 80BC3F28-80BC3F48 000C28 0020+00 1/0 0/0 0/0 .text daBubbPilar_Create__FP10fopAc_ac_c
*/
static void daBubbPilar_Create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80BC3F48-80BC3F90 000C48 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
// cCcD_GStts::~cCcD_GStts() {
extern "C" void __dt__10cCcD_GSttsFv() {
// NONMATCHING
}
/* 80BC3F90-80BC3FEC 000C90 005C+00 2/1 0/0 0/0 .text __dt__17daBubbPilar_HIO_cFv */
daBubbPilar_HIO_c::~daBubbPilar_HIO_c() {
// NONMATCHING
}
/* 80BC3FEC-80BC405C 000CEC 0070+00 0/0 1/0 0/0 .text __sinit_d_a_obj_bubblePilar_cpp */
void __sinit_d_a_obj_bubblePilar_cpp() {
// NONMATCHING
}
#pragma push
#pragma force_active on
REGISTER_CTORS(0x80BC3FEC, __sinit_d_a_obj_bubblePilar_cpp);
#pragma pop
/* 80BC40B4-80BC40B4 000044 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+232 -397
View File
@@ -4,105 +4,248 @@
*/
#include "d/actor/d_a_obj_cb.h"
#include "dol2asm.h"
#include "SSystem/SComponent/c_lib.h"
#include "SSystem/SComponent/c_math.h"
#include "d/d_com_inf_game.h"
#include "d/d_bg_w.h"
/* 80BC4B2C-80BC4B44 0000EC 0018+00 1/1 0/0 0/0 .text __ct__14daObj_Cb_HIO_cFv */
daObj_Cb_HIO_c::daObj_Cb_HIO_c() {
field_0x4 = -1;
}
/* 80BC4B44-80BC4BA8 000104 0064+00 1/0 0/0 0/0 .text daObj_Cb_Draw__FP12obj_cb_class */
static int daObj_Cb_Draw(obj_cb_class* i_this) {
g_env_light.settingTevStruct(0x10, &i_this->current.pos, &i_this->tevStr);
g_env_light.setLightTevColorType_MAJI(i_this->mModel, &i_this->tevStr);
mDoExt_modelUpdateDL(i_this->mModel);
return 1;
}
//
// Forward References:
//
/* 80BC4BA8-80BC4BB4 000168 000C+00 1/1 0/0 0/0 .text
* ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
static void ride_call_back(dBgW* param_0, fopAc_ac_c* i_this, fopAc_ac_c* param_2) {
static_cast<obj_cb_class*>(i_this)->field_0x59c = 3;
}
extern "C" void __ct__14daObj_Cb_HIO_cFv();
extern "C" static void daObj_Cb_Draw__FP12obj_cb_class();
extern "C" static void ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c();
extern "C" static void action__FP12obj_cb_class();
extern "C" static void daObj_Cb_Execute__FP12obj_cb_class();
extern "C" static bool daObj_Cb_IsDelete__FP12obj_cb_class();
extern "C" static void daObj_Cb_Delete__FP12obj_cb_class();
extern "C" static void useHeapInit__FP10fopAc_ac_c();
extern "C" static void daObj_Cb_Create__FP10fopAc_ac_c();
extern "C" void __dt__8cM3dGSphFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void __dt__12dBgS_ObjAcchFv();
extern "C" void __dt__14daObj_Cb_HIO_cFv();
extern "C" void __sinit_d_a_obj_cb_cpp();
extern "C" static void func_80BC57C0();
extern "C" static void func_80BC57C8();
extern "C" extern char const* const d_a_obj_cb__stringBase0;
/* 80BC4BB4-80BC51B8 000174 0604+00 1/1 0/0 0/0 .text action__FP12obj_cb_class */
// NONMATCHING - i_this regalloc. Assigning i_this to a variable with a conversion
// fixes the regalloc but the assignment is in wrong place
static void action(obj_cb_class* i_this) {
cXyz local_60;
int local_78 = 0;
switch(i_this->field_0x596) {
case 0:
if (i_this->field_0x59c != 0) {
i_this->field_0x59c--;
i_this->field_0x59e++;
f32 dist = (i_this->home.pos - i_this->current.pos).abs();
if ((i_this->field_0x59e & 4) != 0) {
local_78 = 0x100;
} else {
local_78 = -0x100;
}
cMtx_YrotS(*calc_mtx, i_this->current.angle.y);
local_60.x = 0.0f;
local_60.y = 0.0f;
local_60.z = i_this->speedF;
MtxPosition(&local_60, &i_this->speed);
i_this->current.pos += i_this->speed;
if (dist > 30.0f) {
cLib_addCalcAngleS2(&i_this->shape_angle.x, 0x2000, 2, 0x200);
}
cLib_addCalc2(&i_this->speedF, 5.0f, 1.0f, 0.5f);
if (dist > 60.0f) {
i_this->field_0x596 = 10;
local_60.x = 0.0f;
local_60.y = 0.0f;
local_60.z = 5.0f;
MtxPosition(&local_60, &i_this->speed);
i_this->field_0x5a0.x = 0x900;
dComIfG_Bgsp().Release(i_this->mBgW);
i_this->mBgW = 0;
Z2GetAudioMgr()->seStart(Z2SE_OBJ_CTL_ROCK_FALL, &i_this->current.pos, 0, 0, 1.0f,
1.0f, -1.0f, -1.0f, 0);
}
} else {
i_this->field_0x59e = 0;
cLib_addCalcAngleS2(&i_this->shape_angle.x, 0, 1, 0x1000);
}
break;
case 5:
if (fopAcM_searchPlayerDistanceXZ(i_this) < 90.0f) {
cMtx_YrotS(*calc_mtx, i_this->current.angle.y);
i_this->field_0x596 = 10;
local_60.x = 0.0;
local_60.y = 0.0;
local_60.z = 20.0f;
MtxPosition(&local_60, &i_this->speed);
i_this->field_0x5a0.x = 0x900;
i_this->field_0x598[0] = 20;
Z2GetAudioMgr()->seStart(Z2SE_OBJ_CTL_ROCK_FALL, &i_this->current.pos, 0, 0, 1.0f, 1.0f,
-1.0f, -1.0f, 0);
}
break;
case 10:
i_this->current.pos += i_this->speed;
i_this->speed.y += -5.0f;
i_this->shape_angle.x += i_this->field_0x5a0.x;
i_this->shape_angle.y += i_this->field_0x5a0.y;
f32 speedY = i_this->speed.y;
i_this->mAcch.CrrPos(dComIfG_Bgsp());
if (i_this->field_0x598[0] == 0 && i_this->mAcch.ChkGroundHit()) {
if (speedY <= -30.0f) {
i_this->field_0x5a0.y = cM_rndFX(5000.0f);
i_this->field_0x5a0.x = cM_rndFX(5000.0f);
cMtx_YrotS(*calc_mtx, i_this->current.angle.y + (s16)cM_rndFX(7000.0f));
local_60.x = 0.0f;
local_60.y = 0.0f;
local_60.z = 15.0f + cM_rndF(10.0f);
MtxPosition(&local_60, &i_this->speed);
i_this->speed.y = -0.3f * speedY;
fopAcM_effSmokeSet1(&i_this->field_0x970, &i_this->field_0x974,
&i_this->current.pos, 0, 2.0f, &i_this->tevStr, 1);
} else {
i_this->field_0x5a0.set(0, 0, 0);
cLib_addCalcAngleS2(&i_this->shape_angle.y, 0, 1, 0x1000);
cLib_addCalcAngleS2(&i_this->shape_angle.x, 0, 1, 0x1000);
i_this->speed.set(0.0f, -5.0f, 0.0f);
// !@bug field_0x594 is never initialized
i_this->field_0x594++;
if (i_this->field_0x594 > 150) {
fopAcM_delete(i_this);
}
}
cLib_addCalc0(&i_this->field_0x5a8, 1.0f, 5.0f);
} else {
cLib_addCalc2(&i_this->field_0x5a8, -25.0f, 1.0f, 1.0f);
}
break;
}
//
// External References:
//
mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z);
mDoMtx_stack_c::YrotM(i_this->shape_angle.y);
mDoMtx_stack_c::XrotM(i_this->shape_angle.x);
mDoMtx_stack_c::transM(0.0f, i_this->field_0x5a8, 0.0f);
mDoMtx_stack_c::XrotM(local_78);
i_this->mModel->setBaseTRMtx(mDoMtx_stack_c::get());
mDoMtx_stack_c::XrotM(-local_78);
if (i_this->mBgW != NULL) {
MTXCopy(mDoMtx_stack_c::get(), i_this->mBgMtx);
i_this->mBgW->Move();
}
}
extern "C" void mDoMtx_XrotM__FPA4_fs();
extern "C" void mDoMtx_YrotS__FPA4_fs();
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void transM__14mDoMtx_stack_cFfff();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c();
extern "C" void fopAcM_effSmokeSet1__FPUlPUlPC4cXyzPC5csXyzfPC12dKy_tevstr_ci();
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 getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void Release__4cBgSFP9dBgW_Base();
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
extern "C" void dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
extern "C" void __ct__12dBgS_AcchCirFv();
extern "C" void SetWall__12dBgS_AcchCirFff();
extern "C" void __dt__9dBgS_AcchFv();
extern "C" void __ct__9dBgS_AcchFv();
extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz();
extern "C" void CrrPos__9dBgS_AcchFR4dBgS();
extern "C" void SetObj__16dBgS_PolyPassChkFv();
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
extern "C" void __ct__4dBgWFv();
extern "C" void Move__4dBgWFv();
extern "C" void __ct__10dCcD_GSttsFv();
extern "C" void __ct__12dCcD_GObjInfFv();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void cM_rndF__Ff();
extern "C" void cM_rndFX__Ff();
extern "C" void cLib_addCalc2__FPffff();
extern "C" void cLib_addCalc0__FPfff();
extern "C" void cLib_addCalcAngleS2__FPssss();
extern "C" void MtxPosition__FP4cXyzP4cXyz();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void deleteObject__14Z2SoundObjBaseFv();
extern "C" void __ct__16Z2SoundObjSimpleFv();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__8dCcD_Sph[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__12cCcD_SphAttr[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 void* calc_mtx[1 + 1 /* padding */];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" void __register_global_object();
/* 80BC51B8-80BC5240 000778 0088+00 2/1 0/0 0/0 .text daObj_Cb_Execute__FP12obj_cb_class
*/
static int daObj_Cb_Execute(obj_cb_class* i_this) {
for (int i = 0; i < 2; i++) {
if (i_this->field_0x598[i] != 0) {
i_this->field_0x598[i]--;
}
}
action(i_this);
s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(i_this));
i_this->mSoundObj.framework(0, reverb);
return 1;
}
//
// Declarations:
//
/* 80BC5240-80BC5248 000800 0008+00 1/0 0/0 0/0 .text daObj_Cb_IsDelete__FP12obj_cb_class
*/
static int daObj_Cb_IsDelete(obj_cb_class* param_0) {
return 1;
}
/* 80BC58F8-80BC58FC 000008 0004+00 2/2 0/0 0/0 .bss None */
static u8 data_80BC58F8;
/* 80BC5248-80BC52CC 000808 0084+00 1/0 0/0 0/0 .text daObj_Cb_Delete__FP12obj_cb_class
*/
static int daObj_Cb_Delete(obj_cb_class* i_this) {
fopAcM_GetID(i_this);
dComIfG_resDelete(&i_this->mPhase, "Obj_cb");
if (i_this->field_0x978 != 0) {
data_80BC58F8 = 0;
}
if (i_this->mBgW != NULL) {
dComIfG_Bgsp().Release(i_this->mBgW);
}
if (i_this->heap != NULL) {
i_this->mSoundObj.deleteObject();
}
return 1;
}
/* 80BC52CC-80BC5408 00088C 013C+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
static int useHeapInit(fopAc_ac_c* actor) {
obj_cb_class* i_this = (obj_cb_class*)actor;
J3DModelData* modelData = (J3DModelData*) dComIfG_getObjectRes("Obj_cb", 4);
JUT_ASSERT(502, modelData != 0);
i_this->mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (i_this->mModel == NULL) {
return 0;
}
if (i_this->home.angle.x == 0) {
i_this->mBgW = new dBgW();
if (i_this->mBgW == NULL) {
return 0;
}
cBgD_t* bGd = (cBgD_t*)dComIfG_getObjectRes("Obj_cb", 7);
if (i_this->mBgW->Set(bGd, 1, &i_this->mBgMtx) == 1) {
return 0;
}
i_this->mBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
i_this->mBgW->SetRideCallback(ride_call_back);
}
i_this->mSoundObj.init(&i_this->current.pos, 1);
return 1;
}
/* 80BC5908-80BC5910 000018 0008+00 2/2 0/0 0/0 .bss l_HIO */
static daObj_Cb_HIO_c l_HIO;
/* 80BC5408-80BC563C 0009C8 0234+00 1/0 0/0 0/0 .text daObj_Cb_Create__FP10fopAc_ac_c */
static int daObj_Cb_Create(fopAc_ac_c* actor) {
fopAcM_SetupActor(actor, obj_cb_class);
obj_cb_class* i_this = (obj_cb_class*)actor;
int rv = dComIfG_resLoad(&i_this->mPhase, "Obj_cb");
if (rv == cPhs_COMPLEATE_e) {
OS_REPORT("OBJ_CB PARAM %x\n", fopAcM_GetParam(i_this));
if (i_this->home.angle.x != 0) {
i_this->field_0x596 = 5;
}
OS_REPORT("OBJ_CB//////////////OBJ_CB SET 1 !!\n");
if (fopAcM_entrySolidHeap(i_this, useHeapInit, 0x800) == 0) {
OS_REPORT("//////////////OBJ_CB SET NON !!\n");
return cPhs_ERROR_e;
}
OS_REPORT("//////////////OBJ_CB SET 2 !!\n");
if (i_this->home.angle.x == 0 && i_this->mBgW != NULL) {
if (dComIfG_Bgsp().Regist(i_this->mBgW, i_this) != 0) {
return cPhs_ERROR_e;
}
}
if (data_80BC58F8 == 0) {
i_this->field_0x978 = 1;
data_80BC58F8 = 1;
l_HIO.field_0x4 = -1;
}
fopAcM_SetMtx(i_this, i_this->mModel->getBaseTRMtx());
i_this->mAcch.Set(fopAcM_GetPosition_p(i_this), fopAcM_GetOldPosition_p(i_this), i_this, 1,
&i_this->mAcchCir, fopAcM_GetSpeed_p(i_this), NULL, NULL);
i_this->mAcchCir.SetWall(50.0f, 50.0f);
daObj_Cb_Execute(i_this);
}
return rv;
}
/* ############################################################################################## */
/* 80BC5854-80BC5874 -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Cb_Method */
static actor_method_class l_daObj_Cb_Method = {
(process_method_func)daObj_Cb_Create__FP10fopAc_ac_c,
(process_method_func)daObj_Cb_Delete__FP12obj_cb_class,
(process_method_func)daObj_Cb_Execute__FP12obj_cb_class,
(process_method_func)daObj_Cb_IsDelete__FP12obj_cb_class,
(process_method_func)daObj_Cb_Draw__FP12obj_cb_class,
(process_method_func)daObj_Cb_Create,
(process_method_func)daObj_Cb_Delete,
(process_method_func)daObj_Cb_Execute,
(process_method_func)daObj_Cb_IsDelete,
(process_method_func)daObj_Cb_Draw,
};
/* 80BC5874-80BC58A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_CB */
@@ -123,312 +266,4 @@ extern actor_process_profile_definition g_profile_OBJ_CB = {
fopAc_CULLBOX_0_e, // cullType
};
/* 80BC58A4-80BC58B0 000050 000C+00 2/2 0/0 0/0 .data __vt__8cM3dGSph */
SECTION_DATA extern void* __vt__8cM3dGSph[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGSphFv,
};
/* 80BC58B0-80BC58BC 00005C 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,
};
/* 80BC58BC-80BC58E0 000068 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */
SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12dBgS_ObjAcchFv,
(void*)NULL,
(void*)NULL,
(void*)func_80BC57C8,
(void*)NULL,
(void*)NULL,
(void*)func_80BC57C0,
};
/* 80BC58E0-80BC58EC 00008C 000C+00 2/2 0/0 0/0 .data __vt__14daObj_Cb_HIO_c */
SECTION_DATA extern void* __vt__14daObj_Cb_HIO_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__14daObj_Cb_HIO_cFv,
};
/* 80BC4B2C-80BC4B44 0000EC 0018+00 1/1 0/0 0/0 .text __ct__14daObj_Cb_HIO_cFv */
daObj_Cb_HIO_c::daObj_Cb_HIO_c() {
// NONMATCHING
}
/* 80BC4B44-80BC4BA8 000104 0064+00 1/0 0/0 0/0 .text daObj_Cb_Draw__FP12obj_cb_class */
static void daObj_Cb_Draw(obj_cb_class* param_0) {
// NONMATCHING
}
/* 80BC4BA8-80BC4BB4 000168 000C+00 1/1 0/0 0/0 .text
* ride_call_back__FP4dBgWP10fopAc_ac_cP10fopAc_ac_c */
static void ride_call_back(dBgW* param_0, fopAc_ac_c* param_1, fopAc_ac_c* param_2) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC57E4-80BC57EC 000000 0004+04 1/1 0/0 0/0 .rodata @3882 */
SECTION_RODATA static u8 const lit_3882[4 + 4 /* padding */] = {
0x00,
0x00,
0x00,
0x00,
/* padding */
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80BC57E4, &lit_3882);
/* 80BC57EC-80BC57F4 000008 0008+00 0/1 0/0 0/0 .rodata @3883 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3883[8] = {
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BC57EC, &lit_3883);
#pragma pop
/* 80BC57F4-80BC57FC 000010 0008+00 0/1 0/0 0/0 .rodata @3884 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3884[8] = {
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BC57F4, &lit_3884);
#pragma pop
/* 80BC57FC-80BC5804 000018 0008+00 0/1 0/0 0/0 .rodata @3885 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3885[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BC57FC, &lit_3885);
#pragma pop
/* 80BC5804-80BC5808 000020 0004+00 0/1 0/0 0/0 .rodata @3886 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3886 = 30.0f;
COMPILER_STRIP_GATE(0x80BC5804, &lit_3886);
#pragma pop
/* 80BC5808-80BC580C 000024 0004+00 0/1 0/0 0/0 .rodata @3887 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3887 = 5.0f;
COMPILER_STRIP_GATE(0x80BC5808, &lit_3887);
#pragma pop
/* 80BC580C-80BC5810 000028 0004+00 0/1 0/0 0/0 .rodata @3888 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3888 = 1.0f;
COMPILER_STRIP_GATE(0x80BC580C, &lit_3888);
#pragma pop
/* 80BC5810-80BC5814 00002C 0004+00 0/1 0/0 0/0 .rodata @3889 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3889 = 0.5f;
COMPILER_STRIP_GATE(0x80BC5810, &lit_3889);
#pragma pop
/* 80BC5814-80BC5818 000030 0004+00 0/1 0/0 0/0 .rodata @3890 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3890 = 60.0f;
COMPILER_STRIP_GATE(0x80BC5814, &lit_3890);
#pragma pop
/* 80BC5818-80BC581C 000034 0004+00 0/1 0/0 0/0 .rodata @3891 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3891 = -1.0f;
COMPILER_STRIP_GATE(0x80BC5818, &lit_3891);
#pragma pop
/* 80BC581C-80BC5820 000038 0004+00 0/1 0/0 0/0 .rodata @3892 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3892 = 90.0f;
COMPILER_STRIP_GATE(0x80BC581C, &lit_3892);
#pragma pop
/* 80BC5820-80BC5824 00003C 0004+00 0/1 0/0 0/0 .rodata @3893 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3893 = 20.0f;
COMPILER_STRIP_GATE(0x80BC5820, &lit_3893);
#pragma pop
/* 80BC5824-80BC5828 000040 0004+00 0/1 0/0 0/0 .rodata @3894 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3894 = -5.0f;
COMPILER_STRIP_GATE(0x80BC5824, &lit_3894);
#pragma pop
/* 80BC5828-80BC582C 000044 0004+00 0/1 0/0 0/0 .rodata @3895 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3895 = -30.0f;
COMPILER_STRIP_GATE(0x80BC5828, &lit_3895);
#pragma pop
/* 80BC582C-80BC5830 000048 0004+00 0/1 0/0 0/0 .rodata @3896 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3896 = 5000.0f;
COMPILER_STRIP_GATE(0x80BC582C, &lit_3896);
#pragma pop
/* 80BC5830-80BC5834 00004C 0004+00 0/1 0/0 0/0 .rodata @3897 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3897 = 7000.0f;
COMPILER_STRIP_GATE(0x80BC5830, &lit_3897);
#pragma pop
/* 80BC5834-80BC5838 000050 0004+00 0/1 0/0 0/0 .rodata @3898 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3898 = 15.0f;
COMPILER_STRIP_GATE(0x80BC5834, &lit_3898);
#pragma pop
/* 80BC5838-80BC583C 000054 0004+00 0/1 0/0 0/0 .rodata @3899 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3899 = 10.0f;
COMPILER_STRIP_GATE(0x80BC5838, &lit_3899);
#pragma pop
/* 80BC583C-80BC5840 000058 0004+00 0/1 0/0 0/0 .rodata @3900 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3900 = -3.0f / 10.0f;
COMPILER_STRIP_GATE(0x80BC583C, &lit_3900);
#pragma pop
/* 80BC5840-80BC5844 00005C 0004+00 0/1 0/0 0/0 .rodata @3901 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3901 = 2.0f;
COMPILER_STRIP_GATE(0x80BC5840, &lit_3901);
#pragma pop
/* 80BC5844-80BC5848 000060 0004+00 0/1 0/0 0/0 .rodata @3902 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3902 = -25.0f;
COMPILER_STRIP_GATE(0x80BC5844, &lit_3902);
#pragma pop
/* 80BC4BB4-80BC51B8 000174 0604+00 1/1 0/0 0/0 .text action__FP12obj_cb_class */
static void action(obj_cb_class* param_0) {
// NONMATCHING
}
/* 80BC51B8-80BC5240 000778 0088+00 2/1 0/0 0/0 .text daObj_Cb_Execute__FP12obj_cb_class
*/
static void daObj_Cb_Execute(obj_cb_class* param_0) {
// NONMATCHING
}
/* 80BC5240-80BC5248 000800 0008+00 1/0 0/0 0/0 .text daObj_Cb_IsDelete__FP12obj_cb_class
*/
static bool daObj_Cb_IsDelete(obj_cb_class* param_0) {
return true;
}
/* ############################################################################################## */
/* 80BC584C-80BC584C 000068 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BC584C = "Obj_cb";
#pragma pop
/* 80BC58F8-80BC58FC 000008 0004+00 2/2 0/0 0/0 .bss None */
static u8 data_80BC58F8[4];
/* 80BC5248-80BC52CC 000808 0084+00 1/0 0/0 0/0 .text daObj_Cb_Delete__FP12obj_cb_class
*/
static void daObj_Cb_Delete(obj_cb_class* param_0) {
// NONMATCHING
}
/* 80BC52CC-80BC5408 00088C 013C+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
static void useHeapInit(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BC5848-80BC584C 000064 0004+00 1/1 0/0 0/0 .rodata @4038 */
SECTION_RODATA static f32 const lit_4038 = 50.0f;
COMPILER_STRIP_GATE(0x80BC5848, &lit_4038);
/* 80BC58FC-80BC5908 00000C 000C+00 1/1 0/0 0/0 .bss @3763 */
static u8 lit_3763[12];
/* 80BC5908-80BC5910 000018 0008+00 2/2 0/0 0/0 .bss l_HIO */
static u8 l_HIO[8];
/* 80BC5408-80BC563C 0009C8 0234+00 1/0 0/0 0/0 .text daObj_Cb_Create__FP10fopAc_ac_c */
static void daObj_Cb_Create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80BC563C-80BC5684 000BFC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */
// cM3dGSph::~cM3dGSph() {
extern "C" void __dt__8cM3dGSphFv() {
// NONMATCHING
}
/* 80BC5684-80BC56CC 000C44 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
// cM3dGAab::~cM3dGAab() {
extern "C" void __dt__8cM3dGAabFv() {
// NONMATCHING
}
/* 80BC56CC-80BC573C 000C8C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
// dBgS_ObjAcch::~dBgS_ObjAcch() {
extern "C" void __dt__12dBgS_ObjAcchFv() {
// NONMATCHING
}
/* 80BC573C-80BC5784 000CFC 0048+00 2/1 0/0 0/0 .text __dt__14daObj_Cb_HIO_cFv */
daObj_Cb_HIO_c::~daObj_Cb_HIO_c() {
// NONMATCHING
}
/* 80BC5784-80BC57C0 000D44 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_cb_cpp */
void __sinit_d_a_obj_cb_cpp() {
// NONMATCHING
}
#pragma push
#pragma force_active on
REGISTER_CTORS(0x80BC5784, __sinit_d_a_obj_cb_cpp);
#pragma pop
/* 80BC57C0-80BC57C8 000D80 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */
static void func_80BC57C0() {
// NONMATCHING
}
/* 80BC57C8-80BC57D0 000D88 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */
static void func_80BC57C8() {
// NONMATCHING
}
/* 80BC584C-80BC584C 000068 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+307 -399
View File
@@ -4,200 +4,336 @@
*/
#include "d/actor/d_a_obj_fchain.h"
#include "dol2asm.h"
#include "d/actor/d_a_player.h"
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
#include "SSystem/SComponent/c_math.h"
#include "d/d_com_inf_game.h"
//
// Forward References:
//
extern "C" void createHeap__13daObjFchain_cFv();
extern "C" static void daObjFchain_createHeap__FP10fopAc_ac_c();
extern "C" void create__13daObjFchain_cFv();
extern "C" void __dt__5csXyzFv();
extern "C" void __ct__5csXyzFv();
extern "C" void __dt__4cXyzFv();
extern "C" void __ct__4cXyzFv();
extern "C" static void daObjFchain_Create__FP10fopAc_ac_c();
extern "C" void __dt__13daObjFchain_cFv();
extern "C" static void daObjFchain_Delete__FP13daObjFchain_c();
extern "C" void checkPlayerFoot__13daObjFchain_cFPC4cXyzPC4cXyzP4cXyz();
extern "C" void setGroundVec__13daObjFchain_cFP4cXyzf();
extern "C" void execute__13daObjFchain_cFv();
extern "C" static void daObjFchain_Execute__FP13daObjFchain_c();
extern "C" void draw__19daObjFchain_shape_cFv();
extern "C" void draw__13daObjFchain_cFv();
extern "C" static void daObjFchain_Draw__FP13daObjFchain_c();
extern "C" void __dt__19daObjFchain_shape_cFv();
extern "C" extern char const* const d_a_obj_fchain__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
extern "C" void transM__14mDoMtx_stack_cFRC4cXyz();
extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void isEventBit__11dSv_event_cCFUs();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void getRunEventName__16dEvent_manager_cFv();
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_setLight_again__Fv();
extern "C" void dKy_GxFog_tevstr_set__FP12dKy_tevstr_c();
extern "C" void __pl__4cXyzCFRC3Vec();
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void __ml__4cXyzCFf();
extern "C" void normalizeZP__4cXyzFv();
extern "C" void atan2sX_Z__4cXyzCFv();
extern "C" void atan2sY_XZ__4cXyzCFv();
extern "C" void cM_atan2s__Fff();
extern "C" void cM_rnd__Fv();
extern "C" void cM_rndF__Ff();
extern "C" void cM_rndFX__Ff();
extern "C" void __dl__FPv();
extern "C" bool entry__9J3DPacketFP13J3DDrawBuffer();
extern "C" void loadPreDrawSetting__8J3DShapeCFv();
extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void _savegpr_23();
extern "C" void _savegpr_24();
extern "C" void _restgpr_23();
extern "C" void _restgpr_24();
extern "C" extern void* __vt__9J3DPacket[5];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" f32 Zero__4cXyz[3];
extern "C" extern u32 g_whiteColor;
extern "C" extern u8 mStayNo__20dStage_roomControl_c[4];
extern "C" u8 sOldVcdVatCmd__8J3DShape[4];
//
// Declarations:
//
/* ############################################################################################## */
/* 80BE7438-80BE7440 000000 0007+01 6/6 0/0 0/0 .rodata l_arcName */
SECTION_RODATA static u8 const l_arcName[7 + 1 /* padding */] = {
0x46,
0x63,
0x68,
0x61,
0x69,
0x6E,
0x00,
/* padding */
0x00,
};
COMPILER_STRIP_GATE(0x80BE7438, &l_arcName);
static char const l_arcName[] = "Fchain";
/* 80BE5FF8-80BE6054 000078 005C+00 1/1 0/0 0/0 .text createHeap__13daObjFchain_cFv */
void daObjFchain_c::createHeap() {
// NONMATCHING
int daObjFchain_c::createHeap() {
mModelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 3);
return mModelData != NULL ? 1 : 0;
}
/* 80BE6054-80BE6074 0000D4 0020+00 1/1 0/0 0/0 .text daObjFchain_createHeap__FP10fopAc_ac_c */
static void daObjFchain_createHeap(fopAc_ac_c* param_0) {
// NONMATCHING
static int daObjFchain_createHeap(fopAc_ac_c* i_this) {
return static_cast<daObjFchain_c*>(i_this)->createHeap();
}
/* ############################################################################################## */
/* 80BE7440-80BE744C 000008 000C+00 0/1 0/0 0/0 .rodata localVec$3662 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const localVec[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x10, 0x00, 0x00,
static Vec const localVec = {
0.0f, 0.0f, -9.0f,
};
COMPILER_STRIP_GATE(0x80BE7440, &localVec);
#pragma pop
/* 80BE744C-80BE7450 000014 0004+00 0/2 0/0 0/0 .rodata @3710 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3710 = 3.0f;
COMPILER_STRIP_GATE(0x80BE744C, &lit_3710);
#pragma pop
/* 80BE6074-80BE6328 0000F4 02B4+00 1/1 0/0 0/0 .text create__13daObjFchain_cFv */
int daObjFchain_c::create() {
fopAcM_SetupActor(this, daObjFchain_c);
int rv = dComIfG_resLoad(&mPhase, l_arcName);
switch (rv) {
case cPhs_COMPLEATE_e:
if (fopAcM_entrySolidHeap(this, daObjFchain_createHeap,
0x10) == 0) {
return cPhs_ERROR_e;
}
tevStr.mRoomNo = dComIfGp_roomControl_getStayNo();
mShape.setUserArea((u32)this);
current.pos.y += 3.0f;
s16 local_58 = shape_angle.y;
cXyz* local_44 = &current.pos;
cXyz* local_48 = field_0x694;
csXyz* pdVar5 = field_0x8a4;
for (int i = 0; i < 22; i++) {
if ((i & 1) != 0) {
pdVar5->z = cM_rndFX(2048.0f) + 4096.0f;
} else {
pdVar5->z = cM_rndFX(2048.0f) + -4096.0f;
}
f32 fVar1;
if (cM_rnd() < 0.5f) {
fVar1 = 1.0f;
} else {
fVar1 = -1.0f;
}
pdVar5->y = local_58 + (fVar1 * (cM_rndF(3072.0f) + 1024.0f));
mDoMtx_stack_c::transS(*local_44);
mDoMtx_stack_c::YrotM(pdVar5->y);
mDoMtx_stack_c::multVec(&localVec, local_48);
local_58 = pdVar5->y;
local_44 = local_48;
pdVar5++;
local_48++;
}
rv = cPhs_COMPLEATE_e;
break;
}
return rv;
}
/* 80BE7450-80BE7454 000018 0004+00 0/2 0/0 0/0 .rodata @3711 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3711 = 4096.0f;
COMPILER_STRIP_GATE(0x80BE7450, &lit_3711);
#pragma pop
/* 80BE63A8-80BE63C8 000428 0020+00 1/0 0/0 0/0 .text daObjFchain_Create__FP10fopAc_ac_c
*/
static int daObjFchain_Create(fopAc_ac_c* i_this) {
return static_cast<daObjFchain_c*>(i_this)->create();
}
/* 80BE7454-80BE7458 00001C 0004+00 0/2 0/0 0/0 .rodata @3712 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3712 = 2048.0f;
COMPILER_STRIP_GATE(0x80BE7454, &lit_3712);
#pragma pop
/* 80BE63C8-80BE64B8 000448 00F0+00 1/1 0/0 0/0 .text __dt__13daObjFchain_cFv */
daObjFchain_c::~daObjFchain_c() {
dComIfG_resDelete(&mPhase,l_arcName);
}
/* 80BE7458-80BE745C 000020 0004+00 0/2 0/0 0/0 .rodata @3713 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3713 = -4096.0f;
COMPILER_STRIP_GATE(0x80BE7458, &lit_3713);
#pragma pop
/* 80BE64B8-80BE64E0 000538 0028+00 1/0 0/0 0/0 .text daObjFchain_Delete__FP13daObjFchain_c */
static int daObjFchain_Delete(daObjFchain_c* i_this) {
i_this->~daObjFchain_c();
return 1;
}
/* 80BE745C-80BE7460 000024 0004+00 0/3 0/0 0/0 .rodata @3714 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3714 = 1.0f;
COMPILER_STRIP_GATE(0x80BE745C, &lit_3714);
#pragma pop
/* 80BE64E0-80BE66B4 000560 01D4+00 1/1 0/0 0/0 .text
* checkPlayerFoot__13daObjFchain_cFPC4cXyzPC4cXyzP4cXyz */
void daObjFchain_c::checkPlayerFoot(cXyz const* param_1, cXyz const* param_2, cXyz* param_3) {
cXyz local_24 = *param_1 - *param_2;
f32 dVar4 = local_24.absXZ();
if (fabsf(local_24.y) < 5.0f && dVar4 < 20.0f) {
local_24.y = 0.0f;
local_24.normalizeZP();
f32 fVar1 = 20.0f - dVar4;
param_3->x += local_24.x * fVar1;
param_3->z += local_24.z * fVar1;
}
}
/* 80BE7460-80BE7464 000028 0004+00 0/2 0/0 0/0 .rodata @3715 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3715 = -1.0f;
COMPILER_STRIP_GATE(0x80BE7460, &lit_3715);
#pragma pop
/* 80BE66B4-80BE6868 000734 01B4+00 1/1 0/0 0/0 .text setGroundVec__13daObjFchain_cFP4cXyzf */
void daObjFchain_c::setGroundVec(cXyz* param_1, f32 param_2) {
f32 dVar6 = param_1->absXZ();
param_1->y += param_2;
if (dVar6 < 0.1f) {
param_1->z += param_2;
} else {
f32 fVar1 = (1.0f / dVar6);
param_1->x += fVar1 * (param_2 * param_1->x);
param_1->z += fVar1 * (param_2 * param_1->z);
}
param_1->normalizeZP();
}
/* 80BE7464-80BE7468 00002C 0004+00 0/2 0/0 0/0 .rodata @3716 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3716 = 0.5f;
COMPILER_STRIP_GATE(0x80BE7464, &lit_3716);
#pragma pop
/* 80BE7468-80BE746C 000030 0004+00 0/1 0/0 0/0 .rodata @3717 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3717 = 1024.0f;
COMPILER_STRIP_GATE(0x80BE7468, &lit_3717);
#pragma pop
/* 80BE746C-80BE7470 000034 0004+00 0/1 0/0 0/0 .rodata @3718 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3718 = 3072.0f;
COMPILER_STRIP_GATE(0x80BE746C, &lit_3718);
#pragma pop
/* 80BE7470-80BE7478 000038 0008+00 0/2 0/0 0/0 .rodata @3720 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3720[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
/* 80BE74A4-80BE74B0 00006C 000C+00 0/1 0/0 0/0 .rodata wolfChainBaseOffset$3862 */
static Vec const wolfChainBaseOffset = {
22.0f, 0.0f, -12.0f,
};
COMPILER_STRIP_GATE(0x80BE7470, &lit_3720);
#pragma pop
/* 80BE6868-80BE7174 0008E8 090C+00 1/1 0/0 0/0 .text execute__13daObjFchain_cFv */
// NONMATCHING - regalloc, stack
int daObjFchain_c::execute() {
if (dComIfGp_event_runCheck()) {
if (dComIfGp_getEventManager().getRunEventName() != NULL) {
if (strcmp("demo06_01", dComIfGp_getEventManager().getRunEventName()) == 0 &&
field_0x588 >= 0)
{
field_0x588++;
if (field_0x588 > 310) {
field_0x588 = -1;
}
}
}
} else {
field_0x588 = 0;
}
cXyz* local_148 = &current.pos;
cXyz local_54;
cXyz cStack_60;
if (field_0x586 != 0) {
field_0x586--;
}
cXyz* pcVar12 = field_0x694;
cXyz* local_150 = field_0x79c;
u32 isWolf = daPy_py_c::i_checkNowWolf();
daPy_py_c* player = daPy_getLinkPlayerActorClass();
for (int i = 0; i < 22; i++) {
local_54 = (*pcVar12 - *local_148) + *local_150;
local_54.y += -1.5f;
if (dComIfGs_isEventBit(0x510)) {
if (isWolf) {
checkPlayerFoot(pcVar12, player->getLeftHandPosP(), &local_54);
checkPlayerFoot(pcVar12, player->getRightHandPosP(), &local_54);
}
checkPlayerFoot(pcVar12, player->getLeftFootPosP(), &local_54);
checkPlayerFoot(pcVar12, player->getRightFootPosP(), &local_54);
}
cStack_60 = local_54;
local_54.normalizeZP();
*pcVar12 = *local_148 + (local_54 * 9.0f);
if (pcVar12->y < current.pos.y) {
setGroundVec(&cStack_60, current.pos.y - pcVar12->y);
*pcVar12 = *local_148 + (cStack_60 * 9.0f);
}
local_150++;
local_148 = pcVar12;
pcVar12++;
}
if (isWolf && !dComIfGs_isEventBit(0x510)) {
mDoMtx_multVec(
player->getModelJointMtx(17), &wolfChainBaseOffset,
&field_0x694[21]);
cXyz diff = (field_0x694[21] - current.pos);
f32 dVar13 = diff.abs();
if (dVar13 > 198.0f) {
s16 sVar10 = cM_atan2s(-local_54.x, -local_54.z);
player->setOutPower(dVar13 - 198.0f, sVar10, 0);
player->onWolfFchainPull();
cXyz* pcVar8 = field_0x694;
local_148 = &current.pos;
local_54 *= 9.0f / dVar13;
for (int i = 0; pcVar12 = pcVar8, i < 22; i++) {
*pcVar8 = *local_148 + local_54;
local_148 = pcVar8;
pcVar8++;
}
field_0x584 = 0;
} else {
cXyz* pcVar8 = &field_0x694[20];
local_150 = &field_0x79c[20];
local_148 = pcVar8 + 1;
for (int i = 20; i >= 0; i--) {
local_54 = (*pcVar8 - *local_148) + *local_150;
local_54.y += -1.5f;
cStack_60 = local_54;
local_54.normalizeZP();
*pcVar8 = *local_148 + (local_54 * 9.0f);
if (pcVar8->y < current.pos.y) {
setGroundVec(&cStack_60, current.pos.y - pcVar8->y);
*pcVar8 = *local_148 + (cStack_60 * 9.0f);
}
local_150--;
local_148 = pcVar8;
pcVar8--;
}
}
}
local_148 = &current.pos;
local_150 = field_0x694;
cXyz* pcVar8 = field_0x79c;
csXyz* local_15c = field_0x8a4;
cXyz* local_160 = field_0x58c;
s16 local_178 = 0;
for (int i = 0; i < 22; i++) {
*local_150 = (*pcVar8 - *local_160) * 0.3f;
*local_160 = *pcVar8;
local_54 = *local_148 - *pcVar8;
local_15c->x = local_54.atan2sY_XZ();
if (!(local_54.absXZ() < 3.5f)) {
local_15c->y = local_54.atan2sX_Z();
}
if (local_150->abs2() > 3.0f && field_0x586 == 0) {
f32 fVar1;
if (cM_rnd() < 0.5f) {
fVar1 = 1.0f;
} else {
fVar1 = -1.0f;
}
local_15c->z = local_178 + 0x4000 +
(fVar1 * (cM_rndF(4096.0f) + 1536.0f));
if (pcVar8->y <= current.pos.y + 2.0f) {
if ((local_15c->z >= 0 && local_15c->z < 0x4000) ||
(local_15c->z > -0x7fff && local_15c->z < -0x4000))
{
local_15c->z = cM_rndFX(2048.0f) + 4096.0f;
} else {
local_15c->z = cM_rndFX(2048.0f) + -4096.0f;
}
}
}
local_178 = local_15c->z;
local_150++;
local_15c++;
local_160++;
local_148 = pcVar8;
pcVar8++;
}
if (field_0x584 == 0) {
field_0x584 = 1;
local_150 = field_0x79c;
for (int i = 0; i < 22; i++) {
*local_150 = cXyz::Zero;
local_150++;
}
field_0x586 = 5;
}
return 1;
}
/* 80BE7174-80BE7194 0011F4 0020+00 1/0 0/0 0/0 .text daObjFchain_Execute__FP13daObjFchain_c */
static int daObjFchain_Execute(daObjFchain_c* i_this) {
return static_cast<daObjFchain_c*>(i_this)->execute();
}
/* 80BE7194-80BE7324 001214 0190+00 1/0 0/0 0/0 .text draw__19daObjFchain_shape_cFv */
void daObjFchain_shape_c::draw() {
daObjFchain_c* i_this = (daObjFchain_c*)getUserArea();
cXyz* pPos = i_this->getPos();
csXyz* pAngle = i_this->getAngle();
J3DModelData* modelData = i_this->getModelData();
J3DMaterial* material = modelData->getMaterialNodePointer(0);
dKy_tevstr_c* tevStr = &i_this->tevStr;
j3dSys.setVtxPos(modelData->getVtxPosArray());
j3dSys.setVtxNrm(modelData->getVtxNrmArray());
j3dSys.setVtxCol(modelData->getVtxColorArray(0));
J3DShape::resetVcdVatCache();
material->loadSharedDL();
material->getShape()->loadPreDrawSetting();
GXColor ambColor;
ambColor.r = tevStr->mColorC0.r;
ambColor.g = tevStr->mColorC0.g;
ambColor.b = tevStr->mColorC0.b;
ambColor.a = tevStr->mColorC0.a;
GXSetChanAmbColor(GX_COLOR0A0, ambColor);
GXSetChanMatColor(GX_COLOR0A0, g_whiteColor);
dKy_setLight_again();
dKy_GxFog_tevstr_set(tevStr);
GXLoadLightObjImm(&tevStr->mLightObj.mLightObj, GX_LIGHT0);
int local_30;
if (dComIfGs_isEventBit(0x510)) {
local_30 = 17;
} else {
local_30 = 22;
}
for (int i = 0; i < local_30; i++, pPos++, pAngle++) {
mDoMtx_stack_c::copy(j3dSys.getViewMtx());
mDoMtx_stack_c::transM(*pPos);
mDoMtx_stack_c::ZXYrotM(*pAngle);
GXLoadPosMtxImm(mDoMtx_stack_c::get(), 0);
GXLoadNrmMtxImm(mDoMtx_stack_c::get(), 0);
material->getShape()->simpleDrawCache();
}
}
/* 80BE7324-80BE73B4 0013A4 0090+00 1/1 0/0 0/0 .text draw__13daObjFchain_cFv */
int daObjFchain_c::draw() {
if (field_0x584 != 0) {
g_env_light.settingTevStruct(0, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mModelData, &tevStr);
if (field_0x588 > 0) {
return 1;
}
dComIfGd_getOpaListDark()->entryImm(&mShape, 0);
}
return 1;
}
/* 80BE73B4-80BE73D4 001434 0020+00 1/0 0/0 0/0 .text daObjFchain_Draw__FP13daObjFchain_c
*/
static int daObjFchain_Draw(daObjFchain_c* i_this) {
return static_cast<daObjFchain_c*>(i_this)->draw();
}
/* 80BE74D8-80BE74F8 -00001 0020+00 1/0 0/0 0/0 .data l_daObjFchain_Method */
static actor_method_class l_daObjFchain_Method = {
(process_method_func)daObjFchain_Create__FP10fopAc_ac_c,
(process_method_func)daObjFchain_Delete__FP13daObjFchain_c,
(process_method_func)daObjFchain_Execute__FP13daObjFchain_c,
0,
(process_method_func)daObjFchain_Draw__FP13daObjFchain_c,
(process_method_func)daObjFchain_Create,
(process_method_func)daObjFchain_Delete,
(process_method_func)daObjFchain_Execute,
NULL,
(process_method_func)daObjFchain_Draw,
};
/* 80BE74F8-80BE7528 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Fchain */
@@ -218,232 +354,4 @@ extern actor_process_profile_definition g_profile_Obj_Fchain = {
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80BE7528-80BE753C 000050 0014+00 3/3 0/0 0/0 .data __vt__19daObjFchain_shape_c */
SECTION_DATA extern void* __vt__19daObjFchain_shape_c[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)entry__9J3DPacketFP13J3DDrawBuffer,
(void*)draw__19daObjFchain_shape_cFv,
(void*)__dt__19daObjFchain_shape_cFv,
};
/* 80BE6074-80BE6328 0000F4 02B4+00 1/1 0/0 0/0 .text create__13daObjFchain_cFv */
void daObjFchain_c::create() {
// NONMATCHING
}
/* 80BE6328-80BE6364 0003A8 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */
// csXyz::~csXyz() {
extern "C" void __dt__5csXyzFv() {
// NONMATCHING
}
/* 80BE6364-80BE6368 0003E4 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */
// csXyz::csXyz() {
extern "C" void __ct__5csXyzFv() {
/* empty function */
}
/* 80BE6368-80BE63A4 0003E8 003C+00 2/2 0/0 0/0 .text __dt__4cXyzFv */
// cXyz::~cXyz() {
extern "C" void __dt__4cXyzFv() {
// NONMATCHING
}
/* 80BE63A4-80BE63A8 000424 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
// cXyz::cXyz() {
extern "C" void __ct__4cXyzFv() {
/* empty function */
}
/* 80BE63A8-80BE63C8 000428 0020+00 1/0 0/0 0/0 .text daObjFchain_Create__FP10fopAc_ac_c
*/
static void daObjFchain_Create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80BE63C8-80BE64B8 000448 00F0+00 1/1 0/0 0/0 .text __dt__13daObjFchain_cFv */
daObjFchain_c::~daObjFchain_c() {
// NONMATCHING
}
/* 80BE64B8-80BE64E0 000538 0028+00 1/0 0/0 0/0 .text daObjFchain_Delete__FP13daObjFchain_c */
static void daObjFchain_Delete(daObjFchain_c* param_0) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BE7478-80BE7480 000040 0004+04 0/3 0/0 0/0 .rodata @3809 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3809[4 + 4 /* padding */] = {
0x00,
0x00,
0x00,
0x00,
/* padding */
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80BE7478, &lit_3809);
#pragma pop
/* 80BE7480-80BE7488 000048 0008+00 0/3 0/0 0/0 .rodata @3810 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3810[8] = {
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BE7480, &lit_3810);
#pragma pop
/* 80BE7488-80BE7490 000050 0008+00 0/3 0/0 0/0 .rodata @3811 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3811[8] = {
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BE7488, &lit_3811);
#pragma pop
/* 80BE7490-80BE7498 000058 0008+00 0/3 0/0 0/0 .rodata @3812 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3812[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BE7490, &lit_3812);
#pragma pop
/* 80BE7498-80BE749C 000060 0004+00 0/1 0/0 0/0 .rodata @3813 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3813 = 5.0f;
COMPILER_STRIP_GATE(0x80BE7498, &lit_3813);
#pragma pop
/* 80BE749C-80BE74A0 000064 0004+00 0/1 0/0 0/0 .rodata @3814 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3814 = 20.0f;
COMPILER_STRIP_GATE(0x80BE749C, &lit_3814);
#pragma pop
/* 80BE64E0-80BE66B4 000560 01D4+00 1/1 0/0 0/0 .text
* checkPlayerFoot__13daObjFchain_cFPC4cXyzPC4cXyzP4cXyz */
void daObjFchain_c::checkPlayerFoot(cXyz const* param_0, cXyz const* param_1, cXyz* param_2) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BE74A0-80BE74A4 000068 0004+00 0/1 0/0 0/0 .rodata @3857 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3857 = 1.0f / 10.0f;
COMPILER_STRIP_GATE(0x80BE74A0, &lit_3857);
#pragma pop
/* 80BE66B4-80BE6868 000734 01B4+00 1/1 0/0 0/0 .text setGroundVec__13daObjFchain_cFP4cXyzf */
void daObjFchain_c::setGroundVec(cXyz* param_0, f32 param_1) {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BE74A4-80BE74B0 00006C 000C+00 0/1 0/0 0/0 .rodata wolfChainBaseOffset$3862 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const wolfChainBaseOffset[12] = {
0x41, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x40, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BE74A4, &wolfChainBaseOffset);
#pragma pop
/* 80BE74B0-80BE74B4 000078 0004+00 0/1 0/0 0/0 .rodata @4159 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4159 = -1.5f;
COMPILER_STRIP_GATE(0x80BE74B0, &lit_4159);
#pragma pop
/* 80BE74B4-80BE74B8 00007C 0004+00 0/1 0/0 0/0 .rodata @4160 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4160 = 9.0f;
COMPILER_STRIP_GATE(0x80BE74B4, &lit_4160);
#pragma pop
/* 80BE74B8-80BE74BC 000080 0004+00 0/1 0/0 0/0 .rodata @4161 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4161 = 198.0f;
COMPILER_STRIP_GATE(0x80BE74B8, &lit_4161);
#pragma pop
/* 80BE74BC-80BE74C0 000084 0004+00 0/1 0/0 0/0 .rodata @4162 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4162 = 3.0f / 10.0f;
COMPILER_STRIP_GATE(0x80BE74BC, &lit_4162);
#pragma pop
/* 80BE74C0-80BE74C4 000088 0004+00 0/1 0/0 0/0 .rodata @4163 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4163 = 3.5f;
COMPILER_STRIP_GATE(0x80BE74C0, &lit_4163);
#pragma pop
/* 80BE74C4-80BE74C8 00008C 0004+00 0/1 0/0 0/0 .rodata @4164 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4164 = 1536.0f;
COMPILER_STRIP_GATE(0x80BE74C4, &lit_4164);
#pragma pop
/* 80BE74C8-80BE74CC 000090 0004+00 0/1 0/0 0/0 .rodata @4165 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4165 = 2.0f;
COMPILER_STRIP_GATE(0x80BE74C8, &lit_4165);
#pragma pop
/* 80BE74CC-80BE74CC 000094 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BE74CC = "demo06_01";
#pragma pop
/* 80BE6868-80BE7174 0008E8 090C+00 1/1 0/0 0/0 .text execute__13daObjFchain_cFv */
void daObjFchain_c::execute() {
// NONMATCHING
}
/* 80BE7174-80BE7194 0011F4 0020+00 1/0 0/0 0/0 .text daObjFchain_Execute__FP13daObjFchain_c */
static void daObjFchain_Execute(daObjFchain_c* param_0) {
// NONMATCHING
}
/* 80BE7194-80BE7324 001214 0190+00 1/0 0/0 0/0 .text draw__19daObjFchain_shape_cFv */
void daObjFchain_shape_c::draw() {
// NONMATCHING
}
/* 80BE7324-80BE73B4 0013A4 0090+00 1/1 0/0 0/0 .text draw__13daObjFchain_cFv */
void daObjFchain_c::draw() {
// NONMATCHING
}
/* 80BE73B4-80BE73D4 001434 0020+00 1/0 0/0 0/0 .text daObjFchain_Draw__FP13daObjFchain_c
*/
static void daObjFchain_Draw(daObjFchain_c* param_0) {
// NONMATCHING
}
/* 80BE73D4-80BE7430 001454 005C+00 1/0 0/0 0/0 .text __dt__19daObjFchain_shape_cFv */
daObjFchain_shape_c::~daObjFchain_shape_c() {
// NONMATCHING
}
/* 80BE74CC-80BE74CC 000094 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+206 -232
View File
@@ -4,170 +4,123 @@
*/
#include "d/actor/d_a_obj_gb.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" static void daObj_Gb_Draw__FP12obj_gb_class();
extern "C" static void daObj_Gb_Execute__FP12obj_gb_class();
extern "C" void __dt__4cXyzFv();
extern "C" static bool daObj_Gb_IsDelete__FP12obj_gb_class();
extern "C" static void daObj_Gb_Delete__FP12obj_gb_class();
extern "C" static void useHeapInit__FP10fopAc_ac_c();
extern "C" void __dt__12J3DFrameCtrlFv();
extern "C" static void daObj_Gb_Create__FP10fopAc_ac_c();
extern "C" void __ct__4cXyzFv();
extern "C" extern char const* const d_a_obj_gb__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_YrotS__FPA4_fs();
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void transM__14mDoMtx_stack_cFfff();
extern "C" void scaleM__14mDoMtx_stack_cFfff();
extern "C" void play__14mDoExt_baseAnmFv();
extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss();
extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef();
extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss();
extern "C" void entry__13mDoExt_brkAnmFP16J3DMaterialTablef();
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 dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void Release__4cBgSFP9dBgW_Base();
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
extern "C" void __ct__4dBgWFv();
extern "C" void Move__4dBgWFv();
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_bg_MAxx_proc__FPv();
extern "C" void cM_rndF__Ff();
extern "C" void cLib_addCalc2__FPffff();
extern "C" void MtxPosition__FP4cXyzP4cXyz();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void init__12J3DFrameCtrlFs();
extern "C" void __construct_array();
extern "C" void _savegpr_25();
extern "C" void _savegpr_26();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_25();
extern "C" void _restgpr_26();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern void* calc_mtx[1 + 1 /* padding */];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
// Declarations:
//
#include "SSystem/SComponent/c_lib.h"
#include "SSystem/SComponent/c_math.h"
#include "d/d_bg_w.h"
#include "d/d_com_inf_game.h"
/* 80BF6318-80BF63F8 000078 00E0+00 1/0 0/0 0/0 .text daObj_Gb_Draw__FP12obj_gb_class */
static void daObj_Gb_Draw(obj_gb_class* param_0) {
// NONMATCHING
static int daObj_Gb_Draw(obj_gb_class* i_this) {
g_env_light.settingTevStruct(0x10, &i_this->current.pos, &i_this->tevStr);
g_env_light.setLightTevColorType_MAJI(i_this->mModel, &i_this->tevStr);
J3DModelData* modelData = (J3DModelData*)i_this->mModel->getModelData();
for (u16 i = 0; i <= 1; i++) {
J3DMaterial* material = (J3DMaterial*)modelData->getMaterialNodePointer(i);
material->getTevKColor(1)->a = i_this->mColorAlpha;
}
dKy_bg_MAxx_proc(i_this->mModel);
i_this->mBtk->entry(modelData);
i_this->mBrk->entry(modelData);
mDoExt_modelUpdateDL(i_this->mModel);
return 1;
}
/* ############################################################################################## */
/* 80BF6DBC-80BF6DC0 000000 0004+00 2/2 0/0 0/0 .rodata @3890 */
SECTION_RODATA static f32 const lit_3890 = 0.5f;
COMPILER_STRIP_GATE(0x80BF6DBC, &lit_3890);
/* 80BF6DC0-80BF6DC4 000004 0004+00 1/2 0/0 0/0 .rodata @3891 */
SECTION_RODATA static f32 const lit_3891 = 1.0f;
COMPILER_STRIP_GATE(0x80BF6DC0, &lit_3891);
/* 80BF6DC4-80BF6DC8 000008 0004+00 0/1 0/0 0/0 .rodata @3892 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3892 = -1.0f;
COMPILER_STRIP_GATE(0x80BF6DC4, &lit_3892);
#pragma pop
/* 80BF6DC8-80BF6DCC 00000C 0004+00 0/1 0/0 0/0 .rodata @3893 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3893 = 29.0f;
COMPILER_STRIP_GATE(0x80BF6DC8, &lit_3893);
#pragma pop
/* 80BF6DCC-80BF6DD0 000010 0004+00 1/3 0/0 0/0 .rodata @3894 */
SECTION_RODATA static u8 const lit_3894[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80BF6DCC, &lit_3894);
/* 80BF6DD0-80BF6DD4 000014 0004+00 0/1 0/0 0/0 .rodata @3895 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3895 = -200.0f;
COMPILER_STRIP_GATE(0x80BF6DD0, &lit_3895);
#pragma pop
/* 80BF6DEC-80BF6DEC 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BF6DEC = "D_MN09B";
#pragma pop
/* 80BF63F8-80BF678C 000158 0394+00 2/1 0/0 0/0 .text daObj_Gb_Execute__FP12obj_gb_class
*/
static void daObj_Gb_Execute(obj_gb_class* param_0) {
// NONMATCHING
}
/* 80BF678C-80BF67C8 0004EC 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */
// cXyz::~cXyz() {
extern "C" void __dt__4cXyzFv() {
// NONMATCHING
static int daObj_Gb_Execute(obj_gb_class* i_this) {
fopAc_ac_c* player = dComIfGp_getPlayer(0);
cXyz acStack_30;
cXyz cStack_3c;
i_this->field_0x58e++;
for (int i = 0; i < 2; i++) {
if (i_this->field_0x58a[i] != 0) {
i_this->field_0x58a[i]--;
}
}
switch(i_this->mIsFinalBattle) {
case 0:
if (i_this->field_0x57c == 0) {
for (int i = 0; i < 20; i++) {
if (i_this->mBrkFrame < 0.5f) {
Z2GetAudioMgr()->seStart(Z2SE_OBJ_GANON_BARRIER_APPR, &i_this->field_0x594[i],
0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_GANON_BARRIER, &i_this->field_0x594[i], 0, 0,
1.0f, 1.0f, -1.0f, -1.0f, 0);
}
} else {
if (i_this->mBrkFrame < 0.5f) {
Z2GetAudioMgr()->seStart(Z2SE_OBJ_GANON_BARRIER_APPR, &i_this->current.pos, 0, 0,
1.0f, 1.0f, -1.0f, -1.0f, 0);
}
Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_GANON_BARRIER, &i_this->current.pos, 0, 0, 1.0f,
1.0f, -1.0f, -1.0f, 0);
}
cLib_addCalc2(&i_this->mBrkFrame, 29.0f, 1.0f, 1.0f);
if (strcmp(dComIfGp_getStartStageName(), "D_MN09B") != 0) {
if (dComIfGs_isSwitch(i_this->mSw2, fopAcM_GetRoomNo(i_this)) ||
!dComIfGs_isSwitch(i_this->mSw1, fopAcM_GetRoomNo(i_this)))
{
i_this->mIsFinalBattle = 1;
}
}
break;
case 1:
cLib_addCalc2(&i_this->mBrkFrame, 0, 1.0f, 1.0f);
if (!dComIfGs_isSwitch(i_this->mSw2, fopAcM_GetRoomNo(i_this)) &&
dComIfGs_isSwitch(i_this->mSw1, fopAcM_GetRoomNo(i_this)))
{
i_this->mIsFinalBattle = 0;
}
break;
}
mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z);
mDoMtx_stack_c::YrotM(i_this->current.angle.y);
if (i_this->field_0x57c == 0) {
mDoMtx_stack_c::scaleM(i_this->scale.x, i_this->scale.y, i_this->scale.x);
} else {
mDoMtx_stack_c::scaleM(i_this->scale.x, i_this->scale.y, 1.0f);
}
i_this->mModel->setBaseTRMtx(mDoMtx_stack_c::get());
i_this->mBtk->play();
i_this->mBrk->setFrame(i_this->mBrkFrame);
if (i_this->mBrkFrame < 1.0f) {
mDoMtx_stack_c::transM(0.0f, -200.0f, 0.0f);
mDoMtx_stack_c::scaleM(1.0f, 0.0f, 1.0f);
}
MTXCopy(mDoMtx_stack_c::get(), i_this->mBgMtx);
i_this->mpBgW->Move();
return 1;
}
/* 80BF67C8-80BF67D0 000528 0008+00 1/0 0/0 0/0 .text daObj_Gb_IsDelete__FP12obj_gb_class
*/
static bool daObj_Gb_IsDelete(obj_gb_class* param_0) {
return true;
static int daObj_Gb_IsDelete(obj_gb_class* param_0) {
return 1;
}
/* ############################################################################################## */
/* 80BF6DEC-80BF6DEC 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80BF6DF4 = "Obj_gb";
#pragma pop
/* 80BF67D0-80BF682C 000530 005C+00 1/0 0/0 0/0 .text daObj_Gb_Delete__FP12obj_gb_class
*/
static void daObj_Gb_Delete(obj_gb_class* param_0) {
// NONMATCHING
static int daObj_Gb_Delete(obj_gb_class* i_this) {
fopAcM_GetID(i_this);
dComIfG_resDelete(&i_this->mPhase, "Obj_gb");
if (i_this->mpBgW != NULL) {
dComIfG_Bgsp().Release(i_this->mpBgW);
}
return 1;
}
/* ############################################################################################## */
/* 80BF6DFC-80BF6E08 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80BF6E08-80BF6E1C 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
#pragma push
#pragma force_active on
SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
static u32 lit_1787[1 + 4 /* padding */] = {
0x02000201,
/* padding */
0x40080000,
@@ -178,44 +131,132 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
#pragma pop
/* 80BF6E1C-80BF6E24 000020 0008+00 0/1 0/0 0/0 .data bmd$3914 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 bmd[8] = {
0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07,
static int bmd[2] = {
6, 7,
};
#pragma pop
/* 80BF6E24-80BF6E2C 000028 0008+00 0/1 0/0 0/0 .data brk$3915 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 brk[8] = {
0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0B,
static int brk[2] = {
10, 11,
};
#pragma pop
/* 80BF6E2C-80BF6E34 000030 0008+00 0/1 0/0 0/0 .data btk$3916 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 btk[8] = {
0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x0F,
static int btk[2] = {
14, 15,
};
#pragma pop
/* 80BF6E34-80BF6E3C 000038 0008+00 0/1 0/0 0/0 .data dzb$3917 */
#pragma push
#pragma force_active on
SECTION_DATA static u8 dzb[8] = {
0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x13,
static int dzb[2] = {
18, 19,
};
#pragma pop
/* 80BF682C-80BF6A98 00058C 026C+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
static int useHeapInit(fopAc_ac_c* actor) {
obj_gb_class* i_this = (obj_gb_class*)actor;
J3DModelData* modelData = (J3DModelData*) dComIfG_getObjectRes("Obj_gb", bmd[i_this->field_0x57c]);
JUT_ASSERT(324, modelData != 0);
i_this->mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284);
if (i_this->mModel == NULL) {
return 0;
}
i_this->mBtk = new mDoExt_btkAnm();
if (i_this->mBtk == NULL) {
return 0;
}
J3DAnmTextureSRTKey* anmTexture = (J3DAnmTextureSRTKey*) dComIfG_getObjectRes(
"Obj_gb", btk[i_this->field_0x57c]);
if (i_this->mBtk->init(i_this->mModel->getModelData(), anmTexture, 1, 2, 1.0f, 0, -1) == 0) {
return 0;
}
i_this->mBrk = new mDoExt_brkAnm();
if (i_this->mBrk== NULL) {
return 0;
}
J3DAnmTevRegKey* anmTevKey = (J3DAnmTevRegKey*)dComIfG_getObjectRes(
"Obj_gb", brk[i_this->field_0x57c]);
if (i_this->mBrk->init(i_this->mModel->getModelData(), anmTevKey, 1, 2, 0.0f, 0, -1) == 0) {
return 0;
}
i_this->mpBgW = new dBgW();
if (i_this->mpBgW == NULL) {
return 0;
}
cBgD_t* pbGd = (cBgD_t*)dComIfG_getObjectRes(
"Obj_gb", dzb[i_this->field_0x57c]);
return i_this->mpBgW->Set(pbGd, 1, &i_this->mBgMtx) == 1 ? 0 : 1;
}
/* 80BF6AE0-80BF6DB0 000840 02D0+00 1/0 0/0 0/0 .text daObj_Gb_Create__FP10fopAc_ac_c */
static int daObj_Gb_Create(fopAc_ac_c* actor) {
fopAcM_SetupActor(actor, obj_gb_class);
obj_gb_class* i_this = (obj_gb_class*)actor;
int rv = dComIfG_resLoad(&i_this->mPhase, "Obj_gb");
if (rv == cPhs_COMPLEATE_e) {
OS_REPORT("OBJ_GB PARAM %x\n", fopAcM_GetParam(i_this));
i_this->field_0x57c = fopAcM_GetParam(i_this);
if (i_this->field_0x57c == 0xff) {
i_this->field_0x57c = 0;
}
u8 local_47 = (fopAcM_GetParam(i_this) >> 8) & 0xff;
if (local_47 == 0xff) {
if (i_this->field_0x57c == 0) {
local_47 = 100;
} else {
local_47 = 10;
}
}
if (i_this->field_0x57c == 0) {
i_this->scale.x = local_47 * 0.01f;
} else {
i_this->scale.x = local_47 * 0.5f;
}
i_this->scale.y = ((fopAcM_GetParam(i_this) >> 16) & 0xff) * 0.333333f * 0.5f;
i_this->mColorAlpha = fopAcM_GetParam(i_this) >> 24;
i_this->mSw1 = i_this->current.angle.x & 0xff;
i_this->mSw2 = (i_this->current.angle.x & 0xff00) >> 8;
i_this->shape_angle.x = 0;
i_this->current.angle.x = 0;
OS_REPORT("OBJ_GB//////////////OBJ_GB SET 1 !!\n");
int heapSize;
if (i_this->field_0x57c == 0) {
heapSize = 0x1c40;
} else {
heapSize = 0x1320;
}
if (fopAcM_entrySolidHeap(i_this, useHeapInit, heapSize) == 0) {
OS_REPORT("//////////////OBJ_GB SET NON !!\n");
return cPhs_ERROR_e;
}
OS_REPORT("//////////////OBJ_GB SET 2 !!\n");
if (i_this->mpBgW != NULL) {
if (dComIfG_Bgsp().Regist(i_this->mpBgW, i_this) != 0) {
return cPhs_ERROR_e;
}
}
i_this->field_0x58e = cM_rndF(65536.0f);
if (strcmp(dComIfGp_getStartStageName(), "D_MN09B") != 0) {
i_this->mIsFinalBattle = 1;
}
s16 local_44 = 0;
cXyz cStack_30(0.0f, 0.0f, i_this->scale.x * 1000.0f);
for (int i = 0; i < 20; i++, local_44 += 0xccc) {
cMtx_YrotS(*calc_mtx, local_44);
MtxPosition(&cStack_30, &i_this->field_0x594[i]);
i_this->field_0x594[i] += i_this->current.pos;
}
daObj_Gb_Execute(i_this);
}
return rv;
}
/* 80BF6E3C-80BF6E5C -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Gb_Method */
static actor_method_class l_daObj_Gb_Method = {
(process_method_func)daObj_Gb_Create__FP10fopAc_ac_c,
(process_method_func)daObj_Gb_Delete__FP12obj_gb_class,
(process_method_func)daObj_Gb_Execute__FP12obj_gb_class,
(process_method_func)daObj_Gb_IsDelete__FP12obj_gb_class,
(process_method_func)daObj_Gb_Draw__FP12obj_gb_class,
(process_method_func)daObj_Gb_Create,
(process_method_func)daObj_Gb_Delete,
(process_method_func)daObj_Gb_Execute,
(process_method_func)daObj_Gb_IsDelete,
(process_method_func)daObj_Gb_Draw,
};
/* 80BF6E5C-80BF6E8C -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_GB */
@@ -236,71 +277,4 @@ extern actor_process_profile_definition g_profile_OBJ_GB = {
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80BF6E8C-80BF6E98 000090 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */
SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12J3DFrameCtrlFv,
};
/* 80BF682C-80BF6A98 00058C 026C+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
static void useHeapInit(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80BF6A98-80BF6AE0 0007F8 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
// J3DFrameCtrl::~J3DFrameCtrl() {
extern "C" void __dt__12J3DFrameCtrlFv() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80BF6DD4-80BF6DD8 000018 0004+00 0/1 0/0 0/0 .rodata @4083 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4083 = 1.0f / 100.0f;
COMPILER_STRIP_GATE(0x80BF6DD4, &lit_4083);
#pragma pop
/* 80BF6DD8-80BF6DDC 00001C 0004+00 0/1 0/0 0/0 .rodata @4084 */
#pragma push
#pragma force_active on
SECTION_RODATA static u32 const lit_4084 = 0x3EAAAA9F;
COMPILER_STRIP_GATE(0x80BF6DD8, &lit_4084);
#pragma pop
/* 80BF6DDC-80BF6DE0 000020 0004+00 0/1 0/0 0/0 .rodata @4085 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4085 = 65536.0f;
COMPILER_STRIP_GATE(0x80BF6DDC, &lit_4085);
#pragma pop
/* 80BF6DE0-80BF6DE4 000024 0004+00 0/1 0/0 0/0 .rodata @4086 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4086 = 1000.0f;
COMPILER_STRIP_GATE(0x80BF6DE0, &lit_4086);
#pragma pop
/* 80BF6DE4-80BF6DEC 000028 0008+00 0/1 0/0 0/0 .rodata @4088 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_4088[8] = {
0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80BF6DE4, &lit_4088);
#pragma pop
/* 80BF6AE0-80BF6DB0 000840 02D0+00 1/0 0/0 0/0 .text daObj_Gb_Create__FP10fopAc_ac_c */
static void daObj_Gb_Create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80BF6DB0-80BF6DB4 000B10 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */
// cXyz::cXyz() {
extern "C" void __ct__4cXyzFv() {
/* empty function */
}
/* 80BF6DEC-80BF6DEC 000030 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
File diff suppressed because it is too large Load Diff
+155 -198
View File
@@ -4,68 +4,172 @@
*/
#include "d/actor/d_a_obj_timeFire.h"
#include "d/d_com_inf_game.h"
#include "dol2asm.h"
/* 80D0E8EC-80D0E910 0000EC 0024+00 1/1 0/0 0/0 .text __ct__16daTimeFire_HIO_cFv */
daTimeFire_HIO_c::daTimeFire_HIO_c() {
field_0x4 = 20;
}
/* 80D0E958-80D0E9B0 000158 0058+00 1/1 0/0 0/0 .text setBaseMtx__12daTimeFire_cFv */
void daTimeFire_c::setBaseMtx() {
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z);
}
//
// Forward References:
//
/* 80D0E9B0-80D0EACC 0001B0 011C+00 1/1 0/0 0/0 .text create__12daTimeFire_cFv */
int daTimeFire_c::create() {
fopAcM_SetupActor(this, daTimeFire_c);
setBaseMtx();
field_0x570 = current.pos;
lightInit();
mStartTime = getStartTime();
mEndTime = getEndTime();
int scaleParam = getScale();
f32 fVar1 = scaleParam / 10.0f;
mParticleScale.set(fVar1, fVar1, fVar1);
field_0x56c = fireCheck(1);
if (!field_0x56c) {
cutLight();
field_0x56d = false;
} else {
setLight();
field_0x56d = true;
}
field_0x568 = 0;
field_0x569 = 0;
return cPhs_COMPLEATE_e;
}
extern "C" void __ct__16daTimeFire_HIO_cFv();
extern "C" void __dt__14mDoHIO_entry_cFv();
extern "C" void setBaseMtx__12daTimeFire_cFv();
extern "C" void create__12daTimeFire_cFv();
extern "C" void lightInit__12daTimeFire_cFv();
extern "C" void setLight__12daTimeFire_cFv();
extern "C" void cutLight__12daTimeFire_cFv();
extern "C" void Execute__12daTimeFire_cFv();
extern "C" void fireCheck__12daTimeFire_cFUc();
extern "C" bool Draw__12daTimeFire_cFv();
extern "C" void Delete__12daTimeFire_cFv();
extern "C" static void daTimeFire_Draw__FP12daTimeFire_c();
extern "C" static void daTimeFire_Execute__FP12daTimeFire_c();
extern "C" static void daTimeFire_Delete__FP12daTimeFire_c();
extern "C" static void daTimeFire_Create__FP10fopAc_ac_c();
extern "C" void __dt__16daTimeFire_HIO_cFv();
extern "C" void __sinit_d_a_obj_timeFire_cpp();
/* 80D0EACC-80D0EB40 0002CC 0074+00 1/1 0/0 0/0 .text lightInit__12daTimeFire_cFv */
void daTimeFire_c::lightInit() {
field_0x594 = field_0x570;
field_0x594.y += 10.0f;
mLightInfluence.mPosition = field_0x594;
mLightInfluence.mColor.r = 0xbc;
mLightInfluence.mColor.g = 0x66;
mLightInfluence.mColor.b = 0x42;
mLightInfluence.mPow = 500.0f;
mLightInfluence.mFluctuation = 1.0f;
}
//
// External References:
//
/* 80D0EB40-80D0EB64 000340 0024+00 2/2 0/0 0/0 .text setLight__12daTimeFire_cFv */
void daTimeFire_c::setLight() {
dKy_plight_set(&mLightInfluence);
}
extern "C" void mDoMtx_ZXYrotM__FPA4_fsss();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void dComIfGp_getReverb__Fi();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void
set__13dPa_control_cFUlUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void dKy_getdaytime_hour__Fv();
extern "C" void dKy_getdaytime_minute__Fv();
extern "C" void dKy_plight_set__FP15LIGHT_INFLUENCE();
extern "C" void dKy_plight_cut__FP15LIGHT_INFLUENCE();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __dl__FPv();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
extern "C" void __register_global_object();
/* 80D0EB64-80D0EB88 000364 0024+00 2/2 0/0 0/0 .text cutLight__12daTimeFire_cFv */
void daTimeFire_c::cutLight() {
dKy_plight_cut(&mLightInfluence);
}
//
// Declarations:
//
/* 80D0EB88-80D0ED68 000388 01E0+00 1/1 0/0 0/0 .text Execute__12daTimeFire_cFv */
int daTimeFire_c::Execute() {
bool prevFireCheck = field_0x56c;
field_0x56c = fireCheck(0);
if (prevFireCheck != field_0x56c) {
if (field_0x56c == 0) {
cutLight();
field_0x56d = false;
} else {
setLight();
field_0x56d = true;
}
}
if (field_0x56d) {
mParticleId1 = dComIfGp_particle_set(mParticleId1, 0x3ad, &field_0x570, NULL, &mParticleScale);
mParticleId2 = dComIfGp_particle_set(mParticleId2, 0x3af, &field_0x570, NULL, &mParticleScale);
mParticleId3 = dComIfGp_particle_set(mParticleId3, 0x3ae, &field_0x570, NULL, &mParticleScale);
s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(this));
mDoAud_seStartLevel(Z2SE_OBJ_FIRE_BURNING, &field_0x570, 0, reverb);
}
return 1;
}
/* 80D0ED68-80D0EF88 000568 0220+00 2/2 0/0 0/0 .text fireCheck__12daTimeFire_cFUc */
bool daTimeFire_c::fireCheck(u8 param_1) {
bool inTime = false;
BOOL isSw;
if (getSw() == 0xff) {
isSw = 1;
} else {
isSw = fopAcM_isSwitch(this, getSw()) & 0xff;
}
if (mStartTime > mEndTime) {
if (dKy_getdaytime_hour() >= mStartTime || dKy_getdaytime_hour() <= mEndTime) {
inTime = true;
}
} else {
if (dKy_getdaytime_hour() >= mStartTime && dKy_getdaytime_hour() <= mEndTime) {
inTime = true;
}
}
if (inTime && (isSw & 0xff) && dKy_getdaytime_hour() == mStartTime && dKy_getdaytime_minute() == 0 &&
field_0x569 == 0 && param_1 == 0)
{
s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(this));
mDoAud_seStart(Z2SE_OBJ_FIRE_IGNITION, &field_0x570, 0, reverb);
field_0x569 = 1;
}
if (inTime && (isSw & 0xff) && dKy_getdaytime_hour() == mEndTime && dKy_getdaytime_minute() == 0 &&
field_0x569 == 1 && param_1 == 0)
{
s8 reverb = dComIfGp_getReverb(fopAcM_GetRoomNo(this));
mDoAud_seStart(Z2SE_OBJ_FIRE_OFF, &field_0x570, 0, reverb);
field_0x569 = 2;
}
if (inTime && (isSw & 0xff)) {
return 1;
}
field_0x569 = 0;
return 0;
}
/* 80D0EF88-80D0EF90 000788 0008+00 1/1 0/0 0/0 .text Draw__12daTimeFire_cFv */
int daTimeFire_c::Draw() {
return 1;
}
/* 80D0EF90-80D0EFB8 000790 0028+00 1/1 0/0 0/0 .text Delete__12daTimeFire_cFv */
int daTimeFire_c::Delete() {
dKy_plight_cut(&mLightInfluence);
return 1;
}
/* 80D0EFB8-80D0EFD8 0007B8 0020+00 1/0 0/0 0/0 .text daTimeFire_Draw__FP12daTimeFire_c
*/
static int daTimeFire_Draw(daTimeFire_c* i_this) {
return i_this->Draw();
}
/* 80D0EFD8-80D0EFF8 0007D8 0020+00 1/0 0/0 0/0 .text daTimeFire_Execute__FP12daTimeFire_c */
static int daTimeFire_Execute(daTimeFire_c* i_this) {
return i_this->Execute();
}
/* 80D0EFF8-80D0F018 0007F8 0020+00 1/0 0/0 0/0 .text daTimeFire_Delete__FP12daTimeFire_c
*/
static int daTimeFire_Delete(daTimeFire_c* i_this) {
return i_this->Delete();
}
/* 80D0F018-80D0F038 000818 0020+00 1/0 0/0 0/0 .text daTimeFire_Create__FP10fopAc_ac_c
*/
static int daTimeFire_Create(fopAc_ac_c* i_this) {
return static_cast<daTimeFire_c*>(i_this)->create();
}
/* 80D0F17C-80D0F184 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */
static daTimeFire_HIO_c l_HIO;
/* ############################################################################################## */
/* 80D0F100-80D0F120 -00001 0020+00 1/0 0/0 0/0 .data l_daTimeFire_Method */
static actor_method_class l_daTimeFire_Method = {
(process_method_func)daTimeFire_Create__FP10fopAc_ac_c,
(process_method_func)daTimeFire_Delete__FP12daTimeFire_c,
(process_method_func)daTimeFire_Execute__FP12daTimeFire_c,
0,
(process_method_func)daTimeFire_Draw__FP12daTimeFire_c,
(process_method_func)daTimeFire_Create,
(process_method_func)daTimeFire_Delete,
(process_method_func)daTimeFire_Execute,
NULL,
(process_method_func)daTimeFire_Draw,
};
/* 80D0F120-80D0F150 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_TimeFire */
@@ -85,150 +189,3 @@ extern actor_process_profile_definition g_profile_Obj_TimeFire = {
fopAc_ACTOR_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80D0F150-80D0F15C 000050 000C+00 2/2 0/0 0/0 .data __vt__16daTimeFire_HIO_c */
SECTION_DATA extern void* __vt__16daTimeFire_HIO_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__16daTimeFire_HIO_cFv,
};
/* 80D0F15C-80D0F168 00005C 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,
};
/* 80D0E8EC-80D0E910 0000EC 0024+00 1/1 0/0 0/0 .text __ct__16daTimeFire_HIO_cFv */
daTimeFire_HIO_c::daTimeFire_HIO_c() {
// NONMATCHING
}
/* 80D0E910-80D0E958 000110 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
}
/* 80D0E958-80D0E9B0 000158 0058+00 1/1 0/0 0/0 .text setBaseMtx__12daTimeFire_cFv */
void daTimeFire_c::setBaseMtx() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80D0F0E4-80D0F0EC 000000 0004+04 2/2 0/0 0/0 .rodata @3686 */
SECTION_RODATA static f32 const lit_3686[1 + 1 /* padding */] = {
10.0f,
/* padding */
0.0f,
};
COMPILER_STRIP_GATE(0x80D0F0E4, &lit_3686);
/* 80D0F0EC-80D0F0F4 000008 0008+00 1/1 0/0 0/0 .rodata @3688 */
SECTION_RODATA static u8 const lit_3688[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D0F0EC, &lit_3688);
/* 80D0E9B0-80D0EACC 0001B0 011C+00 1/1 0/0 0/0 .text create__12daTimeFire_cFv */
void daTimeFire_c::create() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80D0F0F4-80D0F0F8 000010 0004+00 0/1 0/0 0/0 .rodata @3707 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3707 = 500.0f;
COMPILER_STRIP_GATE(0x80D0F0F4, &lit_3707);
#pragma pop
/* 80D0F0F8-80D0F0FC 000014 0004+00 2/3 0/0 0/0 .rodata @3708 */
SECTION_RODATA static f32 const lit_3708 = 1.0f;
COMPILER_STRIP_GATE(0x80D0F0F8, &lit_3708);
/* 80D0EACC-80D0EB40 0002CC 0074+00 1/1 0/0 0/0 .text lightInit__12daTimeFire_cFv */
void daTimeFire_c::lightInit() {
// NONMATCHING
}
/* 80D0EB40-80D0EB64 000340 0024+00 2/2 0/0 0/0 .text setLight__12daTimeFire_cFv */
void daTimeFire_c::setLight() {
// NONMATCHING
}
/* 80D0EB64-80D0EB88 000364 0024+00 2/2 0/0 0/0 .text cutLight__12daTimeFire_cFv */
void daTimeFire_c::cutLight() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80D0F0FC-80D0F100 000018 0004+00 2/2 0/0 0/0 .rodata @3757 */
SECTION_RODATA static f32 const lit_3757 = -1.0f;
COMPILER_STRIP_GATE(0x80D0F0FC, &lit_3757);
/* 80D0EB88-80D0ED68 000388 01E0+00 1/1 0/0 0/0 .text Execute__12daTimeFire_cFv */
void daTimeFire_c::Execute() {
// NONMATCHING
}
/* 80D0ED68-80D0EF88 000568 0220+00 2/2 0/0 0/0 .text fireCheck__12daTimeFire_cFUc */
void daTimeFire_c::fireCheck(u8 param_0) {
// NONMATCHING
}
/* 80D0EF88-80D0EF90 000788 0008+00 1/1 0/0 0/0 .text Draw__12daTimeFire_cFv */
bool daTimeFire_c::Draw() {
return true;
}
/* 80D0EF90-80D0EFB8 000790 0028+00 1/1 0/0 0/0 .text Delete__12daTimeFire_cFv */
void daTimeFire_c::Delete() {
// NONMATCHING
}
/* 80D0EFB8-80D0EFD8 0007B8 0020+00 1/0 0/0 0/0 .text daTimeFire_Draw__FP12daTimeFire_c
*/
static void daTimeFire_Draw(daTimeFire_c* param_0) {
// NONMATCHING
}
/* 80D0EFD8-80D0EFF8 0007D8 0020+00 1/0 0/0 0/0 .text daTimeFire_Execute__FP12daTimeFire_c */
static void daTimeFire_Execute(daTimeFire_c* param_0) {
// NONMATCHING
}
/* 80D0EFF8-80D0F018 0007F8 0020+00 1/0 0/0 0/0 .text daTimeFire_Delete__FP12daTimeFire_c
*/
static void daTimeFire_Delete(daTimeFire_c* param_0) {
// NONMATCHING
}
/* 80D0F018-80D0F038 000818 0020+00 1/0 0/0 0/0 .text daTimeFire_Create__FP10fopAc_ac_c
*/
static void daTimeFire_Create(fopAc_ac_c* param_0) {
// NONMATCHING
}
/* 80D0F038-80D0F094 000838 005C+00 2/1 0/0 0/0 .text __dt__16daTimeFire_HIO_cFv */
daTimeFire_HIO_c::~daTimeFire_HIO_c() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80D0F170-80D0F17C 000008 000C+00 1/1 0/0 0/0 .bss @3621 */
static u8 lit_3621[12];
/* 80D0F17C-80D0F184 000014 0008+00 1/1 0/0 0/0 .bss l_HIO */
static u8 l_HIO[8];
/* 80D0F094-80D0F0D0 000894 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_timeFire_cpp */
void __sinit_d_a_obj_timeFire_cpp() {
// NONMATCHING
}
#pragma push
#pragma force_active on
REGISTER_CTORS(0x80D0F094, __sinit_d_a_obj_timeFire_cpp);
#pragma pop
+131 -140
View File
@@ -4,77 +4,148 @@
*/
#include "d/actor/d_a_obj_toaru_maki.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" static void daObjToaruMaki_c_createHeap__FP10fopAc_ac_c();
extern "C" void __ct__16daObjToaruMaki_cFv();
extern "C" void __dt__16daObjToaruMaki_cFv();
extern "C" void createHeap__16daObjToaruMaki_cFv();
extern "C" void create__16daObjToaruMaki_cFv();
extern "C" void Delete__16daObjToaruMaki_cFv();
extern "C" void setModelMtx__16daObjToaruMaki_cFv();
extern "C" void draw__16daObjToaruMaki_cFv();
extern "C" void execute__16daObjToaruMaki_cFv();
extern "C" static void daObjToaruMaki_create__FP16daObjToaruMaki_c();
extern "C" static void daObjToaruMaki_Delete__FP16daObjToaruMaki_c();
extern "C" static void daObjToaruMaki_execute__FP16daObjToaruMaki_c();
extern "C" static void daObjToaruMaki_draw__FP16daObjToaruMaki_c();
extern "C" extern char const* const d_a_obj_toaru_maki__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_setupStageTexture__FP12J3DModelData();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void Release__4cBgSFP9dBgW_Base();
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
extern "C" void __ct__4dBgWFv();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void ChkUsed__9cBgW_BgIdCFv();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" u8 now__14mDoMtx_stack_c[48];
//
// Declarations:
//
#include "d/d_bg_w.h"
/* 80D13078-80D13098 000078 0020+00 1/1 0/0 0/0 .text daObjToaruMaki_c_createHeap__FP10fopAc_ac_c
*/
static int daObjToaruMaki_c_createHeap(fopAc_ac_c* i_this) {
// NONMATCHING
return static_cast<daObjToaruMaki_c*>(i_this)->createHeap();
}
/* 80D13624-80D1362C -00001 0008+00 3/3 0/0 0/0 .data l_arcName */
static char* l_arcName[2] = {"T_Maki1", "T_Maki2"};
/* 80D13098-80D130E0 000098 0048+00 2/2 0/0 0/0 .text __ct__16daObjToaruMaki_cFv */
daObjToaruMaki_c::daObjToaruMaki_c() {
mpBgW = NULL;
mpModel = NULL;
}
/* 80D130E0-80D1316C 0000E0 008C+00 1/0 0/0 0/0 .text __dt__16daObjToaruMaki_cFv */
daObjToaruMaki_c::~daObjToaruMaki_c() {
dComIfG_resDelete(this, l_arcName[getNameArg_0()]);
}
/* 80D13604-80D1360C 000000 0008+00 1/1 0/0 0/0 .rodata l_bmdIdx */
static const u32 l_bmdIdx[2] = {4, 3};
/* 80D1316C-80D132B4 00016C 0148+00 1/1 0/0 0/0 .text createHeap__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::createHeap() {
u32 nameArg = getNameArg_0();
J3DModelData* a_model_data_p =
(J3DModelData*)dComIfG_getObjectRes(l_arcName[nameArg], l_bmdIdx[nameArg]);
JUT_ASSERT(101, a_model_data_p != 0);
mpModel = mDoExt_J3DModel__create(a_model_data_p, 0x80000, 0x11000084);
if (mpModel == NULL) {
return 0;
}
if (nameArg == 0) {
mpBgW = new dBgW();
if (mpBgW == NULL) {
return 0;
}
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::YrotM(shape_angle.y);
MTXCopy(mDoMtx_stack_c::get(), mMtx);
cBgD_t* cBgD = (cBgD_t*)dComIfG_getObjectRes(l_arcName[nameArg], 7);
if (mpBgW->Set(cBgD, 1, &mMtx) == 1) {
return 0;
}
}
return 1;
}
/* 80D1360C-80D13614 000008 0008+00 1/1 0/0 0/0 .rodata l_heapSize */
static const u32 l_heapSize[2] = {
0x2000,
0x0EB0,
};
/* 80D132B4-80D133C0 0002B4 010C+00 1/1 0/0 0/0 .text create__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::create() {
fopAcM_SetupActor(this, daObjToaruMaki_c);
u32 nameArg = getNameArg_0();
int rv = dComIfG_resLoad(this, l_arcName[nameArg]);
if (rv == cPhs_COMPLEATE_e) {
if (fopAcM_entrySolidHeap(this, daObjToaruMaki_c_createHeap, l_heapSize[nameArg]) == 0) {
return cPhs_ERROR_e;
}
mDoExt_setupStageTexture(mpModel->getModelData());
if (nameArg == 0) {
if (dComIfG_Bgsp().Regist(mpBgW, this) != 0) {
return cPhs_ERROR_e;
}
}
setModelMtx();
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
}
return rv;
}
/* 80D133C0-80D1343C 0003C0 007C+00 1/1 0/0 0/0 .text Delete__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::Delete() {
if (getNameArg_0() == 0 && mpBgW != NULL && mpBgW->ChkUsed()) {
dComIfG_Bgsp().Release(mpBgW);
}
this->~daObjToaruMaki_c();
return 1;
}
/* 80D1343C-80D134A0 00043C 0064+00 2/2 0/0 0/0 .text setModelMtx__16daObjToaruMaki_cFv
*/
void daObjToaruMaki_c::setModelMtx() {
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
mDoMtx_stack_c::YrotM(shape_angle.y);
mpModel->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 80D134A0-80D13524 0004A0 0084+00 1/1 0/0 0/0 .text draw__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::draw() {
g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
dComIfGd_setList();
mDoExt_modelUpdateDL(mpModel);
return 1;
}
/* 80D13524-80D13548 000524 0024+00 1/1 0/0 0/0 .text execute__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::execute() {
setModelMtx();
return 1;
}
/* 80D13548-80D1359C 000548 0054+00 1/0 0/0 0/0 .text daObjToaruMaki_create__FP16daObjToaruMaki_c
*/
static int daObjToaruMaki_create(daObjToaruMaki_c* i_this) {
// !@bug this setup is called twice. No adverse effects though.
fopAcM_SetupActor(i_this, daObjToaruMaki_c);
return i_this->create();
}
/* 80D1359C-80D135BC 00059C 0020+00 1/0 0/0 0/0 .text daObjToaruMaki_Delete__FP16daObjToaruMaki_c
*/
static int daObjToaruMaki_Delete(daObjToaruMaki_c* i_this) {
return i_this->Delete();
}
/* 80D135BC-80D135DC 0005BC 0020+00 1/0 0/0 0/0 .text daObjToaruMaki_execute__FP16daObjToaruMaki_c
*/
static int daObjToaruMaki_execute(daObjToaruMaki_c* i_this) {
return i_this->execute();;
}
/* 80D135DC-80D135FC 0005DC 0020+00 1/0 0/0 0/0 .text daObjToaruMaki_draw__FP16daObjToaruMaki_c */
static int daObjToaruMaki_draw(daObjToaruMaki_c* i_this) {
return i_this->draw();
}
/* 80D1362C-80D1364C -00001 0020+00 1/0 0/0 0/0 .data daObjToaruMaki_METHODS */
static actor_method_class daObjToaruMaki_METHODS = {
(process_method_func)daObjToaruMaki_create__FP16daObjToaruMaki_c,
(process_method_func)daObjToaruMaki_Delete__FP16daObjToaruMaki_c,
(process_method_func)daObjToaruMaki_execute__FP16daObjToaruMaki_c,
0,
(process_method_func)daObjToaruMaki_draw__FP16daObjToaruMaki_c,
(process_method_func)daObjToaruMaki_create,
(process_method_func)daObjToaruMaki_Delete,
(process_method_func)daObjToaruMaki_execute,
NULL,
(process_method_func)daObjToaruMaki_draw,
};
/* 80D1364C-80D1367C -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_ToaruMaki */
@@ -94,83 +165,3 @@ extern actor_process_profile_definition g_profile_Obj_ToaruMaki = {
fopAc_ENV_e, // mActorType
fopAc_CULLBOX_CUSTOM_e, // cullType
};
/* 80D1367C-80D13688 000058 000C+00 2/2 0/0 0/0 .data __vt__16daObjToaruMaki_c */
SECTION_DATA extern void* __vt__16daObjToaruMaki_c[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__16daObjToaruMaki_cFv,
};
/* 80D13098-80D130E0 000098 0048+00 2/2 0/0 0/0 .text __ct__16daObjToaruMaki_cFv */
daObjToaruMaki_c::daObjToaruMaki_c() {
// NONMATCHING
}
/* 80D130E0-80D1316C 0000E0 008C+00 1/0 0/0 0/0 .text __dt__16daObjToaruMaki_cFv */
daObjToaruMaki_c::~daObjToaruMaki_c() {
// NONMATCHING
}
/* 80D13604-80D1360C 000000 0008+00 1/1 0/0 0/0 .rodata l_bmdIdx */
static const u32 l_bmdIdx[2] = {4, 3};
/* 80D1316C-80D132B4 00016C 0148+00 1/1 0/0 0/0 .text createHeap__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::createHeap() {
// NONMATCHING
}
/* 80D1360C-80D13614 000008 0008+00 1/1 0/0 0/0 .rodata l_heapSize */
static const u32 l_heapSize[2] = {
0x2000,
0x0EB0,
};
/* 80D132B4-80D133C0 0002B4 010C+00 1/1 0/0 0/0 .text create__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::create() {
// NONMATCHING
}
/* 80D133C0-80D1343C 0003C0 007C+00 1/1 0/0 0/0 .text Delete__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::Delete() {
// NONMATCHING
}
/* 80D1343C-80D134A0 00043C 0064+00 2/2 0/0 0/0 .text setModelMtx__16daObjToaruMaki_cFv
*/
void daObjToaruMaki_c::setModelMtx() {
// NONMATCHING
}
/* 80D134A0-80D13524 0004A0 0084+00 1/1 0/0 0/0 .text draw__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::draw() {
// NONMATCHING
}
/* 80D13524-80D13548 000524 0024+00 1/1 0/0 0/0 .text execute__16daObjToaruMaki_cFv */
int daObjToaruMaki_c::execute() {
// NONMATCHING
}
/* 80D13548-80D1359C 000548 0054+00 1/0 0/0 0/0 .text daObjToaruMaki_create__FP16daObjToaruMaki_c
*/
static int daObjToaruMaki_create(daObjToaruMaki_c* i_this) {
// NONMATCHING
}
/* 80D1359C-80D135BC 00059C 0020+00 1/0 0/0 0/0 .text daObjToaruMaki_Delete__FP16daObjToaruMaki_c
*/
static int daObjToaruMaki_Delete(daObjToaruMaki_c* i_this) {
// NONMATCHING
}
/* 80D135BC-80D135DC 0005BC 0020+00 1/0 0/0 0/0 .text daObjToaruMaki_execute__FP16daObjToaruMaki_c
*/
static int daObjToaruMaki_execute(daObjToaruMaki_c* i_this) {
// NONMATCHING
}
/* 80D135DC-80D135FC 0005DC 0020+00 1/0 0/0 0/0 .text daObjToaruMaki_draw__FP16daObjToaruMaki_c */
static int daObjToaruMaki_draw(daObjToaruMaki_c* i_this) {
// NONMATCHING
}