mirror of
https://github.com/zeldaret/tp
synced 2026-08-12 20:02:54 -04:00
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:
@@ -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, ¤t.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(¤t.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
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user