From 1d6d179077f923d48068bb317fd4fe752241a036 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Tue, 27 Jun 2023 16:14:31 -0700 Subject: [PATCH 1/2] d_a_talk almost done --- include/d/d_attention.h | 2 + include/d/msg/d_msg_object.h | 10 +- include/f_op/f_op_actor.h | 6 +- include/rel/d/a/d_a_talk/d_a_talk.h | 17 +- rel/d/a/d_a_talk/d_a_talk.cpp | 232 ++++++++---------- rel/d/a/e/d_a_e_ym/d_a_e_ym.cpp | 2 +- rel/d/a/kytag/d_a_kytag05/d_a_kytag05.cpp | 2 +- rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.cpp | 2 +- rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.cpp | 2 +- .../d_a_tag_wara_howl/d_a_tag_wara_howl.cpp | 2 +- src/d/msg/d_msg_object.cpp | 6 +- src/f_op/f_op_actor.cpp | 10 +- 12 files changed, 140 insertions(+), 153 deletions(-) diff --git a/include/d/d_attention.h b/include/d/d_attention.h index e011115c264..114151fcc63 100644 --- a/include/d/d_attention.h +++ b/include/d/d_attention.h @@ -216,6 +216,8 @@ public: int GetLockonCount() { return mLockonCount; } bool Lockon() { return LockonTruth() || chkFlag(0x20000000); } // only matches with -O2? + static dist_entry& i_getDistTable(int i_no) { return dist_table[i_no]; } + static type_tbl_entry loc_type_tbl[3]; static type_tbl_entry act_type_tbl[5]; static dist_entry dist_table[234]; diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h index bef18638c38..b4927ab8f3a 100644 --- a/include/d/msg/d_msg_object.h +++ b/include/d/msg/d_msg_object.h @@ -121,12 +121,12 @@ public: /* 802380F4 */ void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, char*, char*, char*, s16*); /* 80238174 */ static u8* getMsgDtPtr(); - /* 80238188 */ void setProcessID(unsigned int); + /* 80238188 */ static void setProcessID(unsigned int); /* 8023819C */ static fopAc_ac_c* getActor(); - /* 802381C0 */ void getpTalkActor(); - /* 802381D4 */ void getIdx(); - /* 802381E8 */ void getNodeIdx(); - /* 802381FC */ void setStatus(u16); + /* 802381C0 */ static fopAc_ac_c* getpTalkActor(); + /* 802381D4 */ static u32 getIdx(); + /* 802381E8 */ static u16 getNodeIdx(); + /* 802381FC */ static void setStatus(u16); /* 8023822C */ static u16 getStatus(); /* 80238258 */ void getScrnDrawPtr(); /* 8023826C */ static void setTalkActor(fopAc_ac_c*); diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index dd29f9270c4..512c55baa83 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -87,10 +87,8 @@ struct actor_place { struct actor_attention_types { void setFlag(u32 flags) { mFlags |= flags; } - /* 0x00 */ u8 field_0x0[4]; - /* 0x04 */ u8 field_0x4[4]; - /* 0x08 */ u8 field_0x8[2]; - /* 0x0A */ u16 field_0xa; + /* 0x00 */ u8 field_0x0[9]; + /* 0x0A */ s16 field_0xa; /* 0x0C */ cXyz mPosition; /* 0x18 */ u32 mFlags; }; // Size = 0x1C diff --git a/include/rel/d/a/d_a_talk/d_a_talk.h b/include/rel/d/a/d_a_talk/d_a_talk.h index 2032527a837..1cb1c04005e 100644 --- a/include/rel/d/a/d_a_talk/d_a_talk.h +++ b/include/rel/d/a/d_a_talk/d_a_talk.h @@ -1,6 +1,21 @@ #ifndef D_A_TALK_H #define D_A_TALK_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" +#include "d/msg/d_msg_flow.h" + +class daTalk_c : public fopAc_ac_c { +public: + /* 80D66378 */ ~daTalk_c(); + /* 80D663E4 */ int create(); + /* 80D664AC */ int execute(); + /* 80D6665C */ int draw(); + /* 80D66664 */ void setStatus(u16); + /* 80D66688 */ u16 getStatus(); + /* 80D666A8 */ u32 messageSet(); + + /* 0x568 */ dMsgFlow_c mMsgFlow; + /* 0x5B4 */ u32 mMessageID; +}; #endif /* D_A_TALK_H */ diff --git a/rel/d/a/d_a_talk/d_a_talk.cpp b/rel/d/a/d_a_talk/d_a_talk.cpp index e5dbb20c5b0..0146c7907a8 100644 --- a/rel/d/a/d_a_talk/d_a_talk.cpp +++ b/rel/d/a/d_a_talk/d_a_talk.cpp @@ -4,51 +4,12 @@ // #include "rel/d/a/d_a_talk/d_a_talk.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" +#include "d/msg/d_msg_object.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTalk_c { - /* 80D66378 */ ~daTalk_c(); - /* 80D663E4 */ void create(); - /* 80D664AC */ void execute(); - /* 80D6665C */ bool draw(); - /* 80D66664 */ void setStatus(u16); - /* 80D66688 */ void getStatus(); - /* 80D666A8 */ void messageSet(); -}; - -struct dMsgObject_c { - /* 80238188 */ void setProcessID(unsigned int); - /* 802381C0 */ void getpTalkActor(); - /* 802381D4 */ void getIdx(); - /* 802381E8 */ void getNodeIdx(); - /* 802381FC */ void setStatus(u16); - /* 8023822C */ void getStatus(); -}; - -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(); -}; - -struct dAttention_c { - static u8 dist_table[6552]; -}; +#include "f_op/f_op_msg_mng.h" // // Forward References: @@ -65,7 +26,6 @@ extern "C" static void daTalk_Create__FP10fopAc_ac_c(); extern "C" static void daTalk_Delete__FP8daTalk_c(); extern "C" static void daTalk_Execute__FP8daTalk_c(); extern "C" static void daTalk_Draw__FP8daTalk_c(); -extern "C" extern void* g_profile_TALK[12]; // // External References: @@ -91,139 +51,151 @@ extern "C" void __dl__FPv(); extern "C" void __copy(); extern "C" void _savegpr_29(); 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" u8 dist_table__12dAttention_c[6552]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; // // Declarations: // /* 80D66378-80D663E4 000078 006C+00 1/1 0/0 0/0 .text __dt__8daTalk_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTalk_c::~daTalk_c() { - nofralloc -#include "asm/rel/d/a/d_a_talk/d_a_talk/__dt__8daTalk_cFv.s" +daTalk_c::~daTalk_c() { + dMsgObject_getMsgObjectClass()->setProcessID(-1); } -#pragma pop /* 80D663E4-80D664AC 0000E4 00C8+00 1/1 0/0 0/0 .text create__8daTalk_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTalk_c::create() { - nofralloc -#include "asm/rel/d/a/d_a_talk/d_a_talk/create__8daTalk_cFv.s" +int daTalk_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTalk_c(); + fopAcM_OnCondition(this, 8); + } + + if (getStatus() != 1) { + return cPhs_ERROR_e; + } + + mAttentionInfo = dMsgObject_getMsgObjectClass()->getpTalkActor()->mAttentionInfo; + mMessageID = -1; + return cPhs_COMPLEATE_e; } -#pragma pop /* 80D664AC-80D6665C 0001AC 01B0+00 1/1 0/0 0/0 .text execute__8daTalk_cFv */ +// g_dComIfG_gameInfo.play.mEvent being reloaded when it shouldnt be +#ifdef NONMATCHING +int daTalk_c::execute() { + if (i_dComIfGp_event_runCheck()) { + if (!mEvtInfo.checkCommandTalk()) { + fopAcM_delete(this); + } + } else { + if (fopAcM_searchPlayerDistanceXZ(this) > + dAttention_c::i_getDistTable(mAttentionInfo.field_0x0[1]).field_0x4) + { + mMessageID = -1; + fopAcM_delete(this); + } else { + mEvtInfo.i_onCondition(1); + } + } + + if (mEvtInfo.checkCommandTalk()) { + if (dMsgObject_getMsgObjectClass()->getNodeIdx() == 0xFF) { + if (mMessageID == -1) { + mMessageID = messageSet(); + } else if (getStatus() == 14) { + setStatus(16); + } else if (getStatus() == 18) { + i_dComIfGp_event_reset(); + setStatus(19); + mMessageID = -1; + fopAcM_delete(this); + } + } else if (mMessageID == -1) { + mMsgFlow.init(this, dMsgObject_getMsgObjectClass()->getNodeIdx(), 0, NULL); + mMessageID = 2; + } else if (mMsgFlow.doFlow(dMsgObject_getMsgObjectClass()->getpTalkActor(), NULL, 0)) { + i_dComIfGp_event_reset(); + mMessageID = -1; + fopAcM_delete(this); + } + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daTalk_c::execute() { +asm int daTalk_c::execute() { nofralloc #include "asm/rel/d/a/d_a_talk/d_a_talk/execute__8daTalk_cFv.s" } #pragma pop +#endif /* 80D6665C-80D66664 00035C 0008+00 1/1 0/0 0/0 .text draw__8daTalk_cFv */ -bool daTalk_c::draw() { - return true; +int daTalk_c::draw() { + return 1; } /* 80D66664-80D66688 000364 0024+00 1/1 0/0 0/0 .text setStatus__8daTalk_cFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTalk_c::setStatus(u16 param_0) { - nofralloc -#include "asm/rel/d/a/d_a_talk/d_a_talk/setStatus__8daTalk_cFUs.s" +void daTalk_c::setStatus(u16 i_status) { + dMsgObject_getMsgObjectClass()->setStatus(i_status); } -#pragma pop /* 80D66688-80D666A8 000388 0020+00 2/2 0/0 0/0 .text getStatus__8daTalk_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTalk_c::getStatus() { - nofralloc -#include "asm/rel/d/a/d_a_talk/d_a_talk/getStatus__8daTalk_cFv.s" +u16 daTalk_c::getStatus() { + return dMsgObject_getMsgObjectClass()->getStatus(); } -#pragma pop /* 80D666A8-80D666E4 0003A8 003C+00 1/1 0/0 0/0 .text messageSet__8daTalk_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTalk_c::messageSet() { - nofralloc -#include "asm/rel/d/a/d_a_talk/d_a_talk/messageSet__8daTalk_cFv.s" +u32 daTalk_c::messageSet() { + return fopMsgM_messageSet(dMsgObject_getMsgObjectClass()->getIdx(), + dMsgObject_getMsgObjectClass()->getpTalkActor(), 1000); } -#pragma pop /* 80D666E4-80D66704 0003E4 0020+00 1/0 0/0 0/0 .text daTalk_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTalk_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Create__FP10fopAc_ac_c.s" +static int daTalk_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 80D66704-80D6672C 000404 0028+00 1/0 0/0 0/0 .text daTalk_Delete__FP8daTalk_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTalk_Delete(daTalk_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Delete__FP8daTalk_c.s" +static int daTalk_Delete(daTalk_c* i_this) { + i_this->~daTalk_c(); + return 1; } -#pragma pop /* 80D6672C-80D6674C 00042C 0020+00 1/0 0/0 0/0 .text daTalk_Execute__FP8daTalk_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTalk_Execute(daTalk_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Execute__FP8daTalk_c.s" +static int daTalk_Execute(daTalk_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80D6674C-80D6676C 00044C 0020+00 1/0 0/0 0/0 .text daTalk_Draw__FP8daTalk_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTalk_Draw(daTalk_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Draw__FP8daTalk_c.s" +static int daTalk_Draw(daTalk_c* i_this) { + return i_this->draw(); } -#pragma pop /* ############################################################################################## */ /* 80D66774-80D66794 -00001 0020+00 1/0 0/0 0/0 .data l_daTalk_Method */ -SECTION_DATA static void* l_daTalk_Method[8] = { - (void*)daTalk_Create__FP10fopAc_ac_c, - (void*)daTalk_Delete__FP8daTalk_c, - (void*)daTalk_Execute__FP8daTalk_c, - (void*)NULL, - (void*)daTalk_Draw__FP8daTalk_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daTalk_Method = { + (process_method_func)daTalk_Create, (process_method_func)daTalk_Delete, + (process_method_func)daTalk_Execute, (process_method_func)NULL, + (process_method_func)daTalk_Draw, }; /* 80D66794-80D667C4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_TALK */ -SECTION_DATA extern void* g_profile_TALK[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02BD0000, (void*)&g_fpcLf_Method, - (void*)0x000005B8, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02FE0000, (void*)&l_daTalk_Method, - (void*)0x00044000, (void*)0x00060000, +extern actor_process_profile_definition g_profile_TALK = { + -3, + 7, + -3, + PROC_TALK, + &g_fpcLf_Method.mBase, + sizeof(daTalk_c), + 0, + 0, + &g_fopAc_Method.base, + 766, + &l_daTalk_Method, + 0x44000, + 0, + 6, }; diff --git a/rel/d/a/e/d_a_e_ym/d_a_e_ym.cpp b/rel/d/a/e/d_a_e_ym/d_a_e_ym.cpp index 2b46d7f8213..f9e92762bf5 100644 --- a/rel/d/a/e/d_a_e_ym/d_a_e_ym.cpp +++ b/rel/d/a/e/d_a_e_ym/d_a_e_ym.cpp @@ -2218,7 +2218,7 @@ int daE_YM_c::create() { mpPath = dPath_GetRoomPath(tmp0, fopAcM_GetRoomNo(this)); if (mpPath != NULL) { - mAttentionInfo.field_0x4[3] = 31; + mAttentionInfo.field_0x0[7] = 31; field_0x6a6 = 4; field_0x670 = current.pos; setActionMode(ACT_WAIT); diff --git a/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.cpp b/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.cpp index 8be6e59d316..887be1a8064 100644 --- a/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.cpp +++ b/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.cpp @@ -43,7 +43,7 @@ static int daKytag05_Create(fopAc_ac_c* i_this) { tag->field_0x568 = 100.0f * tag->mScale.x; if (!tag->field_0x56c) { - tag->mAttentionInfo.field_0x4[3] = 0x21; + tag->mAttentionInfo.field_0x0[7] = 0x21; tag->mAttentionInfo.setFlag(0x80); } return 4; diff --git a/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.cpp b/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.cpp index 56cfd9f1dab..31f931b973a 100644 --- a/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.cpp +++ b/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.cpp @@ -761,7 +761,7 @@ int daObjStone_c::Create() { fopAcM_setCullSizeSphere(this,0.0f,0.0f,0.0f,l_r[mStoneType]*1.2f); cLib_onBit(mAttentionInfo.mFlags,16); - mAttentionInfo.field_0x4[0] = 0x2A; + mAttentionInfo.field_0x0[4] = 0x2A; fopAcM_OnCarryType(this,fopAcM_CARRY_LIGHT); cXyz other_pos = current.pos; diff --git a/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.cpp b/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.cpp index 93fa38f9862..51312049dd6 100644 --- a/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.cpp +++ b/rel/d/a/tag/d_a_tag_howl/d_a_tag_howl.cpp @@ -31,7 +31,7 @@ int daTag_Howl_c::execute() { this->mAttentionInfo.mFlags = 0; if (isAreaCheck() != NULL) { this->mAttentionInfo.mFlags |= 0x80; - this->mAttentionInfo.field_0x4[3] = 0x41; + this->mAttentionInfo.field_0x0[7] = 0x41; } return 1; } diff --git a/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl.cpp b/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl.cpp index d4e86a802f9..c06a9564e3e 100644 --- a/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl.cpp +++ b/rel/d/a/tag/d_a_tag_wara_howl/d_a_tag_wara_howl.cpp @@ -42,7 +42,7 @@ int daTagWrHowl_c::execute() { if (chkWlfInTag()) { mAttentionInfo.mFlags |= 0x80; - mAttentionInfo.field_0x4[3] = 65; + mAttentionInfo.field_0x0[7] = 65; } return 1; diff --git a/src/d/msg/d_msg_object.cpp b/src/d/msg/d_msg_object.cpp index f6c4c6b2f4e..9b6ba087567 100644 --- a/src/d/msg/d_msg_object.cpp +++ b/src/d/msg/d_msg_object.cpp @@ -1704,7 +1704,7 @@ asm fopAc_ac_c* dMsgObject_c::getActor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgObject_c::getpTalkActor() { +asm fopAc_ac_c* dMsgObject_c::getpTalkActor() { nofralloc #include "asm/d/msg/d_msg_object/getpTalkActor__12dMsgObject_cFv.s" } @@ -1714,7 +1714,7 @@ asm void dMsgObject_c::getpTalkActor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgObject_c::getIdx() { +asm u32 dMsgObject_c::getIdx() { nofralloc #include "asm/d/msg/d_msg_object/getIdx__12dMsgObject_cFv.s" } @@ -1724,7 +1724,7 @@ asm void dMsgObject_c::getIdx() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgObject_c::getNodeIdx() { +asm u16 dMsgObject_c::getNodeIdx() { nofralloc #include "asm/d/msg/d_msg_object/getNodeIdx__12dMsgObject_cFv.s" } diff --git a/src/f_op/f_op_actor.cpp b/src/f_op/f_op_actor.cpp index ac22d565bdd..f29e2902b9b 100644 --- a/src/f_op/f_op_actor.cpp +++ b/src/f_op/f_op_actor.cpp @@ -170,11 +170,11 @@ static int fopAc_Create(void* i_this) { _this->mAttentionInfo.field_0x0[1] = 2; _this->mAttentionInfo.field_0x0[2] = 3; _this->mAttentionInfo.field_0x0[3] = 5; - _this->mAttentionInfo.field_0x4[0] = 6; - _this->mAttentionInfo.field_0x4[3] = 14; - _this->mAttentionInfo.field_0x4[1] = 15; - _this->mAttentionInfo.field_0x4[2] = 15; - _this->mAttentionInfo.field_0x8[0] = 51; + _this->mAttentionInfo.field_0x0[4] = 6; + _this->mAttentionInfo.field_0x0[7] = 14; + _this->mAttentionInfo.field_0x0[5] = 15; + _this->mAttentionInfo.field_0x0[6] = 15; + _this->mAttentionInfo.field_0x0[8] = 51; _this->mAttentionInfo.mPosition = _this->orig.pos; _this->mAttentionInfo.field_0xa = 30; dKy_tevstr_init(&_this->mTevStr, _this->orig.roomNo, -1); From 5be3caa98cbc7f546e3c4396c9520638bf980d48 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Tue, 27 Jun 2023 16:19:53 -0700 Subject: [PATCH 2/2] fix build --- rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl.cpp | 2 +- rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl.cpp b/rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl.cpp index 39184236181..b1d9656869f 100644 --- a/rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl.cpp +++ b/rel/d/a/obj/d_a_obj_digholl/d_a_obj_digholl.cpp @@ -30,7 +30,7 @@ int daObjDigholl_c::create() { fopAcM_SetMax(this, 60.0f, 10.0f, 100.0f); mAttentionInfo.mPosition = current.pos; mEyePos = mAttentionInfo.mPosition; - mAttentionInfo.field_0x4[3] = 0x20; + mAttentionInfo.field_0x0[7] = 0x20; return cPhs_COMPLEATE_e; } diff --git a/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.cpp b/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.cpp index 4c29ffb81da..cae6db28307 100644 --- a/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.cpp +++ b/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.cpp @@ -76,7 +76,7 @@ int daTagWljump_c::create() { } mAttentionInfo.field_0x0[0] = 0x32; - mAttentionInfo.field_0x4[3] = 0x32; + mAttentionInfo.field_0x0[7] = 0x32; shape_angle.z = 0; field_0x568 = -1; field_0x56c[0] = (fopAcM_GetParam(this) >> 16) & 0xf;