d_a_obj_wood_pendulum done (#2257)

* d_a_obj_wood_pendulum done

* Fix setBaseMtx, Vec array
This commit is contained in:
hev7 2024-12-06 01:19:03 +00:00 committed by GitHub
parent e510f33414
commit eebbf9a645
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 149 additions and 370 deletions

View File

@ -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

View File

@ -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"),

View File

@ -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 */

View File

@ -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<daObjWPndlm_c*>(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<daObjWPndlm_c*>(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<daObjWPndlm_c*>(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<daObjWPndlm_c*>(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<daObjWPndlm_c*>(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
};

View File

@ -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<daTagLv6Gate_c*>(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<daTagLv6Gate_c*>(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