From 32f80f3774f52e7a0b5a4077a1e5691915049115 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Wed, 5 Jul 2023 22:41:49 -0700 Subject: [PATCH] d_a_tag_mwait OK --- include/d/a/d_a_alink.h | 42 +- include/d/msg/d_msg_flow.h | 4 +- include/f_op/f_op_actor_mng.h | 2 +- .../rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h | 20 +- rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp | 401 +++++++----------- src/d/msg/d_msg_flow.cpp | 20 +- 6 files changed, 225 insertions(+), 264 deletions(-) diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index 95ba5e5a4b5..4ad63a30769 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -6252,14 +6252,17 @@ public: enum daMidna_ERFLG0 { ERFLG0_NO_SERVICE_WAIT = 0x80, ERFLG0_FORCE_PANIC = 8, + ERFLG0_UNK_2 = 2, }; enum daMidna_FLG0 { + FLG0_UNK_80000000 = 0x80000000, FLG0_UNK_8000000 = 0x8000000, FLG0_NPC_NEAR = 0x100000, FLG0_NPC_FAR = 0x40000, FLG0_NO_INPUT = 0x4000, FLG0_NO_DRAW = 0x2000, + FLG0_UNK_400 = 0x400, FLG0_UNK_800 = 0x800, FLG0_UNK_200 = 0x200, }; @@ -6276,10 +6279,8 @@ public: u32 checkForceNormalColor() const; u32 checkForceTiredColor() const; bool checkMidnaTired(); - bool i_checkMidnaTired() { - return dComIfGs_isTransformLV(3) && !i_dComIfGs_isEventBit(0x1e08); - } void onNoServiceWait(); + /* 804BC3E0 */ void modelCallBack(int); /* 804BC5C4 */ void changeUpperBck(); /* 804BC614 */ void changeFaceBck(); @@ -6326,6 +6327,8 @@ public: /* 804C61A4 */ ~daMidna_c(); void onEndResetStateFlg0(daMidna_ERFLG0 pFlg) { mEndResetStateFlg0 |= pFlg; } + void onStateFlg0(daMidna_FLG0 i_flag) { mStateFlg0 |= i_flag; } + void offStateFlg0(daMidna_FLG0 i_flag) { mStateFlg0 &= ~i_flag; } u32 checkStateFlg0(daMidna_FLG0 flag) const { return mStateFlg0 & flag; } u32 checkStateFlg1(daMidna_FLG1 flag) const { return mStateFlg1 & flag; } void setFaceNum(int num) { mFaceNum = num; } @@ -6341,6 +6344,29 @@ public: int checkMetamorphoseEnable() { return (this->*mpFunc)(); } int checkShadowModelDrawDemoForce() const { return checkStateFlg1(FLG1_SHADOW_MODEL_DRAW_DEMO_FORCE); } + void onTagWaitPosWarp(const cXyz* param_0) { + field_0x9ac = *param_0; + onStateFlg0(FLG0_UNK_400); + onEndResetStateFlg0(ERFLG0_UNK_2); + } + + void onTagWaitPos(const cXyz* param_0) { + field_0x9ac = *param_0; + onStateFlg0(FLG0_UNK_400); + } + + void offTagWaitPos() { + offStateFlg0((daMidna_FLG0)(FLG0_UNK_80000000 | FLG0_UNK_8000000 | FLG0_UNK_400)); + } + + void onTagNoHairLead() { + onStateFlg0(FLG0_UNK_80000000); + } + + bool checkReturnAnime() const { + return field_0x5e4[0].getIdx() == 0x1CA; + } + bool checkShadowModelDrawSmode() const { if (field_0x84e != 3 && field_0x84e != 4) { if (field_0x84e == 2) { @@ -6363,7 +6389,7 @@ public: } int checkShadowReturnEnd() const { - if (field_0x5e4[0].getIdx() == 0x21c && !field_0x578->isStop()) { + if (field_0x5e4[0].getIdx() == 0x21C && !field_0x578->isStop()) { return 1; } @@ -6383,6 +6409,10 @@ public: inline static BOOL checkMidnaRealBody(); + bool i_checkMidnaTired() { + return dComIfGs_isTransformLV(3) && !i_dComIfGs_isEventBit(0x1E08); + } + static u8 const m_texDataTable[84]; static u8 const m_anmDataTable[636]; @@ -6477,7 +6507,9 @@ private: /* 0x091C */ cXyz field_0x91c[5]; /* 0x0958 */ u8 field_0x958[0xC]; // cXyz here, fix later /* 0x0964 */ cXyz field_0x964[5]; - /* 0x09A0 */ u8 field_0x9a0[0x14]; + /* 0x09A0 */ u8 field_0x9a0[0xC]; + /* 0x09AC */ cXyz field_0x9ac; + /* 0x09B8 */ u8 field_0x9b8[0x9C4 - 0x9B8]; /* 0x09C4 */ cXyz field_0x9c4; /* 0x09D0 */ u8 field_0x9d0[4]; /* 0x09D4 */ daMidna_func mpFunc; diff --git a/include/d/msg/d_msg_flow.h b/include/d/msg/d_msg_flow.h index 1374caae9da..3948f3a427d 100644 --- a/include/d/msg/d_msg_flow.h +++ b/include/d/msg/d_msg_flow.h @@ -37,9 +37,9 @@ public: /* 80249F00 */ dMsgFlow_c(); /* 80249F48 */ virtual ~dMsgFlow_c(); - /* 80249F90 */ void init(fopAc_ac_c*, int, int, fopAc_ac_c**); + /* 80249F90 */ void init(fopAc_ac_c* i_partner, int i_flowID, int, fopAc_ac_c**); /* 8024A13C */ int checkOpenDoor(fopAc_ac_c*, int*); - /* 8024A2D8 */ int doFlow(fopAc_ac_c*, fopAc_ac_c**, int); + /* 8024A2D8 */ int doFlow(fopAc_ac_c*, fopAc_ac_c**, int i_flow); /* 8024A424 */ int checkEventRender(int*, int*, int*, int*); /* 8024A4C4 */ void remove(); /* 8024A528 */ u16 getEventId(int*); diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 6106bb1ae94..97a4eaf9767 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -464,7 +464,7 @@ s32 fopAcM_cullingCheck(const fopAc_ac_c*); void* event_second_actor(u16); s32 fopAcM_orderTalkEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16); s32 fopAcM_orderTalkItemBtnEvent(u16, fopAc_ac_c*, fopAc_ac_c*, u16, u16); -s32 fopAcM_orderSpeakEvent(fopAc_ac_c*, u16, u16); +s32 fopAcM_orderSpeakEvent(fopAc_ac_c* i_actor, u16 i_priority, u16 i_flag); s32 fopAcM_orderDoorEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16); s32 fopAcM_orderCatchEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16); s32 fopAcM_orderOtherEvent(fopAc_ac_c*, const char*, u16, u16, u16); diff --git a/include/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h b/include/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h index 88af3a45bd5..89da5922532 100644 --- a/include/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h +++ b/include/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h @@ -1,6 +1,24 @@ #ifndef D_A_TAG_MWAIT_H #define D_A_TAG_MWAIT_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" +#include "d/msg/d_msg_flow.h" + +class daTagMwait_c : public fopAc_ac_c { +public: + /* 80D5BE18 */ int create(); + /* 80D5C01C */ ~daTagMwait_c(); + /* 80D5C0A8 */ int execute(); + + /* 0x568 */ u8 mOnSw; + /* 0x569 */ u8 mEnterSw; + /* 0x56A */ bool mInitMsgFlow; + /* 0x56B */ u8 mWarpToPos; + /* 0x56C */ bool mEnteredTrigger; + /* 0x56D */ u8 field_0x56d; + /* 0x570 */ f32 field_0x570; + /* 0x574 */ cXyz mWaitPosition; + /* 0x580 */ dMsgFlow_c mMsgFlow; +}; #endif /* D_A_TAG_MWAIT_H */ diff --git a/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp b/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp index 777f8b70f9a..f146eeba825 100644 --- a/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp +++ b/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp @@ -1,277 +1,188 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_tag_mwait -// +/** + * d_a_tag_mwait.cpp + * Midna Wait Trigger + */ #include "rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTagMwait_c { - /* 80D5BE18 */ void create(); - /* 80D5C01C */ ~daTagMwait_c(); - /* 80D5C0A8 */ void execute(); -}; - -struct daPy_py_c { - static u8 m_midnaActor[4]; -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dMsgFlow_c { - /* 80249F00 */ dMsgFlow_c(); - /* 80249F48 */ ~dMsgFlow_c(); - /* 80249F90 */ void init(fopAc_ac_c*, int, int, fopAc_ac_c**); - /* 8024A2D8 */ void doFlow(fopAc_ac_c*, fopAc_ac_c**, int); -}; - -struct dEvt_control_c { - /* 80042468 */ void reset(); -}; - -// -// Forward References: -// - -extern "C" void create__12daTagMwait_cFv(); -extern "C" static void daTagMwait_Create__FP10fopAc_ac_c(); -extern "C" void __dt__12daTagMwait_cFv(); -extern "C" static void daTagMwait_Delete__FP12daTagMwait_c(); -extern "C" void execute__12daTagMwait_cFv(); -extern "C" static void daTagMwait_Execute__FP12daTagMwait_c(); -extern "C" static bool daTagMwait_Draw__FP12daTagMwait_c(); -extern "C" extern void* g_profile_Tag_Mwait[12]; - -// -// External References: -// - -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_orderSpeakEvent__FP10fopAc_ac_cUsUs(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void reset__14dEvt_control_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 __dl__FPv(); -extern "C" void PSVECScale(); -extern "C" void PSVECSquareDistance(); -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* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u32 __float_nan; -extern "C" u8 m_midnaActor__9daPy_py_c[4]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80D5C580-80D5C584 000000 0004+00 2/2 0/0 0/0 .rodata @3841 */ -SECTION_RODATA static f32 const lit_3841 = -1.0f; -COMPILER_STRIP_GATE(0x80D5C580, &lit_3841); - -/* 80D5C584-80D5C588 000004 0004+00 0/1 0/0 0/0 .rodata @3842 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3842 = 100.0f; -COMPILER_STRIP_GATE(0x80D5C584, &lit_3842); -#pragma pop - -/* 80D5C588-80D5C58C 000008 0004+00 0/1 0/0 0/0 .rodata @3843 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3843 = 10.0f; -COMPILER_STRIP_GATE(0x80D5C588, &lit_3843); -#pragma pop - -/* 80D5C58C-80D5C590 00000C 0004+00 0/1 0/0 0/0 .rodata @3844 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3844 = 220.0f; -COMPILER_STRIP_GATE(0x80D5C58C, &lit_3844); -#pragma pop - -/* 80D5C590-80D5C598 000010 0004+04 0/1 0/0 0/0 .rodata @3845 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3845[1 + 1 /* padding */] = { - 150.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80D5C590, &lit_3845); -#pragma pop - -/* 80D5C598-80D5C5A0 000018 0008+00 0/1 0/0 0/0 .rodata @3847 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3847[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D5C598, &lit_3847); -#pragma pop +#include "JSystem/JKernel/JKRHeap.h" +#include "d/a/d_a_alink.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" /* 80D5BE18-80D5BFFC 000078 01E4+00 1/1 0/0 0/0 .text create__12daTagMwait_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagMwait_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/create__12daTagMwait_cFv.s" +int daTagMwait_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagMwait_c(); + fopAcM_OnCondition(this, 8); + } + + mEnterSw = fopAcM_GetParam(this) >> 8; + + if (i_fopAcM_isSwitch(this, mEnterSw)) { + return cPhs_ERROR_e; + } + + mOnSw = fopAcM_GetParam(this); + + u32 prm = (fopAcM_GetParam(this) >> 0x10) & 0xFF; + if (prm == 0 || prm == 0xFF) { + field_0x570 = -1.0f; + } else { + field_0x570 = prm * prm * 100.0f; + } + + mWarpToPos = shape_angle.x & 0xF; + if (mWarpToPos >= 2) { + mWarpToPos = 0; + } + + field_0x56d = (shape_angle.x >> 4) & 0xF; + if (field_0x56d >= 2) { + field_0x56d = 0; + } + + mScale *= 100.0f; + + u32 wait_y_offset = (fopAcM_GetParam(this) >> 0x18) & 0xFF; + if (wait_y_offset == 0 || wait_y_offset == 0xFF) { + wait_y_offset = 0; + } + + mWaitPosition.set(current.pos.x, current.pos.y + (wait_y_offset * 10.0f), current.pos.z); + mAttentionInfo.mPosition.set(mWaitPosition.x, mWaitPosition.y + 220.0f, mWaitPosition.z); + mEyePos.set(mWaitPosition.x, mWaitPosition.y + 150.0f, mWaitPosition.z); + + mAttentionInfo.field_0x0[1] = 54; + mAttentionInfo.mFlags = 0; + return cPhs_COMPLEATE_e; } -#pragma pop /* 80D5BFFC-80D5C01C 00025C 0020+00 1/0 0/0 0/0 .text daTagMwait_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagMwait_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Create__FP10fopAc_ac_c.s" +static int daTagMwait_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 80D5C01C-80D5C080 00027C 0064+00 1/1 0/0 0/0 .text __dt__12daTagMwait_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagMwait_c::~daTagMwait_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/__dt__12daTagMwait_cFv.s" -} -#pragma pop +daTagMwait_c::~daTagMwait_c() {} /* 80D5C080-80D5C0A8 0002E0 0028+00 1/0 0/0 0/0 .text daTagMwait_Delete__FP12daTagMwait_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagMwait_Delete(daTagMwait_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Delete__FP12daTagMwait_c.s" +static int daTagMwait_Delete(daTagMwait_c* i_this) { + i_this->~daTagMwait_c(); + return 1; } -#pragma pop - -/* ############################################################################################## */ -/* 80D5C5A0-80D5C5A8 000020 0004+04 0/1 0/0 0/0 .rodata @4006 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4006[4 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D5C5A0, &lit_4006); -#pragma pop - -/* 80D5C5A8-80D5C5B0 000028 0008+00 0/1 0/0 0/0 .rodata @4007 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4007[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D5C5A8, &lit_4007); -#pragma pop - -/* 80D5C5B0-80D5C5B8 000030 0008+00 0/1 0/0 0/0 .rodata @4008 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4008[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D5C5B0, &lit_4008); -#pragma pop - -/* 80D5C5B8-80D5C5C0 000038 0008+00 0/1 0/0 0/0 .rodata @4009 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4009[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D5C5B8, &lit_4009); -#pragma pop - -/* 80D5C5C0-80D5C5C4 000040 0004+00 0/1 0/0 0/0 .rodata @4010 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4010 = 5.0f; -COMPILER_STRIP_GATE(0x80D5C5C0, &lit_4010); -#pragma pop /* 80D5C0A8-80D5C550 000308 04A8+00 1/1 0/0 0/0 .text execute__12daTagMwait_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagMwait_c::execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/execute__12daTagMwait_cFv.s" +int daTagMwait_c::execute() { + daMidna_c* midna_p = daPy_py_c::getMidnaActor(); + daPy_py_c* player_p = daPy_getLinkPlayerActorClass(); + + if (midna_p == NULL) { + return 1; + } + + mAttentionInfo.mFlags = 0; + + if (mEvtInfo.checkCommandTalk()) { + if (!mEnteredTrigger || !midna_p->checkReturnAnime()) { + if (!mInitMsgFlow) { + mMsgFlow.init(this, (u16)shape_angle.z, 0, NULL); + mInitMsgFlow = true; + } else if (mMsgFlow.doFlow(this, NULL, 0)) { + i_dComIfGp_event_reset(); + + if (mEnteredTrigger) { + fopAcM_delete(this); + return 1; + } + } + } + } else if (mEnteredTrigger) { + fopAcM_orderSpeakEvent(this, 0, 0); + mEvtInfo.i_onCondition(1); + mAttentionInfo.mPosition = midna_p->mAttentionInfo.mPosition; + mEyePos = mAttentionInfo.mPosition; + } else { + mInitMsgFlow = false; + + if (daPy_py_c::i_checkNowWolf() && midna_p != NULL && i_fopAcM_isSwitch(this, mOnSw)) { + if (mWarpToPos) { + midna_p->onTagWaitPosWarp(&mWaitPosition); + } else { + midna_p->onTagWaitPos(&mWaitPosition); + } + + if (midna_p->current.pos.abs(mWaitPosition) < 5.0f) { + if (field_0x56d == 1) { + midna_p->onTagNoHairLead(); + } + + f32 player_dist = player_p->current.pos.abs2XZ(current.pos); + if ((player_dist <= mScale.x * mScale.x && + player_p->current.pos.y >= current.pos.y && + player_p->current.pos.y <= current.pos.y + mScale.y) || + i_fopAcM_isSwitch(this, mEnterSw)) + { + midna_p->offTagWaitPos(); + i_fopAcM_onSwitch(this, mEnterSw); + mEnteredTrigger = true; + + if (shape_angle.z == 0) { + fopAcM_delete(this); + } else { + mAttentionInfo.mPosition = midna_p->mAttentionInfo.mPosition; + mEyePos = mAttentionInfo.mPosition; + fopAcM_orderSpeakEvent(this, 0, 0); + mEvtInfo.i_onCondition(1); + } + } else if (field_0x570 > 0.0f && player_dist < field_0x570 && + player_p->current.pos.y >= current.pos.y && + player_p->current.pos.y <= current.pos.y + mScale.y) + { + mAttentionInfo.mFlags = 2; + mEvtInfo.i_onCondition(1); + } + } + } + } + + return 1; } -#pragma pop /* 80D5C550-80D5C570 0007B0 0020+00 1/0 0/0 0/0 .text daTagMwait_Execute__FP12daTagMwait_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagMwait_Execute(daTagMwait_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Execute__FP12daTagMwait_c.s" +static int daTagMwait_Execute(daTagMwait_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80D5C570-80D5C578 0007D0 0008+00 1/0 0/0 0/0 .text daTagMwait_Draw__FP12daTagMwait_c */ -static bool daTagMwait_Draw(daTagMwait_c* param_0) { - return true; +static int daTagMwait_Draw(daTagMwait_c* i_this) { + return 1; } /* ############################################################################################## */ /* 80D5C5C4-80D5C5E4 -00001 0020+00 1/0 0/0 0/0 .data l_daTagMwait_Method */ -SECTION_DATA static void* l_daTagMwait_Method[8] = { - (void*)daTagMwait_Create__FP10fopAc_ac_c, - (void*)daTagMwait_Delete__FP12daTagMwait_c, - (void*)daTagMwait_Execute__FP12daTagMwait_c, - (void*)NULL, - (void*)daTagMwait_Draw__FP12daTagMwait_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daTagMwait_Method = { + (process_method_func)daTagMwait_Create, (process_method_func)daTagMwait_Delete, + (process_method_func)daTagMwait_Execute, (process_method_func)NULL, + (process_method_func)daTagMwait_Draw, }; /* 80D5C5E4-80D5C614 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Mwait */ -SECTION_DATA extern void* g_profile_Tag_Mwait[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02C30000, (void*)&g_fpcLf_Method, - (void*)0x000005CC, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x01000000, (void*)&l_daTagMwait_Method, - (void*)0x00044000, (void*)0x030E0000, +extern actor_process_profile_definition g_profile_Tag_Mwait = { + -3, + 7, + -3, + PROC_Tag_Mwait, + &g_fpcLf_Method.mBase, + sizeof(daTagMwait_c), + 0, + 0, + &g_fopAc_Method.base, + 256, + &l_daTagMwait_Method, + 0x44000, + 3, + 14, }; diff --git a/src/d/msg/d_msg_flow.cpp b/src/d/msg/d_msg_flow.cpp index a3d75a80d5d..6dd30aab18e 100644 --- a/src/d/msg/d_msg_flow.cpp +++ b/src/d/msg/d_msg_flow.cpp @@ -448,7 +448,7 @@ SECTION_DEAD static char const* const stringBase_80399CB5 = "FLI1"; /* 80249F90-8024A13C 2448D0 01AC+00 0/0 10/10 86/86 .text * init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c */ -void dMsgFlow_c::init(fopAc_ac_c* param_0, int param_1, int param_2, fopAc_ac_c** param_3) { +void dMsgFlow_c::init(fopAc_ac_c* i_partner, int i_flowID, int param_2, fopAc_ac_c** param_3) { u16 uVar4; u16 flow_val; @@ -459,11 +459,11 @@ void dMsgFlow_c::init(fopAc_ac_c* param_0, int param_1, int param_2, fopAc_ac_c* } if (param_2 == 0 && g_MsgObject_HIO_c.mMsgDebug == 2) { - param_1 = g_MsgObject_HIO_c.mFlowIndex; + i_flowID = g_MsgObject_HIO_c.mFlowIndex; } - flow_val = param_1; + flow_val = i_flowID; - dMsgObject_changeFlowGroup(param_1); + dMsgObject_changeFlowGroup(i_flowID); if (param_2 == 0) { setInitValue(1); mFlow_p = getMsgDataBlock("FLW1"); @@ -473,15 +473,15 @@ void dMsgFlow_c::init(fopAc_ac_c* param_0, int param_1, int param_2, fopAc_ac_c* field_0x18 = field_0x14 + *(u16*)(mFlow_p + 8); mFlow = flow_val; - if (param_0 != NULL) { - dMsgObject_setTalkPartner(param_0); + if (i_partner != NULL) { + dMsgObject_setTalkPartner(i_partner); } setNodeIndex(getInitNodeIndex(mFlow), param_3); } else { uVar4 = field_0x10; setInitValue(0); - if (param_0 != NULL) { - dMsgObject_setTalkPartner(param_0); + if (i_partner != NULL) { + dMsgObject_setTalkPartner(i_partner); } setNodeIndex(uVar4, param_3); } @@ -568,9 +568,9 @@ asm int dMsgFlow_c::checkOpenDoor(fopAc_ac_c* param_0, int* param_1) { /* 8024A2D8-8024A424 244C18 014C+00 0/0 21/21 78/78 .text * doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci */ -int dMsgFlow_c::doFlow(fopAc_ac_c* param_0, fopAc_ac_c** param_1, int flow) { +int dMsgFlow_c::doFlow(fopAc_ac_c* param_0, fopAc_ac_c** param_1, int i_flow) { int check = false; - u16 set_flow = flow; + u16 set_flow = i_flow; dMsgObject_changeFlowGroup(mFlow); if (dMsgObject_isKillMessageFlag()) {