diff --git a/config/GZ2E01/rels/d_a_obj_wood_pendulum/symbols.txt b/config/GZ2E01/rels/d_a_obj_wood_pendulum/symbols.txt index c82843f0d62..6b4902c79f0 100644 --- a/config/GZ2E01/rels/d_a_obj_wood_pendulum/symbols.txt +++ b/config/GZ2E01/rels/d_a_obj_wood_pendulum/symbols.txt @@ -1,7 +1,7 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global _unresolved = .text:0x00000058; // type:function size:0x20 scope:global -CheckCreateHeap__FP10fopAc_ac_c = .text:0x00000078; // type:function size:0x20 scope:global +CheckCreateHeap__FP10fopAc_ac_c = .text:0x00000078; // type:function size:0x20 scope:local initBaseMtx__13daObjWPndlm_cFv = .text:0x00000098; // type:function size:0x3C scope:global setBaseMtx__13daObjWPndlm_cFv = .text:0x000000D4; // type:function size:0x78 scope:global Create__13daObjWPndlm_cFv = .text:0x0000014C; // type:function size:0xFC scope:global @@ -14,14 +14,14 @@ __dt__8cM3dGAabFv = .text:0x000005B0; // type:function size:0x48 scope:global execute__13daObjWPndlm_cFv = .text:0x000005F8; // type:function size:0x1F0 scope:global draw__13daObjWPndlm_cFv = .text:0x000007E8; // type:function size:0x64 scope:global _delete__13daObjWPndlm_cFv = .text:0x0000084C; // type:function size:0x34 scope:global -daObjWPndlm_Draw__FP13daObjWPndlm_c = .text:0x00000880; // type:function size:0x20 scope:global -daObjWPndlm_Execute__FP13daObjWPndlm_c = .text:0x000008A0; // type:function size:0x20 scope:global -daObjWPndlm_Delete__FP13daObjWPndlm_c = .text:0x000008C0; // type:function size:0x20 scope:global -daObjWPndlm_Create__FP10fopAc_ac_c = .text:0x000008E0; // type:function size:0x20 scope:global +daObjWPndlm_Draw__FP13daObjWPndlm_c = .text:0x00000880; // type:function size:0x20 scope:local +daObjWPndlm_Execute__FP13daObjWPndlm_c = .text:0x000008A0; // type:function size:0x20 scope:local +daObjWPndlm_Delete__FP13daObjWPndlm_c = .text:0x000008C0; // type:function size:0x20 scope:local +daObjWPndlm_Create__FP10fopAc_ac_c = .text:0x000008E0; // type:function size:0x20 scope:local _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global ...rodata.0 = .rodata:0x00000000; // type:label scope:local -l_sph_src = .rodata:0x00000000; // type:object size:0x40 scope:global +l_sph_src = .rodata:0x00000000; // type:object size:0x40 scope:local l_sph_src2 = .rodata:0x00000040; // type:object size:0x40 scope:global @3672 = .rodata:0x00000080; // type:object size:0x4 scope:local @3674 = .rodata:0x00000088; // type:object size:0x8 scope:local @@ -29,8 +29,8 @@ l_sph_src2 = .rodata:0x00000040; // type:object size:0x40 scope:global @3860 = .rodata:0x000000A8; // type:object size:0x4 scope:local @3861 = .rodata:0x000000AC; // type:object size:0x4 scope:local @stringBase0 = .rodata:0x000000B0; // type:object size:0x9 scope:local data:string_table -l_arcName = .data:0x00000000; // type:object size:0x4 scope:global -l_daObjWPndlm_Method = .data:0x00000004; // type:object size:0x20 scope:global +l_arcName = .data:0x00000000; // type:object size:0x4 scope:local +l_daObjWPndlm_Method = .data:0x00000004; // type:object size:0x20 scope:local g_profile_Obj_WoodPendulum = .data:0x00000024; // type:object size:0x30 scope:global __vt__8cM3dGSph = .data:0x00000054; // type:object size:0xC scope:global __vt__8cM3dGAab = .data:0x00000060; // type:object size:0xC scope:global diff --git a/configure.py b/configure.py index 7b42a4e549c..865ab4972c1 100644 --- a/configure.py +++ b/configure.py @@ -2055,7 +2055,7 @@ config.libs = [ ActorRel(Matching, "d_a_obj_wflag"), ActorRel(Matching, "d_a_obj_wind_stone"), ActorRel(Matching, "d_a_obj_window"), - ActorRel(NonMatching, "d_a_obj_wood_pendulum"), + ActorRel(Matching, "d_a_obj_wood_pendulum"), ActorRel(NonMatching, "d_a_obj_wood_statue"), ActorRel(Matching, "d_a_obj_wsword"), ActorRel(NonMatching, "d_a_obj_yel_bag"), diff --git a/include/d/actor/d_a_obj_wood_pendulum.h b/include/d/actor/d_a_obj_wood_pendulum.h index 56f7bf06065..07c357cdd14 100644 --- a/include/d/actor/d_a_obj_wood_pendulum.h +++ b/include/d/actor/d_a_obj_wood_pendulum.h @@ -3,7 +3,6 @@ #include "d/d_com_inf_game.h" #include "f_op/f_op_actor_mng.h" -#include "f_op/f_op_actor_mng.h" /** * @ingroup actors-objects @@ -14,7 +13,6 @@ * */ class daObjWPndlm_c : public fopAc_ac_c { -public: public: /* 80D39418 */ void initBaseMtx(); /* 80D39454 */ void setBaseMtx(); @@ -41,5 +39,4 @@ private: STATIC_ASSERT(sizeof(daObjWPndlm_c) == 0x960); - #endif /* D_A_OBJ_WOOD_PENDULUM_H */ diff --git a/src/d/actor/d_a_obj_wood_pendulum.cpp b/src/d/actor/d_a_obj_wood_pendulum.cpp index f4eee97bfe3..6fb4817dba9 100644 --- a/src/d/actor/d_a_obj_wood_pendulum.cpp +++ b/src/d/actor/d_a_obj_wood_pendulum.cpp @@ -4,90 +4,25 @@ */ #include "d/actor/d_a_obj_wood_pendulum.h" -#include "dol2asm.h" - - -// -// Forward References: -// - -extern "C" static void CheckCreateHeap__FP10fopAc_ac_c(); -extern "C" void initBaseMtx__13daObjWPndlm_cFv(); -extern "C" void setBaseMtx__13daObjWPndlm_cFv(); -extern "C" void Create__13daObjWPndlm_cFv(); -extern "C" void CreateHeap__13daObjWPndlm_cFv(); -extern "C" void create__13daObjWPndlm_cFv(); -extern "C" void __ct__8dCcD_SphFv(); -extern "C" void __dt__8dCcD_SphFv(); -extern "C" void __dt__8cM3dGSphFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void execute__13daObjWPndlm_cFv(); -extern "C" void draw__13daObjWPndlm_cFv(); -extern "C" void _delete__13daObjWPndlm_cFv(); -extern "C" static void daObjWPndlm_Draw__FP13daObjWPndlm_c(); -extern "C" static void daObjWPndlm_Execute__FP13daObjWPndlm_c(); -extern "C" static void daObjWPndlm_Delete__FP13daObjWPndlm_c(); -extern "C" static void daObjWPndlm_Create__FP10fopAc_ac_c(); -extern "C" extern char const* const d_a_obj_wood_pendulum__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_SphFRC11dCcD_SrcSph(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void SetC__8cM3dGSphFRC4cXyz(); -extern "C" void __dl__FPv(); -extern "C" void __construct_array(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -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]; - -// -// Declarations: -// /* 80D393F8-80D39418 000078 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */ static int CheckCreateHeap(fopAc_ac_c* i_this) { - // NONMATCHING + return static_cast(i_this)->CreateHeap(); } /* 80D39418-80D39454 000098 003C+00 1/1 0/0 0/0 .text initBaseMtx__13daObjWPndlm_cFv */ void daObjWPndlm_c::initBaseMtx() { - // NONMATCHING + mpModel->setBaseScale(scale); + setBaseMtx(); } /* 80D39454-80D394CC 0000D4 0078+00 2/2 0/0 0/0 .text setBaseMtx__13daObjWPndlm_cFv */ void daObjWPndlm_c::setBaseMtx() { - // NONMATCHING + 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 + field_0x958); + mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); } -/* ############################################################################################## */ /* 80D39C88-80D39CC8 000000 0040+00 2/2 0/0 0/0 .rodata l_sph_src */ const static dCcD_SrcSph l_sph_src = { { @@ -98,12 +33,10 @@ const static dCcD_SrcSph l_sph_src = { }, // mObjInf { {{0.0f, 0.0f, 0.0f}, 150.0f} // mSph - } // mSphAttr + } // mSphAttr }; /* 80D39CC8-80D39D08 000040 0040+00 0/1 0/0 0/0 .rodata l_sph_src2 */ -#pragma push -#pragma force_active on const static dCcD_SrcSph l_sph_src2 = { { {0x0, {{0x0, 0x0, 0xc}, {0xd8fafdff, 0x11}, 0x0}}, // mObj @@ -113,33 +46,31 @@ const static dCcD_SrcSph l_sph_src2 = { }, // mObjInf { {{0.0f, 0.0f, 0.0f}, 120.0f} // mSph - } // mSphAttr + } // mSphAttr }; -#pragma pop - -/* 80D39D08-80D39D10 000080 0004+04 0/1 0/0 0/0 .rodata @3672 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_3672[1 + 1 /* padding */] = { - 0x43360B61, - /* padding */ - 0x00000000, -}; -COMPILER_STRIP_GATE(0x80D39D08, &lit_3672); -#pragma pop - -/* 80D39D10-80D39D18 000088 0008+00 0/1 0/0 0/0 .rodata @3674 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3674[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D39D10, &lit_3674); -#pragma pop /* 80D394CC-80D395C8 00014C 00FC+00 1/1 0/0 0/0 .text Create__13daObjWPndlm_cFv */ int daObjWPndlm_c::Create() { - // NONMATCHING + initBaseMtx(); + cullMtx = mpModel->getBaseTRMtx(); + + mStts.Init(0xff, 0xff, this); + mSph.Set(l_sph_src); + mSph.SetStts(&mStts); + for (int i = 0; i < 2; i++) { + field_0x6e8[i].Set(l_sph_src2); + field_0x6e8[i].SetStts(&mStts); + } + + fopAcM_setCullSizeBox2(this, mpModel->getModelData()); + + u8 arg0 = getArg0(); + if (arg0 == 0 || arg0 == 255) { + arg0 = 0; + } + field_0x958 = arg0 * 182.04445f; + + return 1; } /* 80D39D44-80D39D48 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ @@ -147,143 +78,127 @@ static char* l_arcName = "A_Turuki"; /* 80D395C8-80D39638 000248 0070+00 1/1 0/0 0/0 .text CreateHeap__13daObjWPndlm_cFv */ int daObjWPndlm_c::CreateHeap() { - // NONMATCHING + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 3); + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (mpModel == NULL) { + return 0; + } + return 1; } -/* ############################################################################################## */ -/* 80D39D48-80D39D68 -00001 0020+00 1/0 0/0 0/0 .data l_daObjWPndlm_Method */ -static actor_method_class l_daObjWPndlm_Method = { - (process_method_func)daObjWPndlm_Create__FP10fopAc_ac_c, - (process_method_func)daObjWPndlm_Delete__FP13daObjWPndlm_c, - (process_method_func)daObjWPndlm_Execute__FP13daObjWPndlm_c, - 0, - (process_method_func)daObjWPndlm_Draw__FP13daObjWPndlm_c, -}; - -/* 80D39D68-80D39D98 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_WoodPendulum */ -extern actor_process_profile_definition g_profile_Obj_WoodPendulum = { - fpcLy_CURRENT_e, // mLayerID - 7, // mListID - fpcPi_CURRENT_e, // mListPrio - PROC_Obj_WoodPendulum, // mProcName - &g_fpcLf_Method.base, // sub_method - sizeof(daObjWPndlm_c), // mSize - 0, // mSizeOther - 0, // mParameters - &g_fopAc_Method.base, // sub_method - 253, // mPriority - &l_daObjWPndlm_Method, // sub_method - 0x00040100, // mStatus - fopAc_ACTOR_e, // mActorType - fopAc_CULLBOX_CUSTOM_e, // cullType -}; - -/* 80D39D98-80D39DA4 000054 000C+00 4/4 0/0 0/0 .data __vt__8cM3dGSph */ -SECTION_DATA extern void* __vt__8cM3dGSph[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGSphFv, -}; - -/* 80D39DA4-80D39DB0 000060 000C+00 4/4 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - /* 80D39638-80D39798 0002B8 0160+00 1/1 0/0 0/0 .text create__13daObjWPndlm_cFv */ int daObjWPndlm_c::create() { - // NONMATCHING + int phase; + + fopAcM_SetupActor(this, daObjWPndlm_c); + + phase = dComIfG_resLoad(&mPhaseReq, l_arcName); + + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x1be0)) { + return cPhs_ERROR_e; + } else if (!Create()) { + return cPhs_ERROR_e; + } + } + + return phase; } -/* 80D39798-80D3981C 000418 0084+00 1/1 0/0 0/0 .text __ct__8dCcD_SphFv */ -// dCcD_Sph::dCcD_Sph() { -extern "C" void __ct__8dCcD_SphFv() { - // NONMATCHING -} - -/* 80D3981C-80D398E8 00049C 00CC+00 1/1 0/0 0/0 .text __dt__8dCcD_SphFv */ -// dCcD_Sph::~dCcD_Sph() { -extern "C" void __dt__8dCcD_SphFv() { - // NONMATCHING -} - -/* 80D398E8-80D39930 000568 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */ -// cM3dGSph::~cM3dGSph() { -extern "C" void __dt__8cM3dGSphFv() { - // NONMATCHING -} - -/* 80D39930-80D39978 0005B0 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80D39D18-80D39D30 000090 0018+00 0/0 0/0 0/0 .rodata @3826 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3826[24] = { - 0xC2, 0x70, 0x00, 0x00, 0xC4, 0x8C, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, - 0x42, 0xA0, 0x00, 0x00, 0xC4, 0x99, 0xC0, 0x00, 0xC2, 0x48, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D39D18, &lit_3826); -#pragma pop - -/* 80D39D30-80D39D34 0000A8 0004+00 0/1 0/0 0/0 .rodata @3860 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3860[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D39D30, &lit_3860); -#pragma pop - -/* 80D39D34-80D39D38 0000AC 0004+00 0/1 0/0 0/0 .rodata @3861 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3861 = -1200.0f; -COMPILER_STRIP_GATE(0x80D39D34, &lit_3861); -#pragma pop - /* 80D39978-80D39B68 0005F8 01F0+00 1/1 0/0 0/0 .text execute__13daObjWPndlm_cFv */ int daObjWPndlm_c::execute() { - // NONMATCHING + u8 arg1 = getArg1(); + if (arg1 == 0 || arg1 == 255) { + arg1 = 10; + } + if (field_0x958 > 0) { + field_0x95c = -arg1; + } else if (field_0x958 < 0) { + field_0x95c = arg1; + } else { + field_0x95c = 0; + } + field_0x95a += field_0x95c; + field_0x958 += field_0x95a; + setBaseMtx(); + + cXyz local_48(0, -1200, 0); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z + field_0x958); + mDoMtx_stack_c::multVec(&local_48, &local_48); + mSph.SetC(local_48); + dComIfG_Ccsp()->Set(&mSph); + + Vec lit_3826[2] = {{-60.0f, -1120.0f, 100.0f}, {80.0f, -1230.0f, -50.0f}}; + for (int i = 0; i < 2; i++) { + local_48 = lit_3826[i]; + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z + field_0x958); + mDoMtx_stack_c::multVec(&local_48, &local_48); + field_0x6e8[i].SetC(local_48); + dComIfG_Ccsp()->Set(&field_0x6e8[i]); + } + + return 1; } /* 80D39B68-80D39BCC 0007E8 0064+00 1/1 0/0 0/0 .text draw__13daObjWPndlm_cFv */ int daObjWPndlm_c::draw() { - // NONMATCHING + g_env_light.settingTevStruct(0, &this->current.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr); + mDoExt_modelUpdateDL(mpModel); + return 1; } /* 80D39BCC-80D39C00 00084C 0034+00 1/1 0/0 0/0 .text _delete__13daObjWPndlm_cFv */ int daObjWPndlm_c::_delete() { - // NONMATCHING + dComIfG_resDelete(&mPhaseReq, l_arcName); + return 1; } /* 80D39C00-80D39C20 000880 0020+00 1/0 0/0 0/0 .text daObjWPndlm_Draw__FP13daObjWPndlm_c */ static int daObjWPndlm_Draw(daObjWPndlm_c* i_this) { - // NONMATCHING + return static_cast(i_this)->draw(); } /* 80D39C20-80D39C40 0008A0 0020+00 1/0 0/0 0/0 .text daObjWPndlm_Execute__FP13daObjWPndlm_c */ static int daObjWPndlm_Execute(daObjWPndlm_c* i_this) { - // NONMATCHING + return static_cast(i_this)->execute(); } /* 80D39C40-80D39C60 0008C0 0020+00 1/0 0/0 0/0 .text daObjWPndlm_Delete__FP13daObjWPndlm_c */ static int daObjWPndlm_Delete(daObjWPndlm_c* i_this) { - // NONMATCHING + return static_cast(i_this)->_delete(); } /* 80D39C60-80D39C80 0008E0 0020+00 1/0 0/0 0/0 .text daObjWPndlm_Create__FP10fopAc_ac_c */ static int daObjWPndlm_Create(fopAc_ac_c* i_this) { - // NONMATCHING + return static_cast(i_this)->create(); } + +/* 80D39D48-80D39D68 -00001 0020+00 1/0 0/0 0/0 .data l_daObjWPndlm_Method */ +static actor_method_class l_daObjWPndlm_Method = { + (process_method_func)daObjWPndlm_Create, (process_method_func)daObjWPndlm_Delete, + (process_method_func)daObjWPndlm_Execute, 0, + (process_method_func)daObjWPndlm_Draw, +}; + +/* 80D39D68-80D39D98 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_WoodPendulum */ +extern actor_process_profile_definition g_profile_Obj_WoodPendulum = { + fpcLy_CURRENT_e, // mLayerID + 7, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_Obj_WoodPendulum, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(daObjWPndlm_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 253, // mPriority + &l_daObjWPndlm_Method, // sub_method + 0x00040100, // mStatus + fopAc_ACTOR_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +}; diff --git a/src/d/actor/d_a_tag_Lv6Gate.cpp b/src/d/actor/d_a_tag_Lv6Gate.cpp index dccb0df370b..59b0beae4c4 100644 --- a/src/d/actor/d_a_tag_Lv6Gate.cpp +++ b/src/d/actor/d_a_tag_Lv6Gate.cpp @@ -5,57 +5,10 @@ #include "d/actor/d_a_tag_Lv6Gate.h" #include "JSystem/J3DGraphBase/J3DMaterial.h" +#include "d/actor/d_a_player.h" #include "d/d_procname.h" #include "dol2asm.h" -// -// Forward References: -// - -extern "C" extern char const* const d_a_tag_Lv6Gate__stringBase0; - -// -// External References: -// - -extern "C" void fpcSch_JudgeForPName__FPvPv(void); -extern "C" void fopAcM_SearchByID__FUiPP10fopAc_ac_c(); -extern "C" void fopAcM_SearchByName__FsPP10fopAc_ac_c(); -extern "C" void fopAcM_delete__FUi(); -extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void push__14mDoMtx_stack_cFv(); -extern "C" void pop__14mDoMtx_stack_cFv(); -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void play__14mDoExt_baseAnmFv(); -extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void setSkipZev__14dEvt_control_cFPvPc(); -extern "C" void setObjectArchive__16dEvent_manager_cFPc(); -extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc(); -extern "C" void endCheck__16dEvent_manager_cFs(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getIsAddvance__16dEvent_manager_cFi(); -extern "C" void getMyNowCutName__16dEvent_manager_cFi(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void Release__4cBgSFP9dBgW_Base(); -extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c(); -extern "C" void __ct__5csXyzFsss(); -extern "C" void ChkUsed__9cBgW_BgIdCFv(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void _savegpr_24(); -extern "C" void _restgpr_24(); -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; - -// -// Declarations: -// - /* 80D4F898-80D4F8B8 000078 0020+00 1/1 0/0 0/0 .text createSolidHeap__FP10fopAc_ac_c */ static int createSolidHeap(fopAc_ac_c* i_this) { return static_cast(i_this)->createHeap(); @@ -83,7 +36,8 @@ int daTagLv6Gate_c::createHeap() { btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 19); mpBtk[0] = new mDoExt_btkAnm(); if (mpBtk[0] == NULL || - !mpBtk[0]->init(model_data, btk, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0, -1)) { + !mpBtk[0]->init(model_data, btk, TRUE, J3DFrameCtrl::LOOP_ONCE_e, 1.0f, 0, -1)) + { return 0; } @@ -105,11 +59,14 @@ int daTagLv6Gate_c::createHeap() { return 0; } - if (mBgW[0].Set((cBgD_t*)dComIfG_getObjectRes(l_arcName, 27), cBgW::MOVE_BG_e, &field_0x6f8[0])) { + if (mBgW[0].Set((cBgD_t*)dComIfG_getObjectRes(l_arcName, 27), cBgW::MOVE_BG_e, &field_0x6f8[0])) + { return 0; } - return checkEqual(mBgW[1].Set((cBgD_t*)dComIfG_getObjectRes(l_arcName, 28), cBgW::MOVE_BG_e, &field_0x6f8[1]), 0); + return checkEqual( + mBgW[1].Set((cBgD_t*)dComIfG_getObjectRes(l_arcName, 28), cBgW::MOVE_BG_e, &field_0x6f8[1]), + 0); } /* 80D4FBB8-80D4FBD8 000398 0020+00 1/0 0/0 0/0 .text daTagLv6Gate_Create__FP10fopAc_ac_c @@ -118,7 +75,6 @@ static int daTagLv6Gate_Create(fopAc_ac_c* i_this) { return static_cast(i_this)->create(); } -#ifdef NONMATCHING void daTagLv6Gate_c::seStair() { Vec se_pos = {0.0f, 1800.0f, -6800.0f}; mDoAud_seStart(Z2SE_OBJ_LV6_GATE_STAIR, &se_pos, 0, 0); @@ -133,37 +89,10 @@ void daTagLv6Gate_c::seGlassOn() { Vec se_pos = {0.0f, 2887.0f, -8330.0f}; mDoAud_seStart(Z2SE_OBJ_LV6_GATE_GLASS_ON, &se_pos, 0, 0); } -#else -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3803[12] = { - 0x00, 0x00, 0x00, 0x00, 0x44, 0xE1, 0x00, 0x00, 0xC5, 0xD4, 0x80, 0x00, -}; -COMPILER_STRIP_GATE(0x80D50930, &lit_3803); -#pragma pop - -/* 80D5093C-80D50948 000034 000C+00 0/1 0/0 0/0 .rodata @3839 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3839[12] = { - 0x00, 0x00, 0x00, 0x00, 0x45, 0x34, 0x70, 0x00, 0xC6, 0x02, 0x28, 0x00, -}; -COMPILER_STRIP_GATE(0x80D5093C, &lit_3839); -#pragma pop - -/* 80D50948-80D50954 000040 000C+00 0/1 0/0 0/0 .rodata @3847 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3847[12] = { - 0x00, 0x00, 0x00, 0x00, 0x45, 0x34, 0x70, 0x00, 0xC6, 0x02, 0x28, 0x00, -}; -COMPILER_STRIP_GATE(0x80D50948, &lit_3847); -#pragma pop -#endif void daTagLv6Gate_c::initBaseMtx() { fopAcM_SetMtx(this, mpModel[0]->getBaseTRMtx()); - + mDoMtx_stack_c::transS(0.0f, 0.0f, 0.0f); mDoMtx_stack_c::YrotM(0); MTXCopy(mDoMtx_stack_c::get(), field_0x6f8[0]); @@ -192,7 +121,7 @@ void daTagLv6Gate_c::create_init() { if (!fopAcM_isSwitch(this, getSwitchNo1())) { parentActorID = fopAcM_create(PROC_NPC_TKS, 2, &cXyz(-13.272481f, 2887.0f, -10373.718f), - fopAcM_GetRoomNo(this), &csXyz(0, 0x7FFF, 0), NULL, -1); + fopAcM_GetRoomNo(this), &csXyz(0, 0x7FFF, 0), NULL, -1); } } @@ -218,11 +147,7 @@ static int daTagLv6Gate_Execute(daTagLv6Gate_c* i_this) { return i_this->execute(); } -#ifdef NONMATCHING bool daTagLv6Gate_c::checkOpenArea() { - fopAc_ac_c* actor; - cXyz pos; - if (!fopAcM_isSwitch(this, getSwitchNo2())) { return false; } @@ -231,8 +156,10 @@ bool daTagLv6Gate_c::checkOpenArea() { mDoMtx_stack_c::inverse(); for (int i = 0; i < 2; i++) { - actor = (i == 0) ? daPy_getPlayerActorClass() : fopAcM_SearchByName(PROC_NPC_TKS); + fopAc_ac_c* actor = + (i == 0) ? daPy_getPlayerActorClass() : fopAcM_SearchByName(PROC_NPC_TKS); if (actor != NULL) { + cXyz pos; mDoMtx_stack_c::push(); mDoMtx_stack_c::multVec(fopAcM_GetPosition_p(actor), &pos); mDoMtx_stack_c::pop(); @@ -286,19 +213,19 @@ void daTagLv6Gate_c::cut4() { return; } - fopAcM_GetOldPosition_p(actor2) = pos; + *fopAcM_GetOldPosition_p(actor2) = pos; *fopAcM_GetPosition_p(actor2) = pos; } /* 80D4FEDC-80D5068C 0006BC 07B0+00 1/1 0/0 0/0 .text execute__14daTagLv6Gate_cFv */ +// NONMATCHING int daTagLv6Gate_c::execute() { - // Fake match? - dComIfG_play_c& play = g_dComIfG_gameInfo.getPlay(); - if (dComIfGp_event_runCheck() && !eventInfo.checkCommandTalk()) { - s32 cut_index = dComIfGp_evmng_getMyStaffId(l_arcName, NULL, 0); + dComIfG_inf_c& game_info = g_dComIfG_gameInfo; // Fake match? + + if (game_info.getPlay().getEvent().runCheck() && !eventInfo.checkCommandTalk()) { + s32 cut_index = dComIfGp_getEventManager().getMyStaffId(l_arcName, NULL, 0); if (cut_index != -1) { - // int* cut_name = (int*)dComIfGp_getEventManager().getMyNowCutName(cut_index); - int* cut_name = (int*)play.getEvtManager().getMyNowCutName(cut_index); + int* cut_name = (int*)dComIfGp_getEventManager().getMyNowCutName(cut_index); daPy_getPlayerActorClass()->onShieldBackBone(); @@ -338,7 +265,8 @@ int daTagLv6Gate_c::execute() { } if (eventInfo.checkCommandDemoAccrpt() && mEvtId != -1 && - dComIfGp_evmng_endCheck(mEvtId)) { + dComIfGp_evmng_endCheck(mEvtId)) + { dComIfGp_event_reset(); mEvtId = -1; } @@ -397,67 +325,6 @@ int daTagLv6Gate_c::execute() { return 1; } -#else -/* 80D5097C-80D50980 000074 0004+00 0/1 0/0 0/0 .rodata @4155 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4155 = 78.0f; -COMPILER_STRIP_GATE(0x80D5097C, &lit_4155); -#pragma pop - -/* 80D50980-80D50984 000078 0004+00 0/1 0/0 0/0 .rodata @4156 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4156 = -1.0f; -COMPILER_STRIP_GATE(0x80D50980, &lit_4156); -#pragma pop - -/* 80D50984-80D50988 00007C 0004+00 0/1 0/0 0/0 .rodata @4157 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4157 = 0x42EBB1D1; -COMPILER_STRIP_GATE(0x80D50984, &lit_4157); -#pragma pop - -/* 80D50988-80D5098C 000080 0004+00 0/1 0/0 0/0 .rodata @4158 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4158 = 1677.0f; -COMPILER_STRIP_GATE(0x80D50988, &lit_4158); -#pragma pop - -/* 80D5098C-80D50990 000084 0004+00 0/1 0/0 0/0 .rodata @4159 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4159 = 0xC59FB6B7; -COMPILER_STRIP_GATE(0x80D5098C, &lit_4159); -#pragma pop - -/* 80D50990-80D50994 000088 0004+00 0/1 0/0 0/0 .rodata @4160 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4160 = 12.75f; -COMPILER_STRIP_GATE(0x80D50990, &lit_4160); -#pragma pop - -/* 80D50994-80D50998 00008C 0004+00 0/1 0/0 0/0 .rodata @4161 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4161 = 5.75f; -COMPILER_STRIP_GATE(0x80D50994, &lit_4161); -#pragma pop - -/* 80D50998-80D50998 000090 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D509A0 = "LV6_GATE_APPEAR_SKIP"; -SECTION_DEAD static char const* const stringBase_80D509B5 = "LV6_GATE_APPEAR"; -#pragma pop - -int daTagLv6Gate_c::execute() { - // NONMATCHING -} -#endif /* 80D5068C-80D506AC 000E6C 0020+00 1/0 0/0 0/0 .text daTagLv6Gate_Draw__FP14daTagLv6Gate_c */ static int daTagLv6Gate_Draw(daTagLv6Gate_c* i_this) { @@ -527,7 +394,7 @@ extern actor_process_profile_definition g_profile_Tag_Lv6Gate = { 7, // mListID fpcPi_CURRENT_e, // mListPrio PROC_Tag_Lv6Gate, // mProcName - &g_fpcLf_Method.base, // sub_method + &g_fpcLf_Method.base, // sub_method sizeof(daTagLv6Gate_c), // mSize 0, // mSizeOther 0, // mParameters