diff --git a/Progress.md b/Progress.md index 88aed9b53e2..f5ea7078d5d 100644 --- a/Progress.md +++ b/Progress.md @@ -97,7 +97,7 @@ d_a_e_bug | 29.207138% | 5172 | 17708 d_a_e_cr | 34.481521% | 3844 | 11148 d_a_e_cr_egg | 43.296089% | 1860 | 4296 d_a_e_db | 26.006517% | 9896 | 38052 -d_a_e_db_leaf | 57.582938% | 972 | 1688 +d_a_e_db_leaf | 100.000000% | 1688 | 1688 d_a_e_dd | 26.687870% | 7384 | 27668 d_a_e_df | 28.031364% | 4004 | 14284 d_a_e_dk | 29.244060% | 5416 | 18520 @@ -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.562950% | 3859848 | 11500324 +Total | 33.569176% | 3860564 | 11500324 diff --git a/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 7a4dd2f9f9d..00000000000 --- a/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_806A205C: -/* 806A205C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 806A2060 7C 08 02 A6 */ mflr r0 -/* 806A2064 90 01 00 14 */ stw r0, 0x14(r1) -/* 806A2068 93 E1 00 0C */ stw r31, 0xc(r1) -/* 806A206C 93 C1 00 08 */ stw r30, 8(r1) -/* 806A2070 7C 7F 1B 78 */ mr r31, r3 -/* 806A2074 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 806A2078 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 806A207C 40 82 00 1C */ bne lbl_806A2098 -/* 806A2080 28 1F 00 00 */ cmplwi r31, 0 -/* 806A2084 41 82 00 08 */ beq lbl_806A208C -/* 806A2088 4B 97 6A DD */ bl __ct__10fopAc_ac_cFv -lbl_806A208C: -/* 806A208C 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 806A2090 60 00 00 08 */ ori r0, r0, 8 -/* 806A2094 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_806A2098: -/* 806A2098 38 7F 05 AC */ addi r3, r31, 0x5ac -/* 806A209C 3C 80 80 6A */ lis r4, d_a_e_db_leaf__stringBase0@ha /* 0x806A2118@ha */ -/* 806A20A0 38 84 21 18 */ addi r4, r4, d_a_e_db_leaf__stringBase0@l /* 0x806A2118@l */ -/* 806A20A4 4B 98 AE 19 */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 806A20A8 7C 7E 1B 78 */ mr r30, r3 -/* 806A20AC 2C 1E 00 04 */ cmpwi r30, 4 -/* 806A20B0 40 82 00 40 */ bne lbl_806A20F0 -/* 806A20B4 7F E3 FB 78 */ mr r3, r31 -/* 806A20B8 3C 80 80 6A */ lis r4, useHeapInit__FP10fopAc_ac_c@ha /* 0x806A1F5C@ha */ -/* 806A20BC 38 84 1F 5C */ addi r4, r4, useHeapInit__FP10fopAc_ac_c@l /* 0x806A1F5C@l */ -/* 806A20C0 38 A0 0A 80 */ li r5, 0xa80 -/* 806A20C4 4B 97 83 ED */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl -/* 806A20C8 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 806A20CC 40 82 00 0C */ bne lbl_806A20D8 -/* 806A20D0 38 60 00 05 */ li r3, 5 -/* 806A20D4 48 00 00 20 */ b lbl_806A20F4 -lbl_806A20D8: -/* 806A20D8 80 7F 05 B4 */ lwz r3, 0x5b4(r31) -/* 806A20DC 80 63 00 04 */ lwz r3, 4(r3) -/* 806A20E0 38 03 00 24 */ addi r0, r3, 0x24 -/* 806A20E4 90 1F 05 04 */ stw r0, 0x504(r31) -/* 806A20E8 7F E3 FB 78 */ mr r3, r31 -/* 806A20EC 4B FF FD B5 */ bl daE_DB_LEAF_Execute__FP15e_db_leaf_class -lbl_806A20F0: -/* 806A20F0 7F C3 F3 78 */ mr r3, r30 -lbl_806A20F4: -/* 806A20F4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 806A20F8 83 C1 00 08 */ lwz r30, 8(r1) -/* 806A20FC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 806A2100 7C 08 03 A6 */ mtlr r0 -/* 806A2104 38 21 00 10 */ addi r1, r1, 0x10 -/* 806A2108 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Delete__FP15e_db_leaf_class.s b/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Delete__FP15e_db_leaf_class.s deleted file mode 100644 index eb6b7c49ec9..00000000000 --- a/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Delete__FP15e_db_leaf_class.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_806A1F2C: -/* 806A1F2C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 806A1F30 7C 08 02 A6 */ mflr r0 -/* 806A1F34 90 01 00 14 */ stw r0, 0x14(r1) -/* 806A1F38 3C 80 80 6A */ lis r4, d_a_e_db_leaf__stringBase0@ha /* 0x806A2118@ha */ -/* 806A1F3C 38 84 21 18 */ addi r4, r4, d_a_e_db_leaf__stringBase0@l /* 0x806A2118@l */ -/* 806A1F40 38 63 05 AC */ addi r3, r3, 0x5ac -/* 806A1F44 4B 98 B0 C5 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 806A1F48 38 60 00 01 */ li r3, 1 -/* 806A1F4C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 806A1F50 7C 08 03 A6 */ mtlr r0 -/* 806A1F54 38 21 00 10 */ addi r1, r1, 0x10 -/* 806A1F58 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Draw__FP15e_db_leaf_class.s b/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Draw__FP15e_db_leaf_class.s deleted file mode 100644 index eecfbcd1543..00000000000 --- a/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Draw__FP15e_db_leaf_class.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_806A1E38: -/* 806A1E38 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 806A1E3C 7C 08 02 A6 */ mflr r0 -/* 806A1E40 90 01 00 14 */ stw r0, 0x14(r1) -/* 806A1E44 93 E1 00 0C */ stw r31, 0xc(r1) -/* 806A1E48 7C 7F 1B 78 */ mr r31, r3 -/* 806A1E4C 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 806A1E50 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 806A1E54 38 80 00 00 */ li r4, 0 -/* 806A1E58 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 806A1E5C 38 DF 01 0C */ addi r6, r31, 0x10c -/* 806A1E60 4B B0 19 65 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 806A1E64 80 7F 05 B4 */ lwz r3, 0x5b4(r31) -/* 806A1E68 80 83 00 04 */ lwz r4, 4(r3) -/* 806A1E6C 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 806A1E70 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 806A1E74 80 84 00 04 */ lwz r4, 4(r4) -/* 806A1E78 38 BF 01 0C */ addi r5, r31, 0x10c -/* 806A1E7C 4B B0 2F 25 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 806A1E80 80 7F 05 B4 */ lwz r3, 0x5b4(r31) -/* 806A1E84 4B 96 E7 FD */ bl entryDL__14mDoExt_McaMorfFv -/* 806A1E88 38 60 00 01 */ li r3, 1 -/* 806A1E8C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 806A1E90 80 01 00 14 */ lwz r0, 0x14(r1) -/* 806A1E94 7C 08 03 A6 */ mtlr r0 -/* 806A1E98 38 21 00 10 */ addi r1, r1, 0x10 -/* 806A1E9C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Execute__FP15e_db_leaf_class.s b/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Execute__FP15e_db_leaf_class.s deleted file mode 100644 index 25848e96db8..00000000000 --- a/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Execute__FP15e_db_leaf_class.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_806A1EA0: -/* 806A1EA0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 806A1EA4 7C 08 02 A6 */ mflr r0 -/* 806A1EA8 90 01 00 14 */ stw r0, 0x14(r1) -/* 806A1EAC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 806A1EB0 7C 7F 1B 78 */ mr r31, r3 -/* 806A1EB4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 806A1EB8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 806A1EBC C0 3F 04 D0 */ lfs f1, 0x4d0(r31) -/* 806A1EC0 C0 5F 04 D4 */ lfs f2, 0x4d4(r31) -/* 806A1EC4 C0 7F 04 D8 */ lfs f3, 0x4d8(r31) -/* 806A1EC8 4B CA 4A 21 */ bl PSMTXTrans -/* 806A1ECC 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 806A1ED0 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 806A1ED4 A8 9F 04 E6 */ lha r4, 0x4e6(r31) -/* 806A1ED8 4B 96 A5 5D */ bl mDoMtx_YrotM__FPA4_fs -/* 806A1EDC 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 806A1EE0 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 806A1EE4 A8 9F 04 E4 */ lha r4, 0x4e4(r31) -/* 806A1EE8 4B 96 A4 B5 */ bl mDoMtx_XrotM__FPA4_fs -/* 806A1EEC 80 7F 05 B4 */ lwz r3, 0x5b4(r31) -/* 806A1EF0 80 83 00 04 */ lwz r4, 4(r3) -/* 806A1EF4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 806A1EF8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 806A1EFC 38 84 00 24 */ addi r4, r4, 0x24 -/* 806A1F00 4B CA 45 B1 */ bl PSMTXCopy -/* 806A1F04 80 7F 05 B4 */ lwz r3, 0x5b4(r31) -/* 806A1F08 4B 96 E7 A5 */ bl modelCalc__14mDoExt_McaMorfFv -/* 806A1F0C 38 60 00 01 */ li r3, 1 -/* 806A1F10 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 806A1F14 80 01 00 14 */ lwz r0, 0x14(r1) -/* 806A1F18 7C 08 03 A6 */ mtlr r0 -/* 806A1F1C 38 21 00 10 */ addi r1, r1, 0x10 -/* 806A1F20 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/useHeapInit__FP10fopAc_ac_c.s b/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/useHeapInit__FP10fopAc_ac_c.s deleted file mode 100644 index a1c300052ac..00000000000 --- a/asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/useHeapInit__FP10fopAc_ac_c.s +++ /dev/null @@ -1,69 +0,0 @@ -lbl_806A1F5C: -/* 806A1F5C 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 806A1F60 7C 08 02 A6 */ mflr r0 -/* 806A1F64 90 01 00 34 */ stw r0, 0x34(r1) -/* 806A1F68 39 61 00 30 */ addi r11, r1, 0x30 -/* 806A1F6C 4B CC 02 6D */ bl _savegpr_28 -/* 806A1F70 7C 7F 1B 78 */ mr r31, r3 -/* 806A1F74 38 60 00 54 */ li r3, 0x54 -/* 806A1F78 4B C2 CC D5 */ bl __nw__FUl -/* 806A1F7C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 806A1F80 41 82 00 9C */ beq lbl_806A201C -/* 806A1F84 3C 60 80 6A */ lis r3, d_a_e_db_leaf__stringBase0@ha /* 0x806A2118@ha */ -/* 806A1F88 38 63 21 18 */ addi r3, r3, d_a_e_db_leaf__stringBase0@l /* 0x806A2118@l */ -/* 806A1F8C 38 80 00 13 */ li r4, 0x13 -/* 806A1F90 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 806A1F94 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 806A1F98 3F 85 00 02 */ addis r28, r5, 2 -/* 806A1F9C 3B 9C C2 F8 */ addi r28, r28, -15624 -/* 806A1FA0 7F 85 E3 78 */ mr r5, r28 -/* 806A1FA4 38 C0 00 80 */ li r6, 0x80 -/* 806A1FA8 4B 99 A3 45 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 806A1FAC 7C 7D 1B 78 */ mr r29, r3 -/* 806A1FB0 3C 60 80 6A */ lis r3, d_a_e_db_leaf__stringBase0@ha /* 0x806A2118@ha */ -/* 806A1FB4 38 63 21 18 */ addi r3, r3, d_a_e_db_leaf__stringBase0@l /* 0x806A2118@l */ -/* 806A1FB8 38 80 00 18 */ li r4, 0x18 -/* 806A1FBC 7F 85 E3 78 */ mr r5, r28 -/* 806A1FC0 38 C0 00 80 */ li r6, 0x80 -/* 806A1FC4 4B 99 A3 29 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 806A1FC8 7C 64 1B 78 */ mr r4, r3 -/* 806A1FCC 38 00 00 01 */ li r0, 1 -/* 806A1FD0 90 01 00 08 */ stw r0, 8(r1) -/* 806A1FD4 38 00 00 00 */ li r0, 0 -/* 806A1FD8 90 01 00 0C */ stw r0, 0xc(r1) -/* 806A1FDC 3C 00 00 08 */ lis r0, 8 -/* 806A1FE0 90 01 00 10 */ stw r0, 0x10(r1) -/* 806A1FE4 3C 60 11 00 */ lis r3, 0x1100 /* 0x11000084@ha */ -/* 806A1FE8 38 03 00 84 */ addi r0, r3, 0x0084 /* 0x11000084@l */ -/* 806A1FEC 90 01 00 14 */ stw r0, 0x14(r1) -/* 806A1FF0 7F C3 F3 78 */ mr r3, r30 -/* 806A1FF4 38 A0 00 00 */ li r5, 0 -/* 806A1FF8 38 C0 00 00 */ li r6, 0 -/* 806A1FFC 7F A7 EB 78 */ mr r7, r29 -/* 806A2000 39 00 00 02 */ li r8, 2 -/* 806A2004 3D 20 80 6A */ lis r9, lit_3699@ha /* 0x806A2114@ha */ -/* 806A2008 C0 29 21 14 */ lfs f1, lit_3699@l(r9) /* 0x806A2114@l */ -/* 806A200C 39 20 00 00 */ li r9, 0 -/* 806A2010 39 40 FF FF */ li r10, -1 -/* 806A2014 4B 96 DC 39 */ bl __ct__14mDoExt_McaMorfFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiiPvUlUl -/* 806A2018 7C 7E 1B 78 */ mr r30, r3 -lbl_806A201C: -/* 806A201C 93 DF 05 B4 */ stw r30, 0x5b4(r31) -/* 806A2020 80 7F 05 B4 */ lwz r3, 0x5b4(r31) -/* 806A2024 28 03 00 00 */ cmplwi r3, 0 -/* 806A2028 41 82 00 10 */ beq lbl_806A2038 -/* 806A202C 80 03 00 04 */ lwz r0, 4(r3) -/* 806A2030 28 00 00 00 */ cmplwi r0, 0 -/* 806A2034 40 82 00 0C */ bne lbl_806A2040 -lbl_806A2038: -/* 806A2038 38 60 00 00 */ li r3, 0 -/* 806A203C 48 00 00 08 */ b lbl_806A2044 -lbl_806A2040: -/* 806A2040 38 60 00 01 */ li r3, 1 -lbl_806A2044: -/* 806A2044 39 61 00 30 */ addi r11, r1, 0x30 -/* 806A2048 4B CC 01 DD */ bl _restgpr_28 -/* 806A204C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 806A2050 7C 08 03 A6 */ mtlr r0 -/* 806A2054 38 21 00 30 */ addi r1, r1, 0x30 -/* 806A2058 4E 80 00 20 */ blr diff --git a/include/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf.h b/include/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf.h index 6aecd69f91e..a533ea51cfd 100644 --- a/include/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf.h +++ b/include/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf.h @@ -1,6 +1,16 @@ #ifndef D_A_E_DB_LEAF_H #define D_A_E_DB_LEAF_H +#include "f_op/f_op_actor_mng.h" +#include "d/com/d_com_inf_game.h" +#include "d/kankyo/d_kankyo.h" +#include "d/d_resorce.h" #include "dolphin/types.h" -#endif /* D_A_E_DB_LEAF_H */ +class e_db_leaf_class : public fopEn_enemy_c { +public: + /* 0x5AC */ request_of_phase_process_class mPhase; + /* 0x5B4 */ mDoExt_McaMorf* mpMorf; +}; // Size: 0x5B8 + +#endif /* D_A_E_DB_LEAF_H */ \ No newline at end of file diff --git a/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf.cpp b/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf.cpp index cd25b86d353..a58cc720f11 100644 --- a/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf.cpp +++ b/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf.cpp @@ -1,193 +1,94 @@ -// -// Generated By: dol2asm // Translation Unit: d_a_e_db_leaf -// #include "rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct mDoExt_McaMorfCallBack2_c {}; - -struct mDoExt_McaMorfCallBack1_c {}; - -struct J3DModelData {}; - -struct J3DAnmTransform {}; - -struct mDoExt_McaMorf { - /* 8000FC4C */ mDoExt_McaMorf(J3DModelData*, mDoExt_McaMorfCallBack1_c*, - mDoExt_McaMorfCallBack2_c*, J3DAnmTransform*, int, f32, int, int, - int, void*, u32, u32); - /* 80010680 */ void entryDL(); - /* 800106AC */ void modelCalc(); -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct e_db_leaf_class {}; - -struct dKy_tevstr_c {}; - -struct cXyz {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -// -// Forward References: -// - -extern "C" static void daE_DB_LEAF_Draw__FP15e_db_leaf_class(); -extern "C" static void daE_DB_LEAF_Execute__FP15e_db_leaf_class(); -extern "C" static bool daE_DB_LEAF_IsDelete__FP15e_db_leaf_class(); -extern "C" static void daE_DB_LEAF_Delete__FP15e_db_leaf_class(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" static void daE_DB_LEAF_Create__FP10fopAc_ac_c(); -extern "C" extern char const* const d_a_e_db_leaf__stringBase0; -extern "C" extern void* g_profile_E_DB_LEAF[12]; - -// -// External References: -// - -extern "C" void mDoMtx_XrotM__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void -__ct__14mDoExt_McaMorfFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiiPvUlUl(); -extern "C" void entryDL__14mDoExt_McaMorfFv(); -extern "C" void modelCalc__14mDoExt_McaMorfFv(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void* __nw__FUl(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_env_light[4880]; - -// -// Declarations: -// /* 806A1E38-806A1EA0 000078 0068+00 1/0 0/0 0/0 .text daE_DB_LEAF_Draw__FP15e_db_leaf_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daE_DB_LEAF_Draw(e_db_leaf_class* param_0) { - nofralloc -#include "asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Draw__FP15e_db_leaf_class.s" +static int daE_DB_LEAF_Draw(e_db_leaf_class* i_this) { + g_env_light.settingTevStruct(0,&i_this->current.pos,&i_this->mTevStr); + g_env_light.setLightTevColorType_MAJI(i_this->mpMorf->getModel(),&i_this->mTevStr); + i_this->mpMorf->entryDL(); + return 1; } -#pragma pop /* 806A1EA0-806A1F24 0000E0 0084+00 2/1 0/0 0/0 .text daE_DB_LEAF_Execute__FP15e_db_leaf_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daE_DB_LEAF_Execute(e_db_leaf_class* param_0) { - nofralloc -#include "asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Execute__FP15e_db_leaf_class.s" +static int daE_DB_LEAF_Execute(e_db_leaf_class* i_this) { + mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z); + mDoMtx_stack_c::YrotM(i_this->shape_angle.y); + mDoMtx_stack_c::XrotM(i_this->shape_angle.x); + i_this->mpMorf->getModel()->i_setBaseTRMtx(mDoMtx_stack_c::now); + i_this->mpMorf->modelCalc(); + return 1; } -#pragma pop /* 806A1F24-806A1F2C 000164 0008+00 1/0 0/0 0/0 .text daE_DB_LEAF_IsDelete__FP15e_db_leaf_class */ -static bool daE_DB_LEAF_IsDelete(e_db_leaf_class* param_0) { - return true; +static int daE_DB_LEAF_IsDelete(e_db_leaf_class* i_this) { + return 1; } -/* ############################################################################################## */ -/* 806A2118-806A2118 000004 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_806A2118 = "E_DB"; -#pragma pop - /* 806A1F2C-806A1F5C 00016C 0030+00 1/0 0/0 0/0 .text daE_DB_LEAF_Delete__FP15e_db_leaf_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daE_DB_LEAF_Delete(e_db_leaf_class* param_0) { - nofralloc -#include "asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Delete__FP15e_db_leaf_class.s" +static int daE_DB_LEAF_Delete(e_db_leaf_class* i_this) { + dComIfG_resDelete(&i_this->mPhase, "E_DB"); + return 1; } -#pragma pop -/* ############################################################################################## */ -/* 806A2114-806A2118 000000 0004+00 1/1 0/0 0/0 .rodata @3699 */ -SECTION_RODATA static f32 const lit_3699 = 1.0f; -COMPILER_STRIP_GATE(0x806A2114, &lit_3699); +/* 806A1F5C-806A205C 00019C 0100+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ +static int useHeapInit(fopAc_ac_c* i_this) { + e_db_leaf_class* leaf = static_cast(i_this); -/* 806A1F5C-806A205C 00019C 0100+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void useHeapInit(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/useHeapInit__FP10fopAc_ac_c.s" + leaf->mpMorf = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_DB", 0x18), NULL, NULL, + (J3DAnmTransform*)dComIfG_getObjectRes("E_DB", 0x13), 2, 1.0, 0, -1, 1, NULL, 0x80000, 0x11000084); + + if (leaf->mpMorf == NULL || leaf->mpMorf->getModel() == NULL) { + return 0; + } else { + return 1; + } +} + +/* 806A205C-806A210C 00029C 00B0+00 1/0 0/0 0/0 .text daE_DB_LEAF_Create__FP10fopAc_ac_c */ +static int daE_DB_LEAF_Create(fopAc_ac_c* i_this) { + e_db_leaf_class* leaf = (e_db_leaf_class*)i_this; + if (!fopAcM_CheckCondition(leaf, 8)) { + new (leaf) e_db_leaf_class(); + fopAcM_OnCondition(leaf, 8); + } + + int ret = dComIfG_resLoad(&leaf->mPhase, "E_DB"); + if (ret == cPhs_COMPLEATE_e) { + if(!fopAcM_entrySolidHeap(leaf,useHeapInit,0xA80)) { + return cPhs_ERROR_e; + } else { + fopAcM_SetMtx(leaf, leaf->mpMorf->getModel()->getBaseTRMtx()); + daE_DB_LEAF_Execute(leaf); + } + } + return ret; } -#pragma pop - -/* 806A205C-806A210C 00029C 00B0+00 1/0 0/0 0/0 .text daE_DB_LEAF_Create__FP10fopAc_ac_c - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daE_DB_LEAF_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/e/d_a_e_db_leaf/d_a_e_db_leaf/daE_DB_LEAF_Create__FP10fopAc_ac_c.s" -} -#pragma pop /* ############################################################################################## */ /* 806A2120-806A2140 -00001 0020+00 1/0 0/0 0/0 .data l_daE_DB_LEAF_Method */ -SECTION_DATA static void* l_daE_DB_LEAF_Method[8] = { - (void*)daE_DB_LEAF_Create__FP10fopAc_ac_c, - (void*)daE_DB_LEAF_Delete__FP15e_db_leaf_class, - (void*)daE_DB_LEAF_Execute__FP15e_db_leaf_class, - (void*)daE_DB_LEAF_IsDelete__FP15e_db_leaf_class, - (void*)daE_DB_LEAF_Draw__FP15e_db_leaf_class, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daE_DB_LEAF_Method = { + (process_method_func)daE_DB_LEAF_Create, + (process_method_func)daE_DB_LEAF_Delete, + (process_method_func)daE_DB_LEAF_Execute, + (process_method_func)daE_DB_LEAF_IsDelete, + (process_method_func)daE_DB_LEAF_Draw, }; /* 806A2140-806A2170 -00001 0030+00 0/0 0/0 1/0 .data g_profile_E_DB_LEAF */ -SECTION_DATA extern void* g_profile_E_DB_LEAF[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x01C60000, (void*)&g_fpcLf_Method, - (void*)0x000005B8, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x00890000, (void*)&l_daE_DB_LEAF_Method, - (void*)0x00040000, (void*)NULL, +extern actor_process_profile_definition g_profile_E_DB_LEAF = { + -3, + 7, + -3, + PROC_E_DB_LEAF, + &g_fpcLf_Method.mBase, + sizeof(e_db_leaf_class), + 0, + 0, + &g_fopAc_Method.base, + 0x0089, + &l_daE_DB_LEAF_Method, + 0x00040000, + 0, + 0, }; - -/* 806A2118-806A2118 000004 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */