Reintroduce missing changes from pull request #2200 (#2213)

* Reintroduce missing changes from pull request  #2200

* m_Do_audio OK
This commit is contained in:
hatal175
2024-10-16 22:41:21 +03:00
committed by GitHub
parent 030d6533f0
commit ec07abb09b
18 changed files with 894 additions and 1918 deletions
+1 -1
View File
@@ -416,4 +416,4 @@ void __sinit_d_a_obj_twGate_cpp() {
REGISTER_CTORS(0x80D202B8, __sinit_d_a_obj_twGate_cpp);
#pragma pop
/* 80D20554-80D20554 00024C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 80D20554-80D20554 00024C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+367 -322
View File
@@ -1,19 +1,13 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_tag_TWgate
// d_a_tag_TWgate
//
#include "d/actor/d_a_tag_TWgate.h"
#include "d/actor/d_a_player.h"
#include "d/d_com_inf_game.h"
#include "d/d_msg_object.h"
#include "dol2asm.h"
#include "f_op/f_op_actor_mng.h"
//
// Types:
//
struct daTagTWGate_zevParam {
/* 0x00 */ char* mArcName;
/* 0x04 */ char* mEventName;
@@ -26,195 +20,18 @@ struct daTagTWGate_zevParam {
/* 0x1B */ s8 mLayer;
};
//
// Forward References:
//
extern "C" void initWait__13daTagTWGate_cFv();
extern "C" void executeWait__13daTagTWGate_cFv();
extern "C" void initDemoFilone1__13daTagTWGate_cFv();
extern "C" void executeDemoFilone1__13daTagTWGate_cFv();
extern "C" void initDemoFilone2__13daTagTWGate_cFv();
extern "C" void executeDemoFilone2__13daTagTWGate_cFv();
extern "C" void initDemoFilone3__13daTagTWGate_cFv();
extern "C" void executeDemoFilone3__13daTagTWGate_cFv();
extern "C" void initDemoOrdin1__13daTagTWGate_cFv();
extern "C" void executeDemoOrdin1__13daTagTWGate_cFv();
extern "C" void initDemoOrdin2__13daTagTWGate_cFv();
extern "C" void executeDemoOrdin2__13daTagTWGate_cFv();
extern "C" void initDemoOrdin3__13daTagTWGate_cFv();
extern "C" void executeDemoOrdin3__13daTagTWGate_cFv();
extern "C" void initDemoRanail1__13daTagTWGate_cFv();
extern "C" void executeDemoRanail1__13daTagTWGate_cFv();
extern "C" void initDemoRanail2__13daTagTWGate_cFv();
extern "C" void executeDemoRanail2__13daTagTWGate_cFv();
extern "C" void initDemoRanail3__13daTagTWGate_cFv();
extern "C" void executeDemoRanail3__13daTagTWGate_cFv();
extern "C" void initDemoHyral1__13daTagTWGate_cFv();
extern "C" void executeDemoHyral1__13daTagTWGate_cFv();
extern "C" void initDemoHyral2__13daTagTWGate_cFv();
extern "C" void executeDemoHyral2__13daTagTWGate_cFv();
extern "C" void initDemoHyral3__13daTagTWGate_cFv();
extern "C" void executeDemoHyral3__13daTagTWGate_cFv();
extern "C" void initBaseMtx__13daTagTWGate_cFv();
extern "C" void downloadModels__13daTagTWGate_cFv();
extern "C" void initTalk__13daTagTWGate_cFiPP10fopAc_ac_c();
extern "C" void talkProc__13daTagTWGate_cFPiiPP10fopAc_ac_c();
extern "C" void createHeapCallBack__13daTagTWGate_cFP10fopAc_ac_c();
extern "C" void CreateHeap__13daTagTWGate_cFv();
extern "C" static void daTagTWGate_Create__FP10fopAc_ac_c();
extern "C" static void daTagTWGate_Delete__FP13daTagTWGate_c();
extern "C" static void daTagTWGate_Execute__FP13daTagTWGate_c();
extern "C" static void daTagTWGate_Draw__FP13daTagTWGate_c();
extern "C" static bool daTagTWGate_IsDelete__FP13daTagTWGate_c();
extern "C" void __sinit_d_a_tag_TWgate_cpp();
extern "C" u8 const mAttr__13daTagTWGate_c[1 + 3 /* padding */];
extern "C" extern char const* const d_a_tag_TWgate__stringBase0;
extern "C" u8 ActionTable__13daTagTWGate_c[312];
extern "C" extern void* g_profile_Tag_TWGate[12];
//
// External References:
//
extern "C" void mDoMtx_YrotM__FPA4_fs();
extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
extern "C" void transM__14mDoMtx_stack_cFfff();
extern "C" void
__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl();
extern "C" void play__16mDoExt_McaMorfSOFUlSc();
extern "C" void entryDL__16mDoExt_McaMorfSOFv();
extern "C" void modelCalc__16mDoExt_McaMorfSOFv();
extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv();
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
extern "C" void fopAcM_searchActorDistanceXZ2__FPC10fopAc_ac_cPC10fopAc_ac_c();
extern "C" void fopAcM_orderChangeEventId__FP10fopAc_ac_csUsUs();
extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs();
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
extern "C" void dComIfGp_setNextStage__FPCcsScSc();
extern "C" void isDarkClearLV__21dSv_player_status_b_cCFi();
extern "C" void onEventBit__11dSv_event_cFUs();
extern "C" void onSwitch__10dSv_info_cFii();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void reset__14dEvt_control_cFv();
extern "C" void reset__14dEvt_control_cFPv();
extern "C" void dEv_noFinishSkipProc__FPvi();
extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii();
extern "C" void onSkipFade__14dEvt_control_cFv();
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 offMsgSendControl__12dMsgObject_cFv();
extern "C" void isMsgSendControl__12dMsgObject_cFv();
extern "C" void __ct__10dMsgFlow_cFv();
extern "C" void __dt__10dMsgFlow_cFv();
extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c();
extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci();
extern "C" void getMsgNo__10dMsgFlow_cFv();
extern "C" void getMsg__10dMsgFlow_cFv();
extern "C" void __ct__5csXyzFsss();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void* __nw__FUl();
extern "C" void __ptmf_scall();
extern "C" void _savegpr_26();
extern "C" void _savegpr_27();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_26();
extern "C" void _restgpr_27();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
extern "C" u8 now__14mDoMtx_stack_c[48];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
// Declarations:
//
/* 80D525F8-80D52604 000078 000C+00 1/0 0/0 0/0 .text initWait__13daTagTWGate_cFv */
void daTagTWGate_c::initWait() {
mEventID = -1;
}
/* ############################################################################################## */
/* 80D55848-80D55852 00009C 000A+00 4/3 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D55848;
/* 80D55852-80D55861 0000A6 000F+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D55852;
/* 80D55861-80D55875 0000B5 0014+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D55861;
/* 80D55875-80D55887 0000C9 0012+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D55875;
/* 80D55887-80D5588F 0000DB 0008+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D55887;
/* 80D5588F-80D55899 0000E3 000A+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D5588F;
/* 80D55899-80D558A7 0000ED 000E+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D55899;
/* 80D558A7-80D558BA 0000FB 0013+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D558A7;
/* 80D558BA-80D558CB 00010E 0011+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D558BA;
/* 80D558CB-80D558D3 00011F 0008+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D558CB;
/* 80D558D3-80D558DD 000127 000A+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D558D3;
/* 80D558DD-80D558EC 000131 000F+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D558DD;
/* 80D558EC-80D55900 000140 0014+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D558EC;
/* 80D55900-80D55912 000154 0012+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D55900;
/* 80D55912-80D5591C 000166 000A+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D55912;
/* 80D5591C-80D5592A 000170 000E+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D5591C;
/* 80D5592A-80D5593D 00017E 0013+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D5592A;
/* 80D5593D-80D5594E 000191 0011+00 1/0 0/0 0/0 .rodata None */
extern "C" char const* const stringBase_80D5593D;
/* 80D557AC-80D557B0 000000 0001+03 5/5 0/0 0/0 .rodata mAttr__13daTagTWGate_c */
SECTION_RODATA u8 const daTagTWGate_c::mAttr[1 + 3 /* padding */] = {
0x00,
/* padding */
0x00,
0x00,
u8 const daTagTWGate_c::mAttr[1] = {
0x00,
};
COMPILER_STRIP_GATE(0x80D557AC, &daTagTWGate_c::mAttr);
/* 80D557B0-80D55820 -00001 0070+00 14/18 0/0 0/0 .rodata l_zevParamTbl */
SECTION_RODATA static daTagTWGate_zevParam const l_zevParamTbl[4] = {
static daTagTWGate_zevParam const l_zevParamTbl[4] = {
{
"TWGate_FL",
"TW_GATE_FILONE",
@@ -260,51 +77,16 @@ SECTION_RODATA static daTagTWGate_zevParam const l_zevParamTbl[4] = {
14,
},
};
COMPILER_STRIP_GATE(0x80D557B0, &l_zevParamTbl);
/* 80D55820-80D55824 000074 0004+00 1/1 0/0 0/0 .rodata @3857 */
SECTION_RODATA static f32 const lit_3857 = 100.0f;
COMPILER_STRIP_GATE(0x80D55820, &lit_3857);
/* 80D55824-80D5582C 000078 0008+00 1/1 0/0 0/0 .rodata @3858 */
SECTION_RODATA static u8 const lit_3858[8] = {
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D55824, &lit_3858);
/* 80D55848-80D55848 00009C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_80D55848 = "TWGate_FL";
SECTION_DEAD static char const* const stringBase_80D55852 = "TW_GATE_FILONE";
SECTION_DEAD static char const* const stringBase_80D55861 = "TW_GATE_FILONE_TALK";
SECTION_DEAD static char const* const stringBase_80D55875 = "TW_GATE_FILONE_IN";
SECTION_DEAD static char const* const stringBase_80D55887 = "F_SP108";
SECTION_DEAD static char const* const stringBase_80D5588F = "TWGate_OD";
SECTION_DEAD static char const* const stringBase_80D55899 = "TW_GATE_ORDIN";
SECTION_DEAD static char const* const stringBase_80D558A7 = "TW_GATE_ORDIN_TALK";
SECTION_DEAD static char const* const stringBase_80D558BA = "TW_GATE_ORDIN_IN";
SECTION_DEAD static char const* const stringBase_80D558CB = "F_SP121";
SECTION_DEAD static char const* const stringBase_80D558D3 = "TWGate_RN";
SECTION_DEAD static char const* const stringBase_80D558DD = "TW_GATE_RANAIL";
SECTION_DEAD static char const* const stringBase_80D558EC = "TW_GATE_RANAIL_TALK";
SECTION_DEAD static char const* const stringBase_80D55900 = "TW_GATE_RANAIL_IN";
SECTION_DEAD static char const* const stringBase_80D55912 = "TWGate_HY";
SECTION_DEAD static char const* const stringBase_80D5591C = "TW_GATE_HYRAL";
SECTION_DEAD static char const* const stringBase_80D5592A = "TW_GATE_HYRAL_TALK";
SECTION_DEAD static char const* const stringBase_80D5593D = "TW_GATE_HYRAL_IN";
SECTION_DEAD static char const* const stringBase_80D5594E = "Gate";
#pragma pop
/* 80D55974-80D55980 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80D55980-80D55994 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 */] = {
static u32 lit_1787[1 + 4 /* padding */] = {
0x02000201,
/* padding */
0x40080000,
@@ -315,10 +97,10 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
#pragma pop
/* 80D55994-80D55998 -00001 0004+00 12/12 0/0 0/0 .data l_myName */
SECTION_DATA static const char* l_myName = "Gate";
static const char* l_myName = "Gate";
/* 80D55AD0-80D55C08 00015C 0138+00 14/15 0/0 0/0 .data ActionTable__13daTagTWGate_c */
SECTION_DATA actionFunc daTagTWGate_c::ActionTable[13][2] = {
actionFunc daTagTWGate_c::ActionTable[13][2] = {
{&daTagTWGate_c::initWait, &daTagTWGate_c::executeWait},
{&daTagTWGate_c::initDemoFilone1, &daTagTWGate_c::executeDemoFilone1},
{&daTagTWGate_c::initDemoFilone2, &daTagTWGate_c::executeDemoFilone2},
@@ -442,26 +224,22 @@ void daTagTWGate_c::executeDemoFilone1() {
/* 80D52AF4-80D52BF0 000574 00FC+00 1/0 0/0 0/0 .text initDemoFilone2__13daTagTWGate_cFv
*/
#ifdef NONMATCHING
void daTagTWGate_c::initDemoFilone2() {
fopAcM_onSwitch(this, getSwitch());
eventInfo.setArchiveName(l_zevParamTbl[mType].mArcName);
dComIfGp_getEventManager().setObjectArchive(eventInfo.getArchiveName());
dComIfG_play_c& play = g_dComIfG_gameInfo.play;
dEvent_manager_c& mng = play.getEvtManager();
mng.setObjectArchive(eventInfo.getArchiveName());
mEventID =
dComIfGp_getEventManager().getEventIdx(this, l_zevParamTbl[mType].mTalkEventName, -1);
mng.getEventIdx(this, l_zevParamTbl[mType].mTalkEventName, -1);
if (dComIfGp_event_runCheck()) {
if (play.getEvent().mEventStatus != 0) {
dComIfGp_getEvent().reset(this);
fopAcM_orderChangeEventId(this, mEventID, 1, -1);
} else {
fopAcM_orderOtherEventId(this, mEventID, -1, -1, 4, 1);
}
}
#else
void daTagTWGate_c::initDemoFilone2() {
// NONMATCHING
}
#endif
/* 80D52BF0-80D52DB4 000670 01C4+00 1/0 0/0 0/0 .text executeDemoFilone2__13daTagTWGate_cFv */
void daTagTWGate_c::executeDemoFilone2() {
@@ -522,38 +300,6 @@ void daTagTWGate_c::initDemoFilone3() {
fopAcM_orderChangeEventId(this, mEventID, 1, -1);
}
/* ############################################################################################## */
/* 80D5582C-80D55830 000080 0004+00 1/5 0/0 0/0 .rodata @4079 */
SECTION_RODATA static f32 const lit_4079 = 1.0f;
COMPILER_STRIP_GATE(0x80D5582C, &lit_4079);
/* 80D55830-80D55834 000084 0004+00 1/6 0/0 0/0 .rodata @4080 */
SECTION_RODATA static u8 const lit_4080[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80D55830, &lit_4080);
/* 80D55834-80D55838 000088 0004+00 0/4 0/0 0/0 .rodata @4081 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4081 = 240.0f;
COMPILER_STRIP_GATE(0x80D55834, &lit_4081);
#pragma pop
/* 80D55838-80D5583C 00008C 0004+00 0/4 0/0 0/0 .rodata @4082 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4082 = -710.0f;
COMPILER_STRIP_GATE(0x80D55838, &lit_4082);
#pragma pop
/* 80D5583C-80D55840 000090 0004+00 1/5 0/0 0/0 .rodata @4083 */
SECTION_RODATA static f32 const lit_4083 = -1.0f;
COMPILER_STRIP_GATE(0x80D5583C, &lit_4083);
/* 80D52E7C-80D53250 0008FC 03D4+00 1/0 0/0 0/0 .text executeDemoFilone3__13daTagTWGate_cFv */
void daTagTWGate_c::executeDemoFilone3() {
s32 staffId = dComIfGp_evmng_getMyStaffId(l_myName, NULL, 0);
@@ -644,7 +390,6 @@ void daTagTWGate_c::executeDemoFilone3() {
}
}
/* 80D53250-80D532DC 000CD0 008C+00 1/0 0/0 0/0 .text initDemoOrdin1__13daTagTWGate_cFv
*/
void daTagTWGate_c::initDemoOrdin1() {
@@ -655,18 +400,90 @@ void daTagTWGate_c::initDemoOrdin1() {
/* 80D532DC-80D53454 000D5C 0178+00 1/0 0/0 0/0 .text executeDemoOrdin1__13daTagTWGate_cFv */
void daTagTWGate_c::executeDemoOrdin1() {
// NONMATCHING
dEvent_manager_c& evtMng = dComIfGp_getEventManager();
int staffId = evtMng.getMyStaffId(l_myName, NULL, 0);
if (staffId != -1) {
int* cutName = (int*)evtMng.getMyNowCutName(staffId);
if (evtMng.getIsAddvance(staffId)) {
switch (*cutName) {
case '0001':
dComIfGp_getEvent().startCheckSkipEdge(this);
break;
}
}
switch (*cutName) {
case '0001':
if (dComIfGp_getEvent().checkSkipEdge()) {
dComIfGp_getEvent().onSkipFade();
setAction(ACT_DEMO_ORDIN_2);
}
evtMng.cutEnd(staffId);
break;
}
if (eventInfo.checkCommandDemoAccrpt() && mEventID != -1 && evtMng.endCheck(mEventID)) {
setAction(ACT_DEMO_ORDIN_2);
}
}
}
/* 80D53454-80D53550 000ED4 00FC+00 1/0 0/0 0/0 .text initDemoOrdin2__13daTagTWGate_cFv
*/
void daTagTWGate_c::initDemoOrdin2() {
// NONMATCHING
fopAcM_onSwitch(this, getSwitch());
eventInfo.setArchiveName(l_zevParamTbl[mType].mArcName);
dComIfG_play_c& play = g_dComIfG_gameInfo.play;
dEvent_manager_c& mng = play.getEvtManager();
mng.setObjectArchive(eventInfo.getArchiveName());
mEventID = mng.getEventIdx(this, l_zevParamTbl[mType].mTalkEventName, 0xff);
if (play.getEvent().mEventStatus != 0) {
dComIfGp_getEvent().reset(this);
fopAcM_orderChangeEventId(this, mEventID, 1, 0xffff);
} else {
fopAcM_orderOtherEventId(this, mEventID, 0xff, 0xffff, 4, 1);
}
}
/* 80D53550-80D53714 000FD0 01C4+00 1/0 0/0 0/0 .text executeDemoOrdin2__13daTagTWGate_cFv */
void daTagTWGate_c::executeDemoOrdin2() {
// NONMATCHING
dEvent_manager_c& evtMng = dComIfGp_getEventManager();
int staffId = evtMng.getMyStaffId(l_myName, NULL, 0);
if (staffId == -1) {
return;
}
int* cutName = (int*)evtMng.getMyNowCutName(staffId);
if (evtMng.getIsAddvance(staffId)) {
switch(*cutName) {
case '0001':
break;
case '0002':
initTalk(0xbc1, NULL);
break;
case '0003':
break;
}
}
switch(*cutName) {
case '0001':
case '0003':
evtMng.cutEnd(staffId);
break;
case '0002':
if (talkProc(NULL, 1, NULL)) {
if (mMsgFlow.getChoiceNo() == 0) {
setAction(ACT_DEMO_ORDIN_3);
}
evtMng.cutEnd(staffId);
}
break;
}
if (eventInfo.checkCommandDemoAccrpt() && mEventID != -1 &&
evtMng.endCheck(mEventID))
{
dComIfGp_event_reset();
field_0x5e0 = 0;
setAction(ACT_WAIT);
}
}
/* 80D53714-80D537DC 001194 00C8+00 1/0 0/0 0/0 .text initDemoOrdin3__13daTagTWGate_cFv
@@ -684,7 +501,84 @@ void daTagTWGate_c::initDemoOrdin3() {
/* 80D537DC-80D53BD0 00125C 03F4+00 1/0 0/0 0/0 .text executeDemoOrdin3__13daTagTWGate_cFv */
void daTagTWGate_c::executeDemoOrdin3() {
// NONMATCHING
dEvent_manager_c& evtMng = dComIfGp_getEventManager();
int staffId = evtMng.getMyStaffId(l_myName, NULL, 0);
if (staffId == -1) {
return;
}
int* cutName = (int*)evtMng.getMyNowCutName(staffId);
if (evtMng.getIsAddvance(staffId)) {
switch(*cutName) {
case '0001':
break;
case '0002':
dComIfGp_getEvent().startCheckSkipEdge(this);
field_0x5e1 = 0;
break;
case '0003':
initBaseMtx();
mpMorf->setPlaySpeed(1.0f);
field_0x5e0 = 1;
break;
}
}
switch(*cutName) {
case '0001':
int downloadResult = downloadModels();
if (downloadResult == 1) {
evtMng.cutEnd(staffId);
} else if (downloadResult == -1) {
dComIfGp_setNextStage(
l_zevParamTbl[mType].mStage,
l_zevParamTbl[mType].mPoint,
l_zevParamTbl[mType].mRoomNo,
l_zevParamTbl[mType].mLayer);
}
break;
case '0002':
if (dComIfGp_getEvent().checkSkipEdge()) {
dComIfGp_getEvent().onSkipFade();
dComIfGp_setNextStage(
l_zevParamTbl[mType].mStage,
l_zevParamTbl[mType].mPoint,
l_zevParamTbl[mType].mRoomNo,
l_zevParamTbl[mType].mLayer);
}
int dVar2 = daPy_py_c::i_checkNowWolf() ? 0x2e : 0x4a;
if (field_0x5e1++ == dVar2) {
daPy_py_c* player = daPy_getPlayerActorClass();
cXyz cStack_30;
csXyz cStack_38(0, fopAcM_GetShapeAngle_p(player)->y + 0x8000, 0);
mDoMtx_stack_c::transS(fopAcM_GetPosition(player));
mDoMtx_stack_c::YrotM(cStack_38.y);
mDoMtx_stack_c::transM(0.0f, 240.0f, -710.0f);
mDoMtx_stack_c::multVecZero(&cStack_30);
dComIfGp_particle_set(0x86c5, &cStack_30, &cStack_38, NULL);
Z2GetAudioMgr()->seStart(Z2SE_OBJ_DARK_GATE_RIPPLE, &cStack_30, 0, 0,
1.0f, 1.0f, -1.0f, -1.0f, 0);
evtMng.cutEnd(staffId);
}
break;
case '0003':
if (dComIfGp_getEvent().checkSkipEdge()) {
dComIfGp_getEvent().onSkipFade();
dComIfGp_setNextStage(
l_zevParamTbl[mType].mStage,
l_zevParamTbl[mType].mPoint,
l_zevParamTbl[mType].mRoomNo,
l_zevParamTbl[mType].mLayer);
}
if (mpMorf->isStop()) {
evtMng.cutEnd(staffId);
}
break;
}
if (eventInfo.checkCommandDemoAccrpt() && mEventID != -1 && evtMng.endCheck(mEventID)) {
dComIfGp_event_reset();
field_0x5e0 = 0;
setAction(ACT_WAIT);
}
}
/* 80D53BD0-80D53C5C 001650 008C+00 1/0 0/0 0/0 .text initDemoRanail1__13daTagTWGate_cFv
@@ -697,18 +591,90 @@ void daTagTWGate_c::initDemoRanail1() {
/* 80D53C5C-80D53DD4 0016DC 0178+00 1/0 0/0 0/0 .text executeDemoRanail1__13daTagTWGate_cFv */
void daTagTWGate_c::executeDemoRanail1() {
// NONMATCHING
dEvent_manager_c& evtMng = dComIfGp_getEventManager();
int staffId = evtMng.getMyStaffId(l_myName, NULL, 0);
if (staffId != -1) {
int* cutName = (int*)evtMng.getMyNowCutName(staffId);
if (evtMng.getIsAddvance(staffId)) {
switch (*cutName) {
case '0001':
dComIfGp_getEvent().startCheckSkipEdge(this);
break;
}
}
switch (*cutName) {
case '0001':
if (dComIfGp_getEvent().checkSkipEdge()) {
dComIfGp_getEvent().onSkipFade();
setAction(ACT_DEMO_RANAIL_2);
}
evtMng.cutEnd(staffId);
break;
}
if (eventInfo.checkCommandDemoAccrpt() && mEventID != -1 && evtMng.endCheck(mEventID)) {
setAction(ACT_DEMO_RANAIL_2);
}
}
}
/* 80D53DD4-80D53ED0 001854 00FC+00 1/0 0/0 0/0 .text initDemoRanail2__13daTagTWGate_cFv
*/
void daTagTWGate_c::initDemoRanail2() {
// NONMATCHING
fopAcM_onSwitch(this, getSwitch());
eventInfo.setArchiveName(l_zevParamTbl[mType].mArcName);
dComIfG_play_c& play = g_dComIfG_gameInfo.play;
dEvent_manager_c& mng = play.getEvtManager();
mng.setObjectArchive(eventInfo.getArchiveName());
mEventID = mng.getEventIdx(this, l_zevParamTbl[mType].mTalkEventName, 0xff);
if (play.getEvent().mEventStatus != 0) {
dComIfGp_getEvent().reset(this);
fopAcM_orderChangeEventId(this, mEventID, 1, 0xffff);
} else {
fopAcM_orderOtherEventId(this, mEventID, 0xff, 0xffff, 4, 1);
}
}
/* 80D53ED0-80D54094 001950 01C4+00 1/0 0/0 0/0 .text executeDemoRanail2__13daTagTWGate_cFv */
void daTagTWGate_c::executeDemoRanail2() {
// NONMATCHING
dEvent_manager_c& evtMng = dComIfGp_getEventManager();
int staffId = evtMng.getMyStaffId(l_myName, NULL, 0);
if (staffId == -1) {
return;
}
int* cutName = (int*)evtMng.getMyNowCutName(staffId);
if (evtMng.getIsAddvance(staffId)) {
switch(*cutName) {
case '0001':
break;
case '0002':
initTalk(0xbc1, NULL);
break;
case '0003':
break;
}
}
switch(*cutName) {
case '0001':
case '0003':
evtMng.cutEnd(staffId);
break;
case '0002':
if (talkProc(NULL, 1, NULL)) {
if (mMsgFlow.getChoiceNo() == 0) {
setAction(ACT_DEMO_RANAIL_3);
}
evtMng.cutEnd(staffId);
}
break;
}
if (eventInfo.checkCommandDemoAccrpt() && mEventID != -1 &&
evtMng.endCheck(mEventID))
{
dComIfGp_event_reset();
field_0x5e0 = 0;
setAction(ACT_WAIT);
}
}
/* 80D54094-80D54178 001B14 00E4+00 1/0 0/0 0/0 .text initDemoRanail3__13daTagTWGate_cFv
@@ -727,7 +693,84 @@ void daTagTWGate_c::initDemoRanail3() {
/* 80D54178-80D5456C 001BF8 03F4+00 1/0 0/0 0/0 .text executeDemoRanail3__13daTagTWGate_cFv */
void daTagTWGate_c::executeDemoRanail3() {
// NONMATCHING
dEvent_manager_c& evtMng = dComIfGp_getEventManager();
int staffId = evtMng.getMyStaffId(l_myName, NULL, 0);
if (staffId == -1) {
return;
}
int* cutName = (int*)evtMng.getMyNowCutName(staffId);
if (evtMng.getIsAddvance(staffId)) {
switch(*cutName) {
case '0001':
break;
case '0002':
dComIfGp_getEvent().startCheckSkipEdge(this);
field_0x5e1 = 0;
break;
case '0003':
initBaseMtx();
mpMorf->setPlaySpeed(1.0f);
field_0x5e0 = 1;
break;
}
}
switch(*cutName) {
case '0001':
int downloadResult = downloadModels();
if (downloadResult == 1) {
evtMng.cutEnd(staffId);
} else if (downloadResult == -1) {
dComIfGp_setNextStage(
l_zevParamTbl[mType].mStage,
l_zevParamTbl[mType].mPoint,
l_zevParamTbl[mType].mRoomNo,
l_zevParamTbl[mType].mLayer);
}
break;
case '0002':
if (dComIfGp_getEvent().checkSkipEdge()) {
dComIfGp_getEvent().onSkipFade();
dComIfGp_setNextStage(
l_zevParamTbl[mType].mStage,
l_zevParamTbl[mType].mPoint,
l_zevParamTbl[mType].mRoomNo,
l_zevParamTbl[mType].mLayer);
}
int dVar2 = daPy_py_c::i_checkNowWolf() ? 0x2e : 0x4a;
if (field_0x5e1++ == dVar2) {
daPy_py_c* player = daPy_getPlayerActorClass();
cXyz cStack_30;
csXyz cStack_38(0, fopAcM_GetShapeAngle_p(player)->y + 0x8000, 0);
mDoMtx_stack_c::transS(fopAcM_GetPosition(player));
mDoMtx_stack_c::YrotM(cStack_38.y);
mDoMtx_stack_c::transM(0.0f, 240.0f, -710.0f);
mDoMtx_stack_c::multVecZero(&cStack_30);
dComIfGp_particle_set(0x86c5, &cStack_30, &cStack_38, NULL);
Z2GetAudioMgr()->seStart(Z2SE_OBJ_DARK_GATE_RIPPLE, &cStack_30, 0, 0,
1.0f, 1.0f, -1.0f, -1.0f, 0);
evtMng.cutEnd(staffId);
}
break;
case '0003':
if (dComIfGp_getEvent().checkSkipEdge()) {
dComIfGp_getEvent().onSkipFade();
dComIfGp_setNextStage(
l_zevParamTbl[mType].mStage,
l_zevParamTbl[mType].mPoint,
l_zevParamTbl[mType].mRoomNo,
l_zevParamTbl[mType].mLayer);
}
if (mpMorf->isStop()) {
evtMng.cutEnd(staffId);
}
break;
}
if (eventInfo.checkCommandDemoAccrpt() && mEventID != -1 && evtMng.endCheck(mEventID)) {
dComIfGp_event_reset();
field_0x5e0 = 0;
setAction(ACT_WAIT);
}
}
/* 80D5456C-80D545F8 001FEC 008C+00 1/0 0/0 0/0 .text initDemoHyral1__13daTagTWGate_cFv
@@ -740,30 +783,48 @@ void daTagTWGate_c::initDemoHyral1() {
/* 80D545F8-80D54770 002078 0178+00 1/0 0/0 0/0 .text executeDemoHyral1__13daTagTWGate_cFv */
void daTagTWGate_c::executeDemoHyral1() {
// NONMATCHING
dEvent_manager_c& evtMng = dComIfGp_getEventManager();
int staffId = evtMng.getMyStaffId(l_myName, NULL, 0);
if (staffId != -1) {
int* cutName = (int*)evtMng.getMyNowCutName(staffId);
if (evtMng.getIsAddvance(staffId)) {
switch (*cutName) {
case '0001':
dComIfGp_getEvent().startCheckSkipEdge(this);
break;
}
}
switch (*cutName) {
case '0001':
if (dComIfGp_getEvent().checkSkipEdge()) {
dComIfGp_getEvent().onSkipFade();
setAction(ACT_DEMO_HYRAL_2);
}
evtMng.cutEnd(staffId);
break;
}
if (eventInfo.checkCommandDemoAccrpt() && mEventID != -1 && evtMng.endCheck(mEventID)) {
setAction(ACT_DEMO_HYRAL_2);
}
}
}
/* 80D54770-80D5486C 0021F0 00FC+00 1/0 0/0 0/0 .text initDemoHyral2__13daTagTWGate_cFv
*/
// load order
#ifdef NONMATCHING
void daTagTWGate_c::initDemoHyral2() {
fopAcM_onSwitch(this, getSwitch());
eventInfo.setArchiveName(l_zevParamTbl[mType].mArcName);
dComIfGp_getEventManager().setObjectArchive(eventInfo.getArchiveName());
mEventID = dComIfGp_getEventManager().getEventIdx(this, l_zevParamTbl[mType].mTalkEventName, 0xff);
if (dComIfGp_event_runCheck()) {
dComIfG_play_c& play = g_dComIfG_gameInfo.play;
dEvent_manager_c& mng = play.getEvtManager();
mng.setObjectArchive(eventInfo.getArchiveName());
mEventID = mng.getEventIdx(this, l_zevParamTbl[mType].mTalkEventName, 0xff);
if (play.getEvent().mEventStatus != 0) {
dComIfGp_getEvent().reset(this);
fopAcM_orderChangeEventId(this, mEventID, 1, 0xffff);
} else {
fopAcM_orderOtherEventId(this, mEventID, 0xff, 0xffff, 4, 1);
}
}
#else
void daTagTWGate_c::initDemoHyral2() {
// NONMATCHING
}
#endif
/* 80D5486C-80D54A30 0022EC 01C4+00 1/0 0/0 0/0 .text executeDemoHyral2__13daTagTWGate_cFv */
void daTagTWGate_c::executeDemoHyral2() {
@@ -892,22 +953,6 @@ void daTagTWGate_c::executeDemoHyral3() {
}
}
/* ############################################################################################## */
/* 80D55840-80D55844 000094 0004+00 0/1 0/0 0/0 .rodata @4790 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4790 = 250.0f;
COMPILER_STRIP_GATE(0x80D55840, &lit_4790);
#pragma pop
/* 80D55844-80D55848 000098 0004+00 0/1 0/0 0/0 .rodata @4791 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4791 = -840.0f;
COMPILER_STRIP_GATE(0x80D55844, &lit_4791);
#pragma pop
/* 80D54ECC-80D54F88 00294C 00BC+00 4/4 0/0 0/0 .text initBaseMtx__13daTagTWGate_cFv */
void daTagTWGate_c::initBaseMtx() {
cullMtx = mpMorf->getModel()->getBaseTRMtx();
@@ -925,7 +970,6 @@ void daTagTWGate_c::initBaseMtx() {
mpMorf->getModel()->setBaseTRMtx(mDoMtx_stack_c::get());
}
/* 80D54F88-80D5502C 002A08 00A4+00 4/4 0/0 0/0 .text downloadModels__13daTagTWGate_cFv
*/
int daTagTWGate_c::downloadModels() {
@@ -1004,7 +1048,6 @@ int daTagTWGate_c::CreateHeap() {
}
}
int daTagTWGate_c::create() {
fopAcM_SetupActor(this, daTagTWGate_c);
@@ -1052,7 +1095,6 @@ static int daTagTWGate_Execute(daTagTWGate_c* i_gate) {
return i_gate->execute();
}
/* 80D554E4-80D55518 002F64 0034+00 1/0 0/0 0/0 .text daTagTWGate_Draw__FP13daTagTWGate_c
*/
static int daTagTWGate_Draw(daTagTWGate_c* i_gate) {
@@ -1066,25 +1108,28 @@ static int daTagTWGate_IsDelete(daTagTWGate_c*) {
/* ############################################################################################## */
/* 80D55C08-80D55C28 -00001 0020+00 1/0 0/0 0/0 .data l_daTagTWGate_Method */
SECTION_DATA static void* l_daTagTWGate_Method[8] = {
(void*)daTagTWGate_Create__FP10fopAc_ac_c,
(void*)daTagTWGate_Delete__FP13daTagTWGate_c,
(void*)daTagTWGate_Execute__FP13daTagTWGate_c,
(void*)daTagTWGate_IsDelete__FP13daTagTWGate_c,
(void*)daTagTWGate_Draw__FP13daTagTWGate_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
static actor_method_class l_daTagTWGate_Method = {
(process_method_func)daTagTWGate_Create, (process_method_func)daTagTWGate_Delete,
(process_method_func)daTagTWGate_Execute, (process_method_func)daTagTWGate_IsDelete,
(process_method_func)daTagTWGate_Draw,
};
/* 80D55C28-80D55C58 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_TWGate */
SECTION_DATA extern void* g_profile_Tag_TWGate[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x02C80000, (void*)&g_fpcLf_Method,
(void*)0x000005E4, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x01050000, (void*)&l_daTagTWGate_Method,
(void*)0x00040000, (void*)0x000E0000,
extern actor_process_profile_definition g_profile_Tag_TWGate = {
fpcLy_CURRENT_e,
7,
fpcPi_CURRENT_e,
PROC_Tag_TWGate,
&g_fpcLf_Method.mBase,
sizeof(daTagTWGate_c),
0,
0,
&g_fopAc_Method.base,
0x105,
&l_daTagTWGate_Method,
0x40000,
fopAc_ACTOR_e,
fopAc_CULLBOX_CUSTOM_e,
};
/* 80D55848-80D55848 00009C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 80D55848-80D55848 00009C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
+201 -348
View File
@@ -1,111 +1,15 @@
//
// Generated By: dol2asm
// Translation Unit: d_a_tag_qs
// d_a_tag_qs
//
#include "d/actor/d_a_tag_qs.h"
#include "d/actor/d_a_obj_carry.h"
#include "d/actor/d_a_player.h"
#include "d/d_cc_d.h"
#include "dol2asm.h"
//
// Types:
//
struct fopAc_ac_c {
/* 80018B64 */ fopAc_ac_c();
/* 80018C8C */ ~fopAc_ac_c();
};
struct daTagQs_c {
/* 80D5DE78 */ ~daTagQs_c();
/* 80D5DFB0 */ void create();
/* 80D5E1FC */ void getPower();
/* 80D5E220 */ void getSafeArea();
/* 80D5E244 */ void getPower80();
/* 80D5E268 */ void getCenterPower();
/* 80D5E28C */ void calcPower(f32, f32);
/* 80D5E9F8 */ void execute();
/* 80D5EBF8 */ bool draw();
};
struct daItem_c {
/* 80037BE0 */ void startCtrl();
};
struct daItemBase_c {
/* 80037A5C */ void getItemNo();
};
struct dSv_info_c {
/* 80035360 */ void isSwitch(int, int) const;
};
//
// Forward References:
//
extern "C" void __dt__9daTagQs_cFv();
extern "C" void create__9daTagQs_cFv();
extern "C" void __dt__10dCcD_GSttsFv();
extern "C" void __dt__8cM3dGCylFv();
extern "C" void __dt__8cM3dGAabFv();
extern "C" void getPower__9daTagQs_cFv();
extern "C" void getSafeArea__9daTagQs_cFv();
extern "C" void getPower80__9daTagQs_cFv();
extern "C" void getCenterPower__9daTagQs_cFv();
extern "C" void calcPower__9daTagQs_cFff();
extern "C" static void hikiyose__FP4cXyzP4cXyzP4cXyzf();
extern "C" static void search__FPvPv();
extern "C" void execute__9daTagQs_cFv();
extern "C" bool draw__9daTagQs_cFv();
extern "C" static void daTagQs_Draw__FP9daTagQs_c();
extern "C" static void daTagQs_Execute__FP9daTagQs_c();
extern "C" static bool daTagQs_IsDelete__FP9daTagQs_c();
extern "C" static void daTagQs_Delete__FP9daTagQs_c();
extern "C" static void daTagQs_Create__FP10fopAc_ac_c();
extern "C" void __dt__10cCcD_GSttsFv();
//
// External References:
//
extern "C" void __ct__10fopAc_ac_cFv();
extern "C" void __dt__10fopAc_ac_cFv();
extern "C" void fopAc_IsActor__FPv();
extern "C" void fopAcIt_Judge__FPFPvPv_PvPv();
extern "C" void fopAcM_delete__FP10fopAc_ac_c();
extern "C" void dComIfGp_getReverb__Fi();
extern "C" void dComIfGs_BossLife_public_Set__FSc();
extern "C" void isSwitch__10dSv_info_cCFii();
extern "C" void getItemNo__12daItemBase_cFv();
extern "C" void startCtrl__8daItem_cFv();
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_CylFRC11dCcD_SrcCyl();
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void normalize__4cXyzFv();
extern "C" void cM_atan2s__Fff();
extern "C" void cM_rndFX__Ff();
extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void __dl__FPv();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* g_fopAc_Method[8];
extern "C" extern void* __vt__8dCcD_Cyl[36];
extern "C" extern void* __vt__9dCcD_Stts[11];
extern "C" extern void* __vt__12cCcD_CylAttr[25];
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
extern "C" extern void* __vt__9cCcD_Stts[8];
extern "C" extern u8 g_dComIfG_gameInfo[122384];
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
//
// Declarations:
//
#include "d/d_a_item_static.h"
#include "d/d_save.h"
#include "d/d_com_inf_game.h"
#include "SSystem/SComponent/c_math.h"
/* ############################################################################################## */
/* 80D5ED44-80D5ED88 000000 0044+00 1/1 0/0 0/0 .data l_cc_cyl_src */
@@ -123,295 +27,244 @@ static dCcD_SrcCyl l_cc_cyl_src = {
} // mCyl
};
/* 80D5ED88-80D5EDA8 -00001 0020+00 1/0 0/0 0/0 .data l_daTagQs_Method */
SECTION_DATA static void* l_daTagQs_Method[8] = {
(void*)daTagQs_Create__FP10fopAc_ac_c,
(void*)daTagQs_Delete__FP9daTagQs_c,
(void*)daTagQs_Execute__FP9daTagQs_c,
(void*)daTagQs_IsDelete__FP9daTagQs_c,
(void*)daTagQs_Draw__FP9daTagQs_c,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
/* 80D5EDA8-80D5EDD8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TAG_QS */
SECTION_DATA extern void* g_profile_TAG_QS[12] = {
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
(void*)0x02230000, (void*)&g_fpcLf_Method,
(void*)0x000006F0, (void*)NULL,
(void*)NULL, (void*)&g_fopAc_Method,
(void*)0x01120000, (void*)&l_daTagQs_Method,
(void*)0x00040000, (void*)NULL,
};
/* 80D5EDD8-80D5EDE4 000094 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */
SECTION_DATA extern void* __vt__8cM3dGAab[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGAabFv,
};
/* 80D5EDE4-80D5EDF0 0000A0 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */
SECTION_DATA extern void* __vt__8cM3dGCyl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__8cM3dGCylFv,
};
/* 80D5EDF0-80D5EDFC 0000AC 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */
SECTION_DATA extern void* __vt__10cCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10cCcD_GSttsFv,
};
/* 80D5EDFC-80D5EE08 0000B8 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */
SECTION_DATA extern void* __vt__10dCcD_GStts[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10dCcD_GSttsFv,
};
/* 80D5DE78-80D5DFB0 000078 0138+00 1/1 0/0 0/0 .text __dt__9daTagQs_cFv */
daTagQs_c::~daTagQs_c() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80D5ECE0-80D5ECE4 000000 0004+00 5/5 0/0 0/0 .rodata @3734 */
SECTION_RODATA static f32 const lit_3734 = 1.0f;
COMPILER_STRIP_GATE(0x80D5ECE0, &lit_3734);
/* 80D5ECE4-80D5ECE8 000004 0004+00 1/3 0/0 0/0 .rodata @3735 */
SECTION_RODATA static f32 const lit_3735 = 20.0f;
COMPILER_STRIP_GATE(0x80D5ECE4, &lit_3735);
/* 80D5ECE8-80D5ECEC 000008 0004+00 0/1 0/0 0/0 .rodata @3736 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3736 = 50.0f;
COMPILER_STRIP_GATE(0x80D5ECE8, &lit_3736);
#pragma pop
daTagQs_c::~daTagQs_c() {}
/* 80D5DFB0-80D5E110 0001B0 0160+00 1/1 0/0 0/0 .text create__9daTagQs_cFv */
void daTagQs_c::create() {
// NONMATCHING
int daTagQs_c::create() {
fopAcM_SetupActor(this, daTagQs_c);
f32 typeScale;
if (getType() == 0) {
typeScale = 1.0f;
} else {
typeScale = 20.0f;
}
field_0x568 = scale.x * 50.0f * typeScale;
field_0x56c = scale.y * 50.0f * typeScale;
field_0x570 = 0;
field_0x574 = 0;
mStts.Init(0xff, 0, this);
mCyl.Set(l_cc_cyl_src);
mCyl.SetStts(&mStts);
return cPhs_COMPLEATE_e;
}
/* 80D5E110-80D5E16C 000310 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */
// dCcD_GStts::~dCcD_GStts() {
extern "C" void __dt__10dCcD_GSttsFv() {
// NONMATCHING
}
/* 80D5E16C-80D5E1B4 00036C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
// cM3dGCyl::~cM3dGCyl() {
extern "C" void __dt__8cM3dGCylFv() {
// NONMATCHING
}
/* 80D5E1B4-80D5E1FC 0003B4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */
// cM3dGAab::~cM3dGAab() {
extern "C" void __dt__8cM3dGAabFv() {
// NONMATCHING
}
/* ############################################################################################## */
/* 80D5ECEC-80D5ECF0 00000C 0004+00 1/2 0/0 0/0 .rodata @3813 */
SECTION_RODATA static f32 const lit_3813 = 4.0f;
COMPILER_STRIP_GATE(0x80D5ECEC, &lit_3813);
/* 80D5ECF0-80D5ECF4 000010 0004+00 1/1 0/0 0/0 .rodata @3814 */
SECTION_RODATA static f32 const lit_3814 = 5.0f;
COMPILER_STRIP_GATE(0x80D5ECF0, &lit_3814);
/* 80D5E1FC-80D5E220 0003FC 0024+00 2/2 0/0 0/0 .text getPower__9daTagQs_cFv */
void daTagQs_c::getPower() {
// NONMATCHING
f32 daTagQs_c::getPower() {
return getType() == 0 ? 4.0f : 5.0f;
}
/* ############################################################################################## */
/* 80D5ECF4-80D5ECF8 000014 0004+00 1/2 0/0 0/0 .rodata @3823 */
SECTION_RODATA static f32 const lit_3823 = 4.0f / 5.0f;
COMPILER_STRIP_GATE(0x80D5ECF4, &lit_3823);
/* 80D5ECF8-80D5ECFC 000018 0004+00 1/2 0/0 0/0 .rodata @3824 */
SECTION_RODATA static f32 const lit_3824 = 0.5f;
COMPILER_STRIP_GATE(0x80D5ECF8, &lit_3824);
/* 80D5E220-80D5E244 000420 0024+00 1/1 0/0 0/0 .text getSafeArea__9daTagQs_cFv */
void daTagQs_c::getSafeArea() {
// NONMATCHING
f32 daTagQs_c::getSafeArea() {
return getType() == 0 ? 0.8f : 0.5f;
}
/* ############################################################################################## */
/* 80D5ECFC-80D5ED00 00001C 0004+00 1/1 0/0 0/0 .rodata @3833 */
SECTION_RODATA static f32 const lit_3833 = 6.0f;
COMPILER_STRIP_GATE(0x80D5ECFC, &lit_3833);
/* 80D5ED00-80D5ED04 000020 0004+00 1/1 0/0 0/0 .rodata @3834 */
SECTION_RODATA static f32 const lit_3834 = 10.0f;
COMPILER_STRIP_GATE(0x80D5ED00, &lit_3834);
/* 80D5E244-80D5E268 000444 0024+00 1/1 0/0 0/0 .text getPower80__9daTagQs_cFv */
void daTagQs_c::getPower80() {
// NONMATCHING
f32 daTagQs_c::getPower80() {
return getType() == 0 ? 6.0f : 10.0f;
}
/* ############################################################################################## */
/* 80D5ED04-80D5ED08 000024 0004+00 1/1 0/0 0/0 .rodata @3843 */
SECTION_RODATA static f32 const lit_3843 = 12.0f;
COMPILER_STRIP_GATE(0x80D5ED04, &lit_3843);
/* 80D5E268-80D5E28C 000468 0024+00 1/1 0/0 0/0 .text getCenterPower__9daTagQs_cFv */
void daTagQs_c::getCenterPower() {
// NONMATCHING
f32 daTagQs_c::getCenterPower() {
return getType() == 0 ? 12.0f : 20.0f;
}
/* ############################################################################################## */
/* 80D5ED08-80D5ED10 000028 0004+04 0/2 0/0 0/0 .rodata @3863 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3863[1 + 1 /* padding */] = {
30.0f,
/* padding */
0.0f,
};
COMPILER_STRIP_GATE(0x80D5ED08, &lit_3863);
#pragma pop
/* 80D5ED10-80D5ED18 000030 0008+00 0/2 0/0 0/0 .rodata @3865 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3865[8] = {
0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D5ED10, &lit_3865);
#pragma pop
/* 80D5E28C-80D5E3F8 00048C 016C+00 1/1 0/0 0/0 .text calcPower__9daTagQs_cFff */
void daTagQs_c::calcPower(f32 param_0, f32 param_1) {
// NONMATCHING
f32 daTagQs_c::calcPower(f32 param_1, f32 param_2) {
f32 dVar12 = 1.0f;
if (getSwNo() != 0xff) {
if (fopAcM_isSwitch(this, getSwNo())) {
dVar12 = field_0x570 / 30.0f;
} else {
dVar12 = (30 - field_0x574) / 30.0f;
}
}
if (param_2 > (param_1 * 0.8f)) {
return dVar12 * getPower();
}
return dVar12 *
((1.0f - (param_2 / (param_1 * getSafeArea()))) * (getCenterPower() - getPower80()) +
getPower80());
}
/* ############################################################################################## */
/* 80D5ED18-80D5ED1C 000038 0004+00 0/2 0/0 0/0 .rodata @3934 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3934[4] = {
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x80D5ED18, &lit_3934);
#pragma pop
/* 80D5ED1C-80D5ED20 00003C 0004+00 0/2 0/0 0/0 .rodata @3935 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_3935 = 100.0f;
COMPILER_STRIP_GATE(0x80D5ED1C, &lit_3935);
#pragma pop
/* 80D5ED20-80D5ED28 000040 0008+00 0/2 0/0 0/0 .rodata @3936 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3936[8] = {
0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D5ED20, &lit_3936);
#pragma pop
/* 80D5ED28-80D5ED30 000048 0008+00 0/2 0/0 0/0 .rodata @3937 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3937[8] = {
0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D5ED28, &lit_3937);
#pragma pop
/* 80D5ED30-80D5ED38 000050 0008+00 0/2 0/0 0/0 .rodata @3938 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_3938[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
COMPILER_STRIP_GATE(0x80D5ED30, &lit_3938);
#pragma pop
/* 80D5E3F8-80D5E64C 0005F8 0254+00 1/1 0/0 0/0 .text hikiyose__FP4cXyzP4cXyzP4cXyzf */
static void hikiyose(cXyz* param_0, cXyz* param_1, cXyz* param_2, f32 param_3) {
// NONMATCHING
static int hikiyose(cXyz* param_1, cXyz* param_2, cXyz* param_3, f32 param_4) {
cXyz cStack_44 = *param_1 - *param_2;
cXyz cStack_50(cStack_44);
cStack_50.y = 0.0f;
f32 dVar6 = fabsf(cStack_50.getSquareMag());
if (dVar6 < 4.0f) {
param_2->x = param_1->x + cM_rndFX(1.0f);
param_2->y -= 0.5f;
param_2->z = param_1->z + cM_rndFX(1.0f);
param_3->y = param_2->y;
if (param_2->y < param_1->y - 100.0f) {
return 2;
}
return 1;
} else if (cStack_44.abs() < param_4) {
param_2->x = param_1->x;
param_2->y = param_1->y;
param_2->z = param_1->z;
} else {
cStack_44.normalize();
cStack_44 *= param_4;
*param_2 += cStack_44;
}
return 0;
}
/* ############################################################################################## */
/* 80D5ED38-80D5ED3C 000058 0004+00 0/1 0/0 0/0 .rodata @4042 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4042 = 110.0f;
COMPILER_STRIP_GATE(0x80D5ED38, &lit_4042);
#pragma pop
/* 80D5ED3C-80D5ED40 00005C 0004+00 0/1 0/0 0/0 .rodata @4043 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4043 = 9.0f / 10.0f;
COMPILER_STRIP_GATE(0x80D5ED3C, &lit_4043);
#pragma pop
/* 80D5E64C-80D5E9F8 00084C 03AC+00 1/1 0/0 0/0 .text search__FPvPv */
static void search(void* param_0, void* param_1) {
// NONMATCHING
static void* search(void* param_1, void* param_2) {
if (param_1 == NULL || !fopAcM_IsActor(param_1)) {
return NULL;
}
fopAc_ac_c* actor1 = (fopAc_ac_c*) param_1;
daTagQs_c* actor2 = (daTagQs_c*) param_2;
f32 dVar9 = actor2->current.pos.absXZ(actor1->current.pos);
if (dVar9 > actor2->field_0x568) {
return NULL;
}
if (actor2->current.pos.y - 110.0f > actor1->current.pos.y ||
actor2->current.pos.y + actor2->field_0x56c < actor1->current.pos.y)
{
return NULL;
}
if (actor1->current.pos.y >
actor2->current.pos.y + (actor2->field_0x56c * dVar9) / (actor2->field_0x568 * 0.9f) + 20.0f)
{
return NULL;
}
if (fopAcM_GetProfName(param_1) == PROC_ITEM) {
daItem_c* item = (daItem_c*)param_1;
item->getItemNo();
if (item->getItemNo() <= 3) {
int iVar3 = hikiyose(&actor2->current.pos, &actor1->current.pos, &actor1->old.pos,
actor2->calcPower(actor2->field_0x568, dVar9));
if (iVar3 == 1) {
item->startCtrl();
} else if (iVar3 == 2) {
fopAcM_delete(actor1);
}
}
return NULL;
}
if (fopAcM_GetProfName(param_1) == PROC_Obj_Carry) {
daObjCarry_c* carry = (daObjCarry_c*)param_1;
if (carry->getType() == 7 || carry->getType() == 1 || carry->getType() == 5) {
int iVar3 = hikiyose(&actor2->current.pos, &carry->current.pos, &carry->old.pos, actor2->calcPower(actor2->field_0x568, dVar9));
if (iVar3 == 1) {
carry->startCtrl();
} else if (iVar3 == 2) {
fopAcM_delete(carry);
}
}
return NULL;
}
if (param_1 == daPy_getPlayerActorClass()) {
daPy_py_c* player = daPy_getPlayerActorClass();
cXyz local_58 = actor2->current.pos - player->current.pos;
if (local_58.getSquareMag() >= actor2->getPower()) {
s16 sVar6 = cM_atan2s(local_58.x, local_58.z);
if (!player->checkPlayerFly()) {
player->setOutPower(actor2->calcPower(actor2->field_0x568, dVar9), sVar6, 0);
}
}
return NULL;
}
return NULL;
}
/* ############################################################################################## */
/* 80D5ED40-80D5ED44 000060 0004+00 0/1 0/0 0/0 .rodata @4090 */
#pragma push
#pragma force_active on
SECTION_RODATA static f32 const lit_4090 = -1.0f;
COMPILER_STRIP_GATE(0x80D5ED40, &lit_4090);
#pragma pop
/* 80D5E9F8-80D5EBF8 000BF8 0200+00 1/1 0/0 0/0 .text execute__9daTagQs_cFv */
void daTagQs_c::execute() {
// NONMATCHING
int daTagQs_c::execute() {
fopAcM_Search(search, this);
if (getSwNo() != 0xff) {
int bossLife;
if (fopAcM_isSwitch(this, getSwNo())) {
field_0x570++;
if (field_0x570 > 30) {
field_0x570 = 30;
}
field_0x574 = 0;
bossLife = (field_0x570 * 100.0f) / 30.0f;
if (getType() == 0) {
Z2GetAudioMgr()->seStartLevel(Z2SE_ENV_QUICKSAND_LOOP, &current.pos, 0,
dComIfGp_getReverb(fopAcM_GetRoomNo(this)), 1.0f,
1.0f, -1.0f, -1.0f, 0);
}
} else {
field_0x574++;
if (field_0x574 > 30) {
field_0x574 = 30;
}
field_0x570 = 0;
bossLife = 100.0f - field_0x574 * 100.0f / 30.0f;
}
dComIfGs_BossLife_public_Set(bossLife);
} else {
if (getType() == 0) {
Z2GetAudioMgr()->seStartLevel(Z2SE_ENV_QUICKSAND_LOOP, &current.pos, 0,
dComIfGp_getReverb(fopAcM_GetRoomNo(this)), 1.0f, 1.0f,
-1.0f, -1.0f, 0);
}
}
return 1;
}
/* 80D5EBF8-80D5EC00 000DF8 0008+00 1/1 0/0 0/0 .text draw__9daTagQs_cFv */
bool daTagQs_c::draw() {
return true;
int daTagQs_c::draw() {
return 1;
}
/* 80D5EC00-80D5EC20 000E00 0020+00 1/0 0/0 0/0 .text daTagQs_Draw__FP9daTagQs_c */
static void daTagQs_Draw(daTagQs_c* param_0) {
// NONMATCHING
static int daTagQs_Draw(daTagQs_c* i_this) {
return i_this->draw();
}
/* 80D5EC20-80D5EC40 000E20 0020+00 1/0 0/0 0/0 .text daTagQs_Execute__FP9daTagQs_c */
static void daTagQs_Execute(daTagQs_c* param_0) {
// NONMATCHING
static int daTagQs_Execute(daTagQs_c* i_this) {
return i_this->execute();
}
/* 80D5EC40-80D5EC48 000E40 0008+00 1/0 0/0 0/0 .text daTagQs_IsDelete__FP9daTagQs_c */
static bool daTagQs_IsDelete(daTagQs_c* param_0) {
return true;
static int daTagQs_IsDelete(daTagQs_c* i_this) {
return 1;
}
/* 80D5EC48-80D5EC70 000E48 0028+00 1/0 0/0 0/0 .text daTagQs_Delete__FP9daTagQs_c */
static void daTagQs_Delete(daTagQs_c* param_0) {
// NONMATCHING
static int daTagQs_Delete(daTagQs_c* i_this) {
i_this->~daTagQs_c();
return 1;
}
/* 80D5EC70-80D5EC90 000E70 0020+00 1/0 0/0 0/0 .text daTagQs_Create__FP10fopAc_ac_c */
static void daTagQs_Create(fopAc_ac_c* param_0) {
// NONMATCHING
static int daTagQs_Create(fopAc_ac_c* i_this) {
return static_cast<daTagQs_c*>(i_this)->create();
}
/* 80D5EC90-80D5ECD8 000E90 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
// cCcD_GStts::~cCcD_GStts() {
extern "C" void __dt__10cCcD_GSttsFv() {
// NONMATCHING
}
/* 80D5ED88-80D5EDA8 -00001 0020+00 1/0 0/0 0/0 .data l_daTagQs_Method */
static actor_method_class l_daTagQs_Method = {
(process_method_func)daTagQs_Create, (process_method_func)daTagQs_Delete,
(process_method_func)daTagQs_Execute, (process_method_func)daTagQs_IsDelete,
(process_method_func)daTagQs_Draw,
};
/* 80D5EDA8-80D5EDD8 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TAG_QS */
extern actor_process_profile_definition g_profile_TAG_QS = {
fpcLy_CURRENT_e,
7,
fpcPi_CURRENT_e,
PROC_TAG_QS,
&g_fpcLf_Method.mBase,
sizeof(daTagQs_c),
0,
0,
&g_fopAc_Method.base,
274,
&l_daTagQs_Method,
0x40000,
fopAc_ACTOR_e,
fopAc_CULLBOX_0_e,
};