From 8951f20241b151c3e83fe38de96b616e5a9b08ac Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Tue, 14 Feb 2023 18:25:27 -0700 Subject: [PATCH] d_a_tag_schedule OK (#282) * daTagSchedule_Create * daTagSchedule_Delete * pr cleanup * correct TU comment --- Progress.md | 8 +- .../daTagSchedule_Create__FP10fopAc_ac_c.s | 23 ---- ...aTagSchedule_Delete__FP15daTagSchedule_c.s | 14 --- .../a/tag/d_a_tag_schedule/d_a_tag_schedule.h | 14 +++ .../tag/d_a_tag_schedule/d_a_tag_schedule.cpp | 100 ++++++------------ 5 files changed, 52 insertions(+), 107 deletions(-) delete mode 100644 asm/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule/daTagSchedule_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule/daTagSchedule_Delete__FP15daTagSchedule_c.s diff --git a/Progress.md b/Progress.md index 5783a5801db..033d00406da 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.189708% | 3816924 | 11500324 -Total | 32.963580% | 5116276 | 15520996 +RELs | 33.190821% | 3817052 | 11500324 +Total | 32.964405% | 5116404 | 15520996 ## RELs @@ -756,7 +756,7 @@ d_a_tag_qs | 34.804270% | 1956 | 5620 d_a_tag_ret_room | 49.168646% | 828 | 1684 d_a_tag_river_back | 45.725916% | 1348 | 2948 d_a_tag_rmbit_sw | 46.642468% | 1028 | 2204 -d_a_tag_schedule | 82.022472% | 584 | 712 +d_a_tag_schedule | 100.000000% | 712 | 712 d_a_tag_setBall | 100.000000% | 880 | 880 d_a_tag_setrestart | 100.000000% | 1840 | 1840 d_a_tag_shop_camera | 62.541806% | 748 | 1196 @@ -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.189708% | 3816924 | 11500324 +Total | 33.190821% | 3817052 | 11500324 diff --git a/asm/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule/daTagSchedule_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule/daTagSchedule_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 9c643d63f5f..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule/daTagSchedule_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_80D60098: -/* 80D60098 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D6009C 7C 08 02 A6 */ mflr r0 -/* 80D600A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D600A4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D600A8 7C 7F 1B 78 */ mr r31, r3 -/* 80D600AC 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D600B0 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D600B4 40 82 00 1C */ bne lbl_80D600D0 -/* 80D600B8 28 1F 00 00 */ cmplwi r31, 0 -/* 80D600BC 41 82 00 08 */ beq lbl_80D600C4 -/* 80D600C0 4B 2B 8A A5 */ bl __ct__10fopAc_ac_cFv -lbl_80D600C4: -/* 80D600C4 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80D600C8 60 00 00 08 */ ori r0, r0, 8 -/* 80D600CC 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80D600D0: -/* 80D600D0 38 60 00 04 */ li r3, 4 -/* 80D600D4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D600D8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D600DC 7C 08 03 A6 */ mtlr r0 -/* 80D600E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D600E4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule/daTagSchedule_Delete__FP15daTagSchedule_c.s b/asm/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule/daTagSchedule_Delete__FP15daTagSchedule_c.s deleted file mode 100644 index bbd4f88dba6..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule/daTagSchedule_Delete__FP15daTagSchedule_c.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80D600E8: -/* 80D600E8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D600EC 7C 08 02 A6 */ mflr r0 -/* 80D600F0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D600F4 28 03 00 00 */ cmplwi r3, 0 -/* 80D600F8 41 82 00 0C */ beq lbl_80D60104 -/* 80D600FC 38 80 00 00 */ li r4, 0 -/* 80D60100 4B 2B 8B 8D */ bl __dt__10fopAc_ac_cFv -lbl_80D60104: -/* 80D60104 38 60 00 01 */ li r3, 1 -/* 80D60108 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6010C 7C 08 03 A6 */ mtlr r0 -/* 80D60110 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D60114 4E 80 00 20 */ blr diff --git a/include/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.h b/include/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.h index 31be1cdb30b..71ef44e72cf 100644 --- a/include/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.h +++ b/include/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.h @@ -2,5 +2,19 @@ #define D_A_TAG_SCHEDULE_H #include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daTagSchedule_c : public fopAc_ac_c { +public: + int create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagSchedule_c(); + fopAcM_OnCondition(this, 8); + } + return cPhs_COMPLEATE_e; + } + + /* 0x568 */ u8 field_0x568[4]; +}; #endif /* D_A_TAG_SCHEDULE_H */ diff --git a/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.cpp b/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.cpp index 779de6a6f47..64a9a9dbefe 100644 --- a/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.cpp +++ b/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.cpp @@ -1,83 +1,51 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_tag_schedule -// +/** + * d_a_tag_schedule.cpp + * + */ #include "rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTagSchedule_c {}; - -// -// Forward References: -// - -extern "C" static void daTagSchedule_Create__FP10fopAc_ac_c(); -extern "C" static void daTagSchedule_Delete__FP15daTagSchedule_c(); -extern "C" extern void* g_profile_Tag_Schedule[12]; - -// -// External References: -// - -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; - -// -// Declarations: -// +#include "d/d_procname.h" /* 80D60098-80D600E8 000078 0050+00 1/0 0/0 0/0 .text daTagSchedule_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagSchedule_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule/daTagSchedule_Create__FP10fopAc_ac_c.s" +static int daTagSchedule_Create(fopAc_ac_c* i_this) { + daTagSchedule_c* schedule_tag = (daTagSchedule_c*)i_this; + return schedule_tag->create(); } -#pragma pop /* 80D600E8-80D60118 0000C8 0030+00 1/0 0/0 0/0 .text daTagSchedule_Delete__FP15daTagSchedule_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagSchedule_Delete(daTagSchedule_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_schedule/d_a_tag_schedule/daTagSchedule_Delete__FP15daTagSchedule_c.s" +static int daTagSchedule_Delete(daTagSchedule_c* i_this) { + i_this->~daTagSchedule_c(); + return 1; } -#pragma pop /* ############################################################################################## */ /* 80D60120-80D60140 -00001 0020+00 1/0 0/0 0/0 .data l_daTagSchedule_Method */ -SECTION_DATA static void* l_daTagSchedule_Method[8] = { - (void*)daTagSchedule_Create__FP10fopAc_ac_c, - (void*)daTagSchedule_Delete__FP15daTagSchedule_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daTagSchedule_Method = { + (process_method_func)daTagSchedule_Create, + (process_method_func)daTagSchedule_Delete }; /* 80D60140-80D60170 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Schedule */ -SECTION_DATA extern void* g_profile_Tag_Schedule[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02890000, (void*)&g_fpcLf_Method, - (void*)0x0000056C, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x018C0000, (void*)&l_daTagSchedule_Method, - (void*)0x00040000, (void*)0x000E0000, +extern actor_process_profile_definition g_profile_Tag_Schedule = { + 0xFFFFFFFD, // mLayerID + 0x0007, // mListID + 0xFFFD, // mListPrio + PROC_Tag_Schedule, // mProcName + 0, // padding + &g_fpcLf_Method.mBase, // mSubMtd + sizeof(daTagSchedule_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // mSubMtd + 0x018C, // mPriority + 0, // padding + 0, // padding + &l_daTagSchedule_Method, // mSubMtd + 0x00040000, // mStatus + 0x00, // mActorType + 0x0E, // mCullType + 0, // padding + 0, // padding };