summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPheenoh <pheenoh@gmail.com>2023-02-14 18:28:05 -0700
committerGitHub <noreply@github.com>2023-02-14 18:28:05 -0700
commitbb751ef9627895bbf867f92e157405085e74251a (patch)
treeb488df9160a7648b3ddbd81bc7e15b4ea25687fd
parent8951f20241b151c3e83fe38de96b616e5a9b08ac (diff)
d_a_tag_arena OK (#283)
* d_a_tag_arena * fix g_profile_Tag_Arena
-rw-r--r--Progress.md8
-rw-r--r--asm/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena/daTagArena_Create__FP10fopAc_ac_c.s23
-rw-r--r--asm/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena/daTagArena_Delete__FP12daTagArena_c.s14
-rw-r--r--include/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.h12
-rw-r--r--rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.cpp100
5 files changed, 50 insertions, 107 deletions
diff --git a/Progress.md b/Progress.md
index 033d00406d..ac380b0e12 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.190821% | 3817052 | 11500324
-Total | 32.964405% | 5116404 | 15520996
+RELs | 33.191934% | 3817180 | 11500324
+Total | 32.965230% | 5116532 | 15520996
## RELs
@@ -709,7 +709,7 @@ d_a_tag_Lv8Gate | 43.347193% | 1668 | 3848
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_arena | 100.000000% | 712 | 712
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
@@ -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.190821% | 3817052 | 11500324
+Total | 33.191934% | 3817180 | 11500324
diff --git a/asm/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena/daTagArena_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena/daTagArena_Create__FP10fopAc_ac_c.s
deleted file mode 100644
index 033125fb8b..0000000000
--- a/asm/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena/daTagArena_Create__FP10fopAc_ac_c.s
+++ /dev/null
@@ -1,23 +0,0 @@
-lbl_80D55CD8:
-/* 80D55CD8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80D55CDC 7C 08 02 A6 */ mflr r0
-/* 80D55CE0 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80D55CE4 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80D55CE8 7C 7F 1B 78 */ mr r31, r3
-/* 80D55CEC 80 03 04 A0 */ lwz r0, 0x4a0(r3)
-/* 80D55CF0 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
-/* 80D55CF4 40 82 00 1C */ bne lbl_80D55D10
-/* 80D55CF8 28 1F 00 00 */ cmplwi r31, 0
-/* 80D55CFC 41 82 00 08 */ beq lbl_80D55D04
-/* 80D55D00 4B 2C 2E 65 */ bl __ct__10fopAc_ac_cFv
-lbl_80D55D04:
-/* 80D55D04 80 1F 04 A0 */ lwz r0, 0x4a0(r31)
-/* 80D55D08 60 00 00 08 */ ori r0, r0, 8
-/* 80D55D0C 90 1F 04 A0 */ stw r0, 0x4a0(r31)
-lbl_80D55D10:
-/* 80D55D10 38 60 00 04 */ li r3, 4
-/* 80D55D14 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80D55D18 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80D55D1C 7C 08 03 A6 */ mtlr r0
-/* 80D55D20 38 21 00 10 */ addi r1, r1, 0x10
-/* 80D55D24 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena/daTagArena_Delete__FP12daTagArena_c.s b/asm/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena/daTagArena_Delete__FP12daTagArena_c.s
deleted file mode 100644
index 71731a2217..0000000000
--- a/asm/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena/daTagArena_Delete__FP12daTagArena_c.s
+++ /dev/null
@@ -1,14 +0,0 @@
-lbl_80D55D28:
-/* 80D55D28 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80D55D2C 7C 08 02 A6 */ mflr r0
-/* 80D55D30 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80D55D34 28 03 00 00 */ cmplwi r3, 0
-/* 80D55D38 41 82 00 0C */ beq lbl_80D55D44
-/* 80D55D3C 38 80 00 00 */ li r4, 0
-/* 80D55D40 4B 2C 2F 4D */ bl __dt__10fopAc_ac_cFv
-lbl_80D55D44:
-/* 80D55D44 38 60 00 01 */ li r3, 1
-/* 80D55D48 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80D55D4C 7C 08 03 A6 */ mtlr r0
-/* 80D55D50 38 21 00 10 */ addi r1, r1, 0x10
-/* 80D55D54 4E 80 00 20 */ blr
diff --git a/include/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.h b/include/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.h
index c6d1d3dc2b..9101c69d51 100644
--- a/include/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.h
+++ b/include/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.h
@@ -2,5 +2,17 @@
#define D_A_TAG_ARENA_H
#include "dolphin/types.h"
+#include "f_op/f_op_actor_mng.h"
+
+class daTagArena_c : public fopAc_ac_c {
+public:
+ int create() {
+ if (!fopAcM_CheckCondition(this, 8)) {
+ new (this) daTagArena_c();
+ fopAcM_OnCondition(this, 8);
+ }
+ return cPhs_COMPLEATE_e;
+ }
+};
#endif /* D_A_TAG_ARENA_H */
diff --git a/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.cpp b/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.cpp
index e2b3b7cae7..ce736b0d5c 100644
--- a/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.cpp
+++ b/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.cpp
@@ -1,85 +1,53 @@
-//
-// Generated By: dol2asm
-// Translation Unit: d_a_tag_arena
-//
+/**
+ * d_a_tag_arena.cpp
+ *
+ */
#include "rel/d/a/tag/d_a_tag_arena/d_a_tag_arena.h"
#include "dol2asm.h"
#include "dolphin/types.h"
-
-//
-// Types:
-//
-
-struct fopAc_ac_c {
- /* 80018B64 */ fopAc_ac_c();
- /* 80018C8C */ ~fopAc_ac_c();
-};
-
-struct daTagArena_c {};
-
-//
-// Forward References:
-//
-
-extern "C" static void daTagArena_Create__FP10fopAc_ac_c();
-extern "C" static void daTagArena_Delete__FP12daTagArena_c();
-extern "C" extern void* g_profile_Tag_Arena[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"
/* 80D55CD8-80D55D28 000078 0050+00 1/0 0/0 0/0 .text daTagArena_Create__FP10fopAc_ac_c
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daTagArena_Create(fopAc_ac_c* param_0) {
- nofralloc
-#include "asm/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena/daTagArena_Create__FP10fopAc_ac_c.s"
+static int daTagArena_Create(fopAc_ac_c* i_this) {
+ daTagArena_c* arena_tag = (daTagArena_c*)i_this;
+ return arena_tag->create();
}
-#pragma pop
/* 80D55D28-80D55D58 0000C8 0030+00 1/0 0/0 0/0 .text daTagArena_Delete__FP12daTagArena_c
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daTagArena_Delete(daTagArena_c* param_0) {
- nofralloc
-#include "asm/rel/d/a/tag/d_a_tag_arena/d_a_tag_arena/daTagArena_Delete__FP12daTagArena_c.s"
+static int daTagArena_Delete(daTagArena_c* i_this) {
+ i_this->~daTagArena_c();
+ return 1;
}
-#pragma pop
/* ############################################################################################## */
/* 80D55D60-80D55D80 -00001 0020+00 1/0 0/0 0/0 .data l_daTagArena_Method */
-SECTION_DATA static void* l_daTagArena_Method[8] = {
- (void*)daTagArena_Create__FP10fopAc_ac_c,
- (void*)daTagArena_Delete__FP12daTagArena_c,
- (void*)NULL,
- (void*)NULL,
- (void*)NULL,
- (void*)NULL,
- (void*)NULL,
- (void*)NULL,
+static actor_method_class l_daTagArena_Method = {
+ (process_method_func)daTagArena_Create,
+ (process_method_func)daTagArena_Delete,
};
/* 80D55D80-80D55DB0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Arena */
-SECTION_DATA extern void* g_profile_Tag_Arena[12] = {
- (void*)0xFFFFFFFD, (void*)0x0007FFFD,
- (void*)0x024C0000, (void*)&g_fpcLf_Method,
- (void*)0x00000568, (void*)NULL,
- (void*)NULL, (void*)&g_fopAc_Method,
- (void*)0x014D0000, (void*)&l_daTagArena_Method,
- (void*)0x00040000, (void*)0x000E0000,
+extern actor_process_profile_definition g_profile_Tag_Arena = {
+ -3, // mLayerID
+ 7, // mListID
+ -3, // mListPrio
+ PROC_Tag_Arena, // mProcName
+ 0, // padding
+ &g_fpcLf_Method.mBase, // mSubMtd
+ sizeof(daTagArena_c), // mSize
+ 0, // mSizeOther
+ 0, // mParameters
+ &g_fopAc_Method.base, // mSubMtd
+ 0x014D, // mPriority
+ 0, // padding
+ 0, // padding
+ &l_daTagArena_Method, // mSubMtd
+ 0x00040000, // mStatus
+ 0, // mActorType
+ 0x0E, // mCullType
+ 0, // padding
+ 0 // padding
};