d_a_tag_mwait OK

This commit is contained in:
TakaRikka 2023-07-05 22:41:49 -07:00
parent f825fdb16e
commit 32f80f3774
6 changed files with 225 additions and 264 deletions

View File

@ -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;

View File

@ -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*);

View File

@ -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);

View File

@ -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 */

View File

@ -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<daTagMwait_c*>(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,
};

View File

@ -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()) {