diff --git a/configure.py b/configure.py index dc866d1dc51..8ef8f010c20 100755 --- a/configure.py +++ b/configure.py @@ -1897,7 +1897,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_obj_geyser"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_glowSphere"), ActorRel(NonMatching, "d_a_obj_gm"), - ActorRel(NonMatching, "d_a_obj_goGate"), + ActorRel(MatchingFor("GZ2E01"), "d_a_obj_goGate"), ActorRel(NonMatching, "d_a_obj_gomikabe"), ActorRel(NonMatching, "d_a_obj_gra2"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_graWall"), diff --git a/include/d/actor/d_a_obj_goGate.h b/include/d/actor/d_a_obj_goGate.h index 310de04d2d2..01fff371127 100644 --- a/include/d/actor/d_a_obj_goGate.h +++ b/include/d/actor/d_a_obj_goGate.h @@ -1,7 +1,10 @@ #ifndef D_A_OBJ_GOGATE_H #define D_A_OBJ_GOGATE_H +#include "SSystem/SComponent/c_phase.h" +#include "d/d_bg_s_movebg_actor.h" #include "f_op/f_op_actor_mng.h" +#include "m_Do/m_Do_hostIO.h" /** * @ingroup actors-objects @@ -11,12 +14,18 @@ * @details * */ -class daGoGate_c : public fopAc_ac_c { +class daGoGate_c : public dBgS_MoveBgActor { public: + enum Mode { + MODE_WAIT = 0, + MODE_OPEN = 1, + MODE_CLOSE = 2, + }; + /* 80BFD724 */ void setBaseMtx(); - /* 80BFD7C0 */ void CreateHeap(); - /* 80BFD82C */ void create(); - /* 80BFD984 */ void Execute(f32 (**)[3][4]); + /* 80BFD7C0 */ int CreateHeap(); + /* 80BFD82C */ cPhs__Step create(); + /* 80BFD984 */ int Execute(Mtx**); /* 80BFD9D4 */ void moveGate(); /* 80BFDAD8 */ void init_modeWait(); /* 80BFDAE4 */ void modeWait(); @@ -25,20 +34,36 @@ public: /* 80BFDC04 */ void init_modeMoveClose(); /* 80BFDC10 */ void modeMoveClose(); /* 80BFDD20 */ void setSe(); - /* 80BFDDDC */ void Draw(); - /* 80BFDE80 */ void Delete(); + /* 80BFDDDC */ int Draw(); + /* 80BFDE80 */ int Delete(); + + u32 getLR() { return fopAcM_GetParamBit(this, 8, 8); } + u32 getSw() { return fopAcM_GetParamBit(this, 0, 8); } private: - /* 0x568 */ u8 field_0x568[0x5b8 - 0x568]; + /* 0x5A0 */ request_of_phase_process_class mPhase; + /* 0x5A8 */ J3DModel* mpModel; + /* 0x5AC */ u8 mMode; + /* 0x5AD */ u8 mSw; + /* 0x5AE */ u8 mOpen; + /* 0x5AF */ u8 mLR; + /* 0x5B0 */ f32 field_0x5b0; + /* 0x5B4 */ f32 field_0x5b4; }; STATIC_ASSERT(sizeof(daGoGate_c) == 0x5b8); -class daGoGate_HIO_c { +class daGoGate_HIO_c : public mDoHIO_entry_c { public: /* 80BFD6AC */ daGoGate_HIO_c(); - /* 80BFDF3C */ ~daGoGate_HIO_c(); + /* 80BFDF3C */ virtual ~daGoGate_HIO_c() {} + + void genMessage(JORMContext*); + + /* 0x8 */ f32 mSpeed; + /* 0xc */ u8 mShockStrength; }; +STATIC_ASSERT(sizeof(daGoGate_HIO_c) == 12); #endif /* D_A_OBJ_GOGATE_H */ diff --git a/src/d/actor/d_a_obj_goGate.cpp b/src/d/actor/d_a_obj_goGate.cpp index cdcd3babbac..1e322ecc098 100644 --- a/src/d/actor/d_a_obj_goGate.cpp +++ b/src/d/actor/d_a_obj_goGate.cpp @@ -1,390 +1,219 @@ /** * @file d_a_obj_goGate.cpp - * -*/ + * + */ #include "d/actor/d_a_obj_goGate.h" -#include "dol2asm.h" +#include "d/d_com_inf_game.h" - - -// -// Forward References: -// - -extern "C" void __ct__14daGoGate_HIO_cFv(); -extern "C" void __dt__14mDoHIO_entry_cFv(); -extern "C" void setBaseMtx__10daGoGate_cFv(); -extern "C" void CreateHeap__10daGoGate_cFv(); -extern "C" void create__10daGoGate_cFv(); -extern "C" void Execute__10daGoGate_cFPPA3_A4_f(); -extern "C" void moveGate__10daGoGate_cFv(); -extern "C" void init_modeWait__10daGoGate_cFv(); -extern "C" void modeWait__10daGoGate_cFv(); -extern "C" void init_modeMoveOpen__10daGoGate_cFv(); -extern "C" void modeMoveOpen__10daGoGate_cFv(); -extern "C" void init_modeMoveClose__10daGoGate_cFv(); -extern "C" void modeMoveClose__10daGoGate_cFv(); -extern "C" void setSe__10daGoGate_cFv(); -extern "C" void Draw__10daGoGate_cFv(); -extern "C" void Delete__10daGoGate_cFv(); -extern "C" static void daGoGate_Draw__FP10daGoGate_c(); -extern "C" static void daGoGate_Execute__FP10daGoGate_c(); -extern "C" static void daGoGate_Delete__FP10daGoGate_c(); -extern "C" static void daGoGate_Create__FP10fopAc_ac_c(); -extern "C" void __dt__14daGoGate_HIO_cFv(); -extern "C" void __sinit_d_a_obj_goGate_cpp(); -extern "C" extern char const* const d_a_obj_goGate__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_ZXYrotS__FPA4_fsss(); -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void transM__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 isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void StartShock__12dVibration_cFii4cXyz(); -extern "C" void dBgS_MoveBGProc_TypicalRotY__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 settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void cLib_addCalc__FPfffff(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void __dl__FPv(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); -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: -// - -/* ############################################################################################## */ -/* 80BFDFE8-80BFDFEC 000000 0004+00 5/5 0/0 0/0 .rodata @3627 */ -SECTION_RODATA static f32 const lit_3627 = 2.0f; -COMPILER_STRIP_GATE(0x80BFDFE8, &lit_3627); - -/* 80BFE010-80BFE01C 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80BFE01C-80BFE030 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 */] = { - 0x02000201, - /* padding */ - 0x40080000, - 0x00000000, - 0x3FE00000, - 0x00000000, -}; -#pragma pop - -/* 80BFE030-80BFE03C -00001 000C+00 0/1 0/0 0/0 .data @3727 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3727[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeWait__10daGoGate_cFv, -}; -#pragma pop - -/* 80BFE03C-80BFE048 -00001 000C+00 0/1 0/0 0/0 .data @3728 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3728[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeMoveOpen__10daGoGate_cFv, -}; -#pragma pop - -/* 80BFE048-80BFE054 -00001 000C+00 0/1 0/0 0/0 .data @3729 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3729[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)modeMoveClose__10daGoGate_cFv, -}; -#pragma pop - -/* 80BFE054-80BFE078 000044 0024+00 0/1 0/0 0/0 .data mode_proc$3726 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 mode_proc[36] = { - 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, -}; -#pragma pop - -/* 80BFE078-80BFE098 -00001 0020+00 1/0 0/0 0/0 .data l_daGoGate_Method */ -static actor_method_class l_daGoGate_Method = { - (process_method_func)daGoGate_Create__FP10fopAc_ac_c, - (process_method_func)daGoGate_Delete__FP10daGoGate_c, - (process_method_func)daGoGate_Execute__FP10daGoGate_c, - 0, - (process_method_func)daGoGate_Draw__FP10daGoGate_c, -}; - -/* 80BFE098-80BFE0C8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_GoGate */ -extern actor_process_profile_definition g_profile_Obj_GoGate = { - fpcLy_CURRENT_e, // mLayerID - 3, // mListID - fpcPi_CURRENT_e, // mListPrio - PROC_Obj_GoGate, // mProcName - &g_fpcLf_Method.base, // sub_method - sizeof(daGoGate_c), // mSize - 0, // mSizeOther - 0, // mParameters - &g_fopAc_Method.base, // sub_method - 504, // mPriority - &l_daGoGate_Method, // sub_method - 0x00040000, // mStatus - fopAc_ACTOR_e, // mActorType - fopAc_CULLBOX_CUSTOM_e, // cullType -}; - -/* 80BFE0C8-80BFE0F0 0000B8 0028+00 1/1 0/0 0/0 .data __vt__10daGoGate_c */ -SECTION_DATA extern void* __vt__10daGoGate_c[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__10daGoGate_cFv, - (void*)Create__16dBgS_MoveBgActorFv, - (void*)Execute__10daGoGate_cFPPA3_A4_f, - (void*)Draw__10daGoGate_cFv, - (void*)Delete__10daGoGate_cFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, -}; - -/* 80BFE0F0-80BFE0FC 0000E0 000C+00 2/2 0/0 0/0 .data __vt__14daGoGate_HIO_c */ -SECTION_DATA extern void* __vt__14daGoGate_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14daGoGate_HIO_cFv, -}; - -/* 80BFE0FC-80BFE108 0000EC 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, -}; +UNK_REL_DATA /* 80BFD6AC-80BFD6DC 0000EC 0030+00 1/1 0/0 0/0 .text __ct__14daGoGate_HIO_cFv */ daGoGate_HIO_c::daGoGate_HIO_c() { - // NONMATCHING + mSpeed = 2.0f; + mShockStrength = 3; } -/* 80BFD6DC-80BFD724 00011C 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 -} - -/* ############################################################################################## */ -/* 80BFDFEC-80BFDFF0 000004 0004+00 1/5 0/0 0/0 .rodata @3648 */ -SECTION_RODATA static u8 const lit_3648[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80BFDFEC, &lit_3648); - /* 80BFD724-80BFD7C0 000164 009C+00 2/2 0/0 0/0 .text setBaseMtx__10daGoGate_cFv */ void daGoGate_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); + mDoMtx_stack_c::transM(field_0x5b4, 0.0f, 0.0f); -/* ############################################################################################## */ -/* 80BFE008-80BFE008 000020 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80BFE008 = "P_Ggate"; -#pragma pop + mpModel->setBaseScale(scale); + mpModel->setBaseTRMtx(mDoMtx_stack_c::get()); +} /* 80BFD7C0-80BFD82C 000200 006C+00 1/0 0/0 0/0 .text CreateHeap__10daGoGate_cFv */ -void daGoGate_c::CreateHeap() { - // NONMATCHING +int daGoGate_c::CreateHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("P_Ggate", 4); + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + return mpModel ? 1 : 0; } -/* ############################################################################################## */ -/* 80BFDFF0-80BFDFF4 000008 0004+00 0/1 0/0 0/0 .rodata @3712 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3712 = -250.0f; -COMPILER_STRIP_GATE(0x80BFDFF0, &lit_3712); -#pragma pop - -/* 80BFDFF4-80BFDFF8 00000C 0004+00 0/1 0/0 0/0 .rodata @3713 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3713 = 250.0f; -COMPILER_STRIP_GATE(0x80BFDFF4, &lit_3713); -#pragma pop - /* 80BFD82C-80BFD984 00026C 0158+00 1/1 0/0 0/0 .text create__10daGoGate_cFv */ -void daGoGate_c::create() { - // NONMATCHING +cPhs__Step daGoGate_c::create() { + fopAcM_SetupActor(this, daGoGate_c); + + cPhs__Step phase = static_cast(dComIfG_resLoad(&mPhase, "P_Ggate")); + if (phase == cPhs_COMPLEATE_e) { + if (MoveBGCreate("P_Ggate", 7, dBgS_MoveBGProc_TypicalRotY, 0x1c00, NULL) == cPhs_ERROR_e) { + return cPhs_ERROR_e; + } + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); + fopAcM_setCullSizeBox2(this, mpModel->getModelData()); + mSw = getSw(); + mOpen = fopAcM_isSwitch(this, mSw); + mLR = getLR(); + float tmp; + if (mLR == 0) { + tmp = -250.0f; + } else { + tmp = 250.0f; + } + field_0x5b0 = tmp; + field_0x5b4 = 0.0f; + if (mOpen != 0) { + field_0x5b4 = field_0x5b0; + } + MoveBGExecute(); + init_modeWait(); + setBaseMtx(); + } + return phase; } /* 80BFD984-80BFD9D4 0003C4 0050+00 1/0 0/0 0/0 .text Execute__10daGoGate_cFPPA3_A4_f */ -void daGoGate_c::Execute(f32 (**param_0)[3][4]) { - // NONMATCHING +int daGoGate_c::Execute(Mtx** param_0) { + moveGate(); + *param_0 = &mpModel->getBaseTRMtx(); + setBaseMtx(); + + return 1; } -/* ############################################################################################## */ -/* 80BFE110-80BFE11C 000008 000C+00 1/1 0/0 0/0 .bss @3621 */ -static u8 lit_3621[12]; - /* 80BFE11C-80BFE128 000014 000C+00 4/4 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[12]; +static daGoGate_HIO_c l_HIO; -/* 80BFE128-80BFE12C 000020 0004+00 1/1 0/0 0/0 .bss None */ -static u8 data_80BFE128[4]; - -/* 80BFD9D4-80BFDAD8 000414 0104+00 1/1 0/0 0/0 .text moveGate__10daGoGate_cFv */ +/* 80BFD9D4-80BFDAD8 000414 0104+00 1/1 0/0 0/0 .text + // NONMATCHING moveGate__10daGoGate_cFv */ void daGoGate_c::moveGate() { - // NONMATCHING + typedef void (daGoGate_c::*daGoGate_modeFunc)(); + static daGoGate_modeFunc mode_proc[] = { + &daGoGate_c::modeWait, + &daGoGate_c::modeMoveOpen, + &daGoGate_c::modeMoveClose, + }; + + u8 was_open = mOpen; + mOpen = fopAcM_isSwitch(this, mSw); + if (mOpen != was_open) { + if (mOpen) { + init_modeMoveOpen(); + } else { + init_modeMoveClose(); + } + } + + (this->*mode_proc[mMode])(); } /* 80BFDAD8-80BFDAE4 000518 000C+00 3/3 0/0 0/0 .text init_modeWait__10daGoGate_cFv */ void daGoGate_c::init_modeWait() { - // NONMATCHING + mMode = MODE_WAIT; } /* 80BFDAE4-80BFDAE8 000524 0004+00 1/0 0/0 0/0 .text modeWait__10daGoGate_cFv */ -void daGoGate_c::modeWait() { - /* empty function */ -} +void daGoGate_c::modeWait() {} /* 80BFDAE8-80BFDAF4 000528 000C+00 1/1 0/0 0/0 .text init_modeMoveOpen__10daGoGate_cFv */ void daGoGate_c::init_modeMoveOpen() { - // NONMATCHING + mMode = MODE_OPEN; } -/* ############################################################################################## */ -/* 80BFDFF8-80BFDFFC 000010 0004+00 0/3 0/0 0/0 .rodata @3780 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3780 = 1.0f; -COMPILER_STRIP_GATE(0x80BFDFF8, &lit_3780); -#pragma pop - -/* 80BFDFFC-80BFE000 000014 0004+00 0/3 0/0 0/0 .rodata @3781 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3781 = -1.0f; -COMPILER_STRIP_GATE(0x80BFDFFC, &lit_3781); -#pragma pop - -/* 80BFE000-80BFE004 000018 0004+00 0/2 0/0 0/0 .rodata @3782 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3782 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x80BFE000, &lit_3782); -#pragma pop - -/* 80BFE004-80BFE008 00001C 0004+00 0/2 0/0 0/0 .rodata @3783 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3783 = 0.5f; -COMPILER_STRIP_GATE(0x80BFE004, &lit_3783); -#pragma pop - /* 80BFDAF4-80BFDC04 000534 0110+00 1/0 0/0 0/0 .text modeMoveOpen__10daGoGate_cFv */ void daGoGate_c::modeMoveOpen() { - // NONMATCHING + mDoMtx_stack_c::ZXYrotS(shape_angle.x, shape_angle.y, shape_angle.z); + cXyz local(field_0x5b0, 0.0f, 0.0f); + mDoMtx_stack_c::multVec(&local, &local); + local += current.pos; + mDoAud_seStartLevel(Z2SE_OBJ_GORONGATE_MOVE, ¤t.pos, 0, + dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + if (cLib_addCalc(&field_0x5b4, field_0x5b0, 0.2f, l_HIO.mSpeed, 0.5f) == 0.0f) { + setSe(); + init_modeWait(); + } } /* 80BFDC04-80BFDC10 000644 000C+00 1/1 0/0 0/0 .text init_modeMoveClose__10daGoGate_cFv */ void daGoGate_c::init_modeMoveClose() { - // NONMATCHING + mMode = MODE_CLOSE; } /* 80BFDC10-80BFDD20 000650 0110+00 1/0 0/0 0/0 .text modeMoveClose__10daGoGate_cFv */ void daGoGate_c::modeMoveClose() { - // NONMATCHING + mDoMtx_stack_c::ZXYrotS(shape_angle.x, shape_angle.y, shape_angle.z); + + cXyz local(field_0x5b0, 0.0f, 0.0f); + mDoMtx_stack_c::multVec(&local, &local); + local += current.pos; + + mDoAud_seStartLevel(Z2SE_OBJ_GORONGATE_MOVE, ¤t.pos, 0, + dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + + if (cLib_addCalc(&field_0x5b4, 0.0f, 0.2f, l_HIO.mSpeed, 0.5f) == 0.0f) { + setSe(); + init_modeWait(); + } } /* 80BFDD20-80BFDDDC 000760 00BC+00 2/2 0/0 0/0 .text setSe__10daGoGate_cFv */ void daGoGate_c::setSe() { - // NONMATCHING + mDoAud_seStart(Z2SE_OBJ_GORONGATE_STOP, ¤t.pos, 0, + dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + dComIfGp_getVibration().StartShock(l_HIO.mShockStrength, 0xf, cXyz(0.0f, 1.0f, 0.0f)); } /* 80BFDDDC-80BFDE80 00081C 00A4+00 1/0 0/0 0/0 .text Draw__10daGoGate_cFv */ -void daGoGate_c::Draw() { - // NONMATCHING +int daGoGate_c::Draw() { + g_env_light.settingTevStruct(16, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr); + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(mpModel); + dComIfGd_setList(); + return 1; } /* 80BFDE80-80BFDEB0 0008C0 0030+00 1/0 0/0 0/0 .text Delete__10daGoGate_cFv */ -void daGoGate_c::Delete() { - // NONMATCHING +int daGoGate_c::Delete() { + dComIfG_resDelete(&mPhase, "P_Ggate"); + return 1; } /* 80BFDEB0-80BFDEDC 0008F0 002C+00 1/0 0/0 0/0 .text daGoGate_Draw__FP10daGoGate_c */ -static void daGoGate_Draw(daGoGate_c* param_0) { - // NONMATCHING +static int daGoGate_Draw(daGoGate_c* i_this) { + return i_this->Draw(); } /* 80BFDEDC-80BFDEFC 00091C 0020+00 1/0 0/0 0/0 .text daGoGate_Execute__FP10daGoGate_c */ -static void daGoGate_Execute(daGoGate_c* param_0) { - // NONMATCHING +static int daGoGate_Execute(daGoGate_c* i_this) { + return i_this->MoveBGExecute(); } /* 80BFDEFC-80BFDF1C 00093C 0020+00 1/0 0/0 0/0 .text daGoGate_Delete__FP10daGoGate_c */ -static void daGoGate_Delete(daGoGate_c* param_0) { - // NONMATCHING +static int daGoGate_Delete(daGoGate_c* i_this) { + return i_this->MoveBGDelete(); } /* 80BFDF1C-80BFDF3C 00095C 0020+00 1/0 0/0 0/0 .text daGoGate_Create__FP10fopAc_ac_c */ -static void daGoGate_Create(fopAc_ac_c* param_0) { - // NONMATCHING +static int daGoGate_Create(fopAc_ac_c* i_this) { + fopAcM_GetID(i_this); + return static_cast(i_this)->create(); } -/* 80BFDF3C-80BFDF98 00097C 005C+00 2/1 0/0 0/0 .text __dt__14daGoGate_HIO_cFv */ -daGoGate_HIO_c::~daGoGate_HIO_c() { - // NONMATCHING -} +/* 80BFE078-80BFE098 -00001 0020+00 1/0 0/0 0/0 .data l_daGoGate_Method */ +static actor_method_class l_daGoGate_Method = { + (process_method_func)daGoGate_Create, (process_method_func)daGoGate_Delete, + (process_method_func)daGoGate_Execute, (process_method_func)NULL, + (process_method_func)daGoGate_Draw, +}; -/* 80BFDF98-80BFDFD4 0009D8 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_goGate_cpp */ -void __sinit_d_a_obj_goGate_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80BFDF98, __sinit_d_a_obj_goGate_cpp); -#pragma pop - -/* 80BFE008-80BFE008 000020 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 80BFE098-80BFE0C8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_GoGate */ +extern actor_process_profile_definition g_profile_Obj_GoGate = { + fpcLy_CURRENT_e, // mLayerID + 3, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_Obj_GoGate, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(daGoGate_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 504, // mPriority + &l_daGoGate_Method, // sub_method + 0x00040000, // mStatus + fopAc_ACTOR_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +};