d_a_tag_Lv8Gate OK (#2079)

* Initial pass of d_a_tag_Lv8Gate, lots to do still

* Another decomp pass, most are close but several nonmatching still

* All functions match, needs final cleanup pass

* Decomp OK

* Format pass and some minor cleanup

* Another minor cleanup pass

* Forgot to format, updating progress doc

* Removing asm files

* Removing empty ctor (not needed for match)

* Implementing PR suggestions

* Tiny bit more cleanup based on PR feedback

---------

Co-authored-by: GinNoOokami <noreply>
This commit is contained in:
Jeff Padgham
2024-02-28 01:41:01 -08:00
committed by GitHub
parent 0e41460e3e
commit 555e4bc19e
11 changed files with 242 additions and 928 deletions
+207 -339
View File
@@ -4,379 +4,247 @@
//
#include "rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate.h"
#include "dol2asm.h"
//
// Types:
//
struct request_of_phase_process_class {};
struct cXyz {};
struct mDoMtx_stack_c {
/* 8000CD64 */ void transS(cXyz const&);
static u8 now[48];
};
struct J3DModelData {};
struct J3DAnmTransform {};
struct mDoExt_bckAnm {
/* 8000D7DC */ void init(J3DAnmTransform*, int, int, f32, s16, s16, bool);
/* 8000D9CC */ void entry(J3DModelData*, f32);
};
struct mDoExt_baseAnm {
/* 8000D428 */ void play();
};
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daTagLv8Gate_c {
/* 80D51C58 */ void createHeap();
/* 80D51F48 */ void execute();
};
struct dSv_event_flag_c {
static u8 saveBitLabels[1644 + 4 /* padding */];
};
struct dSv_event_c {
/* 800349BC */ void isEventBit(u16) const;
};
struct dKy_tevstr_c {};
struct dScnKy_env_light_c {
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
};
struct dRes_info_c {};
struct dRes_control_c {
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
};
struct dEvt_control_c {
/* 80042468 */ void reset();
/* 80042914 */ void setSkipProc(void*, int (*)(void*, int), int);
};
struct dEvent_manager_c {
/* 80046800 */ void setObjectArchive(char*);
/* 80047758 */ void getEventIdx(fopAc_ac_c*, char const*, u8);
/* 80047A78 */ void endCheck(s16);
/* 80047B1C */ void getMyStaffId(char const*, fopAc_ac_c*, int);
/* 80047D4C */ void getIsAddvance(int);
/* 80047F5C */ void getMyNowCutName(int);
/* 8004817C */ void cutEnd(int);
};
struct dAttention_c {
/* 80070880 */ void getActionBtnB();
/* 80073734 */ void ActionTarget(s32);
};
struct JAISoundID {};
struct Vec {};
struct Z2SeMgr {
/* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
};
struct Z2AudioMgr {
static u8 mAudioMgrPtr[4 + 4 /* padding */];
};
struct J3DModel {};
struct J3DFrameCtrl {
/* 803283FC */ void init(s16);
/* 80D51D80 */ ~J3DFrameCtrl();
};
//
// Forward References:
//
extern "C" static void createSolidHeap__FP10fopAc_ac_c();
extern "C" void createHeap__14daTagLv8Gate_cFv();
extern "C" void __dt__12J3DFrameCtrlFv();
extern "C" static void daTagLv8Gate_Create__FP10fopAc_ac_c();
extern "C" static void daTagLv8Gate_Execute__FP14daTagLv8Gate_c();
extern "C" void execute__14daTagLv8Gate_cFv();
extern "C" static void daTagLv8Gate_Draw__FP14daTagLv8Gate_c();
extern "C" static bool daTagLv8Gate_IsDelete__FP14daTagLv8Gate_c();
extern "C" static void daTagLv8Gate_Delete__FP14daTagLv8Gate_c();
extern "C" extern char const* const d_a_tag_Lv8Gate__stringBase0;
//
// External References:
//
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
extern "C" void play__14mDoExt_baseAnmFv();
extern "C" void init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb();
extern "C" void entry__13mDoExt_bckAnmFP12J3DModelDataf();
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcIt_Judge__FPFPvPv_PvPv();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff();
extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs();
extern "C" void fopAcM_cancelCarryNow__FP10fopAc_ac_c();
extern "C" void fpcSch_JudgeForPName__FPvPv();
extern "C" void dStage_changeScene__FifUlScsi();
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 reset__14dEvt_control_cFv();
extern "C" void dEv_noFinishSkipProc__FPvi();
extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii();
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 getActionBtnB__12dAttention_cFv();
extern "C" void ActionTarget__12dAttention_cFl();
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void init__12J3DFrameCtrlFs();
extern "C" void PSMTXCopy();
extern "C" void PSMTXMultVec();
extern "C" void _savegpr_24();
extern "C" void _savegpr_29();
extern "C" void _restgpr_24();
extern "C" void _restgpr_29();
extern "C" void strcmp();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" extern u8 g_env_light[4880];
extern "C" extern u8 j3dSys[284];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "d/a/d_a_player.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
#include "rel/d/a/obj/mirror/d_a_obj_mirror_table/d_a_obj_mirror_table.h"
//
// Declarations:
//
static char* l_arcName = "Lv8Gate";
/* 80D51C38-80D51C58 000078 0020+00 1/1 0/0 0/0 .text createSolidHeap__FP10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void createSolidHeap(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate/createSolidHeap__FP10fopAc_ac_c.s"
static int createSolidHeap(fopAc_ac_c* i_this) {
return static_cast<daTagLv8Gate_c*>(i_this)->createHeap();
}
#pragma pop
/* ############################################################################################## */
/* 80D524CC-80D524D0 000000 0004+00 3/3 0/0 0/0 .rodata @3749 */
SECTION_RODATA static f32 const lit_3749 = 1.0f;
COMPILER_STRIP_GATE(0x80D524CC, &lit_3749);
daTagLv8Gate_c::~daTagLv8Gate_c() {
dComIfG_resDelete(&mPhaseReq, l_arcName);
}
/* 80D524F0-80D524F0 000024 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80D524F0 = "Lv8Gate";
SECTION_DEAD static char const* const stringBase_80D524F8 = "D_MN08";
#pragma pop
inline void daTagLv8Gate_c::initBaseMtx() {
if (mpModel != NULL) {
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::YrotM(shape_angle.y + 0x8000);
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
}
}
/* 80D52510-80D52514 -00001 0004+00 4/4 0/0 0/0 .data l_arcName */
SECTION_DATA static void* l_arcName = (void*)&d_a_tag_Lv8Gate__stringBase0;
inline void daTagLv8Gate_c::create_init() {
fopAcM_setCullSizeBox(this, -100.0f, -50.0f, -100.0f, 100.0f, 220.0f, 100.0f);
fopAcM_OnCarryType(this, fopAcM_CARRY_LIGHT);
/* 80D52514-80D52534 -00001 0020+00 1/0 0/0 0/0 .data l_daTagLv8Gate_Method */
SECTION_DATA static void* l_daTagLv8Gate_Method[8] = {
(void*)daTagLv8Gate_Create__FP10fopAc_ac_c,
(void*)daTagLv8Gate_Delete__FP14daTagLv8Gate_c,
(void*)daTagLv8Gate_Execute__FP14daTagLv8Gate_c,
(void*)daTagLv8Gate_IsDelete__FP14daTagLv8Gate_c,
(void*)daTagLv8Gate_Draw__FP14daTagLv8Gate_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
mAttentionInfo.mFlags = 0x10;
mAttentionInfo.field_0x0[4] = 90;
/* 80D52534-80D52564 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Lv8Gate */
SECTION_DATA extern void* g_profile_Tag_Lv8Gate[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x02CB0000, (void*)&g_fpcLf_Method,
(void*)0x0000057C, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x01080000, (void*)&l_daTagLv8Gate_Method,
(void*)0x00040000, (void*)0x000E0000,
};
mEventID = -1;
/* 80D52564-80D52570 000054 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,
};
initBaseMtx();
}
inline int daTagLv8Gate_c::create() {
fopAcM_SetupActor(this, daTagLv8Gate_c);
cPhs__Step step;
if (!i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
step = cPhs_ERROR_e;
} else {
step = (cPhs__Step)dComIfG_resLoad(&mPhaseReq, l_arcName);
if (step == cPhs_COMPLEATE_e) {
if (!fopAcM_entrySolidHeap(this, createSolidHeap, 0x1600)) {
step = cPhs_ERROR_e;
} else {
create_init();
}
}
}
return step;
}
inline int daTagLv8Gate_c::draw() {
if (mpModel != NULL) {
for (u16 index = 0; index < 3; index++) {
J3DMaterial* material = mpModel->getModelData()->getMaterialNodePointer(index);
material->getTevKColor(1)->r = 128;
material->getTevKColor(1)->g = 120;
material->getTevKColor(1)->b = 100;
}
g_env_light.settingTevStruct(0x10, &current.pos, &mTevStr);
g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr);
if (mpBck != NULL) {
mpBck->entry(mpModel->getModelData());
}
dComIfGd_setListBG();
mDoExt_modelUpdateDL(mpModel);
dComIfGd_setList();
if (mpBck != NULL) {
mpModel->getModelData()->getJointNodePointer(0)->setMtxCalc(NULL);
}
}
return TRUE;
}
/* 80D51C58-80D51D80 000098 0128+00 1/1 0/0 0/0 .text createHeap__14daTagLv8Gate_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagLv8Gate_c::createHeap() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate/createHeap__14daTagLv8Gate_cFv.s"
int daTagLv8Gate_c::createHeap() {
if (strcmp(dComIfGp_getStartStageName(), "D_MN08") == 0) {
J3DModelData* model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 8);
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084);
J3DAnmTransform* bck = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 5);
mpBck = new mDoExt_bckAnm();
if (mpBck == NULL ||
!mpBck->init(bck, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1, false))
{
return 0;
}
}
return 1;
}
#pragma pop
/* 80D51D80-80D51DC8 0001C0 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DFrameCtrl::~J3DFrameCtrl() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate/__dt__12J3DFrameCtrlFv.s"
}
#pragma pop
/* ############################################################################################## */
/* 80D524D0-80D524D4 000004 0004+00 0/1 0/0 0/0 .rodata @3805 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3805 = -100.0f;
COMPILER_STRIP_GATE(0x80D524D0, &lit_3805);
#pragma pop
/* 80D524D4-80D524D8 000008 0004+00 0/1 0/0 0/0 .rodata @3806 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3806 = -50.0f;
COMPILER_STRIP_GATE(0x80D524D4, &lit_3806);
#pragma pop
/* 80D524D8-80D524DC 00000C 0004+00 0/1 0/0 0/0 .rodata @3807 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3807 = 100.0f;
COMPILER_STRIP_GATE(0x80D524D8, &lit_3807);
#pragma pop
/* 80D524DC-80D524E0 000010 0004+00 0/1 0/0 0/0 .rodata @3808 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3808 = 220.0f;
COMPILER_STRIP_GATE(0x80D524DC, &lit_3808);
#pragma pop
/* 80D51DC8-80D51F28 000208 0160+00 1/0 0/0 0/0 .text daTagLv8Gate_Create__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagLv8Gate_Create(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate/daTagLv8Gate_Create__FP10fopAc_ac_c.s"
static int daTagLv8Gate_Create(fopAc_ac_c* i_this) {
daTagLv8Gate_c* a_this = static_cast<daTagLv8Gate_c*>(i_this);
return a_this->create();
}
#pragma pop
/* 80D51F28-80D51F48 000368 0020+00 1/0 0/0 0/0 .text daTagLv8Gate_Execute__FP14daTagLv8Gate_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagLv8Gate_Execute(daTagLv8Gate_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate/daTagLv8Gate_Execute__FP14daTagLv8Gate_c.s"
static int daTagLv8Gate_Execute(daTagLv8Gate_c* i_this) {
return i_this->execute();
}
#pragma pop
/* ############################################################################################## */
/* 80D524E0-80D524E4 000014 0004+00 0/1 0/0 0/0 .rodata @3891 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3891[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80D524E0, &lit_3891);
#pragma pop
/* 80D524E4-80D524E8 000018 0004+00 0/1 0/0 0/0 .rodata @3892 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3892 = 400.0f;
COMPILER_STRIP_GATE(0x80D524E4, &lit_3892);
#pragma pop
/* 80D524E8-80D524EC 00001C 0004+00 0/1 0/0 0/0 .rodata @3893 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3893 = 1400.0f;
COMPILER_STRIP_GATE(0x80D524E8, &lit_3893);
#pragma pop
/* 80D524EC-80D524F0 000020 0004+00 0/1 0/0 0/0 .rodata @3894 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3894 = -1.0f;
COMPILER_STRIP_GATE(0x80D524EC, &lit_3894);
#pragma pop
/* 80D524F0-80D524F0 000024 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80D524FF = "LV8_GATE_ENTRY";
#pragma pop
/* 80D51F48-80D522F0 000388 03A8+00 1/1 0/0 0/0 .text execute__14daTagLv8Gate_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daTagLv8Gate_c::execute() {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate/execute__14daTagLv8Gate_cFv.s"
int daTagLv8Gate_c::execute() {
dComIfG_inf_c& game_info = g_dComIfG_gameInfo; // Fake match?
if (game_info.getPlay().getEvent().runCheck() && !mEvtInfo.checkCommandTalk()) {
s32 cut_index = i_dComIfGp_getEventManager().getMyStaffId(l_arcName, NULL, 0);
if (cut_index != -1) {
int* cut_name = (int*)i_dComIfGp_getEventManager().getMyNowCutName(cut_index);
if (i_dComIfGp_getEventManager().getIsAddvance(cut_index)) {
switch (*cut_name) {
case '0001':
i_dComIfGp_getEvent().setSkipProc(this, dEv_noFinishSkipProc, 0);
daPy_getPlayerActorClass()->setPlayerPosAndAngle(&current.pos, shape_angle.y,
0);
fopAc_ac_c* mirror_table = i_fopAcM_SearchByName(PROC_Obj_MirrorTable);
if (mirror_table != NULL) {
static_cast<daObjMirrorTable_c*>(mirror_table)->field_0x874 = true;
}
break;
case '0002':
dStage_changeScene(getSceneNo(), 0.0f, 0, getRoomNo(), 0, -1);
break;
}
}
if (i_dComIfGp_getEvent().i_checkSkipEdge()) {
i_dComIfGp_event_reset();
dStage_changeScene(getSceneNo(), 0.0f, 0, getRoomNo(), 0, -1);
}
switch (*cut_name) {
case '0001':
case '0002':
dComIfGp_evmng_cutEnd(cut_index);
break;
}
if (mEvtInfo.i_checkCommandDemoAccrpt() && mEventID != -1) {
if (dComIfGp_evmng_endCheck(mEventID)) {
mEventID = -1;
}
}
}
} else {
if (daPy_getPlayerActorClass()->checkPriActorOwn(this)) {
for (int i = 0; i < dComIfGp_getAttention().GetActionCount(); i++) {
if (dComIfGp_getAttention().ActionTarget(i) == this) {
if (dComIfGp_getAttention().getActionBtnB() != NULL &&
dComIfGp_getAttention().getActionBtnB()->mType == 4)
{
dComIfGp_setDoStatusForce(7, 0);
}
}
}
}
if (fopAcM_checkCarryNow(this)) {
fopAcM_cancelCarryNow(this);
mAttentionInfo.mFlags &= ~0x10;
mEvtInfo.setArchiveName(l_arcName);
i_dComIfGp_getEventManager().setObjectArchive(mEvtInfo.getArchiveName());
mEventID = i_dComIfGp_getEventManager().getEventIdx(this, "LV8_GATE_ENTRY", -1);
fopAcM_orderOtherEventId(this, mEventID, -1, -1, 0, 1);
}
}
if (mpBck != NULL) {
mpBck->play();
}
cXyz pos(0.0f, 400.0f, 1400.0f);
mDoMtx_stack_c::transS(current.pos);
mDoMtx_stack_c::YrotM(current.angle.y);
mDoMtx_stack_c::multVec(&pos, &pos);
Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_MONOLIS_HOLE, &pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
return 1;
}
#pragma pop
/* 80D522F0-80D5246C 000730 017C+00 1/0 0/0 0/0 .text daTagLv8Gate_Draw__FP14daTagLv8Gate_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagLv8Gate_Draw(daTagLv8Gate_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate/daTagLv8Gate_Draw__FP14daTagLv8Gate_c.s"
static int daTagLv8Gate_Draw(daTagLv8Gate_c* i_this) {
return i_this->draw();
}
#pragma pop
/* 80D5246C-80D52474 0008AC 0008+00 1/0 0/0 0/0 .text daTagLv8Gate_IsDelete__FP14daTagLv8Gate_c */
static bool daTagLv8Gate_IsDelete(daTagLv8Gate_c* param_0) {
return true;
static int daTagLv8Gate_IsDelete(daTagLv8Gate_c* i_this) {
return TRUE;
}
/* 80D52474-80D524C4 0008B4 0050+00 1/0 0/0 0/0 .text daTagLv8Gate_Delete__FP14daTagLv8Gate_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daTagLv8Gate_Delete(daTagLv8Gate_c* param_0) {
nofralloc
#include "asm/rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate/daTagLv8Gate_Delete__FP14daTagLv8Gate_c.s"
static int daTagLv8Gate_Delete(daTagLv8Gate_c* i_this) {
i_this->~daTagLv8Gate_c();
return TRUE;
}
#pragma pop
/* 80D524F0-80D524F0 000024 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 80D52514-80D52534 -00001 0020+00 1/0 0/0 0/0 .data l_daTagLv8Gate_Method */
static actor_method_class l_daTagLv8Gate_Method = {
(process_method_func)daTagLv8Gate_Create, (process_method_func)daTagLv8Gate_Delete,
(process_method_func)daTagLv8Gate_Execute, (process_method_func)daTagLv8Gate_IsDelete,
(process_method_func)daTagLv8Gate_Draw,
};
/* 80D52534-80D52564 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Lv8Gate */
extern actor_process_profile_definition g_profile_Tag_Lv8Gate = {
fpcLy_CURRENT_e, // mLayerID
7, // mListID
fpcPi_CURRENT_e, // mListPrio
PROC_Tag_Lv8Gate, // mProcName
&g_fpcLf_Method.mBase, // mSubMtd
sizeof(daTagLv8Gate_c), // mSize
0, // mSizeOther
0, // mParameters
&g_fopAc_Method.base, // mSubMtd
0x108, // mPriority
&l_daTagLv8Gate_Method, // mSubMtd
0x40000, // mStatus
0, // mActorType
fopAc_CULLBOX_CUSTOM_e, // mCullType
};