From 05c09f99f6ee2ecd2522513fd08901ac5dee9090 Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Tue, 14 Feb 2023 15:00:14 -0700 Subject: [PATCH 1/4] daTagAssist_Create --- .../d_a_tag_assistance/d_a_tag_assistance.h | 21 +++++++++++++++++ .../d_a_tag_assistance/d_a_tag_assistance.cpp | 23 ++++++++----------- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h b/include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h index 5478df3e0f..b0eba3af3d 100644 --- a/include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h +++ b/include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h @@ -2,5 +2,26 @@ #define D_A_TAG_ASSISTANCE_H #include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daTagAssist_c : public fopAc_ac_c { +public: + void create_init() { + mAttentionInfo.mFlags = 0; + field_0x570 = -1; + } + + int create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagAssist_c(); + fopAcM_OnCondition(this, 8); + } + create_init(); + return cPhs_COMPLEATE_e; + } + + u8 field_0x568[8]; + s16 field_0x570; +}; #endif /* D_A_TAG_ASSISTANCE_H */ diff --git a/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp b/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp index d3e8f7ca4c..523a39bac3 100644 --- a/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp +++ b/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp @@ -6,17 +6,7 @@ #include "rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTagAssist_c {}; +#include "d/d_procname.h" // // Forward References: @@ -35,8 +25,8 @@ extern "C" extern void* g_profile_Tag_Assist[12]; extern "C" void __ct__10fopAc_ac_cFv(); extern "C" void __dt__10fopAc_ac_cFv(); extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; +// 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]; // @@ -45,6 +35,12 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384]; /* 80D55E38-80D55E98 000078 0060+00 1/0 0/0 0/0 .text daTagAssist_Create__FP10fopAc_ac_c */ +#ifndef NONMATCHING +static int daTagAssist_Create(fopAc_ac_c* i_actorP) { + daTagAssist_c* tag_assist = (daTagAssist_c*)i_actorP; + return tag_assist->create(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -53,6 +49,7 @@ static asm void daTagAssist_Create(fopAc_ac_c* param_0) { #include "asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Create__FP10fopAc_ac_c.s" } #pragma pop +#endif /* 80D55E98-80D55EC8 0000D8 0030+00 1/0 0/0 0/0 .text daTagAssist_Execute__FP13daTagAssist_c */ #pragma push From 6f9e65017537a7402d2a5ea747fd8db4c0cdfe7d Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Tue, 14 Feb 2023 15:47:34 -0700 Subject: [PATCH 2/4] daTagAssist_Execute --- .../d_a_tag_assistance/d_a_tag_assistance.h | 6 +++++ .../d_a_tag_assistance/d_a_tag_assistance.cpp | 23 ++++++++----------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h b/include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h index b0eba3af3d..977192f2f6 100644 --- a/include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h +++ b/include/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h @@ -3,6 +3,7 @@ #include "dolphin/types.h" #include "f_op/f_op_actor_mng.h" +#include "d/com/d_com_inf_game.h" class daTagAssist_c : public fopAc_ac_c { public: @@ -20,6 +21,11 @@ public: return cPhs_COMPLEATE_e; } + int execute() { + fopAcM_searchPlayerDistanceXZ(this); + return 1; + } + u8 field_0x568[8]; s16 field_0x570; }; diff --git a/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp b/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp index 523a39bac3..5ff14c3785 100644 --- a/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp +++ b/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp @@ -27,7 +27,7 @@ extern "C" void __dt__10fopAc_ac_cFv(); extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); // 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 u8 g_dComIfG_gameInfo[122384]; // // Declarations: @@ -35,23 +35,17 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384]; /* 80D55E38-80D55E98 000078 0060+00 1/0 0/0 0/0 .text daTagAssist_Create__FP10fopAc_ac_c */ -#ifndef NONMATCHING -static int daTagAssist_Create(fopAc_ac_c* i_actorP) { - daTagAssist_c* tag_assist = (daTagAssist_c*)i_actorP; +static int daTagAssist_Create(fopAc_ac_c* i_this) { + daTagAssist_c* tag_assist = (daTagAssist_c*)i_this; return tag_assist->create(); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagAssist_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Create__FP10fopAc_ac_c.s" -} -#pragma pop -#endif /* 80D55E98-80D55EC8 0000D8 0030+00 1/0 0/0 0/0 .text daTagAssist_Execute__FP13daTagAssist_c */ +#ifndef NONMATCHING +static int daTagAssist_Execute(daTagAssist_c* i_this) { + return i_this->execute(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -60,6 +54,7 @@ static asm void daTagAssist_Execute(daTagAssist_c* param_0) { #include "asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Execute__FP13daTagAssist_c.s" } #pragma pop +#endif /* 80D55EC8-80D55ED0 000108 0008+00 1/0 0/0 0/0 .text daTagAssist_IsDelete__FP13daTagAssist_c */ static bool daTagAssist_IsDelete(daTagAssist_c* param_0) { From d5468665b64c2f65c30af3afeb871cf5213808d6 Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Tue, 14 Feb 2023 15:50:22 -0700 Subject: [PATCH 3/4] daTagAssist_Delete --- .../d_a_tag_assistance/d_a_tag_assistance.cpp | 24 ++++--------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp b/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp index 5ff14c3785..abe295e54e 100644 --- a/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp +++ b/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp @@ -41,35 +41,21 @@ static int daTagAssist_Create(fopAc_ac_c* i_this) { } /* 80D55E98-80D55EC8 0000D8 0030+00 1/0 0/0 0/0 .text daTagAssist_Execute__FP13daTagAssist_c */ -#ifndef NONMATCHING static int daTagAssist_Execute(daTagAssist_c* i_this) { return i_this->execute(); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagAssist_Execute(daTagAssist_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Execute__FP13daTagAssist_c.s" -} -#pragma pop -#endif /* 80D55EC8-80D55ED0 000108 0008+00 1/0 0/0 0/0 .text daTagAssist_IsDelete__FP13daTagAssist_c */ -static bool daTagAssist_IsDelete(daTagAssist_c* param_0) { +static bool daTagAssist_IsDelete(daTagAssist_c* i_this) { return true; } /* 80D55ED0-80D55F00 000110 0030+00 1/0 0/0 0/0 .text daTagAssist_Delete__FP13daTagAssist_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagAssist_Delete(daTagAssist_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Delete__FP13daTagAssist_c.s" +static int daTagAssist_Delete(daTagAssist_c* i_this) { + i_this->~daTagAssist_c(); + return 1; + } -#pragma pop /* ############################################################################################## */ /* 80D55F08-80D55F28 -00001 0020+00 1/0 0/0 0/0 .data l_daTagAssist_Method */ From 8dc421ecd4a7974f12f9d1410ecdadda987f8953 Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Tue, 14 Feb 2023 17:03:42 -0700 Subject: [PATCH 4/4] pr cleanup --- Progress.md | 8 +- .../daTagAssist_Create__FP10fopAc_ac_c.s | 27 ------- .../daTagAssist_Delete__FP13daTagAssist_c.s | 14 ---- .../daTagAssist_Execute__FP13daTagAssist_c.s | 13 --- .../d_a_tag_assistance/d_a_tag_assistance.cpp | 79 ++++++++----------- 5 files changed, 35 insertions(+), 106 deletions(-) delete mode 100644 asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Delete__FP13daTagAssist_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Execute__FP13daTagAssist_c.s diff --git a/Progress.md b/Progress.md index b3eae954f2..5783a5801d 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 32.316787% | 1299352 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 32.316787% | 1299352 | 4020672 -RELs | 33.188039% | 3816732 | 11500324 -Total | 32.962343% | 5116084 | 15520996 +RELs | 33.189708% | 3816924 | 11500324 +Total | 32.963580% | 5116276 | 15520996 ## RELs @@ -710,7 +710,7 @@ d_a_tag_TWgate | 53.384834% | 10504 | 19676 d_a_tag_ajnot | 100.000000% | 1232 | 1232 d_a_tag_allmato | 30.234070% | 3720 | 12304 d_a_tag_arena | 82.022472% | 584 | 712 -d_a_tag_assistance | 76.699029% | 632 | 824 +d_a_tag_assistance | 100.000000% | 824 | 824 d_a_tag_attack_item | 43.212237% | 1808 | 4184 d_a_tag_attention | 50.000000% | 1012 | 2024 d_a_tag_bottle_item | 38.554217% | 1024 | 2656 @@ -785,4 +785,4 @@ d_a_vrbox2 | 34.977578% | 2184 | 6244 d_a_warp_bug | 54.940711% | 1112 | 2024 d_a_ykgr | 44.400631% | 2252 | 5072 f_pc_profile_lst | 100.000000% | 28156 | 28156 -Total | 33.188039% | 3816732 | 11500324 +Total | 33.189708% | 3816924 | 11500324 diff --git a/asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 6d29c8cb0b..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_80D55E38: -/* 80D55E38 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D55E3C 7C 08 02 A6 */ mflr r0 -/* 80D55E40 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D55E44 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D55E48 7C 7F 1B 78 */ mr r31, r3 -/* 80D55E4C 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D55E50 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D55E54 40 82 00 1C */ bne lbl_80D55E70 -/* 80D55E58 28 1F 00 00 */ cmplwi r31, 0 -/* 80D55E5C 41 82 00 08 */ beq lbl_80D55E64 -/* 80D55E60 4B 2C 2D 05 */ bl __ct__10fopAc_ac_cFv -lbl_80D55E64: -/* 80D55E64 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80D55E68 60 00 00 08 */ ori r0, r0, 8 -/* 80D55E6C 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80D55E70: -/* 80D55E70 38 00 00 00 */ li r0, 0 -/* 80D55E74 90 1F 05 5C */ stw r0, 0x55c(r31) -/* 80D55E78 38 00 FF FF */ li r0, -1 -/* 80D55E7C B0 1F 05 70 */ sth r0, 0x570(r31) -/* 80D55E80 38 60 00 04 */ li r3, 4 -/* 80D55E84 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D55E88 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D55E8C 7C 08 03 A6 */ mtlr r0 -/* 80D55E90 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D55E94 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Delete__FP13daTagAssist_c.s b/asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Delete__FP13daTagAssist_c.s deleted file mode 100644 index a89425c872..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Delete__FP13daTagAssist_c.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80D55ED0: -/* 80D55ED0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D55ED4 7C 08 02 A6 */ mflr r0 -/* 80D55ED8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D55EDC 28 03 00 00 */ cmplwi r3, 0 -/* 80D55EE0 41 82 00 0C */ beq lbl_80D55EEC -/* 80D55EE4 38 80 00 00 */ li r4, 0 -/* 80D55EE8 4B 2C 2D A5 */ bl __dt__10fopAc_ac_cFv -lbl_80D55EEC: -/* 80D55EEC 38 60 00 01 */ li r3, 1 -/* 80D55EF0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D55EF4 7C 08 03 A6 */ mtlr r0 -/* 80D55EF8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D55EFC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Execute__FP13daTagAssist_c.s b/asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Execute__FP13daTagAssist_c.s deleted file mode 100644 index 61315df5e6..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance/daTagAssist_Execute__FP13daTagAssist_c.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80D55E98: -/* 80D55E98 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D55E9C 7C 08 02 A6 */ mflr r0 -/* 80D55EA0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D55EA4 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D55EA8 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D55EAC 80 84 5D AC */ lwz r4, 0x5dac(r4) -/* 80D55EB0 4B 2C 4A B5 */ bl fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c -/* 80D55EB4 38 60 00 01 */ li r3, 1 -/* 80D55EB8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D55EBC 7C 08 03 A6 */ mtlr r0 -/* 80D55EC0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D55EC4 4E 80 00 20 */ blr diff --git a/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp b/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp index abe295e54e..f724b9977e 100644 --- a/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp +++ b/rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.cpp @@ -1,38 +1,13 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_tag_assistance -// +/** + * d_a_tag_assistance.cpp + * + */ #include "rel/d/a/tag/d_a_tag_assistance/d_a_tag_assistance.h" #include "dol2asm.h" #include "dolphin/types.h" #include "d/d_procname.h" -// -// Forward References: -// - -extern "C" static void daTagAssist_Create__FP10fopAc_ac_c(); -extern "C" static void daTagAssist_Execute__FP13daTagAssist_c(); -extern "C" static bool daTagAssist_IsDelete__FP13daTagAssist_c(); -extern "C" static void daTagAssist_Delete__FP13daTagAssist_c(); -extern "C" extern void* g_profile_Tag_Assist[12]; - -// -// External References: -// - -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -// 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]; - -// -// Declarations: -// - /* 80D55E38-80D55E98 000078 0060+00 1/0 0/0 0/0 .text daTagAssist_Create__FP10fopAc_ac_c */ static int daTagAssist_Create(fopAc_ac_c* i_this) { @@ -46,36 +21,44 @@ static int daTagAssist_Execute(daTagAssist_c* i_this) { } /* 80D55EC8-80D55ED0 000108 0008+00 1/0 0/0 0/0 .text daTagAssist_IsDelete__FP13daTagAssist_c */ -static bool daTagAssist_IsDelete(daTagAssist_c* i_this) { - return true; +static int daTagAssist_IsDelete(daTagAssist_c* i_this) { + return 1; } /* 80D55ED0-80D55F00 000110 0030+00 1/0 0/0 0/0 .text daTagAssist_Delete__FP13daTagAssist_c */ static int daTagAssist_Delete(daTagAssist_c* i_this) { i_this->~daTagAssist_c(); return 1; - } /* ############################################################################################## */ /* 80D55F08-80D55F28 -00001 0020+00 1/0 0/0 0/0 .data l_daTagAssist_Method */ -SECTION_DATA static void* l_daTagAssist_Method[8] = { - (void*)daTagAssist_Create__FP10fopAc_ac_c, - (void*)daTagAssist_Delete__FP13daTagAssist_c, - (void*)daTagAssist_Execute__FP13daTagAssist_c, - (void*)daTagAssist_IsDelete__FP13daTagAssist_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daTagAssist_Method = { + (process_method_func)daTagAssist_Create, + (process_method_func)daTagAssist_Delete, + (process_method_func)daTagAssist_Execute, + (process_method_func)daTagAssist_IsDelete }; /* 80D55F28-80D55F58 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Assist */ -SECTION_DATA extern void* g_profile_Tag_Assist[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02CD0000, (void*)&g_fpcLf_Method, - (void*)0x00000574, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x010A0000, (void*)&l_daTagAssist_Method, - (void*)0x00040000, (void*)0x000E0000, +extern actor_process_profile_definition g_profile_Tag_Assist = { + -3, // mLayerID + 7, // mListID + -3, // mListPrio + PROC_Tag_Assist, // mProcName + 0, // padding + &g_fpcLf_Method.mBase, // mSubMtd + sizeof(daTagAssist_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // mSubMtd + 0x010A, // mPriority + 0, // padding + 0, // padding + &l_daTagAssist_Method, // mSubMtd + 0x00040000, // mStatus + 0x00, // mActorType + 0x0E, // mCullType + 0, // padding + 0, // padding };