summaryrefslogtreecommitdiff
path: root/rel
diff options
context:
space:
mode:
authorJeff Padgham <jeff.ookami@gmail.com>2024-02-28 01:41:01 -0800
committerGitHub <noreply@github.com>2024-02-28 01:41:01 -0800
commit555e4bc19efb9d8803574db4f5cd83d01176bf6d (patch)
treeabb4b04207ef035ba7705a2c883c088efdfdb7c6 /rel
parent0e41460e3e8f8baede7679d7e71a84008d44f34b (diff)
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>
Diffstat (limited to 'rel')
-rw-r--r--rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate.cpp544
1 files changed, 206 insertions, 338 deletions
diff --git a/rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate.cpp b/rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate.cpp
index d7b34ed87c..e7a599e90b 100644
--- a/rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate.cpp
+++ b/rel/d/a/tag/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate.cpp
@@ -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();
-};
+#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"
//
-// Forward References:
+// Declarations:
//
-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;
+static char* l_arcName = "Lv8Gate";
-//
-// 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 */];
+/* 80D51C38-80D51C58 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<daTagLv8Gate_c*>(i_this)->createHeap();
+}
-//
-// Declarations:
-//
+daTagLv8Gate_c::~daTagLv8Gate_c() {
+ dComIfG_resDelete(&mPhaseReq, l_arcName);
+}
-/* 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"
+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());
+ }
}
-#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);
+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);
-/* 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
+ mAttentionInfo.mFlags = 0x10;
+ mAttentionInfo.field_0x0[4] = 90;
-/* 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;
+ mEventID = -1;
-/* 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,
-};
+ initBaseMtx();
+}
-/* 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,
-};
+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;
+}
-/* 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,
-};
+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"
-}
-#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"
+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
-
-/* ############################################################################################## */
-/* 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
+};