From 125b0fa9a22563ef8c28dc301a6fbd2888521dd9 Mon Sep 17 00:00:00 2001 From: hatal175 Date: Fri, 23 Jun 2023 17:34:19 +0300 Subject: [PATCH 01/35] Work on d_a_tag_wljump (#351) --- Progress.md | 8 +- .../d_a_tag_wljump/__dt__13daTagWljump_cFv.s | 27 -- .../create__13daTagWljump_cFv.s | 84 ----- .../daTagWljump_Create__FP10fopAc_ac_c.s | 9 - .../daTagWljump_Delete__FP13daTagWljump_c.s | 11 - .../daTagWljump_Draw__FP13daTagWljump_c.s | 9 - .../daTagWljump_Execute__FP13daTagWljump_c.s | 9 - diff_settings.py | 2 +- include/d/a/d_a_alink.h | 16 +- include/d/a/d_a_player.h | 2 + include/d/d_attention.h | 3 + .../d/a/tag/d_a_tag_wljump/d_a_tag_wljump.h | 31 ++ rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.cpp | 354 ++++++++++++------ 13 files changed, 281 insertions(+), 284 deletions(-) delete mode 100644 asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/__dt__13daTagWljump_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/create__13daTagWljump_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Delete__FP13daTagWljump_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Draw__FP13daTagWljump_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Execute__FP13daTagWljump_c.s diff --git a/Progress.md b/Progress.md index 6bbfb7982d..1b64fa58c7 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 35.320165% | 1420108 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 35.320165% | 1420108 | 4020672 -RELs | 33.653313% | 3870240 | 11500324 -Total | 34.085106% | 5290348 | 15520996 +RELs | 33.657973% | 3870776 | 11500324 +Total | 34.088560% | 5290884 | 15520996 ## RELs @@ -773,7 +773,7 @@ d_a_tag_theB_hint | 100.000000% | 1136 | 1136 d_a_tag_wara_howl | 100.000000% | 1420 | 1420 d_a_tag_watchge | 100.000000% | 1240 | 1240 d_a_tag_waterfall | 46.361502% | 1580 | 3408 -d_a_tag_wljump | 30.777538% | 1140 | 3704 +d_a_tag_wljump | 45.248380% | 1676 | 3704 d_a_tag_yami | 42.650334% | 1532 | 3592 d_a_talk | 45.434783% | 836 | 1840 d_a_tbox | 30.165503% | 9332 | 30936 @@ -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.653313% | 3870240 | 11500324 +Total | 33.657973% | 3870776 | 11500324 diff --git a/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/__dt__13daTagWljump_cFv.s b/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/__dt__13daTagWljump_cFv.s deleted file mode 100644 index 6ce0e10a2f..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/__dt__13daTagWljump_cFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_80D65004: -/* 80D65004 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D65008 7C 08 02 A6 */ mflr r0 -/* 80D6500C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D65010 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D65014 93 C1 00 08 */ stw r30, 8(r1) -/* 80D65018 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80D6501C 7C 9F 23 78 */ mr r31, r4 -/* 80D65020 41 82 00 2C */ beq lbl_80D6504C -/* 80D65024 38 7E 05 78 */ addi r3, r30, 0x578 -/* 80D65028 38 80 FF FF */ li r4, -1 -/* 80D6502C 4B 4E 4F 1D */ bl __dt__10dMsgFlow_cFv -/* 80D65030 7F C3 F3 78 */ mr r3, r30 -/* 80D65034 38 80 00 00 */ li r4, 0 -/* 80D65038 4B 2B 3C 55 */ bl __dt__10fopAc_ac_cFv -/* 80D6503C 7F E0 07 35 */ extsh. r0, r31 -/* 80D65040 40 81 00 0C */ ble lbl_80D6504C -/* 80D65044 7F C3 F3 78 */ mr r3, r30 -/* 80D65048 4B 56 9C F5 */ bl __dl__FPv -lbl_80D6504C: -/* 80D6504C 7F C3 F3 78 */ mr r3, r30 -/* 80D65050 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D65054 83 C1 00 08 */ lwz r30, 8(r1) -/* 80D65058 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6505C 7C 08 03 A6 */ mtlr r0 -/* 80D65060 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D65064 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/create__13daTagWljump_cFv.s b/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/create__13daTagWljump_cFv.s deleted file mode 100644 index 2ad616cea2..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/create__13daTagWljump_cFv.s +++ /dev/null @@ -1,84 +0,0 @@ -lbl_80D64EB8: -/* 80D64EB8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D64EBC 7C 08 02 A6 */ mflr r0 -/* 80D64EC0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D64EC4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D64EC8 93 C1 00 08 */ stw r30, 8(r1) -/* 80D64ECC 7C 7F 1B 78 */ mr r31, r3 -/* 80D64ED0 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D64ED4 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D64ED8 40 82 00 28 */ bne lbl_80D64F00 -/* 80D64EDC 7F E0 FB 79 */ or. r0, r31, r31 -/* 80D64EE0 41 82 00 14 */ beq lbl_80D64EF4 -/* 80D64EE4 7C 1E 03 78 */ mr r30, r0 -/* 80D64EE8 4B 2B 3C 7D */ bl __ct__10fopAc_ac_cFv -/* 80D64EEC 38 7E 05 78 */ addi r3, r30, 0x578 -/* 80D64EF0 4B 4E 50 11 */ bl __ct__10dMsgFlow_cFv -lbl_80D64EF4: -/* 80D64EF4 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80D64EF8 60 00 00 08 */ ori r0, r0, 8 -/* 80D64EFC 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80D64F00: -/* 80D64F00 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80D64F04 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f -/* 80D64F08 98 1F 05 71 */ stb r0, 0x571(r31) -/* 80D64F0C 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80D64F10 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 80D64F14 2C 03 00 FF */ cmpwi r3, 0xff -/* 80D64F18 40 82 00 0C */ bne lbl_80D64F24 -/* 80D64F1C 38 60 00 05 */ li r3, 5 -/* 80D64F20 48 00 00 AC */ b lbl_80D64FCC -lbl_80D64F24: -/* 80D64F24 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 80D64F28 7C 04 07 74 */ extsb r4, r0 -/* 80D64F2C 4B 2E C8 C1 */ bl dPath_GetRoomPath__Fii -/* 80D64F30 90 7F 05 C4 */ stw r3, 0x5c4(r31) -/* 80D64F34 80 7F 05 C4 */ lwz r3, 0x5c4(r31) -/* 80D64F38 28 03 00 00 */ cmplwi r3, 0 -/* 80D64F3C 41 82 00 10 */ beq lbl_80D64F4C -/* 80D64F40 A0 03 00 00 */ lhz r0, 0(r3) -/* 80D64F44 28 00 00 02 */ cmplwi r0, 2 -/* 80D64F48 40 80 00 0C */ bge lbl_80D64F54 -lbl_80D64F4C: -/* 80D64F4C 38 60 00 05 */ li r3, 5 -/* 80D64F50 48 00 00 7C */ b lbl_80D64FCC -lbl_80D64F54: -/* 80D64F54 38 00 00 32 */ li r0, 0x32 -/* 80D64F58 98 1F 05 44 */ stb r0, 0x544(r31) -/* 80D64F5C 98 1F 05 4B */ stb r0, 0x54b(r31) -/* 80D64F60 38 60 00 00 */ li r3, 0 -/* 80D64F64 B0 7F 04 E8 */ sth r3, 0x4e8(r31) -/* 80D64F68 38 00 FF FF */ li r0, -1 -/* 80D64F6C 98 1F 05 68 */ stb r0, 0x568(r31) -/* 80D64F70 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80D64F74 54 00 87 3E */ rlwinm r0, r0, 0x10, 0x1c, 0x1f -/* 80D64F78 98 1F 05 6C */ stb r0, 0x56c(r31) -/* 80D64F7C 88 1F 05 6C */ lbz r0, 0x56c(r31) -/* 80D64F80 28 00 00 01 */ cmplwi r0, 1 -/* 80D64F84 41 82 00 08 */ beq lbl_80D64F8C -/* 80D64F88 98 7F 05 6C */ stb r3, 0x56c(r31) -lbl_80D64F8C: -/* 80D64F8C 88 1F 05 6C */ lbz r0, 0x56c(r31) -/* 80D64F90 28 00 00 00 */ cmplwi r0, 0 -/* 80D64F94 40 82 00 34 */ bne lbl_80D64FC8 -/* 80D64F98 88 9F 05 71 */ lbz r4, 0x571(r31) -/* 80D64F9C 28 04 00 FF */ cmplwi r4, 0xff -/* 80D64FA0 41 82 00 28 */ beq lbl_80D64FC8 -/* 80D64FA4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D64FA8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D64FAC 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 80D64FB0 7C 05 07 74 */ extsb r5, r0 -/* 80D64FB4 4B 2D 03 AD */ bl isSwitch__10dSv_info_cCFii -/* 80D64FB8 2C 03 00 00 */ cmpwi r3, 0 -/* 80D64FBC 40 82 00 0C */ bne lbl_80D64FC8 -/* 80D64FC0 38 00 00 01 */ li r0, 1 -/* 80D64FC4 98 1F 05 73 */ stb r0, 0x573(r31) -lbl_80D64FC8: -/* 80D64FC8 38 60 00 04 */ li r3, 4 -lbl_80D64FCC: -/* 80D64FCC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D64FD0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80D64FD4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D64FD8 7C 08 03 A6 */ mtlr r0 -/* 80D64FDC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D64FE0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Create__FP10fopAc_ac_c.s deleted file mode 100644 index fb6a215949..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D64FE4: -/* 80D64FE4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D64FE8 7C 08 02 A6 */ mflr r0 -/* 80D64FEC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D64FF0 4B FF FE C9 */ bl create__13daTagWljump_cFv -/* 80D64FF4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D64FF8 7C 08 03 A6 */ mtlr r0 -/* 80D64FFC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D65000 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Delete__FP13daTagWljump_c.s b/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Delete__FP13daTagWljump_c.s deleted file mode 100644 index 6d604c5e6a..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Delete__FP13daTagWljump_c.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80D65068: -/* 80D65068 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D6506C 7C 08 02 A6 */ mflr r0 -/* 80D65070 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D65074 38 80 FF FF */ li r4, -1 -/* 80D65078 4B FF FF 8D */ bl __dt__13daTagWljump_cFv -/* 80D6507C 38 60 00 01 */ li r3, 1 -/* 80D65080 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D65084 7C 08 03 A6 */ mtlr r0 -/* 80D65088 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D6508C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Draw__FP13daTagWljump_c.s b/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Draw__FP13daTagWljump_c.s deleted file mode 100644 index 0455a883fa..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Draw__FP13daTagWljump_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D658A4: -/* 80D658A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D658A8 7C 08 02 A6 */ mflr r0 -/* 80D658AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D658B0 4B FF FF ED */ bl draw__13daTagWljump_cFv -/* 80D658B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D658B8 7C 08 03 A6 */ mtlr r0 -/* 80D658BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D658C0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Execute__FP13daTagWljump_c.s b/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Execute__FP13daTagWljump_c.s deleted file mode 100644 index cf546a3047..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Execute__FP13daTagWljump_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D6587C: -/* 80D6587C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D65880 7C 08 02 A6 */ mflr r0 -/* 80D65884 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D65888 4B FF F8 09 */ bl execute__13daTagWljump_cFv -/* 80D6588C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D65890 7C 08 03 A6 */ mtlr r0 -/* 80D65894 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D65898 4E 80 00 20 */ blr diff --git a/diff_settings.py b/diff_settings.py index 986d363945..c7971cb6be 100644 --- a/diff_settings.py +++ b/diff_settings.py @@ -15,6 +15,6 @@ def apply(config, args): ] if args.show_source: config['makeflags'].append('DEBUG=1') - config['source_directories'] = ['src', 'libs', 'include'] + config['source_directories'] = ['src', 'libs', 'include', 'rel'] config['arch'] = 'ppc' config['objdump_executable'] = f"{os.environ['DEVKITPPC']}/bin/powerpc-eabi-objdump" diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index f918ad216a..95ba5e5a4b 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -6243,6 +6243,9 @@ public: class mDoExt_morf_c; +inline BOOL dComIfGs_isTransformLV(int i_no); +inline BOOL i_dComIfGs_isEventBit(const u16); + typedef int (daMidna_c::*daMidna_func)(); class daMidna_c : public fopAc_ac_c { public: @@ -6257,6 +6260,7 @@ public: FLG0_NPC_FAR = 0x40000, FLG0_NO_INPUT = 0x4000, FLG0_NO_DRAW = 0x2000, + FLG0_UNK_800 = 0x800, FLG0_UNK_200 = 0x200, }; @@ -6272,6 +6276,9 @@ public: u32 checkForceNormalColor() const; u32 checkForceTiredColor() const; bool checkMidnaTired(); + bool i_checkMidnaTired() { + return dComIfGs_isTransformLV(3) && !i_dComIfGs_isEventBit(0x1e08); + } void onNoServiceWait(); /* 804BC3E0 */ void modelCallBack(int); /* 804BC5C4 */ void changeUpperBck(); @@ -6330,6 +6337,7 @@ public: BOOL checkNpcFar() { return checkStateFlg0(FLG0_NPC_FAR); } BOOL checkNoDraw() const { return checkStateFlg0(FLG0_NO_DRAW); } BOOL checkNoInput() const { return checkStateFlg0(FLG0_NO_INPUT); } + BOOL checkWolfNoPos() const { return checkStateFlg0(FLG0_UNK_800); } int checkMetamorphoseEnable() { return (this->*mpFunc)(); } int checkShadowModelDrawDemoForce() const { return checkStateFlg1(FLG1_SHADOW_MODEL_DRAW_DEMO_FORCE); } @@ -6362,12 +6370,8 @@ public: return 0; } - int checkShadowModeTalkWait() const { - if (mDemoType != 2 && mDemoType != 1) { - return 0; - } - - return 1; + bool checkShadowModeTalkWait() const { + return (field_0x84e == 2 || field_0x84e == 1) ; } void setShadowReturn() { mDemoType = 4; } diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index ede65e9781..2bb875205d 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -176,6 +176,7 @@ private: class daMidna_c; class daPy_py_c; inline daPy_py_c* dComIfGp_getLinkPlayer(); +inline BOOL i_dComIfGs_isEventBit(const u16); class daPy_py_c : public fopAc_ac_c { public: @@ -788,6 +789,7 @@ public: inline static BOOL i_checkNowWolf() { return dComIfGp_getLinkPlayer()->i_checkWolf(); } inline bool checkZoraWearFlg() const; inline bool checkMagicArmorWearFlg() const; + inline static BOOL i_checkFirstMidnaDemo() { return i_dComIfGs_isEventBit(0xc10); } static daMidna_c* getMidnaActor() { return m_midnaActor; } diff --git a/include/d/d_attention.h b/include/d/d_attention.h index e011115c26..2ce3e8efb0 100644 --- a/include/d/d_attention.h +++ b/include/d/d_attention.h @@ -215,6 +215,9 @@ public: int GetActionCount() { return mActionCount; } int GetLockonCount() { return mLockonCount; } bool Lockon() { return LockonTruth() || chkFlag(0x20000000); } // only matches with -O2? + int ZHintRequest(fopAc_ac_c *param_1, int param_2) { + return mZHintTarget.request(param_1, param_2); + } static type_tbl_entry loc_type_tbl[3]; static type_tbl_entry act_type_tbl[5]; diff --git a/include/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.h b/include/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.h index 510dfa5d8b..fa13fcbb8c 100644 --- a/include/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.h +++ b/include/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.h @@ -2,5 +2,36 @@ #define D_A_TAG_WLJUMP_H #include "dolphin/types.h" +#include "f_op/f_op_actor.h" +#include "d/msg/d_msg_flow.h" +#include "d/com/d_com_inf_game.h" + +struct dPath; + +struct daTagWljump_c : fopAc_ac_c { + /* 80D64EB8 */ int create(); + /* 80D65004 */ ~daTagWljump_c(); + /* 80D65090 */ int execute(); + /* 80D6589C */ int draw(); + + int dComIfGp_att_ZHintRequest(fopAc_ac_c *param_1, int param_2) { + return dComIfGp_getAttention().ZHintRequest(param_1, param_2); + } + + /* 0x568 */ s8 field_0x568; + /* 0x568 */ s8 field_0x569; + /* 0x568 */ u8 field_0x56a; + /* 0x568 */ u8 field_0x56b; + /* 0x56C */ u8 field_0x56c[4]; + /* 0x570 */ u8 field_0x570; + /* 0x571 */ u8 field_0x571; + /* 0x572 */ u8 field_0x572; + /* 0x573 */ u8 field_0x573; + /* 0x574 */ s16 field_0x574; + /* 0x574 */ u16 field_0x576; + /* 0x578 */ dMsgFlow_c mMsgFlow; + /* 0x5C4 */ dPath* field_0x5c4; + /* 0x5C8 */ f32 field_0x5c8; +}; #endif /* D_A_TAG_WLJUMP_H */ 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 e2c6f35225..4c29ffb81d 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 @@ -6,67 +6,16 @@ #include "rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" +#include "d/d_path.h" +#include "d/a/d_a_alink.h" +#include "d/d_procname.h" +#include "JSystem/JKernel/JKRHeap.h" // // Types: // -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTagWljump_c { - /* 80D64EB8 */ void create(); - /* 80D65004 */ ~daTagWljump_c(); - /* 80D65090 */ void execute(); - /* 80D6589C */ bool draw(); -}; - -struct daPy_py_c { - static u8 m_midnaActor[4]; -}; - -struct dSv_player_status_b_c { - /* 80032BEC */ void isTransformLV(int) const; -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -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 dAttHint_c { - /* 800738FC */ void request(fopAc_ac_c*, int); -}; - -struct JAISoundID {}; - -struct Vec {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - // // Forward References: // @@ -79,7 +28,6 @@ extern "C" void execute__13daTagWljump_cFv(); extern "C" static void daTagWljump_Execute__FP13daTagWljump_c(); extern "C" bool draw__13daTagWljump_cFv(); extern "C" static void daTagWljump_Draw__FP13daTagWljump_c(); -extern "C" extern void* g_profile_Tag_Wljump[12]; // // External References: @@ -100,13 +48,8 @@ extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c(); extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci(); extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); extern "C" void __dl__FPv(); -extern "C" void PSVECSquareDistance(); extern "C" void _savegpr_26(); extern "C" void _restgpr_26(); -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 u32 __float_nan; extern "C" u8 m_midnaActor__9daPy_py_c[4]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; @@ -115,47 +58,215 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // /* 80D64EB8-80D64FE4 000078 012C+00 1/1 0/0 0/0 .text create__13daTagWljump_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagWljump_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/create__13daTagWljump_cFv.s" +int daTagWljump_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagWljump_c(); + fopAcM_OnCondition(this, 8); + } + u32 param = (fopAcM_GetParam(this) >> 8) & 0xff; + field_0x571 = (u8)param; + s32 uVar2 = fopAcM_GetParam(this); + if ((uVar2 & 0xff) == 0xff) { + return 5; + } + + field_0x5c4 = dPath_GetRoomPath(uVar2 & 0xff, fopAcM_GetRoomNo(this)); + if (field_0x5c4 == NULL || field_0x5c4->m_num < 2) { + return 5; + } + + mAttentionInfo.field_0x0[0] = 0x32; + mAttentionInfo.field_0x4[3] = 0x32; + shape_angle.z = 0; + field_0x568 = -1; + field_0x56c[0] = (fopAcM_GetParam(this) >> 16) & 0xf; + if (field_0x56c[0] != 1) { + field_0x56c[0] = 0; + } + if (field_0x56c[0] == 0 && field_0x571 != 0xff) { + if (dComIfGs_isSwitch(field_0x571, fopAcM_GetHomeRoomNo(this)) == 0) { + field_0x573 = 1; + } + } + return 4; } -#pragma pop /* 80D64FE4-80D65004 0001A4 0020+00 1/0 0/0 0/0 .text daTagWljump_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagWljump_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Create__FP10fopAc_ac_c.s" +static int daTagWljump_Create(fopAc_ac_c* param_0) { + return ((daTagWljump_c*)param_0)->create(); } -#pragma pop /* 80D65004-80D65068 0001C4 0064+00 1/1 0/0 0/0 .text __dt__13daTagWljump_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagWljump_c::~daTagWljump_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/__dt__13daTagWljump_cFv.s" +daTagWljump_c::~daTagWljump_c() { } -#pragma pop /* 80D65068-80D65090 000228 0028+00 1/0 0/0 0/0 .text daTagWljump_Delete__FP13daTagWljump_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagWljump_Delete(daTagWljump_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Delete__FP13daTagWljump_c.s" +static int daTagWljump_Delete(daTagWljump_c* param_0) { + param_0->~daTagWljump_c(); + return 1; } -#pragma pop /* ############################################################################################## */ + +/* 80D65090-80D6587C 000250 07EC+00 1/1 0/0 0/0 .text execute__13daTagWljump_cFv */ +// reg swap +#ifdef NONMATCHING +int daTagWljump_c::execute() { + mAttentionInfo.mFlags = 0; + if (field_0x56c[1]) { + field_0x56c[1]--; + } + + daPy_py_c* linkPlayer = daPy_getLinkPlayerActorClass(); + daMidna_c* midnaActor = daPy_py_c::getMidnaActor(); + + if (midnaActor == NULL) { + return 1; + } + + if (mEvtInfo.checkCommandTalk()) { + s32 bVar2 = 1; + if (!midnaActor->checkShadowModeTalkWait()) { + if (shape_angle.x != 0 && + (field_0x571 == 0xff || + !i_fopAcM_isSwitch(this, field_0x571))) + { + if (field_0x56c[3] == 0) { + mMsgFlow.init(this, shape_angle.x & 0xffff, 0, NULL); + field_0x56c[3] = 1; + mDoAud_seStart(0x10, 0, 0, 0); + } else { + ; + if (mMsgFlow.doFlow(this, NULL, 0)) { + mDoAud_seStart(0x11, 0, 0, 0); + shape_angle.x = 0; + } + } + } else { + field_0x568 = field_0x570; + if (midnaActor->current.pos.abs(mEyePos) < 5.0f) { + bVar2 = 0; + } + } + } + if (bVar2) { + return 1; + } + field_0x56c[3] = 0; + i_dComIfGp_event_reset(); + field_0x56c[0] = 0; + field_0x572 = 1; + if (field_0x571 != 0xff) { + i_fopAcM_onSwitch(this, field_0x571); + } + } else if (!i_dComIfGp_getEvent().i_isOrderOK()) { + field_0x572 = 0; + } else { + if (!midnaActor->checkWolfNoPos()) { + field_0x574++; + if (field_0x574 >= 5) { + field_0x572 = 0; + } + } else { + field_0x574 = 0; + } + } + + if (!linkPlayer->i_checkNowWolf() || + !daPy_py_c::i_checkFirstMidnaDemo() || + midnaActor->i_checkMidnaTired()) { + return 1; + } + if (field_0x571 != 0xff && i_fopAcM_isSwitch(this, field_0x571)) { + field_0x56c[0] = 0; + if (field_0x573) { + field_0x573 = 0; + field_0x572 = 1; + field_0x574 = 0; + } + } + if (field_0x56c[0] != 0 || field_0x572 != 0 || field_0x571 == 0xff || + i_fopAcM_isSwitch(this, field_0x571)) + { + s32 uVar6; + dStage_dPnt_c* pbVar7 = field_0x5c4->m_points; + if (linkPlayer->checkWolfTagLockJumpLand() == 0) { + if (linkPlayer->checkWolfTagLockJump() == 0) { + for (uVar6 = 0; uVar6 < field_0x5c4->m_num; uVar6++, pbVar7++) { + if (linkPlayer->current.pos.abs2(pbVar7->m_position) < pbVar7->field_0x0 * pbVar7->field_0x0 * 10.0f * 10.0f) { + field_0x56a = uVar6; + if (uVar6 == 0) { + field_0x568 = 1; + } else if (uVar6 == field_0x5c4->m_num - 1) { + field_0x568 = uVar6 - 1; + } else { + field_0x568 = uVar6 + 1; + } + break; + } + } + if (uVar6 == field_0x5c4->m_num) { + field_0x568 = -1; + } + } else if (field_0x56b) { + field_0x56b = 0; + if (field_0x56a < field_0x568) { + field_0x568++; + if (field_0x5c4->m_num == field_0x568) { + field_0x568 = 0xff; + } + } else { + field_0x568--; + } + } + } + if (field_0x568 >= 0) { + dStage_dPnt_c* pPoint = &field_0x5c4->m_points[field_0x568]; + mEyePos.set(pPoint->m_position.x, pPoint->m_position.y, pPoint->m_position.z); + mAttentionInfo.mPosition = mEyePos; + mAttentionInfo.mPosition.y += 220.0f; + field_0x5c8 = pPoint->field_0x3 * 10.0f; + if (pPoint->field_0x1 == 1) { + shape_angle.z = 1; + } else { + shape_angle.z = 0; + } + if (field_0x572 == 0) { + if (!g_dComIfG_gameInfo.play.getEvent().runCheck()) { + mEvtInfo.i_onCondition(1); + if (!linkPlayer->checkPlayerFly() && + linkPlayer->mEvtInfo.chkCondition(1)) { + dComIfGp_att_ZHintRequest(this, 0x1ff); + if (field_0x56c[2] == 0) { + field_0x56c[2] = 1; + if (field_0x56c[1] == 0) { + mDoAud_seStart(0xe, 0, 0, 0); + } + field_0x56c[1] = 0x3c; + } + } + } + field_0x570 = field_0x568; + field_0x568 = -1; + } else { + mAttentionInfo.mFlags |= 0x81; + } + } else { + field_0x572 = 0; + } + } else { + field_0x572 = 0; + field_0x568 = -1; + } + current.pos = mAttentionInfo.mPosition; + if (!mEvtInfo.chkCondition(1)) { + field_0x56c[2] = 0; + } + + return 1; +} +#else /* 80D658CC-80D658D0 000000 0004+00 1/1 0/0 0/0 .rodata @4044 */ SECTION_RODATA static f32 const lit_4044 = 1.0f; COMPILER_STRIP_GATE(0x80D658CC, &lit_4044); @@ -254,61 +365,56 @@ SECTION_RODATA static u8 const lit_4055[8] = { COMPILER_STRIP_GATE(0x80D6590C, &lit_4055); #pragma pop -/* 80D65090-80D6587C 000250 07EC+00 1/1 0/0 0/0 .text execute__13daTagWljump_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daTagWljump_c::execute() { +asm int daTagWljump_c::execute() { nofralloc #include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/execute__13daTagWljump_cFv.s" } #pragma pop +#endif /* 80D6587C-80D6589C 000A3C 0020+00 1/0 0/0 0/0 .text daTagWljump_Execute__FP13daTagWljump_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagWljump_Execute(daTagWljump_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Execute__FP13daTagWljump_c.s" +static int daTagWljump_Execute(daTagWljump_c* param_0) { + return param_0->execute(); } -#pragma pop /* 80D6589C-80D658A4 000A5C 0008+00 1/1 0/0 0/0 .text draw__13daTagWljump_cFv */ -bool daTagWljump_c::draw() { - return true; +int daTagWljump_c::draw() { + return 1; } /* 80D658A4-80D658C4 000A64 0020+00 1/0 0/0 0/0 .text daTagWljump_Draw__FP13daTagWljump_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagWljump_Draw(daTagWljump_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_wljump/d_a_tag_wljump/daTagWljump_Draw__FP13daTagWljump_c.s" +static int daTagWljump_Draw(daTagWljump_c* param_0) { + return param_0->draw(); } -#pragma pop /* ############################################################################################## */ /* 80D65914-80D65934 -00001 0020+00 1/0 0/0 0/0 .data l_daTagWljump_Method */ -SECTION_DATA static void* l_daTagWljump_Method[8] = { - (void*)daTagWljump_Create__FP10fopAc_ac_c, - (void*)daTagWljump_Delete__FP13daTagWljump_c, - (void*)daTagWljump_Execute__FP13daTagWljump_c, - (void*)NULL, - (void*)daTagWljump_Draw__FP13daTagWljump_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daTagWljump_Method = { + (process_method_func)daTagWljump_Create, + (process_method_func)daTagWljump_Delete, + (process_method_func)daTagWljump_Execute, + NULL, + (process_method_func)daTagWljump_Draw, }; /* 80D65934-80D65964 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Wljump */ -SECTION_DATA extern void* g_profile_Tag_Wljump[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02C70000, (void*)&g_fpcLf_Method, - (void*)0x000005CC, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x01040000, (void*)&l_daTagWljump_Method, - (void*)0x00044000, (void*)0x030E0000, +extern actor_process_profile_definition g_profile_Tag_Wljump = { + -3, + 7, + -3, + PROC_Tag_Wljump, + &g_fpcLf_Method.mBase, + sizeof(daTagWljump_c), + 0, + 0, + &g_fopAc_Method.base, + 0x0104, + &l_daTagWljump_Method, + 0x00044000, + 3, + 0x0E, }; From 6fd3d93fa5f52f303538202322b4602f0f53cc14 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Sun, 25 Jun 2023 17:11:32 +0300 Subject: [PATCH 02/35] d_select_cursor - most functions matching --- Progress.md | 8 +- .../__dt__16dSelect_cursor_cFv.s | 168 ------ .../__dt__19dSelect_cursorHIO_cFv.s | 20 - ...ation__16dSelect_cursor_cFP11J2DAnmColor.s | 108 ---- ...6dSelect_cursor_cFP19J2DAnmTextureSRTKey.s | 84 --- include/d/d_select_cursor.h | 20 +- include/d/d_select_icon.h | 7 +- src/d/d_select_cursor.cpp | 535 ++++++++++++++---- src/d/d_simple_model.cpp | 4 +- 9 files changed, 454 insertions(+), 500 deletions(-) delete mode 100644 asm/d/d_select_cursor/__dt__16dSelect_cursor_cFv.s delete mode 100644 asm/d/d_select_cursor/__dt__19dSelect_cursorHIO_cFv.s delete mode 100644 asm/d/d_select_cursor/setBpkAnimation__16dSelect_cursor_cFP11J2DAnmColor.s delete mode 100644 asm/d/d_select_cursor/setBtk0Animation__16dSelect_cursor_cFP19J2DAnmTextureSRTKey.s diff --git a/Progress.md b/Progress.md index 1b64fa58c7..7b89bfd9ab 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 27.698035% | 996172 | 3596544 +.text | 27.735849% | 997532 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 35.320165% | 1420108 | 4020672 +Total | 35.353991% | 1421468 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 35.320165% | 1420108 | 4020672 +main.dol | 35.353991% | 1421468 | 4020672 RELs | 33.657973% | 3870776 | 11500324 -Total | 34.088560% | 5290884 | 15520996 +Total | 34.097322% | 5292244 | 15520996 ## RELs diff --git a/asm/d/d_select_cursor/__dt__16dSelect_cursor_cFv.s b/asm/d/d_select_cursor/__dt__16dSelect_cursor_cFv.s deleted file mode 100644 index f1498d8ee4..0000000000 --- a/asm/d/d_select_cursor/__dt__16dSelect_cursor_cFv.s +++ /dev/null @@ -1,168 +0,0 @@ -lbl_801949EC: -/* 801949EC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801949F0 7C 08 02 A6 */ mflr r0 -/* 801949F4 90 01 00 24 */ stw r0, 0x24(r1) -/* 801949F8 39 61 00 20 */ addi r11, r1, 0x20 -/* 801949FC 48 1C D7 D5 */ bl _savegpr_26 -/* 80194A00 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80194A04 7C 9F 23 78 */ mr r31, r4 -/* 80194A08 41 82 02 0C */ beq lbl_80194C14 -/* 80194A0C 3C 60 80 3C */ lis r3, __vt__16dSelect_cursor_c@ha /* 0x803BB78C@ha */ -/* 80194A10 38 03 B7 8C */ addi r0, r3, __vt__16dSelect_cursor_c@l /* 0x803BB78C@l */ -/* 80194A14 90 1E 00 00 */ stw r0, 0(r30) -/* 80194A18 80 7E 00 04 */ lwz r3, 4(r30) -/* 80194A1C 28 03 00 00 */ cmplwi r3, 0 -/* 80194A20 41 82 00 18 */ beq lbl_80194A38 -/* 80194A24 38 80 00 01 */ li r4, 1 -/* 80194A28 81 83 00 00 */ lwz r12, 0(r3) -/* 80194A2C 81 8C 00 08 */ lwz r12, 8(r12) -/* 80194A30 7D 89 03 A6 */ mtctr r12 -/* 80194A34 4E 80 04 21 */ bctrl -lbl_80194A38: -/* 80194A38 38 00 00 00 */ li r0, 0 -/* 80194A3C 90 1E 00 04 */ stw r0, 4(r30) -/* 80194A40 80 7E 00 10 */ lwz r3, 0x10(r30) -/* 80194A44 28 03 00 00 */ cmplwi r3, 0 -/* 80194A48 41 82 00 24 */ beq lbl_80194A6C -/* 80194A4C 41 82 00 18 */ beq lbl_80194A64 -/* 80194A50 38 80 00 01 */ li r4, 1 -/* 80194A54 81 83 00 00 */ lwz r12, 0(r3) -/* 80194A58 81 8C 00 08 */ lwz r12, 8(r12) -/* 80194A5C 7D 89 03 A6 */ mtctr r12 -/* 80194A60 4E 80 04 21 */ bctrl -lbl_80194A64: -/* 80194A64 38 00 00 00 */ li r0, 0 -/* 80194A68 90 1E 00 10 */ stw r0, 0x10(r30) -lbl_80194A6C: -/* 80194A6C 3B 40 00 00 */ li r26, 0 -/* 80194A70 3B A0 00 00 */ li r29, 0 -/* 80194A74 7F BC EB 78 */ mr r28, r29 -lbl_80194A78: -/* 80194A78 3B 7D 00 1C */ addi r27, r29, 0x1c -/* 80194A7C 7C 7E D8 2E */ lwzx r3, r30, r27 -/* 80194A80 28 03 00 00 */ cmplwi r3, 0 -/* 80194A84 41 82 00 20 */ beq lbl_80194AA4 -/* 80194A88 41 82 00 18 */ beq lbl_80194AA0 -/* 80194A8C 38 80 00 01 */ li r4, 1 -/* 80194A90 81 83 00 00 */ lwz r12, 0(r3) -/* 80194A94 81 8C 00 08 */ lwz r12, 8(r12) -/* 80194A98 7D 89 03 A6 */ mtctr r12 -/* 80194A9C 4E 80 04 21 */ bctrl -lbl_80194AA0: -/* 80194AA0 7F 9E D9 2E */ stwx r28, r30, r27 -lbl_80194AA4: -/* 80194AA4 3B 5A 00 01 */ addi r26, r26, 1 -/* 80194AA8 2C 1A 00 04 */ cmpwi r26, 4 -/* 80194AAC 3B BD 00 04 */ addi r29, r29, 4 -/* 80194AB0 41 80 FF C8 */ blt lbl_80194A78 -/* 80194AB4 80 7E 00 14 */ lwz r3, 0x14(r30) -/* 80194AB8 28 03 00 00 */ cmplwi r3, 0 -/* 80194ABC 41 82 00 24 */ beq lbl_80194AE0 -/* 80194AC0 41 82 00 18 */ beq lbl_80194AD8 -/* 80194AC4 38 80 00 01 */ li r4, 1 -/* 80194AC8 81 83 00 00 */ lwz r12, 0(r3) -/* 80194ACC 81 8C 00 08 */ lwz r12, 8(r12) -/* 80194AD0 7D 89 03 A6 */ mtctr r12 -/* 80194AD4 4E 80 04 21 */ bctrl -lbl_80194AD8: -/* 80194AD8 38 00 00 00 */ li r0, 0 -/* 80194ADC 90 1E 00 14 */ stw r0, 0x14(r30) -lbl_80194AE0: -/* 80194AE0 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 80194AE4 28 03 00 00 */ cmplwi r3, 0 -/* 80194AE8 41 82 00 24 */ beq lbl_80194B0C -/* 80194AEC 41 82 00 18 */ beq lbl_80194B04 -/* 80194AF0 38 80 00 01 */ li r4, 1 -/* 80194AF4 81 83 00 00 */ lwz r12, 0(r3) -/* 80194AF8 81 8C 00 08 */ lwz r12, 8(r12) -/* 80194AFC 7D 89 03 A6 */ mtctr r12 -/* 80194B00 4E 80 04 21 */ bctrl -lbl_80194B04: -/* 80194B04 38 00 00 00 */ li r0, 0 -/* 80194B08 90 1E 00 18 */ stw r0, 0x18(r30) -lbl_80194B0C: -/* 80194B0C 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 80194B10 28 03 00 00 */ cmplwi r3, 0 -/* 80194B14 41 82 00 24 */ beq lbl_80194B38 -/* 80194B18 41 82 00 18 */ beq lbl_80194B30 -/* 80194B1C 38 80 00 01 */ li r4, 1 -/* 80194B20 81 83 00 00 */ lwz r12, 0(r3) -/* 80194B24 81 8C 00 08 */ lwz r12, 8(r12) -/* 80194B28 7D 89 03 A6 */ mtctr r12 -/* 80194B2C 4E 80 04 21 */ bctrl -lbl_80194B30: -/* 80194B30 38 00 00 00 */ li r0, 0 -/* 80194B34 90 1E 00 0C */ stw r0, 0xc(r30) -lbl_80194B38: -/* 80194B38 80 7E 00 30 */ lwz r3, 0x30(r30) -/* 80194B3C 28 03 00 00 */ cmplwi r3, 0 -/* 80194B40 41 82 00 24 */ beq lbl_80194B64 -/* 80194B44 41 82 00 18 */ beq lbl_80194B5C -/* 80194B48 38 80 00 01 */ li r4, 1 -/* 80194B4C 81 83 00 00 */ lwz r12, 0(r3) -/* 80194B50 81 8C 00 08 */ lwz r12, 8(r12) -/* 80194B54 7D 89 03 A6 */ mtctr r12 -/* 80194B58 4E 80 04 21 */ bctrl -lbl_80194B5C: -/* 80194B5C 38 00 00 00 */ li r0, 0 -/* 80194B60 90 1E 00 30 */ stw r0, 0x30(r30) -lbl_80194B64: -/* 80194B64 3B 40 00 00 */ li r26, 0 -/* 80194B68 3B A0 00 00 */ li r29, 0 -/* 80194B6C 3B 80 00 00 */ li r28, 0 -lbl_80194B70: -/* 80194B70 3B 7D 00 34 */ addi r27, r29, 0x34 -/* 80194B74 7C 7E D8 2E */ lwzx r3, r30, r27 -/* 80194B78 28 03 00 00 */ cmplwi r3, 0 -/* 80194B7C 41 82 00 20 */ beq lbl_80194B9C -/* 80194B80 41 82 00 18 */ beq lbl_80194B98 -/* 80194B84 38 80 00 01 */ li r4, 1 -/* 80194B88 81 83 00 00 */ lwz r12, 0(r3) -/* 80194B8C 81 8C 00 08 */ lwz r12, 8(r12) -/* 80194B90 7D 89 03 A6 */ mtctr r12 -/* 80194B94 4E 80 04 21 */ bctrl -lbl_80194B98: -/* 80194B98 7F 9E D9 2E */ stwx r28, r30, r27 -lbl_80194B9C: -/* 80194B9C 3B 5A 00 01 */ addi r26, r26, 1 -/* 80194BA0 2C 1A 00 02 */ cmpwi r26, 2 -/* 80194BA4 3B BD 00 04 */ addi r29, r29, 4 -/* 80194BA8 41 80 FF C8 */ blt lbl_80194B70 -/* 80194BAC 80 7E 00 2C */ lwz r3, 0x2c(r30) -/* 80194BB0 28 03 00 00 */ cmplwi r3, 0 -/* 80194BB4 41 82 00 24 */ beq lbl_80194BD8 -/* 80194BB8 41 82 00 18 */ beq lbl_80194BD0 -/* 80194BBC 38 80 00 01 */ li r4, 1 -/* 80194BC0 81 83 00 00 */ lwz r12, 0(r3) -/* 80194BC4 81 8C 00 08 */ lwz r12, 8(r12) -/* 80194BC8 7D 89 03 A6 */ mtctr r12 -/* 80194BCC 4E 80 04 21 */ bctrl -lbl_80194BD0: -/* 80194BD0 38 00 00 00 */ li r0, 0 -/* 80194BD4 90 1E 00 2C */ stw r0, 0x2c(r30) -lbl_80194BD8: -/* 80194BD8 80 7E 00 3C */ lwz r3, 0x3c(r30) -/* 80194BDC 28 03 00 00 */ cmplwi r3, 0 -/* 80194BE0 41 82 00 24 */ beq lbl_80194C04 -/* 80194BE4 41 82 00 18 */ beq lbl_80194BFC -/* 80194BE8 38 80 00 01 */ li r4, 1 -/* 80194BEC 81 83 00 00 */ lwz r12, 0(r3) -/* 80194BF0 81 8C 00 08 */ lwz r12, 8(r12) -/* 80194BF4 7D 89 03 A6 */ mtctr r12 -/* 80194BF8 4E 80 04 21 */ bctrl -lbl_80194BFC: -/* 80194BFC 38 00 00 00 */ li r0, 0 -/* 80194C00 90 1E 00 3C */ stw r0, 0x3c(r30) -lbl_80194C04: -/* 80194C04 7F E0 07 35 */ extsh. r0, r31 -/* 80194C08 40 81 00 0C */ ble lbl_80194C14 -/* 80194C0C 7F C3 F3 78 */ mr r3, r30 -/* 80194C10 48 13 A1 2D */ bl __dl__FPv -lbl_80194C14: -/* 80194C14 7F C3 F3 78 */ mr r3, r30 -/* 80194C18 39 61 00 20 */ addi r11, r1, 0x20 -/* 80194C1C 48 1C D6 01 */ bl _restgpr_26 -/* 80194C20 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80194C24 7C 08 03 A6 */ mtlr r0 -/* 80194C28 38 21 00 20 */ addi r1, r1, 0x20 -/* 80194C2C 4E 80 00 20 */ blr diff --git a/asm/d/d_select_cursor/__dt__19dSelect_cursorHIO_cFv.s b/asm/d/d_select_cursor/__dt__19dSelect_cursorHIO_cFv.s deleted file mode 100644 index e9114890d7..0000000000 --- a/asm/d/d_select_cursor/__dt__19dSelect_cursorHIO_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80195978: -/* 80195978 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8019597C 7C 08 02 A6 */ mflr r0 -/* 80195980 90 01 00 14 */ stw r0, 0x14(r1) -/* 80195984 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80195988 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8019598C 41 82 00 1C */ beq lbl_801959A8 -/* 80195990 3C A0 80 3C */ lis r5, __vt__19dSelect_cursorHIO_c@ha /* 0x803BB7A8@ha */ -/* 80195994 38 05 B7 A8 */ addi r0, r5, __vt__19dSelect_cursorHIO_c@l /* 0x803BB7A8@l */ -/* 80195998 90 1F 00 00 */ stw r0, 0(r31) -/* 8019599C 7C 80 07 35 */ extsh. r0, r4 -/* 801959A0 40 81 00 08 */ ble lbl_801959A8 -/* 801959A4 48 13 93 99 */ bl __dl__FPv -lbl_801959A8: -/* 801959A8 7F E3 FB 78 */ mr r3, r31 -/* 801959AC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801959B0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801959B4 7C 08 03 A6 */ mtlr r0 -/* 801959B8 38 21 00 10 */ addi r1, r1, 0x10 -/* 801959BC 4E 80 00 20 */ blr diff --git a/asm/d/d_select_cursor/setBpkAnimation__16dSelect_cursor_cFP11J2DAnmColor.s b/asm/d/d_select_cursor/setBpkAnimation__16dSelect_cursor_cFP11J2DAnmColor.s deleted file mode 100644 index 9ec387620d..0000000000 --- a/asm/d/d_select_cursor/setBpkAnimation__16dSelect_cursor_cFP11J2DAnmColor.s +++ /dev/null @@ -1,108 +0,0 @@ -lbl_80195460: -/* 80195460 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80195464 7C 08 02 A6 */ mflr r0 -/* 80195468 90 01 00 24 */ stw r0, 0x24(r1) -/* 8019546C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80195470 48 1C CD 65 */ bl _savegpr_27 -/* 80195474 7C 7B 1B 78 */ mr r27, r3 -/* 80195478 7C 9C 23 78 */ mr r28, r4 -/* 8019547C 88 03 00 B5 */ lbz r0, 0xb5(r3) -/* 80195480 2C 00 00 02 */ cmpwi r0, 2 -/* 80195484 41 82 00 78 */ beq lbl_801954FC -/* 80195488 40 80 00 10 */ bge lbl_80195498 -/* 8019548C 2C 00 00 00 */ cmpwi r0, 0 -/* 80195490 41 82 00 14 */ beq lbl_801954A4 -/* 80195494 48 00 01 0C */ b lbl_801955A0 -lbl_80195498: -/* 80195498 2C 00 00 04 */ cmpwi r0, 4 -/* 8019549C 40 80 01 04 */ bge lbl_801955A0 -/* 801954A0 48 00 00 C8 */ b lbl_80195568 -lbl_801954A4: -/* 801954A4 3B A0 00 00 */ li r29, 0 -/* 801954A8 3B E0 00 00 */ li r31, 0 -/* 801954AC 3C 60 80 39 */ lis r3, tag_4181@ha /* 0x80394A30@ha */ -/* 801954B0 3B C3 4A 30 */ addi r30, r3, tag_4181@l /* 0x80394A30@l */ -lbl_801954B4: -/* 801954B4 80 7B 00 04 */ lwz r3, 4(r27) -/* 801954B8 7C 9E FA 14 */ add r4, r30, r31 -/* 801954BC 80 A4 00 00 */ lwz r5, 0(r4) -/* 801954C0 80 C4 00 04 */ lwz r6, 4(r4) -/* 801954C4 81 83 00 00 */ lwz r12, 0(r3) -/* 801954C8 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801954CC 7D 89 03 A6 */ mtctr r12 -/* 801954D0 4E 80 04 21 */ bctrl -/* 801954D4 7F 84 E3 78 */ mr r4, r28 -/* 801954D8 81 83 00 00 */ lwz r12, 0(r3) -/* 801954DC 81 8C 00 64 */ lwz r12, 0x64(r12) -/* 801954E0 7D 89 03 A6 */ mtctr r12 -/* 801954E4 4E 80 04 21 */ bctrl -/* 801954E8 3B BD 00 01 */ addi r29, r29, 1 -/* 801954EC 2C 1D 00 04 */ cmpwi r29, 4 -/* 801954F0 3B FF 00 08 */ addi r31, r31, 8 -/* 801954F4 41 80 FF C0 */ blt lbl_801954B4 -/* 801954F8 48 00 00 E0 */ b lbl_801955D8 -lbl_801954FC: -/* 801954FC 80 7B 00 04 */ lwz r3, 4(r27) -/* 80195500 3C 80 69 67 */ lis r4, 0x6967 /* 0x69676874@ha */ -/* 80195504 38 C4 68 74 */ addi r6, r4, 0x6874 /* 0x69676874@l */ -/* 80195508 38 A0 00 6C */ li r5, 0x6c -/* 8019550C 81 83 00 00 */ lwz r12, 0(r3) -/* 80195510 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 80195514 7D 89 03 A6 */ mtctr r12 -/* 80195518 4E 80 04 21 */ bctrl -/* 8019551C 7F 84 E3 78 */ mr r4, r28 -/* 80195520 81 83 00 00 */ lwz r12, 0(r3) -/* 80195524 81 8C 00 64 */ lwz r12, 0x64(r12) -/* 80195528 7D 89 03 A6 */ mtctr r12 -/* 8019552C 4E 80 04 21 */ bctrl -/* 80195530 80 7B 00 04 */ lwz r3, 4(r27) -/* 80195534 3C 80 63 6B */ lis r4, 0x636B /* 0x636B5F6C@ha */ -/* 80195538 38 C4 5F 6C */ addi r6, r4, 0x5F6C /* 0x636B5F6C@l */ -/* 8019553C 38 A0 62 61 */ li r5, 0x6261 -/* 80195540 81 83 00 00 */ lwz r12, 0(r3) -/* 80195544 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 80195548 7D 89 03 A6 */ mtctr r12 -/* 8019554C 4E 80 04 21 */ bctrl -/* 80195550 7F 84 E3 78 */ mr r4, r28 -/* 80195554 81 83 00 00 */ lwz r12, 0(r3) -/* 80195558 81 8C 00 64 */ lwz r12, 0x64(r12) -/* 8019555C 7D 89 03 A6 */ mtctr r12 -/* 80195560 4E 80 04 21 */ bctrl -/* 80195564 48 00 00 74 */ b lbl_801955D8 -lbl_80195568: -/* 80195568 80 7B 00 04 */ lwz r3, 4(r27) -/* 8019556C 3C 80 61 74 */ lis r4, 0x6174 /* 0x61747375@ha */ -/* 80195570 38 C4 73 75 */ addi r6, r4, 0x7375 /* 0x61747375@l */ -/* 80195574 38 A0 00 62 */ li r5, 0x62 -/* 80195578 81 83 00 00 */ lwz r12, 0(r3) -/* 8019557C 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 80195580 7D 89 03 A6 */ mtctr r12 -/* 80195584 4E 80 04 21 */ bctrl -/* 80195588 7F 84 E3 78 */ mr r4, r28 -/* 8019558C 81 83 00 00 */ lwz r12, 0(r3) -/* 80195590 81 8C 00 64 */ lwz r12, 0x64(r12) -/* 80195594 7D 89 03 A6 */ mtctr r12 -/* 80195598 4E 80 04 21 */ bctrl -/* 8019559C 48 00 00 3C */ b lbl_801955D8 -lbl_801955A0: -/* 801955A0 80 7B 00 04 */ lwz r3, 4(r27) -/* 801955A4 3C 80 68 74 */ lis r4, 0x6874 /* 0x68743030@ha */ -/* 801955A8 38 C4 30 30 */ addi r6, r4, 0x3030 /* 0x68743030@l */ -/* 801955AC 3C 80 00 6C */ lis r4, 0x006C /* 0x006C6967@ha */ -/* 801955B0 38 A4 69 67 */ addi r5, r4, 0x6967 /* 0x006C6967@l */ -/* 801955B4 81 83 00 00 */ lwz r12, 0(r3) -/* 801955B8 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801955BC 7D 89 03 A6 */ mtctr r12 -/* 801955C0 4E 80 04 21 */ bctrl -/* 801955C4 7F 84 E3 78 */ mr r4, r28 -/* 801955C8 81 83 00 00 */ lwz r12, 0(r3) -/* 801955CC 81 8C 00 64 */ lwz r12, 0x64(r12) -/* 801955D0 7D 89 03 A6 */ mtctr r12 -/* 801955D4 4E 80 04 21 */ bctrl -lbl_801955D8: -/* 801955D8 39 61 00 20 */ addi r11, r1, 0x20 -/* 801955DC 48 1C CC 45 */ bl _restgpr_27 -/* 801955E0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801955E4 7C 08 03 A6 */ mtlr r0 -/* 801955E8 38 21 00 20 */ addi r1, r1, 0x20 -/* 801955EC 4E 80 00 20 */ blr diff --git a/asm/d/d_select_cursor/setBtk0Animation__16dSelect_cursor_cFP19J2DAnmTextureSRTKey.s b/asm/d/d_select_cursor/setBtk0Animation__16dSelect_cursor_cFP19J2DAnmTextureSRTKey.s deleted file mode 100644 index 772060d02e..0000000000 --- a/asm/d/d_select_cursor/setBtk0Animation__16dSelect_cursor_cFP19J2DAnmTextureSRTKey.s +++ /dev/null @@ -1,84 +0,0 @@ -lbl_801955F0: -/* 801955F0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801955F4 7C 08 02 A6 */ mflr r0 -/* 801955F8 90 01 00 24 */ stw r0, 0x24(r1) -/* 801955FC 39 61 00 20 */ addi r11, r1, 0x20 -/* 80195600 48 1C CB D5 */ bl _savegpr_27 -/* 80195604 7C 7B 1B 78 */ mr r27, r3 -/* 80195608 7C 9C 23 78 */ mr r28, r4 -/* 8019560C 88 03 00 B5 */ lbz r0, 0xb5(r3) -/* 80195610 2C 00 00 01 */ cmpwi r0, 1 -/* 80195614 41 82 00 6C */ beq lbl_80195680 -/* 80195618 40 80 00 C0 */ bge lbl_801956D8 -/* 8019561C 2C 00 00 00 */ cmpwi r0, 0 -/* 80195620 40 80 00 08 */ bge lbl_80195628 -/* 80195624 48 00 00 B4 */ b lbl_801956D8 -lbl_80195628: -/* 80195628 3B A0 00 00 */ li r29, 0 -/* 8019562C 3B E0 00 00 */ li r31, 0 -/* 80195630 3C 60 80 39 */ lis r3, tag_4197@ha /* 0x80394A50@ha */ -/* 80195634 3B C3 4A 50 */ addi r30, r3, tag_4197@l /* 0x80394A50@l */ -lbl_80195638: -/* 80195638 80 7B 00 04 */ lwz r3, 4(r27) -/* 8019563C 7C 9E FA 14 */ add r4, r30, r31 -/* 80195640 80 A4 00 00 */ lwz r5, 0(r4) -/* 80195644 80 C4 00 04 */ lwz r6, 4(r4) -/* 80195648 81 83 00 00 */ lwz r12, 0(r3) -/* 8019564C 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 80195650 7D 89 03 A6 */ mtctr r12 -/* 80195654 4E 80 04 21 */ bctrl -/* 80195658 7F 84 E3 78 */ mr r4, r28 -/* 8019565C 81 83 00 00 */ lwz r12, 0(r3) -/* 80195660 81 8C 00 6C */ lwz r12, 0x6c(r12) -/* 80195664 7D 89 03 A6 */ mtctr r12 -/* 80195668 4E 80 04 21 */ bctrl -/* 8019566C 3B BD 00 01 */ addi r29, r29, 1 -/* 80195670 2C 1D 00 08 */ cmpwi r29, 8 -/* 80195674 3B FF 00 08 */ addi r31, r31, 8 -/* 80195678 41 80 FF C0 */ blt lbl_80195638 -/* 8019567C 48 00 00 90 */ b lbl_8019570C -lbl_80195680: -/* 80195680 3B A0 00 00 */ li r29, 0 -/* 80195684 3B E0 00 00 */ li r31, 0 -/* 80195688 3C 60 80 39 */ lis r3, tag_4204@ha /* 0x80394A90@ha */ -/* 8019568C 3B C3 4A 90 */ addi r30, r3, tag_4204@l /* 0x80394A90@l */ -lbl_80195690: -/* 80195690 80 7B 00 04 */ lwz r3, 4(r27) -/* 80195694 7C 9E FA 14 */ add r4, r30, r31 -/* 80195698 80 A4 00 00 */ lwz r5, 0(r4) -/* 8019569C 80 C4 00 04 */ lwz r6, 4(r4) -/* 801956A0 81 83 00 00 */ lwz r12, 0(r3) -/* 801956A4 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801956A8 7D 89 03 A6 */ mtctr r12 -/* 801956AC 4E 80 04 21 */ bctrl -/* 801956B0 7F 84 E3 78 */ mr r4, r28 -/* 801956B4 81 83 00 00 */ lwz r12, 0(r3) -/* 801956B8 81 8C 00 6C */ lwz r12, 0x6c(r12) -/* 801956BC 7D 89 03 A6 */ mtctr r12 -/* 801956C0 4E 80 04 21 */ bctrl -/* 801956C4 3B BD 00 01 */ addi r29, r29, 1 -/* 801956C8 2C 1D 00 02 */ cmpwi r29, 2 -/* 801956CC 3B FF 00 08 */ addi r31, r31, 8 -/* 801956D0 41 80 FF C0 */ blt lbl_80195690 -/* 801956D4 48 00 00 38 */ b lbl_8019570C -lbl_801956D8: -/* 801956D8 80 7B 00 04 */ lwz r3, 4(r27) -/* 801956DC 3C 80 6C 64 */ lis r4, 0x6C64 /* 0x6C643031@ha */ -/* 801956E0 38 C4 30 31 */ addi r6, r4, 0x3031 /* 0x6C643031@l */ -/* 801956E4 38 A0 67 6F */ li r5, 0x676f -/* 801956E8 81 83 00 00 */ lwz r12, 0(r3) -/* 801956EC 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801956F0 7D 89 03 A6 */ mtctr r12 -/* 801956F4 4E 80 04 21 */ bctrl -/* 801956F8 7F 84 E3 78 */ mr r4, r28 -/* 801956FC 81 83 00 00 */ lwz r12, 0(r3) -/* 80195700 81 8C 00 6C */ lwz r12, 0x6c(r12) -/* 80195704 7D 89 03 A6 */ mtctr r12 -/* 80195708 4E 80 04 21 */ bctrl -lbl_8019570C: -/* 8019570C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80195710 48 1C CB 11 */ bl _restgpr_27 -/* 80195714 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80195718 7C 08 03 A6 */ mtlr r0 -/* 8019571C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80195720 4E 80 00 20 */ blr diff --git a/include/d/d_select_cursor.h b/include/d/d_select_cursor.h index 8d08fe368b..50b576f52b 100644 --- a/include/d/d_select_cursor.h +++ b/include/d/d_select_cursor.h @@ -14,8 +14,7 @@ public: /* 80195978 */ virtual ~dSelect_cursorHIO_c(); -private: - /* 0x04 */ u8 field_0x4; + /* 0x04 */ s8 field_0x4; /* 0x08 */ f32 field_0x8; /* 0x0C */ f32 mXAxisExpansion; /* 0x10 */ f32 mYAxisExpansion; @@ -58,15 +57,23 @@ public: void onPlayAnime(int i_flag) { field_0xb4 |= (1 << i_flag); } void offPlayAnime(int i_flag) { field_0xb4 &= ~(1 << i_flag); } + bool chkPlayAnime(int i_flag) { return field_0xb4 & (1 << i_flag); } private: /* 0x04 */ J2DScreen* mpScreen; /* 0x08 */ J2DPane* mpPane; /* 0x0C */ dSelect_icon_c* mpSelectIcon; /* 0x10 */ CPaneMgr* mpPaneMgr; - /* 0x14 */ u8 field_0x14[40]; + /* 0x14 */ CPaneMgr* field_0x14; + /* 0x18 */ CPaneMgr* field_0x18; + /* 0x18 */ CPaneMgr* field_0x1C[4]; + /* 0x2C */ J2DAnmTransformKey* field_0x2C; + /* 0x30 */ J2DAnmColor* field_0x30; + /* 0x34 */ J2DAnmTextureSRTKey* field_0x34[2]; /* 0x3C */ dSelect_cursorHIO_c* mpCursorHIO; - /* 0x40 */ u8 field_0x40[16]; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48[2]; /* 0x50 */ f32 field_0x50; /* 0x54 */ f32 field_0x54; /* 0x58 */ f32 mPositionX; @@ -76,11 +83,12 @@ private: /* 0x68 */ f32 mParam3; /* 0x6C */ f32 mParam4; /* 0x70 */ f32 mParam5; - /* 0x74 */ u8 field_0x74[32]; + /* 0x74 */ f32 field_0x74[4]; + /* 0x84 */ f32 field_0x84[4]; /* 0x94 */ f32 field_0x94[4]; /* 0xA4 */ f32 field_0xa4[4]; /* 0xB4 */ u8 field_0xb4; - /* 0xB5 */ s8 mNameIdx; + /* 0xB5 */ u8 mNameIdx; /* 0xB6 */ u8 field_0xb6; /* 0xB7 */ bool mUpdateFlag; }; diff --git a/include/d/d_select_icon.h b/include/d/d_select_icon.h index de1814657b..34fc301b96 100644 --- a/include/d/d_select_icon.h +++ b/include/d/d_select_icon.h @@ -17,8 +17,13 @@ public: /* 80195A3C */ void animation(); /* 80195B40 */ void setAlpha(u8); /* 80195B70 */ void setPos(J2DPane*, f32, f32); + virtual ~dSelect_icon_c() {} - /* 0x00 */ u8 field_0x0[8]; + void drawSelf() { + // Not sure what field_0x4 is + } + + /* 0x04 */ u8 field_0x4[4]; /* 0x08 */ J2DScreen* field_0x8; /* 0x0C */ CPaneMgrAlpha* field_0xc; /* 0x10 */ CPaneMgr* field_0x10; diff --git a/src/d/d_select_cursor.cpp b/src/d/d_select_cursor.cpp index 603748c8f6..090817e4cc 100644 --- a/src/d/d_select_cursor.cpp +++ b/src/d/d_select_cursor.cpp @@ -4,19 +4,19 @@ // #include "d/d_select_cursor.h" +#include "d/com/d_com_inf_game.h" +#include "JSystem/J2DGraph/J2DAnmLoader.h" +#include "JSystem/J2DGraph/J2DAnimation.h" +#include "JSystem/J2DGraph/J2DGrafContext.h" #include "dol2asm.h" #include "dolphin/types.h" -#include "d/com/d_com_inf_game.h" +#include "dolphin/os/OS.h" #include "global.h" // // Types: // -struct J2DAnmLoaderDataBase { - /* 80308A6C */ void load(void const*); -}; - // // Forward References: // @@ -83,24 +83,7 @@ extern "C" extern void* __vt__18J2DAnmTransformKey[6]; /* ############################################################################################## */ /* 80394AA0-80394AA0 021100 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80394AA0 = "zelda_select_cursor_4parts.blo"; -SECTION_DEAD static char const* const stringBase_80394ABF = "zelda_store_select_icon.blo"; -SECTION_DEAD static char const* const stringBase_80394ADB = "zelda_map_screen_portal_icon.blo"; -SECTION_DEAD static char const* const stringBase_80394AFC = "zelda_map_screen_batsumark.blo"; -SECTION_DEAD static char const* const stringBase_80394B1B = ""; -SECTION_DEAD static char const* const stringBase_80394B1C = "zelda_store_select_icon.bck"; -SECTION_DEAD static char const* const stringBase_80394B38 = "zelda_select_cursor_4parts.bpk"; -SECTION_DEAD static char const* const stringBase_80394B57 = "zelda_store_select_icon.bpk"; -SECTION_DEAD static char const* const stringBase_80394B73 = "zelda_map_screen_portal_icon.bpk"; -SECTION_DEAD static char const* const stringBase_80394B94 = "zelda_map_screen_batsumark.bpk"; -SECTION_DEAD static char const* const stringBase_80394BB3 = "zelda_select_cursor_4parts.btk"; -SECTION_DEAD static char const* const stringBase_80394BD2 = "zelda_store_select_icon.btk"; -SECTION_DEAD static char const* const stringBase_80394BEE = "zelda_store_select_icon_02.btk"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_80394C0D = "\0\0"; -#pragma pop + /* 803BB700-803BB70C 018820 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { @@ -110,55 +93,55 @@ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { /* 803BB70C-803BB71C -00001 0010+00 0/1 0/0 0/0 .data blo_name$3684 */ #pragma push #pragma force_active on -SECTION_DATA static void* blo_name[4] = { - (void*)&d_d_select_cursor__stringBase0, - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x1F), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x3B), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x5C), +SECTION_DATA static char* blo_name[4] = { + "zelda_select_cursor_4parts.blo", + "zelda_store_select_icon.blo", + "zelda_map_screen_portal_icon.blo", + "zelda_map_screen_batsumark.blo", }; #pragma pop /* 803BB71C-803BB72C -00001 0010+00 0/1 0/0 0/0 .data bck_name$3685 */ #pragma push #pragma force_active on -SECTION_DATA static void* bck_name[4] = { - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x7B), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x7C), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x7B), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x7B), +SECTION_DATA static char* bck_name[4] = { + "", + "zelda_store_select_icon.bck", + "", + "", }; #pragma pop /* 803BB72C-803BB73C -00001 0010+00 0/1 0/0 0/0 .data bpk_name$3686 */ #pragma push #pragma force_active on -SECTION_DATA static void* bpk_name[4] = { - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x98), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0xB7), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0xD3), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0xF4), +SECTION_DATA static char* bpk_name[4] = { + "zelda_select_cursor_4parts.bpk", + "zelda_store_select_icon.bpk", + "zelda_map_screen_portal_icon.bpk", + "zelda_map_screen_batsumark.bpk", }; #pragma pop /* 803BB73C-803BB74C -00001 0010+00 0/1 0/0 0/0 .data btk_name$3687 */ #pragma push #pragma force_active on -SECTION_DATA static void* btk_name[4] = { - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x113), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x132), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x7B), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x7B), +SECTION_DATA static char* btk_name[4] = { + "zelda_select_cursor_4parts.btk", + "zelda_store_select_icon.btk", + "", + "", }; #pragma pop /* 803BB74C-803BB78C -00001 0010+30 0/1 0/0 0/0 .data btk2_name$3688 */ #pragma push #pragma force_active on -SECTION_DATA static void* btk2_name[4 + 12 /* padding */] = { - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x7B), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x14E), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x7B), - (void*)(((char*)&d_d_select_cursor__stringBase0) + 0x7B), +SECTION_DATA static char* btk2_name[4 + 12 /* padding */] = { + "", + "zelda_store_select_icon_02.btk", + "", + "", /* padding */ NULL, NULL, @@ -175,6 +158,11 @@ SECTION_DATA static void* btk2_name[4 + 12 /* padding */] = { }; #pragma pop +#pragma push +#pragma force_active on +SECTION_DEAD static char const* const pad_80394C0D = "\0\0"; +#pragma pop + /* 803BB78C-803BB7A8 0188AC 0010+0C 2/2 0/0 0/0 .data __vt__16dSelect_cursor_c */ SECTION_DATA extern void* __vt__16dSelect_cursor_c[4 + 3 /* padding */] = { (void*)NULL /* RTTI */, @@ -203,6 +191,19 @@ SECTION_SDATA2 static f32 lit_3673 = 1.0f; SECTION_SDATA2 static f32 lit_3674 = 3.0f / 10.0f; /* 801941E4-80194220 18EB24 003C+00 1/1 0/0 0/0 .text __ct__19dSelect_cursorHIO_cFv */ +// matches with literals +#ifdef NONMATCHING +dSelect_cursorHIO_c::dSelect_cursorHIO_c() { + field_0x8 = 1.0f; + mXAxisExpansion = 1.0f; + mYAxisExpansion = 1.0f; + mOscillation = 3.0f / 10.0f; + field_0x18 = 1.0f; + mRatioX = 1.0f; + mRatioY = 1.0f; + mDebugON = false; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -211,12 +212,12 @@ asm dSelect_cursorHIO_c::dSelect_cursorHIO_c() { #include "asm/d/d_select_cursor/__ct__19dSelect_cursorHIO_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80394A10-80394A30 021070 0020+00 1/1 0/0 0/0 .rodata corner_tag$3707 */ -SECTION_RODATA static u8 const corner_tag[32] = { - 0x6C, 0x5F, 0x75, 0x5F, 0x6E, 0x75, 0x6C, 0x6C, 0x6C, 0x5F, 0x64, 0x5F, 0x6E, 0x75, 0x6C, 0x6C, - 0x72, 0x5F, 0x75, 0x5F, 0x6E, 0x75, 0x6C, 0x6C, 0x72, 0x5F, 0x64, 0x5F, 0x6E, 0x75, 0x6C, 0x6C, +SECTION_RODATA static u64 const corner_tag[4] = { + 'l_u_null', 'l_d_null', 'r_u_null', 'r_d_null', }; COMPILER_STRIP_GATE(0x80394A10, &corner_tag); @@ -230,6 +231,150 @@ SECTION_SDATA2 static u8 lit_3808[4] = { /* 80194220-801949EC 18EB60 07CC+00 0/0 14/14 0/0 .text __ct__16dSelect_cursor_cFUcfP10JKRArchive */ +// Matches with literals +#ifdef NONMATCHING +dSelect_cursor_c::dSelect_cursor_c(u8 param_0, f32 param_1, JKRArchive* param_2) { + mpCursorHIO = new dSelect_cursorHIO_c(); + mpCursorHIO->field_0x4 = -1; + mNameIdx = 0; + field_0xb6 = param_0; + field_0xb4 = 0xff; + mUpdateFlag = true; + mpPane = NULL; + for (int i = 0; i < 4; i++) { + field_0x94[i] = 0.0f; + field_0xa4[i] = 0.0f; + field_0x74[i] = 0.0f; + field_0x84[i] = 0.0f; + } + mParam1 = mpCursorHIO->mXAxisExpansion; + mParam2 = mpCursorHIO->mYAxisExpansion; + mParam3 = mpCursorHIO->mOscillation; + mParam4 = mpCursorHIO->mRatioX; + mParam5 = mpCursorHIO->mRatioY; + + switch(field_0xb6) { + case 1: + case 2: + case 3: + case 4: + mNameIdx = 0; + break; + case 5: + mNameIdx = 2; + break; + case 6: + mNameIdx = 3; + break; + } + + if (param_2 == NULL) { + param_2 = dComIfGp_getMain2DArchive(); + } + + mpScreen = new J2DScreen(); + mpScreen->setPriority((char*) blo_name[mNameIdx], 0x20000, param_2); + dPaneClass_showNullPane(mpScreen); + + for (int i = 0; i < 4; i++) { + field_0x1C[i] = NULL; + } + + switch(mNameIdx) { + case 0: + mpPaneMgr = new CPaneMgr(mpScreen, 'n_all', 2, NULL); + mpPaneMgr->hide(); + mpPaneMgr->setAlpha(0); + + for (int i = 0; i< 4; i++) { + field_0x1C[i] = new CPaneMgr(mpScreen, ((u64*)corner_tag)[i], 0, NULL); + field_0x94[i] = mpScreen->search( ((u64*)corner_tag)[i])->getTranslateX(); + field_0xa4[i] = mpScreen->search( ((u64*)corner_tag)[i])->getTranslateY(); + field_0x74[i] = field_0x94[i]; + field_0x84[i] = field_0xa4[i]; + } + + mpPaneMgr->scale(param_1, param_1); + field_0x14 = NULL; + field_0x18 = NULL; + break; + case 1: + mpPaneMgr = new CPaneMgr(mpScreen, 'n_all', 2, NULL); + mpPaneMgr->hide(); + mpPaneMgr->setAlpha(0); + mpPaneMgr->scale(param_1, param_1); + field_0x14 = new CPaneMgr(mpScreen, 'sel_po00', 0, NULL); + field_0x14->hide(); + field_0x18 = new CPaneMgr(mpScreen, 'n_all2', 2, NULL); + break; + case 2: + mpPaneMgr = new CPaneMgr(mpScreen, 'Null', 2, NULL); + mpPaneMgr->hide(); + mpPaneMgr->setAlpha(0); + mpPaneMgr->scale(param_1, param_1); + field_0x14 = NULL; + field_0x18 = NULL; + break; + case 3: + mpPaneMgr = new CPaneMgr(mpScreen, 'batsu', 2, NULL); + mpPaneMgr->hide(); + mpPaneMgr->setAlpha(0); + mpPaneMgr->scale(param_1, param_1); + field_0x14 = NULL; + field_0x18 = NULL; + break; + } + + mpSelectIcon = NULL; + i_OSInitFastCast(); + if (strcmp(bpk_name[mNameIdx], "") != 0) { + field_0x30 = (J2DAnmColor*)J2DAnmLoaderDataBase::load(JKRFileLoader::getGlbResource(bpk_name[mNameIdx], param_2)); + field_0x30->searchUpdateMaterialID(mpScreen); + } else { + field_0x30 = NULL; + } + + field_0x44 = 0.0f; + if (strcmp(btk_name[mNameIdx], "") != 0) { + field_0x34[0] = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(JKRFileLoader::getGlbResource(btk_name[mNameIdx], param_2)); + field_0x34[0]->searchUpdateMaterialID(mpScreen); + } else { + field_0x34[0] = NULL; + } + + field_0x48[0] = 0.0f; + if (strcmp(btk2_name[mNameIdx], "") != 0) { + field_0x34[1] = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(JKRFileLoader::getGlbResource(btk2_name[mNameIdx], param_2)); + field_0x34[1]->searchUpdateMaterialID(mpScreen); + } else { + field_0x34[1] = NULL; + } + + field_0x48[1] = 0.0f; + if (strcmp(bck_name[mNameIdx], "") != 0) { + field_0x2C = (J2DAnmTransformKey*)J2DAnmLoaderDataBase::load(JKRFileLoader::getGlbResource(bck_name[mNameIdx], param_2)); + } else { + field_0x2C = NULL; + } + + field_0x40 = 0.0f; + switch(mNameIdx) { + case 1: + field_0x50 = mpScreen->search('ssel_ico')->getTranslateX(); + field_0x54 = mpScreen->search('ssel_ico')->getTranslateY(); + break; + case 0: + case 2: + case 3: + field_0x50 = 0.0f; + field_0x54 = 0.0f; + break; + } + + mPositionY = 0.0f; + mPositionX = 0.0f; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -238,16 +383,53 @@ asm dSelect_cursor_c::dSelect_cursor_c(u8 param_0, f32 param_1, JKRArchive* para #include "asm/d/d_select_cursor/__ct__16dSelect_cursor_cFUcfP10JKRArchive.s" } #pragma pop +#endif /* 801949EC-80194C30 18F32C 0244+00 1/0 0/0 0/0 .text __dt__16dSelect_cursor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSelect_cursor_c::~dSelect_cursor_c() { - nofralloc -#include "asm/d/d_select_cursor/__dt__16dSelect_cursor_cFv.s" +dSelect_cursor_c::~dSelect_cursor_c() { + delete mpScreen; + mpScreen = NULL; + if (mpPaneMgr) { + delete mpPaneMgr; + mpPaneMgr = NULL; + } + for (int i = 0; i < 4; i++) { + if (field_0x1C[i]) { + delete field_0x1C[i]; + field_0x1C[i] = NULL; + } + } + if (field_0x14) { + delete field_0x14; + field_0x14 = NULL; + } + if (field_0x18) { + delete field_0x18; + field_0x18 = NULL; + } + if (mpSelectIcon) { + delete mpSelectIcon; + mpSelectIcon = NULL; + } + if (field_0x30) { + delete field_0x30; + field_0x30 = NULL; + } + for (int i = 0; i < 2; i++) { + if (field_0x34[i]) { + delete field_0x34[i]; + field_0x34[i] = NULL; + } + } + if (field_0x2C) { + delete field_0x2C; + field_0x2C = NULL; + } + if (mpCursorHIO) { + delete mpCursorHIO; + mpCursorHIO = NULL; + } } -#pragma pop /* 80194C30-80194CC0 18F570 0090+00 1/0 0/0 0/0 .text draw__16dSelect_cursor_cFv */ #ifdef NONMATCHING @@ -256,9 +438,9 @@ void dSelect_cursor_c::draw() { update(); J2DGrafContext* gphCtx = dComIfGp_getCurrentGrafPort(); gphCtx->setup2D(); - mpScreen->draw(FLOAT_LABEL(lit_3808),FLOAT_LABEL(lit_3808),gphCtx); + mpScreen->draw(0.0f, 0.0f, gphCtx); if (mpSelectIcon) { - // mpSelectIcon->drawSelf(); // inline here, but not sure how to properly define it + mpSelectIcon->drawSelf(); // inline here, but not sure how to properly define it } } #else @@ -281,6 +463,100 @@ SECTION_SDATA2 static f32 lit_4062 = 0.5f; SECTION_SDATA2 static f64 lit_4064 = 4503601774854144.0 /* cast s32 to float */; /* 80194CC0-801950F4 18F600 0434+00 1/1 0/0 0/0 .text update__16dSelect_cursor_cFv */ +// matches with literals +#ifdef NONMATCHING +void dSelect_cursor_c::update() { + f32 fVar1 = 1.0f; + if (field_0xb6 == 3) { + fVar1 = 0.5f; + } + mpPaneMgr->translate(mPositionX, mPositionY); + if (mpCursorHIO->mDebugON) { + mParam1 = mpCursorHIO->mXAxisExpansion; + mParam2 = mpCursorHIO->mYAxisExpansion; + mParam3 = mpCursorHIO->mOscillation; + mParam4 = mpCursorHIO->mRatioX; + mParam5 = mpCursorHIO->mRatioY; + } + + if (mUpdateFlag) { + if (field_0x30) { + if (chkPlayAnime(0)) { + if (mNameIdx == 1) { + field_0x44 += mpCursorHIO->field_0x8 * fVar1; + } else { + field_0x44 += fVar1; + } + + if (field_0x44 >= field_0x30->getFrameMax()) { + field_0x44 -= field_0x30->getFrameMax(); + } + + field_0x30->setFrame(field_0x44); + setBpkAnimation(field_0x30); + } else { + if (field_0x44 != 1.0f) { + field_0x44 = 1.0f; + field_0x30->setFrame(field_0x44); + setBpkAnimation(field_0x30); + } + } + } + + for (int i = 0; i < 2; i++) { + if (field_0x34[i]) { + if ((i == 0 && chkPlayAnime(2)) || (i == 1 && chkPlayAnime(3))) { + if (mNameIdx == 1) { + field_0x48[i] += mpCursorHIO->field_0x8 * fVar1; + } else { + field_0x48[i] += fVar1; + } + if (field_0x48[i] >= field_0x34[i]->getFrameMax()) { + field_0x48[i] -= field_0x34[i]->getFrameMax(); + } + + field_0x34[i]->setFrame(field_0x48[i]); + } + setBtk0Animation(field_0x34[i]); + } + } + + if (field_0x2C && chkPlayAnime(1)) { + if (mNameIdx == 1) { + field_0x40 += mpCursorHIO->field_0x8 * fVar1; + } else { + field_0x40 += fVar1; + } + if (field_0x40 >= field_0x2C->getFrameMax()) { + field_0x40 -= field_0x2C->getFrameMax(); + } + + field_0x2C->setFrame(field_0x40); + setBckAnimation(field_0x2C); + + } + + if (chkPlayAnime(1) && mNameIdx == 0) { + setCursorAnimation(); + } + + mpScreen->animation(); + } + + if (mpSelectIcon && field_0x14) { + Vec res = field_0x14->getGlobalVtxCenter(field_0x14->mPane, false, 0); + mpSelectIcon->setPos(field_0x14->getPanePtr(), res.x, res.y); + mpSelectIcon->animation(); + mpSelectIcon->setAlpha(field_0x14->getPanePtr()->getAlpha()); + } + + for (int i = 0; i < 4; i++) { + if (field_0x1C[i]) { + field_0x1C[i]->scale(mParam4, mParam5); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -289,12 +565,14 @@ asm void dSelect_cursor_c::update() { #include "asm/d/d_select_cursor/update__16dSelect_cursor_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80453A60-80453A64 002060 0004+00 1/1 0/0 0/0 .sdata2 @4089 */ SECTION_SDATA2 static f32 lit_4089 = -1.0f; /* 801950F4-801951B0 18FA34 00BC+00 0/0 30/30 0/0 .text setPos__16dSelect_cursor_cFffP7J2DPaneb */ +// matches with literals #ifdef NONMATCHING void dSelect_cursor_c::setPos(f32 i_posX, f32 i_posY, J2DPane* i_pane, bool i_scaleBounds) { mpPane = i_pane; @@ -304,15 +582,16 @@ void dSelect_cursor_c::setPos(f32 i_posX, f32 i_posY, J2DPane* i_pane, bool i_sc return; } - f32 width = i_pane->getWidth() * FLOAT_LABEL(lit_3673) * FLOAT_LABEL(lit_4062); - f32 height = i_pane->getHeight() * FLOAT_LABEL(lit_4062); + f32 val1 = 1.0f; + f32 width = (i_pane->getWidth()) * val1 * 0.5f; + f32 height = i_pane->getHeight() * 0.5f; if (i_scaleBounds) { width *= i_pane->getScaleX(); height *= i_pane->getScaleY(); } - f32 tmp7 = FLOAT_LABEL(lit_4089); + f32 tmp7 = -1.0f; for (int i = 0; i < 4; i++) { @@ -323,7 +602,7 @@ void dSelect_cursor_c::setPos(f32 i_posX, f32 i_posY, J2DPane* i_pane, bool i_sc field_0x94[i] *= tmp7; } - if ((i & 1) ^ (i >> 0x1f) == i >> 0x1f) { + if (i % 2 == 0) { field_0xa4[i] *= tmp7; } } @@ -351,19 +630,23 @@ void dSelect_cursor_c::setParam(f32 i_param1, f32 i_param2, f32 i_param3, f32 i_ } /* 801951C8-801952A0 18FB08 00D8+00 0/0 14/14 0/0 .text setScale__16dSelect_cursor_cFf */ +// matches with literals #ifdef NONMATCHING -// first conditional has issues void dSelect_cursor_c::setScale(f32 i_scale) { J2DPane* pane = mpPaneMgr->getPanePtr(); pane->scale(i_scale,i_scale); - s8 name_idx = mNameIdx; - if ((name_idx == 1 || name_idx < 1) || (name_idx < 0 && name_idx < 4)) { + switch (mNameIdx) { + case 1: field_0x50 = mpScreen->search('ssel_ico')->getTranslateX(); field_0x54 = mpScreen->search('ssel_ico')->getTranslateY(); - } else { + break; + case 0: + case 2: + case 3: field_0x50 = 0.0f; field_0x54 = 0.0f; + break; } } #else @@ -398,8 +681,8 @@ void dSelect_cursor_c::setAlphaRate(f32 i_alphaRate) { SECTION_SDATA2 static f32 lit_4157 = 5.0f; /* 80195330-801953CC 18FC70 009C+00 0/0 1/1 0/0 .text addAlpha__16dSelect_cursor_cFv */ -#ifdef NONMATCHING // matches with literals +#ifdef NONMATCHING int dSelect_cursor_c::addAlpha() { s16 alpha_timer = mpPaneMgr->getAlphaTimer(); @@ -412,7 +695,7 @@ int dSelect_cursor_c::addAlpha() { } else { alpha_timer++; mpPaneMgr->alphaAnimeStart(alpha_timer); - mpPaneMgr->setAlphaRate(alpha_timer/FLOAT_LABEL(lit_4157)); + mpPaneMgr->setAlphaRate(alpha_timer/5.0f); } return 0; @@ -429,8 +712,8 @@ asm int dSelect_cursor_c::addAlpha() { #endif /* 801953CC-80195460 18FD0C 0094+00 0/0 1/1 0/0 .text decAlpha__16dSelect_cursor_cFv */ -#ifdef NONMATCHING // matches with literals +#ifdef NONMATCHING int dSelect_cursor_c::decAlpha() { s16 alpha_timer = mpPaneMgr->getAlphaTimer(); @@ -442,7 +725,7 @@ int dSelect_cursor_c::decAlpha() { } else { alpha_timer--; mpPaneMgr->alphaAnimeStart(alpha_timer); - mpPaneMgr->setAlphaRate(alpha_timer/FLOAT_LABEL(lit_4157)); + mpPaneMgr->setAlphaRate(alpha_timer/5.0f); } return 0; @@ -460,49 +743,62 @@ asm int dSelect_cursor_c::decAlpha() { /* ############################################################################################## */ /* 80394A30-80394A50 021090 0020+00 1/1 0/0 0/0 .rodata tag$4181 */ -SECTION_RODATA static u8 const tag_4181[32] = { - 0x00, 0x00, 0x00, 0x00, 0x6C, 0x5F, 0x6C, 0x64, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x5F, 0x6C, 0x75, - 0x00, 0x00, 0x00, 0x00, 0x6C, 0x5F, 0x72, 0x64, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x5F, 0x72, 0x75, +static u64 const tag_4181[4] = { + 'l_ld', 'l_lu', 'l_rd', 'l_ru', }; -COMPILER_STRIP_GATE(0x80394A30, &tag_4181); /* 80195460-801955F0 18FDA0 0190+00 1/1 0/0 0/0 .text * setBpkAnimation__16dSelect_cursor_cFP11J2DAnmColor */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSelect_cursor_c::setBpkAnimation(J2DAnmColor* param_0) { - nofralloc -#include "asm/d/d_select_cursor/setBpkAnimation__16dSelect_cursor_cFP11J2DAnmColor.s" +void dSelect_cursor_c::setBpkAnimation(J2DAnmColor* param_0) { + switch (mNameIdx) { + case 0: + for (int i = 0; i < 4; i++) { + mpScreen->search(tag_4181[i])->setAnimation(param_0); + } + break; + case 2: + mpScreen->search('light')->setAnimation(param_0); + mpScreen->search('back_l')->setAnimation(param_0); + break; + case 3: + mpScreen->search('batsu')->setAnimation(param_0); + break; + default: + mpScreen->search('light00')->setAnimation(param_0); + break; + } } -#pragma pop /* ############################################################################################## */ /* 80394A50-80394A90 0210B0 0040+00 1/1 0/0 0/0 .rodata tag$4197 */ -SECTION_RODATA static u8 const tag_4197[64] = { - 0x00, 0x69, 0x5F, 0x63, 0x5F, 0x6C, 0x64, 0x31, 0x00, 0x69, 0x5F, 0x63, 0x5F, 0x6C, 0x64, 0x32, - 0x00, 0x69, 0x5F, 0x63, 0x5F, 0x6C, 0x75, 0x31, 0x00, 0x69, 0x5F, 0x63, 0x5F, 0x6C, 0x75, 0x32, - 0x00, 0x69, 0x5F, 0x63, 0x5F, 0x72, 0x64, 0x31, 0x00, 0x69, 0x5F, 0x63, 0x5F, 0x72, 0x64, 0x32, - 0x00, 0x69, 0x5F, 0x63, 0x5F, 0x72, 0x75, 0x31, 0x00, 0x69, 0x5F, 0x63, 0x5F, 0x72, 0x75, 0x32, +static u64 const tag_4197[8] = { + 'i_c_ld1', 'i_c_ld2', 'i_c_lu1', 'i_c_lu2', 'i_c_rd1', 'i_c_rd2', 'i_c_ru1', 'i_c_ru2', }; -COMPILER_STRIP_GATE(0x80394A50, &tag_4197); /* 80394A90-80394AA0 0210F0 0010+00 1/1 0/0 0/0 .rodata tag$4204 */ -SECTION_RODATA static u8 const tag_4204[16] = { - 0x00, 0x00, 0x67, 0x6F, 0x6C, 0x64, 0x30, 0x31, 0x00, 0x00, 0x67, 0x6F, 0x6C, 0x64, 0x30, 0x32, +static u64 const tag_4204[2] = { + 'gold01', 'gold02', }; -COMPILER_STRIP_GATE(0x80394A90, &tag_4204); /* 801955F0-80195724 18FF30 0134+00 1/1 0/0 0/0 .text * setBtk0Animation__16dSelect_cursor_cFP19J2DAnmTextureSRTKey */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dSelect_cursor_c::setBtk0Animation(J2DAnmTextureSRTKey* param_0) { - nofralloc -#include "asm/d/d_select_cursor/setBtk0Animation__16dSelect_cursor_cFP19J2DAnmTextureSRTKey.s" +void dSelect_cursor_c::setBtk0Animation(J2DAnmTextureSRTKey* param_0) { + switch (mNameIdx) { + case 0: + for (int i = 0; i < 8; i++) { + mpScreen->search(tag_4197[i])->setAnimation(param_0); + } + break; + case 1: + for (int i = 0; i < 2; i++) { + mpScreen->search(tag_4204[i])->setAnimation(param_0); + } + break; + default: + mpScreen->search('gold01')->setAnimation(param_0); + break; + } } -#pragma pop /* ############################################################################################## */ /* 80453A68-80453A6C 002068 0004+00 1/1 0/0 0/0 .sdata2 @4237 */ @@ -512,6 +808,38 @@ SECTION_SDATA2 static f32 lit_4237 = 20.0f; SECTION_SDATA2 static f32 lit_4238 = 10.0f; /* 80195724-801958E0 190064 01BC+00 1/1 0/0 0/0 .text setCursorAnimation__16dSelect_cursor_cFv */ +// Matches without literals +#ifdef NONMATCHING +void dSelect_cursor_c::setCursorAnimation() { + f32 fVar1 = 1.0f; + if (field_0xb6 == 3) { + fVar1 = 0.5f; + } + + field_0x40 += fVar1; + if (field_0x40 >= 20.0f) { + field_0x40 -= 20.0f; + } + f32 fVar2; + f32 param3 = mParam3; + fVar2 = field_0x40; + if (fVar2 < 10.0f) { + fVar2 /= 10.0f; + } else { + fVar2 = (20.0f - fVar2) / 10.0f; + } + + for (int i = 0; i < 4; i++) { + field_0x74[i] = mParam1 * (field_0x94[i] * ((1.0f - param3) + fVar2 * param3)); + field_0x84[i] = mParam2 * (field_0xa4[i] * ((1.0f - param3) + fVar2 * param3)); + } + + moveCenter(mpScreen->search('l_u_null'), field_0x74[0], field_0x84[0]); + moveCenter(mpScreen->search('l_d_null'), field_0x74[1], field_0x84[1]); + moveCenter(mpScreen->search('r_u_null'), field_0x74[2], field_0x84[2]); + moveCenter(mpScreen->search('r_d_null'), field_0x74[3], field_0x84[3]); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -520,6 +848,7 @@ asm void dSelect_cursor_c::setCursorAnimation() { #include "asm/d/d_select_cursor/setCursorAnimation__16dSelect_cursor_cFv.s" } #pragma pop +#endif /* 801958E0-80195940 190220 0060+00 1/1 0/0 0/0 .text * setBckAnimation__16dSelect_cursor_cFP18J2DAnmTransformKey */ @@ -534,14 +863,8 @@ void dSelect_cursor_c::moveCenter(J2DPane* i_pane, f32 i_x, f32 i_y) { } /* 80195978-801959C0 1902B8 0048+00 1/0 0/0 0/0 .text __dt__19dSelect_cursorHIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dSelect_cursorHIO_c::~dSelect_cursorHIO_c() { - nofralloc -#include "asm/d/d_select_cursor/__dt__19dSelect_cursorHIO_cFv.s" +dSelect_cursorHIO_c::~dSelect_cursorHIO_c() { } -#pragma pop /* 801959C0-80195A2C 190300 006C+00 0/0 1/0 0/0 .text __dt__18J2DAnmTransformKeyFv */ #pragma push diff --git a/src/d/d_simple_model.cpp b/src/d/d_simple_model.cpp index 9ad7bf70ef..ae25d3e354 100644 --- a/src/d/d_simple_model.cpp +++ b/src/d/d_simple_model.cpp @@ -4,8 +4,8 @@ // #include "d/d_simple_model.h" +#include "d/kankyo/d_kankyo.h" #include "d/com/d_com_inf_game.h" -#include "dol2asm.h" #include "dolphin/types.h" #include "m_Do/m_Do_mtx.h" @@ -13,8 +13,6 @@ // External References: // -extern "C" extern dScnKy_env_light_c g_env_light; - // // Declarations: // From 344d038562f4b4dbe5e86f81687c8166e71a3390 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 26 Jun 2023 17:37:32 +0300 Subject: [PATCH 03/35] Match daSus_c::room_c::add --- Progress.md | 8 ++--- ...dd__Q27daSus_c6room_cFPQ27daSus_c6data_c.s | 33 ------------------- src/d/com/d_com_static.cpp | 15 ++------- 3 files changed, 6 insertions(+), 50 deletions(-) delete mode 100644 asm/d/com/d_com_static/add__Q27daSus_c6room_cFPQ27daSus_c6data_c.s diff --git a/Progress.md b/Progress.md index 7b89bfd9ab..0cc4d098d9 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 27.735849% | 997532 | 3596544 +.text | 27.738852% | 997640 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 35.353991% | 1421468 | 4020672 +Total | 35.356677% | 1421576 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 35.353991% | 1421468 | 4020672 +main.dol | 35.356677% | 1421576 | 4020672 RELs | 33.657973% | 3870776 | 11500324 -Total | 34.097322% | 5292244 | 15520996 +Total | 34.098018% | 5292352 | 15520996 ## RELs diff --git a/asm/d/com/d_com_static/add__Q27daSus_c6room_cFPQ27daSus_c6data_c.s b/asm/d/com/d_com_static/add__Q27daSus_c6room_cFPQ27daSus_c6data_c.s deleted file mode 100644 index 06f2b049ad..0000000000 --- a/asm/d/com/d_com_static/add__Q27daSus_c6room_cFPQ27daSus_c6data_c.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_80031190: -/* 80031190 80 A3 00 00 */ lwz r5, 0(r3) -/* 80031194 28 05 00 00 */ cmplwi r5, 0 -/* 80031198 40 82 00 14 */ bne lbl_800311AC -/* 8003119C 90 83 00 00 */ stw r4, 0(r3) -/* 800311A0 38 00 00 00 */ li r0, 0 -/* 800311A4 90 04 00 20 */ stw r0, 0x20(r4) -/* 800311A8 4E 80 00 20 */ blr -lbl_800311AC: -/* 800311AC 88 04 00 04 */ lbz r0, 4(r4) -/* 800311B0 28 00 00 00 */ cmplwi r0, 0 -/* 800311B4 40 82 00 10 */ bne lbl_800311C4 -/* 800311B8 90 A4 00 20 */ stw r5, 0x20(r4) -/* 800311BC 90 83 00 00 */ stw r4, 0(r3) -/* 800311C0 4E 80 00 20 */ blr -lbl_800311C4: -/* 800311C4 7C A3 2B 78 */ mr r3, r5 -/* 800311C8 80 A5 00 20 */ lwz r5, 0x20(r5) -/* 800311CC 48 00 00 18 */ b lbl_800311E4 -lbl_800311D0: -/* 800311D0 88 03 00 04 */ lbz r0, 4(r3) -/* 800311D4 28 00 00 00 */ cmplwi r0, 0 -/* 800311D8 40 82 00 14 */ bne lbl_800311EC -/* 800311DC 7C A3 2B 78 */ mr r3, r5 -/* 800311E0 80 A5 00 20 */ lwz r5, 0x20(r5) -lbl_800311E4: -/* 800311E4 28 05 00 00 */ cmplwi r5, 0 -/* 800311E8 40 82 FF E8 */ bne lbl_800311D0 -lbl_800311EC: -/* 800311EC 80 03 00 20 */ lwz r0, 0x20(r3) -/* 800311F0 90 04 00 20 */ stw r0, 0x20(r4) -/* 800311F4 90 83 00 20 */ stw r4, 0x20(r3) -/* 800311F8 4E 80 00 20 */ blr diff --git a/src/d/com/d_com_static.cpp b/src/d/com/d_com_static.cpp index 599b7cfdb2..f26a49b175 100644 --- a/src/d/com/d_com_static.cpp +++ b/src/d/com/d_com_static.cpp @@ -276,8 +276,6 @@ void daSus_c::data_c::execute() { } /* 80031190-800311FC 02BAD0 006C+00 1/1 0/0 0/0 .text add__Q27daSus_c6room_cFPQ27daSus_c6data_c */ -// instruction reorder -#ifdef NONMATCHING void daSus_c::room_c::add(daSus_c::data_c* i_data) { if (mpData == NULL) { mpData = i_data; @@ -293,7 +291,8 @@ void daSus_c::room_c::add(daSus_c::data_c* i_data) { daSus_c::data_c* data1 = mpData; daSus_c::data_c* data2 = data1->getNext(); - while (data1->getType() == 0 && data2 != NULL) { + while (data2 != NULL) { + if (data1->getType() != 0) break; data1 = data2; data2 = data2->getNext(); } @@ -301,16 +300,6 @@ void daSus_c::room_c::add(daSus_c::data_c* i_data) { i_data->setNext(data1->getNext()); data1->setNext(i_data); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daSus_c::room_c::add(daSus_c::data_c* param_0) { - nofralloc -#include "asm/d/com/d_com_static/add__Q27daSus_c6room_cFPQ27daSus_c6data_c.s" -} -#pragma pop -#endif /* 800311FC-80031248 02BB3C 004C+00 0/0 0/0 1/1 .text reset__Q27daSus_c6room_cFv */ void daSus_c::room_c::reset() { From 337085a0fa6e3ebe237e538864c1acd1b8470d39 Mon Sep 17 00:00:00 2001 From: Jcw87 Date: Mon, 26 Jun 2023 03:12:47 -0700 Subject: [PATCH 04/35] d_menu_collect --- Progress.md | 8 +- ..._cFP10JKRExpHeapP9STControlP10CSTControl.s | 42 - .../__dt__17dMenu_Collect2D_cFv.s | 31 - .../_create__15dMenu_Collect_cFv.s | 15 - .../_create__17dMenu_Collect2D_cFv.s | 159 --- .../_delete__15dMenu_Collect_cFv.s | 15 - .../_delete__17dMenu_Collect2D_cFv.s | 317 ----- .../_delete__17dMenu_Collect3D_cFv.s | 15 - .../_move__15dMenu_Collect_cFv.s | 18 - .../drawTop__17dMenu_Collect2D_cFv.s | 16 - .../draw__15dMenu_Collect_cFv.s | 22 - .../draw__17dMenu_Collect3D_cFv.s | 52 - ...ishing_close_init__17dMenu_Collect2D_cFv.s | 16 - ...ishing_close_proc__17dMenu_Collect2D_cFv.s | 34 - ...fishing_move_init__17dMenu_Collect2D_cFv.s | 16 - ...fishing_move_proc__17dMenu_Collect2D_cFv.s | 31 - ...fishing_open_init__17dMenu_Collect2D_cFv.s | 42 - ...fishing_open_proc__17dMenu_Collect2D_cFv.s | 31 - .../getCrystalNum__17dMenu_Collect3D_cFv.s | 29 - .../getMirrorNum__17dMenu_Collect3D_cFv.s | 29 - ...insect_close_init__17dMenu_Collect2D_cFv.s | 16 - ...insect_close_proc__17dMenu_Collect2D_cFv.s | 34 - .../insect_move_init__17dMenu_Collect2D_cFv.s | 16 - .../insect_move_proc__17dMenu_Collect2D_cFv.s | 31 - .../insect_open_init__17dMenu_Collect2D_cFv.s | 43 - .../insect_open_proc__17dMenu_Collect2D_cFv.s | 31 - ...isFishIconVisible__17dMenu_Collect2D_cFv.s | 32 - ...InsectIconVisible__17dMenu_Collect2D_cFv.s | 13 - .../isKeyCheck__17dMenu_Collect2D_cFv.s | 13 - ...sSkillIconVisible__17dMenu_Collect2D_cFv.s | 68 - ...letter_close_init__17dMenu_Collect2D_cFv.s | 16 - ...letter_close_proc__17dMenu_Collect2D_cFv.s | 34 - .../letter_move_init__17dMenu_Collect2D_cFv.s | 16 - .../letter_move_proc__17dMenu_Collect2D_cFv.s | 31 - .../letter_open_init__17dMenu_Collect2D_cFv.s | 42 - .../letter_open_proc__17dMenu_Collect2D_cFv.s | 31 - ...option_close_init__17dMenu_Collect2D_cFv.s | 16 - ...option_close_proc__17dMenu_Collect2D_cFv.s | 34 - .../option_move_init__17dMenu_Collect2D_cFv.s | 16 - .../option_move_proc__17dMenu_Collect2D_cFv.s | 31 - .../option_open_init__17dMenu_Collect2D_cFv.s | 45 - .../option_open_proc__17dMenu_Collect2D_cFv.s | 31 - .../save_close_init__17dMenu_Collect2D_cFv.s | 16 - .../save_close_proc__17dMenu_Collect2D_cFv.s | 34 - .../save_move_init__17dMenu_Collect2D_cFv.s | 16 - .../save_move_proc__17dMenu_Collect2D_cFv.s | 31 - .../save_open_init__17dMenu_Collect2D_cFv.s | 46 - .../save_open_proc__17dMenu_Collect2D_cFv.s | 31 - .../setArrowMaxNum__17dMenu_Collect2D_cFUc.s | 165 --- ...temNameStringNull__17dMenu_Collect2D_cFv.s | 69 - .../setWalletMaxNum__17dMenu_Collect2D_cFUs.s | 127 -- .../skill_close_init__17dMenu_Collect2D_cFv.s | 16 - .../skill_close_proc__17dMenu_Collect2D_cFv.s | 34 - .../skill_move_init__17dMenu_Collect2D_cFv.s | 16 - .../skill_move_proc__17dMenu_Collect2D_cFv.s | 31 - .../skill_open_init__17dMenu_Collect2D_cFv.s | 42 - .../skill_open_proc__17dMenu_Collect2D_cFv.s | 31 - include/JSystem/J2DGraph/J2DAnmLoader.h | 2 +- include/d/com/d_com_inf_game.h | 4 + include/d/d_select_cursor.h | 2 + include/d/menu/d_menu_collect.h | 19 +- include/d/menu/d_menu_insect.h | 2 +- include/d/meter/d_meter2_info.h | 8 + include/d/save/d_save.h | 2 + include/m_Do/m_Do_graphic.h | 1 + include/m_Do/m_Do_mtx.h | 4 +- src/d/menu/d_menu_collect.cpp | 1131 ++++++++++------- src/d/menu/d_menu_insect.cpp | 2 +- 68 files changed, 678 insertions(+), 2782 deletions(-) delete mode 100644 asm/d/menu/d_menu_collect/__ct__15dMenu_Collect_cFP10JKRExpHeapP9STControlP10CSTControl.s delete mode 100644 asm/d/menu/d_menu_collect/__dt__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/_create__15dMenu_Collect_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/_create__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/_delete__15dMenu_Collect_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/_delete__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/_delete__17dMenu_Collect3D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/_move__15dMenu_Collect_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/drawTop__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/draw__15dMenu_Collect_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/draw__17dMenu_Collect3D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/fishing_close_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/fishing_close_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/fishing_move_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/fishing_move_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/fishing_open_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/fishing_open_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/getCrystalNum__17dMenu_Collect3D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/getMirrorNum__17dMenu_Collect3D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/insect_close_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/insect_close_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/insect_move_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/insect_move_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/insect_open_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/insect_open_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/isFishIconVisible__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/isInsectIconVisible__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/isKeyCheck__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/isSkillIconVisible__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/letter_close_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/letter_close_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/letter_move_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/letter_move_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/letter_open_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/letter_open_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/option_close_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/option_close_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/option_move_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/option_move_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/option_open_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/option_open_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/save_close_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/save_close_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/save_move_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/save_move_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/save_open_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/save_open_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/setArrowMaxNum__17dMenu_Collect2D_cFUc.s delete mode 100644 asm/d/menu/d_menu_collect/setItemNameStringNull__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/setWalletMaxNum__17dMenu_Collect2D_cFUs.s delete mode 100644 asm/d/menu/d_menu_collect/skill_close_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/skill_close_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/skill_move_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/skill_move_proc__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/skill_open_init__17dMenu_Collect2D_cFv.s delete mode 100644 asm/d/menu/d_menu_collect/skill_open_proc__17dMenu_Collect2D_cFv.s diff --git a/Progress.md b/Progress.md index 1b64fa58c7..0d034c1426 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 27.698035% | 996172 | 3596544 +.text | 27.931926% | 1004584 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 35.320165% | 1420108 | 4020672 +Total | 35.529384% | 1428520 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 35.320165% | 1420108 | 4020672 +main.dol | 35.529384% | 1428520 | 4020672 RELs | 33.657973% | 3870776 | 11500324 -Total | 34.088560% | 5290884 | 15520996 +Total | 34.142757% | 5299296 | 15520996 ## RELs diff --git a/asm/d/menu/d_menu_collect/__ct__15dMenu_Collect_cFP10JKRExpHeapP9STControlP10CSTControl.s b/asm/d/menu/d_menu_collect/__ct__15dMenu_Collect_cFP10JKRExpHeapP9STControlP10CSTControl.s deleted file mode 100644 index 32b8b38dfe..0000000000 --- a/asm/d/menu/d_menu_collect/__ct__15dMenu_Collect_cFP10JKRExpHeapP9STControlP10CSTControl.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_801B78C0: -/* 801B78C0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801B78C4 7C 08 02 A6 */ mflr r0 -/* 801B78C8 90 01 00 24 */ stw r0, 0x24(r1) -/* 801B78CC 39 61 00 20 */ addi r11, r1, 0x20 -/* 801B78D0 48 1A A9 09 */ bl _savegpr_28 -/* 801B78D4 7C 7C 1B 78 */ mr r28, r3 -/* 801B78D8 7C 9D 23 78 */ mr r29, r4 -/* 801B78DC 7C BE 2B 78 */ mr r30, r5 -/* 801B78E0 7C DF 33 78 */ mr r31, r6 -/* 801B78E4 3C 60 80 3C */ lis r3, __vt__15dMenu_Collect_c@ha /* 0x803BC75C@ha */ -/* 801B78E8 38 03 C7 5C */ addi r0, r3, __vt__15dMenu_Collect_c@l /* 0x803BC75C@l */ -/* 801B78EC 90 1C 00 00 */ stw r0, 0(r28) -/* 801B78F0 38 60 02 64 */ li r3, 0x264 -/* 801B78F4 48 11 73 59 */ bl __nw__FUl -/* 801B78F8 7C 60 1B 79 */ or. r0, r3, r3 -/* 801B78FC 41 82 00 18 */ beq lbl_801B7914 -/* 801B7900 7F A4 EB 78 */ mr r4, r29 -/* 801B7904 7F C5 F3 78 */ mr r5, r30 -/* 801B7908 7F E6 FB 78 */ mr r6, r31 -/* 801B790C 4B FF 84 3D */ bl __ct__17dMenu_Collect2D_cFP10JKRExpHeapP9STControlP10CSTControl -/* 801B7910 7C 60 1B 78 */ mr r0, r3 -lbl_801B7914: -/* 801B7914 90 1C 00 04 */ stw r0, 4(r28) -/* 801B7918 38 60 03 DC */ li r3, 0x3dc -/* 801B791C 48 11 73 31 */ bl __nw__FUl -/* 801B7920 7C 60 1B 79 */ or. r0, r3, r3 -/* 801B7924 41 82 00 18 */ beq lbl_801B793C -/* 801B7928 7F A4 EB 78 */ mr r4, r29 -/* 801B792C 80 BC 00 04 */ lwz r5, 4(r28) -/* 801B7930 7F E6 FB 78 */ mr r6, r31 -/* 801B7934 4B FF EB 21 */ bl __ct__17dMenu_Collect3D_cFP10JKRExpHeapP17dMenu_Collect2D_cP10CSTControl -/* 801B7938 7C 60 1B 78 */ mr r0, r3 -lbl_801B793C: -/* 801B793C 90 1C 00 08 */ stw r0, 8(r28) -/* 801B7940 7F 83 E3 78 */ mr r3, r28 -/* 801B7944 39 61 00 20 */ addi r11, r1, 0x20 -/* 801B7948 48 1A A8 DD */ bl _restgpr_28 -/* 801B794C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801B7950 7C 08 03 A6 */ mtlr r0 -/* 801B7954 38 21 00 20 */ addi r1, r1, 0x20 -/* 801B7958 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/__dt__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/__dt__17dMenu_Collect2D_cFv.s deleted file mode 100644 index c78dfa63b2..0000000000 --- a/asm/d/menu/d_menu_collect/__dt__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801AFE34: -/* 801AFE34 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801AFE38 7C 08 02 A6 */ mflr r0 -/* 801AFE3C 90 01 00 14 */ stw r0, 0x14(r1) -/* 801AFE40 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801AFE44 93 C1 00 08 */ stw r30, 8(r1) -/* 801AFE48 7C 7E 1B 79 */ or. r30, r3, r3 -/* 801AFE4C 7C 9F 23 78 */ mr r31, r4 -/* 801AFE50 41 82 00 38 */ beq lbl_801AFE88 -/* 801AFE54 3C 60 80 3C */ lis r3, __vt__17dMenu_Collect2D_c@ha /* 0x803BC7C4@ha */ -/* 801AFE58 38 03 C7 C4 */ addi r0, r3, __vt__17dMenu_Collect2D_c@l /* 0x803BC7C4@l */ -/* 801AFE5C 90 1E 00 00 */ stw r0, 0(r30) -/* 801AFE60 80 7E 00 08 */ lwz r3, 8(r30) -/* 801AFE64 28 03 00 00 */ cmplwi r3, 0 -/* 801AFE68 41 82 00 10 */ beq lbl_801AFE78 -/* 801AFE6C 4B E5 F3 41 */ bl mDoExt_destroyExpHeap__FP10JKRExpHeap -/* 801AFE70 38 00 00 00 */ li r0, 0 -/* 801AFE74 90 1E 00 08 */ stw r0, 8(r30) -lbl_801AFE78: -/* 801AFE78 7F E0 07 35 */ extsh. r0, r31 -/* 801AFE7C 40 81 00 0C */ ble lbl_801AFE88 -/* 801AFE80 7F C3 F3 78 */ mr r3, r30 -/* 801AFE84 48 11 EE B9 */ bl __dl__FPv -lbl_801AFE88: -/* 801AFE88 7F C3 F3 78 */ mr r3, r30 -/* 801AFE8C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801AFE90 83 C1 00 08 */ lwz r30, 8(r1) -/* 801AFE94 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801AFE98 7C 08 03 A6 */ mtlr r0 -/* 801AFE9C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801AFEA0 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/_create__15dMenu_Collect_cFv.s b/asm/d/menu/d_menu_collect/_create__15dMenu_Collect_cFv.s deleted file mode 100644 index e4b735eb46..0000000000 --- a/asm/d/menu/d_menu_collect/_create__15dMenu_Collect_cFv.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_801B7A0C: -/* 801B7A0C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B7A10 7C 08 02 A6 */ mflr r0 -/* 801B7A14 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B7A18 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B7A1C 7C 7F 1B 78 */ mr r31, r3 -/* 801B7A20 80 63 00 04 */ lwz r3, 4(r3) -/* 801B7A24 4B FF 84 81 */ bl _create__17dMenu_Collect2D_cFv -/* 801B7A28 80 7F 00 08 */ lwz r3, 8(r31) -/* 801B7A2C 4B FF EB 7D */ bl _create__17dMenu_Collect3D_cFv -/* 801B7A30 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B7A34 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B7A38 7C 08 03 A6 */ mtlr r0 -/* 801B7A3C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B7A40 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/_create__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/_create__17dMenu_Collect2D_cFv.s deleted file mode 100644 index cfee93d47e..0000000000 --- a/asm/d/menu/d_menu_collect/_create__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,159 +0,0 @@ -lbl_801AFEA4: -/* 801AFEA4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801AFEA8 7C 08 02 A6 */ mflr r0 -/* 801AFEAC 90 01 00 24 */ stw r0, 0x24(r1) -/* 801AFEB0 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 801AFEB4 93 C1 00 18 */ stw r30, 0x18(r1) -/* 801AFEB8 7C 7F 1B 78 */ mr r31, r3 -/* 801AFEBC 80 63 00 04 */ lwz r3, 4(r3) -/* 801AFEC0 48 11 E8 C5 */ bl getTotalFreeSize__7JKRHeapFv -/* 801AFEC4 38 60 01 18 */ li r3, 0x118 -/* 801AFEC8 48 11 ED 85 */ bl __nw__FUl -/* 801AFECC 7C 60 1B 79 */ or. r0, r3, r3 -/* 801AFED0 41 82 00 0C */ beq lbl_801AFEDC -/* 801AFED4 48 14 85 C5 */ bl __ct__9J2DScreenFv -/* 801AFED8 7C 60 1B 78 */ mr r0, r3 -lbl_801AFEDC: -/* 801AFEDC 90 1F 00 18 */ stw r0, 0x18(r31) -/* 801AFEE0 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801AFEE4 3C 80 80 39 */ lis r4, d_menu_d_menu_collect__stringBase0@ha /* 0x80395330@ha */ -/* 801AFEE8 38 84 53 30 */ addi r4, r4, d_menu_d_menu_collect__stringBase0@l /* 0x80395330@l */ -/* 801AFEEC 3C A0 01 02 */ lis r5, 0x102 -/* 801AFEF0 3C C0 80 40 */ lis r6, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801AFEF4 3B C6 61 C0 */ addi r30, r6, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801AFEF8 80 DE 5C B8 */ lwz r6, 0x5cb8(r30) -/* 801AFEFC 48 14 87 4D */ bl setPriority__9J2DScreenFPCcUlP10JKRArchive -/* 801AFF00 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801AFF04 48 0A 51 E5 */ bl dPaneClass_showNullPane__FP9J2DScreen -/* 801AFF08 38 60 01 18 */ li r3, 0x118 -/* 801AFF0C 48 11 ED 41 */ bl __nw__FUl -/* 801AFF10 7C 60 1B 79 */ or. r0, r3, r3 -/* 801AFF14 41 82 00 0C */ beq lbl_801AFF20 -/* 801AFF18 48 14 85 81 */ bl __ct__9J2DScreenFv -/* 801AFF1C 7C 60 1B 78 */ mr r0, r3 -lbl_801AFF20: -/* 801AFF20 90 1F 00 1C */ stw r0, 0x1c(r31) -/* 801AFF24 80 7F 00 1C */ lwz r3, 0x1c(r31) -/* 801AFF28 3C 80 80 39 */ lis r4, d_menu_d_menu_collect__stringBase0@ha /* 0x80395330@ha */ -/* 801AFF2C 38 84 53 30 */ addi r4, r4, d_menu_d_menu_collect__stringBase0@l /* 0x80395330@l */ -/* 801AFF30 38 84 00 1F */ addi r4, r4, 0x1f -/* 801AFF34 3C A0 00 02 */ lis r5, 2 -/* 801AFF38 80 DE 5C B8 */ lwz r6, 0x5cb8(r30) -/* 801AFF3C 48 14 87 0D */ bl setPriority__9J2DScreenFPCcUlP10JKRArchive -/* 801AFF40 38 60 00 00 */ li r3, 0 -/* 801AFF44 7C 65 1B 78 */ mr r5, r3 -/* 801AFF48 7C 64 1B 78 */ mr r4, r3 -/* 801AFF4C 38 00 00 02 */ li r0, 2 -/* 801AFF50 7C 09 03 A6 */ mtctr r0 -lbl_801AFF54: -/* 801AFF54 7C DF 1A 14 */ add r6, r31, r3 -/* 801AFF58 90 A6 01 6C */ stw r5, 0x16c(r6) -/* 801AFF5C 90 86 01 74 */ stw r4, 0x174(r6) -/* 801AFF60 38 63 00 04 */ addi r3, r3, 4 -/* 801AFF64 42 00 FF F0 */ bdnz lbl_801AFF54 -/* 801AFF68 80 7F 00 1C */ lwz r3, 0x1c(r31) -/* 801AFF6C 48 0A 51 7D */ bl dPaneClass_showNullPane__FP9J2DScreen -/* 801AFF70 38 60 00 08 */ li r3, 8 -/* 801AFF74 48 11 EC D9 */ bl __nw__FUl -/* 801AFF78 28 03 00 00 */ cmplwi r3, 0 -/* 801AFF7C 41 82 00 20 */ beq lbl_801AFF9C -/* 801AFF80 3C 80 80 3A */ lis r4, __vt__12dDlst_base_c@ha /* 0x803A6F88@ha */ -/* 801AFF84 38 04 6F 88 */ addi r0, r4, __vt__12dDlst_base_c@l /* 0x803A6F88@l */ -/* 801AFF88 90 03 00 00 */ stw r0, 0(r3) -/* 801AFF8C 3C 80 80 3C */ lis r4, __vt__20dMenu_Collect2DTop_c@ha /* 0x803BC768@ha */ -/* 801AFF90 38 04 C7 68 */ addi r0, r4, __vt__20dMenu_Collect2DTop_c@l /* 0x803BC768@l */ -/* 801AFF94 90 03 00 00 */ stw r0, 0(r3) -/* 801AFF98 93 E3 00 04 */ stw r31, 4(r3) -lbl_801AFF9C: -/* 801AFF9C 90 7F 00 88 */ stw r3, 0x88(r31) -/* 801AFFA0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801AFFA4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801AFFA8 80 63 5D 30 */ lwz r3, 0x5d30(r3) -/* 801AFFAC 3C 80 54 49 */ lis r4, 0x5449 /* 0x54494D47@ha */ -/* 801AFFB0 38 84 4D 47 */ addi r4, r4, 0x4D47 /* 0x54494D47@l */ -/* 801AFFB4 3C A0 80 39 */ lis r5, d_menu_d_menu_collect__stringBase0@ha /* 0x80395330@ha */ -/* 801AFFB8 38 A5 53 30 */ addi r5, r5, d_menu_d_menu_collect__stringBase0@l /* 0x80395330@l */ -/* 801AFFBC 38 A5 00 45 */ addi r5, r5, 0x45 -/* 801AFFC0 81 83 00 00 */ lwz r12, 0(r3) -/* 801AFFC4 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 801AFFC8 7D 89 03 A6 */ mtctr r12 -/* 801AFFCC 4E 80 04 21 */ bctrl -/* 801AFFD0 7C 7E 1B 78 */ mr r30, r3 -/* 801AFFD4 38 60 01 50 */ li r3, 0x150 -/* 801AFFD8 48 11 EC 75 */ bl __nw__FUl -/* 801AFFDC 7C 60 1B 79 */ or. r0, r3, r3 -/* 801AFFE0 41 82 00 10 */ beq lbl_801AFFF0 -/* 801AFFE4 7F C4 F3 78 */ mr r4, r30 -/* 801AFFE8 48 14 C7 21 */ bl __ct__10J2DPictureFPC7ResTIMG -/* 801AFFEC 7C 60 1B 78 */ mr r0, r3 -lbl_801AFFF0: -/* 801AFFF0 90 1F 00 8C */ stw r0, 0x8c(r31) -/* 801AFFF4 38 60 00 00 */ li r3, 0 -/* 801AFFF8 98 61 00 08 */ stb r3, 8(r1) -/* 801AFFFC 98 61 00 09 */ stb r3, 9(r1) -/* 801B0000 98 61 00 0A */ stb r3, 0xa(r1) -/* 801B0004 38 00 00 FF */ li r0, 0xff -/* 801B0008 98 01 00 0B */ stb r0, 0xb(r1) -/* 801B000C 80 01 00 08 */ lwz r0, 8(r1) -/* 801B0010 90 01 00 0C */ stw r0, 0xc(r1) -/* 801B0014 98 61 00 10 */ stb r3, 0x10(r1) -/* 801B0018 98 61 00 11 */ stb r3, 0x11(r1) -/* 801B001C 98 61 00 12 */ stb r3, 0x12(r1) -/* 801B0020 98 61 00 13 */ stb r3, 0x13(r1) -/* 801B0024 80 01 00 10 */ lwz r0, 0x10(r1) -/* 801B0028 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B002C 80 7F 00 8C */ lwz r3, 0x8c(r31) -/* 801B0030 38 81 00 14 */ addi r4, r1, 0x14 -/* 801B0034 38 A1 00 0C */ addi r5, r1, 0xc -/* 801B0038 81 83 00 00 */ lwz r12, 0(r3) -/* 801B003C 81 8C 01 30 */ lwz r12, 0x130(r12) -/* 801B0040 7D 89 03 A6 */ mtctr r12 -/* 801B0044 4E 80 04 21 */ bctrl -/* 801B0048 80 7F 00 8C */ lwz r3, 0x8c(r31) -/* 801B004C 38 80 00 00 */ li r4, 0 -/* 801B0050 81 83 00 00 */ lwz r12, 0(r3) -/* 801B0054 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 801B0058 7D 89 03 A6 */ mtctr r12 -/* 801B005C 4E 80 04 21 */ bctrl -/* 801B0060 38 60 00 B8 */ li r3, 0xb8 -/* 801B0064 48 11 EB E9 */ bl __nw__FUl -/* 801B0068 7C 60 1B 79 */ or. r0, r3, r3 -/* 801B006C 41 82 00 18 */ beq lbl_801B0084 -/* 801B0070 38 80 00 02 */ li r4, 2 -/* 801B0074 C0 22 A5 2C */ lfs f1, lit_4482(r2) -/* 801B0078 38 A0 00 00 */ li r5, 0 -/* 801B007C 4B FE 41 A5 */ bl __ct__16dSelect_cursor_cFUcfP10JKRArchive -/* 801B0080 7C 60 1B 78 */ mr r0, r3 -lbl_801B0084: -/* 801B0084 90 1F 00 20 */ stw r0, 0x20(r31) -/* 801B0088 38 60 00 2C */ li r3, 0x2c -/* 801B008C 48 11 EB C1 */ bl __nw__FUl -/* 801B0090 7C 60 1B 79 */ or. r0, r3, r3 -/* 801B0094 41 82 00 0C */ beq lbl_801B00A0 -/* 801B0098 48 09 9B 89 */ bl __ct__12dMsgString_cFv -/* 801B009C 7C 60 1B 78 */ mr r0, r3 -lbl_801B00A0: -/* 801B00A0 90 1F 00 24 */ stw r0, 0x24(r31) -/* 801B00A4 38 00 00 00 */ li r0, 0 -/* 801B00A8 90 1F 00 90 */ stw r0, 0x90(r31) -/* 801B00AC 90 1F 00 94 */ stw r0, 0x94(r31) -/* 801B00B0 90 1F 00 98 */ stw r0, 0x98(r31) -/* 801B00B4 90 1F 00 9C */ stw r0, 0x9c(r31) -/* 801B00B8 90 1F 00 A0 */ stw r0, 0xa0(r31) -/* 801B00BC 90 1F 00 A4 */ stw r0, 0xa4(r31) -/* 801B00C0 98 1F 02 2C */ stb r0, 0x22c(r31) -/* 801B00C4 7F E3 FB 78 */ mr r3, r31 -/* 801B00C8 48 00 1B 75 */ bl animationSet__17dMenu_Collect2D_cFv -/* 801B00CC 7F E3 FB 78 */ mr r3, r31 -/* 801B00D0 48 00 06 7D */ bl screenSet__17dMenu_Collect2D_cFv -/* 801B00D4 7F E3 FB 78 */ mr r3, r31 -/* 801B00D8 48 00 04 99 */ bl initialize__17dMenu_Collect2D_cFv -/* 801B00DC 7F E3 FB 78 */ mr r3, r31 -/* 801B00E0 38 80 00 01 */ li r4, 1 -/* 801B00E4 48 00 41 F5 */ bl setHIO__17dMenu_Collect2D_cFb -/* 801B00E8 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 801B00EC 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 801B00F0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801B00F4 7C 08 03 A6 */ mtlr r0 -/* 801B00F8 38 21 00 20 */ addi r1, r1, 0x20 -/* 801B00FC 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/_delete__15dMenu_Collect_cFv.s b/asm/d/menu/d_menu_collect/_delete__15dMenu_Collect_cFv.s deleted file mode 100644 index b3ab062574..0000000000 --- a/asm/d/menu/d_menu_collect/_delete__15dMenu_Collect_cFv.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_801B7A44: -/* 801B7A44 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B7A48 7C 08 02 A6 */ mflr r0 -/* 801B7A4C 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B7A50 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B7A54 7C 7F 1B 78 */ mr r31, r3 -/* 801B7A58 80 63 00 04 */ lwz r3, 4(r3) -/* 801B7A5C 4B FF 86 A5 */ bl _delete__17dMenu_Collect2D_cFv -/* 801B7A60 80 7F 00 08 */ lwz r3, 8(r31) -/* 801B7A64 4B FF EC 31 */ bl _delete__17dMenu_Collect3D_cFv -/* 801B7A68 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B7A6C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B7A70 7C 08 03 A6 */ mtlr r0 -/* 801B7A74 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B7A78 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/_delete__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/_delete__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 8f456315a9..0000000000 --- a/asm/d/menu/d_menu_collect/_delete__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,317 +0,0 @@ -lbl_801B0100: -/* 801B0100 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 801B0104 7C 08 02 A6 */ mflr r0 -/* 801B0108 90 01 00 34 */ stw r0, 0x34(r1) -/* 801B010C 39 61 00 30 */ addi r11, r1, 0x30 -/* 801B0110 48 1B 20 B9 */ bl _savegpr_24 -/* 801B0114 7C 7F 1B 78 */ mr r31, r3 -/* 801B0118 80 63 00 04 */ lwz r3, 4(r3) -/* 801B011C 48 11 E6 69 */ bl getTotalFreeSize__7JKRHeapFv -/* 801B0120 88 9F 02 58 */ lbz r4, 0x258(r31) -/* 801B0124 88 1F 02 57 */ lbz r0, 0x257(r31) -/* 801B0128 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 801B012C 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */ -/* 801B0130 98 03 00 DF */ stb r0, 0xdf(r3) -/* 801B0134 98 83 00 E0 */ stb r4, 0xe0(r3) -/* 801B0138 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B013C 28 03 00 00 */ cmplwi r3, 0 -/* 801B0140 41 82 00 18 */ beq lbl_801B0158 -/* 801B0144 38 80 00 01 */ li r4, 1 -/* 801B0148 81 83 00 00 */ lwz r12, 0(r3) -/* 801B014C 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B0150 7D 89 03 A6 */ mtctr r12 -/* 801B0154 4E 80 04 21 */ bctrl -lbl_801B0158: -/* 801B0158 38 00 00 00 */ li r0, 0 -/* 801B015C 90 1F 00 18 */ stw r0, 0x18(r31) -/* 801B0160 80 7F 00 1C */ lwz r3, 0x1c(r31) -/* 801B0164 28 03 00 00 */ cmplwi r3, 0 -/* 801B0168 41 82 00 18 */ beq lbl_801B0180 -/* 801B016C 38 80 00 01 */ li r4, 1 -/* 801B0170 81 83 00 00 */ lwz r12, 0(r3) -/* 801B0174 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B0178 7D 89 03 A6 */ mtctr r12 -/* 801B017C 4E 80 04 21 */ bctrl -lbl_801B0180: -/* 801B0180 3B 80 00 00 */ li r28, 0 -/* 801B0184 93 9F 00 1C */ stw r28, 0x1c(r31) -/* 801B0188 3B 40 00 00 */ li r26, 0 -lbl_801B018C: -/* 801B018C 7F 7F E2 14 */ add r27, r31, r28 -/* 801B0190 80 7B 01 6C */ lwz r3, 0x16c(r27) -/* 801B0194 28 03 00 00 */ cmplwi r3, 0 -/* 801B0198 41 82 00 24 */ beq lbl_801B01BC -/* 801B019C 41 82 00 18 */ beq lbl_801B01B4 -/* 801B01A0 38 80 00 01 */ li r4, 1 -/* 801B01A4 81 83 00 00 */ lwz r12, 0(r3) -/* 801B01A8 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B01AC 7D 89 03 A6 */ mtctr r12 -/* 801B01B0 4E 80 04 21 */ bctrl -lbl_801B01B4: -/* 801B01B4 38 00 00 00 */ li r0, 0 -/* 801B01B8 90 1B 01 6C */ stw r0, 0x16c(r27) -lbl_801B01BC: -/* 801B01BC 80 7B 01 74 */ lwz r3, 0x174(r27) -/* 801B01C0 28 03 00 00 */ cmplwi r3, 0 -/* 801B01C4 41 82 00 24 */ beq lbl_801B01E8 -/* 801B01C8 41 82 00 18 */ beq lbl_801B01E0 -/* 801B01CC 38 80 00 01 */ li r4, 1 -/* 801B01D0 81 83 00 00 */ lwz r12, 0(r3) -/* 801B01D4 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B01D8 7D 89 03 A6 */ mtctr r12 -/* 801B01DC 4E 80 04 21 */ bctrl -lbl_801B01E0: -/* 801B01E0 38 00 00 00 */ li r0, 0 -/* 801B01E4 90 1B 01 74 */ stw r0, 0x174(r27) -lbl_801B01E8: -/* 801B01E8 3B 5A 00 01 */ addi r26, r26, 1 -/* 801B01EC 2C 1A 00 02 */ cmpwi r26, 2 -/* 801B01F0 3B 9C 00 04 */ addi r28, r28, 4 -/* 801B01F4 41 80 FF 98 */ blt lbl_801B018C -/* 801B01F8 80 7F 00 88 */ lwz r3, 0x88(r31) -/* 801B01FC 28 03 00 00 */ cmplwi r3, 0 -/* 801B0200 41 82 00 18 */ beq lbl_801B0218 -/* 801B0204 38 80 00 01 */ li r4, 1 -/* 801B0208 81 83 00 00 */ lwz r12, 0(r3) -/* 801B020C 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 801B0210 7D 89 03 A6 */ mtctr r12 -/* 801B0214 4E 80 04 21 */ bctrl -lbl_801B0218: -/* 801B0218 38 00 00 00 */ li r0, 0 -/* 801B021C 90 1F 00 88 */ stw r0, 0x88(r31) -/* 801B0220 80 7F 00 8C */ lwz r3, 0x8c(r31) -/* 801B0224 28 03 00 00 */ cmplwi r3, 0 -/* 801B0228 41 82 00 18 */ beq lbl_801B0240 -/* 801B022C 38 80 00 01 */ li r4, 1 -/* 801B0230 81 83 00 00 */ lwz r12, 0(r3) -/* 801B0234 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B0238 7D 89 03 A6 */ mtctr r12 -/* 801B023C 4E 80 04 21 */ bctrl -lbl_801B0240: -/* 801B0240 38 00 00 00 */ li r0, 0 -/* 801B0244 90 1F 00 8C */ stw r0, 0x8c(r31) -/* 801B0248 80 7F 00 20 */ lwz r3, 0x20(r31) -/* 801B024C 28 03 00 00 */ cmplwi r3, 0 -/* 801B0250 41 82 00 18 */ beq lbl_801B0268 -/* 801B0254 38 80 00 01 */ li r4, 1 -/* 801B0258 81 83 00 00 */ lwz r12, 0(r3) -/* 801B025C 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 801B0260 7D 89 03 A6 */ mtctr r12 -/* 801B0264 4E 80 04 21 */ bctrl -lbl_801B0268: -/* 801B0268 38 00 00 00 */ li r0, 0 -/* 801B026C 90 1F 00 20 */ stw r0, 0x20(r31) -/* 801B0270 80 7F 00 24 */ lwz r3, 0x24(r31) -/* 801B0274 38 80 00 01 */ li r4, 1 -/* 801B0278 48 09 9A B1 */ bl __dt__12dMsgString_cFv -/* 801B027C 38 00 00 00 */ li r0, 0 -/* 801B0280 90 1F 00 24 */ stw r0, 0x24(r31) -/* 801B0284 80 7F 00 08 */ lwz r3, 8(r31) -/* 801B0288 4B E5 EF 45 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B028C 7C 7A 1B 78 */ mr r26, r3 -/* 801B0290 80 7F 00 90 */ lwz r3, 0x90(r31) -/* 801B0294 28 03 00 00 */ cmplwi r3, 0 -/* 801B0298 41 82 00 38 */ beq lbl_801B02D0 -/* 801B029C 48 04 08 8D */ bl _delete__12dMenu_save_cFv -/* 801B02A0 80 7F 00 90 */ lwz r3, 0x90(r31) -/* 801B02A4 28 03 00 00 */ cmplwi r3, 0 -/* 801B02A8 41 82 00 18 */ beq lbl_801B02C0 -/* 801B02AC 38 80 00 01 */ li r4, 1 -/* 801B02B0 81 83 00 00 */ lwz r12, 0(r3) -/* 801B02B4 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B02B8 7D 89 03 A6 */ mtctr r12 -/* 801B02BC 4E 80 04 21 */ bctrl -lbl_801B02C0: -/* 801B02C0 38 00 00 00 */ li r0, 0 -/* 801B02C4 90 1F 00 90 */ stw r0, 0x90(r31) -/* 801B02C8 80 7F 00 08 */ lwz r3, 8(r31) -/* 801B02CC 48 11 E3 01 */ bl freeAll__7JKRHeapFv -lbl_801B02D0: -/* 801B02D0 80 7F 00 94 */ lwz r3, 0x94(r31) -/* 801B02D4 28 03 00 00 */ cmplwi r3, 0 -/* 801B02D8 41 82 00 38 */ beq lbl_801B0310 -/* 801B02DC 48 03 29 41 */ bl _delete__14dMenu_Option_cFv -/* 801B02E0 80 7F 00 94 */ lwz r3, 0x94(r31) -/* 801B02E4 28 03 00 00 */ cmplwi r3, 0 -/* 801B02E8 41 82 00 18 */ beq lbl_801B0300 -/* 801B02EC 38 80 00 01 */ li r4, 1 -/* 801B02F0 81 83 00 00 */ lwz r12, 0(r3) -/* 801B02F4 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 801B02F8 7D 89 03 A6 */ mtctr r12 -/* 801B02FC 4E 80 04 21 */ bctrl -lbl_801B0300: -/* 801B0300 38 00 00 00 */ li r0, 0 -/* 801B0304 90 1F 00 94 */ stw r0, 0x94(r31) -/* 801B0308 80 7F 00 08 */ lwz r3, 8(r31) -/* 801B030C 48 11 E2 C1 */ bl freeAll__7JKRHeapFv -lbl_801B0310: -/* 801B0310 80 7F 00 98 */ lwz r3, 0x98(r31) -/* 801B0314 28 03 00 00 */ cmplwi r3, 0 -/* 801B0318 41 82 00 2C */ beq lbl_801B0344 -/* 801B031C 41 82 00 18 */ beq lbl_801B0334 -/* 801B0320 38 80 00 01 */ li r4, 1 -/* 801B0324 81 83 00 00 */ lwz r12, 0(r3) -/* 801B0328 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 801B032C 7D 89 03 A6 */ mtctr r12 -/* 801B0330 4E 80 04 21 */ bctrl -lbl_801B0334: -/* 801B0334 38 00 00 00 */ li r0, 0 -/* 801B0338 90 1F 00 98 */ stw r0, 0x98(r31) -/* 801B033C 80 7F 00 08 */ lwz r3, 8(r31) -/* 801B0340 48 11 E2 8D */ bl freeAll__7JKRHeapFv -lbl_801B0344: -/* 801B0344 80 7F 00 9C */ lwz r3, 0x9c(r31) -/* 801B0348 28 03 00 00 */ cmplwi r3, 0 -/* 801B034C 41 82 00 2C */ beq lbl_801B0378 -/* 801B0350 41 82 00 18 */ beq lbl_801B0368 -/* 801B0354 38 80 00 01 */ li r4, 1 -/* 801B0358 81 83 00 00 */ lwz r12, 0(r3) -/* 801B035C 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 801B0360 7D 89 03 A6 */ mtctr r12 -/* 801B0364 4E 80 04 21 */ bctrl -lbl_801B0368: -/* 801B0368 38 00 00 00 */ li r0, 0 -/* 801B036C 90 1F 00 9C */ stw r0, 0x9c(r31) -/* 801B0370 80 7F 00 08 */ lwz r3, 8(r31) -/* 801B0374 48 11 E2 59 */ bl freeAll__7JKRHeapFv -lbl_801B0378: -/* 801B0378 80 7F 00 A0 */ lwz r3, 0xa0(r31) -/* 801B037C 28 03 00 00 */ cmplwi r3, 0 -/* 801B0380 41 82 00 2C */ beq lbl_801B03AC -/* 801B0384 41 82 00 18 */ beq lbl_801B039C -/* 801B0388 38 80 00 01 */ li r4, 1 -/* 801B038C 81 83 00 00 */ lwz r12, 0(r3) -/* 801B0390 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 801B0394 7D 89 03 A6 */ mtctr r12 -/* 801B0398 4E 80 04 21 */ bctrl -lbl_801B039C: -/* 801B039C 38 00 00 00 */ li r0, 0 -/* 801B03A0 90 1F 00 A0 */ stw r0, 0xa0(r31) -/* 801B03A4 80 7F 00 08 */ lwz r3, 8(r31) -/* 801B03A8 48 11 E2 25 */ bl freeAll__7JKRHeapFv -lbl_801B03AC: -/* 801B03AC 80 7F 00 A4 */ lwz r3, 0xa4(r31) -/* 801B03B0 28 03 00 00 */ cmplwi r3, 0 -/* 801B03B4 41 82 00 2C */ beq lbl_801B03E0 -/* 801B03B8 41 82 00 18 */ beq lbl_801B03D0 -/* 801B03BC 38 80 00 01 */ li r4, 1 -/* 801B03C0 81 83 00 00 */ lwz r12, 0(r3) -/* 801B03C4 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 801B03C8 7D 89 03 A6 */ mtctr r12 -/* 801B03CC 4E 80 04 21 */ bctrl -lbl_801B03D0: -/* 801B03D0 38 00 00 00 */ li r0, 0 -/* 801B03D4 90 1F 00 A4 */ stw r0, 0xa4(r31) -/* 801B03D8 80 7F 00 08 */ lwz r3, 8(r31) -/* 801B03DC 48 11 E1 F1 */ bl freeAll__7JKRHeapFv -lbl_801B03E0: -/* 801B03E0 7F 43 D3 78 */ mr r3, r26 -/* 801B03E4 4B E5 ED E9 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B03E8 80 7F 00 2C */ lwz r3, 0x2c(r31) -/* 801B03EC 28 03 00 00 */ cmplwi r3, 0 -/* 801B03F0 41 82 00 18 */ beq lbl_801B0408 -/* 801B03F4 38 80 00 01 */ li r4, 1 -/* 801B03F8 81 83 00 00 */ lwz r12, 0(r3) -/* 801B03FC 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B0400 7D 89 03 A6 */ mtctr r12 -/* 801B0404 4E 80 04 21 */ bctrl -lbl_801B0408: -/* 801B0408 38 00 00 00 */ li r0, 0 -/* 801B040C 90 1F 00 2C */ stw r0, 0x2c(r31) -/* 801B0410 3B 20 00 00 */ li r25, 0 -/* 801B0414 3B C0 00 00 */ li r30, 0 -lbl_801B0418: -/* 801B0418 3B 00 00 00 */ li r24, 0 -/* 801B041C 3B A0 00 00 */ li r29, 0 -/* 801B0420 7F 7F F2 14 */ add r27, r31, r30 -/* 801B0424 3B 80 00 00 */ li r28, 0 -lbl_801B0428: -/* 801B0428 3B 5D 00 B0 */ addi r26, r29, 0xb0 -/* 801B042C 7C 7B D0 2E */ lwzx r3, r27, r26 -/* 801B0430 28 03 00 00 */ cmplwi r3, 0 -/* 801B0434 41 82 00 20 */ beq lbl_801B0454 -/* 801B0438 41 82 00 18 */ beq lbl_801B0450 -/* 801B043C 38 80 00 01 */ li r4, 1 -/* 801B0440 81 83 00 00 */ lwz r12, 0(r3) -/* 801B0444 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B0448 7D 89 03 A6 */ mtctr r12 -/* 801B044C 4E 80 04 21 */ bctrl -lbl_801B0450: -/* 801B0450 7F 9B D1 2E */ stwx r28, r27, r26 -lbl_801B0454: -/* 801B0454 3B 18 00 01 */ addi r24, r24, 1 -/* 801B0458 2C 18 00 06 */ cmpwi r24, 6 -/* 801B045C 3B BD 00 04 */ addi r29, r29, 4 -/* 801B0460 41 80 FF C8 */ blt lbl_801B0428 -/* 801B0464 3B 39 00 01 */ addi r25, r25, 1 -/* 801B0468 2C 19 00 07 */ cmpwi r25, 7 -/* 801B046C 3B DE 00 18 */ addi r30, r30, 0x18 -/* 801B0470 41 80 FF A8 */ blt lbl_801B0418 -/* 801B0474 80 7F 00 A8 */ lwz r3, 0xa8(r31) -/* 801B0478 28 03 00 00 */ cmplwi r3, 0 -/* 801B047C 41 82 00 18 */ beq lbl_801B0494 -/* 801B0480 38 80 00 01 */ li r4, 1 -/* 801B0484 81 83 00 00 */ lwz r12, 0(r3) -/* 801B0488 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B048C 7D 89 03 A6 */ mtctr r12 -/* 801B0490 4E 80 04 21 */ bctrl -lbl_801B0494: -/* 801B0494 38 00 00 00 */ li r0, 0 -/* 801B0498 90 1F 00 A8 */ stw r0, 0xa8(r31) -/* 801B049C 80 7F 00 AC */ lwz r3, 0xac(r31) -/* 801B04A0 28 03 00 00 */ cmplwi r3, 0 -/* 801B04A4 41 82 00 18 */ beq lbl_801B04BC -/* 801B04A8 38 80 00 01 */ li r4, 1 -/* 801B04AC 81 83 00 00 */ lwz r12, 0(r3) -/* 801B04B0 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B04B4 7D 89 03 A6 */ mtctr r12 -/* 801B04B8 4E 80 04 21 */ bctrl -lbl_801B04BC: -/* 801B04BC 38 00 00 00 */ li r0, 0 -/* 801B04C0 90 1F 00 AC */ stw r0, 0xac(r31) -/* 801B04C4 80 7F 01 60 */ lwz r3, 0x160(r31) -/* 801B04C8 28 03 00 00 */ cmplwi r3, 0 -/* 801B04CC 41 82 00 18 */ beq lbl_801B04E4 -/* 801B04D0 38 80 00 01 */ li r4, 1 -/* 801B04D4 81 83 00 00 */ lwz r12, 0(r3) -/* 801B04D8 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B04DC 7D 89 03 A6 */ mtctr r12 -/* 801B04E0 4E 80 04 21 */ bctrl -lbl_801B04E4: -/* 801B04E4 38 00 00 00 */ li r0, 0 -/* 801B04E8 90 1F 01 60 */ stw r0, 0x160(r31) -/* 801B04EC 80 7F 01 64 */ lwz r3, 0x164(r31) -/* 801B04F0 28 03 00 00 */ cmplwi r3, 0 -/* 801B04F4 41 82 00 18 */ beq lbl_801B050C -/* 801B04F8 38 80 00 01 */ li r4, 1 -/* 801B04FC 81 83 00 00 */ lwz r12, 0(r3) -/* 801B0500 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B0504 7D 89 03 A6 */ mtctr r12 -/* 801B0508 4E 80 04 21 */ bctrl -lbl_801B050C: -/* 801B050C 38 00 00 00 */ li r0, 0 -/* 801B0510 90 1F 01 64 */ stw r0, 0x164(r31) -/* 801B0514 80 7F 01 68 */ lwz r3, 0x168(r31) -/* 801B0518 28 03 00 00 */ cmplwi r3, 0 -/* 801B051C 41 82 00 18 */ beq lbl_801B0534 -/* 801B0520 38 80 00 01 */ li r4, 1 -/* 801B0524 81 83 00 00 */ lwz r12, 0(r3) -/* 801B0528 81 8C 00 08 */ lwz r12, 8(r12) -/* 801B052C 7D 89 03 A6 */ mtctr r12 -/* 801B0530 4E 80 04 21 */ bctrl -lbl_801B0534: -/* 801B0534 38 00 00 00 */ li r0, 0 -/* 801B0538 90 1F 01 68 */ stw r0, 0x168(r31) -/* 801B053C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801B0540 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801B0544 80 63 5C B8 */ lwz r3, 0x5cb8(r3) -/* 801B0548 81 83 00 00 */ lwz r12, 0(r3) -/* 801B054C 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 801B0550 7D 89 03 A6 */ mtctr r12 -/* 801B0554 4E 80 04 21 */ bctrl -/* 801B0558 39 61 00 30 */ addi r11, r1, 0x30 -/* 801B055C 48 1B 1C B9 */ bl _restgpr_24 -/* 801B0560 80 01 00 34 */ lwz r0, 0x34(r1) -/* 801B0564 7C 08 03 A6 */ mtlr r0 -/* 801B0568 38 21 00 30 */ addi r1, r1, 0x30 -/* 801B056C 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/_delete__17dMenu_Collect3D_cFv.s b/asm/d/menu/d_menu_collect/_delete__17dMenu_Collect3D_cFv.s deleted file mode 100644 index 3589ebdd73..0000000000 --- a/asm/d/menu/d_menu_collect/_delete__17dMenu_Collect3D_cFv.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_801B6694: -/* 801B6694 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B6698 7C 08 02 A6 */ mflr r0 -/* 801B669C 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B66A0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801B66A4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801B66A8 80 63 5D B4 */ lwz r3, 0x5db4(r3) -/* 801B66AC 28 03 00 00 */ cmplwi r3, 0 -/* 801B66B0 41 82 00 08 */ beq lbl_801B66B8 -/* 801B66B4 4B F8 A4 15 */ bl resetStatusWindow__9daAlink_cFv -lbl_801B66B8: -/* 801B66B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B66BC 7C 08 03 A6 */ mtlr r0 -/* 801B66C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B66C4 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/_move__15dMenu_Collect_cFv.s b/asm/d/menu/d_menu_collect/_move__15dMenu_Collect_cFv.s deleted file mode 100644 index f437bd00cd..0000000000 --- a/asm/d/menu/d_menu_collect/_move__15dMenu_Collect_cFv.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_801B7A7C: -/* 801B7A7C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B7A80 7C 08 02 A6 */ mflr r0 -/* 801B7A84 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B7A88 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B7A8C 7C 7F 1B 78 */ mr r31, r3 -/* 801B7A90 80 63 00 04 */ lwz r3, 4(r3) -/* 801B7A94 4B FF E2 41 */ bl _move__17dMenu_Collect2D_cFv -/* 801B7A98 80 7F 00 04 */ lwz r3, 4(r31) -/* 801B7A9C 88 A3 02 58 */ lbz r5, 0x258(r3) -/* 801B7AA0 88 83 02 57 */ lbz r4, 0x257(r3) -/* 801B7AA4 80 7F 00 08 */ lwz r3, 8(r31) -/* 801B7AA8 4B FF EC 21 */ bl _move__17dMenu_Collect3D_cFUcUc -/* 801B7AAC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B7AB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B7AB4 7C 08 03 A6 */ mtlr r0 -/* 801B7AB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B7ABC 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/drawTop__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/drawTop__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 6a3d9f6ba7..0000000000 --- a/asm/d/menu/d_menu_collect/drawTop__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B5F48: -/* 801B5F48 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5F4C 7C 08 02 A6 */ mflr r0 -/* 801B5F50 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5F54 7C 66 1B 78 */ mr r6, r3 -/* 801B5F58 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801B5F5C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801B5F60 38 63 5F 64 */ addi r3, r3, 0x5f64 -/* 801B5F64 38 83 00 AC */ addi r4, r3, 0xac -/* 801B5F68 38 A3 00 B0 */ addi r5, r3, 0xb0 -/* 801B5F6C 80 C6 00 88 */ lwz r6, 0x88(r6) -/* 801B5F70 4B EA 08 25 */ bl set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c -/* 801B5F74 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5F78 7C 08 03 A6 */ mtlr r0 -/* 801B5F7C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5F80 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/draw__15dMenu_Collect_cFv.s b/asm/d/menu/d_menu_collect/draw__15dMenu_Collect_cFv.s deleted file mode 100644 index 90e2835d91..0000000000 --- a/asm/d/menu/d_menu_collect/draw__15dMenu_Collect_cFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_801B7AC0: -/* 801B7AC0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B7AC4 7C 08 02 A6 */ mflr r0 -/* 801B7AC8 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B7ACC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B7AD0 7C 7F 1B 78 */ mr r31, r3 -/* 801B7AD4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801B7AD8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801B7ADC 38 63 5F 64 */ addi r3, r3, 0x5f64 -/* 801B7AE0 38 83 01 B4 */ addi r4, r3, 0x1b4 -/* 801B7AE4 38 A3 01 B8 */ addi r5, r3, 0x1b8 -/* 801B7AE8 80 DF 00 04 */ lwz r6, 4(r31) -/* 801B7AEC 4B E9 EC A9 */ bl set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c -/* 801B7AF0 80 7F 00 08 */ lwz r3, 8(r31) -/* 801B7AF4 4B FF EE 79 */ bl draw__17dMenu_Collect3D_cFv -/* 801B7AF8 80 7F 00 04 */ lwz r3, 4(r31) -/* 801B7AFC 4B FF E4 4D */ bl drawTop__17dMenu_Collect2D_cFv -/* 801B7B00 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B7B04 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B7B08 7C 08 03 A6 */ mtlr r0 -/* 801B7B0C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B7B10 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/draw__17dMenu_Collect3D_cFv.s b/asm/d/menu/d_menu_collect/draw__17dMenu_Collect3D_cFv.s deleted file mode 100644 index 14347a9eff..0000000000 --- a/asm/d/menu/d_menu_collect/draw__17dMenu_Collect3D_cFv.s +++ /dev/null @@ -1,52 +0,0 @@ -lbl_801B696C: -/* 801B696C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B6970 7C 08 02 A6 */ mflr r0 -/* 801B6974 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B6978 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B697C 93 C1 00 08 */ stw r30, 8(r1) -/* 801B6980 7C 7E 1B 78 */ mr r30, r3 -/* 801B6984 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801B6988 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801B698C 80 04 5F 98 */ lwz r0, 0x5f98(r4) -/* 801B6990 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 801B6994 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */ -/* 801B6998 90 1F 00 48 */ stw r0, 0x48(r31) -/* 801B699C 80 04 5F 9C */ lwz r0, 0x5f9c(r4) -/* 801B69A0 90 1F 00 4C */ stw r0, 0x4c(r31) -/* 801B69A4 80 64 5D B4 */ lwz r3, 0x5db4(r4) -/* 801B69A8 28 03 00 00 */ cmplwi r3, 0 -/* 801B69AC 41 82 00 08 */ beq lbl_801B69B4 -/* 801B69B0 4B F8 9F D5 */ bl statusWindowDraw__9daAlink_cFv -lbl_801B69B4: -/* 801B69B4 80 1E 00 18 */ lwz r0, 0x18(r30) -/* 801B69B8 28 00 00 00 */ cmplwi r0, 0 -/* 801B69BC 41 82 00 44 */ beq lbl_801B6A00 -/* 801B69C0 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 801B69C4 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 801B69C8 38 80 00 0D */ li r4, 0xd -/* 801B69CC 38 BE 03 B0 */ addi r5, r30, 0x3b0 -/* 801B69D0 38 DE 00 28 */ addi r6, r30, 0x28 -/* 801B69D4 4B FE CD F1 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 801B69D8 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 801B69DC 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 801B69E0 80 9E 00 18 */ lwz r4, 0x18(r30) -/* 801B69E4 80 84 00 04 */ lwz r4, 4(r4) -/* 801B69E8 38 BE 00 28 */ addi r5, r30, 0x28 -/* 801B69EC 4B FE E3 B5 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 801B69F0 7F C3 F3 78 */ mr r3, r30 -/* 801B69F4 48 00 05 BD */ bl animeEntry__17dMenu_Collect3D_cFv -/* 801B69F8 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 801B69FC 4B E5 72 C9 */ bl mDoExt_modelUpdateDL__FP8J3DModel -lbl_801B6A00: -/* 801B6A00 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801B6A04 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801B6A08 80 03 5F 80 */ lwz r0, 0x5f80(r3) -/* 801B6A0C 90 1F 00 48 */ stw r0, 0x48(r31) -/* 801B6A10 80 03 5F 84 */ lwz r0, 0x5f84(r3) -/* 801B6A14 90 1F 00 4C */ stw r0, 0x4c(r31) -/* 801B6A18 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B6A1C 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B6A20 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B6A24 7C 08 03 A6 */ mtlr r0 -/* 801B6A28 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B6A2C 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/fishing_close_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/fishing_close_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index b6710bc3b6..0000000000 --- a/asm/d/menu/d_menu_collect/fishing_close_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B5738: -/* 801B5738 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B573C 7C 08 02 A6 */ mflr r0 -/* 801B5740 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5744 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5748 7C 7F 1B 78 */ mr r31, r3 -/* 801B574C 38 80 00 00 */ li r4, 0 -/* 801B5750 48 00 08 65 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B5754 7F E3 FB 78 */ mr r3, r31 -/* 801B5758 38 80 00 00 */ li r4, 0 -/* 801B575C 48 00 09 5D */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B5760 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5764 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5768 7C 08 03 A6 */ mtlr r0 -/* 801B576C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5770 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/fishing_close_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/fishing_close_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 3de819b808..0000000000 --- a/asm/d/menu/d_menu_collect/fishing_close_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_801B5774: -/* 801B5774 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5778 7C 08 02 A6 */ mflr r0 -/* 801B577C 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5780 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5784 93 C1 00 08 */ stw r30, 8(r1) -/* 801B5788 7C 7E 1B 78 */ mr r30, r3 -/* 801B578C 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5790 4B E5 9A 3D */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5794 7C 7F 1B 78 */ mr r31, r3 -/* 801B5798 80 7E 00 9C */ lwz r3, 0x9c(r30) -/* 801B579C 88 03 01 FA */ lbz r0, 0x1fa(r3) -/* 801B57A0 28 00 00 03 */ cmplwi r0, 3 -/* 801B57A4 40 82 00 08 */ bne lbl_801B57AC -/* 801B57A8 48 00 FC C9 */ bl _close__15dMenu_Fishing_cFv -lbl_801B57AC: -/* 801B57AC 80 7E 00 9C */ lwz r3, 0x9c(r30) -/* 801B57B0 88 03 01 FA */ lbz r0, 0x1fa(r3) -/* 801B57B4 28 00 00 00 */ cmplwi r0, 0 -/* 801B57B8 40 82 00 18 */ bne lbl_801B57D0 -/* 801B57BC 38 00 00 00 */ li r0, 0 -/* 801B57C0 98 1E 02 2C */ stb r0, 0x22c(r30) -/* 801B57C4 38 00 00 FF */ li r0, 0xff -/* 801B57C8 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 801B57CC 98 03 00 B4 */ stb r0, 0xb4(r3) -lbl_801B57D0: -/* 801B57D0 7F E3 FB 78 */ mr r3, r31 -/* 801B57D4 4B E5 99 F9 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B57D8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B57DC 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B57E0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B57E4 7C 08 03 A6 */ mtlr r0 -/* 801B57E8 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B57EC 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/fishing_move_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/fishing_move_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 237231e45c..0000000000 --- a/asm/d/menu/d_menu_collect/fishing_move_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B568C: -/* 801B568C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5690 7C 08 02 A6 */ mflr r0 -/* 801B5694 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5698 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B569C 7C 7F 1B 78 */ mr r31, r3 -/* 801B56A0 38 80 04 0C */ li r4, 0x40c -/* 801B56A4 48 00 09 11 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B56A8 7F E3 FB 78 */ mr r3, r31 -/* 801B56AC 38 80 03 F9 */ li r4, 0x3f9 -/* 801B56B0 48 00 0A 09 */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B56B4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B56B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B56BC 7C 08 03 A6 */ mtlr r0 -/* 801B56C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B56C4 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/fishing_move_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/fishing_move_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index a8c53be2d7..0000000000 --- a/asm/d/menu/d_menu_collect/fishing_move_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801B56C8: -/* 801B56C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B56CC 7C 08 02 A6 */ mflr r0 -/* 801B56D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B56D4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B56D8 93 C1 00 08 */ stw r30, 8(r1) -/* 801B56DC 7C 7E 1B 78 */ mr r30, r3 -/* 801B56E0 80 63 00 08 */ lwz r3, 8(r3) -/* 801B56E4 4B E5 9A E9 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B56E8 7C 7F 1B 78 */ mr r31, r3 -/* 801B56EC 80 7E 00 9C */ lwz r3, 0x9c(r30) -/* 801B56F0 88 03 01 FA */ lbz r0, 0x1fa(r3) -/* 801B56F4 28 00 00 02 */ cmplwi r0, 2 -/* 801B56F8 40 82 00 08 */ bne lbl_801B5700 -/* 801B56FC 48 00 F9 B9 */ bl _move__15dMenu_Fishing_cFv -lbl_801B5700: -/* 801B5700 80 7E 00 9C */ lwz r3, 0x9c(r30) -/* 801B5704 88 03 01 FA */ lbz r0, 0x1fa(r3) -/* 801B5708 28 00 00 03 */ cmplwi r0, 3 -/* 801B570C 40 82 00 0C */ bne lbl_801B5718 -/* 801B5710 38 00 00 0C */ li r0, 0xc -/* 801B5714 98 1E 02 2C */ stb r0, 0x22c(r30) -lbl_801B5718: -/* 801B5718 7F E3 FB 78 */ mr r3, r31 -/* 801B571C 4B E5 9A B1 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5720 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5724 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B5728 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B572C 7C 08 03 A6 */ mtlr r0 -/* 801B5730 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5734 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/fishing_open_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/fishing_open_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index c255926b37..0000000000 --- a/asm/d/menu/d_menu_collect/fishing_open_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_801B5580: -/* 801B5580 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5584 7C 08 02 A6 */ mflr r0 -/* 801B5588 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B558C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5590 93 C1 00 08 */ stw r30, 8(r1) -/* 801B5594 7C 7E 1B 78 */ mr r30, r3 -/* 801B5598 80 63 00 08 */ lwz r3, 8(r3) -/* 801B559C 4B E5 9C 31 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B55A0 7C 7F 1B 78 */ mr r31, r3 -/* 801B55A4 80 1E 00 9C */ lwz r0, 0x9c(r30) -/* 801B55A8 28 00 00 00 */ cmplwi r0, 0 -/* 801B55AC 40 82 00 2C */ bne lbl_801B55D8 -/* 801B55B0 38 60 01 FC */ li r3, 0x1fc -/* 801B55B4 48 11 96 99 */ bl __nw__FUl -/* 801B55B8 7C 60 1B 79 */ or. r0, r3, r3 -/* 801B55BC 41 82 00 18 */ beq lbl_801B55D4 -/* 801B55C0 80 9E 00 08 */ lwz r4, 8(r30) -/* 801B55C4 80 BE 00 10 */ lwz r5, 0x10(r30) -/* 801B55C8 80 DE 00 14 */ lwz r6, 0x14(r30) -/* 801B55CC 48 00 F7 89 */ bl __ct__15dMenu_Fishing_cFP10JKRExpHeapP9STControlP10CSTControl -/* 801B55D0 7C 60 1B 78 */ mr r0, r3 -lbl_801B55D4: -/* 801B55D4 90 1E 00 9C */ stw r0, 0x9c(r30) -lbl_801B55D8: -/* 801B55D8 7F C3 F3 78 */ mr r3, r30 -/* 801B55DC 38 80 00 00 */ li r4, 0 -/* 801B55E0 48 00 09 D5 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B55E4 7F C3 F3 78 */ mr r3, r30 -/* 801B55E8 38 80 00 00 */ li r4, 0 -/* 801B55EC 48 00 0A CD */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B55F0 38 00 00 00 */ li r0, 0 -/* 801B55F4 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 801B55F8 98 03 00 B4 */ stb r0, 0xb4(r3) -/* 801B55FC 7F E3 FB 78 */ mr r3, r31 -/* 801B5600 4B E5 9B CD */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5604 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5608 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B560C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5610 7C 08 03 A6 */ mtlr r0 -/* 801B5614 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5618 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/fishing_open_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/fishing_open_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index e16509c1c9..0000000000 --- a/asm/d/menu/d_menu_collect/fishing_open_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801B561C: -/* 801B561C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5620 7C 08 02 A6 */ mflr r0 -/* 801B5624 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5628 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B562C 93 C1 00 08 */ stw r30, 8(r1) -/* 801B5630 7C 7E 1B 78 */ mr r30, r3 -/* 801B5634 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5638 4B E5 9B 95 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B563C 7C 7F 1B 78 */ mr r31, r3 -/* 801B5640 80 7E 00 9C */ lwz r3, 0x9c(r30) -/* 801B5644 88 03 01 FA */ lbz r0, 0x1fa(r3) -/* 801B5648 28 00 00 01 */ cmplwi r0, 1 -/* 801B564C 40 82 00 08 */ bne lbl_801B5654 -/* 801B5650 48 00 FC 95 */ bl _open__15dMenu_Fishing_cFv -lbl_801B5654: -/* 801B5654 80 7E 00 9C */ lwz r3, 0x9c(r30) -/* 801B5658 88 03 01 FA */ lbz r0, 0x1fa(r3) -/* 801B565C 28 00 00 02 */ cmplwi r0, 2 -/* 801B5660 40 82 00 0C */ bne lbl_801B566C -/* 801B5664 38 00 00 0B */ li r0, 0xb -/* 801B5668 98 1E 02 2C */ stb r0, 0x22c(r30) -lbl_801B566C: -/* 801B566C 7F E3 FB 78 */ mr r3, r31 -/* 801B5670 4B E5 9B 5D */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5674 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5678 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B567C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5680 7C 08 03 A6 */ mtlr r0 -/* 801B5684 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5688 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/getCrystalNum__17dMenu_Collect3D_cFv.s b/asm/d/menu/d_menu_collect/getCrystalNum__17dMenu_Collect3D_cFv.s deleted file mode 100644 index b5a250729d..0000000000 --- a/asm/d/menu/d_menu_collect/getCrystalNum__17dMenu_Collect3D_cFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_801B7434: -/* 801B7434 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801B7438 7C 08 02 A6 */ mflr r0 -/* 801B743C 90 01 00 24 */ stw r0, 0x24(r1) -/* 801B7440 39 61 00 20 */ addi r11, r1, 0x20 -/* 801B7444 48 1A AD 99 */ bl _savegpr_29 -/* 801B7448 3B C0 00 00 */ li r30, 0 -/* 801B744C 3B A0 00 00 */ li r29, 0 -/* 801B7450 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801B7454 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801B7458 3B E3 01 00 */ addi r31, r3, 0x100 -lbl_801B745C: -/* 801B745C 7F E3 FB 78 */ mr r3, r31 -/* 801B7460 57 A4 06 3E */ clrlwi r4, r29, 0x18 -/* 801B7464 4B E7 CD E9 */ bl isCollectCrystal__20dSv_player_collect_cCFUc -/* 801B7468 2C 03 00 00 */ cmpwi r3, 0 -/* 801B746C 41 82 00 14 */ beq lbl_801B7480 -/* 801B7470 3B BD 00 01 */ addi r29, r29, 1 -/* 801B7474 2C 1D 00 04 */ cmpwi r29, 4 -/* 801B7478 3B DE 00 01 */ addi r30, r30, 1 -/* 801B747C 41 80 FF E0 */ blt lbl_801B745C -lbl_801B7480: -/* 801B7480 7F C3 F3 78 */ mr r3, r30 -/* 801B7484 39 61 00 20 */ addi r11, r1, 0x20 -/* 801B7488 48 1A AD A1 */ bl _restgpr_29 -/* 801B748C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801B7490 7C 08 03 A6 */ mtlr r0 -/* 801B7494 38 21 00 20 */ addi r1, r1, 0x20 -/* 801B7498 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/getMirrorNum__17dMenu_Collect3D_cFv.s b/asm/d/menu/d_menu_collect/getMirrorNum__17dMenu_Collect3D_cFv.s deleted file mode 100644 index 774c3ac461..0000000000 --- a/asm/d/menu/d_menu_collect/getMirrorNum__17dMenu_Collect3D_cFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_801B749C: -/* 801B749C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801B74A0 7C 08 02 A6 */ mflr r0 -/* 801B74A4 90 01 00 24 */ stw r0, 0x24(r1) -/* 801B74A8 39 61 00 20 */ addi r11, r1, 0x20 -/* 801B74AC 48 1A AD 31 */ bl _savegpr_29 -/* 801B74B0 3B C0 00 00 */ li r30, 0 -/* 801B74B4 3B A0 00 00 */ li r29, 0 -/* 801B74B8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801B74BC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801B74C0 3B E3 01 00 */ addi r31, r3, 0x100 -lbl_801B74C4: -/* 801B74C4 7F E3 FB 78 */ mr r3, r31 -/* 801B74C8 57 A4 06 3E */ clrlwi r4, r29, 0x18 -/* 801B74CC 4B E7 CD C5 */ bl isCollectMirror__20dSv_player_collect_cCFUc -/* 801B74D0 2C 03 00 00 */ cmpwi r3, 0 -/* 801B74D4 41 82 00 14 */ beq lbl_801B74E8 -/* 801B74D8 3B BD 00 01 */ addi r29, r29, 1 -/* 801B74DC 2C 1D 00 04 */ cmpwi r29, 4 -/* 801B74E0 3B DE 00 01 */ addi r30, r30, 1 -/* 801B74E4 41 80 FF E0 */ blt lbl_801B74C4 -lbl_801B74E8: -/* 801B74E8 7F C3 F3 78 */ mr r3, r30 -/* 801B74EC 39 61 00 20 */ addi r11, r1, 0x20 -/* 801B74F0 48 1A AD 39 */ bl _restgpr_29 -/* 801B74F4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801B74F8 7C 08 03 A6 */ mtlr r0 -/* 801B74FC 38 21 00 20 */ addi r1, r1, 0x20 -/* 801B7500 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/insect_close_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/insect_close_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index d56d9a4d71..0000000000 --- a/asm/d/menu/d_menu_collect/insect_close_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B5C1C: -/* 801B5C1C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5C20 7C 08 02 A6 */ mflr r0 -/* 801B5C24 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5C28 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5C2C 7C 7F 1B 78 */ mr r31, r3 -/* 801B5C30 38 80 00 00 */ li r4, 0 -/* 801B5C34 48 00 03 81 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B5C38 7F E3 FB 78 */ mr r3, r31 -/* 801B5C3C 38 80 00 00 */ li r4, 0 -/* 801B5C40 48 00 04 79 */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B5C44 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5C48 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5C4C 7C 08 03 A6 */ mtlr r0 -/* 801B5C50 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5C54 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/insect_close_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/insect_close_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 1bf27dd372..0000000000 --- a/asm/d/menu/d_menu_collect/insect_close_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_801B5C58: -/* 801B5C58 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5C5C 7C 08 02 A6 */ mflr r0 -/* 801B5C60 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5C64 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5C68 93 C1 00 08 */ stw r30, 8(r1) -/* 801B5C6C 7C 7E 1B 78 */ mr r30, r3 -/* 801B5C70 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5C74 4B E5 95 59 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5C78 7C 7F 1B 78 */ mr r31, r3 -/* 801B5C7C 80 7E 00 A4 */ lwz r3, 0xa4(r30) -/* 801B5C80 88 03 00 F2 */ lbz r0, 0xf2(r3) -/* 801B5C84 28 00 00 03 */ cmplwi r0, 3 -/* 801B5C88 40 82 00 08 */ bne lbl_801B5C90 -/* 801B5C8C 48 02 2E A1 */ bl _close__14dMenu_Insect_cFv -lbl_801B5C90: -/* 801B5C90 80 7E 00 A4 */ lwz r3, 0xa4(r30) -/* 801B5C94 88 03 00 F2 */ lbz r0, 0xf2(r3) -/* 801B5C98 28 00 00 00 */ cmplwi r0, 0 -/* 801B5C9C 40 82 00 18 */ bne lbl_801B5CB4 -/* 801B5CA0 38 00 00 00 */ li r0, 0 -/* 801B5CA4 98 1E 02 2C */ stb r0, 0x22c(r30) -/* 801B5CA8 38 00 00 FF */ li r0, 0xff -/* 801B5CAC 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 801B5CB0 98 03 00 B4 */ stb r0, 0xb4(r3) -lbl_801B5CB4: -/* 801B5CB4 7F E3 FB 78 */ mr r3, r31 -/* 801B5CB8 4B E5 95 15 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5CBC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5CC0 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B5CC4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5CC8 7C 08 03 A6 */ mtlr r0 -/* 801B5CCC 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5CD0 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/insect_move_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/insect_move_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index fc6a789de7..0000000000 --- a/asm/d/menu/d_menu_collect/insect_move_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B5B70: -/* 801B5B70 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5B74 7C 08 02 A6 */ mflr r0 -/* 801B5B78 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5B7C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5B80 7C 7F 1B 78 */ mr r31, r3 -/* 801B5B84 38 80 04 0C */ li r4, 0x40c -/* 801B5B88 48 00 04 2D */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B5B8C 7F E3 FB 78 */ mr r3, r31 -/* 801B5B90 38 80 03 F9 */ li r4, 0x3f9 -/* 801B5B94 48 00 05 25 */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B5B98 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5B9C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5BA0 7C 08 03 A6 */ mtlr r0 -/* 801B5BA4 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5BA8 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/insect_move_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/insect_move_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index fb51eb8eee..0000000000 --- a/asm/d/menu/d_menu_collect/insect_move_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801B5BAC: -/* 801B5BAC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5BB0 7C 08 02 A6 */ mflr r0 -/* 801B5BB4 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5BB8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5BBC 93 C1 00 08 */ stw r30, 8(r1) -/* 801B5BC0 7C 7E 1B 78 */ mr r30, r3 -/* 801B5BC4 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5BC8 4B E5 96 05 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5BCC 7C 7F 1B 78 */ mr r31, r3 -/* 801B5BD0 80 7E 00 A4 */ lwz r3, 0xa4(r30) -/* 801B5BD4 88 03 00 F2 */ lbz r0, 0xf2(r3) -/* 801B5BD8 28 00 00 02 */ cmplwi r0, 2 -/* 801B5BDC 40 82 00 08 */ bne lbl_801B5BE4 -/* 801B5BE0 48 02 2A E9 */ bl _move__14dMenu_Insect_cFv -lbl_801B5BE4: -/* 801B5BE4 80 7E 00 A4 */ lwz r3, 0xa4(r30) -/* 801B5BE8 88 03 00 F2 */ lbz r0, 0xf2(r3) -/* 801B5BEC 28 00 00 03 */ cmplwi r0, 3 -/* 801B5BF0 40 82 00 0C */ bne lbl_801B5BFC -/* 801B5BF4 38 00 00 12 */ li r0, 0x12 -/* 801B5BF8 98 1E 02 2C */ stb r0, 0x22c(r30) -lbl_801B5BFC: -/* 801B5BFC 7F E3 FB 78 */ mr r3, r31 -/* 801B5C00 4B E5 95 CD */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5C04 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5C08 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B5C0C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5C10 7C 08 03 A6 */ mtlr r0 -/* 801B5C14 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5C18 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/insect_open_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/insect_open_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index ae89badb40..0000000000 --- a/asm/d/menu/d_menu_collect/insect_open_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_801B5A60: -/* 801B5A60 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5A64 7C 08 02 A6 */ mflr r0 -/* 801B5A68 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5A6C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5A70 93 C1 00 08 */ stw r30, 8(r1) -/* 801B5A74 7C 7E 1B 78 */ mr r30, r3 -/* 801B5A78 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5A7C 4B E5 97 51 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5A80 7C 7F 1B 78 */ mr r31, r3 -/* 801B5A84 80 1E 00 A4 */ lwz r0, 0xa4(r30) -/* 801B5A88 28 00 00 00 */ cmplwi r0, 0 -/* 801B5A8C 40 82 00 30 */ bne lbl_801B5ABC -/* 801B5A90 38 60 01 00 */ li r3, 0x100 -/* 801B5A94 48 11 91 B9 */ bl __nw__FUl -/* 801B5A98 7C 60 1B 79 */ or. r0, r3, r3 -/* 801B5A9C 41 82 00 1C */ beq lbl_801B5AB8 -/* 801B5AA0 80 9E 00 08 */ lwz r4, 8(r30) -/* 801B5AA4 80 BE 00 10 */ lwz r5, 0x10(r30) -/* 801B5AA8 80 DE 00 14 */ lwz r6, 0x14(r30) -/* 801B5AAC 38 E0 00 00 */ li r7, 0 -/* 801B5AB0 48 02 26 65 */ bl __ct__14dMenu_Insect_cFP10JKRExpHeapP9STControlP10CSTControlUc -/* 801B5AB4 7C 60 1B 78 */ mr r0, r3 -lbl_801B5AB8: -/* 801B5AB8 90 1E 00 A4 */ stw r0, 0xa4(r30) -lbl_801B5ABC: -/* 801B5ABC 7F C3 F3 78 */ mr r3, r30 -/* 801B5AC0 38 80 00 00 */ li r4, 0 -/* 801B5AC4 48 00 04 F1 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B5AC8 7F C3 F3 78 */ mr r3, r30 -/* 801B5ACC 38 80 00 00 */ li r4, 0 -/* 801B5AD0 48 00 05 E9 */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B5AD4 38 00 00 00 */ li r0, 0 -/* 801B5AD8 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 801B5ADC 98 03 00 B4 */ stb r0, 0xb4(r3) -/* 801B5AE0 7F E3 FB 78 */ mr r3, r31 -/* 801B5AE4 4B E5 96 E9 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5AE8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5AEC 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B5AF0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5AF4 7C 08 03 A6 */ mtlr r0 -/* 801B5AF8 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5AFC 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/insect_open_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/insect_open_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 268a38cbbb..0000000000 --- a/asm/d/menu/d_menu_collect/insect_open_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801B5B00: -/* 801B5B00 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5B04 7C 08 02 A6 */ mflr r0 -/* 801B5B08 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5B0C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5B10 93 C1 00 08 */ stw r30, 8(r1) -/* 801B5B14 7C 7E 1B 78 */ mr r30, r3 -/* 801B5B18 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5B1C 4B E5 96 B1 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5B20 7C 7F 1B 78 */ mr r31, r3 -/* 801B5B24 80 7E 00 A4 */ lwz r3, 0xa4(r30) -/* 801B5B28 88 03 00 F2 */ lbz r0, 0xf2(r3) -/* 801B5B2C 28 00 00 01 */ cmplwi r0, 1 -/* 801B5B30 40 82 00 08 */ bne lbl_801B5B38 -/* 801B5B34 48 02 2E 19 */ bl _open__14dMenu_Insect_cFv -lbl_801B5B38: -/* 801B5B38 80 7E 00 A4 */ lwz r3, 0xa4(r30) -/* 801B5B3C 88 03 00 F2 */ lbz r0, 0xf2(r3) -/* 801B5B40 28 00 00 02 */ cmplwi r0, 2 -/* 801B5B44 40 82 00 0C */ bne lbl_801B5B50 -/* 801B5B48 38 00 00 11 */ li r0, 0x11 -/* 801B5B4C 98 1E 02 2C */ stb r0, 0x22c(r30) -lbl_801B5B50: -/* 801B5B50 7F E3 FB 78 */ mr r3, r31 -/* 801B5B54 4B E5 96 79 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5B58 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5B5C 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B5B60 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5B64 7C 08 03 A6 */ mtlr r0 -/* 801B5B68 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5B6C 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/isFishIconVisible__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/isFishIconVisible__17dMenu_Collect2D_cFv.s deleted file mode 100644 index c6687fb302..0000000000 --- a/asm/d/menu/d_menu_collect/isFishIconVisible__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_801B05A8: -/* 801B05A8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801B05AC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801B05B0 A0 03 01 6C */ lhz r0, 0x16c(r3) -/* 801B05B4 28 00 00 00 */ cmplwi r0, 0 -/* 801B05B8 40 82 00 54 */ bne lbl_801B060C -/* 801B05BC A0 03 01 6E */ lhz r0, 0x16e(r3) -/* 801B05C0 28 00 00 00 */ cmplwi r0, 0 -/* 801B05C4 40 82 00 48 */ bne lbl_801B060C -/* 801B05C8 A0 03 01 70 */ lhz r0, 0x170(r3) -/* 801B05CC 28 00 00 00 */ cmplwi r0, 0 -/* 801B05D0 40 82 00 3C */ bne lbl_801B060C -/* 801B05D4 A0 03 01 72 */ lhz r0, 0x172(r3) -/* 801B05D8 28 00 00 00 */ cmplwi r0, 0 -/* 801B05DC 40 82 00 30 */ bne lbl_801B060C -/* 801B05E0 A0 03 01 74 */ lhz r0, 0x174(r3) -/* 801B05E4 28 00 00 00 */ cmplwi r0, 0 -/* 801B05E8 40 82 00 24 */ bne lbl_801B060C -/* 801B05EC A0 03 01 76 */ lhz r0, 0x176(r3) -/* 801B05F0 28 00 00 00 */ cmplwi r0, 0 -/* 801B05F4 40 82 00 18 */ bne lbl_801B060C -/* 801B05F8 3C 60 80 43 */ lis r3, g_drawHIO@ha /* 0x8042EBC8@ha */ -/* 801B05FC 38 63 EB C8 */ addi r3, r3, g_drawHIO@l /* 0x8042EBC8@l */ -/* 801B0600 88 03 09 D8 */ lbz r0, 0x9d8(r3) -/* 801B0604 28 00 00 00 */ cmplwi r0, 0 -/* 801B0608 41 82 00 0C */ beq lbl_801B0614 -lbl_801B060C: -/* 801B060C 38 60 00 01 */ li r3, 1 -/* 801B0610 4E 80 00 20 */ blr -lbl_801B0614: -/* 801B0614 38 60 00 00 */ li r3, 0 -/* 801B0618 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/isInsectIconVisible__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/isInsectIconVisible__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 7793f43449..0000000000 --- a/asm/d/menu/d_menu_collect/isInsectIconVisible__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_801B071C: -/* 801B071C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B0720 7C 08 02 A6 */ mflr r0 -/* 801B0724 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B0728 48 02 96 25 */ bl getGetInsectNum__14dMenu_Insect_cFv -/* 801B072C 54 63 06 3E */ clrlwi r3, r3, 0x18 -/* 801B0730 30 03 FF FF */ addic r0, r3, -1 -/* 801B0734 7C 00 19 10 */ subfe r0, r0, r3 -/* 801B0738 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 801B073C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B0740 7C 08 03 A6 */ mtlr r0 -/* 801B0744 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B0748 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/isKeyCheck__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/isKeyCheck__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 21987149ad..0000000000 --- a/asm/d/menu/d_menu_collect/isKeyCheck__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_801B5F84: -/* 801B5F84 88 03 02 2C */ lbz r0, 0x22c(r3) -/* 801B5F88 28 00 00 00 */ cmplwi r0, 0 -/* 801B5F8C 40 82 00 10 */ bne lbl_801B5F9C -/* 801B5F90 88 03 02 5F */ lbz r0, 0x25f(r3) -/* 801B5F94 28 00 00 00 */ cmplwi r0, 0 -/* 801B5F98 41 82 00 0C */ beq lbl_801B5FA4 -lbl_801B5F9C: -/* 801B5F9C 38 60 00 01 */ li r3, 1 -/* 801B5FA0 4E 80 00 20 */ blr -lbl_801B5FA4: -/* 801B5FA4 38 60 00 00 */ li r3, 0 -/* 801B5FA8 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/isSkillIconVisible__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/isSkillIconVisible__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 4a1b4c8ff8..0000000000 --- a/asm/d/menu/d_menu_collect/isSkillIconVisible__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,68 +0,0 @@ -lbl_801B061C: -/* 801B061C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B0620 7C 08 02 A6 */ mflr r0 -/* 801B0624 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B0628 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B062C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801B0630 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801B0634 3B E3 07 F0 */ addi r31, r3, 0x7f0 -/* 801B0638 7F E3 FB 78 */ mr r3, r31 -/* 801B063C 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 801B0640 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 801B0644 A0 84 02 A4 */ lhz r4, 0x2a4(r4) -/* 801B0648 4B E8 43 75 */ bl isEventBit__11dSv_event_cCFUs -/* 801B064C 2C 03 00 00 */ cmpwi r3, 0 -/* 801B0650 40 82 00 AC */ bne lbl_801B06FC -/* 801B0654 7F E3 FB 78 */ mr r3, r31 -/* 801B0658 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 801B065C 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 801B0660 A0 84 02 A6 */ lhz r4, 0x2a6(r4) -/* 801B0664 4B E8 43 59 */ bl isEventBit__11dSv_event_cCFUs -/* 801B0668 2C 03 00 00 */ cmpwi r3, 0 -/* 801B066C 40 82 00 90 */ bne lbl_801B06FC -/* 801B0670 7F E3 FB 78 */ mr r3, r31 -/* 801B0674 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 801B0678 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 801B067C A0 84 02 A8 */ lhz r4, 0x2a8(r4) -/* 801B0680 4B E8 43 3D */ bl isEventBit__11dSv_event_cCFUs -/* 801B0684 2C 03 00 00 */ cmpwi r3, 0 -/* 801B0688 40 82 00 74 */ bne lbl_801B06FC -/* 801B068C 7F E3 FB 78 */ mr r3, r31 -/* 801B0690 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 801B0694 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 801B0698 A0 84 02 AA */ lhz r4, 0x2aa(r4) -/* 801B069C 4B E8 43 21 */ bl isEventBit__11dSv_event_cCFUs -/* 801B06A0 2C 03 00 00 */ cmpwi r3, 0 -/* 801B06A4 40 82 00 58 */ bne lbl_801B06FC -/* 801B06A8 7F E3 FB 78 */ mr r3, r31 -/* 801B06AC 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 801B06B0 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 801B06B4 A0 84 02 AC */ lhz r4, 0x2ac(r4) -/* 801B06B8 4B E8 43 05 */ bl isEventBit__11dSv_event_cCFUs -/* 801B06BC 2C 03 00 00 */ cmpwi r3, 0 -/* 801B06C0 40 82 00 3C */ bne lbl_801B06FC -/* 801B06C4 7F E3 FB 78 */ mr r3, r31 -/* 801B06C8 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 801B06CC 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 801B06D0 A0 84 02 AE */ lhz r4, 0x2ae(r4) -/* 801B06D4 4B E8 42 E9 */ bl isEventBit__11dSv_event_cCFUs -/* 801B06D8 2C 03 00 00 */ cmpwi r3, 0 -/* 801B06DC 40 82 00 20 */ bne lbl_801B06FC -/* 801B06E0 7F E3 FB 78 */ mr r3, r31 -/* 801B06E4 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 801B06E8 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 801B06EC A0 84 02 B0 */ lhz r4, 0x2b0(r4) -/* 801B06F0 4B E8 42 CD */ bl isEventBit__11dSv_event_cCFUs -/* 801B06F4 2C 03 00 00 */ cmpwi r3, 0 -/* 801B06F8 41 82 00 0C */ beq lbl_801B0704 -lbl_801B06FC: -/* 801B06FC 38 60 00 01 */ li r3, 1 -/* 801B0700 48 00 00 08 */ b lbl_801B0708 -lbl_801B0704: -/* 801B0704 38 60 00 00 */ li r3, 0 -lbl_801B0708: -/* 801B0708 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B070C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B0710 7C 08 03 A6 */ mtlr r0 -/* 801B0714 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B0718 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/letter_close_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/letter_close_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 565ed68a7f..0000000000 --- a/asm/d/menu/d_menu_collect/letter_close_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B54C8: -/* 801B54C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B54CC 7C 08 02 A6 */ mflr r0 -/* 801B54D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B54D4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B54D8 7C 7F 1B 78 */ mr r31, r3 -/* 801B54DC 38 80 00 00 */ li r4, 0 -/* 801B54E0 48 00 0A D5 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B54E4 7F E3 FB 78 */ mr r3, r31 -/* 801B54E8 38 80 00 00 */ li r4, 0 -/* 801B54EC 48 00 0B CD */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B54F0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B54F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B54F8 7C 08 03 A6 */ mtlr r0 -/* 801B54FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5500 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/letter_close_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/letter_close_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index decf91d294..0000000000 --- a/asm/d/menu/d_menu_collect/letter_close_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_801B5504: -/* 801B5504 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5508 7C 08 02 A6 */ mflr r0 -/* 801B550C 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5510 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5514 93 C1 00 08 */ stw r30, 8(r1) -/* 801B5518 7C 7E 1B 78 */ mr r30, r3 -/* 801B551C 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5520 4B E5 9C AD */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5524 7C 7F 1B 78 */ mr r31, r3 -/* 801B5528 80 7E 00 98 */ lwz r3, 0x98(r30) -/* 801B552C 88 03 03 6C */ lbz r0, 0x36c(r3) -/* 801B5530 28 00 00 03 */ cmplwi r0, 3 -/* 801B5534 40 82 00 08 */ bne lbl_801B553C -/* 801B5538 48 02 87 61 */ bl _close__14dMenu_Letter_cFv -lbl_801B553C: -/* 801B553C 80 7E 00 98 */ lwz r3, 0x98(r30) -/* 801B5540 88 03 03 6C */ lbz r0, 0x36c(r3) -/* 801B5544 28 00 00 00 */ cmplwi r0, 0 -/* 801B5548 40 82 00 18 */ bne lbl_801B5560 -/* 801B554C 38 00 00 00 */ li r0, 0 -/* 801B5550 98 1E 02 2C */ stb r0, 0x22c(r30) -/* 801B5554 38 00 00 FF */ li r0, 0xff -/* 801B5558 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 801B555C 98 03 00 B4 */ stb r0, 0xb4(r3) -lbl_801B5560: -/* 801B5560 7F E3 FB 78 */ mr r3, r31 -/* 801B5564 4B E5 9C 69 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5568 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B556C 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B5570 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5574 7C 08 03 A6 */ mtlr r0 -/* 801B5578 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B557C 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/letter_move_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/letter_move_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index ff8345cbf0..0000000000 --- a/asm/d/menu/d_menu_collect/letter_move_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B541C: -/* 801B541C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5420 7C 08 02 A6 */ mflr r0 -/* 801B5424 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5428 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B542C 7C 7F 1B 78 */ mr r31, r3 -/* 801B5430 38 80 04 0C */ li r4, 0x40c -/* 801B5434 48 00 0B 81 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B5438 7F E3 FB 78 */ mr r3, r31 -/* 801B543C 38 80 03 F9 */ li r4, 0x3f9 -/* 801B5440 48 00 0C 79 */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B5444 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5448 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B544C 7C 08 03 A6 */ mtlr r0 -/* 801B5450 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5454 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/letter_move_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/letter_move_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 0a7a0b1af1..0000000000 --- a/asm/d/menu/d_menu_collect/letter_move_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801B5458: -/* 801B5458 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B545C 7C 08 02 A6 */ mflr r0 -/* 801B5460 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5464 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5468 93 C1 00 08 */ stw r30, 8(r1) -/* 801B546C 7C 7E 1B 78 */ mr r30, r3 -/* 801B5470 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5474 4B E5 9D 59 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5478 7C 7F 1B 78 */ mr r31, r3 -/* 801B547C 80 7E 00 98 */ lwz r3, 0x98(r30) -/* 801B5480 88 03 03 6C */ lbz r0, 0x36c(r3) -/* 801B5484 28 00 00 02 */ cmplwi r0, 2 -/* 801B5488 40 82 00 08 */ bne lbl_801B5490 -/* 801B548C 48 02 7F E9 */ bl _move__14dMenu_Letter_cFv -lbl_801B5490: -/* 801B5490 80 7E 00 98 */ lwz r3, 0x98(r30) -/* 801B5494 88 03 03 6C */ lbz r0, 0x36c(r3) -/* 801B5498 28 00 00 03 */ cmplwi r0, 3 -/* 801B549C 40 82 00 0C */ bne lbl_801B54A8 -/* 801B54A0 38 00 00 09 */ li r0, 9 -/* 801B54A4 98 1E 02 2C */ stb r0, 0x22c(r30) -lbl_801B54A8: -/* 801B54A8 7F E3 FB 78 */ mr r3, r31 -/* 801B54AC 4B E5 9D 21 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B54B0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B54B4 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B54B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B54BC 7C 08 03 A6 */ mtlr r0 -/* 801B54C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B54C4 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/letter_open_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/letter_open_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 546ef8322b..0000000000 --- a/asm/d/menu/d_menu_collect/letter_open_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_801B5310: -/* 801B5310 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5314 7C 08 02 A6 */ mflr r0 -/* 801B5318 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B531C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5320 93 C1 00 08 */ stw r30, 8(r1) -/* 801B5324 7C 7E 1B 78 */ mr r30, r3 -/* 801B5328 80 63 00 08 */ lwz r3, 8(r3) -/* 801B532C 4B E5 9E A1 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5330 7C 7F 1B 78 */ mr r31, r3 -/* 801B5334 80 1E 00 98 */ lwz r0, 0x98(r30) -/* 801B5338 28 00 00 00 */ cmplwi r0, 0 -/* 801B533C 40 82 00 2C */ bne lbl_801B5368 -/* 801B5340 38 60 03 E8 */ li r3, 0x3e8 -/* 801B5344 48 11 99 09 */ bl __nw__FUl -/* 801B5348 7C 60 1B 79 */ or. r0, r3, r3 -/* 801B534C 41 82 00 18 */ beq lbl_801B5364 -/* 801B5350 80 9E 00 08 */ lwz r4, 8(r30) -/* 801B5354 80 BE 00 10 */ lwz r5, 0x10(r30) -/* 801B5358 80 DE 00 14 */ lwz r6, 0x14(r30) -/* 801B535C 48 02 7A 65 */ bl __ct__14dMenu_Letter_cFP10JKRExpHeapP9STControlP10CSTControl -/* 801B5360 7C 60 1B 78 */ mr r0, r3 -lbl_801B5364: -/* 801B5364 90 1E 00 98 */ stw r0, 0x98(r30) -lbl_801B5368: -/* 801B5368 7F C3 F3 78 */ mr r3, r30 -/* 801B536C 38 80 00 00 */ li r4, 0 -/* 801B5370 48 00 0C 45 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B5374 7F C3 F3 78 */ mr r3, r30 -/* 801B5378 38 80 00 00 */ li r4, 0 -/* 801B537C 48 00 0D 3D */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B5380 38 00 00 00 */ li r0, 0 -/* 801B5384 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 801B5388 98 03 00 B4 */ stb r0, 0xb4(r3) -/* 801B538C 7F E3 FB 78 */ mr r3, r31 -/* 801B5390 4B E5 9E 3D */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5394 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5398 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B539C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B53A0 7C 08 03 A6 */ mtlr r0 -/* 801B53A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B53A8 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/letter_open_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/letter_open_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index d1e64df406..0000000000 --- a/asm/d/menu/d_menu_collect/letter_open_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801B53AC: -/* 801B53AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B53B0 7C 08 02 A6 */ mflr r0 -/* 801B53B4 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B53B8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B53BC 93 C1 00 08 */ stw r30, 8(r1) -/* 801B53C0 7C 7E 1B 78 */ mr r30, r3 -/* 801B53C4 80 63 00 08 */ lwz r3, 8(r3) -/* 801B53C8 4B E5 9E 05 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B53CC 7C 7F 1B 78 */ mr r31, r3 -/* 801B53D0 80 7E 00 98 */ lwz r3, 0x98(r30) -/* 801B53D4 88 03 03 6C */ lbz r0, 0x36c(r3) -/* 801B53D8 28 00 00 01 */ cmplwi r0, 1 -/* 801B53DC 40 82 00 08 */ bne lbl_801B53E4 -/* 801B53E0 48 02 86 95 */ bl _open__14dMenu_Letter_cFv -lbl_801B53E4: -/* 801B53E4 80 7E 00 98 */ lwz r3, 0x98(r30) -/* 801B53E8 88 03 03 6C */ lbz r0, 0x36c(r3) -/* 801B53EC 28 00 00 02 */ cmplwi r0, 2 -/* 801B53F0 40 82 00 0C */ bne lbl_801B53FC -/* 801B53F4 38 00 00 08 */ li r0, 8 -/* 801B53F8 98 1E 02 2C */ stb r0, 0x22c(r30) -lbl_801B53FC: -/* 801B53FC 7F E3 FB 78 */ mr r3, r31 -/* 801B5400 4B E5 9D CD */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5404 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5408 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B540C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5410 7C 08 03 A6 */ mtlr r0 -/* 801B5414 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5418 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/option_close_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/option_close_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 5b6b4f985a..0000000000 --- a/asm/d/menu/d_menu_collect/option_close_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B5258: -/* 801B5258 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B525C 7C 08 02 A6 */ mflr r0 -/* 801B5260 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5264 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5268 7C 7F 1B 78 */ mr r31, r3 -/* 801B526C 38 80 00 00 */ li r4, 0 -/* 801B5270 48 00 0D 45 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B5274 7F E3 FB 78 */ mr r3, r31 -/* 801B5278 38 80 00 00 */ li r4, 0 -/* 801B527C 48 00 0E 3D */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B5280 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5284 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5288 7C 08 03 A6 */ mtlr r0 -/* 801B528C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5290 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/option_close_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/option_close_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index e5edc1536d..0000000000 --- a/asm/d/menu/d_menu_collect/option_close_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_801B5294: -/* 801B5294 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5298 7C 08 02 A6 */ mflr r0 -/* 801B529C 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B52A0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B52A4 93 C1 00 08 */ stw r30, 8(r1) -/* 801B52A8 7C 7E 1B 78 */ mr r30, r3 -/* 801B52AC 80 63 00 08 */ lwz r3, 8(r3) -/* 801B52B0 4B E5 9F 1D */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B52B4 7C 7F 1B 78 */ mr r31, r3 -/* 801B52B8 80 7E 00 94 */ lwz r3, 0x94(r30) -/* 801B52BC 88 03 03 EC */ lbz r0, 0x3ec(r3) -/* 801B52C0 28 00 00 03 */ cmplwi r0, 3 -/* 801B52C4 40 82 00 08 */ bne lbl_801B52CC -/* 801B52C8 48 02 EB 19 */ bl _close__14dMenu_Option_cFv -lbl_801B52CC: -/* 801B52CC 80 7E 00 94 */ lwz r3, 0x94(r30) -/* 801B52D0 88 03 03 EC */ lbz r0, 0x3ec(r3) -/* 801B52D4 28 00 00 00 */ cmplwi r0, 0 -/* 801B52D8 40 82 00 18 */ bne lbl_801B52F0 -/* 801B52DC 38 00 00 00 */ li r0, 0 -/* 801B52E0 98 1E 02 2C */ stb r0, 0x22c(r30) -/* 801B52E4 38 00 00 FF */ li r0, 0xff -/* 801B52E8 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 801B52EC 98 03 00 B4 */ stb r0, 0xb4(r3) -lbl_801B52F0: -/* 801B52F0 7F E3 FB 78 */ mr r3, r31 -/* 801B52F4 4B E5 9E D9 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B52F8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B52FC 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B5300 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5304 7C 08 03 A6 */ mtlr r0 -/* 801B5308 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B530C 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/option_move_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/option_move_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index cbe9e5ef18..0000000000 --- a/asm/d/menu/d_menu_collect/option_move_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B51AC: -/* 801B51AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B51B0 7C 08 02 A6 */ mflr r0 -/* 801B51B4 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B51B8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B51BC 7C 7F 1B 78 */ mr r31, r3 -/* 801B51C0 38 80 04 0C */ li r4, 0x40c -/* 801B51C4 48 00 0D F1 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B51C8 7F E3 FB 78 */ mr r3, r31 -/* 801B51CC 38 80 03 F9 */ li r4, 0x3f9 -/* 801B51D0 48 00 0E E9 */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B51D4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B51D8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B51DC 7C 08 03 A6 */ mtlr r0 -/* 801B51E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B51E4 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/option_move_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/option_move_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index ae5529423a..0000000000 --- a/asm/d/menu/d_menu_collect/option_move_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801B51E8: -/* 801B51E8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B51EC 7C 08 02 A6 */ mflr r0 -/* 801B51F0 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B51F4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B51F8 93 C1 00 08 */ stw r30, 8(r1) -/* 801B51FC 7C 7E 1B 78 */ mr r30, r3 -/* 801B5200 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5204 4B E5 9F C9 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5208 7C 7F 1B 78 */ mr r31, r3 -/* 801B520C 80 7E 00 94 */ lwz r3, 0x94(r30) -/* 801B5210 88 03 03 EC */ lbz r0, 0x3ec(r3) -/* 801B5214 28 00 00 02 */ cmplwi r0, 2 -/* 801B5218 40 82 00 08 */ bne lbl_801B5220 -/* 801B521C 48 02 E1 ED */ bl _move__14dMenu_Option_cFv -lbl_801B5220: -/* 801B5220 80 7E 00 94 */ lwz r3, 0x94(r30) -/* 801B5224 88 03 03 EC */ lbz r0, 0x3ec(r3) -/* 801B5228 28 00 00 03 */ cmplwi r0, 3 -/* 801B522C 40 82 00 0C */ bne lbl_801B5238 -/* 801B5230 38 00 00 06 */ li r0, 6 -/* 801B5234 98 1E 02 2C */ stb r0, 0x22c(r30) -lbl_801B5238: -/* 801B5238 7F E3 FB 78 */ mr r3, r31 -/* 801B523C 4B E5 9F 91 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5240 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5244 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B5248 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B524C 7C 08 03 A6 */ mtlr r0 -/* 801B5250 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5254 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/option_open_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/option_open_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 118220e7ae..0000000000 --- a/asm/d/menu/d_menu_collect/option_open_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_801B5094: -/* 801B5094 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5098 7C 08 02 A6 */ mflr r0 -/* 801B509C 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B50A0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B50A4 93 C1 00 08 */ stw r30, 8(r1) -/* 801B50A8 7C 7E 1B 78 */ mr r30, r3 -/* 801B50AC 80 63 00 08 */ lwz r3, 8(r3) -/* 801B50B0 4B E5 A1 1D */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B50B4 7C 7F 1B 78 */ mr r31, r3 -/* 801B50B8 80 1E 00 94 */ lwz r0, 0x94(r30) -/* 801B50BC 28 00 00 00 */ cmplwi r0, 0 -/* 801B50C0 40 82 00 30 */ bne lbl_801B50F0 -/* 801B50C4 38 60 04 0C */ li r3, 0x40c -/* 801B50C8 48 11 9B 85 */ bl __nw__FUl -/* 801B50CC 7C 60 1B 79 */ or. r0, r3, r3 -/* 801B50D0 41 82 00 1C */ beq lbl_801B50EC -/* 801B50D4 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801B50D8 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801B50DC 80 84 5C B8 */ lwz r4, 0x5cb8(r4) -/* 801B50E0 80 BE 00 10 */ lwz r5, 0x10(r30) -/* 801B50E4 48 02 CE 2D */ bl __ct__14dMenu_Option_cFP10JKRArchiveP9STControl -/* 801B50E8 7C 60 1B 78 */ mr r0, r3 -lbl_801B50EC: -/* 801B50EC 90 1E 00 94 */ stw r0, 0x94(r30) -lbl_801B50F0: -/* 801B50F0 80 7E 00 94 */ lwz r3, 0x94(r30) -/* 801B50F4 48 03 31 1D */ bl initialize__14dMenu_Option_cFv -/* 801B50F8 7F C3 F3 78 */ mr r3, r30 -/* 801B50FC 38 80 00 00 */ li r4, 0 -/* 801B5100 48 00 0E B5 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B5104 7F C3 F3 78 */ mr r3, r30 -/* 801B5108 38 80 00 00 */ li r4, 0 -/* 801B510C 48 00 0F AD */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B5110 38 00 00 00 */ li r0, 0 -/* 801B5114 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 801B5118 98 03 00 B4 */ stb r0, 0xb4(r3) -/* 801B511C 7F E3 FB 78 */ mr r3, r31 -/* 801B5120 4B E5 A0 AD */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5124 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5128 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B512C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5130 7C 08 03 A6 */ mtlr r0 -/* 801B5134 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5138 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/option_open_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/option_open_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 787895b7a1..0000000000 --- a/asm/d/menu/d_menu_collect/option_open_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801B513C: -/* 801B513C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5140 7C 08 02 A6 */ mflr r0 -/* 801B5144 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5148 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B514C 93 C1 00 08 */ stw r30, 8(r1) -/* 801B5150 7C 7E 1B 78 */ mr r30, r3 -/* 801B5154 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5158 4B E5 A0 75 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B515C 7C 7F 1B 78 */ mr r31, r3 -/* 801B5160 80 7E 00 94 */ lwz r3, 0x94(r30) -/* 801B5164 88 03 03 EC */ lbz r0, 0x3ec(r3) -/* 801B5168 28 00 00 01 */ cmplwi r0, 1 -/* 801B516C 40 82 00 08 */ bne lbl_801B5174 -/* 801B5170 48 02 EA 29 */ bl _open__14dMenu_Option_cFv -lbl_801B5174: -/* 801B5174 80 7E 00 94 */ lwz r3, 0x94(r30) -/* 801B5178 88 03 03 EC */ lbz r0, 0x3ec(r3) -/* 801B517C 28 00 00 02 */ cmplwi r0, 2 -/* 801B5180 40 82 00 0C */ bne lbl_801B518C -/* 801B5184 38 00 00 05 */ li r0, 5 -/* 801B5188 98 1E 02 2C */ stb r0, 0x22c(r30) -lbl_801B518C: -/* 801B518C 7F E3 FB 78 */ mr r3, r31 -/* 801B5190 4B E5 A0 3D */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5194 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5198 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B519C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B51A0 7C 08 03 A6 */ mtlr r0 -/* 801B51A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B51A8 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/save_close_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/save_close_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index eeb29a09db..0000000000 --- a/asm/d/menu/d_menu_collect/save_close_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B4FDC: -/* 801B4FDC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B4FE0 7C 08 02 A6 */ mflr r0 -/* 801B4FE4 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B4FE8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B4FEC 7C 7F 1B 78 */ mr r31, r3 -/* 801B4FF0 38 80 00 00 */ li r4, 0 -/* 801B4FF4 48 00 0F C1 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B4FF8 7F E3 FB 78 */ mr r3, r31 -/* 801B4FFC 38 80 00 00 */ li r4, 0 -/* 801B5000 48 00 10 B9 */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B5004 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5008 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B500C 7C 08 03 A6 */ mtlr r0 -/* 801B5010 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5014 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/save_close_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/save_close_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 63d2eeb414..0000000000 --- a/asm/d/menu/d_menu_collect/save_close_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_801B5018: -/* 801B5018 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B501C 7C 08 02 A6 */ mflr r0 -/* 801B5020 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5024 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5028 93 C1 00 08 */ stw r30, 8(r1) -/* 801B502C 7C 7E 1B 78 */ mr r30, r3 -/* 801B5030 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5034 4B E5 A1 99 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5038 7C 7F 1B 78 */ mr r31, r3 -/* 801B503C 80 7E 00 90 */ lwz r3, 0x90(r30) -/* 801B5040 88 03 01 BA */ lbz r0, 0x1ba(r3) -/* 801B5044 28 00 00 03 */ cmplwi r0, 3 -/* 801B5048 40 82 00 08 */ bne lbl_801B5050 -/* 801B504C 48 03 BA C5 */ bl _close__12dMenu_save_cFv -lbl_801B5050: -/* 801B5050 80 7E 00 90 */ lwz r3, 0x90(r30) -/* 801B5054 88 03 01 BA */ lbz r0, 0x1ba(r3) -/* 801B5058 28 00 00 00 */ cmplwi r0, 0 -/* 801B505C 40 82 00 18 */ bne lbl_801B5074 -/* 801B5060 38 00 00 00 */ li r0, 0 -/* 801B5064 98 1E 02 2C */ stb r0, 0x22c(r30) -/* 801B5068 38 00 00 FF */ li r0, 0xff -/* 801B506C 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 801B5070 98 03 00 B4 */ stb r0, 0xb4(r3) -lbl_801B5074: -/* 801B5074 7F E3 FB 78 */ mr r3, r31 -/* 801B5078 4B E5 A1 55 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B507C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5080 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B5084 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5088 7C 08 03 A6 */ mtlr r0 -/* 801B508C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5090 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/save_move_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/save_move_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index c5395c8648..0000000000 --- a/asm/d/menu/d_menu_collect/save_move_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B4F30: -/* 801B4F30 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B4F34 7C 08 02 A6 */ mflr r0 -/* 801B4F38 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B4F3C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B4F40 7C 7F 1B 78 */ mr r31, r3 -/* 801B4F44 38 80 04 0C */ li r4, 0x40c -/* 801B4F48 48 00 10 6D */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B4F4C 7F E3 FB 78 */ mr r3, r31 -/* 801B4F50 38 80 00 00 */ li r4, 0 -/* 801B4F54 48 00 11 65 */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B4F58 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B4F5C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B4F60 7C 08 03 A6 */ mtlr r0 -/* 801B4F64 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B4F68 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/save_move_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/save_move_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index f30b1fc94d..0000000000 --- a/asm/d/menu/d_menu_collect/save_move_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801B4F6C: -/* 801B4F6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B4F70 7C 08 02 A6 */ mflr r0 -/* 801B4F74 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B4F78 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B4F7C 93 C1 00 08 */ stw r30, 8(r1) -/* 801B4F80 7C 7E 1B 78 */ mr r30, r3 -/* 801B4F84 80 63 00 08 */ lwz r3, 8(r3) -/* 801B4F88 4B E5 A2 45 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B4F8C 7C 7F 1B 78 */ mr r31, r3 -/* 801B4F90 80 7E 00 90 */ lwz r3, 0x90(r30) -/* 801B4F94 88 03 01 BA */ lbz r0, 0x1ba(r3) -/* 801B4F98 28 00 00 02 */ cmplwi r0, 2 -/* 801B4F9C 40 82 00 08 */ bne lbl_801B4FA4 -/* 801B4FA0 48 03 C0 A9 */ bl _move__12dMenu_save_cFv -lbl_801B4FA4: -/* 801B4FA4 80 7E 00 90 */ lwz r3, 0x90(r30) -/* 801B4FA8 88 03 01 BA */ lbz r0, 0x1ba(r3) -/* 801B4FAC 28 00 00 03 */ cmplwi r0, 3 -/* 801B4FB0 40 82 00 0C */ bne lbl_801B4FBC -/* 801B4FB4 38 00 00 03 */ li r0, 3 -/* 801B4FB8 98 1E 02 2C */ stb r0, 0x22c(r30) -lbl_801B4FBC: -/* 801B4FBC 7F E3 FB 78 */ mr r3, r31 -/* 801B4FC0 4B E5 A2 0D */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B4FC4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B4FC8 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B4FCC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B4FD0 7C 08 03 A6 */ mtlr r0 -/* 801B4FD4 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B4FD8 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/save_open_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/save_open_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 483b6af0a4..0000000000 --- a/asm/d/menu/d_menu_collect/save_open_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_801B4E14: -/* 801B4E14 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B4E18 7C 08 02 A6 */ mflr r0 -/* 801B4E1C 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B4E20 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B4E24 93 C1 00 08 */ stw r30, 8(r1) -/* 801B4E28 7C 7E 1B 78 */ mr r30, r3 -/* 801B4E2C 80 63 00 08 */ lwz r3, 8(r3) -/* 801B4E30 4B E5 A3 9D */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B4E34 7C 7F 1B 78 */ mr r31, r3 -/* 801B4E38 80 1E 00 90 */ lwz r0, 0x90(r30) -/* 801B4E3C 28 00 00 00 */ cmplwi r0, 0 -/* 801B4E40 40 82 00 20 */ bne lbl_801B4E60 -/* 801B4E44 38 60 21 A4 */ li r3, 0x21a4 -/* 801B4E48 48 11 9E 05 */ bl __nw__FUl -/* 801B4E4C 7C 60 1B 79 */ or. r0, r3, r3 -/* 801B4E50 41 82 00 0C */ beq lbl_801B4E5C -/* 801B4E54 48 03 A8 4D */ bl __ct__12dMenu_save_cFv -/* 801B4E58 7C 60 1B 78 */ mr r0, r3 -lbl_801B4E5C: -/* 801B4E5C 90 1E 00 90 */ stw r0, 0x90(r30) -lbl_801B4E60: -/* 801B4E60 38 00 00 01 */ li r0, 1 -/* 801B4E64 80 7E 00 90 */ lwz r3, 0x90(r30) -/* 801B4E68 98 03 01 BC */ stb r0, 0x1bc(r3) -/* 801B4E6C 80 7E 00 90 */ lwz r3, 0x90(r30) -/* 801B4E70 48 03 A9 3D */ bl _create__12dMenu_save_cFv -/* 801B4E74 80 7E 00 90 */ lwz r3, 0x90(r30) -/* 801B4E78 48 03 BA C1 */ bl initialize__12dMenu_save_cFv -/* 801B4E7C 7F C3 F3 78 */ mr r3, r30 -/* 801B4E80 38 80 00 00 */ li r4, 0 -/* 801B4E84 48 00 11 31 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B4E88 7F C3 F3 78 */ mr r3, r30 -/* 801B4E8C 38 80 00 00 */ li r4, 0 -/* 801B4E90 48 00 12 29 */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B4E94 38 00 00 00 */ li r0, 0 -/* 801B4E98 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 801B4E9C 98 03 00 B4 */ stb r0, 0xb4(r3) -/* 801B4EA0 7F E3 FB 78 */ mr r3, r31 -/* 801B4EA4 4B E5 A3 29 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B4EA8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B4EAC 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B4EB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B4EB4 7C 08 03 A6 */ mtlr r0 -/* 801B4EB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B4EBC 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/save_open_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/save_open_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index d26672b559..0000000000 --- a/asm/d/menu/d_menu_collect/save_open_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801B4EC0: -/* 801B4EC0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B4EC4 7C 08 02 A6 */ mflr r0 -/* 801B4EC8 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B4ECC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B4ED0 93 C1 00 08 */ stw r30, 8(r1) -/* 801B4ED4 7C 7E 1B 78 */ mr r30, r3 -/* 801B4ED8 80 63 00 08 */ lwz r3, 8(r3) -/* 801B4EDC 4B E5 A2 F1 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B4EE0 7C 7F 1B 78 */ mr r31, r3 -/* 801B4EE4 80 7E 00 90 */ lwz r3, 0x90(r30) -/* 801B4EE8 88 03 01 BA */ lbz r0, 0x1ba(r3) -/* 801B4EEC 28 00 00 01 */ cmplwi r0, 1 -/* 801B4EF0 40 82 00 08 */ bne lbl_801B4EF8 -/* 801B4EF4 48 03 BA B9 */ bl _open__12dMenu_save_cFv -lbl_801B4EF8: -/* 801B4EF8 80 7E 00 90 */ lwz r3, 0x90(r30) -/* 801B4EFC 88 03 01 BA */ lbz r0, 0x1ba(r3) -/* 801B4F00 28 00 00 02 */ cmplwi r0, 2 -/* 801B4F04 40 82 00 0C */ bne lbl_801B4F10 -/* 801B4F08 38 00 00 02 */ li r0, 2 -/* 801B4F0C 98 1E 02 2C */ stb r0, 0x22c(r30) -lbl_801B4F10: -/* 801B4F10 7F E3 FB 78 */ mr r3, r31 -/* 801B4F14 4B E5 A2 B9 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B4F18 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B4F1C 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B4F20 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B4F24 7C 08 03 A6 */ mtlr r0 -/* 801B4F28 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B4F2C 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/setArrowMaxNum__17dMenu_Collect2D_cFUc.s b/asm/d/menu/d_menu_collect/setArrowMaxNum__17dMenu_Collect2D_cFUc.s deleted file mode 100644 index 400934d8e2..0000000000 --- a/asm/d/menu/d_menu_collect/setArrowMaxNum__17dMenu_Collect2D_cFUc.s +++ /dev/null @@ -1,165 +0,0 @@ -lbl_801B30C8: -/* 801B30C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B30CC 7C 08 02 A6 */ mflr r0 -/* 801B30D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B30D4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B30D8 7C 7F 1B 78 */ mr r31, r3 -/* 801B30DC 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 801B30E0 2C 00 00 3C */ cmpwi r0, 0x3c -/* 801B30E4 41 82 01 3C */ beq lbl_801B3220 -/* 801B30E8 40 80 00 1C */ bge lbl_801B3104 -/* 801B30EC 2C 00 00 1E */ cmpwi r0, 0x1e -/* 801B30F0 41 82 00 A8 */ beq lbl_801B3198 -/* 801B30F4 40 80 02 38 */ bge lbl_801B332C -/* 801B30F8 2C 00 00 00 */ cmpwi r0, 0 -/* 801B30FC 41 82 00 14 */ beq lbl_801B3110 -/* 801B3100 48 00 02 2C */ b lbl_801B332C -lbl_801B3104: -/* 801B3104 2C 00 00 64 */ cmpwi r0, 0x64 -/* 801B3108 41 82 01 A0 */ beq lbl_801B32A8 -/* 801B310C 48 00 02 20 */ b lbl_801B332C -lbl_801B3110: -/* 801B3110 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B3114 3C 80 5F 30 */ lis r4, 0x5F30 /* 0x5F305F30@ha */ -/* 801B3118 38 C4 5F 30 */ addi r6, r4, 0x5F30 /* 0x5F305F30@l */ -/* 801B311C 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B3120 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B3124 81 83 00 00 */ lwz r12, 0(r3) -/* 801B3128 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B312C 7D 89 03 A6 */ mtctr r12 -/* 801B3130 4E 80 04 21 */ bctrl -/* 801B3134 38 00 00 00 */ li r0, 0 -/* 801B3138 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B313C 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B3140 3C 80 5F 30 */ lis r4, 0x5F30 /* 0x5F305F31@ha */ -/* 801B3144 38 C4 5F 31 */ addi r6, r4, 0x5F31 /* 0x5F305F31@l */ -/* 801B3148 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B314C 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B3150 81 83 00 00 */ lwz r12, 0(r3) -/* 801B3154 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B3158 7D 89 03 A6 */ mtctr r12 -/* 801B315C 4E 80 04 21 */ bctrl -/* 801B3160 38 00 00 00 */ li r0, 0 -/* 801B3164 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B3168 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B316C 3C 80 5F 30 */ lis r4, 0x5F30 /* 0x5F305F32@ha */ -/* 801B3170 38 C4 5F 32 */ addi r6, r4, 0x5F32 /* 0x5F305F32@l */ -/* 801B3174 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B3178 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B317C 81 83 00 00 */ lwz r12, 0(r3) -/* 801B3180 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B3184 7D 89 03 A6 */ mtctr r12 -/* 801B3188 4E 80 04 21 */ bctrl -/* 801B318C 38 00 00 00 */ li r0, 0 -/* 801B3190 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B3194 48 00 01 98 */ b lbl_801B332C -lbl_801B3198: -/* 801B3198 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B319C 3C 80 5F 30 */ lis r4, 0x5F30 /* 0x5F305F30@ha */ -/* 801B31A0 38 C4 5F 30 */ addi r6, r4, 0x5F30 /* 0x5F305F30@l */ -/* 801B31A4 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B31A8 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B31AC 81 83 00 00 */ lwz r12, 0(r3) -/* 801B31B0 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B31B4 7D 89 03 A6 */ mtctr r12 -/* 801B31B8 4E 80 04 21 */ bctrl -/* 801B31BC 38 00 00 01 */ li r0, 1 -/* 801B31C0 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B31C4 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B31C8 3C 80 5F 30 */ lis r4, 0x5F30 /* 0x5F305F31@ha */ -/* 801B31CC 38 C4 5F 31 */ addi r6, r4, 0x5F31 /* 0x5F305F31@l */ -/* 801B31D0 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B31D4 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B31D8 81 83 00 00 */ lwz r12, 0(r3) -/* 801B31DC 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B31E0 7D 89 03 A6 */ mtctr r12 -/* 801B31E4 4E 80 04 21 */ bctrl -/* 801B31E8 38 00 00 00 */ li r0, 0 -/* 801B31EC 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B31F0 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B31F4 3C 80 5F 30 */ lis r4, 0x5F30 /* 0x5F305F32@ha */ -/* 801B31F8 38 C4 5F 32 */ addi r6, r4, 0x5F32 /* 0x5F305F32@l */ -/* 801B31FC 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B3200 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B3204 81 83 00 00 */ lwz r12, 0(r3) -/* 801B3208 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B320C 7D 89 03 A6 */ mtctr r12 -/* 801B3210 4E 80 04 21 */ bctrl -/* 801B3214 38 00 00 00 */ li r0, 0 -/* 801B3218 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B321C 48 00 01 10 */ b lbl_801B332C -lbl_801B3220: -/* 801B3220 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B3224 3C 80 5F 30 */ lis r4, 0x5F30 /* 0x5F305F30@ha */ -/* 801B3228 38 C4 5F 30 */ addi r6, r4, 0x5F30 /* 0x5F305F30@l */ -/* 801B322C 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B3230 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B3234 81 83 00 00 */ lwz r12, 0(r3) -/* 801B3238 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B323C 7D 89 03 A6 */ mtctr r12 -/* 801B3240 4E 80 04 21 */ bctrl -/* 801B3244 38 00 00 00 */ li r0, 0 -/* 801B3248 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B324C 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B3250 3C 80 5F 30 */ lis r4, 0x5F30 /* 0x5F305F31@ha */ -/* 801B3254 38 C4 5F 31 */ addi r6, r4, 0x5F31 /* 0x5F305F31@l */ -/* 801B3258 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B325C 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B3260 81 83 00 00 */ lwz r12, 0(r3) -/* 801B3264 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B3268 7D 89 03 A6 */ mtctr r12 -/* 801B326C 4E 80 04 21 */ bctrl -/* 801B3270 38 00 00 01 */ li r0, 1 -/* 801B3274 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B3278 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B327C 3C 80 5F 30 */ lis r4, 0x5F30 /* 0x5F305F32@ha */ -/* 801B3280 38 C4 5F 32 */ addi r6, r4, 0x5F32 /* 0x5F305F32@l */ -/* 801B3284 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B3288 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B328C 81 83 00 00 */ lwz r12, 0(r3) -/* 801B3290 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B3294 7D 89 03 A6 */ mtctr r12 -/* 801B3298 4E 80 04 21 */ bctrl -/* 801B329C 38 00 00 00 */ li r0, 0 -/* 801B32A0 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B32A4 48 00 00 88 */ b lbl_801B332C -lbl_801B32A8: -/* 801B32A8 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B32AC 3C 80 5F 30 */ lis r4, 0x5F30 /* 0x5F305F30@ha */ -/* 801B32B0 38 C4 5F 30 */ addi r6, r4, 0x5F30 /* 0x5F305F30@l */ -/* 801B32B4 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B32B8 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B32BC 81 83 00 00 */ lwz r12, 0(r3) -/* 801B32C0 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B32C4 7D 89 03 A6 */ mtctr r12 -/* 801B32C8 4E 80 04 21 */ bctrl -/* 801B32CC 38 00 00 00 */ li r0, 0 -/* 801B32D0 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B32D4 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B32D8 3C 80 5F 30 */ lis r4, 0x5F30 /* 0x5F305F31@ha */ -/* 801B32DC 38 C4 5F 31 */ addi r6, r4, 0x5F31 /* 0x5F305F31@l */ -/* 801B32E0 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B32E4 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B32E8 81 83 00 00 */ lwz r12, 0(r3) -/* 801B32EC 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B32F0 7D 89 03 A6 */ mtctr r12 -/* 801B32F4 4E 80 04 21 */ bctrl -/* 801B32F8 38 00 00 00 */ li r0, 0 -/* 801B32FC 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B3300 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B3304 3C 80 5F 30 */ lis r4, 0x5F30 /* 0x5F305F32@ha */ -/* 801B3308 38 C4 5F 32 */ addi r6, r4, 0x5F32 /* 0x5F305F32@l */ -/* 801B330C 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B3310 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B3314 81 83 00 00 */ lwz r12, 0(r3) -/* 801B3318 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B331C 7D 89 03 A6 */ mtctr r12 -/* 801B3320 4E 80 04 21 */ bctrl -/* 801B3324 38 00 00 01 */ li r0, 1 -/* 801B3328 98 03 00 B0 */ stb r0, 0xb0(r3) -lbl_801B332C: -/* 801B332C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B3330 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B3334 7C 08 03 A6 */ mtlr r0 -/* 801B3338 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B333C 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/setItemNameStringNull__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/setItemNameStringNull__17dMenu_Collect2D_cFv.s deleted file mode 100644 index eb35d50936..0000000000 --- a/asm/d/menu/d_menu_collect/setItemNameStringNull__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,69 +0,0 @@ -lbl_801B6344: -/* 801B6344 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B6348 7C 08 02 A6 */ mflr r0 -/* 801B634C 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B6350 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B6354 7C 7F 1B 78 */ mr r31, r3 -/* 801B6358 38 00 00 00 */ li r0, 0 -/* 801B635C B0 03 01 82 */ sth r0, 0x182(r3) -/* 801B6360 80 63 00 18 */ lwz r3, 0x18(r3) -/* 801B6364 3C 80 5F 6E */ lis r4, 0x5F6E /* 0x5F6E3034@ha */ -/* 801B6368 38 C4 30 34 */ addi r6, r4, 0x3034 /* 0x5F6E3034@l */ -/* 801B636C 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B6370 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B6374 81 83 00 00 */ lwz r12, 0(r3) -/* 801B6378 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B637C 7D 89 03 A6 */ mtctr r12 -/* 801B6380 4E 80 04 21 */ bctrl -/* 801B6384 48 14 A2 D5 */ bl getStringPtr__10J2DTextBoxCFv -/* 801B6388 3C 80 80 39 */ lis r4, d_menu_d_menu_collect__stringBase0@ha /* 0x80395330@ha */ -/* 801B638C 38 84 53 30 */ addi r4, r4, d_menu_d_menu_collect__stringBase0@l /* 0x80395330@l */ -/* 801B6390 38 84 00 55 */ addi r4, r4, 0x55 -/* 801B6394 48 1B 27 99 */ bl strcpy -/* 801B6398 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B639C 3C 80 5F 6E */ lis r4, 0x5F6E /* 0x5F6E3035@ha */ -/* 801B63A0 38 C4 30 35 */ addi r6, r4, 0x3035 /* 0x5F6E3035@l */ -/* 801B63A4 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B63A8 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B63AC 81 83 00 00 */ lwz r12, 0(r3) -/* 801B63B0 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B63B4 7D 89 03 A6 */ mtctr r12 -/* 801B63B8 4E 80 04 21 */ bctrl -/* 801B63BC 48 14 A2 9D */ bl getStringPtr__10J2DTextBoxCFv -/* 801B63C0 3C 80 80 39 */ lis r4, d_menu_d_menu_collect__stringBase0@ha /* 0x80395330@ha */ -/* 801B63C4 38 84 53 30 */ addi r4, r4, d_menu_d_menu_collect__stringBase0@l /* 0x80395330@l */ -/* 801B63C8 38 84 00 55 */ addi r4, r4, 0x55 -/* 801B63CC 48 1B 27 61 */ bl strcpy -/* 801B63D0 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B63D4 3C 80 5F 6E */ lis r4, 0x5F6E /* 0x5F6E3036@ha */ -/* 801B63D8 38 C4 30 36 */ addi r6, r4, 0x3036 /* 0x5F6E3036@l */ -/* 801B63DC 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B63E0 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B63E4 81 83 00 00 */ lwz r12, 0(r3) -/* 801B63E8 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B63EC 7D 89 03 A6 */ mtctr r12 -/* 801B63F0 4E 80 04 21 */ bctrl -/* 801B63F4 48 14 A2 65 */ bl getStringPtr__10J2DTextBoxCFv -/* 801B63F8 3C 80 80 39 */ lis r4, d_menu_d_menu_collect__stringBase0@ha /* 0x80395330@ha */ -/* 801B63FC 38 84 53 30 */ addi r4, r4, d_menu_d_menu_collect__stringBase0@l /* 0x80395330@l */ -/* 801B6400 38 84 00 55 */ addi r4, r4, 0x55 -/* 801B6404 48 1B 27 29 */ bl strcpy -/* 801B6408 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B640C 3C 80 5F 6E */ lis r4, 0x5F6E /* 0x5F6E3037@ha */ -/* 801B6410 38 C4 30 37 */ addi r6, r4, 0x3037 /* 0x5F6E3037@l */ -/* 801B6414 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B6418 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B641C 81 83 00 00 */ lwz r12, 0(r3) -/* 801B6420 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B6424 7D 89 03 A6 */ mtctr r12 -/* 801B6428 4E 80 04 21 */ bctrl -/* 801B642C 48 14 A2 2D */ bl getStringPtr__10J2DTextBoxCFv -/* 801B6430 3C 80 80 39 */ lis r4, d_menu_d_menu_collect__stringBase0@ha /* 0x80395330@ha */ -/* 801B6434 38 84 53 30 */ addi r4, r4, d_menu_d_menu_collect__stringBase0@l /* 0x80395330@l */ -/* 801B6438 38 84 00 55 */ addi r4, r4, 0x55 -/* 801B643C 48 1B 26 F1 */ bl strcpy -/* 801B6440 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B6444 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B6448 7C 08 03 A6 */ mtlr r0 -/* 801B644C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B6450 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/setWalletMaxNum__17dMenu_Collect2D_cFUs.s b/asm/d/menu/d_menu_collect/setWalletMaxNum__17dMenu_Collect2D_cFUs.s deleted file mode 100644 index e5135466a1..0000000000 --- a/asm/d/menu/d_menu_collect/setWalletMaxNum__17dMenu_Collect2D_cFUs.s +++ /dev/null @@ -1,127 +0,0 @@ -lbl_801B3340: -/* 801B3340 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B3344 7C 08 02 A6 */ mflr r0 -/* 801B3348 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B334C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B3350 7C 7F 1B 78 */ mr r31, r3 -/* 801B3354 54 80 04 3E */ clrlwi r0, r4, 0x10 -/* 801B3358 2C 00 02 58 */ cmpwi r0, 0x258 -/* 801B335C 41 82 00 A8 */ beq lbl_801B3404 -/* 801B3360 40 80 00 10 */ bge lbl_801B3370 -/* 801B3364 2C 00 01 2C */ cmpwi r0, 0x12c -/* 801B3368 41 82 00 14 */ beq lbl_801B337C -/* 801B336C 48 00 01 A4 */ b lbl_801B3510 -lbl_801B3370: -/* 801B3370 2C 00 03 E8 */ cmpwi r0, 0x3e8 -/* 801B3374 41 82 01 18 */ beq lbl_801B348C -/* 801B3378 48 00 01 98 */ b lbl_801B3510 -lbl_801B337C: -/* 801B337C 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B3380 3C 80 5F 31 */ lis r4, 0x5F31 /* 0x5F315F30@ha */ -/* 801B3384 38 C4 5F 30 */ addi r6, r4, 0x5F30 /* 0x5F315F30@l */ -/* 801B3388 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B338C 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B3390 81 83 00 00 */ lwz r12, 0(r3) -/* 801B3394 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B3398 7D 89 03 A6 */ mtctr r12 -/* 801B339C 4E 80 04 21 */ bctrl -/* 801B33A0 38 00 00 01 */ li r0, 1 -/* 801B33A4 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B33A8 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B33AC 3C 80 5F 31 */ lis r4, 0x5F31 /* 0x5F315F31@ha */ -/* 801B33B0 38 C4 5F 31 */ addi r6, r4, 0x5F31 /* 0x5F315F31@l */ -/* 801B33B4 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B33B8 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B33BC 81 83 00 00 */ lwz r12, 0(r3) -/* 801B33C0 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B33C4 7D 89 03 A6 */ mtctr r12 -/* 801B33C8 4E 80 04 21 */ bctrl -/* 801B33CC 38 00 00 00 */ li r0, 0 -/* 801B33D0 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B33D4 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B33D8 3C 80 5F 31 */ lis r4, 0x5F31 /* 0x5F315F32@ha */ -/* 801B33DC 38 C4 5F 32 */ addi r6, r4, 0x5F32 /* 0x5F315F32@l */ -/* 801B33E0 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B33E4 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B33E8 81 83 00 00 */ lwz r12, 0(r3) -/* 801B33EC 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B33F0 7D 89 03 A6 */ mtctr r12 -/* 801B33F4 4E 80 04 21 */ bctrl -/* 801B33F8 38 00 00 00 */ li r0, 0 -/* 801B33FC 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B3400 48 00 01 10 */ b lbl_801B3510 -lbl_801B3404: -/* 801B3404 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B3408 3C 80 5F 31 */ lis r4, 0x5F31 /* 0x5F315F30@ha */ -/* 801B340C 38 C4 5F 30 */ addi r6, r4, 0x5F30 /* 0x5F315F30@l */ -/* 801B3410 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B3414 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B3418 81 83 00 00 */ lwz r12, 0(r3) -/* 801B341C 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B3420 7D 89 03 A6 */ mtctr r12 -/* 801B3424 4E 80 04 21 */ bctrl -/* 801B3428 38 00 00 00 */ li r0, 0 -/* 801B342C 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B3430 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B3434 3C 80 5F 31 */ lis r4, 0x5F31 /* 0x5F315F31@ha */ -/* 801B3438 38 C4 5F 31 */ addi r6, r4, 0x5F31 /* 0x5F315F31@l */ -/* 801B343C 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B3440 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B3444 81 83 00 00 */ lwz r12, 0(r3) -/* 801B3448 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B344C 7D 89 03 A6 */ mtctr r12 -/* 801B3450 4E 80 04 21 */ bctrl -/* 801B3454 38 00 00 01 */ li r0, 1 -/* 801B3458 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B345C 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B3460 3C 80 5F 31 */ lis r4, 0x5F31 /* 0x5F315F32@ha */ -/* 801B3464 38 C4 5F 32 */ addi r6, r4, 0x5F32 /* 0x5F315F32@l */ -/* 801B3468 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B346C 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B3470 81 83 00 00 */ lwz r12, 0(r3) -/* 801B3474 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B3478 7D 89 03 A6 */ mtctr r12 -/* 801B347C 4E 80 04 21 */ bctrl -/* 801B3480 38 00 00 00 */ li r0, 0 -/* 801B3484 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B3488 48 00 00 88 */ b lbl_801B3510 -lbl_801B348C: -/* 801B348C 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B3490 3C 80 5F 31 */ lis r4, 0x5F31 /* 0x5F315F30@ha */ -/* 801B3494 38 C4 5F 30 */ addi r6, r4, 0x5F30 /* 0x5F315F30@l */ -/* 801B3498 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B349C 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B34A0 81 83 00 00 */ lwz r12, 0(r3) -/* 801B34A4 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B34A8 7D 89 03 A6 */ mtctr r12 -/* 801B34AC 4E 80 04 21 */ bctrl -/* 801B34B0 38 00 00 00 */ li r0, 0 -/* 801B34B4 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B34B8 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B34BC 3C 80 5F 31 */ lis r4, 0x5F31 /* 0x5F315F31@ha */ -/* 801B34C0 38 C4 5F 31 */ addi r6, r4, 0x5F31 /* 0x5F315F31@l */ -/* 801B34C4 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B34C8 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B34CC 81 83 00 00 */ lwz r12, 0(r3) -/* 801B34D0 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B34D4 7D 89 03 A6 */ mtctr r12 -/* 801B34D8 4E 80 04 21 */ bctrl -/* 801B34DC 38 00 00 00 */ li r0, 0 -/* 801B34E0 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 801B34E4 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 801B34E8 3C 80 5F 31 */ lis r4, 0x5F31 /* 0x5F315F32@ha */ -/* 801B34EC 38 C4 5F 32 */ addi r6, r4, 0x5F32 /* 0x5F315F32@l */ -/* 801B34F0 3C 80 69 74 */ lis r4, 0x6974 /* 0x6974656D@ha */ -/* 801B34F4 38 A4 65 6D */ addi r5, r4, 0x656D /* 0x6974656D@l */ -/* 801B34F8 81 83 00 00 */ lwz r12, 0(r3) -/* 801B34FC 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 801B3500 7D 89 03 A6 */ mtctr r12 -/* 801B3504 4E 80 04 21 */ bctrl -/* 801B3508 38 00 00 01 */ li r0, 1 -/* 801B350C 98 03 00 B0 */ stb r0, 0xb0(r3) -lbl_801B3510: -/* 801B3510 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B3514 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B3518 7C 08 03 A6 */ mtlr r0 -/* 801B351C 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B3520 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/skill_close_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/skill_close_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 84b14162b7..0000000000 --- a/asm/d/menu/d_menu_collect/skill_close_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B59A8: -/* 801B59A8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B59AC 7C 08 02 A6 */ mflr r0 -/* 801B59B0 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B59B4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B59B8 7C 7F 1B 78 */ mr r31, r3 -/* 801B59BC 38 80 00 00 */ li r4, 0 -/* 801B59C0 48 00 05 F5 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B59C4 7F E3 FB 78 */ mr r3, r31 -/* 801B59C8 38 80 00 00 */ li r4, 0 -/* 801B59CC 48 00 06 ED */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B59D0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B59D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B59D8 7C 08 03 A6 */ mtlr r0 -/* 801B59DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B59E0 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/skill_close_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/skill_close_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 758dac0746..0000000000 --- a/asm/d/menu/d_menu_collect/skill_close_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_801B59E4: -/* 801B59E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B59E8 7C 08 02 A6 */ mflr r0 -/* 801B59EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B59F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B59F4 93 C1 00 08 */ stw r30, 8(r1) -/* 801B59F8 7C 7E 1B 78 */ mr r30, r3 -/* 801B59FC 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5A00 4B E5 97 CD */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5A04 7C 7F 1B 78 */ mr r31, r3 -/* 801B5A08 80 7E 00 A0 */ lwz r3, 0xa0(r30) -/* 801B5A0C 88 03 02 04 */ lbz r0, 0x204(r3) -/* 801B5A10 28 00 00 03 */ cmplwi r0, 3 -/* 801B5A14 40 82 00 08 */ bne lbl_801B5A1C -/* 801B5A18 48 04 22 05 */ bl _close__13dMenu_Skill_cFv -lbl_801B5A1C: -/* 801B5A1C 80 7E 00 A0 */ lwz r3, 0xa0(r30) -/* 801B5A20 88 03 02 04 */ lbz r0, 0x204(r3) -/* 801B5A24 28 00 00 00 */ cmplwi r0, 0 -/* 801B5A28 40 82 00 18 */ bne lbl_801B5A40 -/* 801B5A2C 38 00 00 00 */ li r0, 0 -/* 801B5A30 98 1E 02 2C */ stb r0, 0x22c(r30) -/* 801B5A34 38 00 00 FF */ li r0, 0xff -/* 801B5A38 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 801B5A3C 98 03 00 B4 */ stb r0, 0xb4(r3) -lbl_801B5A40: -/* 801B5A40 7F E3 FB 78 */ mr r3, r31 -/* 801B5A44 4B E5 97 89 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5A48 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5A4C 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B5A50 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5A54 7C 08 03 A6 */ mtlr r0 -/* 801B5A58 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5A5C 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/skill_move_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/skill_move_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index b5e5ce954a..0000000000 --- a/asm/d/menu/d_menu_collect/skill_move_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_801B58FC: -/* 801B58FC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5900 7C 08 02 A6 */ mflr r0 -/* 801B5904 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5908 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B590C 7C 7F 1B 78 */ mr r31, r3 -/* 801B5910 38 80 04 0C */ li r4, 0x40c -/* 801B5914 48 00 06 A1 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B5918 7F E3 FB 78 */ mr r3, r31 -/* 801B591C 38 80 03 F9 */ li r4, 0x3f9 -/* 801B5920 48 00 07 99 */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B5924 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5928 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B592C 7C 08 03 A6 */ mtlr r0 -/* 801B5930 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5934 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/skill_move_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/skill_move_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 0367f19826..0000000000 --- a/asm/d/menu/d_menu_collect/skill_move_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801B5938: -/* 801B5938 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B593C 7C 08 02 A6 */ mflr r0 -/* 801B5940 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5944 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5948 93 C1 00 08 */ stw r30, 8(r1) -/* 801B594C 7C 7E 1B 78 */ mr r30, r3 -/* 801B5950 80 63 00 08 */ lwz r3, 8(r3) -/* 801B5954 4B E5 98 79 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5958 7C 7F 1B 78 */ mr r31, r3 -/* 801B595C 80 7E 00 A0 */ lwz r3, 0xa0(r30) -/* 801B5960 88 03 02 04 */ lbz r0, 0x204(r3) -/* 801B5964 28 00 00 02 */ cmplwi r0, 2 -/* 801B5968 40 82 00 08 */ bne lbl_801B5970 -/* 801B596C 48 04 1D AD */ bl _move__13dMenu_Skill_cFv -lbl_801B5970: -/* 801B5970 80 7E 00 A0 */ lwz r3, 0xa0(r30) -/* 801B5974 88 03 02 04 */ lbz r0, 0x204(r3) -/* 801B5978 28 00 00 03 */ cmplwi r0, 3 -/* 801B597C 40 82 00 0C */ bne lbl_801B5988 -/* 801B5980 38 00 00 0F */ li r0, 0xf -/* 801B5984 98 1E 02 2C */ stb r0, 0x22c(r30) -lbl_801B5988: -/* 801B5988 7F E3 FB 78 */ mr r3, r31 -/* 801B598C 4B E5 98 41 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5990 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5994 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B5998 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B599C 7C 08 03 A6 */ mtlr r0 -/* 801B59A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B59A4 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/skill_open_init__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/skill_open_init__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 4a56485bb1..0000000000 --- a/asm/d/menu/d_menu_collect/skill_open_init__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_801B57F0: -/* 801B57F0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B57F4 7C 08 02 A6 */ mflr r0 -/* 801B57F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B57FC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B5800 93 C1 00 08 */ stw r30, 8(r1) -/* 801B5804 7C 7E 1B 78 */ mr r30, r3 -/* 801B5808 80 63 00 08 */ lwz r3, 8(r3) -/* 801B580C 4B E5 99 C1 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5810 7C 7F 1B 78 */ mr r31, r3 -/* 801B5814 80 1E 00 A0 */ lwz r0, 0xa0(r30) -/* 801B5818 28 00 00 00 */ cmplwi r0, 0 -/* 801B581C 40 82 00 2C */ bne lbl_801B5848 -/* 801B5820 38 60 02 0C */ li r3, 0x20c -/* 801B5824 48 11 94 29 */ bl __nw__FUl -/* 801B5828 7C 60 1B 79 */ or. r0, r3, r3 -/* 801B582C 41 82 00 18 */ beq lbl_801B5844 -/* 801B5830 80 9E 00 08 */ lwz r4, 8(r30) -/* 801B5834 80 BE 00 10 */ lwz r5, 0x10(r30) -/* 801B5838 80 DE 00 14 */ lwz r6, 0x14(r30) -/* 801B583C 48 04 19 E9 */ bl __ct__13dMenu_Skill_cFP10JKRExpHeapP9STControlP10CSTControl -/* 801B5840 7C 60 1B 78 */ mr r0, r3 -lbl_801B5844: -/* 801B5844 90 1E 00 A0 */ stw r0, 0xa0(r30) -lbl_801B5848: -/* 801B5848 7F C3 F3 78 */ mr r3, r30 -/* 801B584C 38 80 00 00 */ li r4, 0 -/* 801B5850 48 00 07 65 */ bl setAButtonString__17dMenu_Collect2D_cFUs -/* 801B5854 7F C3 F3 78 */ mr r3, r30 -/* 801B5858 38 80 00 00 */ li r4, 0 -/* 801B585C 48 00 08 5D */ bl setBButtonString__17dMenu_Collect2D_cFUs -/* 801B5860 38 00 00 00 */ li r0, 0 -/* 801B5864 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 801B5868 98 03 00 B4 */ stb r0, 0xb4(r3) -/* 801B586C 7F E3 FB 78 */ mr r3, r31 -/* 801B5870 4B E5 99 5D */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B5874 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B5878 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B587C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B5880 7C 08 03 A6 */ mtlr r0 -/* 801B5884 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B5888 4E 80 00 20 */ blr diff --git a/asm/d/menu/d_menu_collect/skill_open_proc__17dMenu_Collect2D_cFv.s b/asm/d/menu/d_menu_collect/skill_open_proc__17dMenu_Collect2D_cFv.s deleted file mode 100644 index 079565119b..0000000000 --- a/asm/d/menu/d_menu_collect/skill_open_proc__17dMenu_Collect2D_cFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801B588C: -/* 801B588C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801B5890 7C 08 02 A6 */ mflr r0 -/* 801B5894 90 01 00 14 */ stw r0, 0x14(r1) -/* 801B5898 93 E1 00 0C */ stw r31, 0xc(r1) -/* 801B589C 93 C1 00 08 */ stw r30, 8(r1) -/* 801B58A0 7C 7E 1B 78 */ mr r30, r3 -/* 801B58A4 80 63 00 08 */ lwz r3, 8(r3) -/* 801B58A8 4B E5 99 25 */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B58AC 7C 7F 1B 78 */ mr r31, r3 -/* 801B58B0 80 7E 00 A0 */ lwz r3, 0xa0(r30) -/* 801B58B4 88 03 02 04 */ lbz r0, 0x204(r3) -/* 801B58B8 28 00 00 01 */ cmplwi r0, 1 -/* 801B58BC 40 82 00 08 */ bne lbl_801B58C4 -/* 801B58C0 48 04 21 81 */ bl _open__13dMenu_Skill_cFv -lbl_801B58C4: -/* 801B58C4 80 7E 00 A0 */ lwz r3, 0xa0(r30) -/* 801B58C8 88 03 02 04 */ lbz r0, 0x204(r3) -/* 801B58CC 28 00 00 02 */ cmplwi r0, 2 -/* 801B58D0 40 82 00 0C */ bne lbl_801B58DC -/* 801B58D4 38 00 00 0E */ li r0, 0xe -/* 801B58D8 98 1E 02 2C */ stb r0, 0x22c(r30) -lbl_801B58DC: -/* 801B58DC 7F E3 FB 78 */ mr r3, r31 -/* 801B58E0 4B E5 98 ED */ bl mDoExt_setCurrentHeap__FP7JKRHeap -/* 801B58E4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 801B58E8 83 C1 00 08 */ lwz r30, 8(r1) -/* 801B58EC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801B58F0 7C 08 03 A6 */ mtlr r0 -/* 801B58F4 38 21 00 10 */ addi r1, r1, 0x10 -/* 801B58F8 4E 80 00 20 */ blr diff --git a/include/JSystem/J2DGraph/J2DAnmLoader.h b/include/JSystem/J2DGraph/J2DAnmLoader.h index 19b8642558..5b1257b925 100644 --- a/include/JSystem/J2DGraph/J2DAnmLoader.h +++ b/include/JSystem/J2DGraph/J2DAnmLoader.h @@ -5,7 +5,7 @@ #include "dolphin/types.h" struct J2DAnmLoaderDataBase { - /* 80308A6C */ static void* load(void const*); + /* 80308A6C */ static J2DAnmBase* load(void const*); }; class J2DAnmLoader { diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index dce98cbf78..ae2994b76c 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -1702,6 +1702,10 @@ inline void dComIfGs_setOptCalibrateDist(u16 i_calibrateDist) { g_dComIfG_gameInfo.info.getPlayer().getConfig().setCalibrateDist(i_calibrateDist); } +inline u16 dComIfGs_getFishNum(u8 param_0) { + return g_dComIfG_gameInfo.info.getPlayer().getFishingInfo().getFishCount(param_0); +} + void dComIfGp_setSelectItem(int index); s32 dComIfGp_offHeapLockFlag(int flag); void dComIfGp_createSubExpHeap2D(); diff --git a/include/d/d_select_cursor.h b/include/d/d_select_cursor.h index 8d08fe368b..698156c485 100644 --- a/include/d/d_select_cursor.h +++ b/include/d/d_select_cursor.h @@ -58,6 +58,8 @@ public: void onPlayAnime(int i_flag) { field_0xb4 |= (1 << i_flag); } void offPlayAnime(int i_flag) { field_0xb4 &= ~(1 << i_flag); } + void onPlayAllAnime() { field_0xb4 = 0xff; } + void offPlayAllAnime() { field_0xb4 = 0; } private: /* 0x04 */ J2DScreen* mpScreen; diff --git a/include/d/menu/d_menu_collect.h b/include/d/menu/d_menu_collect.h index 26ca21fb31..d5599adbb5 100644 --- a/include/d/menu/d_menu_collect.h +++ b/include/d/menu/d_menu_collect.h @@ -20,6 +20,7 @@ class dSelect_cursor_c; class dMenu_Collect2D_c; class dMenu_Collect2DTop_c : public dDlst_base_c { public: + dMenu_Collect2DTop_c(dMenu_Collect2D_c* param_0) { mpCollect2D = param_0; } /* 801B77A4 */ virtual void draw(); /* 801B7EB8 */ virtual ~dMenu_Collect2DTop_c(); @@ -32,9 +33,9 @@ public: /* 801AFEA4 */ void _create(); /* 801B0100 */ void _delete(); /* 801B0570 */ void initialize(); - /* 801B05A8 */ void isFishIconVisible(); - /* 801B061C */ void isSkillIconVisible(); - /* 801B071C */ void isInsectIconVisible(); + /* 801B05A8 */ bool isFishIconVisible(); + /* 801B061C */ bool isSkillIconVisible(); + /* 801B071C */ bool isInsectIconVisible(); /* 801B074C */ void screenSet(); /* 801B1C3C */ void animationSet(); /* 801B1CE0 */ void btkAnimeLoop0(J2DAnmTextureSRTKey*); @@ -105,6 +106,8 @@ public: /* 801B7F00 */ virtual void draw(); /* 801AFE34 */ virtual ~dMenu_Collect2D_c(); + u8 getCursorX() { return mCursorX; } + u8 getCursorY() { return mCursorY; } u8 getSubWindowOpenCheck() { return mSubWindowOpenCheck; } private: @@ -311,12 +314,12 @@ public: /* 801B6FB0 */ void animeEntry(); /* 801B7014 */ void createMaskModel(); /* 801B71C4 */ void createMirrorModel(); - /* 801B7434 */ void getCrystalNum(); - /* 801B749C */ void getMirrorNum(); + /* 801B7434 */ int getCrystalNum(); + /* 801B749C */ int getMirrorNum(); /* 801B7504 */ void getMaskMdlVisible(); - /* 801B75E8 */ static void setupItem3D(f32 (*)[4]); + /* 801B75E8 */ static void setupItem3D(Mtx); /* 801B7660 */ void toItem3Dpos(f32, f32, f32, cXyz*); - /* 801B774C */ void calcViewMtx(f32 (*)[4]); + /* 801B774C */ static void calcViewMtx(Mtx); /* 801B6538 */ virtual ~dMenu_Collect3D_c(); @@ -331,7 +334,7 @@ private: /* 0x018 */ J3DModel* mpModel; /* 0x01C */ mDoExt_bckAnm* field_0x1c; /* 0x020 */ mDoExt_brkAnm* field_0x20; - /* 0x024 */ u8 field_0x24[4]; + /* 0x024 */ u32 field_0x24; /* 0x028 */ dKy_tevstr_c field_0x28; /* 0x3B0 */ cXyz field_0x3b0; /* 0x3BC */ csXyz field_0x3bc; diff --git a/include/d/menu/d_menu_insect.h b/include/d/menu/d_menu_insect.h index 5ae137e84c..e394a8a4f2 100644 --- a/include/d/menu/d_menu_insect.h +++ b/include/d/menu/d_menu_insect.h @@ -35,7 +35,7 @@ public: /* 801D9644 */ void screenSetBase(); /* 801D98F0 */ void screenSetExplain(); /* 801D9BD0 */ void screenSetDoIcon(); - /* 801D9D4C */ void getGetInsectNum(); + /* 801D9D4C */ static u8 getGetInsectNum(); /* 801D9DCC */ void getInsectItemID(int, int); /* 801D9DE4 */ void isGetInsect(int, int); /* 801D9E20 */ void isGiveInsect(int, int); diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h index 78ad8a4cc1..2b1a57c796 100644 --- a/include/d/meter/d_meter2_info.h +++ b/include/d/meter/d_meter2_info.h @@ -151,6 +151,10 @@ public: u8 getItemExplainWindowStatus() { return mItemExplainWindowStatus; } void resetDirectUseItem() { mDirectUseItem = 0; } u16 getFloatingFlowID() { return mFloatingFlowID; } + void setCollectCursorPosXY(u8 x, u8 y) { + mCollectCursorPosX = x; + mCollectCursorPosY = y; + } public: /* 0x04 */ u8 unk4[4]; @@ -550,6 +554,10 @@ inline u16 dMeter2Info_getFloatingFlowID() { return g_meter2_info.getFloatingFlowID(); } +inline void dMeter2Info_setCollectCursorPosXY(u8 x, u8 y) { + g_meter2_info.setCollectCursorPosXY(x, y); +} + const char* dMeter2Info_getNumberTextureName(int pIndex); void dMeter2Info_recieveLetter(); u8 dMeter2Info_getNewLetterNum(); diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index f5934842ce..dc3880cf18 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -678,6 +678,7 @@ class dSv_fishing_info_c { public: void init(); void addFishCount(u8 i_fishIndex); + u16 getFishCount(u8 i_fishIndex) { return mFishCount[i_fishIndex]; } private: /* 0x00 */ u16 mFishCount[16]; @@ -768,6 +769,7 @@ public: dSv_player_get_item_c& getGetItem() { return mGetItem; } dSv_player_config_c& getConfig() { return mConfig; } dSv_letter_info_c& getLetterInfo() { return mLetterInfo; } + dSv_fishing_info_c& getFishingInfo() { return mFishingInfo; } dSv_player_field_last_stay_info_c& getPlayerFieldLastStayInfo() { return mPlayerFieldLastStayInfo; } diff --git a/include/m_Do/m_Do_graphic.h b/include/m_Do/m_Do_graphic.h index 9fbb547ad7..1c24974dc5 100644 --- a/include/m_Do/m_Do_graphic.h +++ b/include/m_Do/m_Do_graphic.h @@ -73,6 +73,7 @@ public: static f32 getMinXF() { return 0.0f; } static f32 getMaxYF() { return 448.0f; } static f32 getMaxXF() { return 608.0f; } + static f32 getAspect() { return 1.3571428f; } static int getMinY() { return 0; } static int getMinX() { return 0; } static int getMaxY() { return 448; } diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index 510056d203..c849395597 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -19,8 +19,8 @@ void mDoMtx_XrotM(Mtx, s16); void mDoMtx_YrotM(Mtx, s16); void mDoMtx_ZrotM(Mtx, s16); void mDoMtx_MtxToRot(CMtxP, csXyz*); -void mDoMtx_lookAt(f32 (*param_0)[4], Vec const* param_1, Vec const* param_2, s16 param_3); -void mDoMtx_lookAt(f32 (*param_0)[4], Vec const* param_1, Vec const* param_2, Vec const* param_3, +void mDoMtx_lookAt(Mtx param_0, Vec const* param_1, Vec const* param_2, s16 param_3); +void mDoMtx_lookAt(Mtx param_0, Vec const* param_1, Vec const* param_2, Vec const* param_3, s16 param_4); void mDoMtx_concatProjView(f32 const (*param_0)[4], f32 const (*param_1)[4], f32 (*param_2)[4]); void mDoMtx_ZrotM(Mtx mtx, s16 z); diff --git a/src/d/menu/d_menu_collect.cpp b/src/d/menu/d_menu_collect.cpp index ae5417b21e..313fc9a12d 100644 --- a/src/d/menu/d_menu_collect.cpp +++ b/src/d/menu/d_menu_collect.cpp @@ -4,19 +4,36 @@ // #include "d/menu/d_menu_collect.h" -#include "d/d_lib.h" +#include "JSystem/J2DGraph/J2DAnimation.h" +#include "JSystem/J2DGraph/J2DAnmLoader.h" +#include "JSystem/J2DGraph/J2DScreen.h" +#include "JSystem/J2DGraph/J2DTextBox.h" +#include "JSystem/JKernel/JKRExpHeap.h" #include "MSL_C/string.h" +#include "d/a/d_a_player.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_lib.h" +#include "d/d_select_cursor.h" +#include "d/meter/d_meter_HIO.h" +#include "d/meter/d_meter2_info.h" +#include "d/menu/d_menu_fishing.h" +#include "d/menu/d_menu_insect.h" +#include "d/menu/d_menu_letter.h" +#include "d/menu/d_menu_option.h" +#include "d/menu/d_menu_save.h" +#include "d/menu/d_menu_skill.h" +#include "d/msg/d_msg_string.h" +#include "d/pane/d_pane_class.h" #include "dol2asm.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" +#include "m_Do/m_Do_graphic.h" +#include "m_Do/m_Do_mtx.h" // // Types: // -struct mDoGph_gInf_c { - static u8 mFader[4]; -}; - struct daAlink_c { /* 80140064 */ void setShieldChange(); /* 801406A8 */ void initStatusWindow(); @@ -25,96 +42,12 @@ struct daAlink_c { /* 80140AC8 */ void resetStatusWindow(); }; -struct dSv_player_status_a_c { - /* 80032AA8 */ void getRupeeMax() const; -}; - -struct dSv_player_get_item_c { - /* 80033EC8 */ void isFirstBit(u8) const; -}; - -struct dSv_player_collect_c { - /* 8003424C */ void isCollectCrystal(u8) const; - /* 80034290 */ void isCollectMirror(u8) const; -}; - -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -struct dMsgString_c { - /* 80249C20 */ dMsgString_c(); - /* 80249D28 */ ~dMsgString_c(); -}; - struct dMsgObject_c { /* 802383E4 */ void getSmellTypeMessageID(); }; struct JMSMesgEntry_c {}; -struct dMeter2Info_c { - /* 8021C544 */ void getStringKanji(u32, char*, JMSMesgEntry_c*); -}; - -struct dMenu_save_c { - /* 801EF6A0 */ dMenu_save_c(); - /* 801EF7AC */ void _create(); - /* 801F0938 */ void initialize(); - /* 801F09AC */ void _open(); - /* 801F0B10 */ void _close(); - /* 801F0B28 */ void _delete(); - /* 801F1048 */ void _move(); - /* 801F69B8 */ void _draw(); -}; - -struct dMenu_Skill_c { - /* 801F7224 */ dMenu_Skill_c(JKRExpHeap*, STControl*, CSTControl*); - /* 801F7718 */ void _move(); - /* 801F77B0 */ void _draw(); - /* 801F7A40 */ void _open(); - /* 801F7C1C */ void _close(); -}; - -struct dMenu_Option_c { - /* 801E1F10 */ dMenu_Option_c(JKRArchive*, STControl*); - /* 801E2C1C */ void _delete(); - /* 801E3408 */ void _move(); - /* 801E36CC */ void _draw(); - /* 801E3B98 */ void _open(); - /* 801E3DE0 */ void _close(); - /* 801E8210 */ void initialize(); -}; - -struct dMenu_Letter_c { - /* 801DCDC0 */ dMenu_Letter_c(JKRExpHeap*, STControl*, CSTControl*); - /* 801DD474 */ void _move(); - /* 801DD50C */ void _draw(); - /* 801DDA74 */ void _open(); - /* 801DDC98 */ void _close(); -}; - -struct dMenu_Insect_c { - /* 801D8114 */ dMenu_Insect_c(JKRExpHeap*, STControl*, CSTControl*, u8); - /* 801D86C8 */ void _move(); - /* 801D8760 */ void _draw(); - /* 801D894C */ void _open(); - /* 801D8B2C */ void _close(); - /* 801D9D4C */ void getGetInsectNum(); -}; - -struct dMenu_Fishing_c { - /* 801C4D54 */ dMenu_Fishing_c(JKRExpHeap*, STControl*, CSTControl*); - /* 801C50B4 */ void _move(); - /* 801C514C */ void _draw(); - /* 801C52E4 */ void _open(); - /* 801C5470 */ void _close(); -}; - struct J3DTexNoAnm { /* 8003B1F8 */ ~J3DTexNoAnm(); /* 8003B240 */ J3DTexNoAnm(); @@ -154,10 +87,6 @@ struct J3DAnmLoaderDataBase { /* 80337B40 */ void load(void const*, J3DAnmLoaderDataBaseFlag); }; -struct J2DAnmLoaderDataBase { - /* 80308A6C */ void load(void const*); -}; - // // Forward References: // @@ -424,9 +353,6 @@ extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" extern void* __vt__8J3DModel[9]; extern "C" extern void* __vt__14J3DMaterialAnm[4]; extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_drawHIO[3880]; -extern "C" extern u8 g_meter2_info[248]; extern "C" f32 Zero__4cXyz[3]; extern "C" u8 mFader__13mDoGph_gInf_c[4]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; @@ -980,6 +906,32 @@ SECTION_SDATA2 static f32 lit_4482 = 1.0f; /* 801AFD48-801AFE34 1AA688 00EC+00 1/1 0/0 0/0 .text * __ct__17dMenu_Collect2D_cFP10JKRExpHeapP9STControlP10CSTControl */ +// matches with literals +#ifdef NONMATCHING +dMenu_Collect2D_c::dMenu_Collect2D_c(JKRExpHeap* param_0, STControl* param_1, CSTControl* param_2) { + mpHeap = param_0; + field_0x10 = param_1; + field_0x14 = param_2; + field_0xc = NULL; + field_0x40 = daPy_py_c::i_checkNowWolf(); + field_0x7c.set(0.0f, 0.0f, 0.0f); + for (int i = 0; i < 2; i++) { + field_0x44[i] = 1.0f; + field_0x4c[i] = 1.0f; + } + field_0x54 = 0.0f; + field_0x58 = 0.0f; + field_0x5c = 1.0f; + field_0x60 = 1.0f; + field_0x64 = 0.0f; + field_0x68 = 0.0f; + field_0x6c = 1.0f; + field_0x70 = 0.0f; + field_0x74 = 0.0f; + field_0x78 = 1.0f; + mpSubHeap = JKRCreateExpHeap(0x00046000, mpHeap, 0); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -989,36 +941,131 @@ asm dMenu_Collect2D_c::dMenu_Collect2D_c(JKRExpHeap* param_0, STControl* param_1 #include "asm/d/menu/d_menu_collect/__ct__17dMenu_Collect2D_cFP10JKRExpHeapP9STControlP10CSTControl.s" } #pragma pop +#endif /* 801AFE34-801AFEA4 1AA774 0070+00 1/0 0/0 0/0 .text __dt__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMenu_Collect2D_c::~dMenu_Collect2D_c() { - nofralloc -#include "asm/d/menu/d_menu_collect/__dt__17dMenu_Collect2D_cFv.s" +dMenu_Collect2D_c::~dMenu_Collect2D_c() { + if (mpSubHeap) { + mDoExt_destroyExpHeap(mpSubHeap); + mpSubHeap = NULL; + } } -#pragma pop /* 801AFEA4-801B0100 1AA7E4 025C+00 1/1 0/0 0/0 .text _create__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::_create() { - nofralloc -#include "asm/d/menu/d_menu_collect/_create__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::_create() { + mpHeap->getTotalFreeSize(); + mpScreen = new J2DScreen(); + mpScreen->setPriority("zelda_collect_soubi_screen.blo", 0x1020000, dComIfGp_getCollectResArchive()); + dPaneClass_showNullPane(mpScreen); + mpScreenIcon = new J2DScreen(); + mpScreenIcon->setPriority("zelda_collect_soubi_do_icon_parts.blo", 0x20000, dComIfGp_getCollectResArchive()); + for (int i = 0; i < 2; i++) { + mpButtonAB[i] = NULL; + mpButtonText[i] = NULL; + } + dPaneClass_showNullPane(mpScreenIcon); + mpDraw2DTop = new dMenu_Collect2DTop_c(this); + ResTIMG* image = (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG', "tt_block8x8.bti"); + mpBlackTex = new J2DPicture(image); + mpBlackTex->setBlackWhite(JUtility::TColor(0, 0, 0, 0), JUtility::TColor(0, 0, 0, 255)); + mpBlackTex->setAlpha(0); + mpDrawCursor = new dSelect_cursor_c(2, lit_4482, NULL); + mpString = new dMsgString_c(); + mpSaveScrn = NULL; + mpOptionScrn = NULL; + mpLetterScrn = NULL; + mpFishingScrn = NULL; + mpSkillScrn = NULL; + mpInsectScrn = NULL; + field_0x22c = 0; + animationSet(); + screenSet(); + initialize(); + setHIO(true); } -#pragma pop /* 801B0100-801B0570 1AAA40 0470+00 1/1 0/0 0/0 .text _delete__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::_delete() { - nofralloc -#include "asm/d/menu/d_menu_collect/_delete__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::_delete() { + mpHeap->getTotalFreeSize(); + dMeter2Info_setCollectCursorPosXY(mCursorX, mCursorY); + delete mpScreen; + mpScreen = NULL; + delete mpScreenIcon; + mpScreenIcon = NULL; + for (int i = 0; i < 2; i++) { + if (mpButtonAB[i]) { + delete mpButtonAB[i]; + mpButtonAB[i] = NULL; + } + if (mpButtonText[i]) { + delete mpButtonText[i]; + mpButtonText[i] = NULL; + } + } + delete mpDraw2DTop; + mpDraw2DTop = NULL; + delete mpBlackTex; + mpBlackTex = NULL; + delete mpDrawCursor; + mpDrawCursor = NULL; + delete mpString; + mpString = NULL; + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpSaveScrn) { + mpSaveScrn->_delete(); + delete mpSaveScrn; + mpSaveScrn = NULL; + mpSubHeap->freeAll(); + } + if (mpOptionScrn) { + mpOptionScrn->_delete(); + delete mpOptionScrn; + mpOptionScrn = NULL; + mpSubHeap->freeAll(); + } + if (mpLetterScrn) { + delete mpLetterScrn; + mpLetterScrn = NULL; + mpSubHeap->freeAll(); + } + if (mpFishingScrn) { + delete mpFishingScrn; + mpFishingScrn = NULL; + mpSubHeap->freeAll(); + } + if (mpSkillScrn) { + delete mpSkillScrn; + mpSkillScrn = NULL; + mpSubHeap->freeAll(); + } + if (mpInsectScrn) { + delete mpInsectScrn; + mpInsectScrn = NULL; + mpSubHeap->freeAll(); + } + mDoExt_setCurrentHeap(heap); + delete field_0x2c; + field_0x2c = NULL; + for (int i = 0; i < 7; i++) { + for (int j = 0; j < 6; j++) { + if (mpSelPm[i][j]) { + delete mpSelPm[i][j]; + mpSelPm[i][j] = NULL; + } + } + } + delete mpLinkPm; + mpLinkPm = NULL; + delete mpMaskPm; + mpMaskPm = NULL; + delete mpModelBg; + mpModelBg = NULL; + delete mpHeartParent; + mpHeartParent = NULL; + delete mpHeartPiece; + mpHeartPiece = NULL; + dComIfGp_getCollectResArchive()->removeResourceAll(); } -#pragma pop /* 801B0570-801B05A8 1AAEB0 0038+00 1/1 0/0 0/0 .text initialize__17dMenu_Collect2D_cFv */ @@ -1032,35 +1079,40 @@ asm void dMenu_Collect2D_c::initialize() { #pragma pop /* 801B05A8-801B061C 1AAEE8 0074+00 2/2 0/0 0/0 .text isFishIconVisible__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::isFishIconVisible() { - nofralloc -#include "asm/d/menu/d_menu_collect/isFishIconVisible__17dMenu_Collect2D_cFv.s" +bool dMenu_Collect2D_c::isFishIconVisible() { + if (dComIfGs_getFishNum(0) || + dComIfGs_getFishNum(1) || + dComIfGs_getFishNum(2) || + dComIfGs_getFishNum(3) || + dComIfGs_getFishNum(4) || + dComIfGs_getFishNum(5) || + g_drawHIO.mFishListScreen.mDebug) + { + return true; + } + return false; } -#pragma pop /* 801B061C-801B071C 1AAF5C 0100+00 2/2 0/0 0/0 .text isSkillIconVisible__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::isSkillIconVisible() { - nofralloc -#include "asm/d/menu/d_menu_collect/isSkillIconVisible__17dMenu_Collect2D_cFv.s" +bool dMenu_Collect2D_c::isSkillIconVisible() { + if (i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[338]) || + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[339]) || + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[340]) || + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[341]) || + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[342]) || + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[343]) || + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[344])) + { + return true; + } + return false; } -#pragma pop /* 801B071C-801B074C 1AB05C 0030+00 2/2 0/0 0/0 .text isInsectIconVisible__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::isInsectIconVisible() { - nofralloc -#include "asm/d/menu/d_menu_collect/isInsectIconVisible__17dMenu_Collect2D_cFv.s" +bool dMenu_Collect2D_c::isInsectIconVisible() { + return dMenu_Insect_c::getGetInsectNum(); } -#pragma pop /* ############################################################################################## */ /* 80394F78-80394F88 0215D8 000C+04 3/3 0/0 0/0 .rodata @3778 */ @@ -1165,6 +1217,18 @@ asm void dMenu_Collect2D_c::screenSet() { /* 801B1C3C-801B1CE0 1AC57C 00A4+00 1/1 0/0 0/0 .text animationSet__17dMenu_Collect2D_cFv */ +// matches with literals +#ifdef NONMATCHING +void dMenu_Collect2D_c::animationSet() { + i_OSInitFastCast(); + void* resource = JKRGetNameResource("zelda_collect_soubi_screen_revo.btk", dComIfGp_getCollectResArchive()); + field_0x2c = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(resource); + field_0x2c->searchUpdateMaterialID(mpScreen); + field_0x34 = 0.0f; + field_0x38 = 0.0f; + field_0x3c = 0.0f; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1173,6 +1237,7 @@ asm void dMenu_Collect2D_c::animationSet() { #include "asm/d/menu/d_menu_collect/animationSet__17dMenu_Collect2D_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80453F38-80453F40 002538 0008+00 2/2 0/0 0/0 .sdata2 @5199 */ @@ -1340,24 +1405,51 @@ asm void dMenu_Collect2D_c::changeClothe() { #pragma pop /* 801B30C8-801B3340 1ADA08 0278+00 1/1 0/0 0/0 .text setArrowMaxNum__17dMenu_Collect2D_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::setArrowMaxNum(u8 param_0) { - nofralloc -#include "asm/d/menu/d_menu_collect/setArrowMaxNum__17dMenu_Collect2D_cFUc.s" +void dMenu_Collect2D_c::setArrowMaxNum(u8 param_0) { + switch (param_0) { + case 0: + mpScreen->search('item_0_0')->hide(); + mpScreen->search('item_0_1')->hide(); + mpScreen->search('item_0_2')->hide(); + break; + case 30: + mpScreen->search('item_0_0')->show(); + mpScreen->search('item_0_1')->hide(); + mpScreen->search('item_0_2')->hide(); + break; + case 60: + mpScreen->search('item_0_0')->hide(); + mpScreen->search('item_0_1')->show(); + mpScreen->search('item_0_2')->hide(); + break; + case 100: + mpScreen->search('item_0_0')->hide(); + mpScreen->search('item_0_1')->hide(); + mpScreen->search('item_0_2')->show(); + break; + } } -#pragma pop /* 801B3340-801B3524 1ADC80 01E4+00 1/1 0/0 0/0 .text setWalletMaxNum__17dMenu_Collect2D_cFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::setWalletMaxNum(u16 param_0) { - nofralloc -#include "asm/d/menu/d_menu_collect/setWalletMaxNum__17dMenu_Collect2D_cFUs.s" +void dMenu_Collect2D_c::setWalletMaxNum(u16 param_0) { + switch (param_0) { + case 300: + mpScreen->search('item_1_0')->show(); + mpScreen->search('item_1_1')->hide(); + mpScreen->search('item_1_2')->hide(); + break; + case 600: + mpScreen->search('item_1_0')->hide(); + mpScreen->search('item_1_1')->show(); + mpScreen->search('item_1_2')->hide(); + break; + case 1000: + mpScreen->search('item_1_0')->hide(); + mpScreen->search('item_1_1')->hide(); + mpScreen->search('item_1_2')->show(); + break; + } } -#pragma pop /* ############################################################################################## */ /* 80395050-80395078 0216B0 0028+00 1/1 0/0 0/0 .rodata smell_tag$5891 */ @@ -1542,364 +1634,375 @@ asm void dMenu_Collect2D_c::wait_proc() { #pragma pop /* 801B4E14-801B4EC0 1AF754 00AC+00 1/0 0/0 0/0 .text save_open_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::save_open_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/save_open_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::save_open_init() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (!mpSaveScrn) { + mpSaveScrn = new dMenu_save_c(); + } + mpSaveScrn->setUseType(1); + mpSaveScrn->_create(); + mpSaveScrn->initialize(); + setAButtonString(0); + setBButtonString(0); + mpDrawCursor->offPlayAllAnime(); + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B4EC0-801B4F30 1AF800 0070+00 1/0 0/0 0/0 .text save_open_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::save_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/save_open_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::save_open_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpSaveScrn->getSaveStatus() == 1) { + mpSaveScrn->_open(); + } + if (mpSaveScrn->getSaveStatus() == 2) { + field_0x22c = 2; + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B4F30-801B4F6C 1AF870 003C+00 1/0 0/0 0/0 .text save_move_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::save_move_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/save_move_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::save_move_init() { + setAButtonString(0x040c); + setBButtonString(0); } -#pragma pop /* 801B4F6C-801B4FDC 1AF8AC 0070+00 1/0 0/0 0/0 .text save_move_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::save_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/save_move_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::save_move_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpSaveScrn->getSaveStatus() == 2) { + mpSaveScrn->_move(); + } + if (mpSaveScrn->getSaveStatus() == 3) { + field_0x22c = 3; + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B4FDC-801B5018 1AF91C 003C+00 1/0 0/0 0/0 .text save_close_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::save_close_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/save_close_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::save_close_init() { + setAButtonString(0); + setBButtonString(0); } -#pragma pop /* 801B5018-801B5094 1AF958 007C+00 1/0 0/0 0/0 .text save_close_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::save_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/save_close_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::save_close_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpSaveScrn->getSaveStatus() == 3) { + mpSaveScrn->_close(); + } + if (mpSaveScrn->getSaveStatus() == 0) { + field_0x22c = 0; + mpDrawCursor->onPlayAllAnime(); + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B5094-801B513C 1AF9D4 00A8+00 1/0 0/0 0/0 .text option_open_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::option_open_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/option_open_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::option_open_init() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (!mpOptionScrn) { + mpOptionScrn = new dMenu_Option_c(dComIfGp_getCollectResArchive(), field_0x10); + } + mpOptionScrn->initialize(); + setAButtonString(0); + setBButtonString(0); + mpDrawCursor->offPlayAllAnime(); + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B513C-801B51AC 1AFA7C 0070+00 1/0 0/0 0/0 .text option_open_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::option_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/option_open_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::option_open_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpOptionScrn->getQuitStatus() == 1) { + mpOptionScrn->_open(); + } + if (mpOptionScrn->getQuitStatus() == 2) { + field_0x22c = 5; + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B51AC-801B51E8 1AFAEC 003C+00 1/0 0/0 0/0 .text option_move_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::option_move_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/option_move_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::option_move_init() { + setAButtonString(0x040c); + setBButtonString(0x03f9); } -#pragma pop /* 801B51E8-801B5258 1AFB28 0070+00 1/0 0/0 0/0 .text option_move_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::option_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/option_move_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::option_move_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpOptionScrn->getQuitStatus() == 2) { + mpOptionScrn->_move(); + } + if (mpOptionScrn->getQuitStatus() == 3) { + field_0x22c = 6; + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B5258-801B5294 1AFB98 003C+00 1/0 0/0 0/0 .text option_close_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::option_close_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/option_close_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::option_close_init() { + setAButtonString(0); + setBButtonString(0); } -#pragma pop /* 801B5294-801B5310 1AFBD4 007C+00 1/0 0/0 0/0 .text option_close_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::option_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/option_close_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::option_close_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpOptionScrn->getQuitStatus() == 3) { + mpOptionScrn->_close(); + } + if (mpOptionScrn->getQuitStatus() == 0) { + field_0x22c = 0; + mpDrawCursor->onPlayAllAnime(); + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B5310-801B53AC 1AFC50 009C+00 1/0 0/0 0/0 .text letter_open_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::letter_open_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/letter_open_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::letter_open_init() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (!mpLetterScrn) { + mpLetterScrn = new dMenu_Letter_c(mpSubHeap, field_0x10, field_0x14); + } + setAButtonString(0); + setBButtonString(0); + mpDrawCursor->offPlayAllAnime(); + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B53AC-801B541C 1AFCEC 0070+00 1/0 0/0 0/0 .text letter_open_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::letter_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/letter_open_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::letter_open_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpLetterScrn->getStatus() == 1) { + mpLetterScrn->_open(); + } + if (mpLetterScrn->getStatus() == 2) { + field_0x22c = 8; + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B541C-801B5458 1AFD5C 003C+00 1/0 0/0 0/0 .text letter_move_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::letter_move_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/letter_move_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::letter_move_init() { + setAButtonString(0x040c); + setBButtonString(0x03f9); } -#pragma pop /* 801B5458-801B54C8 1AFD98 0070+00 1/0 0/0 0/0 .text letter_move_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::letter_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/letter_move_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::letter_move_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpLetterScrn->getStatus() == 2) { + mpLetterScrn->_move(); + } + if (mpLetterScrn->getStatus() == 3) { + field_0x22c = 9; + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B54C8-801B5504 1AFE08 003C+00 1/0 0/0 0/0 .text letter_close_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::letter_close_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/letter_close_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::letter_close_init() { + setAButtonString(0); + setBButtonString(0); } -#pragma pop /* 801B5504-801B5580 1AFE44 007C+00 1/0 0/0 0/0 .text letter_close_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::letter_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/letter_close_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::letter_close_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpLetterScrn->getStatus() == 3) { + mpLetterScrn->_close(); + } + if (mpLetterScrn->getStatus() == 0) { + field_0x22c = 0; + mpDrawCursor->onPlayAllAnime(); + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B5580-801B561C 1AFEC0 009C+00 1/0 0/0 0/0 .text fishing_open_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::fishing_open_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/fishing_open_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::fishing_open_init() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (!mpFishingScrn) { + mpFishingScrn = new dMenu_Fishing_c(mpSubHeap, field_0x10, field_0x14); + } + setAButtonString(0); + setBButtonString(0); + mpDrawCursor->offPlayAllAnime(); + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B561C-801B568C 1AFF5C 0070+00 1/0 0/0 0/0 .text fishing_open_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::fishing_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/fishing_open_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::fishing_open_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpFishingScrn->getStatus() == 1) { + mpFishingScrn->_open(); + } + if (mpFishingScrn->getStatus() == 2) { + field_0x22c = 11; + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B568C-801B56C8 1AFFCC 003C+00 1/0 0/0 0/0 .text fishing_move_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::fishing_move_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/fishing_move_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::fishing_move_init() { + setAButtonString(0x040c); + setBButtonString(0x03f9); } -#pragma pop /* 801B56C8-801B5738 1B0008 0070+00 1/0 0/0 0/0 .text fishing_move_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::fishing_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/fishing_move_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::fishing_move_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpFishingScrn->getStatus() == 2) { + mpFishingScrn->_move(); + } + if (mpFishingScrn->getStatus() == 3) { + field_0x22c = 12; + } + mDoExt_setCurrentHeap(heap); } -#pragma pop + /* 801B5738-801B5774 1B0078 003C+00 1/0 0/0 0/0 .text fishing_close_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::fishing_close_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/fishing_close_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::fishing_close_init() { + setAButtonString(0); + setBButtonString(0); } -#pragma pop /* 801B5774-801B57F0 1B00B4 007C+00 1/0 0/0 0/0 .text fishing_close_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::fishing_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/fishing_close_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::fishing_close_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpFishingScrn->getStatus() == 3) { + mpFishingScrn->_close(); + } + if (mpFishingScrn->getStatus() == 0) { + field_0x22c = 0; + mpDrawCursor->onPlayAllAnime(); + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B57F0-801B588C 1B0130 009C+00 1/0 0/0 0/0 .text skill_open_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::skill_open_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/skill_open_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::skill_open_init() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (!mpSkillScrn) { + mpSkillScrn = new dMenu_Skill_c(mpSubHeap, field_0x10, field_0x14); + } + setAButtonString(0); + setBButtonString(0); + mpDrawCursor->offPlayAllAnime(); + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B588C-801B58FC 1B01CC 0070+00 1/0 0/0 0/0 .text skill_open_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::skill_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/skill_open_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::skill_open_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpSkillScrn->getStatus() == 1) { + mpSkillScrn->_open(); + } + if (mpSkillScrn->getStatus() == 2) { + field_0x22c = 14; + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B58FC-801B5938 1B023C 003C+00 1/0 0/0 0/0 .text skill_move_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::skill_move_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/skill_move_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::skill_move_init() { + setAButtonString(0x040c); + setBButtonString(0x03f9); } -#pragma pop /* 801B5938-801B59A8 1B0278 0070+00 1/0 0/0 0/0 .text skill_move_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::skill_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/skill_move_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::skill_move_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpSkillScrn->getStatus() == 2) { + mpSkillScrn->_move(); + } + if (mpSkillScrn->getStatus() == 3) { + field_0x22c = 15; + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B59A8-801B59E4 1B02E8 003C+00 1/0 0/0 0/0 .text skill_close_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::skill_close_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/skill_close_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::skill_close_init() { + setAButtonString(0); + setBButtonString(0); } -#pragma pop /* 801B59E4-801B5A60 1B0324 007C+00 1/0 0/0 0/0 .text skill_close_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::skill_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/skill_close_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::skill_close_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpSkillScrn->getStatus() == 3) { + mpSkillScrn->_close(); + } + if (mpSkillScrn->getStatus() == 0) { + field_0x22c = 0; + mpDrawCursor->onPlayAllAnime(); + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B5A60-801B5B00 1B03A0 00A0+00 1/0 0/0 0/0 .text insect_open_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::insect_open_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/insect_open_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::insect_open_init() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (!mpInsectScrn) { + mpInsectScrn = new dMenu_Insect_c(mpSubHeap, field_0x10, field_0x14, 0); + } + setAButtonString(0); + setBButtonString(0); + mpDrawCursor->offPlayAllAnime(); + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B5B00-801B5B70 1B0440 0070+00 1/0 0/0 0/0 .text insect_open_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::insect_open_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/insect_open_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::insect_open_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpInsectScrn->getStatus() == 1) { + mpInsectScrn->_open(); + } + if (mpInsectScrn->getStatus() == 2) { + field_0x22c = 17; + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B5B70-801B5BAC 1B04B0 003C+00 1/0 0/0 0/0 .text insect_move_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::insect_move_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/insect_move_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::insect_move_init() { + setAButtonString(0x040c); + setBButtonString(0x03f9); } -#pragma pop /* 801B5BAC-801B5C1C 1B04EC 0070+00 1/0 0/0 0/0 .text insect_move_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::insect_move_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/insect_move_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::insect_move_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpInsectScrn->getStatus() == 2) { + mpInsectScrn->_move(); + } + if (mpInsectScrn->getStatus() == 3) { + field_0x22c = 18; + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B5C1C-801B5C58 1B055C 003C+00 1/0 0/0 0/0 .text insect_close_init__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::insect_close_init() { - nofralloc -#include "asm/d/menu/d_menu_collect/insect_close_init__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::insect_close_init() { + setAButtonString(0); + setBButtonString(0); } -#pragma pop /* 801B5C58-801B5CD4 1B0598 007C+00 1/0 0/0 0/0 .text insect_close_proc__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::insect_close_proc() { - nofralloc -#include "asm/d/menu/d_menu_collect/insect_close_proc__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::insect_close_proc() { + JKRHeap* heap = mDoExt_setCurrentHeap(mpSubHeap); + if (mpInsectScrn->getStatus() == 3) { + mpInsectScrn->_close(); + } + if (mpInsectScrn->getStatus() == 0) { + field_0x22c = 0; + mpDrawCursor->onPlayAllAnime(); + } + mDoExt_setCurrentHeap(heap); } -#pragma pop /* 801B5CD4-801B5D70 1B0614 009C+00 1/1 0/0 0/0 .text _move__17dMenu_Collect2D_cFv */ #pragma push @@ -1922,25 +2025,18 @@ asm void dMenu_Collect2D_c::_draw() { #pragma pop /* 801B5F48-801B5F84 1B0888 003C+00 1/1 0/0 0/0 .text drawTop__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::drawTop() { - nofralloc -#include "asm/d/menu/d_menu_collect/drawTop__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::drawTop() { + dComIfGd_set2DOpaTop(mpDraw2DTop); } -#pragma pop /* 801B5F84-801B5FAC 1B08C4 0028+00 0/0 1/1 0/0 .text isKeyCheck__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool dMenu_Collect2D_c::isKeyCheck() { - nofralloc -#include "asm/d/menu/d_menu_collect/isKeyCheck__17dMenu_Collect2D_cFv.s" +bool dMenu_Collect2D_c::isKeyCheck() { + if (field_0x22c || field_0x25f) { + return true; + } + return false; } -#pragma pop /* 801B5FAC-801B5FB4 1B08EC 0008+00 0/0 1/1 0/0 .text isOutCheck__17dMenu_Collect2D_cFv */ @@ -2001,17 +2097,41 @@ asm void dMenu_Collect2D_c::setItemNameString(u8 param_0, u8 param_1) { /* 801B6344-801B6454 1B0C84 0110+00 1/1 0/0 0/0 .text setItemNameStringNull__17dMenu_Collect2D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect2D_c::setItemNameStringNull() { - nofralloc -#include "asm/d/menu/d_menu_collect/setItemNameStringNull__17dMenu_Collect2D_cFv.s" +void dMenu_Collect2D_c::setItemNameStringNull() { + field_0x182 = 0; + J2DTextBox* textBox = (J2DTextBox*)mpScreen->search('item_n04'); + strcpy(textBox->getStringPtr(), ""); + textBox = (J2DTextBox*)mpScreen->search('item_n05'); + strcpy(textBox->getStringPtr(), ""); + textBox = (J2DTextBox*)mpScreen->search('item_n06'); + strcpy(textBox->getStringPtr(), ""); + textBox = (J2DTextBox*)mpScreen->search('item_n07'); + strcpy(textBox->getStringPtr(), ""); } -#pragma pop /* 801B6454-801B6538 1B0D94 00E4+00 1/1 0/0 0/0 .text * __ct__17dMenu_Collect3D_cFP10JKRExpHeapP17dMenu_Collect2D_cP10CSTControl */ +// matches with literals +#ifdef NONMATCHING +dMenu_Collect3D_c::dMenu_Collect3D_c(JKRExpHeap* param_0, dMenu_Collect2D_c* param_1, + CSTControl* param_2) { + field_0x24 = daPy_py_c::i_checkNowWolf(); + mpHeap = param_0; + mpSolidHeap = NULL; + field_0x14 = param_2; + mpCollect2D = param_1; + if (field_0x24) { + field_0x3d8 = -20748; + } else { + field_0x3d8 = -23324; + } + field_0x3d0 = 0.0f; + field_0x3d4 = 0.0f; + field_0x3c8 = 0.0f; + field_0x3c4 = 0.0f; + field_0x3cc = 1.0f; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2021,8 +2141,18 @@ asm dMenu_Collect3D_c::dMenu_Collect3D_c(JKRExpHeap* param_0, dMenu_Collect2D_c* #include "asm/d/menu/d_menu_collect/__ct__17dMenu_Collect3D_cFP10JKRExpHeapP17dMenu_Collect2D_cP10CSTControl.s" } #pragma pop +#endif /* 801B6538-801B65A8 1B0E78 0070+00 1/0 0/0 0/0 .text __dt__17dMenu_Collect3D_cFv */ +// matches with vtable data +#ifdef NONMATCHING +dMenu_Collect3D_c::~dMenu_Collect3D_c() { + if (mpSolidHeap) { + mDoExt_destroySolidHeap(mpSolidHeap); + mpSolidHeap = NULL; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2032,6 +2162,7 @@ extern "C" asm void __dt__17dMenu_Collect3D_cFv() { #include "asm/d/menu/d_menu_collect/__dt__17dMenu_Collect3D_cFv.s" } #pragma pop +#endif /* 801B65A8-801B6694 1B0EE8 00EC+00 1/1 0/0 0/0 .text _create__17dMenu_Collect3D_cFv */ #pragma push @@ -2044,14 +2175,11 @@ asm void dMenu_Collect3D_c::_create() { #pragma pop /* 801B6694-801B66C8 1B0FD4 0034+00 1/1 0/0 0/0 .text _delete__17dMenu_Collect3D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect3D_c::_delete() { - nofralloc -#include "asm/d/menu/d_menu_collect/_delete__17dMenu_Collect3D_cFv.s" +void dMenu_Collect3D_c::_delete() { + if (daAlink_getAlinkActorClass()) { + daAlink_getAlinkActorClass()->resetStatusWindow(); + } } -#pragma pop /* ############################################################################################## */ /* 80453F80-80453F84 002580 0004+00 1/1 0/0 0/0 .sdata2 @7324 */ @@ -2104,14 +2232,19 @@ asm void dMenu_Collect3D_c::_move(u8 param_0, u8 param_1) { #pragma pop /* 801B696C-801B6A30 1B12AC 00C4+00 1/1 0/0 0/0 .text draw__17dMenu_Collect3D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect3D_c::draw() { - nofralloc -#include "asm/d/menu/d_menu_collect/draw__17dMenu_Collect3D_cFv.s" +void dMenu_Collect3D_c::draw() { + dComIfGd_setListItem3D(); + if (daAlink_getAlinkActorClass()) { + daAlink_getAlinkActorClass()->statusWindowDraw(); + } + if (mpModel) { + g_env_light.settingTevStruct(13, &field_0x3b0, &field_0x28); + g_env_light.setLightTevColorType_MAJI(mpModel, &field_0x28); + animeEntry(); + mDoExt_modelUpdateDL(mpModel); + } + dComIfGd_setList(); } -#pragma pop /* 801B6A30-801B6D30 1B1370 0300+00 2/2 0/0 0/0 .text setJ3D__17dMenu_Collect3D_cFPCcPCcPCc */ #pragma push @@ -2258,25 +2391,29 @@ asm void dMenu_Collect3D_c::createMirrorModel() { #pragma pop /* 801B7434-801B749C 1B1D74 0068+00 5/5 0/0 0/0 .text getCrystalNum__17dMenu_Collect3D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect3D_c::getCrystalNum() { - nofralloc -#include "asm/d/menu/d_menu_collect/getCrystalNum__17dMenu_Collect3D_cFv.s" +int dMenu_Collect3D_c::getCrystalNum() { + int count = 0; + for (int i = 0; i < 4; i++) { + if (!dComIfGs_isCollectCrystal(i)) { + break; + } + count++; + } + return count; } -#pragma pop /* 801B749C-801B7504 1B1DDC 0068+00 5/5 0/0 0/0 .text getMirrorNum__17dMenu_Collect3D_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect3D_c::getMirrorNum() { - nofralloc -#include "asm/d/menu/d_menu_collect/getMirrorNum__17dMenu_Collect3D_cFv.s" +int dMenu_Collect3D_c::getMirrorNum() { + int count = 0; + for (int i = 0; i < 4; i++) { + if (!dComIfGs_isCollectMirror(i)) { + break; + } + count++; + } + return count; } -#pragma pop /* 801B7504-801B75E8 1B1E44 00E4+00 4/4 0/0 0/0 .text getMaskMdlVisible__17dMenu_Collect3D_cFv */ #pragma push @@ -2316,14 +2453,26 @@ SECTION_SDATA2 static f32 lit_7949[1 + 1 /* padding */] = { }; /* 801B75E8-801B7660 1B1F28 0078+00 0/0 1/1 0/0 .text setupItem3D__17dMenu_Collect3D_cFPA4_f */ +// matches with literals +#ifdef NONMATCHING +void dMenu_Collect3D_c::setupItem3D(Mtx param_0) { + GXSetViewport(0.0, mViewOffsetY, 608.0, 448.0, 0.0, 1.0); + mViewOffsetY = -100.0; + Mtx44 projection; + C_MTXPerspective(projection, 45.0, mDoGph_gInf_c::getAspect(), 1.0, 100000.0); + GXSetProjection(projection, GX_PERSPECTIVE); + calcViewMtx(param_0); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Collect3D_c::setupItem3D(f32 (*param_0)[4]) { +asm void dMenu_Collect3D_c::setupItem3D(Mtx param_0) { nofralloc #include "asm/d/menu/d_menu_collect/setupItem3D__17dMenu_Collect3D_cFPA4_f.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80453FE0-80453FE8 0025E0 0008+00 1/1 0/0 0/0 .sdata2 @7963 */ @@ -2341,14 +2490,21 @@ asm void dMenu_Collect3D_c::toItem3Dpos(f32 param_0, f32 param_1, f32 param_2, c #pragma pop /* 801B774C-801B77A4 1B208C 0058+00 2/2 0/0 0/0 .text calcViewMtx__17dMenu_Collect3D_cFPA4_f */ +// matches with literals +#ifdef NONMATCHING +void dMenu_Collect3D_c::calcViewMtx(Mtx param_0) { + mDoMtx_lookAt(param_0, &cXyz(0.0f, 0.0f, -1000.0f), &cXyz::Zero, &cXyz(0.0f, 1.0f, 0.0f), 0); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Collect3D_c::calcViewMtx(f32 (*param_0)[4]) { +asm void dMenu_Collect3D_c::calcViewMtx(Mtx param_0) { nofralloc #include "asm/d/menu/d_menu_collect/calcViewMtx__17dMenu_Collect3D_cFPA4_f.s" } #pragma pop +#endif /* 801B77A4-801B78C0 1B20E4 011C+00 1/0 0/0 0/0 .text draw__20dMenu_Collect2DTop_cFv */ #pragma push @@ -2363,16 +2519,25 @@ extern "C" asm void draw__20dMenu_Collect2DTop_cFv() { /* 801B78C0-801B795C 1B2200 009C+00 0/0 1/1 0/0 .text * __ct__15dMenu_Collect_cFP10JKRExpHeapP9STControlP10CSTControl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMenu_Collect_c::dMenu_Collect_c(JKRExpHeap* param_0, STControl* param_1, CSTControl* param_2) { - nofralloc -#include "asm/d/menu/d_menu_collect/__ct__15dMenu_Collect_cFP10JKRExpHeapP9STControlP10CSTControl.s" +dMenu_Collect_c::dMenu_Collect_c(JKRExpHeap* param_0, STControl* param_1, CSTControl* param_2) { + mpCollect2D = new dMenu_Collect2D_c(param_0, param_1, param_2); + mpCollect3D = new dMenu_Collect3D_c(param_0, mpCollect2D, param_2); } -#pragma pop /* 801B795C-801B7A0C 1B229C 00B0+00 1/0 0/0 0/0 .text __dt__15dMenu_Collect_cFv */ +// matches with vtable data +#ifdef NONMATCHING +dMenu_Collect_c::~dMenu_Collect_c() { + if (mpCollect2D) { + delete mpCollect2D; + mpCollect2D = NULL; + } + if (mpCollect3D) { + delete mpCollect3D; + mpCollect3D = NULL; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2382,46 +2547,32 @@ extern "C" asm void __dt__15dMenu_Collect_cFv() { #include "asm/d/menu/d_menu_collect/__dt__15dMenu_Collect_cFv.s" } #pragma pop +#endif /* 801B7A0C-801B7A44 1B234C 0038+00 0/0 1/1 0/0 .text _create__15dMenu_Collect_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect_c::_create() { - nofralloc -#include "asm/d/menu/d_menu_collect/_create__15dMenu_Collect_cFv.s" +void dMenu_Collect_c::_create() { + mpCollect2D->_create(); + mpCollect3D->_create(); } -#pragma pop /* 801B7A44-801B7A7C 1B2384 0038+00 0/0 1/1 0/0 .text _delete__15dMenu_Collect_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect_c::_delete() { - nofralloc -#include "asm/d/menu/d_menu_collect/_delete__15dMenu_Collect_cFv.s" +void dMenu_Collect_c::_delete() { + mpCollect2D->_delete(); + mpCollect3D->_delete(); } -#pragma pop /* 801B7A7C-801B7AC0 1B23BC 0044+00 0/0 1/1 0/0 .text _move__15dMenu_Collect_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect_c::_move() { - nofralloc -#include "asm/d/menu/d_menu_collect/_move__15dMenu_Collect_cFv.s" +void dMenu_Collect_c::_move() { + mpCollect2D->_move(); + mpCollect3D->_move(mpCollect2D->getCursorX(), mpCollect2D->getCursorY()); } -#pragma pop /* 801B7AC0-801B7B14 1B2400 0054+00 0/0 1/1 0/0 .text draw__15dMenu_Collect_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMenu_Collect_c::draw() { - nofralloc -#include "asm/d/menu/d_menu_collect/draw__15dMenu_Collect_cFv.s" +void dMenu_Collect_c::draw() { + dComIfGd_set2DOpa(mpCollect2D); + mpCollect3D->draw(); + mpCollect2D->drawTop(); } -#pragma pop /* 801B7B14-801B7EB8 1B2454 03A4+00 0/0 1/0 0/0 .text __sinit_d_menu_collect_cpp */ #pragma push diff --git a/src/d/menu/d_menu_insect.cpp b/src/d/menu/d_menu_insect.cpp index 19eb040ea3..420f49057b 100644 --- a/src/d/menu/d_menu_insect.cpp +++ b/src/d/menu/d_menu_insect.cpp @@ -717,7 +717,7 @@ asm void dMenu_Insect_c::screenSetDoIcon() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Insect_c::getGetInsectNum() { +asm u8 dMenu_Insect_c::getGetInsectNum() { nofralloc #include "asm/d/menu/d_menu_insect/getGetInsectNum__14dMenu_Insect_cFv.s" } From dd24b7c2720f880fc9756d0159d384f70fcc834d Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Mon, 26 Jun 2023 20:57:22 -0600 Subject: [PATCH 05/35] add progress history, update, extend and integrate upload-progress --- tmp/cool.json | 0 tmp/tmp.blah | 0 tools/requirements.txt | 2 + tools/tp.py | 174 +++++++++++++++++++++++++++++++++++++++ tools/upload-progress.py | 62 -------------- 5 files changed, 176 insertions(+), 62 deletions(-) create mode 100644 tmp/cool.json create mode 100644 tmp/tmp.blah delete mode 100755 tools/upload-progress.py diff --git a/tmp/cool.json b/tmp/cool.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tmp/tmp.blah b/tmp/tmp.blah new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tools/requirements.txt b/tools/requirements.txt index d605202967..54a7aeb053 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -9,3 +9,5 @@ python-Levenshtein cxxfilt pyelftools requests +glob +git \ No newline at end of file diff --git a/tools/tp.py b/tools/tp.py index edb5b908be..5a4785c5ac 100644 --- a/tools/tp.py +++ b/tools/tp.py @@ -37,12 +37,15 @@ try: import libdol import libarc import requests + import glob + import git from rich.logging import RichHandler from rich.console import Console from rich.progress import Progress from rich.text import Text from rich.table import Table + from pprint import pprint except ImportError as ex: _handle_import_error(ex) @@ -1196,6 +1199,177 @@ def check_sha1(game_path: Path, build_path: Path, include_rels: bool): return True +def copy_progress_script(): + file_path = './tools/tp.py' + destination_path = './tools/tp_copy.py' + + if not os.path.exists(destination_path): + shutil.copyfile(file_path, destination_path) + +def make_progress_dir(): + progress_dir = './progress' + + if not os.path.exists(progress_dir): + os.mkdir(progress_dir) + +def generate_progress(repo, commit): + git_show_output = subprocess.check_output(['git', 'show', '-s', '--format=%ct', commit]).decode('ascii').strip() + commit_timestamp = git_show_output + + commit_string = f'progress/{commit_timestamp}_{commit}.json' + + if os.path.exists(commit_string): + print(f"File {commit_string} already exists, skipping.") + return + + process = subprocess.Popen(["make", "clean_all"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + stdout, stderr = process.communicate() + if process.returncode != 0: + print(f"Error during make clean_all: {stderr.decode()}") + return + + print(stdout.decode()) + + process = subprocess.Popen(["make", "all", "rels", f"-j{os.cpu_count()}", "WINE=~/wibo/build/wibo"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + stdout, stderr = process.communicate() + if process.returncode != 0: + print(f"Error during make all rels: {stderr.decode()}") + return + + print(stdout.decode()) + + command = ["python", "./tools/tp_copy.py", "progress", "-f", "JSON"] + + with open(commit_string, 'w') as outfile: + process = subprocess.Popen(command, stdout=outfile, stderr=subprocess.PIPE) + _, stderr = process.communicate() + + if process.returncode != 0: + print(f"Error: {stderr.decode()}") + +def checkout_and_run(repo_path, start_commit_hash): + repo = git.Repo(repo_path) + head_commit = repo.head.commit + + copy_progress_script() + make_progress_dir() + + try: + commits = list(repo.iter_commits(f'{start_commit_hash}..{head_commit.hexsha}')) + commits.append(repo.commit(start_commit_hash)) + + for commit in commits[::-1]: + print(f"Checking out commit {commit.hexsha}") + repo.git.checkout(commit.hexsha) + generate_progress(repo, commit.hexsha) + except Exception as e: + print(f"Error occurred: {e}") + finally: + repo.git.checkout(head_commit.hexsha) + +@tp.command(name="progress-history") +@click.option("--debug/--no-debug", default=False) +@click.option("--repo-path", default=".", required=False, help="Path to your git repository. Defaults to current directory.") +@click.option("--start-commit", default="bc428f7f65b97cc9035aed1dc1b71c54ff2e6c3d", required=False, help="Start commit hash. If none supplied, will start at the commit where Julgodis added the progress script.") +def progress_history(debug, repo_path, start_commit): + if debug: + LOG.setLevel(logging.DEBUG) + + LOG.warning(f"This command will generate the progress for every commit since {start_commit}. This could take many hours to complete. Are you sure you want to do this? (y/n)") + confirmation = input().lower() + + if confirmation == 'y': + checkout_and_run(repo_path, start_commit) + else: + sys.exit(0) + +def get_git_commit_timestamp() -> int: + return int(subprocess.check_output(['git', 'show', '-s', '--format=%ct']).decode('ascii').rstrip()) + +def get_git_commit_sha() -> str: + return subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode('ascii').strip() + +def generate_url(base_url: str, project: str, version: str) -> str: + url_components = [base_url.rstrip('/'), 'data'] + + for arg in [project, version.replace('.', '-')]: + if arg != "": + url_components.append(arg) + + return str.join('/', url_components) + '/' + +@tp.command(name="upload-progress") +@click.option("--debug/--no-debug") +@click.option('-b', '--base_url', required=True, help='API base URL') +@click.option('-a', '--api_key', required=False, default=os.environ.get('PROGRESS_API_KEY'), help='API key (env var PROGRESS_API_KEY)') +@click.option('-p', '--project', required=True, help='Project slug') +@click.option('-v', '--version', required=True, help='Version slug') +@click.argument('input', type=click.Path(exists=True)) +def upload_progress(debug, base_url, api_key, project, version, input): + if debug: + LOG.setLevel(logging.DEBUG) + + if not api_key: + raise click.UsageError("API key required") + + url = generate_url(base_url, project, version) + + entries = [] + + # Check if input is a directory + if os.path.isdir(input): + LOG.debug(f'Loading all JSON files in directory {input}') + + # Read all JSON files in the directory + json_files = glob.glob(os.path.join(input, "*.json")) + + for json_file in json_files: + # Extract timestamp and commit SHA from filename + filename = Path(json_file).stem + parts = filename.split('_') + + if len(parts) != 2 or not parts[0].isdigit() or len(parts[1]) != 40: + LOG.error(f"Filename '{filename}' is not in the correct format. When supplying an entire directory with JSON files in it, the filenames need to be in the format: '_.json' in order for Frogress to properly understand the data.") + sys.exit(1) + + timestamp, git_hash = parts + + with open(json_file, "r") as f: + data = json.load(f) + entries.append({ + "timestamp": int(timestamp), + "git_hash": git_hash, + "categories": { + "default": data, + }, + }) + else: + # Process a single JSON file + with open(input, "r") as f: + LOG.debug(f'Loading single JSON file {f.name}') + data = json.load(f) + entries.append({ + "timestamp": get_git_commit_timestamp(), + "git_hash": get_git_commit_sha(), + "categories": { + "default": data, + }, + }) + + for entry in entries: + LOG.info(f"Publishing entry to {url}") + LOG.debug(f"Entry: {entry}") + data = { + "api_key": api_key, + "entries": [entry], # only send current entry + } + try: + r = requests.post(url, json=data) + r.raise_for_status() + except requests.exceptions.HTTPError as err: + LOG.error(f"HTTP request failed: {err}") + exit(1) + if __name__ == "__main__": tp() diff --git a/tools/upload-progress.py b/tools/upload-progress.py deleted file mode 100755 index d12e7caf1d..0000000000 --- a/tools/upload-progress.py +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env python3 -import argparse -import json -import os -import subprocess -from pprint import pprint - -import requests - - -def get_git_commit_timestamp() -> int: - return int(subprocess.check_output(['git', 'show', '-s', '--format=%ct']).decode('ascii').rstrip()) - - -def get_git_commit_sha() -> str: - return subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode('ascii').strip() - - -def generate_url(args: argparse.Namespace) -> str: - url_components = [args.base_url.rstrip('/'), 'data'] - - for arg in [args.project, args.version.replace('.', '-')]: - if arg != "": - url_components.append(arg) - - return str.join('/', url_components) + '/' - - -if __name__ == '__main__': - parser = argparse.ArgumentParser(description="Upload progress information.") - parser.add_argument("-b", "--base_url", help="API base URL", required=True) - parser.add_argument("-a", "--api_key", help="API key (env var PROGRESS_API_KEY)") - parser.add_argument("-p", "--project", help="Project slug", required=True) - parser.add_argument("-v", "--version", help="Version slug", required=True) - parser.add_argument("input", help="Progress JSON input") - - args = parser.parse_args() - api_key = args.api_key or os.environ.get("PROGRESS_API_KEY") - if not api_key: - raise "API key required" - url = generate_url(args) - - entries = [] - with open(args.input, "r") as f: - data = json.load(f) - entries.append({ - "timestamp": get_git_commit_timestamp(), - "git_hash": get_git_commit_sha(), - "categories": { - "default": data, - }, - }) - - print("Publishing entries to", url) - pprint(entries) - data = { - "api_key": api_key, - "entries": entries, - } - r = requests.post(url, json=data) - r.raise_for_status() - print("Done!") \ No newline at end of file From 67342c1da9676972804db224df9dba2956a3d3a4 Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Mon, 26 Jun 2023 20:58:08 -0600 Subject: [PATCH 06/35] fix github action --- .github/workflows/cd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 8509db580f..5894449176 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -32,4 +32,4 @@ jobs: - name: Upload Progress to Frogress env: PROGRESS_API_KEY: ${{ secrets.FROGRESS_API_KEY }} - run: ./tools/upload-progress.py -b https://progress.deco.mp/ -p twilightprincess -v gcn_usa progress-${{ steps.get_run_id.outputs.run_id }}.json \ No newline at end of file + run: ./tp upload-progress -b https://progress.deco.mp/ -p twilightprincess -v gcn_usa progress-${{ steps.get_run_id.outputs.run_id }}.json \ No newline at end of file From 9848341fa81792c733a3ec794e97c85d4e6c6f3f Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Mon, 26 Jun 2023 21:05:24 -0600 Subject: [PATCH 07/35] rm tmp dir and files --- tmp/cool.json | 0 tmp/tmp.blah | 0 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tmp/cool.json delete mode 100644 tmp/tmp.blah diff --git a/tmp/cool.json b/tmp/cool.json deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tmp/tmp.blah b/tmp/tmp.blah deleted file mode 100644 index e69de29bb2..0000000000 From 74049a906fffec888d064cd197ca50917d419123 Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Mon, 26 Jun 2023 21:05:52 -0600 Subject: [PATCH 08/35] rm pprint --- tools/tp.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/tp.py b/tools/tp.py index 5a4785c5ac..f9b227bcb4 100644 --- a/tools/tp.py +++ b/tools/tp.py @@ -45,7 +45,6 @@ try: from rich.progress import Progress from rich.text import Text from rich.table import Table - from pprint import pprint except ImportError as ex: _handle_import_error(ex) From ab448be65863490c83a817dd921baf20dabc4de4 Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Mon, 26 Jun 2023 22:03:31 -0600 Subject: [PATCH 09/35] rm glob (stdlib), change to GitPython --- tools/requirements.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/requirements.txt b/tools/requirements.txt index 54a7aeb053..275d38be3b 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -9,5 +9,4 @@ python-Levenshtein cxxfilt pyelftools requests -glob -git \ No newline at end of file +GitPython \ No newline at end of file From 205cdc0c50521add330dbf84d6aa1118ab3b3417 Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Tue, 27 Jun 2023 11:16:48 -0600 Subject: [PATCH 10/35] Progress fix (#354) * add python deps, print -> LOG * add type hinting * add more debug loggin * more python deps * aciton fix * make wibo optional for progress history --- .github/workflows/cd.yml | 5 ++++- tools/tp.py | 48 +++++++++++++++++++++++----------------- 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 5894449176..f1c45f0a37 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -29,7 +29,10 @@ jobs: run_id: ${{ steps.get_run_id.outputs.run_id }} name: artifact-${{ steps.get_run_id.outputs.run_id }} workflow: ${{ env.WORKFLOW }} + - name: Install Python Deps + run: | + pip install GitPython rich - name: Upload Progress to Frogress env: PROGRESS_API_KEY: ${{ secrets.FROGRESS_API_KEY }} - run: ./tp upload-progress -b https://progress.deco.mp/ -p twilightprincess -v gcn_usa progress-${{ steps.get_run_id.outputs.run_id }}.json \ No newline at end of file + run: ./tp upload-progress progress-${{ steps.get_run_id.outputs.run_id }}.json -b https://progress.deco.mp/ -p twilightprincess -v gcn_usa \ No newline at end of file diff --git a/tools/tp.py b/tools/tp.py index f9b227bcb4..148d0dc28b 100644 --- a/tools/tp.py +++ b/tools/tp.py @@ -45,6 +45,7 @@ try: from rich.progress import Progress from rich.text import Text from rich.table import Table + from typing import Optional except ImportError as ex: _handle_import_error(ex) @@ -1198,55 +1199,60 @@ def check_sha1(game_path: Path, build_path: Path, include_rels: bool): return True -def copy_progress_script(): +def copy_progress_script() -> None: file_path = './tools/tp.py' destination_path = './tools/tp_copy.py' if not os.path.exists(destination_path): shutil.copyfile(file_path, destination_path) -def make_progress_dir(): +def make_progress_dir() -> None: progress_dir = './progress' if not os.path.exists(progress_dir): os.mkdir(progress_dir) -def generate_progress(repo, commit): +def generate_progress(commit: str, wibo_path: Optional[str] = None) -> None: git_show_output = subprocess.check_output(['git', 'show', '-s', '--format=%ct', commit]).decode('ascii').strip() commit_timestamp = git_show_output commit_string = f'progress/{commit_timestamp}_{commit}.json' if os.path.exists(commit_string): - print(f"File {commit_string} already exists, skipping.") + LOG.info(f"File {commit_string} already exists, skipping.") return process = subprocess.Popen(["make", "clean_all"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() if process.returncode != 0: - print(f"Error during make clean_all: {stderr.decode()}") + LOG.error(f"Error during make clean_all: {stderr.decode()}") return + + LOG.debug(f"stdout: {stdout.decode()}") - print(stdout.decode()) - - process = subprocess.Popen(["make", "all", "rels", f"-j{os.cpu_count()}", "WINE=~/wibo/build/wibo"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + make_command = ["make", "all", "rels", f"-j{os.cpu_count()}"] + if wibo_path: + make_command.append(f"WINE={wibo_path}") + process = subprocess.Popen(make_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() + if process.returncode != 0: - print(f"Error during make all rels: {stderr.decode()}") + LOG.error(f"Error during make all rels: {stderr.decode()}") return - print(stdout.decode()) - + LOG.debug(f"stdout: {stdout.decode()}") command = ["python", "./tools/tp_copy.py", "progress", "-f", "JSON"] with open(commit_string, 'w') as outfile: process = subprocess.Popen(command, stdout=outfile, stderr=subprocess.PIPE) - _, stderr = process.communicate() + stdout, stderr = process.communicate() if process.returncode != 0: - print(f"Error: {stderr.decode()}") + LOG.error(f"Error: {stderr.decode()}") + + LOG.debug(f"stdout: {stdout.decode()}") -def checkout_and_run(repo_path, start_commit_hash): +def checkout_and_run(repo_path: str, start_commit_hash: str, wibo_path: Optional[str] = None) -> None: repo = git.Repo(repo_path) head_commit = repo.head.commit @@ -1258,19 +1264,21 @@ def checkout_and_run(repo_path, start_commit_hash): commits.append(repo.commit(start_commit_hash)) for commit in commits[::-1]: - print(f"Checking out commit {commit.hexsha}") + LOG.info(f"Checking out commit {commit.hexsha}") repo.git.checkout(commit.hexsha) - generate_progress(repo, commit.hexsha) + generate_progress(commit.hexsha, wibo_path) except Exception as e: - print(f"Error occurred: {e}") + LOG.error(f"Error occurred: {e}") finally: + LOG.debug(f"Checking out origin head commit: {head_commit.hexsha}") repo.git.checkout(head_commit.hexsha) @tp.command(name="progress-history") @click.option("--debug/--no-debug", default=False) @click.option("--repo-path", default=".", required=False, help="Path to your git repository. Defaults to current directory.") @click.option("--start-commit", default="bc428f7f65b97cc9035aed1dc1b71c54ff2e6c3d", required=False, help="Start commit hash. If none supplied, will start at the commit where Julgodis added the progress script.") -def progress_history(debug, repo_path, start_commit): +@click.option("--wibo-path", default=None, required=False, help="Path to wibo build. If none supplied, the default Wine will be used.") +def progress_history(debug, repo_path, start_commit, wibo_path): if debug: LOG.setLevel(logging.DEBUG) @@ -1278,7 +1286,7 @@ def progress_history(debug, repo_path, start_commit): confirmation = input().lower() if confirmation == 'y': - checkout_and_run(repo_path, start_commit) + checkout_and_run(repo_path, start_commit, wibo_path) else: sys.exit(0) @@ -1304,7 +1312,7 @@ def generate_url(base_url: str, project: str, version: str) -> str: @click.option('-p', '--project', required=True, help='Project slug') @click.option('-v', '--version', required=True, help='Version slug') @click.argument('input', type=click.Path(exists=True)) -def upload_progress(debug, base_url, api_key, project, version, input): +def upload_progress(debug: bool, base_url: str, api_key: str, project: str, version: str, input: str) -> None: if debug: LOG.setLevel(logging.DEBUG) From 4433f4170b3c808563734f0a3e622314a2dcbbb5 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Tue, 27 Jun 2023 16:14:31 -0700 Subject: [PATCH 11/35] 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 e011115c26..114151fcc6 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 bef18638c3..b4927ab8f3 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 dd29f9270c..512c55baa8 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 2032527a83..1cb1c04005 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 e5dbb20c5b..0146c7907a 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 2b46d7f821..f9e92762bf 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 8be6e59d31..887be1a806 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 56cfd9f1da..31f931b973 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 93fa38f986..51312049dd 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 d4e86a802f..c06a9564e3 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 f6c4c6b2f4..9b6ba08756 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 ac22d565bd..f29e2902b9 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 88cbeef092a5dc852cd4c7d79fc0ac79565ec432 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Tue, 27 Jun 2023 16:19:53 -0700 Subject: [PATCH 12/35] 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 3918423618..b1d9656869 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 4c29ffb81d..cae6db2830 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; From bf6eed12352c33819e92b19ee1ed2107f3013f52 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Wed, 28 Jun 2023 14:54:53 +0300 Subject: [PATCH 13/35] Work on d_com_static --- Progress.md | 8 +- .../checkArea__13daTagStream_cFPC4cXyz.s | 41 --- .../check__7daSus_cFP10fopAc_ac_c.s | 58 ---- .../d_com_static/check__7daSus_cFScRC4cXyz.s | 45 --- .../deleteRoomFlower__9daGrass_cFi.s | 24 -- .../deleteRoomGrass__9daGrass_cFi.s | 24 -- .../entry__10daMirror_cFP8J3DModel.s | 20 -- asm/d/com/d_com_static/execute__7daSus_cFv.s | 30 -- .../d_com_static/getPos__12daObjCarry_cFi.s | 6 - .../com/d_com_static/remove__10daMirror_cFv.s | 17 -- asm/d/com/d_com_static/reset__7daSus_cFv.s | 33 --- .../savePos__12daObjCarry_cFi4cXyz.s | 12 - include/rel/d/a/d_a_suspend/d_a_suspend.h | 5 +- .../rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h | 6 +- src/d/com/d_com_static.cpp | 263 ++++++++++-------- 15 files changed, 157 insertions(+), 435 deletions(-) delete mode 100644 asm/d/com/d_com_static/checkArea__13daTagStream_cFPC4cXyz.s delete mode 100644 asm/d/com/d_com_static/check__7daSus_cFP10fopAc_ac_c.s delete mode 100644 asm/d/com/d_com_static/check__7daSus_cFScRC4cXyz.s delete mode 100644 asm/d/com/d_com_static/deleteRoomFlower__9daGrass_cFi.s delete mode 100644 asm/d/com/d_com_static/deleteRoomGrass__9daGrass_cFi.s delete mode 100644 asm/d/com/d_com_static/entry__10daMirror_cFP8J3DModel.s delete mode 100644 asm/d/com/d_com_static/execute__7daSus_cFv.s delete mode 100644 asm/d/com/d_com_static/getPos__12daObjCarry_cFi.s delete mode 100644 asm/d/com/d_com_static/remove__10daMirror_cFv.s delete mode 100644 asm/d/com/d_com_static/reset__7daSus_cFv.s delete mode 100644 asm/d/com/d_com_static/savePos__12daObjCarry_cFi4cXyz.s diff --git a/Progress.md b/Progress.md index 0cc4d098d9..180ee9be64 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 27.738852% | 997640 | 3596544 +.text | 27.769659% | 998748 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 35.356677% | 1421576 | 4020672 +Total | 35.384234% | 1422684 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 35.356677% | 1421576 | 4020672 +main.dol | 35.384234% | 1422684 | 4020672 RELs | 33.657973% | 3870776 | 11500324 -Total | 34.098018% | 5292352 | 15520996 +Total | 34.105157% | 5293460 | 15520996 ## RELs diff --git a/asm/d/com/d_com_static/checkArea__13daTagStream_cFPC4cXyz.s b/asm/d/com/d_com_static/checkArea__13daTagStream_cFPC4cXyz.s deleted file mode 100644 index 2f81d832a7..0000000000 --- a/asm/d/com/d_com_static/checkArea__13daTagStream_cFPC4cXyz.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_800318B4: -/* 800318B4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800318B8 7C 08 02 A6 */ mflr r0 -/* 800318BC 90 01 00 24 */ stw r0, 0x24(r1) -/* 800318C0 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 800318C4 7C 7F 1B 78 */ mr r31, r3 -/* 800318C8 38 A1 00 08 */ addi r5, r1, 8 -/* 800318CC 4B FE C0 35 */ bl fpoAcM_relativePos__FPC10fopAc_ac_cPC4cXyzP4cXyz -/* 800318D0 C0 21 00 0C */ lfs f1, 0xc(r1) -/* 800318D4 C0 02 83 54 */ lfs f0, lit_4338(r2) -/* 800318D8 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800318DC 4C 41 13 82 */ cror 2, 1, 2 -/* 800318E0 40 82 00 54 */ bne lbl_80031934 -/* 800318E4 C0 1F 04 F0 */ lfs f0, 0x4f0(r31) -/* 800318E8 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 800318EC 4C 40 13 82 */ cror 2, 0, 2 -/* 800318F0 40 82 00 44 */ bne lbl_80031934 -/* 800318F4 C0 01 00 08 */ lfs f0, 8(r1) -/* 800318F8 FC 00 02 10 */ fabs f0, f0 -/* 800318FC FC 20 00 18 */ frsp f1, f0 -/* 80031900 C0 1F 04 EC */ lfs f0, 0x4ec(r31) -/* 80031904 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80031908 4C 40 13 82 */ cror 2, 0, 2 -/* 8003190C 40 82 00 28 */ bne lbl_80031934 -/* 80031910 C0 01 00 10 */ lfs f0, 0x10(r1) -/* 80031914 FC 00 02 10 */ fabs f0, f0 -/* 80031918 FC 20 00 18 */ frsp f1, f0 -/* 8003191C C0 1F 04 F4 */ lfs f0, 0x4f4(r31) -/* 80031920 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80031924 4C 40 13 82 */ cror 2, 0, 2 -/* 80031928 40 82 00 0C */ bne lbl_80031934 -/* 8003192C 38 60 00 01 */ li r3, 1 -/* 80031930 48 00 00 08 */ b lbl_80031938 -lbl_80031934: -/* 80031934 38 60 00 00 */ li r3, 0 -lbl_80031938: -/* 80031938 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8003193C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80031940 7C 08 03 A6 */ mtlr r0 -/* 80031944 38 21 00 20 */ addi r1, r1, 0x20 -/* 80031948 4E 80 00 20 */ blr diff --git a/asm/d/com/d_com_static/check__7daSus_cFP10fopAc_ac_c.s b/asm/d/com/d_com_static/check__7daSus_cFP10fopAc_ac_c.s deleted file mode 100644 index a89ff14365..0000000000 --- a/asm/d/com/d_com_static/check__7daSus_cFP10fopAc_ac_c.s +++ /dev/null @@ -1,58 +0,0 @@ -lbl_800314D4: -/* 800314D4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800314D8 7C 08 02 A6 */ mflr r0 -/* 800314DC 90 01 00 24 */ stw r0, 0x24(r1) -/* 800314E0 39 61 00 20 */ addi r11, r1, 0x20 -/* 800314E4 48 33 0C F5 */ bl _savegpr_28 -/* 800314E8 7C 7F 1B 78 */ mr r31, r3 -/* 800314EC 88 03 04 96 */ lbz r0, 0x496(r3) -/* 800314F0 28 00 00 01 */ cmplwi r0, 1 -/* 800314F4 41 82 00 98 */ beq lbl_8003158C -/* 800314F8 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 800314FC 28 00 00 05 */ cmplwi r0, 5 -/* 80031500 41 82 00 8C */ beq lbl_8003158C -/* 80031504 3C 60 80 42 */ lis r3, mData__7daSus_c@ha /* 0x80423FFC@ha */ -/* 80031508 38 03 3F FC */ addi r0, r3, mData__7daSus_c@l /* 0x80423FFC@l */ -/* 8003150C 7C 1E 03 78 */ mr r30, r0 -/* 80031510 3B A0 00 00 */ li r29, 0 -/* 80031514 3B 80 00 00 */ li r28, 0 -/* 80031518 48 00 00 34 */ b lbl_8003154C -lbl_8003151C: -/* 8003151C 88 1E 00 00 */ lbz r0, 0(r30) -/* 80031520 7C 00 07 75 */ extsb. r0, r0 -/* 80031524 41 80 00 20 */ blt lbl_80031544 -/* 80031528 88 1E 00 04 */ lbz r0, 4(r30) -/* 8003152C 28 00 00 00 */ cmplwi r0, 0 -/* 80031530 40 82 00 14 */ bne lbl_80031544 -/* 80031534 7F C3 F3 78 */ mr r3, r30 -/* 80031538 7F E4 FB 78 */ mr r4, r31 -/* 8003153C 4B FF FB 8D */ bl check__Q27daSus_c6data_cFP10fopAc_ac_c -/* 80031540 7F BD 1B 78 */ or r29, r29, r3 -lbl_80031544: -/* 80031544 3B DE 00 24 */ addi r30, r30, 0x24 -/* 80031548 3B 9C 00 01 */ addi r28, r28, 1 -lbl_8003154C: -/* 8003154C 7F 80 07 34 */ extsh r0, r28 -/* 80031550 2C 00 00 20 */ cmpwi r0, 0x20 -/* 80031554 41 80 FF C8 */ blt lbl_8003151C -/* 80031558 57 A3 06 3E */ clrlwi r3, r29, 0x18 -/* 8003155C 57 A0 06 31 */ rlwinm. r0, r29, 0, 0x18, 0x18 -/* 80031560 41 82 00 2C */ beq lbl_8003158C -/* 80031564 54 60 07 BE */ clrlwi r0, r3, 0x1e -/* 80031568 2C 00 00 03 */ cmpwi r0, 3 -/* 8003156C 40 82 00 14 */ bne lbl_80031580 -/* 80031570 80 1F 04 9C */ lwz r0, 0x49c(r31) -/* 80031574 64 00 20 00 */ oris r0, r0, 0x2000 -/* 80031578 90 1F 04 9C */ stw r0, 0x49c(r31) -/* 8003157C 48 00 00 10 */ b lbl_8003158C -lbl_80031580: -/* 80031580 80 1F 04 9C */ lwz r0, 0x49c(r31) -/* 80031584 54 00 00 C2 */ rlwinm r0, r0, 0, 3, 1 -/* 80031588 90 1F 04 9C */ stw r0, 0x49c(r31) -lbl_8003158C: -/* 8003158C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80031590 48 33 0C 95 */ bl _restgpr_28 -/* 80031594 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80031598 7C 08 03 A6 */ mtlr r0 -/* 8003159C 38 21 00 20 */ addi r1, r1, 0x20 -/* 800315A0 4E 80 00 20 */ blr diff --git a/asm/d/com/d_com_static/check__7daSus_cFScRC4cXyz.s b/asm/d/com/d_com_static/check__7daSus_cFScRC4cXyz.s deleted file mode 100644 index 49d28c962d..0000000000 --- a/asm/d/com/d_com_static/check__7daSus_cFScRC4cXyz.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_80031434: -/* 80031434 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80031438 7C 08 02 A6 */ mflr r0 -/* 8003143C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80031440 39 61 00 20 */ addi r11, r1, 0x20 -/* 80031444 48 33 0D 95 */ bl _savegpr_28 -/* 80031448 7C 9C 23 78 */ mr r28, r4 -/* 8003144C 3C 80 80 42 */ lis r4, mData__7daSus_c@ha /* 0x80423FFC@ha */ -/* 80031450 38 04 3F FC */ addi r0, r4, mData__7daSus_c@l /* 0x80423FFC@l */ -/* 80031454 7C 1E 03 78 */ mr r30, r0 -/* 80031458 3B A0 00 00 */ li r29, 0 -/* 8003145C 7C 7F 07 74 */ extsb r31, r3 -/* 80031460 48 00 00 4C */ b lbl_800314AC -lbl_80031464: -/* 80031464 88 7E 00 00 */ lbz r3, 0(r30) -/* 80031468 7C 60 07 75 */ extsb. r0, r3 -/* 8003146C 41 80 00 38 */ blt lbl_800314A4 -/* 80031470 7C 60 07 74 */ extsb r0, r3 -/* 80031474 7C 1F 00 00 */ cmpw r31, r0 -/* 80031478 40 82 00 2C */ bne lbl_800314A4 -/* 8003147C 88 1E 00 04 */ lbz r0, 4(r30) -/* 80031480 28 00 00 00 */ cmplwi r0, 0 -/* 80031484 41 82 00 20 */ beq lbl_800314A4 -/* 80031488 7F C3 F3 78 */ mr r3, r30 -/* 8003148C 7F 84 E3 78 */ mr r4, r28 -/* 80031490 4B FF FB A9 */ bl check__Q27daSus_c6data_cFRC4cXyz -/* 80031494 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80031498 41 82 00 0C */ beq lbl_800314A4 -/* 8003149C 38 60 00 01 */ li r3, 1 -/* 800314A0 48 00 00 1C */ b lbl_800314BC -lbl_800314A4: -/* 800314A4 3B DE 00 24 */ addi r30, r30, 0x24 -/* 800314A8 3B BD 00 01 */ addi r29, r29, 1 -lbl_800314AC: -/* 800314AC 7F A0 07 34 */ extsh r0, r29 -/* 800314B0 2C 00 00 20 */ cmpwi r0, 0x20 -/* 800314B4 41 80 FF B0 */ blt lbl_80031464 -/* 800314B8 38 60 00 00 */ li r3, 0 -lbl_800314BC: -/* 800314BC 39 61 00 20 */ addi r11, r1, 0x20 -/* 800314C0 48 33 0D 65 */ bl _restgpr_28 -/* 800314C4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800314C8 7C 08 03 A6 */ mtlr r0 -/* 800314CC 38 21 00 20 */ addi r1, r1, 0x20 -/* 800314D0 4E 80 00 20 */ blr diff --git a/asm/d/com/d_com_static/deleteRoomFlower__9daGrass_cFi.s b/asm/d/com/d_com_static/deleteRoomFlower__9daGrass_cFi.s deleted file mode 100644 index df4108cb9c..0000000000 --- a/asm/d/com/d_com_static/deleteRoomFlower__9daGrass_cFi.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_80031A20: -/* 80031A20 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80031A24 7C 08 02 A6 */ mflr r0 -/* 80031A28 90 01 00 24 */ stw r0, 0x24(r1) -/* 80031A2C 7C 64 1B 78 */ mr r4, r3 -/* 80031A30 80 6D 88 34 */ lwz r3, m_flower__9daGrass_c(r13) -/* 80031A34 28 03 00 00 */ cmplwi r3, 0 -/* 80031A38 41 82 00 30 */ beq lbl_80031A68 -/* 80031A3C 3C A0 80 42 */ lis r5, m_deleteRoom__16dFlower_packet_c@ha /* 0x80424594@ha */ -/* 80031A40 38 C5 45 94 */ addi r6, r5, m_deleteRoom__16dFlower_packet_c@l /* 0x80424594@l */ -/* 80031A44 80 A6 00 00 */ lwz r5, 0(r6) -/* 80031A48 80 06 00 04 */ lwz r0, 4(r6) -/* 80031A4C 90 A1 00 08 */ stw r5, 8(r1) -/* 80031A50 90 01 00 0C */ stw r0, 0xc(r1) -/* 80031A54 80 06 00 08 */ lwz r0, 8(r6) -/* 80031A58 90 01 00 10 */ stw r0, 0x10(r1) -/* 80031A5C 39 81 00 08 */ addi r12, r1, 8 -/* 80031A60 48 33 06 25 */ bl __ptmf_scall -/* 80031A64 60 00 00 00 */ nop -lbl_80031A68: -/* 80031A68 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80031A6C 7C 08 03 A6 */ mtlr r0 -/* 80031A70 38 21 00 20 */ addi r1, r1, 0x20 -/* 80031A74 4E 80 00 20 */ blr diff --git a/asm/d/com/d_com_static/deleteRoomGrass__9daGrass_cFi.s b/asm/d/com/d_com_static/deleteRoomGrass__9daGrass_cFi.s deleted file mode 100644 index 072464b587..0000000000 --- a/asm/d/com/d_com_static/deleteRoomGrass__9daGrass_cFi.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_800319C8: -/* 800319C8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800319CC 7C 08 02 A6 */ mflr r0 -/* 800319D0 90 01 00 24 */ stw r0, 0x24(r1) -/* 800319D4 7C 64 1B 78 */ mr r4, r3 -/* 800319D8 80 6D 88 30 */ lwz r3, m_grass__9daGrass_c(r13) -/* 800319DC 28 03 00 00 */ cmplwi r3, 0 -/* 800319E0 41 82 00 30 */ beq lbl_80031A10 -/* 800319E4 3C A0 80 42 */ lis r5, m_deleteRoom__15dGrass_packet_c@ha /* 0x80424588@ha */ -/* 800319E8 38 C5 45 88 */ addi r6, r5, m_deleteRoom__15dGrass_packet_c@l /* 0x80424588@l */ -/* 800319EC 80 A6 00 00 */ lwz r5, 0(r6) -/* 800319F0 80 06 00 04 */ lwz r0, 4(r6) -/* 800319F4 90 A1 00 08 */ stw r5, 8(r1) -/* 800319F8 90 01 00 0C */ stw r0, 0xc(r1) -/* 800319FC 80 06 00 08 */ lwz r0, 8(r6) -/* 80031A00 90 01 00 10 */ stw r0, 0x10(r1) -/* 80031A04 39 81 00 08 */ addi r12, r1, 8 -/* 80031A08 48 33 06 7D */ bl __ptmf_scall -/* 80031A0C 60 00 00 00 */ nop -lbl_80031A10: -/* 80031A10 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80031A14 7C 08 03 A6 */ mtlr r0 -/* 80031A18 38 21 00 20 */ addi r1, r1, 0x20 -/* 80031A1C 4E 80 00 20 */ blr diff --git a/asm/d/com/d_com_static/entry__10daMirror_cFP8J3DModel.s b/asm/d/com/d_com_static/entry__10daMirror_cFP8J3DModel.s deleted file mode 100644 index aadc777428..0000000000 --- a/asm/d/com/d_com_static/entry__10daMirror_cFP8J3DModel.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8003194C: -/* 8003194C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80031950 7C 08 02 A6 */ mflr r0 -/* 80031954 90 01 00 14 */ stw r0, 0x14(r1) -/* 80031958 7C 64 1B 78 */ mr r4, r3 -/* 8003195C 80 6D 88 28 */ lwz r3, m_myObj__10daMirror_c(r13) -/* 80031960 28 03 00 00 */ cmplwi r3, 0 -/* 80031964 40 82 00 0C */ bne lbl_80031970 -/* 80031968 38 60 00 00 */ li r3, 0 -/* 8003196C 48 00 00 14 */ b lbl_80031980 -lbl_80031970: -/* 80031970 3C A0 80 42 */ lis r5, m_entryModel__10daMirror_c@ha /* 0x8042457C@ha */ -/* 80031974 39 85 45 7C */ addi r12, r5, m_entryModel__10daMirror_c@l /* 0x8042457C@l */ -/* 80031978 48 33 07 0D */ bl __ptmf_scall -/* 8003197C 60 00 00 00 */ nop -lbl_80031980: -/* 80031980 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80031984 7C 08 03 A6 */ mtlr r0 -/* 80031988 38 21 00 10 */ addi r1, r1, 0x10 -/* 8003198C 4E 80 00 20 */ blr diff --git a/asm/d/com/d_com_static/execute__7daSus_cFv.s b/asm/d/com/d_com_static/execute__7daSus_cFv.s deleted file mode 100644 index 521afc10ca..0000000000 --- a/asm/d/com/d_com_static/execute__7daSus_cFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_800315A4: -/* 800315A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800315A8 7C 08 02 A6 */ mflr r0 -/* 800315AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800315B0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800315B4 93 C1 00 08 */ stw r30, 8(r1) -/* 800315B8 3C 60 80 42 */ lis r3, mData__7daSus_c@ha /* 0x80423FFC@ha */ -/* 800315BC 38 03 3F FC */ addi r0, r3, mData__7daSus_c@l /* 0x80423FFC@l */ -/* 800315C0 7C 1F 03 78 */ mr r31, r0 -/* 800315C4 3B C0 00 00 */ li r30, 0 -/* 800315C8 48 00 00 20 */ b lbl_800315E8 -lbl_800315CC: -/* 800315CC 88 1F 00 00 */ lbz r0, 0(r31) -/* 800315D0 7C 00 07 75 */ extsb. r0, r0 -/* 800315D4 41 80 00 0C */ blt lbl_800315E0 -/* 800315D8 7F E3 FB 78 */ mr r3, r31 -/* 800315DC 4B FF FB 75 */ bl execute__Q27daSus_c6data_cFv -lbl_800315E0: -/* 800315E0 3B FF 00 24 */ addi r31, r31, 0x24 -/* 800315E4 3B DE 00 01 */ addi r30, r30, 1 -lbl_800315E8: -/* 800315E8 7F C0 07 34 */ extsh r0, r30 -/* 800315EC 2C 00 00 20 */ cmpwi r0, 0x20 -/* 800315F0 41 80 FF DC */ blt lbl_800315CC -/* 800315F4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800315F8 83 C1 00 08 */ lwz r30, 8(r1) -/* 800315FC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80031600 7C 08 03 A6 */ mtlr r0 -/* 80031604 38 21 00 10 */ addi r1, r1, 0x10 -/* 80031608 4E 80 00 20 */ blr diff --git a/asm/d/com/d_com_static/getPos__12daObjCarry_cFi.s b/asm/d/com/d_com_static/getPos__12daObjCarry_cFi.s deleted file mode 100644 index 7dc1fa770c..0000000000 --- a/asm/d/com/d_com_static/getPos__12daObjCarry_cFi.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_80031D24: -/* 80031D24 1C 83 00 0C */ mulli r4, r3, 0xc -/* 80031D28 3C 60 80 42 */ lis r3, mPos__12daObjCarry_c@ha /* 0x804245AC@ha */ -/* 80031D2C 38 03 45 AC */ addi r0, r3, mPos__12daObjCarry_c@l /* 0x804245AC@l */ -/* 80031D30 7C 60 22 14 */ add r3, r0, r4 -/* 80031D34 4E 80 00 20 */ blr diff --git a/asm/d/com/d_com_static/remove__10daMirror_cFv.s b/asm/d/com/d_com_static/remove__10daMirror_cFv.s deleted file mode 100644 index 0885c28c7e..0000000000 --- a/asm/d/com/d_com_static/remove__10daMirror_cFv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_80031990: -/* 80031990 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80031994 7C 08 02 A6 */ mflr r0 -/* 80031998 90 01 00 14 */ stw r0, 0x14(r1) -/* 8003199C 80 6D 88 28 */ lwz r3, m_myObj__10daMirror_c(r13) -/* 800319A0 28 03 00 00 */ cmplwi r3, 0 -/* 800319A4 40 82 00 0C */ bne lbl_800319B0 -/* 800319A8 38 60 00 00 */ li r3, 0 -/* 800319AC 48 00 00 0C */ b lbl_800319B8 -lbl_800319B0: -/* 800319B0 4B FE 82 CD */ bl fopAcM_delete__FP10fopAc_ac_c -/* 800319B4 38 60 00 01 */ li r3, 1 -lbl_800319B8: -/* 800319B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800319BC 7C 08 03 A6 */ mtlr r0 -/* 800319C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800319C4 4E 80 00 20 */ blr diff --git a/asm/d/com/d_com_static/reset__7daSus_cFv.s b/asm/d/com/d_com_static/reset__7daSus_cFv.s deleted file mode 100644 index abce034d48..0000000000 --- a/asm/d/com/d_com_static/reset__7daSus_cFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_800313BC: -/* 800313BC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800313C0 7C 08 02 A6 */ mflr r0 -/* 800313C4 90 01 00 14 */ stw r0, 0x14(r1) -/* 800313C8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800313CC 93 C1 00 08 */ stw r30, 8(r1) -/* 800313D0 3C 60 80 42 */ lis r3, mData__7daSus_c@ha /* 0x80423FFC@ha */ -/* 800313D4 38 03 3F FC */ addi r0, r3, mData__7daSus_c@l /* 0x80423FFC@l */ -/* 800313D8 7C 1F 03 78 */ mr r31, r0 -/* 800313DC 3B C0 00 00 */ li r30, 0 -lbl_800313E0: -/* 800313E0 7F E3 FB 78 */ mr r3, r31 -/* 800313E4 4B FF FB D9 */ bl reset__Q27daSus_c6data_cFv -/* 800313E8 3B DE 00 01 */ addi r30, r30, 1 -/* 800313EC 2C 1E 00 20 */ cmpwi r30, 0x20 -/* 800313F0 3B FF 00 24 */ addi r31, r31, 0x24 -/* 800313F4 41 80 FF EC */ blt lbl_800313E0 -/* 800313F8 3C 60 80 42 */ lis r3, mRoom__7daSus_c@ha /* 0x8042447C@ha */ -/* 800313FC 38 03 44 7C */ addi r0, r3, mRoom__7daSus_c@l /* 0x8042447C@l */ -/* 80031400 7C 04 03 78 */ mr r4, r0 -/* 80031404 38 60 00 00 */ li r3, 0 -/* 80031408 38 00 00 40 */ li r0, 0x40 -/* 8003140C 7C 09 03 A6 */ mtctr r0 -lbl_80031410: -/* 80031410 90 64 00 00 */ stw r3, 0(r4) -/* 80031414 38 84 00 04 */ addi r4, r4, 4 -/* 80031418 42 00 FF F8 */ bdnz lbl_80031410 -/* 8003141C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80031420 83 C1 00 08 */ lwz r30, 8(r1) -/* 80031424 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80031428 7C 08 03 A6 */ mtlr r0 -/* 8003142C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80031430 4E 80 00 20 */ blr diff --git a/asm/d/com/d_com_static/savePos__12daObjCarry_cFi4cXyz.s b/asm/d/com/d_com_static/savePos__12daObjCarry_cFi4cXyz.s deleted file mode 100644 index ebb8d6c7b1..0000000000 --- a/asm/d/com/d_com_static/savePos__12daObjCarry_cFi4cXyz.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80031D38: -/* 80031D38 C0 04 00 00 */ lfs f0, 0(r4) -/* 80031D3C 1C 03 00 0C */ mulli r0, r3, 0xc -/* 80031D40 3C 60 80 42 */ lis r3, mPos__12daObjCarry_c@ha /* 0x804245AC@ha */ -/* 80031D44 38 63 45 AC */ addi r3, r3, mPos__12daObjCarry_c@l /* 0x804245AC@l */ -/* 80031D48 7C 03 05 2E */ stfsx f0, r3, r0 -/* 80031D4C C0 04 00 04 */ lfs f0, 4(r4) -/* 80031D50 7C 63 02 14 */ add r3, r3, r0 -/* 80031D54 D0 03 00 04 */ stfs f0, 4(r3) -/* 80031D58 C0 04 00 08 */ lfs f0, 8(r4) -/* 80031D5C D0 03 00 08 */ stfs f0, 8(r3) -/* 80031D60 4E 80 00 20 */ blr diff --git a/include/rel/d/a/d_a_suspend/d_a_suspend.h b/include/rel/d/a/d_a_suspend/d_a_suspend.h index 97eb0a4a7d..4449d0580a 100644 --- a/include/rel/d/a/d_a_suspend/d_a_suspend.h +++ b/include/rel/d/a/d_a_suspend/d_a_suspend.h @@ -19,6 +19,8 @@ public: void setNext(data_c* i_next) { mpNext = i_next; } data_c* getNext() { return mpNext; } u8 getType() { return mType; } + bool isUsed() { return mRoomNo < 0; } + s8 getRoomNo() { return mRoomNo; } /* 0x00 */ s8 mRoomNo; /* 0x01 */ bool field_0x1; @@ -35,11 +37,12 @@ public: /* 80031190 */ void add(daSus_c::data_c*); /* 800311FC */ void reset(); /* 80031EE4 */ room_c(); + void init() { mpData = NULL; } /* 0x0 */ data_c* mpData; }; // Size: 0x4 - /* 80031248 */ static void newData(s8, cXyz const&, cXyz const&, u8, u8, u8); + /* 80031248 */ static int newData(s8, cXyz const&, cXyz const&, u8, u8, u8); /* 800313BC */ void reset(); /* 800314D4 */ static void check(fopAc_ac_c*); /* 80031434 */ static bool check(s8 i_roomNo, cXyz const& i_pos); diff --git a/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h b/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h index 47be9da007..edb85d9da9 100644 --- a/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h +++ b/include/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h @@ -29,8 +29,8 @@ public: /* 80031CF8 */ static void clrSaveFlag(); /* 80031D04 */ static void setSaveFlag(); /* 80031D10 */ static bool chkSaveFlag(); - /* 80031D24 */ void getPos(int); - /* 80031D38 */ void savePos(int, cXyz); + /* 80031D24 */ static const cXyz& getPos(int); + /* 80031D38 */ static void savePos(int, cXyz); /* 80031D64 */ static void onSttsFlag(int, u8); /* 80031D78 */ static void offSttsFlag(int, u8); /* 80031D8C */ static u8 chkSttsFlag(int, u8); @@ -185,7 +185,7 @@ public: s32 getType() { return mType; } static u8 const mData[2072]; - static u8 mPos[60]; + static Vec mPos[5]; static u8 mSttsFlag[5]; static s8 mRoomNo[5]; static bool mSaveFlag; diff --git a/src/d/com/d_com_static.cpp b/src/d/com/d_com_static.cpp index f26a49b175..cbb4dff884 100644 --- a/src/d/com/d_com_static.cpp +++ b/src/d/com/d_com_static.cpp @@ -13,6 +13,7 @@ #include "rel/d/a/d_a_movie_player/d_a_movie_player.h" #include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h" #include "rel/d/a/tag/d_a_tag_magne/d_a_tag_magne.h" +#include "rel/d/a/tag/d_a_tag_stream/d_a_tag_stream.h" // // Types: @@ -24,12 +25,6 @@ struct daYkgr_c { static u8 m_emitter[4]; }; -struct daTagStream_c { - /* 800318B4 */ void checkArea(cXyz const*); - - static u8 m_top[4]; -}; - struct daTagMist_c { /* 80031CF0 */ static u8 getPlayerNo(); @@ -46,21 +41,35 @@ struct daObjMovebox { }; }; -struct daMirror_c { - /* 8003194C */ void entry(J3DModel*); - /* 80031990 */ void remove(); +struct dMirror_packet_c { +}; - static u8 m_entryModel[12]; - static u8 m_myObj[4]; +struct daMirror_c: fopAc_ac_c { + /* 8003194C */ static int entry(J3DModel*); + /* 80031990 */ static int remove(); + + typedef int (daMirror_c::*entryModelFunc)(J3DModel*); + static entryModelFunc m_entryModel; + static daMirror_c* m_myObj; +}; + +struct dFlower_packet_c { + typedef void (dFlower_packet_c::*DeleteRoomFunc)(int); + static DeleteRoomFunc m_deleteRoom; +}; + +struct dGrass_packet_c { + typedef void (dGrass_packet_c::*DeleteRoomFunc)(int); + static DeleteRoomFunc m_deleteRoom; }; struct daGrass_c { - /* 800319C8 */ void deleteRoomGrass(int); - /* 80031A20 */ void deleteRoomFlower(int); + /* 800319C8 */ static void deleteRoomGrass(int); + /* 80031A20 */ static void deleteRoomFlower(int); static u8 m_myObj[4]; - static u8 m_grass[4]; - static u8 m_flower[4]; + static dGrass_packet_c* m_grass; + static dFlower_packet_c* m_flower; }; struct daDsh_c { @@ -75,14 +84,6 @@ struct daDsh_c { static f32 CLOSE_BOUND_RATIO; }; -struct dGrass_packet_c { - static u8 m_deleteRoom[12]; -}; - -struct dFlower_packet_c { - static u8 m_deleteRoom[12]; -}; - // // Forward References: // @@ -327,55 +328,102 @@ s16 m_count__9daArrow_c; s16 daSus_c::mSetTop; /* 80031248-800313BC 02BB88 0174+00 0/0 0/0 1/1 .text newData__7daSus_cFScRC4cXyzRC4cXyzUcUcUc */ +// Issues with mSetTop and m_count__9daArrow_c relocation +#ifdef NONMATCHING +int daSus_c::newData(s8 i_roomNo, cXyz const& param_1, cXyz const& param_2, u8 param_3, + u8 param_4, u8 i_type) { + s16 setTop = mSetTop; + daSus_c::data_c* pData = ((daSus_c::data_c*)mData) + setTop; + for (s16 i = setTop; i < 32; pData++, i++) { + if (pData->isUsed()) { + pData->set(i_roomNo, param_1, param_2, param_3, param_4, i_type); + daSus_c::room_c* pRoom = ((daSus_c::room_c*)mRoom) + i_roomNo; + pRoom->add(pData); + mSetTop = (i + 1) % 32; + return 1; + } + } + + pData = ((daSus_c::data_c*)mData); + for (s16 i = 0; i < setTop; pData++, i++) { + if (pData->isUsed()) { + pData->set(i_roomNo, param_1, param_2, param_3, param_4, i_type); + ((daSus_c::room_c*)mRoom)[i_roomNo].add(pData); + mSetTop = (i + 1) % 32; + return 1; + } + } + + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daSus_c::newData(s8 param_0, cXyz const& param_1, cXyz const& param_2, u8 param_3, +asm int daSus_c::newData(s8 param_0, cXyz const& param_1, cXyz const& param_2, u8 param_3, u8 param_4, u8 param_5) { nofralloc #include "asm/d/com/d_com_static/newData__7daSus_cFScRC4cXyzRC4cXyzUcUcUc.s" } #pragma pop +#endif /* 800313BC-80031434 02BCFC 0078+00 0/0 1/1 0/0 .text reset__7daSus_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daSus_c::reset() { - nofralloc -#include "asm/d/com/d_com_static/reset__7daSus_cFv.s" +void daSus_c::reset() { + daSus_c::data_c* pData = (daSus_c::data_c*)mData; + for (int i = 0; i < 0x20; i++, pData++) { + pData->reset(); + } + + daSus_c::room_c* pRoom = (daSus_c::room_c*)mRoom; + for (int i = 0; i < 0x40; i++, pRoom++) { + pRoom->init(); + } } -#pragma pop /* 80031434-800314D4 02BD74 00A0+00 0/0 4/4 0/0 .text check__7daSus_cFScRC4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daSus_c::check(s8 i_roomNo, cXyz const& i_pos) { - nofralloc -#include "asm/d/com/d_com_static/check__7daSus_cFScRC4cXyz.s" +bool daSus_c::check(s8 i_roomNo, cXyz const& i_pos) { + daSus_c::data_c* pData = (daSus_c::data_c*)mData; + for (s16 i = 0; i < 0x20; pData++, i++) { + if (!pData->isUsed() && i_roomNo == pData->getRoomNo() && pData->getType()) { + if (pData->check(i_pos)) { + return true; + } + } + } + return false; } -#pragma pop /* 800314D4-800315A4 02BE14 00D0+00 0/0 1/1 0/0 .text check__7daSus_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daSus_c::check(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/com/d_com_static/check__7daSus_cFP10fopAc_ac_c.s" +void daSus_c::check(fopAc_ac_c* i_actor) { + if (fopAcM_GetGroup(i_actor) != 1 && fopAcM_GetGroup(i_actor) != 5) { + daSus_c::data_c* pData = (daSus_c::data_c*)mData; + u8 res = 0; + for (s16 i = 0; i < 0x20; pData++, i++) { + if (!pData->isUsed() && pData->getType() == 0) { + res |= pData->check(i_actor); + } + } + + if ((res & 0x80) != 0) { + if ((res & 3) == 3) { + fopAcM_OnStatus(i_actor, 0x20000000); + } else { + fopAcM_OffStatus(i_actor, 0x20000000); + } + } + } } -#pragma pop /* 800315A4-8003160C 02BEE4 0068+00 0/0 2/2 0/0 .text execute__7daSus_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daSus_c::execute() { - nofralloc -#include "asm/d/com/d_com_static/execute__7daSus_cFv.s" +void daSus_c::execute() { + daSus_c::data_c* pData = (daSus_c::data_c*)mData; + for (s16 i = 0; i < 0x20; pData++, i++) { + if (!pData->isUsed()) { + pData->execute(); + } + } } -#pragma pop /* 8003160C-80031648 02BF4C 003C+00 0/0 0/0 1/1 .text daNpcMsg_setEvtNum__FUc */ int daNpcMsg_setEvtNum(u8 iEvtNum) { @@ -503,91 +551,80 @@ SECTION_SDATA2 f32 daDsh_c::CLOSE_BOUND_SPEED = 30.0f; /* 80451D50-80451D54 000350 0004+00 0/0 0/0 1/1 .sdata2 CLOSE_BOUND_RATIO__7daDsh_c */ SECTION_SDATA2 f32 daDsh_c::CLOSE_BOUND_RATIO = -0.4f; -/* 80451D54-80451D58 000354 0004+00 1/1 0/0 0/0 .sdata2 @4338 */ -SECTION_SDATA2 static u8 lit_4338[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - /* 800318B4-8003194C 02C1F4 0098+00 0/0 1/1 0/0 .text checkArea__13daTagStream_cFPC4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagStream_c::checkArea(cXyz const* param_0) { - nofralloc -#include "asm/d/com/d_com_static/checkArea__13daTagStream_cFPC4cXyz.s" +int daTagStream_c::checkArea(cXyz const* param_0) { + cXyz relativePos; + fpoAcM_relativePos(this, param_0, &relativePos); + if (relativePos.y >= 0.0f && relativePos.y <= mScale.y && + fabsf(relativePos.x) <= mScale.x && + fabsf(relativePos.z) <= mScale.z) + { + return 1; + } + return 0; } -#pragma pop /* ############################################################################################## */ /* 8042457C-80424588 05129C 000C+00 1/2 0/0 1/1 .bss m_entryModel__10daMirror_c */ -u8 daMirror_c::m_entryModel[12]; +daMirror_c::entryModelFunc daMirror_c::m_entryModel; /* 80450DA4-80450DA8 0002A4 0004+00 0/0 1/1 2/2 .sbss m_top__13daTagStream_c */ -u8 daTagStream_c::m_top[4]; +daTagStream_c* daTagStream_c::m_top; /* 80450DA8-80450DAC 0002A8 0004+00 2/2 0/0 4/4 .sbss m_myObj__10daMirror_c */ -u8 daMirror_c::m_myObj[4]; +daMirror_c* daMirror_c::m_myObj; /* 8003194C-80031990 02C28C 0044+00 0/0 1/1 9/9 .text entry__10daMirror_cFP8J3DModel */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daMirror_c::entry(J3DModel* param_0) { - nofralloc -#include "asm/d/com/d_com_static/entry__10daMirror_cFP8J3DModel.s" +int daMirror_c::entry(J3DModel* param_0) { + if (m_myObj == NULL) { + return 0; + } + return (m_myObj->*(daMirror_c::m_entryModel))(param_0); } -#pragma pop /* 80031990-800319C8 02C2D0 0038+00 0/0 0/0 2/2 .text remove__10daMirror_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daMirror_c::remove() { - nofralloc -#include "asm/d/com/d_com_static/remove__10daMirror_cFv.s" +int daMirror_c::remove() { + if (m_myObj == NULL) { + return 0; + } + + fopAcM_delete(m_myObj); + return 1; } -#pragma pop /* ############################################################################################## */ /* 80424588-80424594 0512A8 000C+00 1/2 0/0 1/1 .bss m_deleteRoom__15dGrass_packet_c */ -u8 dGrass_packet_c::m_deleteRoom[12]; +dGrass_packet_c::DeleteRoomFunc dGrass_packet_c::m_deleteRoom; /* 80450DAC-80450DB0 0002AC 0004+00 0/0 0/0 2/2 .sbss m_myObj__9daGrass_c */ u8 daGrass_c::m_myObj[4]; /* 80450DB0-80450DB4 0002B0 0004+00 1/1 0/0 11/11 .sbss m_grass__9daGrass_c */ -u8 daGrass_c::m_grass[4]; +dGrass_packet_c* daGrass_c::m_grass; /* 800319C8-80031A20 02C308 0058+00 0/0 0/0 1/1 .text deleteRoomGrass__9daGrass_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daGrass_c::deleteRoomGrass(int param_0) { - nofralloc -#include "asm/d/com/d_com_static/deleteRoomGrass__9daGrass_cFi.s" +void daGrass_c::deleteRoomGrass(int param_0) { + if (m_grass) { + dGrass_packet_c::DeleteRoomFunc func = dGrass_packet_c::m_deleteRoom; + (m_grass->*(func))(param_0); + } } -#pragma pop /* ############################################################################################## */ /* 80424594-804245A0 0512B4 000C+00 1/2 0/0 1/1 .bss m_deleteRoom__16dFlower_packet_c */ -u8 dFlower_packet_c::m_deleteRoom[12]; +dFlower_packet_c::DeleteRoomFunc dFlower_packet_c::m_deleteRoom; /* 80450DB4-80450DB8 0002B4 0004+00 1/1 0/0 9/9 .sbss m_flower__9daGrass_c */ -u8 daGrass_c::m_flower[4]; +dFlower_packet_c* daGrass_c::m_flower; /* 80031A20-80031A78 02C360 0058+00 0/0 0/0 1/1 .text deleteRoomFlower__9daGrass_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daGrass_c::deleteRoomFlower(int param_0) { - nofralloc -#include "asm/d/com/d_com_static/deleteRoomFlower__9daGrass_cFi.s" +void daGrass_c::deleteRoomFlower(int param_0) { + if (m_flower) { + dFlower_packet_c::DeleteRoomFunc func = dFlower_packet_c::m_deleteRoom; + (m_flower->*(func))(param_0); + } } -#pragma pop /* ############################################################################################## */ /* 80450DB8-80450DBC 0002B8 0004+00 4/4 0/0 2/2 .sbss m_myObj__6daMP_c */ @@ -702,27 +739,19 @@ static u8 lit_4480[12]; #pragma pop /* 804245AC-804245E8 0512CC 003C+00 3/4 0/0 0/0 .bss mPos__12daObjCarry_c */ -u8 daObjCarry_c::mPos[60]; +Vec daObjCarry_c::mPos[5]; /* 80031D24-80031D38 02C664 0014+00 0/0 0/0 1/1 .text getPos__12daObjCarry_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCarry_c::getPos(int param_0) { - nofralloc -#include "asm/d/com/d_com_static/getPos__12daObjCarry_cFi.s" +const cXyz& daObjCarry_c::getPos(int param_0) { + return *(cXyz*)&mPos[param_0]; } -#pragma pop /* 80031D38-80031D64 02C678 002C+00 0/0 0/0 2/2 .text savePos__12daObjCarry_cFi4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCarry_c::savePos(int param_0, cXyz param_1) { - nofralloc -#include "asm/d/com/d_com_static/savePos__12daObjCarry_cFi4cXyz.s" +void daObjCarry_c::savePos(int param_0, cXyz param_1) { + mPos[param_0].x = param_1.x; + mPos[param_0].y = param_1.y; + mPos[param_0].z = param_1.z; } -#pragma pop /* ############################################################################################## */ /* 80450DC4-80450DCC 0002C4 0005+03 3/3 0/0 0/0 .sbss mSttsFlag__12daObjCarry_c */ From 9e956da5a0d255d20ffee2804e4b2090d882b474 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Wed, 28 Jun 2023 18:43:19 +0300 Subject: [PATCH 14/35] Match daTalk_c::execute --- Progress.md | 8 +- .../d_a_talk/d_a_talk/execute__8daTalk_cFv.s | 117 ------------------ rel/d/a/d_a_talk/d_a_talk.cpp | 54 +------- 3 files changed, 8 insertions(+), 171 deletions(-) delete mode 100644 asm/rel/d/a/d_a_talk/d_a_talk/execute__8daTalk_cFv.s diff --git a/Progress.md b/Progress.md index 33a2a9b5bb..5d4d6634d9 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 35.593453% | 1431096 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 35.593453% | 1431096 | 4020672 -RELs | 33.662947% | 3871348 | 11500324 -Total | 34.163040% | 5302444 | 15520996 +RELs | 33.666704% | 3871780 | 11500324 +Total | 34.165823% | 5302876 | 15520996 ## RELs @@ -775,7 +775,7 @@ d_a_tag_watchge | 100.000000% | 1240 | 1240 d_a_tag_waterfall | 46.361502% | 1580 | 3408 d_a_tag_wljump | 45.248380% | 1676 | 3704 d_a_tag_yami | 42.650334% | 1532 | 3592 -d_a_talk | 76.521739% | 1408 | 1840 +d_a_talk | 100.000000% | 1840 | 1840 d_a_tbox | 30.165503% | 9332 | 30936 d_a_tbox2 | 42.486445% | 4388 | 10328 d_a_tboxSw | 100.000000% | 1016 | 1016 @@ -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.662947% | 3871348 | 11500324 +Total | 33.666704% | 3871780 | 11500324 diff --git a/asm/rel/d/a/d_a_talk/d_a_talk/execute__8daTalk_cFv.s b/asm/rel/d/a/d_a_talk/d_a_talk/execute__8daTalk_cFv.s deleted file mode 100644 index 0ac2d7960a..0000000000 --- a/asm/rel/d/a/d_a_talk/d_a_talk/execute__8daTalk_cFv.s +++ /dev/null @@ -1,117 +0,0 @@ -lbl_80D664AC: -/* 80D664AC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80D664B0 7C 08 02 A6 */ mflr r0 -/* 80D664B4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80D664B8 39 61 00 20 */ addi r11, r1, 0x20 -/* 80D664BC 4B 5F BD 21 */ bl _savegpr_29 -/* 80D664C0 7C 7E 1B 78 */ mr r30, r3 -/* 80D664C4 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D664C8 3B E4 61 C0 */ addi r31, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D664CC 88 1F 4F AD */ lbz r0, 0x4fad(r31) -/* 80D664D0 28 00 00 00 */ cmplwi r0, 0 -/* 80D664D4 41 82 00 18 */ beq lbl_80D664EC -/* 80D664D8 A0 1E 00 F8 */ lhz r0, 0xf8(r30) -/* 80D664DC 28 00 00 01 */ cmplwi r0, 1 -/* 80D664E0 41 82 00 54 */ beq lbl_80D66534 -/* 80D664E4 4B 2B 37 99 */ bl fopAcM_delete__FP10fopAc_ac_c -/* 80D664E8 48 00 00 4C */ b lbl_80D66534 -lbl_80D664EC: -/* 80D664EC 88 1E 05 45 */ lbz r0, 0x545(r30) -/* 80D664F0 1C A0 00 1C */ mulli r5, r0, 0x1c -/* 80D664F4 3C 80 80 3B */ lis r4, dist_table__12dAttention_c@ha /* 0x803A9C70@ha */ -/* 80D664F8 38 04 9C 70 */ addi r0, r4, dist_table__12dAttention_c@l /* 0x803A9C70@l */ -/* 80D664FC 7F A0 2A 14 */ add r29, r0, r5 -/* 80D66500 80 9F 5D AC */ lwz r4, 0x5dac(r31) -/* 80D66504 4B 2B 44 61 */ bl fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c -/* 80D66508 C0 1D 00 04 */ lfs f0, 4(r29) -/* 80D6650C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80D66510 40 81 00 18 */ ble lbl_80D66528 -/* 80D66514 38 00 FF FF */ li r0, -1 -/* 80D66518 90 1E 05 B4 */ stw r0, 0x5b4(r30) -/* 80D6651C 7F C3 F3 78 */ mr r3, r30 -/* 80D66520 4B 2B 37 5D */ bl fopAcM_delete__FP10fopAc_ac_c -/* 80D66524 48 00 00 10 */ b lbl_80D66534 -lbl_80D66528: -/* 80D66528 A0 1E 00 FA */ lhz r0, 0xfa(r30) -/* 80D6652C 60 00 00 01 */ ori r0, r0, 1 -/* 80D66530 B0 1E 00 FA */ sth r0, 0xfa(r30) -lbl_80D66534: -/* 80D66534 A0 1E 00 F8 */ lhz r0, 0xf8(r30) -/* 80D66538 28 00 00 01 */ cmplwi r0, 1 -/* 80D6653C 40 82 01 04 */ bne lbl_80D66640 -/* 80D66540 4B 4D 1C A9 */ bl getNodeIdx__12dMsgObject_cFv -/* 80D66544 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 80D66548 28 00 00 FF */ cmplwi r0, 0xff -/* 80D6654C 40 82 00 84 */ bne lbl_80D665D0 -/* 80D66550 80 7E 05 B4 */ lwz r3, 0x5b4(r30) -/* 80D66554 3C 03 00 01 */ addis r0, r3, 1 -/* 80D66558 28 00 FF FF */ cmplwi r0, 0xffff -/* 80D6655C 40 82 00 14 */ bne lbl_80D66570 -/* 80D66560 7F C3 F3 78 */ mr r3, r30 -/* 80D66564 48 00 01 45 */ bl messageSet__8daTalk_cFv -/* 80D66568 90 7E 05 B4 */ stw r3, 0x5b4(r30) -/* 80D6656C 48 00 00 D4 */ b lbl_80D66640 -lbl_80D66570: -/* 80D66570 7F C3 F3 78 */ mr r3, r30 -/* 80D66574 48 00 01 15 */ bl getStatus__8daTalk_cFv -/* 80D66578 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 80D6657C 28 00 00 0E */ cmplwi r0, 0xe -/* 80D66580 40 82 00 14 */ bne lbl_80D66594 -/* 80D66584 7F C3 F3 78 */ mr r3, r30 -/* 80D66588 38 80 00 10 */ li r4, 0x10 -/* 80D6658C 48 00 00 D9 */ bl setStatus__8daTalk_cFUs -/* 80D66590 48 00 00 B0 */ b lbl_80D66640 -lbl_80D66594: -/* 80D66594 7F C3 F3 78 */ mr r3, r30 -/* 80D66598 48 00 00 F1 */ bl getStatus__8daTalk_cFv -/* 80D6659C 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 80D665A0 28 00 00 12 */ cmplwi r0, 0x12 -/* 80D665A4 40 82 00 9C */ bne lbl_80D66640 -/* 80D665A8 38 7F 4E C8 */ addi r3, r31, 0x4ec8 -/* 80D665AC 4B 2D BE BD */ bl reset__14dEvt_control_cFv -/* 80D665B0 7F C3 F3 78 */ mr r3, r30 -/* 80D665B4 38 80 00 13 */ li r4, 0x13 -/* 80D665B8 48 00 00 AD */ bl setStatus__8daTalk_cFUs -/* 80D665BC 38 00 FF FF */ li r0, -1 -/* 80D665C0 90 1E 05 B4 */ stw r0, 0x5b4(r30) -/* 80D665C4 7F C3 F3 78 */ mr r3, r30 -/* 80D665C8 4B 2B 36 B5 */ bl fopAcM_delete__FP10fopAc_ac_c -/* 80D665CC 48 00 00 74 */ b lbl_80D66640 -lbl_80D665D0: -/* 80D665D0 80 7E 05 B4 */ lwz r3, 0x5b4(r30) -/* 80D665D4 3C 03 00 01 */ addis r0, r3, 1 -/* 80D665D8 28 00 FF FF */ cmplwi r0, 0xffff -/* 80D665DC 40 82 00 2C */ bne lbl_80D66608 -/* 80D665E0 4B 4D 1C 09 */ bl getNodeIdx__12dMsgObject_cFv -/* 80D665E4 54 65 04 3E */ clrlwi r5, r3, 0x10 -/* 80D665E8 38 7E 05 68 */ addi r3, r30, 0x568 -/* 80D665EC 7F C4 F3 78 */ mr r4, r30 -/* 80D665F0 38 C0 00 00 */ li r6, 0 -/* 80D665F4 38 E0 00 00 */ li r7, 0 -/* 80D665F8 4B 4E 39 99 */ bl init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c -/* 80D665FC 38 00 00 02 */ li r0, 2 -/* 80D66600 90 1E 05 B4 */ stw r0, 0x5b4(r30) -/* 80D66604 48 00 00 3C */ b lbl_80D66640 -lbl_80D66608: -/* 80D66608 4B 4D 1B B9 */ bl getpTalkActor__12dMsgObject_cFv -/* 80D6660C 7C 64 1B 78 */ mr r4, r3 -/* 80D66610 38 7E 05 68 */ addi r3, r30, 0x568 -/* 80D66614 38 A0 00 00 */ li r5, 0 -/* 80D66618 38 C0 00 00 */ li r6, 0 -/* 80D6661C 4B 4E 3C BD */ bl doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci -/* 80D66620 2C 03 00 00 */ cmpwi r3, 0 -/* 80D66624 41 82 00 1C */ beq lbl_80D66640 -/* 80D66628 38 7F 4E C8 */ addi r3, r31, 0x4ec8 -/* 80D6662C 4B 2D BE 3D */ bl reset__14dEvt_control_cFv -/* 80D66630 38 00 FF FF */ li r0, -1 -/* 80D66634 90 1E 05 B4 */ stw r0, 0x5b4(r30) -/* 80D66638 7F C3 F3 78 */ mr r3, r30 -/* 80D6663C 4B 2B 36 41 */ bl fopAcM_delete__FP10fopAc_ac_c -lbl_80D66640: -/* 80D66640 38 60 00 01 */ li r3, 1 -/* 80D66644 39 61 00 20 */ addi r11, r1, 0x20 -/* 80D66648 4B 5F BB E1 */ bl _restgpr_29 -/* 80D6664C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80D66650 7C 08 03 A6 */ mtlr r0 -/* 80D66654 38 21 00 20 */ addi r1, r1, 0x20 -/* 80D66658 4E 80 00 20 */ blr 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 0146c7907a..428a907aa3 100644 --- a/rel/d/a/d_a_talk/d_a_talk.cpp +++ b/rel/d/a/d_a_talk/d_a_talk.cpp @@ -8,51 +8,16 @@ #include "d/com/d_com_inf_game.h" #include "d/d_procname.h" #include "d/msg/d_msg_object.h" -#include "dol2asm.h" #include "f_op/f_op_msg_mng.h" // // Forward References: // -extern "C" void __dt__8daTalk_cFv(); -extern "C" void create__8daTalk_cFv(); -extern "C" void execute__8daTalk_cFv(); -extern "C" bool draw__8daTalk_cFv(); -extern "C" void setStatus__8daTalk_cFUs(); -extern "C" void getStatus__8daTalk_cFv(); -extern "C" void messageSet__8daTalk_cFv(); -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(); - // // External References: // -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopMsgM_messageSet__FUlP10fopAc_ac_cUl(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void setProcessID__12dMsgObject_cFUi(); -extern "C" void getpTalkActor__12dMsgObject_cFv(); -extern "C" void getIdx__12dMsgObject_cFv(); -extern "C" void getNodeIdx__12dMsgObject_cFv(); -extern "C" void setStatus__12dMsgObject_cFUs(); -extern "C" void getStatus__12dMsgObject_cFv(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c(); -extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci(); -extern "C" void __dl__FPv(); -extern "C" void __copy(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); -extern "C" u8 dist_table__12dAttention_c[6552]; - // // Declarations: // @@ -79,10 +44,9 @@ int daTalk_c::create() { } /* 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()) { + dComIfG_inf_c& dcomif = g_dComIfG_gameInfo; + if (dcomif.play.getEvent().runCheck()) { if (!mEvtInfo.checkCommandTalk()) { fopAcM_delete(this); } @@ -104,7 +68,7 @@ int daTalk_c::execute() { } else if (getStatus() == 14) { setStatus(16); } else if (getStatus() == 18) { - i_dComIfGp_event_reset(); + dcomif.play.getEvent().reset(); setStatus(19); mMessageID = -1; fopAcM_delete(this); @@ -113,7 +77,7 @@ int daTalk_c::execute() { mMsgFlow.init(this, dMsgObject_getMsgObjectClass()->getNodeIdx(), 0, NULL); mMessageID = 2; } else if (mMsgFlow.doFlow(dMsgObject_getMsgObjectClass()->getpTalkActor(), NULL, 0)) { - i_dComIfGp_event_reset(); + dcomif.play.getEvent().reset(); mMessageID = -1; fopAcM_delete(this); } @@ -121,16 +85,6 @@ int daTalk_c::execute() { return 1; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -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 */ int daTalk_c::draw() { From ad3a3695ed7afca7a9a01d798c3a131b405b2824 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Wed, 28 Jun 2023 19:09:01 +0300 Subject: [PATCH 15/35] Match daCrod_c::posMove --- Progress.md | 8 ++--- .../d_a_crod/d_a_crod/posMove__8daCrod_cFv.s | 33 ------------------- rel/d/a/d_a_crod/d_a_crod.cpp | 23 +++---------- 3 files changed, 9 insertions(+), 55 deletions(-) delete mode 100644 asm/rel/d/a/d_a_crod/d_a_crod/posMove__8daCrod_cFv.s diff --git a/Progress.md b/Progress.md index 5d4d6634d9..ea5881b52c 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 35.593453% | 1431096 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 35.593453% | 1431096 | 4020672 -RELs | 33.666704% | 3871780 | 11500324 -Total | 34.165823% | 5302876 | 15520996 +RELs | 33.667817% | 3871908 | 11500324 +Total | 34.166648% | 5303004 | 15520996 ## RELs @@ -66,7 +66,7 @@ d_a_canoe | 28.479263% | 4944 | 17360 d_a_coach_2D | 38.344915% | 2428 | 6332 d_a_coach_fire | 44.050104% | 1688 | 3832 d_a_cow | 22.936702% | 12784 | 55736 -d_a_crod | 98.228128% | 7096 | 7224 +d_a_crod | 100.000000% | 7224 | 7224 d_a_cstaF | 32.377740% | 3840 | 11860 d_a_cstatue | 29.155833% | 6728 | 23076 d_a_demo00 | 29.136000% | 7284 | 25000 @@ -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.666704% | 3871780 | 11500324 +Total | 33.667817% | 3871908 | 11500324 diff --git a/asm/rel/d/a/d_a_crod/d_a_crod/posMove__8daCrod_cFv.s b/asm/rel/d/a/d_a_crod/d_a_crod/posMove__8daCrod_cFv.s deleted file mode 100644 index 76a4a79f2c..0000000000 --- a/asm/rel/d/a/d_a_crod/d_a_crod/posMove__8daCrod_cFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_804A3500: -/* 804A3500 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804A3504 7C 08 02 A6 */ mflr r0 -/* 804A3508 90 01 00 14 */ stw r0, 0x14(r1) -/* 804A350C 7C 66 1B 78 */ mr r6, r3 -/* 804A3510 3C 60 80 44 */ lis r3, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 804A3514 38 63 9A 20 */ addi r3, r3, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 804A3518 38 83 00 04 */ addi r4, r3, 4 -/* 804A351C A8 06 04 DC */ lha r0, 0x4dc(r6) -/* 804A3520 54 05 04 38 */ rlwinm r5, r0, 0, 0x10, 0x1c -/* 804A3524 7C 84 2C 2E */ lfsx f4, r4, r5 -/* 804A3528 A8 06 04 DE */ lha r0, 0x4de(r6) -/* 804A352C 54 00 04 38 */ rlwinm r0, r0, 0, 0x10, 0x1c -/* 804A3530 7C 04 04 2E */ lfsx f0, r4, r0 -/* 804A3534 C0 66 05 2C */ lfs f3, 0x52c(r6) -/* 804A3538 EC 03 00 32 */ fmuls f0, f3, f0 -/* 804A353C EC 40 01 32 */ fmuls f2, f0, f4 -/* 804A3540 7C 03 2C 2E */ lfsx f0, r3, r5 -/* 804A3544 EC 23 00 32 */ fmuls f1, f3, f0 -/* 804A3548 7C 03 04 2E */ lfsx f0, r3, r0 -/* 804A354C EC 03 00 32 */ fmuls f0, f3, f0 -/* 804A3550 EC 00 01 32 */ fmuls f0, f0, f4 -/* 804A3554 D0 06 04 F8 */ stfs f0, 0x4f8(r6) -/* 804A3558 D0 26 04 FC */ stfs f1, 0x4fc(r6) -/* 804A355C D0 46 05 00 */ stfs f2, 0x500(r6) -/* 804A3560 38 66 04 D0 */ addi r3, r6, 0x4d0 -/* 804A3564 38 86 04 F8 */ addi r4, r6, 0x4f8 -/* 804A3568 7C 65 1B 78 */ mr r5, r3 -/* 804A356C 4B EA 3B 25 */ bl PSVECAdd -/* 804A3570 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804A3574 7C 08 03 A6 */ mtlr r0 -/* 804A3578 38 21 00 10 */ addi r1, r1, 0x10 -/* 804A357C 4E 80 00 20 */ blr diff --git a/rel/d/a/d_a_crod/d_a_crod.cpp b/rel/d/a/d_a_crod/d_a_crod.cpp index 80264fbb54..e031eeb239 100644 --- a/rel/d/a/d_a_crod/d_a_crod.cpp +++ b/rel/d/a/d_a_crod/d_a_crod.cpp @@ -8,7 +8,6 @@ #include "SSystem/SComponent/c_math.h" #include "d/a/d_a_alink.h" #include "d/d_procname.h" -#include "dol2asm.h" #include "f_op/f_op_actor_mng.h" #include "rel/d/a/d_a_cstaF/d_a_cstaF.h" #include "rel/d/a/d_a_cstatue/d_a_cstatue.h" @@ -26,15 +25,12 @@ enum daCrod_ANM { /* 18 */ ANM_WAIT_C, }; -extern "C" u8 sincosTable___5JMath[65536]; - /* ############################################################################################## */ /* 804A40EC-804A40F8 000000 000C+00 2/2 0/0 0/0 .rodata @3759 */ // not sure what this is -SECTION_RODATA static u8 const lit_3759[12] = { +static u8 const lit_3759[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -COMPILER_STRIP_GATE(0x804A40EC, &lit_3759); /* 804A40F8-804A4104 00000C 000C+00 1/2 0/0 0/0 .rodata l_localRodPos */ static const Vec l_localRodPos = {81.0f, -12.5f, -12.0f}; @@ -170,25 +166,16 @@ void daCrod_c::setMatrix() { } /* 804A3500-804A3580 000740 0080+00 1/1 0/0 0/0 .text posMove__8daCrod_cFv */ -// close -#ifdef NONMATCHING void daCrod_c::posMove() { f32 cosx = cM_scos(current.angle.x); f32 cosy = cM_scos(current.angle.y); + f32 speedfy = (speedF * cosy); + //probably fake match + f32 speedz; speed.set(speedF * cM_ssin(current.angle.y) * cM_scos(current.angle.x), - speedF * cM_ssin(current.angle.x), (speedF * cosy) * cosx); + speedF * cM_ssin(current.angle.x), speedz = speedfy * cosx); current.pos += speed; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daCrod_c::posMove() { - nofralloc -#include "asm/rel/d/a/d_a_crod/d_a_crod/posMove__8daCrod_cFv.s" -} -#pragma pop -#endif /* 804A3580-804A35FC 0007C0 007C+00 2/2 0/0 0/0 .text setBckAnm__8daCrod_cFUs */ void daCrod_c::setBckAnm(u16 i_anmResID) { From 666a3a18cd8afc0e09f038673a34490d947d4578 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Wed, 28 Jun 2023 15:48:59 -0700 Subject: [PATCH 16/35] d_a_tag_mist OK --- .../rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.h | 43 ++- rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.cpp | 338 +++++++----------- 2 files changed, 180 insertions(+), 201 deletions(-) diff --git a/include/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.h b/include/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.h index a89312ecd4..b924b54996 100644 --- a/include/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.h +++ b/include/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.h @@ -1,6 +1,47 @@ #ifndef D_A_TAG_MIST_H #define D_A_TAG_MIST_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daTagMist_c : public fopAc_ac_c { +public: + /* 8048F258 */ void offSw(); + /* 8048F2C4 */ void onMySw(); + /* 8048F310 */ BOOL isMySw(); + /* 8048F370 */ int Create(); + /* 8048F444 */ int create(); + /* 8048F558 */ int execute(); + /* 8048F690 */ int _delete(); + + /* 80031CF0 */ static u8 getPlayerNo(); + static void setPlayerNo(u8 i_playerNo) { mPlayerNo = i_playerNo; } + + static u8 mPlayerNo; + + /* 0x568 */ u8 unused_0x568[0x570 - 0x568]; + /* 0x570 */ cXyz mVertices[4]; + /* 0x5A0 */ u8 mPlayerTouched; + /* 0x5A1 */ u8 mInitParams; + /* 0x5A2 */ u16 field_0x5a2; + /* 0x5A4 */ u16 field_0x5a4; +}; // Size: 0x5A8 + +namespace daTagMist_prm { +inline u8 getSwNoNum(daTagMist_c* i_this) { + return fopAcM_GetParam(i_this) >> 0x10; +} +inline u8 getMySwNo(daTagMist_c* i_this) { + return fopAcM_GetParam(i_this) >> 0x8; +} +inline u8 getTopSwNo(daTagMist_c* i_this) { + return fopAcM_GetParam(i_this); +} +inline u8 getExitNo(daTagMist_c* i_this) { + return (fopAcM_GetParam(i_this) >> 0x18) & 0x3F; +} +inline int getSwNo2(daTagMist_c* i_this) { + return i_this->field_0x5a2 & 0xFF; +} +} // namespace daTagMist_prm #endif /* D_A_TAG_MIST_H */ diff --git a/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.cpp b/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.cpp index d870cfe188..ba3f17a6fd 100644 --- a/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.cpp +++ b/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.cpp @@ -1,243 +1,181 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_tag_mist -// +/** + * d_a_tag_mist.cpp + * + */ #include "rel/d/a/tag/d_a_tag_mist/d_a_tag_mist.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daTagMist_c { - /* 8048F258 */ void offSw(); - /* 8048F2C4 */ void onMySw(); - /* 8048F310 */ void isMySw(); - /* 8048F370 */ void Create(); - /* 8048F444 */ void create(); - /* 8048F558 */ void execute(); - /* 8048F690 */ bool _delete(); -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 800352B0 */ void offSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct cXyz { - /* 8048F518 */ ~cXyz(); - /* 8048F554 */ cXyz(); -}; - -// -// Forward References: -// - -extern "C" void offSw__11daTagMist_cFv(); -extern "C" void onMySw__11daTagMist_cFv(); -extern "C" void isMySw__11daTagMist_cFv(); -extern "C" void Create__11daTagMist_cFv(); -extern "C" void create__11daTagMist_cFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void execute__11daTagMist_cFv(); -extern "C" bool _delete__11daTagMist_cFv(); -extern "C" static void daTagMist_Execute__FP11daTagMist_c(); -extern "C" static void daTagMist_Delete__FP11daTagMist_c(); -extern "C" static void daTagMist_Create__FP10fopAc_ac_c(); -extern "C" extern void* g_profile_Tag_Mist[12]; - -// -// External References: -// - -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void offSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void __dl__FPv(); -extern "C" void PSMTXMultVec(); -extern "C" void PSVECSubtract(); -extern "C" void __construct_array(); -extern "C" void _savegpr_27(); -extern "C" void _restgpr_27(); -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 mPlayerNo__11daTagMist_c[4]; - -// -// Declarations: -// +#include "JSystem/JKernel/JKRHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" /* 8048F258-8048F2C4 000078 006C+00 1/1 0/0 0/0 .text offSw__11daTagMist_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagMist_c::offSw() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/offSw__11daTagMist_cFv.s" +void daTagMist_c::offSw() { + u8 sw_no_num; + u8 top_sw_no; + + top_sw_no = daTagMist_prm::getTopSwNo(this); + sw_no_num = daTagMist_prm::getSwNoNum(this); + + for (int i = 0; i < sw_no_num; i++) { + i_fopAcM_offSwitch(this, top_sw_no + i); + } } -#pragma pop /* 8048F2C4-8048F310 0000E4 004C+00 1/1 0/0 0/0 .text onMySw__11daTagMist_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagMist_c::onMySw() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/onMySw__11daTagMist_cFv.s" +void daTagMist_c::onMySw() { + u32 my_sw_no; + u32 top_sw_no; + + top_sw_no = daTagMist_prm::getTopSwNo(this); + my_sw_no = daTagMist_prm::getMySwNo(this); + + if (my_sw_no != 0xFF) { + i_fopAcM_onSwitch(this, top_sw_no + my_sw_no); + } } -#pragma pop /* 8048F310-8048F370 000130 0060+00 1/1 0/0 0/0 .text isMySw__11daTagMist_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagMist_c::isMySw() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/isMySw__11daTagMist_cFv.s" +BOOL daTagMist_c::isMySw() { + u32 my_sw_no; + u32 top_sw_no; + + top_sw_no = daTagMist_prm::getTopSwNo(this); + my_sw_no = daTagMist_prm::getMySwNo(this); + + if (my_sw_no != 0xFF && i_fopAcM_isSwitch(this, top_sw_no + my_sw_no)) { + return TRUE; + } else { + return FALSE; + } } -#pragma pop - -/* ############################################################################################## */ -/* 8048F700-8048F704 000000 0004+00 1/1 0/0 0/0 .rodata @3678 */ -SECTION_RODATA static f32 const lit_3678 = -50.0f; -COMPILER_STRIP_GATE(0x8048F700, &lit_3678); - -/* 8048F704-8048F708 000004 0004+00 0/1 0/0 0/0 .rodata @3679 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3679 = 50.0f; -COMPILER_STRIP_GATE(0x8048F704, &lit_3679); -#pragma pop - -/* 8048F708-8048F70C 000008 0004+00 0/1 0/0 0/0 .rodata @3680 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3680[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x8048F708, &lit_3680); -#pragma pop /* 8048F370-8048F444 000190 00D4+00 1/1 0/0 0/0 .text Create__11daTagMist_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagMist_c::Create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/Create__11daTagMist_cFv.s" +int daTagMist_c::Create() { + mVertices[0].x = mScale.x * -50.0f; + mVertices[0].z = mScale.z * -50.0f; + + mVertices[1].x = mScale.x * 50.0f; + mVertices[1].z = mScale.z * -50.0f; + + mVertices[2].x = mScale.x * 50.0f; + mVertices[2].z = mScale.z * 50.0f; + + mVertices[3].x = mScale.x * -50.0f; + mVertices[3].z = mScale.z * 50.0f; + + mVertices[3].y = 0.0f; + mVertices[2].y = 0.0f; + mVertices[1].y = 0.0f; + mVertices[0].y = 0.0f; + + if (isMySw()) { + setPlayerNo(daTagMist_prm::getExitNo(this)); + } + + mPlayerTouched = false; + return 1; } -#pragma pop /* 8048F444-8048F518 000264 00D4+00 1/1 0/0 0/0 .text create__11daTagMist_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagMist_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/func_8048F444.s" -} -#pragma pop +int daTagMist_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagMist_c(); + fopAcM_OnCondition(this, 8); + } -/* 8048F518-8048F554 000338 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm cXyz::~cXyz() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/__dt__4cXyzFv.s" -} -#pragma pop + if (!mInitParams) { + mInitParams = true; -/* 8048F554-8048F558 000374 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -cXyz::cXyz() { - /* empty function */ + field_0x5a2 = orig.angle.x; + field_0x5a4 = orig.angle.z; + + orig.angle.z = 0; + orig.angle.x = 0; + current.angle.z = 0; + current.angle.x = 0; + shape_angle.z = 0; + shape_angle.x = 0; + } + + if (!Create()) { + return cPhs_ERROR_e; + } + + return cPhs_COMPLEATE_e; } /* 8048F558-8048F690 000378 0138+00 1/1 0/0 0/0 .text execute__11daTagMist_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagMist_c::execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/execute__11daTagMist_cFv.s" +int daTagMist_c::execute() { + if (i_fopAcM_isSwitch(this, daTagMist_prm::getSwNo2(this))) { + return 1; + } + + fopAc_ac_c* player_p = dComIfGp_getPlayer(0); + cXyz player_dist(player_p->current.pos); + player_dist -= orig.pos; + + mDoMtx_stack_c::YrotS(-current.angle.y); + mDoMtx_stack_c::multVec(&player_dist, &player_dist); + + u8 player_inside = (mVertices[0].x < player_dist.x && mVertices[0].z < player_dist.z) && + (mVertices[2].x > player_dist.x && mVertices[2].z > player_dist.z); + + if (player_inside && !mPlayerTouched) { + offSw(); + onMySw(); + mPlayerNo = daTagMist_prm::getExitNo(this); + } + + mPlayerTouched = player_inside; + return 1; } -#pragma pop /* 8048F690-8048F698 0004B0 0008+00 1/1 0/0 0/0 .text _delete__11daTagMist_cFv */ -bool daTagMist_c::_delete() { - return true; +int daTagMist_c::_delete() { + return 1; } /* 8048F698-8048F6B8 0004B8 0020+00 1/0 0/0 0/0 .text daTagMist_Execute__FP11daTagMist_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagMist_Execute(daTagMist_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Execute__FP11daTagMist_c.s" +static int daTagMist_Execute(daTagMist_c* i_this) { + return i_this->execute(); } -#pragma pop /* 8048F6B8-8048F6D8 0004D8 0020+00 1/0 0/0 0/0 .text daTagMist_Delete__FP11daTagMist_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagMist_Delete(daTagMist_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Delete__FP11daTagMist_c.s" +static int daTagMist_Delete(daTagMist_c* i_this) { + return i_this->_delete(); } -#pragma pop /* 8048F6D8-8048F6F8 0004F8 0020+00 1/0 0/0 0/0 .text daTagMist_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagMist_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Create__FP10fopAc_ac_c.s" +static int daTagMist_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* ############################################################################################## */ /* 8048F70C-8048F72C -00001 0020+00 1/0 0/0 0/0 .data l_daTagMist_Method */ -SECTION_DATA static void* l_daTagMist_Method[8] = { - (void*)daTagMist_Create__FP10fopAc_ac_c, - (void*)daTagMist_Delete__FP11daTagMist_c, - (void*)daTagMist_Execute__FP11daTagMist_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daTagMist_Method = { + (process_method_func)daTagMist_Create, + (process_method_func)daTagMist_Delete, + (process_method_func)daTagMist_Execute, + (process_method_func)NULL, + (process_method_func)NULL, }; /* 8048F72C-8048F75C -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Mist */ -SECTION_DATA extern void* g_profile_Tag_Mist[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02D70000, (void*)&g_fpcLf_Method, - (void*)0x000005A8, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x01240000, (void*)&l_daTagMist_Method, - (void*)0x00040000, (void*)0x000E0000, +extern actor_process_profile_definition g_profile_Tag_Mist = { + -3, + 7, + -3, + PROC_Tag_Mist, + &g_fpcLf_Method.mBase, + sizeof(daTagMist_c), + 0, + 0, + &g_fopAc_Method.base, + 292, + &l_daTagMist_Method, + 0x40000, + 0, + 14, }; From 354e159fb089f8c0dc1db31b70ee5b0b3761f91f Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Fri, 30 Jun 2023 00:26:45 -0700 Subject: [PATCH 17/35] d_a_obj_lv3waterEff / d_a_kytag16 OK --- include/d/kankyo/d_kankyo.h | 6 +- .../rel/d/a/kytag/d_a_kytag16/d_a_kytag16.h | 21 +- .../d_a_obj_lv3waterEff/d_a_obj_lv3waterEff.h | 14 +- rel/d/a/kytag/d_a_kytag16/d_a_kytag16.cpp | 449 +++++++----------- .../d_a_obj_lv3waterEff.cpp | 309 ++++-------- 5 files changed, 293 insertions(+), 506 deletions(-) diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index 6daa055ab8..5265deda92 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -42,6 +42,8 @@ void dKy_BossLight_set(cXyz* param_0, _GXColor* param_1, f32 param_2, u8 param_3 void dKy_custom_colset(u8 prevGather, u8 curGather, f32 blend); void dKy_setLight(); cXyz dKy_plight_near_pos(); +void dKy_BossSpotLight_set(cXyz* param_0, f32 param_1, f32 param_2, f32 param_3, _GXColor* param_4, + f32 param_5, u8 param_6, u8 param_7); struct LIGHT_INFLUENCE { /* 800CFC7C */ ~LIGHT_INFLUENCE() {} @@ -168,12 +170,12 @@ struct LightStatus { /* 0x4C */ f32 mRefDist; /* 0x50 */ f32 mRefBrightness; /* 0x54 */ GXDistAttnFn mDistFn; - /* 0x58 */ u32 field_0x58[2][6]; //? + /* 0x58 */ u32 field_0x58[2][6]; //? /* 0x88 */ f32 field_0x88; /* 0x8C */ f32 field_0x8c; /* 0x90 */ f32 field_0x90; /* 0x94 */ f32 field_0x94; - /* 0x98 */ u32 field_0x98[2][8]; //? + /* 0x98 */ u32 field_0x98[2][8]; //? /* 0xD8 */ f32 field_0xd8; /* 0xDC */ f32 field_0xdc; /* 0xE0 */ f32 field_0xe0; diff --git a/include/rel/d/a/kytag/d_a_kytag16/d_a_kytag16.h b/include/rel/d/a/kytag/d_a_kytag16/d_a_kytag16.h index 8aced5f54f..57bf6472eb 100644 --- a/include/rel/d/a/kytag/d_a_kytag16/d_a_kytag16.h +++ b/include/rel/d/a/kytag/d_a_kytag16/d_a_kytag16.h @@ -1,6 +1,25 @@ #ifndef D_A_KYTAG16_H #define D_A_KYTAG16_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class kytag16_class : public fopAc_ac_c { +public: + /* 0x568 */ f32 field_0x568; + /* 0x56C */ u8 field_0x56c; + /* 0x56D */ GXColor field_0x56d; + /* 0x571 */ u8 field_0x571; + /* 0x572 */ u8 field_0x572; + /* 0x573 */ u8 field_0x573; + /* 0x574 */ f32 field_0x574; + /* 0x578 */ f32 field_0x578; + /* 0x57C */ f32 field_0x57c; + /* 0x580 */ f32 field_0x580; + /* 0x584 */ f32 field_0x584; + /* 0x588 */ s16 field_0x588; + /* 0x58A */ s16 field_0x58a; + /* 0x58C */ u8 field_0x58c; + /* 0x58D */ u8 field_0x58d; +}; #endif /* D_A_KYTAG16_H */ diff --git a/include/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff.h b/include/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff.h index 1dc777bd76..e8064a8889 100644 --- a/include/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff.h +++ b/include/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff.h @@ -1,6 +1,18 @@ #ifndef D_A_OBJ_LV3WATEREFF_H #define D_A_OBJ_LV3WATEREFF_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daObjWaterEff_c : public fopAc_ac_c { +public: + /* 80C5C4F8 */ int Create(); + /* 80C5C5DC */ int create(); + /* 80C5C6B0 */ int execute(); + /* 80C5C7B8 */ int _delete(); + + /* 0x568 */ cXyz mSePositions[2]; + /* 0x580 */ JPABaseEmitter* mParticles[4]; + /* 0x590 */ u8 unused_0x590[0x594 - 0x590]; +}; #endif /* D_A_OBJ_LV3WATEREFF_H */ diff --git a/rel/d/a/kytag/d_a_kytag16/d_a_kytag16.cpp b/rel/d/a/kytag/d_a_kytag16/d_a_kytag16.cpp index db890c3bd5..15524a7186 100644 --- a/rel/d/a/kytag/d_a_kytag16/d_a_kytag16.cpp +++ b/rel/d/a/kytag/d_a_kytag16/d_a_kytag16.cpp @@ -4,307 +4,196 @@ // #include "rel/d/a/kytag/d_a_kytag16/d_a_kytag16.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct kytag16_class {}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct dSv_info_c { - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct cXyz {}; - -struct _GXColor {}; - -struct JMath { - static u8 sincosTable_[65536]; -}; - -// -// Forward References: -// - -extern "C" static bool daKytag16_Draw__FP13kytag16_class(); -extern "C" static void daKytag16_Execute__FP13kytag16_class(); -extern "C" static bool daKytag16_IsDelete__FP13kytag16_class(); -extern "C" static bool daKytag16_Delete__FP13kytag16_class(); -extern "C" static void daKytag16_Create__FP10fopAc_ac_c(); -extern "C" extern char const* const d_a_kytag16__stringBase0; -extern "C" extern void* g_profile_KYTAG16[12]; - -// -// External References: -// - -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void dKy_getdaytime_hour__Fv(); -extern "C" void dKy_BossSpotLight_set__FP4cXyzfffP8_GXColorfUcUc(); -extern "C" void cM_rndFX__Ff(); -extern "C" void cLib_addCalc__FPfffff(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); -extern "C" void strcmp(); -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_Counter[12 + 4 /* padding */]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern u8 mStayNo__20dStage_roomControl_c[4]; - -// -// Declarations: -// +#include "JSystem/JKernel/JKRHeap.h" +#include "SSystem/SComponent/c_counter.h" +#include "SSystem/SComponent/c_math.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" /* 80860C58-80860C60 000078 0008+00 1/0 0/0 0/0 .text daKytag16_Draw__FP13kytag16_class */ -static bool daKytag16_Draw(kytag16_class* param_0) { - return true; +static int daKytag16_Draw(kytag16_class* i_this) { + return 1; } -/* ############################################################################################## */ -/* 80861134-80861138 000000 0004+00 2/2 0/0 0/0 .rodata @3839 */ -SECTION_RODATA static u8 const lit_3839[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80861134, &lit_3839); - -/* 80861138-8086113C 000004 0004+00 0/2 0/0 0/0 .rodata @3840 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3840 = 1.0f; -COMPILER_STRIP_GATE(0x80861138, &lit_3840); -#pragma pop - -/* 8086113C-80861140 000008 0004+00 0/1 0/0 0/0 .rodata @3841 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3841 = 0.5f; -COMPILER_STRIP_GATE(0x8086113C, &lit_3841); -#pragma pop - -/* 80861140-80861144 00000C 0004+00 0/1 0/0 0/0 .rodata @3842 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3842 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80861140, &lit_3842); -#pragma pop - -/* 80861144-80861148 000010 0004+00 0/1 0/0 0/0 .rodata @3843 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_3843 = 0x38D1B717; -COMPILER_STRIP_GATE(0x80861144, &lit_3843); -#pragma pop - -/* 80861148-8086114C 000014 0004+00 0/1 0/0 0/0 .rodata @3844 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3844 = 9.0f / 10.0f; -COMPILER_STRIP_GATE(0x80861148, &lit_3844); -#pragma pop - -/* 8086114C-80861150 000018 0004+00 0/1 0/0 0/0 .rodata @3845 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3845 = 40.0f; -COMPILER_STRIP_GATE(0x8086114C, &lit_3845); -#pragma pop - -/* 80861150-80861154 00001C 0004+00 0/1 0/0 0/0 .rodata @3846 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3846 = 1.0f / 20.0f; -COMPILER_STRIP_GATE(0x80861150, &lit_3846); -#pragma pop - -/* 80861154-80861158 000020 0004+00 0/1 0/0 0/0 .rodata @3847 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_3847 = 0x3A83126F; -COMPILER_STRIP_GATE(0x80861154, &lit_3847); -#pragma pop - -/* 80861158-8086115C 000024 0004+00 0/1 0/0 0/0 .rodata @3848 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3848 = 12.0f; -COMPILER_STRIP_GATE(0x80861158, &lit_3848); -#pragma pop - -/* 8086115C-80861160 000028 0004+00 0/1 0/0 0/0 .rodata @3849 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3849 = 50.0f; -COMPILER_STRIP_GATE(0x8086115C, &lit_3849); -#pragma pop - -/* 80861194-80861194 000060 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80861194 = "F_SP117"; -#pragma pop - /* 80860C60-80860E9C 000080 023C+00 1/0 0/0 0/0 .text daKytag16_Execute__FP13kytag16_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag16_Execute(kytag16_class* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag16/d_a_kytag16/daKytag16_Execute__FP13kytag16_class.s" +static int daKytag16_Execute(kytag16_class* i_this) { + bool var_r29 = false; + f32 var_f31 = 0.0f; + f32 var_f30 = 0.0f; + + if (i_this->field_0x571 < 31) { + if (i_this->field_0x571 > i_this->field_0x572) { + if (dKy_getdaytime_hour() >= i_this->field_0x571 || + dKy_getdaytime_hour() <= i_this->field_0x572) + { + var_r29 = true; + } + } else if (dKy_getdaytime_hour() >= i_this->field_0x571 && + dKy_getdaytime_hour() <= i_this->field_0x572) + { + var_r29 = true; + } + } else { + var_r29 = true; + } + + if (var_r29) { + var_r29 = false; + + if (i_this->field_0x573 != 0xFF) { + s32 room_no = dComIfGp_roomControl_getStayNo(); + + if (dComIfGs_isSwitch(i_this->field_0x573, room_no)) { + var_r29 = true; + } + } else { + var_r29 = true; + } + } + + if (var_r29) { + if (strcmp(dComIfGp_getStartStageName(), "F_SP117") != 0) { + cLib_addCalc(&i_this->field_0x568, 1.0f, 0.5f, 0.1f, 0.0001f); + } else { + var_f31 = cM_ssin(i_this->field_0x588); + var_f30 = cM_scos(i_this->field_0x58a); + + i_this->field_0x588 += 0x500; + i_this->field_0x58a += 800; + + cLib_addCalc(&i_this->field_0x568, 0.9f + (0.1f * cM_ssin(g_Counter.mCounter0 * 0x500)), + 0.5f, 0.1f, 0.0001f); + i_this->field_0x580 = 40.0f; + } + } else { + cLib_addCalc(&i_this->field_0x568, 0.0f, 0.5f, 0.05f, 0.0001f); + } + + if (i_this->field_0x568 > 0.001f) { + dKy_BossSpotLight_set(&i_this->current.pos, i_this->field_0x578 + (12.0f * var_f31), + i_this->field_0x57c + (50.0f * var_f30), i_this->field_0x580, + &i_this->field_0x56d, i_this->field_0x574 * i_this->field_0x568, + i_this->field_0x58c, i_this->field_0x58d); + } + + return 1; } -#pragma pop /* 80860E9C-80860EA4 0002BC 0008+00 1/0 0/0 0/0 .text daKytag16_IsDelete__FP13kytag16_class */ -static bool daKytag16_IsDelete(kytag16_class* param_0) { - return true; +static int daKytag16_IsDelete(kytag16_class* i_this) { + return 1; } /* 80860EA4-80860EAC 0002C4 0008+00 1/0 0/0 0/0 .text daKytag16_Delete__FP13kytag16_class */ -static bool daKytag16_Delete(kytag16_class* param_0) { - return true; +static int daKytag16_Delete(kytag16_class* i_this) { + return 1; } -/* ############################################################################################## */ -/* 80861160-80861164 00002C 0004+00 0/1 0/0 0/0 .rodata @3902 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3902 = 180.0f; -COMPILER_STRIP_GATE(0x80861160, &lit_3902); -#pragma pop - -/* 80861164-80861168 000030 0004+00 0/1 0/0 0/0 .rodata @3903 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3903 = 32767.0f; -COMPILER_STRIP_GATE(0x80861164, &lit_3903); -#pragma pop - -/* 80861168-8086116C 000034 0004+00 0/1 0/0 0/0 .rodata @3904 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3904 = 65535.0f; -COMPILER_STRIP_GATE(0x80861168, &lit_3904); -#pragma pop - -/* 8086116C-80861170 000038 0004+00 0/1 0/0 0/0 .rodata @3905 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3905 = 45.0f; -COMPILER_STRIP_GATE(0x8086116C, &lit_3905); -#pragma pop - -/* 80861170-80861174 00003C 0004+00 0/0 0/0 0/0 .rodata @3906 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3906 = 5.0f; -COMPILER_STRIP_GATE(0x80861170, &lit_3906); -#pragma pop - -/* 80861174-80861178 000040 0004+00 0/0 0/0 0/0 .rodata @3907 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3907 = 10.0f; -COMPILER_STRIP_GATE(0x80861174, &lit_3907); -#pragma pop - -/* 80861178-8086117C 000044 0004+00 0/0 0/0 0/0 .rodata @3908 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3908 = 25.0f; -COMPILER_STRIP_GATE(0x80861178, &lit_3908); -#pragma pop - -/* 8086117C-80861180 000048 0004+00 0/0 0/0 0/0 .rodata @3909 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3909 = 70.0f; -COMPILER_STRIP_GATE(0x8086117C, &lit_3909); -#pragma pop - -/* 80861180-80861184 00004C 0004+00 0/0 0/0 0/0 .rodata @3910 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3910 = 60.0f; -COMPILER_STRIP_GATE(0x80861180, &lit_3910); -#pragma pop - -/* 80861184-8086118C 000050 0004+04 0/0 0/0 0/0 .rodata @3911 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3911[1 + 1 /* padding */] = { - 1.0f / 100.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80861184, &lit_3911); -#pragma pop - -/* 8086118C-80861194 000058 0008+00 0/1 0/0 0/0 .rodata @3913 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3913[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8086118C, &lit_3913); -#pragma pop - -/* 8086119C-808611BC -00001 0020+00 1/1 0/0 0/0 .data @3917 */ -SECTION_DATA static void* lit_3917[8] = { - (void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x150), - (void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x170), - (void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x194), - (void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x1B8), - (void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x1D8), - (void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x1FC), - (void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x220), - (void*)(((char*)daKytag16_Create__FP10fopAc_ac_c) + 0x244), -}; - /* 80860EAC-8086112C 0002CC 0280+00 2/0 0/0 0/0 .text daKytag16_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag16_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag16/d_a_kytag16/daKytag16_Create__FP10fopAc_ac_c.s" +static int daKytag16_Create(fopAc_ac_c* i_this) { + if (!fopAcM_CheckCondition(i_this, 8)) { + new (i_this) kytag16_class(); + fopAcM_OnCondition(i_this, 8); + } + kytag16_class* this_ = (kytag16_class*)i_this; + + this_->field_0x573 = fopAcM_GetParam(this_) & 0xFF; + this_->field_0x56c = (this_->current.angle.z >> 10) & 0x3F; + + this_->field_0x56d.r = fopAcM_GetParam(this_) >> 0x8; + this_->field_0x56d.g = fopAcM_GetParam(this_) >> 0x10; + this_->field_0x56d.b = fopAcM_GetParam(this_) >> 0x18; + + this_->field_0x571 = this_->current.angle.z & 0x1F; + this_->field_0x572 = (this_->current.angle.z >> 5) & 0x1F; + this_->field_0x578 = (this_->shape_angle.x / 32767.0f) * 180.0f; + this_->field_0x57c = (this_->shape_angle.y / 32767.0f) * 180.0f; + + this_->field_0x588 = cM_rndFX(65535.0f); + this_->field_0x58a = cM_rndFX(65535.0f); + this_->field_0x584 = 1.0f; + this_->field_0x568 = 0.0f; + + switch (this_->field_0x56c) { + case 0: + this_->field_0x580 = 45.0f; + this_->field_0x574 = 1.0f; + this_->field_0x58c = 0; + this_->field_0x58d = 3; + break; + case 1: + this_->field_0x580 = 45.0f; + this_->field_0x574 = 5.0f; + this_->field_0x58c = 0; + this_->field_0x58d = 3; + break; + case 2: + this_->field_0x580 = 45.0f; + this_->field_0x574 = 10.0f; + this_->field_0x58c = 0; + this_->field_0x58d = 3; + break; + case 3: + this_->field_0x580 = 25.0f; + this_->field_0x574 = 1.0f; + this_->field_0x58c = 2; + this_->field_0x58d = 3; + break; + case 4: + this_->field_0x580 = 45.0f; + this_->field_0x574 = 5.0f; + this_->field_0x58c = 2; + this_->field_0x58d = 3; + break; + case 5: + this_->field_0x580 = 70.0f; + this_->field_0x574 = 10.0f; + this_->field_0x58c = 2; + this_->field_0x58d = 3; + break; + case 6: + this_->field_0x580 = 60.0f; + this_->field_0x574 = 0.01f; + this_->field_0x58c = 2; + this_->field_0x58d = 1; + break; + case 7: + this_->field_0x580 = 50.0f; + this_->field_0x574 = 0.01f; + this_->field_0x58c = 2; + this_->field_0x58d = 1; + break; + } + + return cPhs_COMPLEATE_e; } -#pragma pop /* ############################################################################################## */ /* 808611BC-808611DC -00001 0020+00 1/0 0/0 0/0 .data l_daKytag16_Method */ -SECTION_DATA static void* l_daKytag16_Method[8] = { - (void*)daKytag16_Create__FP10fopAc_ac_c, - (void*)daKytag16_Delete__FP13kytag16_class, - (void*)daKytag16_Execute__FP13kytag16_class, - (void*)daKytag16_IsDelete__FP13kytag16_class, - (void*)daKytag16_Draw__FP13kytag16_class, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daKytag16_Method = { + (process_method_func)daKytag16_Create, + (process_method_func)daKytag16_Delete, + (process_method_func)daKytag16_Execute, + (process_method_func)daKytag16_IsDelete, + (process_method_func)daKytag16_Draw, }; /* 808611DC-8086120C -00001 0030+00 0/0 0/0 1/0 .data g_profile_KYTAG16 */ -SECTION_DATA extern void* g_profile_KYTAG16[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02BA0000, (void*)&g_fpcLf_Method, - (void*)0x00000590, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x006E0000, (void*)&l_daKytag16_Method, - (void*)0x00060000, (void*)NULL, +extern actor_process_profile_definition g_profile_KYTAG16 = { + -3, + 7, + -3, + PROC_KYTAG16, + &g_fpcLf_Method.mBase, + sizeof(kytag16_class), + 0, + 0, + &g_fopAc_Method.base, + 110, + &l_daKytag16_Method, + 0x60000, + 0, + 0, }; - -/* 80861194-80861194 000060 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff.cpp b/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff.cpp index 4e5d5404da..3861fd49b1 100644 --- a/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff.cpp +++ b/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff.cpp @@ -1,258 +1,123 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_obj_lv3waterEff -// +/** + * d_a_obj_lv3waterEff.cpp + * Lakebed Temple Pre-Deku Toad Room Water Bubbles + */ #include "rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff.h" -#include "dol2asm.h" -#include "dolphin/types.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daObjWaterEff_c { - /* 80C5C4F8 */ void Create(); - /* 80C5C5DC */ void create(); - /* 80C5C6B0 */ void execute(); - /* 80C5C7B8 */ void _delete(); -}; - -struct dPa_levelEcallBack {}; - -struct dKy_tevstr_c {}; - -struct csXyz {}; - -struct _GXColor {}; - -struct cXyz { - /* 80C5C670 */ ~cXyz(); - /* 80C5C6AC */ cXyz(); -}; - -struct dPa_control_c { - /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, - u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, - cXyz const*, f32); -}; - -struct JAISoundID {}; - -struct Vec {}; - -struct Z2SeMgr { - /* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -// -// Forward References: -// - -extern "C" void Create__15daObjWaterEff_cFv(); -extern "C" void create__15daObjWaterEff_cFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void execute__15daObjWaterEff_cFv(); -extern "C" void _delete__15daObjWaterEff_cFv(); -extern "C" static void daObjWaterEff_Execute__FP15daObjWaterEff_c(); -extern "C" static void daObjWaterEff_Delete__FP15daObjWaterEff_c(); -extern "C" static void daObjWaterEff_Create__FP10fopAc_ac_c(); -extern "C" extern void* g_profile_Obj_WaterEff[12]; - -// -// External References: -// - -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void dKy_camera_water_in_status_check__Fv(); -extern "C" void seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void __dl__FPv(); -extern "C" void __construct_array(); -extern "C" void _savegpr_25(); -extern "C" void _restgpr_25(); -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" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; - -// -// Declarations: -// - -/* ############################################################################################## */ /* 80C5C878-80C5C880 000000 0008+00 1/1 0/0 0/0 .rodata l_eff_id */ -SECTION_RODATA static u8 const l_eff_id[8] = { - 0x86, 0xD2, 0x86, 0xD3, 0x86, 0xD4, 0x86, 0xD5, +static u16 const l_eff_id[] = { + 0x86D2, + 0x86D3, + 0x86D4, + 0x86D5, }; -COMPILER_STRIP_GATE(0x80C5C878, &l_eff_id); - -/* 80C5C880-80C5C884 000008 0004+00 1/2 0/0 0/0 .rodata @3637 */ -SECTION_RODATA static f32 const lit_3637 = 1.0f; -COMPILER_STRIP_GATE(0x80C5C880, &lit_3637); - -/* 80C5C884-80C5C888 00000C 0004+00 0/1 0/0 0/0 .rodata @3638 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3638 = 14420.0f; -COMPILER_STRIP_GATE(0x80C5C884, &lit_3638); -#pragma pop - -/* 80C5C888-80C5C88C 000010 0004+00 0/1 0/0 0/0 .rodata @3639 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3639 = -1100.0f; -COMPILER_STRIP_GATE(0x80C5C888, &lit_3639); -#pragma pop - -/* 80C5C88C-80C5C890 000014 0004+00 0/1 0/0 0/0 .rodata @3640 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3640 = -4950.0f; -COMPILER_STRIP_GATE(0x80C5C88C, &lit_3640); -#pragma pop - -/* 80C5C890-80C5C894 000018 0004+00 0/1 0/0 0/0 .rodata @3641 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3641 = 12585.0f; -COMPILER_STRIP_GATE(0x80C5C890, &lit_3641); -#pragma pop - -/* 80C5C894-80C5C898 00001C 0004+00 0/1 0/0 0/0 .rodata @3642 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3642 = -550.0f; -COMPILER_STRIP_GATE(0x80C5C894, &lit_3642); -#pragma pop - -/* 80C5C898-80C5C89C 000020 0004+00 0/1 0/0 0/0 .rodata @3643 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3643 = -2390.0f; -COMPILER_STRIP_GATE(0x80C5C898, &lit_3643); -#pragma pop /* 80C5C4F8-80C5C5DC 000078 00E4+00 1/1 0/0 0/0 .text Create__15daObjWaterEff_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjWaterEff_c::Create() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/Create__15daObjWaterEff_cFv.s" +int daObjWaterEff_c::Create() { + for (int i = 0; i < 4; i++) { + mParticles[i] = dComIfGp_particle_set(l_eff_id[i], ¤t.pos, NULL, NULL, 0xFF, NULL, -1, + NULL, NULL, NULL); + } + + mSePositions[0].set(14420.0f, -1100.0f, -4950.0f); + mSePositions[1].set(12585.0f, -550.0f, -2390.0f); + return 1; } -#pragma pop /* 80C5C5DC-80C5C670 00015C 0094+00 1/1 0/0 0/0 .text create__15daObjWaterEff_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjWaterEff_c::create() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/func_80C5C5DC.s" -} -#pragma pop +int daObjWaterEff_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daObjWaterEff_c(); + fopAcM_OnCondition(this, 8); + } -/* 80C5C670-80C5C6AC 0001F0 003C+00 1/1 0/0 0/0 .text __dt__4cXyzFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm cXyz::~cXyz() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/__dt__4cXyzFv.s" -} -#pragma pop + if (!Create()) { + return cPhs_ERROR_e; + } -/* 80C5C6AC-80C5C6B0 00022C 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -cXyz::cXyz() { - /* empty function */ + return cPhs_COMPLEATE_e; } -/* ############################################################################################## */ -/* 80C5C89C-80C5C8A0 000024 0004+00 1/1 0/0 0/0 .rodata @3710 */ -SECTION_RODATA static f32 const lit_3710 = -1.0f; -COMPILER_STRIP_GATE(0x80C5C89C, &lit_3710); - /* 80C5C6B0-80C5C7B8 000230 0108+00 1/1 0/0 0/0 .text execute__15daObjWaterEff_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjWaterEff_c::execute() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/execute__15daObjWaterEff_cFv.s" +int daObjWaterEff_c::execute() { + if (dKy_camera_water_in_status_check()) { + for (int i = 0; i < 4; i++) { + if (mParticles[i] != NULL) { + mParticles[i]->setGlobalAlpha(255); + } + } + } else { + for (int i = 0; i < 4; i++) { + if (mParticles[i] != NULL) { + mParticles[i]->setGlobalAlpha(128); + } + } + } + + for (int i = 0; i < 2; i++) { + i_mDoAud_seStartLevel(Z2SE_OBJ_WTR_STREAM, &mSePositions[i], 0, 0); + } + + return 1; } -#pragma pop /* 80C5C7B8-80C5C810 000338 0058+00 1/1 0/0 0/0 .text _delete__15daObjWaterEff_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjWaterEff_c::_delete() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/_delete__15daObjWaterEff_cFv.s" +int daObjWaterEff_c::_delete() { + for (int i = 0; i < 4; i++) { + if (mParticles[i] != NULL) { + mParticles[i]->becomeInvalidEmitter(); + mParticles[i]->quitImmortalEmitter(); + mParticles[i] = NULL; + } + } + + return 1; } -#pragma pop /* 80C5C810-80C5C830 000390 0020+00 1/0 0/0 0/0 .text daObjWaterEff_Execute__FP15daObjWaterEff_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjWaterEff_Execute(daObjWaterEff_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Execute__FP15daObjWaterEff_c.s" +static int daObjWaterEff_Execute(daObjWaterEff_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80C5C830-80C5C850 0003B0 0020+00 1/0 0/0 0/0 .text daObjWaterEff_Delete__FP15daObjWaterEff_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjWaterEff_Delete(daObjWaterEff_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Delete__FP15daObjWaterEff_c.s" +static int daObjWaterEff_Delete(daObjWaterEff_c* i_this) { + return i_this->_delete(); } -#pragma pop /* 80C5C850-80C5C870 0003D0 0020+00 1/0 0/0 0/0 .text daObjWaterEff_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjWaterEff_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Create__FP10fopAc_ac_c.s" +static int daObjWaterEff_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* ############################################################################################## */ /* 80C5C8A0-80C5C8C0 -00001 0020+00 1/0 0/0 0/0 .data l_daObjWaterEff_Method */ -SECTION_DATA static void* l_daObjWaterEff_Method[8] = { - (void*)daObjWaterEff_Create__FP10fopAc_ac_c, - (void*)daObjWaterEff_Delete__FP15daObjWaterEff_c, - (void*)daObjWaterEff_Execute__FP15daObjWaterEff_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daObjWaterEff_Method = { + (process_method_func)daObjWaterEff_Create, + (process_method_func)daObjWaterEff_Delete, + (process_method_func)daObjWaterEff_Execute, + (process_method_func)NULL, + (process_method_func)NULL, }; /* 80C5C8C0-80C5C8F0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_WaterEff */ -SECTION_DATA extern void* g_profile_Obj_WaterEff[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x017F0000, (void*)&g_fpcLf_Method, - (void*)0x00000594, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x022B0000, (void*)&l_daObjWaterEff_Method, - (void*)0x00040100, (void*)0x000E0000, +extern actor_process_profile_definition g_profile_Obj_WaterEff = { + -3, + 7, + -3, + PROC_Obj_WaterEff, + &g_fpcLf_Method.mBase, + sizeof(daObjWaterEff_c), + 0, + 0, + &g_fopAc_Method.base, + 555, + &l_daObjWaterEff_Method, + 0x40100, + 0, + 14, }; From f46b5d3879afa1709c3cdb00153204bcdde82988 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Fri, 30 Jun 2023 19:29:50 +0300 Subject: [PATCH 18/35] Work on d_a_mirror --- Progress.md | 8 +- .../d_a_mirror/__ct__10daMirror_cFv.s | 25 - .../d_a_mirror/__ct__16dMirror_packet_cFv.s | 32 - .../d_a_mirror/__dt__16dMirror_packet_cFv.s | 36 - .../calcMinMax__16dMirror_packet_cFv.s | 54 -- .../d_a_mirror/createHeap__10daMirror_cFv.s | 29 - .../daMirror_Delete__FP10daMirror_c.s | 37 - .../daMirror_c_createHeap__FP10fopAc_ac_c.s | 9 - .../daMirror_create__FP10daMirror_c.s | 24 - .../daMirror_draw__FP10daMirror_c.s | 44 -- .../daMirror_execute__FP10daMirror_c.s | 9 - .../d_a_mirror/draw__16dMirror_packet_cFv.s | 42 - .../entryModel__10daMirror_cFP8J3DModel.s | 10 - ...ntryModel__16dMirror_packet_cFP8J3DModel.s | 14 - .../d_a_mirror/reset__16dMirror_packet_cFv.s | 4 - .../d_a_mirror/setModelMtx__10daMirror_cFv.s | 41 - include/JSystem/J3DGraphBase/J3DMatBlock.h | 10 +- include/JSystem/J3DGraphBase/J3DMaterial.h | 1 + include/d/com/d_com_inf_game.h | 4 + include/d/d_drawlist.h | 1 + include/dolphin/gf/GFGeometry.h | 3 + include/dolphin/gf/GFLight.h | 4 + include/m_Do/m_Do_mtx.h | 4 + include/rel/d/a/d_a_boomerang/d_a_boomerang.h | 1 - include/rel/d/a/d_a_mirror/d_a_mirror.h | 48 ++ libs/JSystem/J3DGraphBase/J3DMatBlock.cpp | 6 +- .../J3DGraphLoader/J3DMaterialFactory.cpp | 2 +- libs/dolphin/gf/GFGeometry.cpp | 1 - libs/dolphin/gf/GFLight.cpp | 2 - rel/d/a/d_a_boomerang/d_a_boomerang.cpp | 5 +- rel/d/a/d_a_mirror/d_a_mirror.cpp | 740 ++++++++++-------- rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.cpp | 5 +- src/d/a/d_a_alink.cpp | 5 +- src/d/com/d_com_static.cpp | 13 +- src/m_Do/m_Do_ext.cpp | 8 +- 35 files changed, 497 insertions(+), 784 deletions(-) delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/__ct__10daMirror_cFv.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/__ct__16dMirror_packet_cFv.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/__dt__16dMirror_packet_cFv.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/calcMinMax__16dMirror_packet_cFv.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/createHeap__10daMirror_cFv.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_Delete__FP10daMirror_c.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_c_createHeap__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_create__FP10daMirror_c.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_draw__FP10daMirror_c.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_execute__FP10daMirror_c.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/draw__16dMirror_packet_cFv.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/entryModel__10daMirror_cFP8J3DModel.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/entryModel__16dMirror_packet_cFP8J3DModel.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/reset__16dMirror_packet_cFv.s delete mode 100644 asm/rel/d/a/d_a_mirror/d_a_mirror/setModelMtx__10daMirror_cFv.s diff --git a/Progress.md b/Progress.md index ea5881b52c..4b2940e43d 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 35.593453% | 1431096 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 35.593453% | 1431096 | 4020672 -RELs | 33.667817% | 3871908 | 11500324 -Total | 34.166648% | 5303004 | 15520996 +RELs | 33.680860% | 3873408 | 11500324 +Total | 34.176312% | 5304504 | 15520996 ## RELs @@ -214,7 +214,7 @@ d_a_mg_fish | 26.024167% | 17660 | 67860 d_a_mg_fshop | 36.363636% | 9360 | 25740 d_a_mg_rod | 24.484345% | 23836 | 97352 d_a_midna | 22.953368% | 12404 | 54040 -d_a_mirror | 32.707993% | 3208 | 9808 +d_a_mirror | 48.001631% | 4708 | 9808 d_a_movie_player | 23.696790% | 8328 | 35144 d_a_myna | 30.876570% | 9736 | 31532 d_a_nbomb | 28.739233% | 8808 | 30648 @@ -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.667817% | 3871908 | 11500324 +Total | 33.680860% | 3873408 | 11500324 diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/__ct__10daMirror_cFv.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/__ct__10daMirror_cFv.s deleted file mode 100644 index ce9116ea09..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/__ct__10daMirror_cFv.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_80871E24: -/* 80871E24 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80871E28 7C 08 02 A6 */ mflr r0 -/* 80871E2C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80871E30 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80871E34 7C 7F 1B 78 */ mr r31, r3 -/* 80871E38 4B 7A 6D 2D */ bl __ct__10fopAc_ac_cFv -/* 80871E3C 38 7F 05 70 */ addi r3, r31, 0x570 -/* 80871E40 4B FF ED 99 */ bl __ct__16dMirror_packet_cFv -/* 80871E44 3C 60 80 42 */ lis r3, m_entryModel__10daMirror_c@ha /* 0x8042457C@ha */ -/* 80871E48 38 A3 45 7C */ addi r5, r3, m_entryModel__10daMirror_c@l /* 0x8042457C@l */ -/* 80871E4C 3C 60 80 87 */ lis r3, lit_4377@ha /* 0x80872668@ha */ -/* 80871E50 38 83 26 68 */ addi r4, r3, lit_4377@l /* 0x80872668@l */ -/* 80871E54 80 64 00 00 */ lwz r3, 0(r4) -/* 80871E58 80 04 00 04 */ lwz r0, 4(r4) -/* 80871E5C 90 65 00 00 */ stw r3, 0(r5) -/* 80871E60 90 05 00 04 */ stw r0, 4(r5) -/* 80871E64 80 04 00 08 */ lwz r0, 8(r4) -/* 80871E68 90 05 00 08 */ stw r0, 8(r5) -/* 80871E6C 7F E3 FB 78 */ mr r3, r31 -/* 80871E70 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80871E74 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80871E78 7C 08 03 A6 */ mtlr r0 -/* 80871E7C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80871E80 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/__ct__16dMirror_packet_cFv.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/__ct__16dMirror_packet_cFv.s deleted file mode 100644 index fef3a25f94..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/__ct__16dMirror_packet_cFv.s +++ /dev/null @@ -1,32 +0,0 @@ -lbl_80870BD8: -/* 80870BD8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80870BDC 7C 08 02 A6 */ mflr r0 -/* 80870BE0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80870BE4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80870BE8 7C 7F 1B 78 */ mr r31, r3 -/* 80870BEC 3C 60 80 3D */ lis r3, __vt__9J3DPacket@ha /* 0x803CD97C@ha */ -/* 80870BF0 38 03 D9 7C */ addi r0, r3, __vt__9J3DPacket@l /* 0x803CD97C@l */ -/* 80870BF4 90 1F 00 00 */ stw r0, 0(r31) -/* 80870BF8 38 00 00 00 */ li r0, 0 -/* 80870BFC 90 1F 00 04 */ stw r0, 4(r31) -/* 80870C00 90 1F 00 08 */ stw r0, 8(r31) -/* 80870C04 90 1F 00 0C */ stw r0, 0xc(r31) -/* 80870C08 3C 60 80 87 */ lis r3, __vt__16dMirror_packet_c@ha /* 0x808726C4@ha */ -/* 80870C0C 38 03 26 C4 */ addi r0, r3, __vt__16dMirror_packet_c@l /* 0x808726C4@l */ -/* 80870C10 90 1F 00 00 */ stw r0, 0(r31) -/* 80870C14 38 7F 01 34 */ addi r3, r31, 0x134 -/* 80870C18 3C 80 80 87 */ lis r4, __ct__4cXyzFv@ha /* 0x80870C90@ha */ -/* 80870C1C 38 84 0C 90 */ addi r4, r4, __ct__4cXyzFv@l /* 0x80870C90@l */ -/* 80870C20 3C A0 80 87 */ lis r5, __dt__4cXyzFv@ha /* 0x80870C54@ha */ -/* 80870C24 38 A5 0C 54 */ addi r5, r5, __dt__4cXyzFv@l /* 0x80870C54@l */ -/* 80870C28 38 C0 00 0C */ li r6, 0xc -/* 80870C2C 38 E0 00 04 */ li r7, 4 -/* 80870C30 4B AF 11 31 */ bl __construct_array -/* 80870C34 7F E3 FB 78 */ mr r3, r31 -/* 80870C38 48 00 00 5D */ bl reset__16dMirror_packet_cFv -/* 80870C3C 7F E3 FB 78 */ mr r3, r31 -/* 80870C40 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80870C44 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80870C48 7C 08 03 A6 */ mtlr r0 -/* 80870C4C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80870C50 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/__dt__16dMirror_packet_cFv.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/__dt__16dMirror_packet_cFv.s deleted file mode 100644 index 74027da481..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/__dt__16dMirror_packet_cFv.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_80871E84: -/* 80871E84 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80871E88 7C 08 02 A6 */ mflr r0 -/* 80871E8C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80871E90 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80871E94 93 C1 00 08 */ stw r30, 8(r1) -/* 80871E98 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80871E9C 7C 9F 23 78 */ mr r31, r4 -/* 80871EA0 41 82 00 4C */ beq lbl_80871EEC -/* 80871EA4 3C 60 80 87 */ lis r3, __vt__16dMirror_packet_c@ha /* 0x808726C4@ha */ -/* 80871EA8 38 03 26 C4 */ addi r0, r3, __vt__16dMirror_packet_c@l /* 0x808726C4@l */ -/* 80871EAC 90 1E 00 00 */ stw r0, 0(r30) -/* 80871EB0 38 7E 01 34 */ addi r3, r30, 0x134 -/* 80871EB4 3C 80 80 87 */ lis r4, __dt__4cXyzFv@ha /* 0x80870C54@ha */ -/* 80871EB8 38 84 0C 54 */ addi r4, r4, __dt__4cXyzFv@l /* 0x80870C54@l */ -/* 80871EBC 38 A0 00 0C */ li r5, 0xc -/* 80871EC0 38 C0 00 04 */ li r6, 4 -/* 80871EC4 4B AE FE 25 */ bl __destroy_arr -/* 80871EC8 28 1E 00 00 */ cmplwi r30, 0 -/* 80871ECC 41 82 00 10 */ beq lbl_80871EDC -/* 80871ED0 3C 60 80 3D */ lis r3, __vt__9J3DPacket@ha /* 0x803CD97C@ha */ -/* 80871ED4 38 03 D9 7C */ addi r0, r3, __vt__9J3DPacket@l /* 0x803CD97C@l */ -/* 80871ED8 90 1E 00 00 */ stw r0, 0(r30) -lbl_80871EDC: -/* 80871EDC 7F E0 07 35 */ extsh. r0, r31 -/* 80871EE0 40 81 00 0C */ ble lbl_80871EEC -/* 80871EE4 7F C3 F3 78 */ mr r3, r30 -/* 80871EE8 4B A5 CE 55 */ bl __dl__FPv -lbl_80871EEC: -/* 80871EEC 7F C3 F3 78 */ mr r3, r30 -/* 80871EF0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80871EF4 83 C1 00 08 */ lwz r30, 8(r1) -/* 80871EF8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80871EFC 7C 08 03 A6 */ mtlr r0 -/* 80871F00 38 21 00 10 */ addi r1, r1, 0x10 -/* 80871F04 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/calcMinMax__16dMirror_packet_cFv.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/calcMinMax__16dMirror_packet_cFv.s deleted file mode 100644 index 4f33bed91e..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/calcMinMax__16dMirror_packet_cFv.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_80870CA0: -/* 80870CA0 3C 80 80 45 */ lis r4, __float_max@ha /* 0x80450AE8@ha */ -/* 80870CA4 C4 04 0A E8 */ lfsu f0, __float_max@l(r4) /* 0x80450AE8@l */ -/* 80870CA8 D0 03 01 64 */ stfs f0, 0x164(r3) -/* 80870CAC D0 03 01 68 */ stfs f0, 0x168(r3) -/* 80870CB0 D0 03 01 6C */ stfs f0, 0x16c(r3) -/* 80870CB4 C0 04 00 00 */ lfs f0, 0(r4) -/* 80870CB8 FC 00 00 50 */ fneg f0, f0 -/* 80870CBC D0 03 01 70 */ stfs f0, 0x170(r3) -/* 80870CC0 D0 03 01 74 */ stfs f0, 0x174(r3) -/* 80870CC4 D0 03 01 78 */ stfs f0, 0x178(r3) -/* 80870CC8 38 83 01 34 */ addi r4, r3, 0x134 -/* 80870CCC 38 00 00 04 */ li r0, 4 -/* 80870CD0 7C 09 03 A6 */ mtctr r0 -lbl_80870CD4: -/* 80870CD4 C0 24 00 00 */ lfs f1, 0(r4) -/* 80870CD8 C0 03 01 64 */ lfs f0, 0x164(r3) -/* 80870CDC FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80870CE0 40 80 00 08 */ bge lbl_80870CE8 -/* 80870CE4 D0 23 01 64 */ stfs f1, 0x164(r3) -lbl_80870CE8: -/* 80870CE8 C0 24 00 00 */ lfs f1, 0(r4) -/* 80870CEC C0 03 01 70 */ lfs f0, 0x170(r3) -/* 80870CF0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80870CF4 40 81 00 08 */ ble lbl_80870CFC -/* 80870CF8 D0 23 01 70 */ stfs f1, 0x170(r3) -lbl_80870CFC: -/* 80870CFC C0 24 00 04 */ lfs f1, 4(r4) -/* 80870D00 C0 03 01 68 */ lfs f0, 0x168(r3) -/* 80870D04 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80870D08 40 80 00 08 */ bge lbl_80870D10 -/* 80870D0C D0 23 01 68 */ stfs f1, 0x168(r3) -lbl_80870D10: -/* 80870D10 C0 24 00 04 */ lfs f1, 4(r4) -/* 80870D14 C0 03 01 74 */ lfs f0, 0x174(r3) -/* 80870D18 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80870D1C 40 81 00 08 */ ble lbl_80870D24 -/* 80870D20 D0 23 01 74 */ stfs f1, 0x174(r3) -lbl_80870D24: -/* 80870D24 C0 24 00 08 */ lfs f1, 8(r4) -/* 80870D28 C0 03 01 6C */ lfs f0, 0x16c(r3) -/* 80870D2C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80870D30 40 80 00 08 */ bge lbl_80870D38 -/* 80870D34 D0 23 01 6C */ stfs f1, 0x16c(r3) -lbl_80870D38: -/* 80870D38 C0 24 00 08 */ lfs f1, 8(r4) -/* 80870D3C C0 03 01 78 */ lfs f0, 0x178(r3) -/* 80870D40 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80870D44 40 81 00 08 */ ble lbl_80870D4C -/* 80870D48 D0 23 01 78 */ stfs f1, 0x178(r3) -lbl_80870D4C: -/* 80870D4C 38 84 00 0C */ addi r4, r4, 0xc -/* 80870D50 42 00 FF 84 */ bdnz lbl_80870CD4 -/* 80870D54 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/createHeap__10daMirror_cFv.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/createHeap__10daMirror_cFv.s deleted file mode 100644 index cf52a3b3b4..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/createHeap__10daMirror_cFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_80871F08: -/* 80871F08 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80871F0C 7C 08 02 A6 */ mflr r0 -/* 80871F10 90 01 00 14 */ stw r0, 0x14(r1) -/* 80871F14 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80871F18 7C 7F 1B 78 */ mr r31, r3 -/* 80871F1C 3C 60 80 87 */ lis r3, l_arcName@ha /* 0x80872660@ha */ -/* 80871F20 38 63 26 60 */ addi r3, r3, l_arcName@l /* 0x80872660@l */ -/* 80871F24 80 63 00 00 */ lwz r3, 0(r3) -/* 80871F28 38 80 00 04 */ li r4, 4 -/* 80871F2C 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80871F30 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80871F34 3C A5 00 02 */ addis r5, r5, 2 -/* 80871F38 38 C0 00 80 */ li r6, 0x80 -/* 80871F3C 38 A5 C2 F8 */ addi r5, r5, -15624 -/* 80871F40 4B 7C A3 AD */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 80871F44 3C 80 00 08 */ lis r4, 8 -/* 80871F48 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000084@ha */ -/* 80871F4C 38 A5 00 84 */ addi r5, r5, 0x0084 /* 0x11000084@l */ -/* 80871F50 4B 7A 2D 05 */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl -/* 80871F54 90 7F 06 F8 */ stw r3, 0x6f8(r31) -/* 80871F58 80 7F 06 F8 */ lwz r3, 0x6f8(r31) -/* 80871F5C 30 03 FF FF */ addic r0, r3, -1 -/* 80871F60 7C 60 19 10 */ subfe r3, r0, r3 -/* 80871F64 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80871F68 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80871F6C 7C 08 03 A6 */ mtlr r0 -/* 80871F70 38 21 00 10 */ addi r1, r1, 0x10 -/* 80871F74 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_Delete__FP10daMirror_c.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_Delete__FP10daMirror_c.s deleted file mode 100644 index ef9ea7f53d..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_Delete__FP10daMirror_c.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_80872344: -/* 80872344 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80872348 7C 08 02 A6 */ mflr r0 -/* 8087234C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80872350 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 80872354 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 80872358 2C 00 00 02 */ cmpwi r0, 2 -/* 8087235C 40 82 00 24 */ bne lbl_80872380 -/* 80872360 28 03 00 00 */ cmplwi r3, 0 -/* 80872364 41 82 00 08 */ beq lbl_8087236C -/* 80872368 38 63 05 68 */ addi r3, r3, 0x568 -lbl_8087236C: -/* 8087236C 3C 80 80 87 */ lis r4, l_arcName@ha /* 0x80872660@ha */ -/* 80872370 38 84 26 60 */ addi r4, r4, l_arcName@l /* 0x80872660@l */ -/* 80872374 80 84 00 00 */ lwz r4, 0(r4) -/* 80872378 4B 7B AC 91 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 8087237C 48 00 00 28 */ b lbl_808723A4 -lbl_80872380: -/* 80872380 2C 00 00 03 */ cmpwi r0, 3 -/* 80872384 40 82 00 20 */ bne lbl_808723A4 -/* 80872388 28 03 00 00 */ cmplwi r3, 0 -/* 8087238C 41 82 00 08 */ beq lbl_80872394 -/* 80872390 38 63 05 68 */ addi r3, r3, 0x568 -lbl_80872394: -/* 80872394 3C 80 80 87 */ lis r4, l_arcName2@ha /* 0x80872664@ha */ -/* 80872398 38 84 26 64 */ addi r4, r4, l_arcName2@l /* 0x80872664@l */ -/* 8087239C 80 84 00 00 */ lwz r4, 0(r4) -/* 808723A0 4B 7B AC 69 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -lbl_808723A4: -/* 808723A4 38 00 00 00 */ li r0, 0 -/* 808723A8 3C 60 80 45 */ lis r3, m_myObj__10daMirror_c@ha /* 0x80450DA8@ha */ -/* 808723AC 90 03 0D A8 */ stw r0, m_myObj__10daMirror_c@l(r3) /* 0x80450DA8@l */ -/* 808723B0 38 60 00 01 */ li r3, 1 -/* 808723B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 808723B8 7C 08 03 A6 */ mtlr r0 -/* 808723BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 808723C0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_c_createHeap__FP10fopAc_ac_c.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_c_createHeap__FP10fopAc_ac_c.s deleted file mode 100644 index 3240dcfbde..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_c_createHeap__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80870BB8: -/* 80870BB8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80870BBC 7C 08 02 A6 */ mflr r0 -/* 80870BC0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80870BC4 48 00 13 45 */ bl createHeap__10daMirror_cFv -/* 80870BC8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80870BCC 7C 08 03 A6 */ mtlr r0 -/* 80870BD0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80870BD4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_create__FP10daMirror_c.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_create__FP10daMirror_c.s deleted file mode 100644 index 5023736b9b..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_create__FP10daMirror_c.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_80872018: -/* 80872018 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8087201C 7C 08 02 A6 */ mflr r0 -/* 80872020 90 01 00 14 */ stw r0, 0x14(r1) -/* 80872024 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80872028 7C 7F 1B 78 */ mr r31, r3 -/* 8087202C 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80872030 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80872034 40 82 00 1C */ bne lbl_80872050 -/* 80872038 28 1F 00 00 */ cmplwi r31, 0 -/* 8087203C 41 82 00 08 */ beq lbl_80872044 -/* 80872040 4B FF FD E5 */ bl __ct__10daMirror_cFv -lbl_80872044: -/* 80872044 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80872048 60 00 00 08 */ ori r0, r0, 8 -/* 8087204C 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80872050: -/* 80872050 7F E3 FB 78 */ mr r3, r31 -/* 80872054 48 00 00 19 */ bl create__10daMirror_cFv -/* 80872058 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8087205C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80872060 7C 08 03 A6 */ mtlr r0 -/* 80872064 38 21 00 10 */ addi r1, r1, 0x10 -/* 80872068 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_draw__FP10daMirror_c.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_draw__FP10daMirror_c.s deleted file mode 100644 index 5c35814d2f..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_draw__FP10daMirror_c.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_808724C0: -/* 808724C0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 808724C4 7C 08 02 A6 */ mflr r0 -/* 808724C8 90 01 00 14 */ stw r0, 0x14(r1) -/* 808724CC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 808724D0 7C 7F 1B 78 */ mr r31, r3 -/* 808724D4 3C 60 80 45 */ lis r3, m_myObj__10daMirror_c@ha /* 0x80450DA8@ha */ -/* 808724D8 80 03 0D A8 */ lwz r0, m_myObj__10daMirror_c@l(r3) /* 0x80450DA8@l */ -/* 808724DC 7C 1F 00 40 */ cmplw r31, r0 -/* 808724E0 41 82 00 0C */ beq lbl_808724EC -/* 808724E4 38 60 00 01 */ li r3, 1 -/* 808724E8 48 00 00 64 */ b lbl_8087254C -lbl_808724EC: -/* 808724EC 80 1F 06 F8 */ lwz r0, 0x6f8(r31) -/* 808724F0 28 00 00 00 */ cmplwi r0, 0 -/* 808724F4 41 82 00 3C */ beq lbl_80872530 -/* 808724F8 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 808724FC 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80872500 38 80 00 10 */ li r4, 0x10 -/* 80872504 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 80872508 38 DF 01 0C */ addi r6, r31, 0x10c -/* 8087250C 4B 93 12 B9 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 80872510 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80872514 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80872518 80 9F 06 F8 */ lwz r4, 0x6f8(r31) -/* 8087251C 80 84 00 04 */ lwz r4, 4(r4) -/* 80872520 38 BF 01 0C */ addi r5, r31, 0x10c -/* 80872524 4B 93 1E F9 */ bl setLightTevColorType__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 80872528 80 7F 06 F8 */ lwz r3, 0x6f8(r31) -/* 8087252C 4B 79 B7 99 */ bl mDoExt_modelUpdateDL__FP8J3DModel -lbl_80872530: -/* 80872530 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80872534 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80872538 80 63 5F 70 */ lwz r3, 0x5f70(r3) -/* 8087253C 38 9F 05 70 */ addi r4, r31, 0x570 -/* 80872540 38 A0 00 00 */ li r5, 0 -/* 80872544 4B AB 2F 49 */ bl entryImm__13J3DDrawBufferFP9J3DPacketUs -/* 80872548 38 60 00 01 */ li r3, 1 -lbl_8087254C: -/* 8087254C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80872550 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80872554 7C 08 03 A6 */ mtlr r0 -/* 80872558 38 21 00 10 */ addi r1, r1, 0x10 -/* 8087255C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_execute__FP10daMirror_c.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_execute__FP10daMirror_c.s deleted file mode 100644 index 28a9ac5317..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_execute__FP10daMirror_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_808723C4: -/* 808723C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 808723C8 7C 08 02 A6 */ mflr r0 -/* 808723CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 808723D0 48 00 00 15 */ bl execute__10daMirror_cFv -/* 808723D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 808723D8 7C 08 03 A6 */ mtlr r0 -/* 808723DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 808723E0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/draw__16dMirror_packet_cFv.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/draw__16dMirror_packet_cFv.s deleted file mode 100644 index 1bc5ab6dbc..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/draw__16dMirror_packet_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_80871D84: -/* 80871D84 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80871D88 7C 08 02 A6 */ mflr r0 -/* 80871D8C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80871D90 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80871D94 93 C1 00 08 */ stw r30, 8(r1) -/* 80871D98 7C 7E 1B 78 */ mr r30, r3 -/* 80871D9C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80871DA0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80871DA4 80 63 61 B0 */ lwz r3, 0x61b0(r3) -/* 80871DA8 C0 03 00 CC */ lfs f0, 0xcc(r3) -/* 80871DAC 3C 60 80 3E */ lis r3, mClipper__14mDoLib_clipper@ha /* 0x803DD8E4@ha */ -/* 80871DB0 3B E3 D8 E4 */ addi r31, r3, mClipper__14mDoLib_clipper@l /* 0x803DD8E4@l */ -/* 80871DB4 D0 1F 00 58 */ stfs f0, 0x58(r31) -/* 80871DB8 7F E3 FB 78 */ mr r3, r31 -/* 80871DBC 4B A0 19 D1 */ bl calcViewFrustum__11J3DUClipperFv -/* 80871DC0 3C 60 80 3E */ lis r3, mClipper__14mDoLib_clipper@ha /* 0x803DD8E4@ha */ -/* 80871DC4 38 63 D8 E4 */ addi r3, r3, mClipper__14mDoLib_clipper@l /* 0x803DD8E4@l */ -/* 80871DC8 3C 80 80 43 */ lis r4, j3dSys@ha /* 0x80434AC8@ha */ -/* 80871DCC 38 84 4A C8 */ addi r4, r4, j3dSys@l /* 0x80434AC8@l */ -/* 80871DD0 38 BE 01 70 */ addi r5, r30, 0x170 -/* 80871DD4 38 DE 01 64 */ addi r6, r30, 0x164 -/* 80871DD8 4B A0 1C 6D */ bl clip__11J3DUClipperCFPA4_CfP3VecP3Vec -/* 80871DDC 2C 03 00 00 */ cmpwi r3, 0 -/* 80871DE0 40 82 00 0C */ bne lbl_80871DEC -/* 80871DE4 7F C3 F3 78 */ mr r3, r30 -/* 80871DE8 4B FF F6 85 */ bl mainDraw__16dMirror_packet_cFv -lbl_80871DEC: -/* 80871DEC 3C 60 80 45 */ lis r3, mSystemFar__14mDoLib_clipper@ha /* 0x80450C70@ha */ -/* 80871DF0 C0 03 0C 70 */ lfs f0, mSystemFar__14mDoLib_clipper@l(r3) /* 0x80450C70@l */ -/* 80871DF4 D0 1F 00 58 */ stfs f0, 0x58(r31) -/* 80871DF8 3C 60 80 3E */ lis r3, mClipper__14mDoLib_clipper@ha /* 0x803DD8E4@ha */ -/* 80871DFC 38 63 D8 E4 */ addi r3, r3, mClipper__14mDoLib_clipper@l /* 0x803DD8E4@l */ -/* 80871E00 4B A0 19 8D */ bl calcViewFrustum__11J3DUClipperFv -/* 80871E04 7F C3 F3 78 */ mr r3, r30 -/* 80871E08 4B FF EE 8D */ bl reset__16dMirror_packet_cFv -/* 80871E0C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80871E10 83 C1 00 08 */ lwz r30, 8(r1) -/* 80871E14 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80871E18 7C 08 03 A6 */ mtlr r0 -/* 80871E1C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80871E20 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/entryModel__10daMirror_cFP8J3DModel.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/entryModel__10daMirror_cFP8J3DModel.s deleted file mode 100644 index e912d848d6..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/entryModel__10daMirror_cFP8J3DModel.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80872560: -/* 80872560 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80872564 7C 08 02 A6 */ mflr r0 -/* 80872568 90 01 00 14 */ stw r0, 0x14(r1) -/* 8087256C 38 63 05 70 */ addi r3, r3, 0x570 -/* 80872570 4B FF E7 E9 */ bl entryModel__16dMirror_packet_cFP8J3DModel -/* 80872574 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80872578 7C 08 03 A6 */ mtlr r0 -/* 8087257C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80872580 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/entryModel__16dMirror_packet_cFP8J3DModel.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/entryModel__16dMirror_packet_cFP8J3DModel.s deleted file mode 100644 index 1e1a37dd71..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/entryModel__16dMirror_packet_cFP8J3DModel.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80870D58: -/* 80870D58 88 A3 00 30 */ lbz r5, 0x30(r3) -/* 80870D5C 28 05 00 40 */ cmplwi r5, 0x40 -/* 80870D60 41 80 00 0C */ blt lbl_80870D6C -/* 80870D64 38 60 00 00 */ li r3, 0 -/* 80870D68 4E 80 00 20 */ blr -lbl_80870D6C: -/* 80870D6C 38 05 00 01 */ addi r0, r5, 1 -/* 80870D70 98 03 00 30 */ stb r0, 0x30(r3) -/* 80870D74 54 A0 15 BA */ rlwinm r0, r5, 2, 0x16, 0x1d -/* 80870D78 7C 63 02 14 */ add r3, r3, r0 -/* 80870D7C 90 83 00 34 */ stw r4, 0x34(r3) -/* 80870D80 38 60 00 01 */ li r3, 1 -/* 80870D84 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/reset__16dMirror_packet_cFv.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/reset__16dMirror_packet_cFv.s deleted file mode 100644 index 699dd514e5..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/reset__16dMirror_packet_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80870C94: -/* 80870C94 38 00 00 00 */ li r0, 0 -/* 80870C98 98 03 00 30 */ stb r0, 0x30(r3) -/* 80870C9C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_mirror/d_a_mirror/setModelMtx__10daMirror_cFv.s b/asm/rel/d/a/d_a_mirror/d_a_mirror/setModelMtx__10daMirror_cFv.s deleted file mode 100644 index a432284426..0000000000 --- a/asm/rel/d/a/d_a_mirror/d_a_mirror/setModelMtx__10daMirror_cFv.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_80871F78: -/* 80871F78 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80871F7C 7C 08 02 A6 */ mflr r0 -/* 80871F80 90 01 00 14 */ stw r0, 0x14(r1) -/* 80871F84 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80871F88 7C 7F 1B 78 */ mr r31, r3 -/* 80871F8C 80 63 06 F8 */ lwz r3, 0x6f8(r3) -/* 80871F90 C0 1F 04 EC */ lfs f0, 0x4ec(r31) -/* 80871F94 D0 03 00 18 */ stfs f0, 0x18(r3) -/* 80871F98 C0 1F 04 F0 */ lfs f0, 0x4f0(r31) -/* 80871F9C D0 03 00 1C */ stfs f0, 0x1c(r3) -/* 80871FA0 C0 1F 04 F4 */ lfs f0, 0x4f4(r31) -/* 80871FA4 D0 03 00 20 */ stfs f0, 0x20(r3) -/* 80871FA8 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80871FAC 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80871FB0 C0 3F 04 D0 */ lfs f1, 0x4d0(r31) -/* 80871FB4 C0 5F 04 D4 */ lfs f2, 0x4d4(r31) -/* 80871FB8 C0 7F 04 D8 */ lfs f3, 0x4d8(r31) -/* 80871FBC 4B AD 49 2D */ bl PSMTXTrans -/* 80871FC0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80871FC4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80871FC8 A8 9F 04 E6 */ lha r4, 0x4e6(r31) -/* 80871FCC 4B 79 A4 69 */ bl mDoMtx_YrotM__FPA4_fs -/* 80871FD0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80871FD4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80871FD8 A8 9F 04 E4 */ lha r4, 0x4e4(r31) -/* 80871FDC 4B 79 A3 C1 */ bl mDoMtx_XrotM__FPA4_fs -/* 80871FE0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80871FE4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80871FE8 38 80 20 00 */ li r4, 0x2000 -/* 80871FEC 4B 79 A4 E1 */ bl mDoMtx_ZrotM__FPA4_fs -/* 80871FF0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80871FF4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80871FF8 80 9F 06 F8 */ lwz r4, 0x6f8(r31) -/* 80871FFC 38 84 00 24 */ addi r4, r4, 0x24 -/* 80872000 4B AD 44 B1 */ bl PSMTXCopy -/* 80872004 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80872008 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8087200C 7C 08 03 A6 */ mtlr r0 -/* 80872010 38 21 00 10 */ addi r1, r1, 0x10 -/* 80872014 4E 80 00 20 */ blr diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h index 73209b64a0..c7c28056f5 100644 --- a/include/JSystem/J3DGraphBase/J3DMatBlock.h +++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h @@ -727,7 +727,7 @@ public: /* 80317314 */ virtual s32 countDLSize(); virtual u32 getType() = 0; /* 8000E0A0 */ virtual void setIndTexStageNum(u8); - /* 8000DF7C */ virtual bool getIndTexStageNum() const; + /* 8000DF7C */ virtual u8 getIndTexStageNum() const; /* 80317410 */ virtual void setIndTexOrder(u32, J3DIndTexOrder); /* 8031740C */ virtual void setIndTexOrder(u32, J3DIndTexOrder const*); /* 8000DF74 */ virtual bool getIndTexOrder(u32); @@ -750,7 +750,7 @@ public: /* 80317BDC */ virtual s32 countDLSize(); /* 80323390 */ virtual u32 getType(); /* 8032339C */ virtual void setIndTexStageNum(u8); - /* 803233A4 */ virtual bool getIndTexStageNum() const; + /* 803233A4 */ virtual u8 getIndTexStageNum() const; /* 803233AC */ virtual void setIndTexOrder(u32, J3DIndTexOrder); /* 803233C0 */ virtual void setIndTexOrder(u32, J3DIndTexOrder const*); /* 803233D4 */ virtual bool getIndTexOrder(u32); @@ -820,7 +820,7 @@ public: /* 8000DFF0 */ virtual bool getAmbColor(u32); /* 8000E0E0 */ virtual void setColorChanNum(u8); /* 8031744C */ virtual void setColorChanNum(u8 const*); - /* 8000E008 */ virtual bool getColorChanNum() const; + /* 8000E008 */ virtual u8 getColorChanNum() const; /* 8000E0D8 */ virtual void setColorChan(u32, J3DColorChan const&); /* 80317450 */ virtual void setColorChan(u32, J3DColorChan const*); /* 8000DFF8 */ virtual J3DColorChan* getColorChan(u32); @@ -860,7 +860,7 @@ public: /* 80322F50 */ virtual bool getAmbColor(u32); /* 80322F70 */ virtual void setColorChanNum(u8); /* 80322F64 */ virtual void setColorChanNum(u8 const*); - /* 80322F78 */ virtual bool getColorChanNum() const; + /* 80322F78 */ virtual u8 getColorChanNum() const; /* 80322F94 */ virtual void setColorChan(u32, J3DColorChan const&); /* 80322F80 */ virtual void setColorChan(u32, J3DColorChan const*); /* 80322FA8 */ virtual J3DColorChan* getColorChan(u32); @@ -905,7 +905,7 @@ public: /* 803231B0 */ virtual GXColor* getMatColor(u32); /* 803231D0 */ virtual void setColorChanNum(u8); /* 803231C4 */ virtual void setColorChanNum(u8 const*); - /* 803231D8 */ virtual bool getColorChanNum() const; + /* 803231D8 */ virtual u8 getColorChanNum() const; /* 803231F4 */ virtual void setColorChan(u32, J3DColorChan const&); /* 803231E0 */ virtual void setColorChan(u32, J3DColorChan const*); /* 80323208 */ virtual J3DColorChan* getColorChan(u32); diff --git a/include/JSystem/J3DGraphBase/J3DMaterial.h b/include/JSystem/J3DGraphBase/J3DMaterial.h index b2f67574c5..d3696d5a78 100644 --- a/include/JSystem/J3DGraphBase/J3DMaterial.h +++ b/include/JSystem/J3DGraphBase/J3DMaterial.h @@ -50,6 +50,7 @@ public: J3DColorBlock* getColorBlock() const { return mColorBlock; } J3DTexGenBlock* getTexGenBlock() const { return mTexGenBlock; } J3DDisplayListObj* getSharedDisplayListObj() const { return mSharedDLObj; } + J3DIndBlock* getIndBlock() const { return mIndBlock; } J3DShape* getShape() { return mShape; } J3DJoint* getJoint() { return mJoint; } J3DMaterialAnm* getMaterialAnm() const { diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index ae2994b76c..4e466c922b 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -3401,6 +3401,10 @@ inline void dComIfGd_setListBG() { g_dComIfG_gameInfo.drawlist.setXluListBG(); } +inline J3DDrawBuffer* dComIfGd_getOpaListBG() { + return g_dComIfG_gameInfo.drawlist.getOpaListBG(); +} + inline void dComIfGd_init() { g_dComIfG_gameInfo.drawlist.init(); } diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index 5443d858f0..bfef45fd5f 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -308,6 +308,7 @@ public: J3DDrawBuffer* getOpaListFilter() { return mDrawBuffers[DB_LIST_FILTER]; } J3DDrawBuffer* getOpaListP0() { return mDrawBuffers[DB_LIST_P0]; } J3DDrawBuffer* getOpaListPacket() { return mDrawBuffers[DB_OPA_LIST_PACKET]; } + J3DDrawBuffer* getOpaListBG() { return mDrawBuffers[DB_OPA_LIST_BG]; } void setXluDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, XLU_BUFFER); } void setOpaDrawList(J3DDrawBuffer* buffer) { j3dSys.setDrawBuffer(buffer, OPA_BUFFER); } void setXluListSky() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_SKY]); } diff --git a/include/dolphin/gf/GFGeometry.h b/include/dolphin/gf/GFGeometry.h index 8b64a7a038..90063919f0 100644 --- a/include/dolphin/gf/GFGeometry.h +++ b/include/dolphin/gf/GFGeometry.h @@ -2,5 +2,8 @@ #define GFGEOMETRY_H #include "dolphin/types.h" +#include "dolphin/gx/GX.h" + +void GFSetGenMode2(u8 param_0, u8 param_1, u8 param_2, u8 param_3, _GXCullMode param_4); #endif /* GFGEOMETRY_H */ diff --git a/include/dolphin/gf/GFLight.h b/include/dolphin/gf/GFLight.h index dabbe464ff..64c7cc43fd 100644 --- a/include/dolphin/gf/GFLight.h +++ b/include/dolphin/gf/GFLight.h @@ -2,5 +2,9 @@ #define GFLIGHT_H #include "dolphin/types.h" +#include "dolphin/gx/GXEnum.h" +#include "dolphin/gx/GXStruct.h" + +void GFSetChanAmbColor(_GXChannelID param_0, _GXColor param_1); #endif /* GFLIGHT_H */ diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index c849395597..c45e5fd334 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -138,6 +138,10 @@ public: extern Mtx g_mDoMtx_identity; +inline MtxP mDoMtx_getIdentity() { + return g_mDoMtx_identity; +} + class mDoMtx_quatStack_c { public: ~mDoMtx_quatStack_c(); // inline diff --git a/include/rel/d/a/d_a_boomerang/d_a_boomerang.h b/include/rel/d/a/d_a_boomerang/d_a_boomerang.h index 63cf4daeb9..7b3cb99789 100644 --- a/include/rel/d/a/d_a_boomerang/d_a_boomerang.h +++ b/include/rel/d/a/d_a_boomerang/d_a_boomerang.h @@ -57,7 +57,6 @@ private: /* 0xC8 */ cXyz field_0xc8[6]; }; // Size: 0x110 -struct daMirror_c; class daAlink_c; class daBoomerang_c : public fopAc_ac_c { diff --git a/include/rel/d/a/d_a_mirror/d_a_mirror.h b/include/rel/d/a/d_a_mirror/d_a_mirror.h index 7af194a0e1..5cf68c51b0 100644 --- a/include/rel/d/a/d_a_mirror/d_a_mirror.h +++ b/include/rel/d/a/d_a_mirror/d_a_mirror.h @@ -2,5 +2,53 @@ #define D_A_MIRROR_H #include "dolphin/types.h" +#include "f_op/f_op_actor.h" +#include "f_op/f_op_actor_mng.h" + +struct dMirror_packet_c : public J3DPacket { + /* 80870BD8 */ dMirror_packet_c(); + /* 80870C94 */ void reset(); + /* 80870CA0 */ void calcMinMax(); + /* 80870D58 */ int entryModel(J3DModel*); + /* 80870D88 */ void mirrorZdraw(f32*, f32*, f32, f32, f32, f32, f32, f32); + /* 80871268 */ void modelDraw(J3DModel*, f32 (*)[4]); + /* 8087146C */ void mainDraw(); + /* 80871D84 */ virtual void draw(); + /* 80871E84 */ virtual ~dMirror_packet_c(); + cXyz& getViewScale() { return mViewScale; } + GXTexObj& getTexObj() { return mTexObj; } + cXyz* getQuad() { return mQuad; } + + /* 0x10 */ GXTexObj mTexObj; + /* 0x30 */ u8 mModelCount; + /* 0x31 */ u8 field_0x31[3]; + /* 0x34 */ J3DModel* mModels[0x40]; + /* 0x134 */ cXyz mQuad[4]; + /* 0x164 */ cXyz mMinVal; + /* 0x170 */ cXyz mMaxVal; + /* 0x17c */ cXyz mViewScale; +}; + +struct daMirror_c : public fopAc_ac_c { + /* 80871E24 */ daMirror_c(); + /* 80871F08 */ bool createHeap(); + /* 80871F78 */ void setModelMtx(); + /* 8087206C */ int create(); + /* 808723E4 */ int execute(); + /* 80872560 */ int entryModel(J3DModel*); + /* 8003194C */ static int entry(J3DModel*); + /* 80031990 */ static int remove(); + s32 getType() { return fopAcM_GetParamBit(this, 0, 8); } + s32 getSw() { return fopAcM_GetParamBit(this, 8, 8); } + + typedef int (daMirror_c::*entryModelFunc)(J3DModel*); + static entryModelFunc m_entryModel; + static daMirror_c* m_myObj; + + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ dMirror_packet_c mPacket; + /* 0x6f8 */ J3DModel* field_0x6f8; +}; + #endif /* D_A_MIRROR_H */ diff --git a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp index 8230388584..8acc4b81cc 100644 --- a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp +++ b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp @@ -5195,7 +5195,7 @@ void J3DColorBlockLightOn::setColorChanNum(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm bool J3DColorBlockLightOn::getColorChanNum() const { +asm u8 J3DColorBlockLightOn::getColorChanNum() const { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/getColorChanNum__20J3DColorBlockLightOnCFv.s" } @@ -5469,7 +5469,7 @@ void J3DColorBlockLightOff::setColorChanNum(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm bool J3DColorBlockLightOff::getColorChanNum() const { +asm u8 J3DColorBlockLightOff::getColorChanNum() const { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/getColorChanNum__21J3DColorBlockLightOffCFv.s" } @@ -5625,7 +5625,7 @@ void J3DIndBlockFull::setIndTexStageNum(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm bool J3DIndBlockFull::getIndTexStageNum() const { +asm u8 J3DIndBlockFull::getIndTexStageNum() const { nofralloc #include "asm/JSystem/J3DGraphBase/J3DMatBlock/getIndTexStageNum__15J3DIndBlockFullCFv.s" } diff --git a/libs/JSystem/J3DGraphLoader/J3DMaterialFactory.cpp b/libs/JSystem/J3DGraphLoader/J3DMaterialFactory.cpp index 38a042e239..3a6c970840 100644 --- a/libs/JSystem/J3DGraphLoader/J3DMaterialFactory.cpp +++ b/libs/JSystem/J3DGraphLoader/J3DMaterialFactory.cpp @@ -291,7 +291,7 @@ struct J3DColorBlock { /* 8000DFF0 */ bool getAmbColor(u32); /* 8000DFF8 */ bool getColorChan(u32); /* 8000E000 */ bool getMatColor(u32); - /* 8000E008 */ bool getColorChanNum() const; + /* 8000E008 */ u8 getColorChanNum() const; /* 801A4C0C */ void setAmbColor(u32, J3DGXColor const*); /* 8000E0D4 */ void setAmbColor(u32, J3DGXColor); /* 80317450 */ void setColorChan(u32, J3DColorChan const*); diff --git a/libs/dolphin/gf/GFGeometry.cpp b/libs/dolphin/gf/GFGeometry.cpp index a71b6b23d9..2c62f21f8b 100644 --- a/libs/dolphin/gf/GFGeometry.cpp +++ b/libs/dolphin/gf/GFGeometry.cpp @@ -6,7 +6,6 @@ #include "dolphin/gf/GFGeometry.h" #include "dol2asm.h" #include "dolphin/types.h" -#include "dolphin/gx/GX.h" // // Types: diff --git a/libs/dolphin/gf/GFLight.cpp b/libs/dolphin/gf/GFLight.cpp index dcac87387c..03ee9fd47e 100644 --- a/libs/dolphin/gf/GFLight.cpp +++ b/libs/dolphin/gf/GFLight.cpp @@ -5,8 +5,6 @@ #include "dolphin/gf/GFLight.h" #include "dolphin/types.h" -#include "dolphin/gx/GXEnum.h" -#include "dolphin/gx/GXStruct.h" #include "dolphin/gx/GX.h" // diff --git a/rel/d/a/d_a_boomerang/d_a_boomerang.cpp b/rel/d/a/d_a_boomerang/d_a_boomerang.cpp index fd5b377f69..d3a11d5dee 100644 --- a/rel/d/a/d_a_boomerang/d_a_boomerang.cpp +++ b/rel/d/a/d_a_boomerang/d_a_boomerang.cpp @@ -4,6 +4,7 @@ // #include "rel/d/a/d_a_boomerang/d_a_boomerang.h" +#include "rel/d/a/d_a_mirror/d_a_mirror.h" #include "d/com/d_com_inf_game.h" #include "d/d_procname.h" #include "dol2asm.h" @@ -14,10 +15,6 @@ // Types: // -struct daMirror_c { - /* 8003194C */ void entry(J3DModel*); -}; - struct daBoomerang_HIO_c0 { static u16 const m_lockWaitTime; static f32 const m_minCircleR; diff --git a/rel/d/a/d_a_mirror/d_a_mirror.cpp b/rel/d/a/d_a_mirror/d_a_mirror.cpp index 4ae0f9c655..3cd62ee141 100644 --- a/rel/d/a/d_a_mirror/d_a_mirror.cpp +++ b/rel/d/a/d_a_mirror/d_a_mirror.cpp @@ -6,134 +6,20 @@ #include "rel/d/a/d_a_mirror/d_a_mirror.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "dolphin/gf/GFGeometry.h" +#include "dolphin/gf/GFLight.h" +#include "MSL_C/float.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" +#include "d/a/d_a_player.h" +#include "JSystem/J3DGraphBase/J3DDrawBuffer.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/J3DGraphBase/J3DMaterial.h" // // Types: // -struct request_of_phase_process_class {}; - -struct Vec {}; - -struct cXyz { - /* 80266AE4 */ void operator+(Vec const&) const; - /* 80266B34 */ void operator-(Vec const&) const; - /* 80266B84 */ void operator*(f32) const; - /* 80266CBC */ void outprod(Vec const&) const; - /* 80266F48 */ void normalizeZP(); - /* 80870C54 */ ~cXyz(); - /* 80870C90 */ cXyz(); -}; - -struct mDoMtx_stack_c { - /* 8000CE00 */ void scaleS(cXyz const&); - /* 8000CE38 */ void scaleM(f32, f32, f32); - - static u8 now[48]; -}; - -struct mDoLib_clipper { - static u8 mClipper[92]; - static f32 mSystemFar; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daPy_py_c { - /* 8015F4F0 */ void setLookPos(cXyz*); -}; - -struct J3DModel {}; - -struct daMirror_c { - /* 80871E24 */ daMirror_c(); - /* 80871F08 */ void createHeap(); - /* 80871F78 */ void setModelMtx(); - /* 8087206C */ void create(); - /* 808723E4 */ void execute(); - /* 80872560 */ void entryModel(J3DModel*); - - static u8 m_entryModel[12]; - static u8 m_myObj[4]; -}; - -struct dSv_info_c { - /* 80035360 */ void isSwitch(int, int) const; -}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A441C */ void setLightTevColorType(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct dMirror_packet_c { - /* 80870BD8 */ dMirror_packet_c(); - /* 80870C94 */ void reset(); - /* 80870CA0 */ void calcMinMax(); - /* 80870D58 */ void entryModel(J3DModel*); - /* 80870D88 */ void mirrorZdraw(f32*, f32*, f32, f32, f32, f32, f32, f32); - /* 80871268 */ void modelDraw(J3DModel*, f32 (*)[4]); - /* 8087146C */ void mainDraw(); - /* 80871D84 */ void draw(); - /* 80871E84 */ ~dMirror_packet_c(); -}; - -struct _GXTlutObj {}; - -struct _GXTexObj {}; - -struct _GXCullMode {}; - -struct _GXColor {}; - -struct _GXChannelID {}; - -struct ResTIMG {}; - -struct J3DUClipper { - /* 8027378C */ void calcViewFrustum(); - /* 80273A44 */ void clip(f32 const (*)[4], Vec*, Vec*) const; -}; - -struct J3DSys { - /* 8031073C */ void reinitGX(); -}; - -struct J3DShapePacket { - /* 80312FBC */ void drawFast(); -}; - -struct J3DShape { - /* 80315300 */ void loadPreDrawSetting() const; - - static u8 sOldVcdVatCmd[4]; -}; - -struct J3DPacket; -struct J3DDrawBuffer { - /* 8032548C */ void entryImm(J3DPacket*, u16); -}; - -struct J3DPacket { - /* 80312750 */ bool entry(J3DDrawBuffer*); -}; - -struct J3DDisplayListObj { - /* 80312618 */ void callDL() const; -}; - // // Forward References: // @@ -203,48 +89,7 @@ extern "C" bool entry__9J3DPacketFP13J3DDrawBuffer(); extern "C" void drawFast__14J3DShapePacketFv(); extern "C" void loadPreDrawSetting__8J3DShapeCFv(); extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXConcat(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXMultVec(); -extern "C" void PSMTXMultVecArray(); -extern "C" void C_MTXOrtho(); -extern "C" void PSVECScale(); -extern "C" void GXSetVtxDesc(); -extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); -extern "C" void GXBegin(); -extern "C" void GXSetCullMode(); -extern "C" void GXSetNumChans(); -extern "C" void GXSetChanCtrl(); -extern "C" void GXGetTexObjWidth(); -extern "C" void GXLoadTexObj(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetTevColor(); -extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); -extern "C" void GXSetFog(); -extern "C" void GXSetFogRangeAdj(); -extern "C" void GXSetBlendMode(); -extern "C" void GXSetColorUpdate(); -extern "C" void GXSetAlphaUpdate(); -extern "C" void GXSetZMode(); -extern "C" void GXSetZCompLoc(); -extern "C" void GXSetProjection(); -extern "C" void GXSetProjectionv(); -extern "C" void GXGetProjectionv(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXSetCurrentMtx(); -extern "C" void GXGetViewportv(); -extern "C" void GXSetScissor(); -extern "C" void GXGetScissor(); + extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void __cvt_fp2unsigned(); @@ -254,19 +99,10 @@ extern "C" void _savegpr_28(); extern "C" void _restgpr_18(); extern "C" void _restgpr_21(); extern "C" void _restgpr_28(); -extern "C" void tan(); -extern "C" extern u8 g_mDoMtx_identity[48 + 24 /* padding */]; -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; extern "C" extern void* __vt__9J3DPacket[5]; extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 mClipper__14mDoLib_clipper[92]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" u8 m_entryModel__10daMirror_c[12]; -extern "C" extern u8 g_env_light[4880]; -extern "C" extern u8 j3dSys[284]; -extern "C" extern u8 g_clearColor[4]; -extern "C" extern u32 __float_max; extern "C" f32 mSystemFar__14mDoLib_clipper; extern "C" u8 m_myObj__10daMirror_c[4]; extern "C" u8 sOldVcdVatCmd__8J3DShape[4]; @@ -276,57 +112,16 @@ extern "C" u8 sOldVcdVatCmd__8J3DShape[4]; // /* 80870BB8-80870BD8 000078 0020+00 1/1 0/0 0/0 .text daMirror_c_createHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daMirror_c_createHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_c_createHeap__FP10fopAc_ac_c.s" +static bool daMirror_c_createHeap(fopAc_ac_c* param_0) { + return ((daMirror_c*)param_0)->createHeap(); } -#pragma pop /* ############################################################################################## */ -/* 80872650-80872650 0000C4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80872650 = "Mirror"; -SECTION_DEAD static char const* const stringBase_80872657 = "MR-Table"; -#pragma pop - /* 80872660-80872664 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_mirror__stringBase0; +static char* l_arcName = "Mirror"; /* 80872664-80872668 -00001 0004+00 2/2 0/0 0/0 .data l_arcName2 */ -SECTION_DATA static void* l_arcName2 = (void*)(((char*)&d_a_mirror__stringBase0) + 0x7); - -/* 80872668-80872674 -00001 000C+00 1/1 0/0 0/0 .data @4377 */ -SECTION_DATA static void* lit_4377[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)entryModel__10daMirror_cFP8J3DModel, -}; - -/* 80872674-80872694 -00001 0020+00 1/0 0/0 0/0 .data daMirror_METHODS */ -SECTION_DATA static void* daMirror_METHODS[8] = { - (void*)daMirror_create__FP10daMirror_c, - (void*)daMirror_Delete__FP10daMirror_c, - (void*)daMirror_execute__FP10daMirror_c, - (void*)NULL, - (void*)daMirror_draw__FP10daMirror_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 80872694-808726C4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_MIRROR */ -SECTION_DATA extern void* g_profile_MIRROR[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02DF0000, (void*)&g_fpcLf_Method, - (void*)0x000006FC, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02F50000, (void*)&daMirror_METHODS, - (void*)0x00060000, (void*)0x05000000, -}; +static char* l_arcName2 = "MR-Table"; /* 808726C4-808726D8 000064 0014+00 2/2 0/0 0/0 .data __vt__16dMirror_packet_c */ SECTION_DATA extern void* __vt__16dMirror_packet_c[5] = { @@ -338,59 +133,80 @@ SECTION_DATA extern void* __vt__16dMirror_packet_c[5] = { }; /* 80870BD8-80870C54 000098 007C+00 1/1 0/0 0/0 .text __ct__16dMirror_packet_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMirror_packet_c::dMirror_packet_c() { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/__ct__16dMirror_packet_cFv.s" +dMirror_packet_c::dMirror_packet_c() { + reset(); } -#pragma pop + /* 80870C54-80870C90 000114 003C+00 2/2 0/0 0/0 .text __dt__4cXyzFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cXyz::~cXyz() { +//asm cXyz::~cXyz() { +asm void __dt__4cXyzFv() { nofralloc #include "asm/rel/d/a/d_a_mirror/d_a_mirror/__dt__4cXyzFv.s" } #pragma pop /* 80870C90-80870C94 000150 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -cXyz::cXyz() { +//cXyz::cXyz() { +void __ct__4cXyzFv() { /* empty function */ } /* 80870C94-80870CA0 000154 000C+00 2/2 0/0 0/0 .text reset__16dMirror_packet_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMirror_packet_c::reset() { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/reset__16dMirror_packet_cFv.s" +void dMirror_packet_c::reset() { + mModelCount = 0; } -#pragma pop /* 80870CA0-80870D58 000160 00B8+00 1/1 0/0 0/0 .text calcMinMax__16dMirror_packet_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMirror_packet_c::calcMinMax() { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/calcMinMax__16dMirror_packet_cFv.s" +void dMirror_packet_c::calcMinMax() { + mMinVal.set(FLT_MAX, FLT_MAX, FLT_MAX); + mMaxVal.set(-FLT_MAX, -FLT_MAX, -FLT_MAX); + cXyz* ptr = mQuad; + for (int i = 0; i < 4; i++, ptr++) { + f32 val = ptr->x; + if (val < mMinVal.x) { + mMinVal.x = val; + } + + val = ptr->x; + if (val > mMaxVal.x) { + mMaxVal.x = val; + } + + val = ptr->y; + if (val < mMinVal.y) { + mMinVal.y = val; + } + + val = ptr->y; + if (val > mMaxVal.y) { + mMaxVal.y = val; + } + + val = ptr->z; + if (val < mMinVal.z) { + mMinVal.z = val; + } + + val = ptr->z; + if (val > mMaxVal.z) { + mMaxVal.z = val; + } + } } -#pragma pop /* 80870D58-80870D88 000218 0030+00 1/1 0/0 0/0 .text entryModel__16dMirror_packet_cFP8J3DModel */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMirror_packet_c::entryModel(J3DModel* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/entryModel__16dMirror_packet_cFP8J3DModel.s" +int dMirror_packet_c::entryModel(J3DModel* param_0) { + if (mModelCount >= 0x40) { + return 0; + } + + mModels[mModelCount++] = param_0; + return 1; } -#pragma pop /* ############################################################################################## */ /* 8087258C-80872590 000000 0004+00 3/3 0/0 0/0 .rodata @3884 */ @@ -400,8 +216,8 @@ COMPILER_STRIP_GATE(0x8087258C, &lit_3884); /* 80872590-80872598 000004 0008+00 0/1 0/0 0/0 .rodata l_texCoord$3899 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_texCoord[8] = { - 0x00, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x01, +SECTION_RODATA static s8 const l_texCoord[4][2] = { + {0x00, 0x00}, {0x01, 0x00}, {0x01, 0x01}, {0x00, 0x01}, }; COMPILER_STRIP_GATE(0x80872590, &l_texCoord); #pragma pop @@ -436,8 +252,107 @@ SECTION_RODATA static f32 const lit_3948 = -100.0f; COMPILER_STRIP_GATE(0x808725A4, &lit_3948); #pragma pop +inline static void GXSetTexCoordGen(GXTexCoordID dst, GXTexGenType type, GXTexGenSrc src, u32 mtx) { + GXSetTexCoordGen2(dst, type, src, mtx, 0, 125); +} + +inline static void damirror_GXEnd() { + i_GXEnd(); +} + /* 80870D88-80871268 000248 04E0+00 1/1 0/0 0/0 .text mirrorZdraw__16dMirror_packet_cFPfPfffffff */ +// Matches with literals (Maybe l_texCoord should be inside) +#ifdef NONMATCHING +void dMirror_packet_c::mirrorZdraw(f32* param_0, f32* param_1, f32 param_2, f32 param_3, + f32 param_4, f32 param_5, f32 param_6, f32 param_7) { + GXSetNumChans(1); + GXSetChanCtrl(GX_COLOR0, 0, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXColor color = {0xff,0,0,0}; + GXSetTevColor(GX_TEVREG0, color); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetZCompLoc(1); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR); + GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0); + GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor); + GXSetFogRangeAdj(0, 0, NULL); + GXSetCullMode(GX_CULL_BACK); + GXSetNumIndStages(0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetZMode(1, GX_GEQUAL, 1); + GXLoadPosMtxImm(j3dSys.getViewMtx(), 0); + GXSetCurrentMtx(0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + for (int i = 0; i < 4; i++) { + GXPosition3f32(mQuad[i].x, mQuad[i].y, mQuad[i].z); + } + damirror_GXEnd(); + + if (mViewScale.y > 0.0f) { + GXSetZMode(1, GX_ALWAYS, 1); + GXSetColorUpdate(0); + GXSetAlphaUpdate(0); + Mtx44 mtx; + C_MTXOrtho(mtx, param_1[1], param_1[1] + param_1[3], param_1[0], + param_1[0] + param_1[2], 0, 100.0f); + GXSetProjection(mtx, GX_ORTHOGRAPHIC); + GXLoadPosMtxImm(mDoMtx_getIdentity(), 0); + + param_3 -= 1.0f; + param_4 -= 1.0f; + param_5 += 1.0f; + param_6 += 1.0f; + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + GXPosition3f32(param_3, param_4, -100.0f); + GXPosition3f32(param_5, param_4, -100.0f); + GXPosition3f32(param_5, param_6, -100.0f); + GXPosition3f32(param_3, param_6, -100.0f); + damirror_GXEnd(); + GXSetProjectionv(param_0); + GXSetZMode(1, GX_ALWAYS, 1); + GXLoadPosMtxImm(j3dSys.getViewMtx(), 0); + if (GXGetTexObjWidth(&mTexObj)) { + GXLoadTexObj(&mTexObj, GX_TEXMAP0); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 60); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, 1, GX_TEVPREV); + GXSetNumChans(0); + GXSetNumTexGens(1); + GXSetZCompLoc(0); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_S8, 0); + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + cXyz* ptr = mQuad; + s8* texPtr = (s8*)l_texCoord; + for (int i = 0; i < 4; ptr++, texPtr += 2, i++) { + GXPosition3f32(ptr->x, ptr->y, ptr->z); + GXTexCoord2s8(texPtr[0], texPtr[1]); + } + } else { + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + cXyz* ptr = mQuad; + for (int i = 0; i < 4; ptr++, i++) { + GXPosition3f32(ptr->x, ptr->y, ptr->z); + } + } + damirror_GXEnd(); + } else { + GXSetProjectionv(param_0); + } + + GXSetColorUpdate(1); + GXSetAlphaUpdate(0); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -447,6 +362,7 @@ asm void dMirror_packet_c::mirrorZdraw(f32* param_0, f32* param_1, f32 param_2, #include "asm/rel/d/a/d_a_mirror/d_a_mirror/mirrorZdraw__16dMirror_packet_cFPfPfffffff.s" } #pragma pop +#endif /* ############################################################################################## */ /* 808725A8-808725AC 00001C 0004+00 1/1 0/0 0/0 .rodata @3956 */ @@ -460,6 +376,54 @@ COMPILER_STRIP_GATE(0x808725A8, &lit_3956); /* 80871268-8087146C 000728 0204+00 1/1 0/0 0/0 .text * modelDraw__16dMirror_packet_cFP8J3DModelPA4_f */ +// Matches with literals +#ifdef NONMATCHING +void dMirror_packet_c::modelDraw(J3DModel* param_0, f32 (*param_1)[4]) { + Mtx& baseMtx = param_0->getBaseTRMtx(); + cXyz acStack_3c(baseMtx[0][3], baseMtx[1][3], baseMtx[2][3]); + cXyz cStack_48; + cMtx_multVec(param_1, &acStack_3c, &cStack_48); + cXyz cStack_54; + cMtx_multVec(j3dSys.getViewMtx(), &acStack_3c, &cStack_54); + + if (mViewScale.y > 0.0f && cStack_48.z > cStack_54.z) { + return; + } + + GXColor color = {0}; + color.r = i_dKy_getEnvlight()->mTerrainAmbienceBG0.r; + color.g = i_dKy_getEnvlight()->mTerrainAmbienceBG0.g; + color.b = i_dKy_getEnvlight()->mTerrainAmbienceBG0.b; + color.a = i_dKy_getEnvlight()->mTerrainAmbienceBG0.a; + J3DModelData* modelData = param_0->getModelData(); + u16 materialNum = modelData->getMaterialNum(); + for (u16 i = 0; i < materialNum; i++) { + J3DMatPacket* matPacket = param_0->getMatPacket(i); + J3DShapePacket* shapePacket = matPacket->getShapePacket(); + J3DShape* shape = shapePacket->getShape(); + if (!shape->checkFlag(1)) { + J3DMaterial* material = modelData->getMaterialNodePointer(i); + u32 texGenNum = material->getTexGenBlock()->getTexGenNum(); + u8 colorChanNum = material->getColorBlock()->getColorChanNum(); + u8 tevStageNum = material->getTevBlock()->getTevStageNum(); + u8 indTexStageNum = material->getIndBlock()->getIndTexStageNum(); + material->load(); + matPacket->callDL(); + shape->loadPreDrawSetting(); + if (shapePacket->getDisplayListObj() != NULL) { + shapePacket->getDisplayListObj()->callDL(); + } + GFSetGenMode2(texGenNum, (_GXChannelID)colorChanNum, (_GXTevStageID)tevStageNum, indTexStageNum, GX_CULL_FRONT); + GXColor ambColor = *(GXColor*)&color; + GFSetChanAmbColor(GX_COLOR0, ambColor); + shapePacket->setBaseMtxPtr((Mtx*)param_1); + shapePacket->drawFast(); + shapePacket->setBaseMtxPtr((Mtx*)j3dSys.getViewMtx()); + } + shape->resetVcdVatCache(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -468,6 +432,7 @@ asm void dMirror_packet_c::modelDraw(J3DModel* param_0, f32 (*param_1)[4]) { #include "asm/rel/d/a/d_a_mirror/d_a_mirror/modelDraw__16dMirror_packet_cFP8J3DModelPA4_f.s" } #pragma pop +#endif /* ############################################################################################## */ /* 808725AC-808725B0 000020 0004+00 0/1 0/0 0/0 .rodata @4345 */ @@ -557,64 +522,50 @@ asm void dMirror_packet_c::mainDraw() { #pragma pop /* 80871D84-80871E24 001244 00A0+00 1/0 0/0 0/0 .text draw__16dMirror_packet_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMirror_packet_c::draw() { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/draw__16dMirror_packet_cFv.s" +void dMirror_packet_c::draw() { + mDoLib_clipper::changeFar(dComIfGd_getView()->mFar); + s32 clipRes = mDoLib_clipper::clip(j3dSys.getViewMtx(), &mMaxVal, &mMinVal); + if (clipRes == 0) { + mainDraw(); + } + mDoLib_clipper::resetFar(); + reset(); } -#pragma pop /* 80871E24-80871E84 0012E4 0060+00 1/1 0/0 0/0 .text __ct__10daMirror_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daMirror_c::daMirror_c() { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/__ct__10daMirror_cFv.s" +daMirror_c::daMirror_c() { + m_entryModel = &daMirror_c::entryModel; } -#pragma pop /* 80871E84-80871F08 001344 0084+00 1/0 0/0 0/0 .text __dt__16dMirror_packet_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMirror_packet_c::~dMirror_packet_c() { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/__dt__16dMirror_packet_cFv.s" +dMirror_packet_c::~dMirror_packet_c() { } -#pragma pop /* 80871F08-80871F78 0013C8 0070+00 1/1 0/0 0/0 .text createHeap__10daMirror_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daMirror_c::createHeap() { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/createHeap__10daMirror_cFv.s" +bool daMirror_c::createHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4); + field_0x6f8 = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + return (field_0x6f8 != NULL); } -#pragma pop /* 80871F78-80872018 001438 00A0+00 1/1 0/0 0/0 .text setModelMtx__10daMirror_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daMirror_c::setModelMtx() { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/setModelMtx__10daMirror_cFv.s" +void daMirror_c::setModelMtx() { + field_0x6f8->setBaseScale(mScale); + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::YrotM(shape_angle.y); + mDoMtx_stack_c::XrotM(shape_angle.x); + mDoMtx_stack_c::ZrotM(0x2000); + field_0x6f8->i_setBaseTRMtx(mDoMtx_stack_c::get()); } -#pragma pop /* 80872018-8087206C 0014D8 0054+00 1/0 0/0 0/0 .text daMirror_create__FP10daMirror_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daMirror_create(daMirror_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_create__FP10daMirror_c.s" +static int daMirror_create(daMirror_c* param_0) { + if (fopAcM_CheckCondition(param_0, 8) == 0) { + new (param_0) daMirror_c(); + fopAcM_OnCondition(param_0, 8); + } + return param_0->daMirror_c::create(); } -#pragma pop /* ############################################################################################## */ /* 808725DC-8087260C 000050 0030+00 0/0 0/0 0/0 .rodata @4406 */ @@ -630,17 +581,16 @@ COMPILER_STRIP_GATE(0x808725DC, &lit_4406); /* 8087260C-8087263C 000080 0030+00 1/1 0/0 0/0 .rodata * l_mirrorQuad$localstatic3$create__10daMirror_cFv */ -SECTION_RODATA static u8 const data_8087260C[48] = { - 0xC2, 0x48, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, - 0x42, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC2, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +SECTION_RODATA static Vec const data_8087260C[4] = { + {-50.0f, 100.0f, 0.0f}, {50.0f, 100.0f, 0.0f}, + {50.0f, 0.0f, 0.0f}, {-50.0f, 0.0f, 0.0f}, }; COMPILER_STRIP_GATE(0x8087260C, &data_8087260C); /* 8087263C-80872648 0000B0 000C+00 1/1 0/0 0/0 .rodata * l_mirrorLook$localstatic4$create__10daMirror_cFv */ -SECTION_RODATA static u8 const data_8087263C[12] = { - 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +SECTION_RODATA static Vec const data_8087263C = { + 0.0f, 50.0f, 0.0f, }; COMPILER_STRIP_GATE(0x8087263C, &data_8087263C); @@ -652,34 +602,114 @@ COMPILER_STRIP_GATE(0x80872648, &lit_4544); #pragma pop /* 8087206C-80872344 00152C 02D8+00 2/2 0/0 0/0 .text create__10daMirror_cFv */ +// regalloc, static var load +#ifdef NONMATCHING +int daMirror_c::create() { + if (getSw() != 0xff && !i_fopAcM_isSwitch(this, getSw())) { + return 4; + } + + if (m_myObj != NULL) { + return 0; + } + + s32 type = getType(); + if (type == 2) { + request_of_phase_process_class* phase = (request_of_phase_process_class*)this; + if (this) { + phase = &mPhase; + } + int res = dComIfG_resLoad(phase, l_arcName); + switch (res) { + default: + return res; + case cPhs_COMPLEATE_e: + if (!fopAcM_entrySolidHeap(this, (heapCallbackFunc)daMirror_c_createHeap, 0x1540)) { + return 5; + } + break; + } + + setModelMtx(); + void* uVar2 = dComIfG_getObjectRes(l_arcName, 7); + GXTexObj& texObj = mPacket.getTexObj(); + mDoLib_setResTimgObj((ResTIMG*)uVar2, &texObj, 0, NULL); + Vec src[4] = { + {-72.5f, 145.0f, 0.0f}, {72.5f, 145.0f, 0.0f}, + {72.5f, 0.0f, 0.0f}, {-72.5f, 0.0f, 0.0f}, + }; + mDoMtx_stack_c::scaleS(mScale); + mDoMtx_stack_c::revConcat(field_0x6f8->getBaseTRMtx()); + cMtx_multVecArray(mDoMtx_stack_c::get(), src, mPacket.getQuad(), 4); + mPacket.getViewScale().set(-1.0f, 1.0f, 1.0f); + } else { + if (type == 1) { + mScale *= 10.0f; + mPacket.getViewScale().set(1.0,-1.0,1.0); + } else { + if (type == 3) { + request_of_phase_process_class* phase = (request_of_phase_process_class*)this; + if (this) { + phase = &mPhase; + } + int res = dComIfG_resLoad(phase, l_arcName2); + switch (res) { + default: + return res; + case cPhs_COMPLEATE_e: + void* objRes = dComIfG_getObjectRes(l_arcName2, 0x25); + mDoLib_setResTimgObj((ResTIMG*)objRes, &mPacket.getTexObj(), 0, NULL); + break; + } + } + mPacket.getViewScale().set(-1.0f, 1.0f, 1.0f); + } + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::YrotM(shape_angle.y); + mDoMtx_stack_c::XrotM(shape_angle.x); + mDoMtx_stack_c::scaleM(mScale.x, mScale.y, mScale.z); + static Vec const data_8087260Cb[4] = { + {-50.0f, 100.0f, 0.0f}, {50.0f, 100.0f, 0.0f}, + {50.0f, 0.0f, 0.0f}, {-50.0f, 0.0f, 0.0f}, + }; + mDoMtx_stack_c::multVecArray(data_8087260Cb, + mPacket.getQuad(), 4); + } + m_myObj = this; + mPacket.calcMinMax(); + static Vec const data_8087263C_a = { + 0.0f, 50.0f, 0.0f, + }; + mDoMtx_stack_c::multVec(&data_8087263C_a, &mEyePos); + return 4; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daMirror_c::create() { +asm int daMirror_c::create() { nofralloc #include "asm/rel/d/a/d_a_mirror/d_a_mirror/create__10daMirror_cFv.s" } #pragma pop +#endif /* 80872344-808723C4 001804 0080+00 1/0 0/0 0/0 .text daMirror_Delete__FP10daMirror_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daMirror_Delete(daMirror_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_Delete__FP10daMirror_c.s" +static int daMirror_Delete(daMirror_c* param_0) { + s32 mirrorType = param_0->getType(); + if (mirrorType == 2) { + dComIfG_resDelete(param_0 ? ¶m_0->mPhase : (request_of_phase_process_class*)param_0, l_arcName); + } else if (mirrorType == 3) { + dComIfG_resDelete(param_0 ? ¶m_0->mPhase: (request_of_phase_process_class*)param_0, l_arcName2); + } + daMirror_c::m_myObj = NULL; + return 1; } -#pragma pop /* 808723C4-808723E4 001884 0020+00 1/0 0/0 0/0 .text daMirror_execute__FP10daMirror_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daMirror_execute(daMirror_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_execute__FP10daMirror_c.s" +static int daMirror_execute(daMirror_c* param_0) { + return param_0->execute(); } -#pragma pop /* ############################################################################################## */ /* 8087264C-80872650 0000C0 0004+00 1/1 0/0 0/0 .rodata @4574 */ @@ -687,34 +717,86 @@ SECTION_RODATA static f32 const lit_4574 = 40000.0f; COMPILER_STRIP_GATE(0x8087264C, &lit_4574); /* 808723E4-808724C0 0018A4 00DC+00 1/1 0/0 0/0 .text execute__10daMirror_cFv */ +// Matches with literals +#ifdef NONMATCHING +int daMirror_c::execute() { + if (this != m_myObj) { + if (m_myObj == NULL) { + if (create() == 5) { + fopAcM_delete(this); + } + } + return 1; + } + + daPy_py_c* player = daPy_getLinkPlayerActorClass(); + if (mPacket.getViewScale().y > 0.0f && + player->getKandelaarFlamePos() && + fopAcM_searchActorDistance2(this, player) < 40000.0f) + { + if (fopAcM_seenActorAngleY(this, player) < 0x4000) { + daPy_py_c::setLookPos(&mEyePos); + } + } + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daMirror_c::execute() { +asm int daMirror_c::execute() { nofralloc #include "asm/rel/d/a/d_a_mirror/d_a_mirror/execute__10daMirror_cFv.s" } #pragma pop +#endif /* 808724C0-80872560 001980 00A0+00 1/0 0/0 0/0 .text daMirror_draw__FP10daMirror_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daMirror_draw(daMirror_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/daMirror_draw__FP10daMirror_c.s" +static int daMirror_draw(daMirror_c* param_0) { + if (param_0 != daMirror_c::m_myObj) { + return 1; + } + + if (param_0->field_0x6f8) { + g_env_light.settingTevStruct(0x10, ¶m_0->current.pos, ¶m_0->mTevStr); + g_env_light.setLightTevColorType(param_0->field_0x6f8->mModelData, ¶m_0->mTevStr); + mDoExt_modelUpdateDL(param_0->field_0x6f8); + } + + dComIfGd_getOpaListBG()->entryImm(¶m_0->mPacket, 0); + return 1; } -#pragma pop /* 80872560-80872584 001A20 0024+00 1/0 0/0 0/0 .text entryModel__10daMirror_cFP8J3DModel */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daMirror_c::entryModel(J3DModel* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_mirror/d_a_mirror/entryModel__10daMirror_cFP8J3DModel.s" +int daMirror_c::entryModel(J3DModel* param_0) { + return mPacket.entryModel(param_0); } -#pragma pop /* 80872650-80872650 0000C4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 80872674-80872694 -00001 0020+00 1/0 0/0 0/0 .data daMirror_METHODS */ +static actor_method_class daMirror_METHODS = { + (process_method_func)daMirror_create, + (process_method_func)daMirror_Delete, + (process_method_func)daMirror_execute, + (process_method_func)NULL, + (process_method_func)daMirror_draw, +}; + +/* 80872694-808726C4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_MIRROR */ +extern actor_process_profile_definition g_profile_MIRROR = { + -3, + 7, + -3, + PROC_MIRROR, + &g_fpcLf_Method.mBase, + sizeof(daMirror_c), + 0, + 0, + &g_fopAc_Method.base, + 0x02F5, + &daMirror_METHODS, + 0x00060000, + 5, + 0, +}; diff --git a/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.cpp b/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.cpp index b03a7c4662..5adb1afdee 100644 --- a/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.cpp +++ b/rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.cpp @@ -4,6 +4,7 @@ // #include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h" +#include "rel/d/a/d_a_mirror/d_a_mirror.h" #include "MSL_C/string.h" #include "d/d_stage.h" #include "dol2asm.h" @@ -14,10 +15,6 @@ // Types: // -struct daMirror_c { - /* 8003194C */ void entry(J3DModel*); -}; - struct dTres_c { /* 8009C3CC */ void setPosition(int, u8, Vec const*, int); }; diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index 44eb658438..479d1da91a 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -35,6 +35,7 @@ #include "rel/d/a/e/d_a_e_wb/d_a_e_wb.h" #include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h" #include "rel/d/a/tag/d_a_tag_magne/d_a_tag_magne.h" +#include "rel/d/a/d_a_mirror/d_a_mirror.h" // // Types: @@ -66,10 +67,6 @@ struct daNpcT_ActorMngr_c { /* 80145708 */ void getActorP(); }; -struct daMirror_c { - /* 8003194C */ static void entry(J3DModel*); -}; - struct dPaPoF_c { /* 800512E8 */ void setEffectFour(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*, cXyz const*, cXyz const*, cXyz const*, cXyz const*, diff --git a/src/d/com/d_com_static.cpp b/src/d/com/d_com_static.cpp index cbb4dff884..5e01c9b6e1 100644 --- a/src/d/com/d_com_static.cpp +++ b/src/d/com/d_com_static.cpp @@ -14,6 +14,7 @@ #include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h" #include "rel/d/a/tag/d_a_tag_magne/d_a_tag_magne.h" #include "rel/d/a/tag/d_a_tag_stream/d_a_tag_stream.h" +#include "rel/d/a/d_a_mirror/d_a_mirror.h" // // Types: @@ -41,18 +42,6 @@ struct daObjMovebox { }; }; -struct dMirror_packet_c { -}; - -struct daMirror_c: fopAc_ac_c { - /* 8003194C */ static int entry(J3DModel*); - /* 80031990 */ static int remove(); - - typedef int (daMirror_c::*entryModelFunc)(J3DModel*); - static entryModelFunc m_entryModel; - static daMirror_c* m_myObj; -}; - struct dFlower_packet_c { typedef void (dFlower_packet_c::*DeleteRoomFunc)(int); static DeleteRoomFunc m_deleteRoom; diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 1d803049d6..6699dbbe7f 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -1646,8 +1646,8 @@ bool J3DIndBlock::getIndTexOrder(u32 param_0) { /* 8000DF7C-8000DF84 0088BC 0008+00 0/0 2/0 0/0 .text getIndTexStageNum__11J3DIndBlockCFv */ -bool J3DIndBlock::getIndTexStageNum() const { - return false; +u8 J3DIndBlock::getIndTexStageNum() const { + return 0; } /* 8000DF84-8000DF8C 0088C4 0008+00 0/0 2/0 0/0 .text getIndTevStage__11J3DTevBlockFUl */ @@ -1740,8 +1740,8 @@ GXColor* J3DColorBlock::getMatColor(u32 param_0) { /* 8000E008-8000E010 008948 0008+00 0/0 2/0 0/0 .text getColorChanNum__13J3DColorBlockCFv */ -bool J3DColorBlock::getColorChanNum() const { - return false; +u8 J3DColorBlock::getColorChanNum() const { + return 0; } /* 8000E010-8000E014 008950 0004+00 0/0 5/0 0/0 .text setZCompLoc__10J3DPEBlockFUc */ From 04fc6d21fb21e6e5b6d3633171fccc3ef185b217 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Fri, 30 Jun 2023 16:33:01 -0700 Subject: [PATCH 19/35] d_a_disappear / d_a_kytag16 OK --- include/d/com/d_com_inf_game.h | 90 ++--- include/d/kankyo/d_kankyo.h | 2 +- include/f_op/f_op_actor.h | 5 +- include/rel/d/a/d_a_disappear/d_a_disappear.h | 9 +- rel/d/a/d_a_disappear/d_a_disappear.cpp | 363 ++++++------------ rel/d/a/kytag/d_a_kytag16/d_a_kytag16.cpp | 16 +- src/d/kankyo/d_kankyo.cpp | 2 +- 7 files changed, 181 insertions(+), 306 deletions(-) diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index ae2994b76c..a3105e5134 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -452,9 +452,7 @@ public: mMesgCamInfoActor9 = param_9; mMesgCamInfoActor10 = param_10; } - int getMesgCamInfo() { - return mMesgCamInfoBasicID; - } + int getMesgCamInfo() { return mMesgCamInfoBasicID; } void setFontArchive(JKRArchive* arc) { mFontArchive = arc; } void setRubyArchive(JKRArchive* arc) { mRubyArchive = arc; } void setMain2DArchive(JKRArchive* arc) { mMain2DArchive = arc; } @@ -494,9 +492,7 @@ public: f32 getCameraZoomForcus(int i_no) { return mCameraInfo[i_no].mCameraZoomForcus; } - void setMesgCamInfoID(int param_0) { - mMesgCamInfo = param_0; - } + void setMesgCamInfoID(int param_0) { mMesgCamInfo = param_0; } void setStatus(u16 status) { mStatus = status; } s32 checkStatus(u16 flags) { return flags & mStatus; } @@ -914,8 +910,8 @@ s16 dComIfGs_getWarpPlayerAngleY(); s8 dComIfGs_getWarpRoomNo(); BOOL dComIfGs_isOneZoneSwitch(int i_swBit, int i_roomNo); BOOL dComIfGs_isOneZoneItem(int i_swBit, int i_roomNo); -BOOL dComIfGs_isZoneSwitch(int,int); -BOOL dComIfGs_isZoneItem(int,int); +BOOL dComIfGs_isZoneSwitch(int, int); +BOOL dComIfGs_isZoneItem(int, int); void dComIfGs_setLastWarpMarkItemData(const char* stage, cXyz pos, s16 angle, s8 roomNo, u8, u8); u16 dComIfGs_getMaxLifeGauge(); void dComIfGs_setWarpMarkFlag(u8); @@ -1023,8 +1019,8 @@ inline void dComIfGs_setCollectClothes(u8 i_clothesNo) { g_dComIfG_gameInfo.info.getPlayer().getCollect().setCollect(COLLECT_CLOTHING, i_clothesNo); } -inline void dComIfGs_setCardToMemory(char* card_ptr,int dataNum) { - g_dComIfG_gameInfo.info.card_to_memory(card_ptr,dataNum); +inline void dComIfGs_setCardToMemory(char* card_ptr, int dataNum) { + g_dComIfG_gameInfo.info.card_to_memory(card_ptr, dataNum); } inline void dComIfGs_setRodTypeLevelUp() { @@ -1098,7 +1094,6 @@ inline void dComIfGs_offSwitch(int i_no, int i_roomNo) { g_dComIfG_gameInfo.info.offSwitch(i_no, i_roomNo); } - inline BOOL dComIfGs_isSwitch(int i_no, int i_roomNo) { return g_dComIfG_gameInfo.info.isSwitch(i_no, i_roomNo); } @@ -1575,7 +1570,7 @@ inline BOOL dComIfGs_isActor(int i_no, int i_roomNo) { } inline void dComIfGs_offActor(int i_no, int i_roomNo) { - g_dComIfG_gameInfo.info.offActor(i_no,i_roomNo); + g_dComIfG_gameInfo.info.offActor(i_no, i_roomNo); } inline void dComIfGs_putSave(int i_stageNo) { @@ -1752,7 +1747,6 @@ static dAttCatch_c* dComIfGp_att_getCatghTarget(); static void dComIfGp_setBottleStatus(u8 param_0, u8 param_1); bool dComIfGp_getMapTrans(int i_roomNo, f32* o_transX, f32* o_transY, s16* o_angle); - inline void dComIfGp_itemDataInit() { g_dComIfG_gameInfo.play.itemInit(); } @@ -3179,37 +3173,37 @@ inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2, 0, 0); } -inline JPABaseEmitter* dComIfGp_particle_set(u16 param_1, const cXyz* param_2, - const dKy_tevstr_c* param_3, const csXyz* param_4, - const cXyz* param_5, u8 param_6, - dPa_levelEcallBack* param_7, s8 param_8, - const GXColor* param_9, const GXColor* param_10, - const cXyz* param_11) { - return g_dComIfG_gameInfo.play.getParticle()->setNormal(param_1, param_2, param_3, param_4, - param_5, param_6, param_7, param_8, - param_9, param_10, param_11, 1.0f); +inline JPABaseEmitter* dComIfGp_particle_set(u16 i_resID, const cXyz* i_pos, + const dKy_tevstr_c* param_3, const csXyz* i_rotation, + const cXyz* i_scale, u8 i_alpha, + dPa_levelEcallBack* i_callback, s8 param_8, + const GXColor* i_prmColor, const GXColor* i_envColor, + const cXyz* i_particleScale) { + return g_dComIfG_gameInfo.play.getParticle()->setNormal( + i_resID, i_pos, param_3, i_rotation, i_scale, i_alpha, i_callback, param_8, i_prmColor, + i_envColor, i_particleScale, 1.0f); } -inline JPABaseEmitter* dComIfGp_particle_set(u16 param_1, const cXyz* param_2, const csXyz* param_3, - const cXyz* param_4, u8 param_5, - dPa_levelEcallBack* param_6, s8 param_7, - const GXColor* param_8, const GXColor* param_9, - const cXyz* param_10) { - return g_dComIfG_gameInfo.play.getParticle()->setNormal(param_1, param_2, NULL, param_3, - param_4, param_5, param_6, param_7, - param_8, param_9, param_10, 1.0f); +inline JPABaseEmitter* dComIfGp_particle_set(u16 i_resID, const cXyz* i_pos, + const csXyz* i_rotation, const cXyz* i_scale, + u8 i_alpha, dPa_levelEcallBack* i_callback, s8 param_7, + const GXColor* i_prmColor, const GXColor* i_envColor, + const cXyz* i_particleScale) { + return g_dComIfG_gameInfo.play.getParticle()->setNormal( + i_resID, i_pos, NULL, i_rotation, i_scale, i_alpha, i_callback, param_7, i_prmColor, + i_envColor, i_particleScale, 1.0f); } -inline JPABaseEmitter* dComIfGp_particle_set(u16 param_0, const cXyz* param_1, const csXyz* param_2, - const cXyz* param_3) { - return dComIfGp_particle_set(param_0, param_1, NULL, param_2, param_3, 0xFF, NULL, -1, NULL, +inline JPABaseEmitter* dComIfGp_particle_set(u16 i_resID, const cXyz* i_pos, + const csXyz* i_rotation, const cXyz* i_scale) { + return dComIfGp_particle_set(i_resID, i_pos, NULL, i_rotation, i_scale, 255, NULL, -1, NULL, NULL, NULL); } -inline JPABaseEmitter* dComIfGp_particle_set(u16 param_0, const cXyz* param_1, - const dKy_tevstr_c* param_2, const csXyz* param_3, - const cXyz* param_4) { - return dComIfGp_particle_set(param_0, param_1, param_2, param_3, param_4, 0xFF, NULL, -1, NULL, +inline JPABaseEmitter* dComIfGp_particle_set(u16 i_resID, const cXyz* i_pos, + const dKy_tevstr_c* param_2, const csXyz* i_rotation, + const cXyz* i_scale) { + return dComIfGp_particle_set(i_resID, i_pos, param_2, i_rotation, i_scale, 255, NULL, -1, NULL, NULL, NULL); } @@ -3249,11 +3243,10 @@ inline JPABaseEmitter* dComIfGp_particle_setColor(u16 param_0, const cXyz* param NULL, NULL, NULL, -1, NULL); } -inline void dComIfGp_particle_setSimple(u16 param_0,cXyz* param_1, - u8 param_2, _GXColor& param_3, - _GXColor& param_4, int param_5, - float param_6) { - g_dComIfG_gameInfo.play.getParticle()->setSimple(param_0,param_1,0,param_2,param_3,param_4,param_5,param_6); +inline void dComIfGp_particle_setSimple(u16 param_0, cXyz* param_1, u8 param_2, _GXColor& param_3, + _GXColor& param_4, int param_5, float param_6) { + g_dComIfG_gameInfo.play.getParticle()->setSimple(param_0, param_1, 0, param_2, param_3, param_4, + param_5, param_6); } inline void dComIfGp_particle_levelEmitterOnEventMove(u32 param_0) { @@ -3265,12 +3258,13 @@ inline JPABaseEmitter* dComIfGp_particle_getEmitter(u32 param_0) { } inline u32 dComIfGp_particle_setSimpleFoot(u32 param_0, u32* param_1, cBgS_PolyInfo& param_2, - cXyz const* param_3, dKy_tevstr_c const* param_4, int param_5, - csXyz const* param_6, cXyz const* param_7, - dPa_levelEcallBack* param_8, s8 param_9, - cXyz const* param_10) { - return g_dComIfG_gameInfo.play.getParticle()->setSimpleFoot(param_0, param_1, param_2, param_3, param_4, param_5, - param_6, param_7, param_8, param_9, param_10); + cXyz const* param_3, dKy_tevstr_c const* param_4, + int param_5, csXyz const* param_6, cXyz const* param_7, + dPa_levelEcallBack* param_8, s8 param_9, + cXyz const* param_10) { + return g_dComIfG_gameInfo.play.getParticle()->setSimpleFoot(param_0, param_1, param_2, param_3, + param_4, param_5, param_6, param_7, + param_8, param_9, param_10); } inline u32 dComIfGp_particle_setPolyColor(u32 param_0, u16 param_1, cBgS_PolyInfo& param_2, diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index 5265deda92..f8d93aab24 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -35,7 +35,7 @@ void dKy_GxFog_set(); static void GxFog_set(); static void GxXFog_set(); u8 dKy_pol_argument_get(cBgS_PolyInfo const* i_poly); -void dKy_Sound_set(cXyz param_0, int param_1, unsigned int param_2, int param_3); +void dKy_Sound_set(cXyz i_pos, int param_1, unsigned int i_actorID, int param_3); void dKy_bg_MAxx_proc(void* param_0); void dKy_change_colpat(u8 colpat); void dKy_BossLight_set(cXyz* param_0, _GXColor* param_1, f32 param_2, u8 param_3); diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index 512c55baa8..05cb74ad5d 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -144,7 +144,10 @@ public: /* 0x544 */ actor_attention_types mAttentionInfo; /* 0x560 */ s16 field_0x560; /* 0x562 */ s16 mHealth; - /* 0x564 */ u8 field_0x564[0x4]; + /* 0x564 */ u8 field_0x564; + /* 0x565 */ u8 field_0x565; + /* 0x566 */ u8 field_0x566; + /* 0x567 */ s8 field_0x567; fopAc_ac_c(); ~fopAc_ac_c(); diff --git a/include/rel/d/a/d_a_disappear/d_a_disappear.h b/include/rel/d/a/d_a_disappear/d_a_disappear.h index 3021b23f15..007f5b6c32 100644 --- a/include/rel/d/a/d_a_disappear/d_a_disappear.h +++ b/include/rel/d/a/d_a_disappear/d_a_disappear.h @@ -1,6 +1,13 @@ #ifndef D_A_DISAPPEAR_H #define D_A_DISAPPEAR_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class disappear_class : public fopAc_ac_c { +public: + /* 0x568 */ u8 field_0x568[0x574 - 0x568]; + /* 0x574 */ s16 mDeleteTimer; + /* 0x576 */ u8 field_0x576[0x578 - 0x576]; +}; #endif /* D_A_DISAPPEAR_H */ diff --git a/rel/d/a/d_a_disappear/d_a_disappear.cpp b/rel/d/a/d_a_disappear/d_a_disappear.cpp index 39a8c82a1d..bb4922808b 100644 --- a/rel/d/a/d_a_disappear/d_a_disappear.cpp +++ b/rel/d/a/d_a_disappear/d_a_disappear.cpp @@ -1,283 +1,156 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_disappear -// +/** + * d_a_disappear.cpp + * Disappear death effect when an enemy is defeated + */ #include "rel/d/a/d_a_disappear/d_a_disappear.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct disappear_class {}; - -struct dPa_levelEcallBack {}; - -struct dKy_tevstr_c {}; - -struct csXyz {}; - -struct _GXColor {}; - -struct cXyz {}; - -struct dPa_control_c { - /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, - u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, - cXyz const*, f32); -}; - -struct JAISoundID {}; - -struct Vec {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -// -// Forward References: -// - -extern "C" static bool daDisappear_Draw__FP15disappear_class(); -extern "C" static void s_ks_sub__FPvPv(); -extern "C" static void daDisappear_Execute__FP15disappear_class(); -extern "C" static bool daDisappear_IsDelete__FP15disappear_class(); -extern "C" static bool daDisappear_Delete__FP15disappear_class(); -extern "C" static void yami_disappear__FP15disappear_classf(); -extern "C" static void ghost_disappear__FP15disappear_classf(); -extern "C" static void set_disappear__FP15disappear_classf(); -extern "C" static void daDisappear_Create__FP10fopAc_ac_c(); -extern "C" extern void* g_profile_DISAPPEAR[12]; - -// -// External References: -// - -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAc_IsActor__FPv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_createItemFromEnemyID__FUcPC4cXyziiPC5csXyzPC4cXyzPfPf(); -extern "C" void fpcEx_Search__FPFPvPv_PvPv(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void dKy_Sound_set__F4cXyziUii(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -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" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; - -// -// Declarations: -// +#include "JSystem/JKernel/JKRHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" /* 804A8F18-804A8F20 000078 0008+00 1/0 0/0 0/0 .text daDisappear_Draw__FP15disappear_class */ -static bool daDisappear_Draw(disappear_class* param_0) { - return true; +static int daDisappear_Draw(disappear_class* i_this) { + return 1; } /* 804A8F20-804A8F6C 000080 004C+00 1/1 0/0 0/0 .text s_ks_sub__FPvPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void s_ks_sub(void* param_0, void* param_1) { - nofralloc -#include "asm/rel/d/a/d_a_disappear/d_a_disappear/s_ks_sub__FPvPv.s" +static void* s_ks_sub(void* i_actor, void*) { + fopAc_ac_c* actor_p = (fopAc_ac_c*)i_actor; + + if (fopAcM_IsActor(actor_p) && fopAcM_GetName(actor_p) == PROC_NPC_KS) { + actor_p->mHealth = 1; + } + + return NULL; } -#pragma pop /* 804A8F6C-804A8FA8 0000CC 003C+00 1/0 0/0 0/0 .text daDisappear_Execute__FP15disappear_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daDisappear_Execute(disappear_class* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_disappear/d_a_disappear/daDisappear_Execute__FP15disappear_class.s" +static int daDisappear_Execute(disappear_class* i_this) { + if (i_this->mDeleteTimer != 0) { + i_this->mDeleteTimer--; + } else { + fopAcM_delete(i_this); + } + + return 1; } -#pragma pop /* 804A8FA8-804A8FB0 000108 0008+00 1/0 0/0 0/0 .text daDisappear_IsDelete__FP15disappear_class */ -static bool daDisappear_IsDelete(disappear_class* param_0) { - return true; +static int daDisappear_IsDelete(disappear_class* i_this) { + return 1; } /* 804A8FB0-804A8FB8 000110 0008+00 1/0 0/0 0/0 .text daDisappear_Delete__FP15disappear_class */ -static bool daDisappear_Delete(disappear_class* param_0) { - return true; +static int daDisappear_Delete(disappear_class* i_this) { + return 1; } -/* ############################################################################################## */ -/* 804A9460-804A9464 000000 0004+00 4/4 0/0 0/0 .rodata @3704 */ -SECTION_RODATA static f32 const lit_3704 = 1.0f; -COMPILER_STRIP_GATE(0x804A9460, &lit_3704); - -/* 804A9480-804A9488 000000 0008+00 1/1 0/0 0/0 .data da_name$3684 */ -SECTION_DATA static u8 da_name_3684[8] = { - 0x82, 0x6C, 0x82, 0x6D, 0x82, 0x6E, 0x82, 0x6B, -}; - /* 804A8FB8-804A9080 000118 00C8+00 1/1 0/0 0/0 .text yami_disappear__FP15disappear_classf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void yami_disappear(disappear_class* param_0, f32 param_1) { - nofralloc -#include "asm/rel/d/a/d_a_disappear/d_a_disappear/yami_disappear__FP15disappear_classf.s" -} -#pragma pop +static void yami_disappear(disappear_class* i_this, f32 i_scale) { + static u16 da_name[] = {0x826C, 0x826D, 0x826E, 0x826B}; -/* ############################################################################################## */ -/* 804A9488-804A9494 000008 000A+02 1/1 0/0 0/0 .data da_name$3710 */ -SECTION_DATA static u8 da_name_3710[10 + 2 /* padding */] = { - 0x86, - 0xA7, - 0x86, - 0xA8, - 0x86, - 0xA9, - 0x86, - 0xAA, - 0x86, - 0xAB, - /* padding */ - 0x00, - 0x00, -}; + cXyz scale; + scale.set(i_scale, i_scale, i_scale); + + int n = 3; + if (i_this->field_0x567 == 2) { + n = 4; + } + + for (int i = 0; i < n; i++) { + dComIfGp_particle_set(da_name[i], &i_this->current.pos, NULL, &scale); + } +} /* 804A9080-804A9130 0001E0 00B0+00 1/1 0/0 0/0 .text ghost_disappear__FP15disappear_classf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void ghost_disappear(disappear_class* param_0, f32 param_1) { - nofralloc -#include "asm/rel/d/a/d_a_disappear/d_a_disappear/ghost_disappear__FP15disappear_classf.s" +static void ghost_disappear(disappear_class* i_this, f32 i_scale) { + static u16 da_name[] = {0x86A7, 0x86A8, 0x86A9, 0x86AA, 0x86AB}; + + cXyz scale; + scale.set(i_scale, i_scale, i_scale); + + for (int i = 0; i < 5; i++) { + dComIfGp_particle_set(da_name[i], &i_this->current.pos, NULL, &scale); + } } -#pragma pop - -/* ############################################################################################## */ -/* 804A9464-804A9468 000004 0004+00 0/1 0/0 0/0 .rodata @3787 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3787 = -1.0f; -COMPILER_STRIP_GATE(0x804A9464, &lit_3787); -#pragma pop - -/* 804A9468-804A946C 000008 0004+00 0/1 0/0 0/0 .rodata @3788 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_3788 = 0x3FD53F7D; -COMPILER_STRIP_GATE(0x804A9468, &lit_3788); -#pragma pop - -/* 804A9494-804A94A4 000014 000E+02 1/1 0/0 0/0 .data da_name$3736 */ -SECTION_DATA static u8 da_name_3736[14 + 2 /* padding */] = { - 0x01, - 0x08, - 0x01, - 0x09, - 0x01, - 0x0A, - 0x01, - 0x0B, - 0x01, - 0x0C, - 0x01, - 0x54, - 0x01, - 0x55, - /* padding */ - 0x00, - 0x00, -}; /* 804A9130-804A9364 000290 0234+00 1/1 0/0 0/0 .text set_disappear__FP15disappear_classf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void set_disappear(disappear_class* param_0, f32 param_1) { - nofralloc -#include "asm/rel/d/a/d_a_disappear/d_a_disappear/set_disappear__FP15disappear_classf.s" +static void set_disappear(disappear_class* i_this, f32 i_scale) { + static u16 da_name[] = {0x0108, 0x0109, 0x010A, 0x010B, 0x010C, 0x0154, 0x0155}; + + dKy_Sound_set(i_this->current.pos, 120, fopAcM_GetID(i_this), 10); + + i_fpcM_Search(s_ks_sub, i_this); + + if (i_this->field_0x567 == 3) { + fopAcM_seStart(i_this, JA_SE_CM_MONS_EXPLODE, 0); + ghost_disappear(i_this, i_scale); + } else if (i_this->field_0x567 >= 1) { + fopAcM_seStart(i_this, Z2SE_DARK_VANISH, 0); + yami_disappear(i_this, i_scale * 1.666f); + } else { + fopAcM_seStart(i_this, JA_SE_CM_MONS_EXPLODE, 0); + + cXyz scale; + scale.set(i_scale, i_scale, i_scale); + + i_this->mDeleteTimer = 58; + for (int i = 0; i < 7; i++) { + dComIfGp_particle_set(da_name[i], &i_this->current.pos, NULL, &scale); + } + } } -#pragma pop - -/* ############################################################################################## */ -/* 804A946C-804A9470 00000C 0004+00 0/1 0/0 0/0 .rodata @3825 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3825 = 1.0f / 100.0f; -COMPILER_STRIP_GATE(0x804A946C, &lit_3825); -#pragma pop - -/* 804A9470-804A9474 000010 0004+00 0/1 0/0 0/0 .rodata @3826 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3826 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x804A9470, &lit_3826); -#pragma pop - -/* 804A9474-804A9478 000014 0004+00 0/1 0/0 0/0 .rodata @3827 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3827 = 50.0f; -COMPILER_STRIP_GATE(0x804A9474, &lit_3827); -#pragma pop - -/* 804A9478-804A9480 000018 0008+00 0/1 0/0 0/0 .rodata @3829 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3829[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x804A9478, &lit_3829); -#pragma pop /* 804A9364-804A9458 0004C4 00F4+00 1/0 0/0 0/0 .text daDisappear_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daDisappear_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_disappear/d_a_disappear/daDisappear_Create__FP10fopAc_ac_c.s" +static int daDisappear_Create(fopAc_ac_c* i_this) { + if (!fopAcM_CheckCondition(i_this, 8)) { + new (i_this) disappear_class(); + fopAcM_OnCondition(i_this, 8); + } + disappear_class* this_ = (disappear_class*)i_this; + + this_->field_0x567 = fopAcM_GetParam(this_); + + f32 particle_scale = (fopAcM_GetParam(this_) >> 0x8) & 0xFF; + if (particle_scale >= 50.0f) { + particle_scale *= 0.01f; + } else { + particle_scale *= 0.1f; + } + + u8 enemy_id = fopAcM_GetParam(this_) >> 0x10; + if (enemy_id != 0xFF) { + fopAcM_createItemFromEnemyID(enemy_id, &this_->current.pos, -1, -1, NULL, NULL, NULL, NULL); + } + + set_disappear(this_, particle_scale); + return cPhs_COMPLEATE_e; } -#pragma pop /* ############################################################################################## */ /* 804A94A4-804A94C4 -00001 0020+00 1/0 0/0 0/0 .data l_daDisappear_Method */ -SECTION_DATA static void* l_daDisappear_Method[8] = { - (void*)daDisappear_Create__FP10fopAc_ac_c, - (void*)daDisappear_Delete__FP15disappear_class, - (void*)daDisappear_Execute__FP15disappear_class, - (void*)daDisappear_IsDelete__FP15disappear_class, - (void*)daDisappear_Draw__FP15disappear_class, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daDisappear_Method = { + (process_method_func)daDisappear_Create, (process_method_func)daDisappear_Delete, + (process_method_func)daDisappear_Execute, (process_method_func)daDisappear_IsDelete, + (process_method_func)daDisappear_Draw, }; /* 804A94C4-804A94F4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_DISAPPEAR */ -SECTION_DATA extern void* g_profile_DISAPPEAR[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x01390000, (void*)&g_fpcLf_Method, - (void*)0x00000578, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02D50000, (void*)&l_daDisappear_Method, - (void*)0x00044000, (void*)NULL, +extern actor_process_profile_definition g_profile_DISAPPEAR = { + -3, + 7, + -3, + PROC_DISAPPEAR, + &g_fpcLf_Method.mBase, + sizeof(disappear_class), + 0, + 0, + &g_fopAc_Method.base, + 725, + &l_daDisappear_Method, + 0x44000, + 0, + 0, }; diff --git a/rel/d/a/kytag/d_a_kytag16/d_a_kytag16.cpp b/rel/d/a/kytag/d_a_kytag16/d_a_kytag16.cpp index 15524a7186..5c838df038 100644 --- a/rel/d/a/kytag/d_a_kytag16/d_a_kytag16.cpp +++ b/rel/d/a/kytag/d_a_kytag16/d_a_kytag16.cpp @@ -1,7 +1,7 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_kytag16 -// +/** + * d_a_kytag16.cpp + * + */ #include "rel/d/a/kytag/d_a_kytag16/d_a_kytag16.h" #include "JSystem/JKernel/JKRHeap.h" @@ -101,7 +101,7 @@ static int daKytag16_Create(fopAc_ac_c* i_this) { this_->field_0x573 = fopAcM_GetParam(this_) & 0xFF; this_->field_0x56c = (this_->current.angle.z >> 10) & 0x3F; - + this_->field_0x56d.r = fopAcM_GetParam(this_) >> 0x8; this_->field_0x56d.g = fopAcM_GetParam(this_) >> 0x10; this_->field_0x56d.b = fopAcM_GetParam(this_) >> 0x18; @@ -173,10 +173,8 @@ static int daKytag16_Create(fopAc_ac_c* i_this) { /* ############################################################################################## */ /* 808611BC-808611DC -00001 0020+00 1/0 0/0 0/0 .data l_daKytag16_Method */ static actor_method_class l_daKytag16_Method = { - (process_method_func)daKytag16_Create, - (process_method_func)daKytag16_Delete, - (process_method_func)daKytag16_Execute, - (process_method_func)daKytag16_IsDelete, + (process_method_func)daKytag16_Create, (process_method_func)daKytag16_Delete, + (process_method_func)daKytag16_Execute, (process_method_func)daKytag16_IsDelete, (process_method_func)daKytag16_Draw, }; diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index d6e334fe01..52266c0325 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -2979,7 +2979,7 @@ static void dKy_Sound_init() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dKy_Sound_set(cXyz param_0, int param_1, unsigned int param_2, int param_3) { +asm void dKy_Sound_set(cXyz i_pos, int param_1, unsigned int i_actorID, int param_3) { nofralloc #include "asm/d/kankyo/d_kankyo/dKy_Sound_set__F4cXyziUii.s" } From ee5adccde9d55e73598f593000582c9dc654b946 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Fri, 30 Jun 2023 16:35:31 -0700 Subject: [PATCH 20/35] remove asm --- .../daDisappear_Create__FP10fopAc_ac_c.s | 67 ------- ...daDisappear_Execute__FP15disappear_class.s | 18 -- .../ghost_disappear__FP15disappear_classf.s | 46 ----- .../d_a_disappear/s_ks_sub__FPvPv.s | 21 --- .../set_disappear__FP15disappear_classf.s | 148 --------------- .../yami_disappear__FP15disappear_classf.s | 54 ------ .../d/a/d_a_talk/d_a_talk/__dt__8daTalk_cFv.s | 29 --- .../a/d_a_talk/d_a_talk/create__8daTalk_cFv.s | 55 ------ .../d_a_talk/daTalk_Create__FP10fopAc_ac_c.s | 9 - .../d_a_talk/daTalk_Delete__FP8daTalk_c.s | 11 -- .../d_a_talk/daTalk_Draw__FP8daTalk_c.s | 9 - .../d_a_talk/daTalk_Execute__FP8daTalk_c.s | 9 - .../d_a_talk/getStatus__8daTalk_cFv.s | 9 - .../d_a_talk/messageSet__8daTalk_cFv.s | 16 -- .../d_a_talk/setStatus__8daTalk_cFUs.s | 10 - .../daKytag16_Create__FP10fopAc_ac_c.s | 172 ------------------ .../daKytag16_Execute__FP13kytag16_class.s | 154 ---------------- .../Create__15daObjWaterEff_cFv.s | 59 ------ .../d_a_obj_lv3waterEff/__dt__4cXyzFv.s | 17 -- .../_delete__15daObjWaterEff_cFv.s | 25 --- .../daObjWaterEff_Create__FP10fopAc_ac_c.s | 9 - ...aObjWaterEff_Delete__FP15daObjWaterEff_c.s | 9 - ...ObjWaterEff_Execute__FP15daObjWaterEff_c.s | 9 - .../execute__15daObjWaterEff_cFv.s | 74 -------- .../d_a_obj_lv3waterEff/func_80C5C5DC.s | 42 ----- .../d_a_tag_mist/Create__11daTagMist_cFv.s | 55 ------ .../d_a_tag_mist/d_a_tag_mist/__dt__4cXyzFv.s | 17 -- .../daTagMist_Create__FP10fopAc_ac_c.s | 9 - .../daTagMist_Delete__FP11daTagMist_c.s | 9 - .../daTagMist_Execute__FP11daTagMist_c.s | 9 - .../d_a_tag_mist/execute__11daTagMist_cFv.s | 83 --------- .../d_a_tag_mist/d_a_tag_mist/func_8048F444.s | 59 ------ .../d_a_tag_mist/isMySw__11daTagMist_cFv.s | 27 --- .../d_a_tag_mist/offSw__11daTagMist_cFv.s | 30 --- .../d_a_tag_mist/onMySw__11daTagMist_cFv.s | 21 --- 35 files changed, 1400 deletions(-) delete mode 100644 asm/rel/d/a/d_a_disappear/d_a_disappear/daDisappear_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/d_a_disappear/d_a_disappear/daDisappear_Execute__FP15disappear_class.s delete mode 100644 asm/rel/d/a/d_a_disappear/d_a_disappear/ghost_disappear__FP15disappear_classf.s delete mode 100644 asm/rel/d/a/d_a_disappear/d_a_disappear/s_ks_sub__FPvPv.s delete mode 100644 asm/rel/d/a/d_a_disappear/d_a_disappear/set_disappear__FP15disappear_classf.s delete mode 100644 asm/rel/d/a/d_a_disappear/d_a_disappear/yami_disappear__FP15disappear_classf.s delete mode 100644 asm/rel/d/a/d_a_talk/d_a_talk/__dt__8daTalk_cFv.s delete mode 100644 asm/rel/d/a/d_a_talk/d_a_talk/create__8daTalk_cFv.s delete mode 100644 asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Delete__FP8daTalk_c.s delete mode 100644 asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Draw__FP8daTalk_c.s delete mode 100644 asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Execute__FP8daTalk_c.s delete mode 100644 asm/rel/d/a/d_a_talk/d_a_talk/getStatus__8daTalk_cFv.s delete mode 100644 asm/rel/d/a/d_a_talk/d_a_talk/messageSet__8daTalk_cFv.s delete mode 100644 asm/rel/d/a/d_a_talk/d_a_talk/setStatus__8daTalk_cFUs.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag16/d_a_kytag16/daKytag16_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag16/d_a_kytag16/daKytag16_Execute__FP13kytag16_class.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/Create__15daObjWaterEff_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/__dt__4cXyzFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/_delete__15daObjWaterEff_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Delete__FP15daObjWaterEff_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Execute__FP15daObjWaterEff_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/execute__15daObjWaterEff_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/func_80C5C5DC.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/Create__11daTagMist_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/__dt__4cXyzFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Delete__FP11daTagMist_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Execute__FP11daTagMist_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/execute__11daTagMist_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/func_8048F444.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/isMySw__11daTagMist_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/offSw__11daTagMist_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/onMySw__11daTagMist_cFv.s diff --git a/asm/rel/d/a/d_a_disappear/d_a_disappear/daDisappear_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/d_a_disappear/d_a_disappear/daDisappear_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 09a8bd37df..0000000000 --- a/asm/rel/d/a/d_a_disappear/d_a_disappear/daDisappear_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,67 +0,0 @@ -lbl_804A9364: -/* 804A9364 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 804A9368 7C 08 02 A6 */ mflr r0 -/* 804A936C 90 01 00 34 */ stw r0, 0x34(r1) -/* 804A9370 DB E1 00 20 */ stfd f31, 0x20(r1) -/* 804A9374 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */ -/* 804A9378 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 804A937C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 804A9380 7C 7E 1B 78 */ mr r30, r3 -/* 804A9384 3C 80 80 4B */ lis r4, lit_3704@ha /* 0x804A9460@ha */ -/* 804A9388 3B E4 94 60 */ addi r31, r4, lit_3704@l /* 0x804A9460@l */ -/* 804A938C 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 804A9390 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 804A9394 40 82 00 1C */ bne lbl_804A93B0 -/* 804A9398 28 1E 00 00 */ cmplwi r30, 0 -/* 804A939C 41 82 00 08 */ beq lbl_804A93A4 -/* 804A93A0 4B B6 F7 C5 */ bl __ct__10fopAc_ac_cFv -lbl_804A93A4: -/* 804A93A4 80 1E 04 A0 */ lwz r0, 0x4a0(r30) -/* 804A93A8 60 00 00 08 */ ori r0, r0, 8 -/* 804A93AC 90 1E 04 A0 */ stw r0, 0x4a0(r30) -lbl_804A93B0: -/* 804A93B0 80 1E 00 B0 */ lwz r0, 0xb0(r30) -/* 804A93B4 98 1E 05 67 */ stb r0, 0x567(r30) -/* 804A93B8 80 7E 00 B0 */ lwz r3, 0xb0(r30) -/* 804A93BC 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f -/* 804A93C0 C8 3F 00 18 */ lfd f1, 0x18(r31) -/* 804A93C4 90 01 00 0C */ stw r0, 0xc(r1) -/* 804A93C8 3C 00 43 30 */ lis r0, 0x4330 -/* 804A93CC 90 01 00 08 */ stw r0, 8(r1) -/* 804A93D0 C8 01 00 08 */ lfd f0, 8(r1) -/* 804A93D4 EF E0 08 28 */ fsubs f31, f0, f1 -/* 804A93D8 C0 1F 00 14 */ lfs f0, 0x14(r31) -/* 804A93DC FC 1F 00 40 */ fcmpo cr0, f31, f0 -/* 804A93E0 4C 41 13 82 */ cror 2, 1, 2 -/* 804A93E4 40 82 00 10 */ bne lbl_804A93F4 -/* 804A93E8 C0 1F 00 0C */ lfs f0, 0xc(r31) -/* 804A93EC EF FF 00 32 */ fmuls f31, f31, f0 -/* 804A93F0 48 00 00 0C */ b lbl_804A93FC -lbl_804A93F4: -/* 804A93F4 C0 1F 00 10 */ lfs f0, 0x10(r31) -/* 804A93F8 EF FF 00 32 */ fmuls f31, f31, f0 -lbl_804A93FC: -/* 804A93FC 54 63 86 3E */ rlwinm r3, r3, 0x10, 0x18, 0x1f -/* 804A9400 28 03 00 FF */ cmplwi r3, 0xff -/* 804A9404 41 82 00 24 */ beq lbl_804A9428 -/* 804A9408 38 9E 04 D0 */ addi r4, r30, 0x4d0 -/* 804A940C 38 A0 FF FF */ li r5, -1 -/* 804A9410 38 C0 FF FF */ li r6, -1 -/* 804A9414 38 E0 00 00 */ li r7, 0 -/* 804A9418 39 00 00 00 */ li r8, 0 -/* 804A941C 39 20 00 00 */ li r9, 0 -/* 804A9420 39 40 00 00 */ li r10, 0 -/* 804A9424 4B B7 29 F1 */ bl fopAcM_createItemFromEnemyID__FUcPC4cXyziiPC5csXyzPC4cXyzPfPf -lbl_804A9428: -/* 804A9428 7F C3 F3 78 */ mr r3, r30 -/* 804A942C FC 20 F8 90 */ fmr f1, f31 -/* 804A9430 4B FF FD 01 */ bl set_disappear__FP15disappear_classf -/* 804A9434 38 60 00 04 */ li r3, 4 -/* 804A9438 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */ -/* 804A943C CB E1 00 20 */ lfd f31, 0x20(r1) -/* 804A9440 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 804A9444 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 804A9448 80 01 00 34 */ lwz r0, 0x34(r1) -/* 804A944C 7C 08 03 A6 */ mtlr r0 -/* 804A9450 38 21 00 30 */ addi r1, r1, 0x30 -/* 804A9454 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_disappear/d_a_disappear/daDisappear_Execute__FP15disappear_class.s b/asm/rel/d/a/d_a_disappear/d_a_disappear/daDisappear_Execute__FP15disappear_class.s deleted file mode 100644 index d719062231..0000000000 --- a/asm/rel/d/a/d_a_disappear/d_a_disappear/daDisappear_Execute__FP15disappear_class.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_804A8F6C: -/* 804A8F6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804A8F70 7C 08 02 A6 */ mflr r0 -/* 804A8F74 90 01 00 14 */ stw r0, 0x14(r1) -/* 804A8F78 A8 83 05 74 */ lha r4, 0x574(r3) -/* 804A8F7C 2C 04 00 00 */ cmpwi r4, 0 -/* 804A8F80 41 82 00 10 */ beq lbl_804A8F90 -/* 804A8F84 38 04 FF FF */ addi r0, r4, -1 -/* 804A8F88 B0 03 05 74 */ sth r0, 0x574(r3) -/* 804A8F8C 48 00 00 08 */ b lbl_804A8F94 -lbl_804A8F90: -/* 804A8F90 4B B7 0C ED */ bl fopAcM_delete__FP10fopAc_ac_c -lbl_804A8F94: -/* 804A8F94 38 60 00 01 */ li r3, 1 -/* 804A8F98 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804A8F9C 7C 08 03 A6 */ mtlr r0 -/* 804A8FA0 38 21 00 10 */ addi r1, r1, 0x10 -/* 804A8FA4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_disappear/d_a_disappear/ghost_disappear__FP15disappear_classf.s b/asm/rel/d/a/d_a_disappear/d_a_disappear/ghost_disappear__FP15disappear_classf.s deleted file mode 100644 index bba3309a7d..0000000000 --- a/asm/rel/d/a/d_a_disappear/d_a_disappear/ghost_disappear__FP15disappear_classf.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_804A9080: -/* 804A9080 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 804A9084 7C 08 02 A6 */ mflr r0 -/* 804A9088 90 01 00 54 */ stw r0, 0x54(r1) -/* 804A908C 39 61 00 50 */ addi r11, r1, 0x50 -/* 804A9090 4B EB 91 41 */ bl _savegpr_26 -/* 804A9094 7C 7A 1B 78 */ mr r26, r3 -/* 804A9098 D0 21 00 20 */ stfs f1, 0x20(r1) -/* 804A909C D0 21 00 24 */ stfs f1, 0x24(r1) -/* 804A90A0 D0 21 00 28 */ stfs f1, 0x28(r1) -/* 804A90A4 3B 60 00 00 */ li r27, 0 -/* 804A90A8 3B E0 00 00 */ li r31, 0 -/* 804A90AC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804A90B0 3B 83 61 C0 */ addi r28, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804A90B4 3C 60 80 4B */ lis r3, da_name_3710@ha /* 0x804A9488@ha */ -/* 804A90B8 3B A3 94 88 */ addi r29, r3, da_name_3710@l /* 0x804A9488@l */ -/* 804A90BC 3C 60 80 4B */ lis r3, lit_3704@ha /* 0x804A9460@ha */ -/* 804A90C0 3B C3 94 60 */ addi r30, r3, lit_3704@l /* 0x804A9460@l */ -lbl_804A90C4: -/* 804A90C4 80 7C 5D 3C */ lwz r3, 0x5d3c(r28) -/* 804A90C8 38 80 00 00 */ li r4, 0 -/* 804A90CC 90 81 00 08 */ stw r4, 8(r1) -/* 804A90D0 38 00 FF FF */ li r0, -1 -/* 804A90D4 90 01 00 0C */ stw r0, 0xc(r1) -/* 804A90D8 90 81 00 10 */ stw r4, 0x10(r1) -/* 804A90DC 90 81 00 14 */ stw r4, 0x14(r1) -/* 804A90E0 90 81 00 18 */ stw r4, 0x18(r1) -/* 804A90E4 38 80 00 00 */ li r4, 0 -/* 804A90E8 7C BD FA 2E */ lhzx r5, r29, r31 -/* 804A90EC 38 DA 04 D0 */ addi r6, r26, 0x4d0 -/* 804A90F0 38 E0 00 00 */ li r7, 0 -/* 804A90F4 39 00 00 00 */ li r8, 0 -/* 804A90F8 39 21 00 20 */ addi r9, r1, 0x20 -/* 804A90FC 39 40 00 FF */ li r10, 0xff -/* 804A9100 C0 3E 00 00 */ lfs f1, 0(r30) -/* 804A9104 4B BA 39 8D */ bl set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf -/* 804A9108 3B 7B 00 01 */ addi r27, r27, 1 -/* 804A910C 2C 1B 00 05 */ cmpwi r27, 5 -/* 804A9110 3B FF 00 02 */ addi r31, r31, 2 -/* 804A9114 41 80 FF B0 */ blt lbl_804A90C4 -/* 804A9118 39 61 00 50 */ addi r11, r1, 0x50 -/* 804A911C 4B EB 91 01 */ bl _restgpr_26 -/* 804A9120 80 01 00 54 */ lwz r0, 0x54(r1) -/* 804A9124 7C 08 03 A6 */ mtlr r0 -/* 804A9128 38 21 00 50 */ addi r1, r1, 0x50 -/* 804A912C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_disappear/d_a_disappear/s_ks_sub__FPvPv.s b/asm/rel/d/a/d_a_disappear/d_a_disappear/s_ks_sub__FPvPv.s deleted file mode 100644 index fe59ed43a6..0000000000 --- a/asm/rel/d/a/d_a_disappear/d_a_disappear/s_ks_sub__FPvPv.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_804A8F20: -/* 804A8F20 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804A8F24 7C 08 02 A6 */ mflr r0 -/* 804A8F28 90 01 00 14 */ stw r0, 0x14(r1) -/* 804A8F2C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 804A8F30 7C 7F 1B 78 */ mr r31, r3 -/* 804A8F34 4B B6 FD AD */ bl fopAc_IsActor__FPv -/* 804A8F38 2C 03 00 00 */ cmpwi r3, 0 -/* 804A8F3C 41 82 00 18 */ beq lbl_804A8F54 -/* 804A8F40 A8 1F 00 08 */ lha r0, 8(r31) -/* 804A8F44 2C 00 00 60 */ cmpwi r0, 0x60 -/* 804A8F48 40 82 00 0C */ bne lbl_804A8F54 -/* 804A8F4C 38 00 00 01 */ li r0, 1 -/* 804A8F50 B0 1F 05 62 */ sth r0, 0x562(r31) -lbl_804A8F54: -/* 804A8F54 38 60 00 00 */ li r3, 0 -/* 804A8F58 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 804A8F5C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804A8F60 7C 08 03 A6 */ mtlr r0 -/* 804A8F64 38 21 00 10 */ addi r1, r1, 0x10 -/* 804A8F68 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_disappear/d_a_disappear/set_disappear__FP15disappear_classf.s b/asm/rel/d/a/d_a_disappear/d_a_disappear/set_disappear__FP15disappear_classf.s deleted file mode 100644 index 0b55972859..0000000000 --- a/asm/rel/d/a/d_a_disappear/d_a_disappear/set_disappear__FP15disappear_classf.s +++ /dev/null @@ -1,148 +0,0 @@ -lbl_804A9130: -/* 804A9130 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 804A9134 7C 08 02 A6 */ mflr r0 -/* 804A9138 90 01 00 74 */ stw r0, 0x74(r1) -/* 804A913C DB E1 00 60 */ stfd f31, 0x60(r1) -/* 804A9140 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0 /* qr0 */ -/* 804A9144 39 61 00 60 */ addi r11, r1, 0x60 -/* 804A9148 4B EB 90 89 */ bl _savegpr_26 -/* 804A914C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 804A9150 FF E0 08 90 */ fmr f31, f1 -/* 804A9154 3C 60 80 4B */ lis r3, lit_3704@ha /* 0x804A9460@ha */ -/* 804A9158 3B E3 94 60 */ addi r31, r3, lit_3704@l /* 0x804A9460@l */ -/* 804A915C C0 1E 04 D0 */ lfs f0, 0x4d0(r30) -/* 804A9160 D0 01 00 2C */ stfs f0, 0x2c(r1) -/* 804A9164 C0 1E 04 D4 */ lfs f0, 0x4d4(r30) -/* 804A9168 D0 01 00 30 */ stfs f0, 0x30(r1) -/* 804A916C C0 1E 04 D8 */ lfs f0, 0x4d8(r30) -/* 804A9170 D0 01 00 34 */ stfs f0, 0x34(r1) -/* 804A9174 38 61 00 2C */ addi r3, r1, 0x2c -/* 804A9178 38 80 00 78 */ li r4, 0x78 -/* 804A917C 41 82 00 0C */ beq lbl_804A9188 -/* 804A9180 80 BE 00 04 */ lwz r5, 4(r30) -/* 804A9184 48 00 00 08 */ b lbl_804A918C -lbl_804A9188: -/* 804A9188 38 A0 FF FF */ li r5, -1 -lbl_804A918C: -/* 804A918C 38 C0 00 0A */ li r6, 0xa -/* 804A9190 4B CF F0 31 */ bl dKy_Sound_set__F4cXyziUii -/* 804A9194 3C 60 80 4B */ lis r3, s_ks_sub__FPvPv@ha /* 0x804A8F20@ha */ -/* 804A9198 38 63 8F 20 */ addi r3, r3, s_ks_sub__FPvPv@l /* 0x804A8F20@l */ -/* 804A919C 7F C4 F3 78 */ mr r4, r30 -/* 804A91A0 4B B7 81 99 */ bl fpcEx_Search__FPFPvPv_PvPv -/* 804A91A4 88 1E 05 67 */ lbz r0, 0x567(r30) -/* 804A91A8 7C 00 07 74 */ extsb r0, r0 -/* 804A91AC 2C 00 00 03 */ cmpwi r0, 3 -/* 804A91B0 40 82 00 60 */ bne lbl_804A9210 -/* 804A91B4 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 804A91B8 7C 03 07 74 */ extsb r3, r0 -/* 804A91BC 4B B8 3E B1 */ bl dComIfGp_getReverb__Fi -/* 804A91C0 7C 67 1B 78 */ mr r7, r3 -/* 804A91C4 3C 60 00 06 */ lis r3, 0x0006 /* 0x0006000A@ha */ -/* 804A91C8 38 03 00 0A */ addi r0, r3, 0x000A /* 0x0006000A@l */ -/* 804A91CC 90 01 00 28 */ stw r0, 0x28(r1) -/* 804A91D0 3C 60 80 45 */ lis r3, mAudioMgrPtr__10Z2AudioMgr@ha /* 0x80451368@ha */ -/* 804A91D4 38 63 13 68 */ addi r3, r3, mAudioMgrPtr__10Z2AudioMgr@l /* 0x80451368@l */ -/* 804A91D8 80 63 00 00 */ lwz r3, 0(r3) -/* 804A91DC 38 81 00 28 */ addi r4, r1, 0x28 -/* 804A91E0 38 BE 05 38 */ addi r5, r30, 0x538 -/* 804A91E4 38 C0 00 00 */ li r6, 0 -/* 804A91E8 C0 3F 00 00 */ lfs f1, 0(r31) -/* 804A91EC FC 40 08 90 */ fmr f2, f1 -/* 804A91F0 C0 7F 00 04 */ lfs f3, 4(r31) -/* 804A91F4 FC 80 18 90 */ fmr f4, f3 -/* 804A91F8 39 00 00 00 */ li r8, 0 -/* 804A91FC 4B E0 27 89 */ bl seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc -/* 804A9200 7F C3 F3 78 */ mr r3, r30 -/* 804A9204 FC 20 F8 90 */ fmr f1, f31 -/* 804A9208 4B FF FE 79 */ bl ghost_disappear__FP15disappear_classf -/* 804A920C 48 00 01 38 */ b lbl_804A9344 -lbl_804A9210: -/* 804A9210 2C 00 00 01 */ cmpwi r0, 1 -/* 804A9214 41 80 00 64 */ blt lbl_804A9278 -/* 804A9218 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 804A921C 7C 03 07 74 */ extsb r3, r0 -/* 804A9220 4B B8 3E 4D */ bl dComIfGp_getReverb__Fi -/* 804A9224 7C 67 1B 78 */ mr r7, r3 -/* 804A9228 3C 60 00 06 */ lis r3, 0x0006 /* 0x00060028@ha */ -/* 804A922C 38 03 00 28 */ addi r0, r3, 0x0028 /* 0x00060028@l */ -/* 804A9230 90 01 00 24 */ stw r0, 0x24(r1) -/* 804A9234 3C 60 80 45 */ lis r3, mAudioMgrPtr__10Z2AudioMgr@ha /* 0x80451368@ha */ -/* 804A9238 38 63 13 68 */ addi r3, r3, mAudioMgrPtr__10Z2AudioMgr@l /* 0x80451368@l */ -/* 804A923C 80 63 00 00 */ lwz r3, 0(r3) -/* 804A9240 38 81 00 24 */ addi r4, r1, 0x24 -/* 804A9244 38 BE 05 38 */ addi r5, r30, 0x538 -/* 804A9248 38 C0 00 00 */ li r6, 0 -/* 804A924C C0 3F 00 00 */ lfs f1, 0(r31) -/* 804A9250 FC 40 08 90 */ fmr f2, f1 -/* 804A9254 C0 7F 00 04 */ lfs f3, 4(r31) -/* 804A9258 FC 80 18 90 */ fmr f4, f3 -/* 804A925C 39 00 00 00 */ li r8, 0 -/* 804A9260 4B E0 27 25 */ bl seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc -/* 804A9264 7F C3 F3 78 */ mr r3, r30 -/* 804A9268 C0 1F 00 08 */ lfs f0, 8(r31) -/* 804A926C EC 20 07 F2 */ fmuls f1, f0, f31 -/* 804A9270 4B FF FD 49 */ bl yami_disappear__FP15disappear_classf -/* 804A9274 48 00 00 D0 */ b lbl_804A9344 -lbl_804A9278: -/* 804A9278 88 1E 04 E2 */ lbz r0, 0x4e2(r30) -/* 804A927C 7C 03 07 74 */ extsb r3, r0 -/* 804A9280 4B B8 3D ED */ bl dComIfGp_getReverb__Fi -/* 804A9284 7C 67 1B 78 */ mr r7, r3 -/* 804A9288 3C 60 00 06 */ lis r3, 0x0006 /* 0x0006000A@ha */ -/* 804A928C 38 03 00 0A */ addi r0, r3, 0x000A /* 0x0006000A@l */ -/* 804A9290 90 01 00 20 */ stw r0, 0x20(r1) -/* 804A9294 3C 60 80 45 */ lis r3, mAudioMgrPtr__10Z2AudioMgr@ha /* 0x80451368@ha */ -/* 804A9298 38 63 13 68 */ addi r3, r3, mAudioMgrPtr__10Z2AudioMgr@l /* 0x80451368@l */ -/* 804A929C 80 63 00 00 */ lwz r3, 0(r3) -/* 804A92A0 38 81 00 20 */ addi r4, r1, 0x20 -/* 804A92A4 38 BE 05 38 */ addi r5, r30, 0x538 -/* 804A92A8 38 C0 00 00 */ li r6, 0 -/* 804A92AC C0 3F 00 00 */ lfs f1, 0(r31) -/* 804A92B0 FC 40 08 90 */ fmr f2, f1 -/* 804A92B4 C0 7F 00 04 */ lfs f3, 4(r31) -/* 804A92B8 FC 80 18 90 */ fmr f4, f3 -/* 804A92BC 39 00 00 00 */ li r8, 0 -/* 804A92C0 4B E0 26 C5 */ bl seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc -/* 804A92C4 D3 E1 00 38 */ stfs f31, 0x38(r1) -/* 804A92C8 D3 E1 00 3C */ stfs f31, 0x3c(r1) -/* 804A92CC D3 E1 00 40 */ stfs f31, 0x40(r1) -/* 804A92D0 38 00 00 3A */ li r0, 0x3a -/* 804A92D4 B0 1E 05 74 */ sth r0, 0x574(r30) -/* 804A92D8 3B 40 00 00 */ li r26, 0 -/* 804A92DC 3B A0 00 00 */ li r29, 0 -/* 804A92E0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804A92E4 3B 63 61 C0 */ addi r27, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804A92E8 3C 60 80 4B */ lis r3, da_name_3736@ha /* 0x804A9494@ha */ -/* 804A92EC 3B 83 94 94 */ addi r28, r3, da_name_3736@l /* 0x804A9494@l */ -lbl_804A92F0: -/* 804A92F0 80 7B 5D 3C */ lwz r3, 0x5d3c(r27) -/* 804A92F4 38 80 00 00 */ li r4, 0 -/* 804A92F8 90 81 00 08 */ stw r4, 8(r1) -/* 804A92FC 38 00 FF FF */ li r0, -1 -/* 804A9300 90 01 00 0C */ stw r0, 0xc(r1) -/* 804A9304 90 81 00 10 */ stw r4, 0x10(r1) -/* 804A9308 90 81 00 14 */ stw r4, 0x14(r1) -/* 804A930C 90 81 00 18 */ stw r4, 0x18(r1) -/* 804A9310 38 80 00 00 */ li r4, 0 -/* 804A9314 7C BC EA 2E */ lhzx r5, r28, r29 -/* 804A9318 38 DE 04 D0 */ addi r6, r30, 0x4d0 -/* 804A931C 38 E0 00 00 */ li r7, 0 -/* 804A9320 39 00 00 00 */ li r8, 0 -/* 804A9324 39 21 00 38 */ addi r9, r1, 0x38 -/* 804A9328 39 40 00 FF */ li r10, 0xff -/* 804A932C C0 3F 00 00 */ lfs f1, 0(r31) -/* 804A9330 4B BA 37 61 */ bl set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf -/* 804A9334 3B 5A 00 01 */ addi r26, r26, 1 -/* 804A9338 2C 1A 00 07 */ cmpwi r26, 7 -/* 804A933C 3B BD 00 02 */ addi r29, r29, 2 -/* 804A9340 41 80 FF B0 */ blt lbl_804A92F0 -lbl_804A9344: -/* 804A9344 E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0 /* qr0 */ -/* 804A9348 CB E1 00 60 */ lfd f31, 0x60(r1) -/* 804A934C 39 61 00 60 */ addi r11, r1, 0x60 -/* 804A9350 4B EB 8E CD */ bl _restgpr_26 -/* 804A9354 80 01 00 74 */ lwz r0, 0x74(r1) -/* 804A9358 7C 08 03 A6 */ mtlr r0 -/* 804A935C 38 21 00 70 */ addi r1, r1, 0x70 -/* 804A9360 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_disappear/d_a_disappear/yami_disappear__FP15disappear_classf.s b/asm/rel/d/a/d_a_disappear/d_a_disappear/yami_disappear__FP15disappear_classf.s deleted file mode 100644 index 8565421d30..0000000000 --- a/asm/rel/d/a/d_a_disappear/d_a_disappear/yami_disappear__FP15disappear_classf.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_804A8FB8: -/* 804A8FB8 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 804A8FBC 7C 08 02 A6 */ mflr r0 -/* 804A8FC0 90 01 00 54 */ stw r0, 0x54(r1) -/* 804A8FC4 39 61 00 50 */ addi r11, r1, 0x50 -/* 804A8FC8 4B EB 92 05 */ bl _savegpr_25 -/* 804A8FCC 7C 79 1B 78 */ mr r25, r3 -/* 804A8FD0 D0 21 00 20 */ stfs f1, 0x20(r1) -/* 804A8FD4 D0 21 00 24 */ stfs f1, 0x24(r1) -/* 804A8FD8 D0 21 00 28 */ stfs f1, 0x28(r1) -/* 804A8FDC 3B 60 00 03 */ li r27, 3 -/* 804A8FE0 88 03 05 67 */ lbz r0, 0x567(r3) -/* 804A8FE4 2C 00 00 02 */ cmpwi r0, 2 -/* 804A8FE8 40 82 00 08 */ bne lbl_804A8FF0 -/* 804A8FEC 3B 60 00 04 */ li r27, 4 -lbl_804A8FF0: -/* 804A8FF0 3B 40 00 00 */ li r26, 0 -/* 804A8FF4 3B E0 00 00 */ li r31, 0 -/* 804A8FF8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 804A8FFC 3B 83 61 C0 */ addi r28, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 804A9000 3C 60 80 4B */ lis r3, da_name_3684@ha /* 0x804A9480@ha */ -/* 804A9004 3B A3 94 80 */ addi r29, r3, da_name_3684@l /* 0x804A9480@l */ -/* 804A9008 3C 60 80 4B */ lis r3, lit_3704@ha /* 0x804A9460@ha */ -/* 804A900C 3B C3 94 60 */ addi r30, r3, lit_3704@l /* 0x804A9460@l */ -/* 804A9010 48 00 00 50 */ b lbl_804A9060 -lbl_804A9014: -/* 804A9014 80 7C 5D 3C */ lwz r3, 0x5d3c(r28) -/* 804A9018 38 80 00 00 */ li r4, 0 -/* 804A901C 90 81 00 08 */ stw r4, 8(r1) -/* 804A9020 38 00 FF FF */ li r0, -1 -/* 804A9024 90 01 00 0C */ stw r0, 0xc(r1) -/* 804A9028 90 81 00 10 */ stw r4, 0x10(r1) -/* 804A902C 90 81 00 14 */ stw r4, 0x14(r1) -/* 804A9030 90 81 00 18 */ stw r4, 0x18(r1) -/* 804A9034 38 80 00 00 */ li r4, 0 -/* 804A9038 7C BD FA 2E */ lhzx r5, r29, r31 -/* 804A903C 38 D9 04 D0 */ addi r6, r25, 0x4d0 -/* 804A9040 38 E0 00 00 */ li r7, 0 -/* 804A9044 39 00 00 00 */ li r8, 0 -/* 804A9048 39 21 00 20 */ addi r9, r1, 0x20 -/* 804A904C 39 40 00 FF */ li r10, 0xff -/* 804A9050 C0 3E 00 00 */ lfs f1, 0(r30) -/* 804A9054 4B BA 3A 3D */ bl set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf -/* 804A9058 3B 5A 00 01 */ addi r26, r26, 1 -/* 804A905C 3B FF 00 02 */ addi r31, r31, 2 -lbl_804A9060: -/* 804A9060 7C 1A D8 00 */ cmpw r26, r27 -/* 804A9064 41 80 FF B0 */ blt lbl_804A9014 -/* 804A9068 39 61 00 50 */ addi r11, r1, 0x50 -/* 804A906C 4B EB 91 AD */ bl _restgpr_25 -/* 804A9070 80 01 00 54 */ lwz r0, 0x54(r1) -/* 804A9074 7C 08 03 A6 */ mtlr r0 -/* 804A9078 38 21 00 50 */ addi r1, r1, 0x50 -/* 804A907C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_talk/d_a_talk/__dt__8daTalk_cFv.s b/asm/rel/d/a/d_a_talk/d_a_talk/__dt__8daTalk_cFv.s deleted file mode 100644 index 1cac3064c1..0000000000 --- a/asm/rel/d/a/d_a_talk/d_a_talk/__dt__8daTalk_cFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_80D66378: -/* 80D66378 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D6637C 7C 08 02 A6 */ mflr r0 -/* 80D66380 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D66384 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D66388 93 C1 00 08 */ stw r30, 8(r1) -/* 80D6638C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80D66390 7C 9F 23 78 */ mr r31, r4 -/* 80D66394 41 82 00 34 */ beq lbl_80D663C8 -/* 80D66398 38 60 FF FF */ li r3, -1 -/* 80D6639C 4B 4D 1D ED */ bl setProcessID__12dMsgObject_cFUi -/* 80D663A0 38 7E 05 68 */ addi r3, r30, 0x568 -/* 80D663A4 38 80 FF FF */ li r4, -1 -/* 80D663A8 4B 4E 3B A1 */ bl __dt__10dMsgFlow_cFv -/* 80D663AC 7F C3 F3 78 */ mr r3, r30 -/* 80D663B0 38 80 00 00 */ li r4, 0 -/* 80D663B4 4B 2B 28 D9 */ bl __dt__10fopAc_ac_cFv -/* 80D663B8 7F E0 07 35 */ extsh. r0, r31 -/* 80D663BC 40 81 00 0C */ ble lbl_80D663C8 -/* 80D663C0 7F C3 F3 78 */ mr r3, r30 -/* 80D663C4 4B 56 89 79 */ bl __dl__FPv -lbl_80D663C8: -/* 80D663C8 7F C3 F3 78 */ mr r3, r30 -/* 80D663CC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D663D0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80D663D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D663D8 7C 08 03 A6 */ mtlr r0 -/* 80D663DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D663E0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_talk/d_a_talk/create__8daTalk_cFv.s b/asm/rel/d/a/d_a_talk/d_a_talk/create__8daTalk_cFv.s deleted file mode 100644 index 2093418456..0000000000 --- a/asm/rel/d/a/d_a_talk/d_a_talk/create__8daTalk_cFv.s +++ /dev/null @@ -1,55 +0,0 @@ -lbl_80D663E4: -/* 80D663E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D663E8 7C 08 02 A6 */ mflr r0 -/* 80D663EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D663F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D663F4 93 C1 00 08 */ stw r30, 8(r1) -/* 80D663F8 7C 7E 1B 78 */ mr r30, r3 -/* 80D663FC 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D66400 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D66404 40 82 00 28 */ bne lbl_80D6642C -/* 80D66408 7F C0 F3 79 */ or. r0, r30, r30 -/* 80D6640C 41 82 00 14 */ beq lbl_80D66420 -/* 80D66410 7C 1F 03 78 */ mr r31, r0 -/* 80D66414 4B 2B 27 51 */ bl __ct__10fopAc_ac_cFv -/* 80D66418 38 7F 05 68 */ addi r3, r31, 0x568 -/* 80D6641C 4B 4E 3A E5 */ bl __ct__10dMsgFlow_cFv -lbl_80D66420: -/* 80D66420 80 1E 04 A0 */ lwz r0, 0x4a0(r30) -/* 80D66424 60 00 00 08 */ ori r0, r0, 8 -/* 80D66428 90 1E 04 A0 */ stw r0, 0x4a0(r30) -lbl_80D6642C: -/* 80D6642C 7F C3 F3 78 */ mr r3, r30 -/* 80D66430 48 00 02 59 */ bl getStatus__8daTalk_cFv -/* 80D66434 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 80D66438 28 00 00 01 */ cmplwi r0, 1 -/* 80D6643C 41 82 00 0C */ beq lbl_80D66448 -/* 80D66440 38 60 00 05 */ li r3, 5 -/* 80D66444 48 00 00 50 */ b lbl_80D66494 -lbl_80D66448: -/* 80D66448 4B 4D 1D 79 */ bl getpTalkActor__12dMsgObject_cFv -/* 80D6644C 3B E3 05 44 */ addi r31, r3, 0x544 -/* 80D66450 38 7E 05 44 */ addi r3, r30, 0x544 -/* 80D66454 7F E4 FB 78 */ mr r4, r31 -/* 80D66458 38 A0 00 09 */ li r5, 9 -/* 80D6645C 4B 5F B7 E1 */ bl __copy -/* 80D66460 A8 1F 00 0A */ lha r0, 0xa(r31) -/* 80D66464 B0 1E 05 4E */ sth r0, 0x54e(r30) -/* 80D66468 C0 1F 00 0C */ lfs f0, 0xc(r31) -/* 80D6646C D0 1E 05 50 */ stfs f0, 0x550(r30) -/* 80D66470 C0 1F 00 10 */ lfs f0, 0x10(r31) -/* 80D66474 D0 1E 05 54 */ stfs f0, 0x554(r30) -/* 80D66478 C0 1F 00 14 */ lfs f0, 0x14(r31) -/* 80D6647C D0 1E 05 58 */ stfs f0, 0x558(r30) -/* 80D66480 80 1F 00 18 */ lwz r0, 0x18(r31) -/* 80D66484 90 1E 05 5C */ stw r0, 0x55c(r30) -/* 80D66488 38 00 FF FF */ li r0, -1 -/* 80D6648C 90 1E 05 B4 */ stw r0, 0x5b4(r30) -/* 80D66490 38 60 00 04 */ li r3, 4 -lbl_80D66494: -/* 80D66494 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D66498 83 C1 00 08 */ lwz r30, 8(r1) -/* 80D6649C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D664A0 7C 08 03 A6 */ mtlr r0 -/* 80D664A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D664A8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 441b81fd84..0000000000 --- a/asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D666E4: -/* 80D666E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D666E8 7C 08 02 A6 */ mflr r0 -/* 80D666EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D666F0 4B FF FC F5 */ bl create__8daTalk_cFv -/* 80D666F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D666F8 7C 08 03 A6 */ mtlr r0 -/* 80D666FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D66700 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Delete__FP8daTalk_c.s b/asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Delete__FP8daTalk_c.s deleted file mode 100644 index ea88beb623..0000000000 --- a/asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Delete__FP8daTalk_c.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80D66704: -/* 80D66704 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D66708 7C 08 02 A6 */ mflr r0 -/* 80D6670C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D66710 38 80 FF FF */ li r4, -1 -/* 80D66714 4B FF FC 65 */ bl __dt__8daTalk_cFv -/* 80D66718 38 60 00 01 */ li r3, 1 -/* 80D6671C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D66720 7C 08 03 A6 */ mtlr r0 -/* 80D66724 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D66728 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Draw__FP8daTalk_c.s b/asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Draw__FP8daTalk_c.s deleted file mode 100644 index 024e655efd..0000000000 --- a/asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Draw__FP8daTalk_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D6674C: -/* 80D6674C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D66750 7C 08 02 A6 */ mflr r0 -/* 80D66754 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D66758 4B FF FF 05 */ bl draw__8daTalk_cFv -/* 80D6675C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D66760 7C 08 03 A6 */ mtlr r0 -/* 80D66764 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D66768 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Execute__FP8daTalk_c.s b/asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Execute__FP8daTalk_c.s deleted file mode 100644 index e71ecdf6b6..0000000000 --- a/asm/rel/d/a/d_a_talk/d_a_talk/daTalk_Execute__FP8daTalk_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D6672C: -/* 80D6672C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D66730 7C 08 02 A6 */ mflr r0 -/* 80D66734 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D66738 4B FF FD 75 */ bl execute__8daTalk_cFv -/* 80D6673C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D66740 7C 08 03 A6 */ mtlr r0 -/* 80D66744 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D66748 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_talk/d_a_talk/getStatus__8daTalk_cFv.s b/asm/rel/d/a/d_a_talk/d_a_talk/getStatus__8daTalk_cFv.s deleted file mode 100644 index 61b0b6f50d..0000000000 --- a/asm/rel/d/a/d_a_talk/d_a_talk/getStatus__8daTalk_cFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D66688: -/* 80D66688 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D6668C 7C 08 02 A6 */ mflr r0 -/* 80D66690 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D66694 4B 4D 1B 99 */ bl getStatus__12dMsgObject_cFv -/* 80D66698 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6669C 7C 08 03 A6 */ mtlr r0 -/* 80D666A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D666A4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_talk/d_a_talk/messageSet__8daTalk_cFv.s b/asm/rel/d/a/d_a_talk/d_a_talk/messageSet__8daTalk_cFv.s deleted file mode 100644 index f99dbcad84..0000000000 --- a/asm/rel/d/a/d_a_talk/d_a_talk/messageSet__8daTalk_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80D666A8: -/* 80D666A8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D666AC 7C 08 02 A6 */ mflr r0 -/* 80D666B0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D666B4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D666B8 4B 4D 1B 09 */ bl getpTalkActor__12dMsgObject_cFv -/* 80D666BC 7C 7F 1B 78 */ mr r31, r3 -/* 80D666C0 4B 4D 1B 15 */ bl getIdx__12dMsgObject_cFv -/* 80D666C4 7F E4 FB 78 */ mr r4, r31 -/* 80D666C8 38 A0 03 E8 */ li r5, 0x3e8 -/* 80D666CC 4B 2B 96 69 */ bl fopMsgM_messageSet__FUlP10fopAc_ac_cUl -/* 80D666D0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D666D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D666D8 7C 08 03 A6 */ mtlr r0 -/* 80D666DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D666E0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_talk/d_a_talk/setStatus__8daTalk_cFUs.s b/asm/rel/d/a/d_a_talk/d_a_talk/setStatus__8daTalk_cFUs.s deleted file mode 100644 index d945109362..0000000000 --- a/asm/rel/d/a/d_a_talk/d_a_talk/setStatus__8daTalk_cFUs.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80D66664: -/* 80D66664 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D66668 7C 08 02 A6 */ mflr r0 -/* 80D6666C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D66670 7C 83 23 78 */ mr r3, r4 -/* 80D66674 4B 4D 1B 89 */ bl setStatus__12dMsgObject_cFUs -/* 80D66678 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6667C 7C 08 03 A6 */ mtlr r0 -/* 80D66680 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D66684 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag16/d_a_kytag16/daKytag16_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/kytag/d_a_kytag16/d_a_kytag16/daKytag16_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 74da3b636d..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag16/d_a_kytag16/daKytag16_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,172 +0,0 @@ -lbl_80860EAC: -/* 80860EAC 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80860EB0 7C 08 02 A6 */ mflr r0 -/* 80860EB4 90 01 00 34 */ stw r0, 0x34(r1) -/* 80860EB8 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80860EBC 93 C1 00 28 */ stw r30, 0x28(r1) -/* 80860EC0 7C 7E 1B 78 */ mr r30, r3 -/* 80860EC4 3C 80 80 86 */ lis r4, lit_3839@ha /* 0x80861134@ha */ -/* 80860EC8 3B E4 11 34 */ addi r31, r4, lit_3839@l /* 0x80861134@l */ -/* 80860ECC 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80860ED0 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80860ED4 40 82 00 1C */ bne lbl_80860EF0 -/* 80860ED8 28 1E 00 00 */ cmplwi r30, 0 -/* 80860EDC 41 82 00 08 */ beq lbl_80860EE4 -/* 80860EE0 4B 7B 7C 85 */ bl __ct__10fopAc_ac_cFv -lbl_80860EE4: -/* 80860EE4 80 1E 04 A0 */ lwz r0, 0x4a0(r30) -/* 80860EE8 60 00 00 08 */ ori r0, r0, 8 -/* 80860EEC 90 1E 04 A0 */ stw r0, 0x4a0(r30) -lbl_80860EF0: -/* 80860EF0 80 1E 00 B0 */ lwz r0, 0xb0(r30) -/* 80860EF4 98 1E 05 73 */ stb r0, 0x573(r30) -/* 80860EF8 A8 1E 04 E0 */ lha r0, 0x4e0(r30) -/* 80860EFC 54 00 B6 BE */ rlwinm r0, r0, 0x16, 0x1a, 0x1f -/* 80860F00 98 1E 05 6C */ stb r0, 0x56c(r30) -/* 80860F04 80 1E 00 B0 */ lwz r0, 0xb0(r30) -/* 80860F08 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f -/* 80860F0C 98 1E 05 6D */ stb r0, 0x56d(r30) -/* 80860F10 80 1E 00 B0 */ lwz r0, 0xb0(r30) -/* 80860F14 54 00 86 3E */ rlwinm r0, r0, 0x10, 0x18, 0x1f -/* 80860F18 98 1E 05 6E */ stb r0, 0x56e(r30) -/* 80860F1C 80 1E 00 B0 */ lwz r0, 0xb0(r30) -/* 80860F20 54 00 46 3E */ srwi r0, r0, 0x18 -/* 80860F24 98 1E 05 6F */ stb r0, 0x56f(r30) -/* 80860F28 A8 1E 04 E0 */ lha r0, 0x4e0(r30) -/* 80860F2C 54 00 06 FE */ clrlwi r0, r0, 0x1b -/* 80860F30 98 1E 05 71 */ stb r0, 0x571(r30) -/* 80860F34 A8 1E 04 E0 */ lha r0, 0x4e0(r30) -/* 80860F38 54 00 DE FE */ rlwinm r0, r0, 0x1b, 0x1b, 0x1f -/* 80860F3C 98 1E 05 72 */ stb r0, 0x572(r30) -/* 80860F40 C0 7F 00 2C */ lfs f3, 0x2c(r31) -/* 80860F44 A8 1E 04 E4 */ lha r0, 0x4e4(r30) -/* 80860F48 C8 5F 00 58 */ lfd f2, 0x58(r31) -/* 80860F4C 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 80860F50 90 01 00 0C */ stw r0, 0xc(r1) -/* 80860F54 3C 60 43 30 */ lis r3, 0x4330 -/* 80860F58 90 61 00 08 */ stw r3, 8(r1) -/* 80860F5C C8 01 00 08 */ lfd f0, 8(r1) -/* 80860F60 EC 00 10 28 */ fsubs f0, f0, f2 -/* 80860F64 C0 3F 00 30 */ lfs f1, 0x30(r31) -/* 80860F68 EC 00 08 24 */ fdivs f0, f0, f1 -/* 80860F6C EC 03 00 32 */ fmuls f0, f3, f0 -/* 80860F70 D0 1E 05 78 */ stfs f0, 0x578(r30) -/* 80860F74 A8 1E 04 E6 */ lha r0, 0x4e6(r30) -/* 80860F78 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 80860F7C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80860F80 90 61 00 10 */ stw r3, 0x10(r1) -/* 80860F84 C8 01 00 10 */ lfd f0, 0x10(r1) -/* 80860F88 EC 00 10 28 */ fsubs f0, f0, f2 -/* 80860F8C EC 00 08 24 */ fdivs f0, f0, f1 -/* 80860F90 EC 03 00 32 */ fmuls f0, f3, f0 -/* 80860F94 D0 1E 05 7C */ stfs f0, 0x57c(r30) -/* 80860F98 C0 3F 00 34 */ lfs f1, 0x34(r31) -/* 80860F9C 4B A0 69 F1 */ bl cM_rndFX__Ff -/* 80860FA0 FC 00 08 1E */ fctiwz f0, f1 -/* 80860FA4 D8 01 00 18 */ stfd f0, 0x18(r1) -/* 80860FA8 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 80860FAC B0 1E 05 88 */ sth r0, 0x588(r30) -/* 80860FB0 C0 3F 00 34 */ lfs f1, 0x34(r31) -/* 80860FB4 4B A0 69 D9 */ bl cM_rndFX__Ff -/* 80860FB8 FC 00 08 1E */ fctiwz f0, f1 -/* 80860FBC D8 01 00 20 */ stfd f0, 0x20(r1) -/* 80860FC0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80860FC4 B0 1E 05 8A */ sth r0, 0x58a(r30) -/* 80860FC8 C0 3F 00 04 */ lfs f1, 4(r31) -/* 80860FCC D0 3E 05 84 */ stfs f1, 0x584(r30) -/* 80860FD0 C0 1F 00 00 */ lfs f0, 0(r31) -/* 80860FD4 D0 1E 05 68 */ stfs f0, 0x568(r30) -/* 80860FD8 88 1E 05 6C */ lbz r0, 0x56c(r30) -/* 80860FDC 28 00 00 07 */ cmplwi r0, 7 -/* 80860FE0 41 81 01 30 */ bgt lbl_80861110 -/* 80860FE4 3C 60 80 86 */ lis r3, lit_3917@ha /* 0x8086119C@ha */ -/* 80860FE8 38 63 11 9C */ addi r3, r3, lit_3917@l /* 0x8086119C@l */ -/* 80860FEC 54 00 10 3A */ slwi r0, r0, 2 -/* 80860FF0 7C 03 00 2E */ lwzx r0, r3, r0 -/* 80860FF4 7C 09 03 A6 */ mtctr r0 -/* 80860FF8 4E 80 04 20 */ bctr -lbl_80860FFC: -/* 80860FFC C0 1F 00 38 */ lfs f0, 0x38(r31) -/* 80861000 D0 1E 05 80 */ stfs f0, 0x580(r30) -/* 80861004 D0 3E 05 74 */ stfs f1, 0x574(r30) -/* 80861008 38 00 00 00 */ li r0, 0 -/* 8086100C 98 1E 05 8C */ stb r0, 0x58c(r30) -/* 80861010 38 00 00 03 */ li r0, 3 -/* 80861014 98 1E 05 8D */ stb r0, 0x58d(r30) -/* 80861018 48 00 00 F8 */ b lbl_80861110 -lbl_8086101C: -/* 8086101C C0 1F 00 38 */ lfs f0, 0x38(r31) -/* 80861020 D0 1E 05 80 */ stfs f0, 0x580(r30) -/* 80861024 C0 1F 00 3C */ lfs f0, 0x3c(r31) -/* 80861028 D0 1E 05 74 */ stfs f0, 0x574(r30) -/* 8086102C 38 00 00 00 */ li r0, 0 -/* 80861030 98 1E 05 8C */ stb r0, 0x58c(r30) -/* 80861034 38 00 00 03 */ li r0, 3 -/* 80861038 98 1E 05 8D */ stb r0, 0x58d(r30) -/* 8086103C 48 00 00 D4 */ b lbl_80861110 -lbl_80861040: -/* 80861040 C0 1F 00 38 */ lfs f0, 0x38(r31) -/* 80861044 D0 1E 05 80 */ stfs f0, 0x580(r30) -/* 80861048 C0 1F 00 40 */ lfs f0, 0x40(r31) -/* 8086104C D0 1E 05 74 */ stfs f0, 0x574(r30) -/* 80861050 38 00 00 00 */ li r0, 0 -/* 80861054 98 1E 05 8C */ stb r0, 0x58c(r30) -/* 80861058 38 00 00 03 */ li r0, 3 -/* 8086105C 98 1E 05 8D */ stb r0, 0x58d(r30) -/* 80861060 48 00 00 B0 */ b lbl_80861110 -lbl_80861064: -/* 80861064 C0 1F 00 44 */ lfs f0, 0x44(r31) -/* 80861068 D0 1E 05 80 */ stfs f0, 0x580(r30) -/* 8086106C D0 3E 05 74 */ stfs f1, 0x574(r30) -/* 80861070 38 00 00 02 */ li r0, 2 -/* 80861074 98 1E 05 8C */ stb r0, 0x58c(r30) -/* 80861078 38 00 00 03 */ li r0, 3 -/* 8086107C 98 1E 05 8D */ stb r0, 0x58d(r30) -/* 80861080 48 00 00 90 */ b lbl_80861110 -lbl_80861084: -/* 80861084 C0 1F 00 38 */ lfs f0, 0x38(r31) -/* 80861088 D0 1E 05 80 */ stfs f0, 0x580(r30) -/* 8086108C C0 1F 00 3C */ lfs f0, 0x3c(r31) -/* 80861090 D0 1E 05 74 */ stfs f0, 0x574(r30) -/* 80861094 38 00 00 02 */ li r0, 2 -/* 80861098 98 1E 05 8C */ stb r0, 0x58c(r30) -/* 8086109C 38 00 00 03 */ li r0, 3 -/* 808610A0 98 1E 05 8D */ stb r0, 0x58d(r30) -/* 808610A4 48 00 00 6C */ b lbl_80861110 -lbl_808610A8: -/* 808610A8 C0 1F 00 48 */ lfs f0, 0x48(r31) -/* 808610AC D0 1E 05 80 */ stfs f0, 0x580(r30) -/* 808610B0 C0 1F 00 40 */ lfs f0, 0x40(r31) -/* 808610B4 D0 1E 05 74 */ stfs f0, 0x574(r30) -/* 808610B8 38 00 00 02 */ li r0, 2 -/* 808610BC 98 1E 05 8C */ stb r0, 0x58c(r30) -/* 808610C0 38 00 00 03 */ li r0, 3 -/* 808610C4 98 1E 05 8D */ stb r0, 0x58d(r30) -/* 808610C8 48 00 00 48 */ b lbl_80861110 -lbl_808610CC: -/* 808610CC C0 1F 00 4C */ lfs f0, 0x4c(r31) -/* 808610D0 D0 1E 05 80 */ stfs f0, 0x580(r30) -/* 808610D4 C0 1F 00 50 */ lfs f0, 0x50(r31) -/* 808610D8 D0 1E 05 74 */ stfs f0, 0x574(r30) -/* 808610DC 38 00 00 02 */ li r0, 2 -/* 808610E0 98 1E 05 8C */ stb r0, 0x58c(r30) -/* 808610E4 38 00 00 01 */ li r0, 1 -/* 808610E8 98 1E 05 8D */ stb r0, 0x58d(r30) -/* 808610EC 48 00 00 24 */ b lbl_80861110 -lbl_808610F0: -/* 808610F0 C0 1F 00 28 */ lfs f0, 0x28(r31) -/* 808610F4 D0 1E 05 80 */ stfs f0, 0x580(r30) -/* 808610F8 C0 1F 00 50 */ lfs f0, 0x50(r31) -/* 808610FC D0 1E 05 74 */ stfs f0, 0x574(r30) -/* 80861100 38 00 00 02 */ li r0, 2 -/* 80861104 98 1E 05 8C */ stb r0, 0x58c(r30) -/* 80861108 38 00 00 01 */ li r0, 1 -/* 8086110C 98 1E 05 8D */ stb r0, 0x58d(r30) -lbl_80861110: -/* 80861110 38 60 00 04 */ li r3, 4 -/* 80861114 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80861118 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 8086111C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80861120 7C 08 03 A6 */ mtlr r0 -/* 80861124 38 21 00 30 */ addi r1, r1, 0x30 -/* 80861128 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag16/d_a_kytag16/daKytag16_Execute__FP13kytag16_class.s b/asm/rel/d/a/kytag/d_a_kytag16/d_a_kytag16/daKytag16_Execute__FP13kytag16_class.s deleted file mode 100644 index dc287e88b3..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag16/d_a_kytag16/daKytag16_Execute__FP13kytag16_class.s +++ /dev/null @@ -1,154 +0,0 @@ -lbl_80860C60: -/* 80860C60 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80860C64 7C 08 02 A6 */ mflr r0 -/* 80860C68 90 01 00 44 */ stw r0, 0x44(r1) -/* 80860C6C DB E1 00 30 */ stfd f31, 0x30(r1) -/* 80860C70 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0 /* qr0 */ -/* 80860C74 DB C1 00 20 */ stfd f30, 0x20(r1) -/* 80860C78 F3 C1 00 28 */ psq_st f30, 40(r1), 0, 0 /* qr0 */ -/* 80860C7C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80860C80 4B B0 15 5D */ bl _savegpr_29 -/* 80860C84 7C 7E 1B 78 */ mr r30, r3 -/* 80860C88 3C 60 80 86 */ lis r3, lit_3839@ha /* 0x80861134@ha */ -/* 80860C8C 3B E3 11 34 */ addi r31, r3, lit_3839@l /* 0x80861134@l */ -/* 80860C90 3B A0 00 00 */ li r29, 0 -/* 80860C94 C3 FF 00 00 */ lfs f31, 0(r31) -/* 80860C98 FF C0 F8 90 */ fmr f30, f31 -/* 80860C9C 88 7E 05 71 */ lbz r3, 0x571(r30) -/* 80860CA0 28 03 00 1F */ cmplwi r3, 0x1f -/* 80860CA4 40 80 00 60 */ bge lbl_80860D04 -/* 80860CA8 88 1E 05 72 */ lbz r0, 0x572(r30) -/* 80860CAC 7C 03 00 40 */ cmplw r3, r0 -/* 80860CB0 40 81 00 2C */ ble lbl_80860CDC -/* 80860CB4 4B 93 ED 5D */ bl dKy_getdaytime_hour__Fv -/* 80860CB8 88 1E 05 71 */ lbz r0, 0x571(r30) -/* 80860CBC 7C 03 00 00 */ cmpw r3, r0 -/* 80860CC0 40 80 00 14 */ bge lbl_80860CD4 -/* 80860CC4 4B 93 ED 4D */ bl dKy_getdaytime_hour__Fv -/* 80860CC8 88 1E 05 72 */ lbz r0, 0x572(r30) -/* 80860CCC 7C 03 00 00 */ cmpw r3, r0 -/* 80860CD0 41 81 00 38 */ bgt lbl_80860D08 -lbl_80860CD4: -/* 80860CD4 3B A0 00 01 */ li r29, 1 -/* 80860CD8 48 00 00 30 */ b lbl_80860D08 -lbl_80860CDC: -/* 80860CDC 4B 93 ED 35 */ bl dKy_getdaytime_hour__Fv -/* 80860CE0 88 1E 05 71 */ lbz r0, 0x571(r30) -/* 80860CE4 7C 03 00 00 */ cmpw r3, r0 -/* 80860CE8 41 80 00 20 */ blt lbl_80860D08 -/* 80860CEC 4B 93 ED 25 */ bl dKy_getdaytime_hour__Fv -/* 80860CF0 88 1E 05 72 */ lbz r0, 0x572(r30) -/* 80860CF4 7C 03 00 00 */ cmpw r3, r0 -/* 80860CF8 41 81 00 10 */ bgt lbl_80860D08 -/* 80860CFC 3B A0 00 01 */ li r29, 1 -/* 80860D00 48 00 00 08 */ b lbl_80860D08 -lbl_80860D04: -/* 80860D04 3B A0 00 01 */ li r29, 1 -lbl_80860D08: -/* 80860D08 57 A0 06 3F */ clrlwi. r0, r29, 0x18 -/* 80860D0C 41 82 00 40 */ beq lbl_80860D4C -/* 80860D10 3B A0 00 00 */ li r29, 0 -/* 80860D14 88 9E 05 73 */ lbz r4, 0x573(r30) -/* 80860D18 28 04 00 FF */ cmplwi r4, 0xff -/* 80860D1C 41 82 00 2C */ beq lbl_80860D48 -/* 80860D20 3C 60 80 45 */ lis r3, mStayNo__20dStage_roomControl_c+0x0@ha /* 0x80450D64@ha */ -/* 80860D24 88 A3 0D 64 */ lbz r5, mStayNo__20dStage_roomControl_c+0x0@l(r3) /* 0x80450D64@l */ -/* 80860D28 7C A5 07 74 */ extsb r5, r5 -/* 80860D2C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80860D30 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80860D34 4B 7D 46 2D */ bl isSwitch__10dSv_info_cCFii -/* 80860D38 2C 03 00 00 */ cmpwi r3, 0 -/* 80860D3C 41 82 00 10 */ beq lbl_80860D4C -/* 80860D40 3B A0 00 01 */ li r29, 1 -/* 80860D44 48 00 00 08 */ b lbl_80860D4C -lbl_80860D48: -/* 80860D48 3B A0 00 01 */ li r29, 1 -lbl_80860D4C: -/* 80860D4C 57 A0 06 3F */ clrlwi. r0, r29, 0x18 -/* 80860D50 41 82 00 B8 */ beq lbl_80860E08 -/* 80860D54 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80860D58 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80860D5C 38 63 4E 00 */ addi r3, r3, 0x4e00 -/* 80860D60 3C 80 80 86 */ lis r4, d_a_kytag16__stringBase0@ha /* 0x80861194@ha */ -/* 80860D64 38 84 11 94 */ addi r4, r4, d_a_kytag16__stringBase0@l /* 0x80861194@l */ -/* 80860D68 4B B0 7C 2D */ bl strcmp -/* 80860D6C 2C 03 00 00 */ cmpwi r3, 0 -/* 80860D70 41 82 00 20 */ beq lbl_80860D90 -/* 80860D74 38 7E 05 68 */ addi r3, r30, 0x568 -/* 80860D78 C0 3F 00 04 */ lfs f1, 4(r31) -/* 80860D7C C0 5F 00 08 */ lfs f2, 8(r31) -/* 80860D80 C0 7F 00 0C */ lfs f3, 0xc(r31) -/* 80860D84 C0 9F 00 10 */ lfs f4, 0x10(r31) -/* 80860D88 4B A0 EB F5 */ bl cLib_addCalc__FPfffff -/* 80860D8C 48 00 00 94 */ b lbl_80860E20 -lbl_80860D90: -/* 80860D90 A8 BE 05 88 */ lha r5, 0x588(r30) -/* 80860D94 54 A0 04 38 */ rlwinm r0, r5, 0, 0x10, 0x1c -/* 80860D98 3C 60 80 44 */ lis r3, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 80860D9C 38 83 9A 20 */ addi r4, r3, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 80860DA0 7F E4 04 2E */ lfsx f31, r4, r0 -/* 80860DA4 A8 1E 05 8A */ lha r0, 0x58a(r30) -/* 80860DA8 54 00 04 38 */ rlwinm r0, r0, 0, 0x10, 0x1c -/* 80860DAC 7C 64 02 14 */ add r3, r4, r0 -/* 80860DB0 C3 C3 00 04 */ lfs f30, 4(r3) -/* 80860DB4 38 05 05 00 */ addi r0, r5, 0x500 -/* 80860DB8 B0 1E 05 88 */ sth r0, 0x588(r30) -/* 80860DBC A8 7E 05 8A */ lha r3, 0x58a(r30) -/* 80860DC0 38 03 03 20 */ addi r0, r3, 0x320 -/* 80860DC4 B0 1E 05 8A */ sth r0, 0x58a(r30) -/* 80860DC8 3C 60 80 43 */ lis r3, g_Counter@ha /* 0x80430CD8@ha */ -/* 80860DCC 80 03 0C D8 */ lwz r0, g_Counter@l(r3) /* 0x80430CD8@l */ -/* 80860DD0 1C 00 05 00 */ mulli r0, r0, 0x500 -/* 80860DD4 54 00 04 38 */ rlwinm r0, r0, 0, 0x10, 0x1c -/* 80860DD8 7C 04 04 2E */ lfsx f0, r4, r0 -/* 80860DDC 38 7E 05 68 */ addi r3, r30, 0x568 -/* 80860DE0 C0 3F 00 14 */ lfs f1, 0x14(r31) -/* 80860DE4 C0 7F 00 0C */ lfs f3, 0xc(r31) -/* 80860DE8 EC 03 00 32 */ fmuls f0, f3, f0 -/* 80860DEC EC 21 00 2A */ fadds f1, f1, f0 -/* 80860DF0 C0 5F 00 08 */ lfs f2, 8(r31) -/* 80860DF4 C0 9F 00 10 */ lfs f4, 0x10(r31) -/* 80860DF8 4B A0 EB 85 */ bl cLib_addCalc__FPfffff -/* 80860DFC C0 1F 00 18 */ lfs f0, 0x18(r31) -/* 80860E00 D0 1E 05 80 */ stfs f0, 0x580(r30) -/* 80860E04 48 00 00 1C */ b lbl_80860E20 -lbl_80860E08: -/* 80860E08 38 7E 05 68 */ addi r3, r30, 0x568 -/* 80860E0C C0 3F 00 00 */ lfs f1, 0(r31) -/* 80860E10 C0 5F 00 08 */ lfs f2, 8(r31) -/* 80860E14 C0 7F 00 1C */ lfs f3, 0x1c(r31) -/* 80860E18 C0 9F 00 10 */ lfs f4, 0x10(r31) -/* 80860E1C 4B A0 EB 61 */ bl cLib_addCalc__FPfffff -lbl_80860E20: -/* 80860E20 C0 9E 05 68 */ lfs f4, 0x568(r30) -/* 80860E24 C0 1F 00 20 */ lfs f0, 0x20(r31) -/* 80860E28 FC 04 00 40 */ fcmpo cr0, f4, f0 -/* 80860E2C 40 81 00 44 */ ble lbl_80860E70 -/* 80860E30 38 7E 04 D0 */ addi r3, r30, 0x4d0 -/* 80860E34 C0 3E 05 78 */ lfs f1, 0x578(r30) -/* 80860E38 C0 1F 00 24 */ lfs f0, 0x24(r31) -/* 80860E3C EC 00 07 F2 */ fmuls f0, f0, f31 -/* 80860E40 EC 21 00 2A */ fadds f1, f1, f0 -/* 80860E44 C0 5E 05 7C */ lfs f2, 0x57c(r30) -/* 80860E48 C0 1F 00 28 */ lfs f0, 0x28(r31) -/* 80860E4C EC 00 07 B2 */ fmuls f0, f0, f30 -/* 80860E50 EC 42 00 2A */ fadds f2, f2, f0 -/* 80860E54 C0 7E 05 80 */ lfs f3, 0x580(r30) -/* 80860E58 38 9E 05 6D */ addi r4, r30, 0x56d -/* 80860E5C C0 1E 05 74 */ lfs f0, 0x574(r30) -/* 80860E60 EC 80 01 32 */ fmuls f4, f0, f4 -/* 80860E64 88 BE 05 8C */ lbz r5, 0x58c(r30) -/* 80860E68 88 DE 05 8D */ lbz r6, 0x58d(r30) -/* 80860E6C 4B 94 97 F9 */ bl dKy_BossSpotLight_set__FP4cXyzfffP8_GXColorfUcUc -lbl_80860E70: -/* 80860E70 38 60 00 01 */ li r3, 1 -/* 80860E74 E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0 /* qr0 */ -/* 80860E78 CB E1 00 30 */ lfd f31, 0x30(r1) -/* 80860E7C E3 C1 00 28 */ psq_l f30, 40(r1), 0, 0 /* qr0 */ -/* 80860E80 CB C1 00 20 */ lfd f30, 0x20(r1) -/* 80860E84 39 61 00 20 */ addi r11, r1, 0x20 -/* 80860E88 4B B0 13 A1 */ bl _restgpr_29 -/* 80860E8C 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80860E90 7C 08 03 A6 */ mtlr r0 -/* 80860E94 38 21 00 40 */ addi r1, r1, 0x40 -/* 80860E98 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/Create__15daObjWaterEff_cFv.s b/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/Create__15daObjWaterEff_cFv.s deleted file mode 100644 index d7e9cd4ae4..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/Create__15daObjWaterEff_cFv.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_80C5C4F8: -/* 80C5C4F8 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80C5C4FC 7C 08 02 A6 */ mflr r0 -/* 80C5C500 90 01 00 44 */ stw r0, 0x44(r1) -/* 80C5C504 39 61 00 40 */ addi r11, r1, 0x40 -/* 80C5C508 4B 70 5C C5 */ bl _savegpr_25 -/* 80C5C50C 7C 79 1B 78 */ mr r25, r3 -/* 80C5C510 3C 60 80 C6 */ lis r3, l_eff_id@ha /* 0x80C5C878@ha */ -/* 80C5C514 3B 63 C8 78 */ addi r27, r3, l_eff_id@l /* 0x80C5C878@l */ -/* 80C5C518 3B 40 00 00 */ li r26, 0 -/* 80C5C51C 3B E0 00 00 */ li r31, 0 -/* 80C5C520 3B C0 00 00 */ li r30, 0 -/* 80C5C524 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80C5C528 3B 83 61 C0 */ addi r28, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80C5C52C 3B BB 00 00 */ addi r29, r27, 0 -lbl_80C5C530: -/* 80C5C530 80 7C 5D 3C */ lwz r3, 0x5d3c(r28) -/* 80C5C534 38 80 00 00 */ li r4, 0 -/* 80C5C538 90 81 00 08 */ stw r4, 8(r1) -/* 80C5C53C 38 00 FF FF */ li r0, -1 -/* 80C5C540 90 01 00 0C */ stw r0, 0xc(r1) -/* 80C5C544 90 81 00 10 */ stw r4, 0x10(r1) -/* 80C5C548 90 81 00 14 */ stw r4, 0x14(r1) -/* 80C5C54C 90 81 00 18 */ stw r4, 0x18(r1) -/* 80C5C550 38 80 00 00 */ li r4, 0 -/* 80C5C554 7C BD F2 2E */ lhzx r5, r29, r30 -/* 80C5C558 38 D9 04 D0 */ addi r6, r25, 0x4d0 -/* 80C5C55C 38 E0 00 00 */ li r7, 0 -/* 80C5C560 39 00 00 00 */ li r8, 0 -/* 80C5C564 39 20 00 00 */ li r9, 0 -/* 80C5C568 39 40 00 FF */ li r10, 0xff -/* 80C5C56C C0 3B 00 08 */ lfs f1, 8(r27) -/* 80C5C570 4B 3F 05 21 */ bl set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf -/* 80C5C574 38 1F 05 80 */ addi r0, r31, 0x580 -/* 80C5C578 7C 79 01 2E */ stwx r3, r25, r0 -/* 80C5C57C 3B 5A 00 01 */ addi r26, r26, 1 -/* 80C5C580 2C 1A 00 04 */ cmpwi r26, 4 -/* 80C5C584 3B FF 00 04 */ addi r31, r31, 4 -/* 80C5C588 3B DE 00 02 */ addi r30, r30, 2 -/* 80C5C58C 41 80 FF A4 */ blt lbl_80C5C530 -/* 80C5C590 C0 1B 00 0C */ lfs f0, 0xc(r27) -/* 80C5C594 D0 19 05 68 */ stfs f0, 0x568(r25) -/* 80C5C598 C0 1B 00 10 */ lfs f0, 0x10(r27) -/* 80C5C59C D0 19 05 6C */ stfs f0, 0x56c(r25) -/* 80C5C5A0 C0 1B 00 14 */ lfs f0, 0x14(r27) -/* 80C5C5A4 D0 19 05 70 */ stfs f0, 0x570(r25) -/* 80C5C5A8 C0 1B 00 18 */ lfs f0, 0x18(r27) -/* 80C5C5AC D0 19 05 74 */ stfs f0, 0x574(r25) -/* 80C5C5B0 C0 1B 00 1C */ lfs f0, 0x1c(r27) -/* 80C5C5B4 D0 19 05 78 */ stfs f0, 0x578(r25) -/* 80C5C5B8 C0 1B 00 20 */ lfs f0, 0x20(r27) -/* 80C5C5BC D0 19 05 7C */ stfs f0, 0x57c(r25) -/* 80C5C5C0 38 60 00 01 */ li r3, 1 -/* 80C5C5C4 39 61 00 40 */ addi r11, r1, 0x40 -/* 80C5C5C8 4B 70 5C 51 */ bl _restgpr_25 -/* 80C5C5CC 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80C5C5D0 7C 08 03 A6 */ mtlr r0 -/* 80C5C5D4 38 21 00 40 */ addi r1, r1, 0x40 -/* 80C5C5D8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/__dt__4cXyzFv.s b/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/__dt__4cXyzFv.s deleted file mode 100644 index bf9236bda4..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/__dt__4cXyzFv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_80C5C670: -/* 80C5C670 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5C674 7C 08 02 A6 */ mflr r0 -/* 80C5C678 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5C67C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80C5C680 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80C5C684 41 82 00 10 */ beq lbl_80C5C694 -/* 80C5C688 7C 80 07 35 */ extsh. r0, r4 -/* 80C5C68C 40 81 00 08 */ ble lbl_80C5C694 -/* 80C5C690 4B 67 26 AD */ bl __dl__FPv -lbl_80C5C694: -/* 80C5C694 7F E3 FB 78 */ mr r3, r31 -/* 80C5C698 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80C5C69C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5C6A0 7C 08 03 A6 */ mtlr r0 -/* 80C5C6A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5C6A8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/_delete__15daObjWaterEff_cFv.s b/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/_delete__15daObjWaterEff_cFv.s deleted file mode 100644 index 024d70e867..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/_delete__15daObjWaterEff_cFv.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_80C5C7B8: -/* 80C5C7B8 38 80 00 00 */ li r4, 0 -/* 80C5C7BC 38 E0 00 01 */ li r7, 1 -/* 80C5C7C0 7C 85 23 78 */ mr r5, r4 -/* 80C5C7C4 38 00 00 04 */ li r0, 4 -/* 80C5C7C8 7C 09 03 A6 */ mtctr r0 -lbl_80C5C7CC: -/* 80C5C7CC 39 04 05 80 */ addi r8, r4, 0x580 -/* 80C5C7D0 7C C3 40 2E */ lwzx r6, r3, r8 -/* 80C5C7D4 28 06 00 00 */ cmplwi r6, 0 -/* 80C5C7D8 41 82 00 28 */ beq lbl_80C5C800 -/* 80C5C7DC 80 06 00 F4 */ lwz r0, 0xf4(r6) -/* 80C5C7E0 60 00 00 01 */ ori r0, r0, 1 -/* 80C5C7E4 90 06 00 F4 */ stw r0, 0xf4(r6) -/* 80C5C7E8 90 E6 00 24 */ stw r7, 0x24(r6) -/* 80C5C7EC 7C C3 40 2E */ lwzx r6, r3, r8 -/* 80C5C7F0 80 06 00 F4 */ lwz r0, 0xf4(r6) -/* 80C5C7F4 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18 -/* 80C5C7F8 90 06 00 F4 */ stw r0, 0xf4(r6) -/* 80C5C7FC 7C A3 41 2E */ stwx r5, r3, r8 -lbl_80C5C800: -/* 80C5C800 38 84 00 04 */ addi r4, r4, 4 -/* 80C5C804 42 00 FF C8 */ bdnz lbl_80C5C7CC -/* 80C5C808 38 60 00 01 */ li r3, 1 -/* 80C5C80C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Create__FP10fopAc_ac_c.s deleted file mode 100644 index a0848ed9a2..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80C5C850: -/* 80C5C850 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5C854 7C 08 02 A6 */ mflr r0 -/* 80C5C858 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5C85C 4B FF FD 81 */ bl create__15daObjWaterEff_cFv -/* 80C5C860 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5C864 7C 08 03 A6 */ mtlr r0 -/* 80C5C868 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5C86C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Delete__FP15daObjWaterEff_c.s b/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Delete__FP15daObjWaterEff_c.s deleted file mode 100644 index 40986d0503..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Delete__FP15daObjWaterEff_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80C5C830: -/* 80C5C830 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5C834 7C 08 02 A6 */ mflr r0 -/* 80C5C838 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5C83C 4B FF FF 7D */ bl _delete__15daObjWaterEff_cFv -/* 80C5C840 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5C844 7C 08 03 A6 */ mtlr r0 -/* 80C5C848 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5C84C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Execute__FP15daObjWaterEff_c.s b/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Execute__FP15daObjWaterEff_c.s deleted file mode 100644 index c1f57ea6ad..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/daObjWaterEff_Execute__FP15daObjWaterEff_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80C5C810: -/* 80C5C810 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5C814 7C 08 02 A6 */ mflr r0 -/* 80C5C818 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5C81C 4B FF FE 95 */ bl execute__15daObjWaterEff_cFv -/* 80C5C820 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5C824 7C 08 03 A6 */ mtlr r0 -/* 80C5C828 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5C82C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/execute__15daObjWaterEff_cFv.s b/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/execute__15daObjWaterEff_cFv.s deleted file mode 100644 index b5fddfc27f..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/execute__15daObjWaterEff_cFv.s +++ /dev/null @@ -1,74 +0,0 @@ -lbl_80C5C6B0: -/* 80C5C6B0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80C5C6B4 7C 08 02 A6 */ mflr r0 -/* 80C5C6B8 90 01 00 34 */ stw r0, 0x34(r1) -/* 80C5C6BC 39 61 00 30 */ addi r11, r1, 0x30 -/* 80C5C6C0 4B 70 5B 0D */ bl _savegpr_25 -/* 80C5C6C4 7C 7F 1B 78 */ mr r31, r3 -/* 80C5C6C8 4B 54 EB B9 */ bl dKy_camera_water_in_status_check__Fv -/* 80C5C6CC 2C 03 00 00 */ cmpwi r3, 0 -/* 80C5C6D0 41 82 00 34 */ beq lbl_80C5C704 -/* 80C5C6D4 38 60 00 00 */ li r3, 0 -/* 80C5C6D8 38 80 00 FF */ li r4, 0xff -/* 80C5C6DC 38 00 00 04 */ li r0, 4 -/* 80C5C6E0 7C 09 03 A6 */ mtctr r0 -lbl_80C5C6E4: -/* 80C5C6E4 38 03 05 80 */ addi r0, r3, 0x580 -/* 80C5C6E8 7C BF 00 2E */ lwzx r5, r31, r0 -/* 80C5C6EC 28 05 00 00 */ cmplwi r5, 0 -/* 80C5C6F0 41 82 00 08 */ beq lbl_80C5C6F8 -/* 80C5C6F4 98 85 00 BB */ stb r4, 0xbb(r5) -lbl_80C5C6F8: -/* 80C5C6F8 38 63 00 04 */ addi r3, r3, 4 -/* 80C5C6FC 42 00 FF E8 */ bdnz lbl_80C5C6E4 -/* 80C5C700 48 00 00 30 */ b lbl_80C5C730 -lbl_80C5C704: -/* 80C5C704 38 60 00 00 */ li r3, 0 -/* 80C5C708 38 80 00 80 */ li r4, 0x80 -/* 80C5C70C 38 00 00 04 */ li r0, 4 -/* 80C5C710 7C 09 03 A6 */ mtctr r0 -lbl_80C5C714: -/* 80C5C714 38 03 05 80 */ addi r0, r3, 0x580 -/* 80C5C718 7C BF 00 2E */ lwzx r5, r31, r0 -/* 80C5C71C 28 05 00 00 */ cmplwi r5, 0 -/* 80C5C720 41 82 00 08 */ beq lbl_80C5C728 -/* 80C5C724 98 85 00 BB */ stb r4, 0xbb(r5) -lbl_80C5C728: -/* 80C5C728 38 63 00 04 */ addi r3, r3, 4 -/* 80C5C72C 42 00 FF E8 */ bdnz lbl_80C5C714 -lbl_80C5C730: -/* 80C5C730 3B 20 00 00 */ li r25, 0 -/* 80C5C734 3B C0 00 00 */ li r30, 0 -/* 80C5C738 3C 60 00 08 */ lis r3, 0x0008 /* 0x00080299@ha */ -/* 80C5C73C 3B 43 02 99 */ addi r26, r3, 0x0299 /* 0x00080299@l */ -/* 80C5C740 3C 60 80 45 */ lis r3, mAudioMgrPtr__10Z2AudioMgr@ha /* 0x80451368@ha */ -/* 80C5C744 3B 63 13 68 */ addi r27, r3, mAudioMgrPtr__10Z2AudioMgr@l /* 0x80451368@l */ -/* 80C5C748 3C 60 80 C6 */ lis r3, lit_3637@ha /* 0x80C5C880@ha */ -/* 80C5C74C 3B 83 C8 80 */ addi r28, r3, lit_3637@l /* 0x80C5C880@l */ -/* 80C5C750 3C 60 80 C6 */ lis r3, lit_3710@ha /* 0x80C5C89C@ha */ -/* 80C5C754 3B A3 C8 9C */ addi r29, r3, lit_3710@l /* 0x80C5C89C@l */ -lbl_80C5C758: -/* 80C5C758 93 41 00 08 */ stw r26, 8(r1) -/* 80C5C75C 80 7B 00 00 */ lwz r3, 0(r27) -/* 80C5C760 38 81 00 08 */ addi r4, r1, 8 -/* 80C5C764 38 BE 05 68 */ addi r5, r30, 0x568 -/* 80C5C768 7C BF 2A 14 */ add r5, r31, r5 -/* 80C5C76C 38 C0 00 00 */ li r6, 0 -/* 80C5C770 38 E0 00 00 */ li r7, 0 -/* 80C5C774 C0 3C 00 00 */ lfs f1, 0(r28) -/* 80C5C778 FC 40 08 90 */ fmr f2, f1 -/* 80C5C77C C0 7D 00 00 */ lfs f3, 0(r29) -/* 80C5C780 FC 80 18 90 */ fmr f4, f3 -/* 80C5C784 39 00 00 00 */ li r8, 0 -/* 80C5C788 4B 64 FD 85 */ bl seStartLevel__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc -/* 80C5C78C 3B 39 00 01 */ addi r25, r25, 1 -/* 80C5C790 2C 19 00 02 */ cmpwi r25, 2 -/* 80C5C794 3B DE 00 0C */ addi r30, r30, 0xc -/* 80C5C798 41 80 FF C0 */ blt lbl_80C5C758 -/* 80C5C79C 38 60 00 01 */ li r3, 1 -/* 80C5C7A0 39 61 00 30 */ addi r11, r1, 0x30 -/* 80C5C7A4 4B 70 5A 75 */ bl _restgpr_25 -/* 80C5C7A8 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80C5C7AC 7C 08 03 A6 */ mtlr r0 -/* 80C5C7B0 38 21 00 30 */ addi r1, r1, 0x30 -/* 80C5C7B4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/func_80C5C5DC.s b/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/func_80C5C5DC.s deleted file mode 100644 index abe5aa7f49..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff/func_80C5C5DC.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_80C5C5DC: -/* 80C5C5DC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5C5E0 7C 08 02 A6 */ mflr r0 -/* 80C5C5E4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5C5E8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80C5C5EC 93 C1 00 08 */ stw r30, 8(r1) -/* 80C5C5F0 7C 7F 1B 78 */ mr r31, r3 -/* 80C5C5F4 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80C5C5F8 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80C5C5FC 40 82 00 40 */ bne lbl_80C5C63C -/* 80C5C600 7F E0 FB 79 */ or. r0, r31, r31 -/* 80C5C604 41 82 00 2C */ beq lbl_80C5C630 -/* 80C5C608 7C 1E 03 78 */ mr r30, r0 -/* 80C5C60C 4B 3B C5 59 */ bl __ct__10fopAc_ac_cFv -/* 80C5C610 38 7E 05 68 */ addi r3, r30, 0x568 -/* 80C5C614 3C 80 80 C6 */ lis r4, __ct__4cXyzFv@ha /* 0x80C5C6AC@ha */ -/* 80C5C618 38 84 C6 AC */ addi r4, r4, __ct__4cXyzFv@l /* 0x80C5C6AC@l */ -/* 80C5C61C 3C A0 80 C6 */ lis r5, __dt__4cXyzFv@ha /* 0x80C5C670@ha */ -/* 80C5C620 38 A5 C6 70 */ addi r5, r5, __dt__4cXyzFv@l /* 0x80C5C670@l */ -/* 80C5C624 38 C0 00 0C */ li r6, 0xc -/* 80C5C628 38 E0 00 02 */ li r7, 2 -/* 80C5C62C 4B 70 57 35 */ bl __construct_array -lbl_80C5C630: -/* 80C5C630 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80C5C634 60 00 00 08 */ ori r0, r0, 8 -/* 80C5C638 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80C5C63C: -/* 80C5C63C 7F E3 FB 78 */ mr r3, r31 -/* 80C5C640 4B FF FE B9 */ bl Create__15daObjWaterEff_cFv -/* 80C5C644 2C 03 00 00 */ cmpwi r3, 0 -/* 80C5C648 40 82 00 0C */ bne lbl_80C5C654 -/* 80C5C64C 38 60 00 05 */ li r3, 5 -/* 80C5C650 48 00 00 08 */ b lbl_80C5C658 -lbl_80C5C654: -/* 80C5C654 38 60 00 04 */ li r3, 4 -lbl_80C5C658: -/* 80C5C658 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80C5C65C 83 C1 00 08 */ lwz r30, 8(r1) -/* 80C5C660 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5C664 7C 08 03 A6 */ mtlr r0 -/* 80C5C668 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5C66C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/Create__11daTagMist_cFv.s b/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/Create__11daTagMist_cFv.s deleted file mode 100644 index 4c51652614..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/Create__11daTagMist_cFv.s +++ /dev/null @@ -1,55 +0,0 @@ -lbl_8048F370: -/* 8048F370 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048F374 7C 08 02 A6 */ mflr r0 -/* 8048F378 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048F37C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8048F380 7C 7F 1B 78 */ mr r31, r3 -/* 8048F384 3C 80 80 49 */ lis r4, lit_3678@ha /* 0x8048F700@ha */ -/* 8048F388 38 84 F7 00 */ addi r4, r4, lit_3678@l /* 0x8048F700@l */ -/* 8048F38C C0 44 00 00 */ lfs f2, 0(r4) -/* 8048F390 C0 03 04 EC */ lfs f0, 0x4ec(r3) -/* 8048F394 EC 02 00 32 */ fmuls f0, f2, f0 -/* 8048F398 D0 03 05 70 */ stfs f0, 0x570(r3) -/* 8048F39C C0 03 04 F4 */ lfs f0, 0x4f4(r3) -/* 8048F3A0 EC 02 00 32 */ fmuls f0, f2, f0 -/* 8048F3A4 D0 03 05 78 */ stfs f0, 0x578(r3) -/* 8048F3A8 C0 24 00 04 */ lfs f1, 4(r4) -/* 8048F3AC C0 03 04 EC */ lfs f0, 0x4ec(r3) -/* 8048F3B0 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8048F3B4 D0 03 05 7C */ stfs f0, 0x57c(r3) -/* 8048F3B8 C0 03 04 F4 */ lfs f0, 0x4f4(r3) -/* 8048F3BC EC 02 00 32 */ fmuls f0, f2, f0 -/* 8048F3C0 D0 03 05 84 */ stfs f0, 0x584(r3) -/* 8048F3C4 C0 03 04 EC */ lfs f0, 0x4ec(r3) -/* 8048F3C8 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8048F3CC D0 03 05 88 */ stfs f0, 0x588(r3) -/* 8048F3D0 C0 03 04 F4 */ lfs f0, 0x4f4(r3) -/* 8048F3D4 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8048F3D8 D0 03 05 90 */ stfs f0, 0x590(r3) -/* 8048F3DC C0 03 04 EC */ lfs f0, 0x4ec(r3) -/* 8048F3E0 EC 02 00 32 */ fmuls f0, f2, f0 -/* 8048F3E4 D0 03 05 94 */ stfs f0, 0x594(r3) -/* 8048F3E8 C0 03 04 F4 */ lfs f0, 0x4f4(r3) -/* 8048F3EC EC 01 00 32 */ fmuls f0, f1, f0 -/* 8048F3F0 D0 03 05 9C */ stfs f0, 0x59c(r3) -/* 8048F3F4 C0 04 00 08 */ lfs f0, 8(r4) -/* 8048F3F8 D0 03 05 98 */ stfs f0, 0x598(r3) -/* 8048F3FC D0 03 05 8C */ stfs f0, 0x58c(r3) -/* 8048F400 D0 03 05 80 */ stfs f0, 0x580(r3) -/* 8048F404 D0 03 05 74 */ stfs f0, 0x574(r3) -/* 8048F408 4B FF FF 09 */ bl isMySw__11daTagMist_cFv -/* 8048F40C 2C 03 00 00 */ cmpwi r3, 0 -/* 8048F410 41 82 00 14 */ beq lbl_8048F424 -/* 8048F414 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 8048F418 54 00 46 BE */ rlwinm r0, r0, 8, 0x1a, 0x1f -/* 8048F41C 3C 60 80 45 */ lis r3, mPlayerNo__11daTagMist_c+0x0@ha /* 0x80450DC0@ha */ -/* 8048F420 98 03 0D C0 */ stb r0, mPlayerNo__11daTagMist_c+0x0@l(r3) /* 0x80450DC0@l */ -lbl_8048F424: -/* 8048F424 38 00 00 00 */ li r0, 0 -/* 8048F428 98 1F 05 A0 */ stb r0, 0x5a0(r31) -/* 8048F42C 38 60 00 01 */ li r3, 1 -/* 8048F430 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8048F434 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048F438 7C 08 03 A6 */ mtlr r0 -/* 8048F43C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048F440 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/__dt__4cXyzFv.s b/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/__dt__4cXyzFv.s deleted file mode 100644 index 11909032eb..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/__dt__4cXyzFv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8048F518: -/* 8048F518 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048F51C 7C 08 02 A6 */ mflr r0 -/* 8048F520 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048F524 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8048F528 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8048F52C 41 82 00 10 */ beq lbl_8048F53C -/* 8048F530 7C 80 07 35 */ extsh. r0, r4 -/* 8048F534 40 81 00 08 */ ble lbl_8048F53C -/* 8048F538 4B E3 F8 05 */ bl __dl__FPv -lbl_8048F53C: -/* 8048F53C 7F E3 FB 78 */ mr r3, r31 -/* 8048F540 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8048F544 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048F548 7C 08 03 A6 */ mtlr r0 -/* 8048F54C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048F550 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Create__FP10fopAc_ac_c.s deleted file mode 100644 index aad8f156a1..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8048F6D8: -/* 8048F6D8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048F6DC 7C 08 02 A6 */ mflr r0 -/* 8048F6E0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048F6E4 4B FF FD 61 */ bl create__11daTagMist_cFv -/* 8048F6E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048F6EC 7C 08 03 A6 */ mtlr r0 -/* 8048F6F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048F6F4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Delete__FP11daTagMist_c.s b/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Delete__FP11daTagMist_c.s deleted file mode 100644 index 109ee8cc8d..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Delete__FP11daTagMist_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8048F6B8: -/* 8048F6B8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048F6BC 7C 08 02 A6 */ mflr r0 -/* 8048F6C0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048F6C4 4B FF FF CD */ bl _delete__11daTagMist_cFv -/* 8048F6C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048F6CC 7C 08 03 A6 */ mtlr r0 -/* 8048F6D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048F6D4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Execute__FP11daTagMist_c.s b/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Execute__FP11daTagMist_c.s deleted file mode 100644 index 88e80d1b58..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/daTagMist_Execute__FP11daTagMist_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8048F698: -/* 8048F698 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048F69C 7C 08 02 A6 */ mflr r0 -/* 8048F6A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048F6A4 4B FF FE B5 */ bl execute__11daTagMist_cFv -/* 8048F6A8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048F6AC 7C 08 03 A6 */ mtlr r0 -/* 8048F6B0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048F6B4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/execute__11daTagMist_cFv.s b/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/execute__11daTagMist_cFv.s deleted file mode 100644 index f7259cf39b..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/execute__11daTagMist_cFv.s +++ /dev/null @@ -1,83 +0,0 @@ -lbl_8048F558: -/* 8048F558 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8048F55C 7C 08 02 A6 */ mflr r0 -/* 8048F560 90 01 00 24 */ stw r0, 0x24(r1) -/* 8048F564 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8048F568 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8048F56C 7C 7F 1B 78 */ mr r31, r3 -/* 8048F570 A0 03 05 A2 */ lhz r0, 0x5a2(r3) -/* 8048F574 54 04 06 3E */ clrlwi r4, r0, 0x18 -/* 8048F578 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8048F57C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8048F580 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 8048F584 7C 05 07 74 */ extsb r5, r0 -/* 8048F588 4B BA 5D D9 */ bl isSwitch__10dSv_info_cCFii -/* 8048F58C 2C 03 00 00 */ cmpwi r3, 0 -/* 8048F590 41 82 00 0C */ beq lbl_8048F59C -/* 8048F594 38 60 00 01 */ li r3, 1 -/* 8048F598 48 00 00 E0 */ b lbl_8048F678 -lbl_8048F59C: -/* 8048F59C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8048F5A0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8048F5A4 80 63 5D AC */ lwz r3, 0x5dac(r3) -/* 8048F5A8 C0 03 04 D0 */ lfs f0, 0x4d0(r3) -/* 8048F5AC D0 01 00 08 */ stfs f0, 8(r1) -/* 8048F5B0 C0 03 04 D4 */ lfs f0, 0x4d4(r3) -/* 8048F5B4 D0 01 00 0C */ stfs f0, 0xc(r1) -/* 8048F5B8 C0 03 04 D8 */ lfs f0, 0x4d8(r3) -/* 8048F5BC D0 01 00 10 */ stfs f0, 0x10(r1) -/* 8048F5C0 38 61 00 08 */ addi r3, r1, 8 -/* 8048F5C4 38 9F 04 A8 */ addi r4, r31, 0x4a8 -/* 8048F5C8 7C 65 1B 78 */ mr r5, r3 -/* 8048F5CC 4B EB 7A E9 */ bl PSVECSubtract -/* 8048F5D0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8048F5D4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8048F5D8 A8 1F 04 DE */ lha r0, 0x4de(r31) -/* 8048F5DC 7C 00 00 D0 */ neg r0, r0 -/* 8048F5E0 7C 04 07 34 */ extsh r4, r0 -/* 8048F5E4 4B B7 CD F9 */ bl mDoMtx_YrotS__FPA4_fs -/* 8048F5E8 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8048F5EC 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8048F5F0 38 81 00 08 */ addi r4, r1, 8 -/* 8048F5F4 7C 85 23 78 */ mr r5, r4 -/* 8048F5F8 4B EB 77 75 */ bl PSMTXMultVec -/* 8048F5FC 38 00 00 00 */ li r0, 0 -/* 8048F600 C0 1F 05 70 */ lfs f0, 0x570(r31) -/* 8048F604 C0 41 00 08 */ lfs f2, 8(r1) -/* 8048F608 FC 00 10 40 */ fcmpo cr0, f0, f2 -/* 8048F60C 40 80 00 30 */ bge lbl_8048F63C -/* 8048F610 C0 1F 05 78 */ lfs f0, 0x578(r31) -/* 8048F614 C0 21 00 10 */ lfs f1, 0x10(r1) -/* 8048F618 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8048F61C 40 80 00 20 */ bge lbl_8048F63C -/* 8048F620 C0 1F 05 88 */ lfs f0, 0x588(r31) -/* 8048F624 FC 00 10 40 */ fcmpo cr0, f0, f2 -/* 8048F628 40 81 00 14 */ ble lbl_8048F63C -/* 8048F62C C0 1F 05 90 */ lfs f0, 0x590(r31) -/* 8048F630 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 8048F634 40 81 00 08 */ ble lbl_8048F63C -/* 8048F638 38 00 00 01 */ li r0, 1 -lbl_8048F63C: -/* 8048F63C 54 1E 06 3F */ clrlwi. r30, r0, 0x18 -/* 8048F640 41 82 00 30 */ beq lbl_8048F670 -/* 8048F644 88 1F 05 A0 */ lbz r0, 0x5a0(r31) -/* 8048F648 28 00 00 00 */ cmplwi r0, 0 -/* 8048F64C 40 82 00 24 */ bne lbl_8048F670 -/* 8048F650 7F E3 FB 78 */ mr r3, r31 -/* 8048F654 4B FF FC 05 */ bl offSw__11daTagMist_cFv -/* 8048F658 7F E3 FB 78 */ mr r3, r31 -/* 8048F65C 4B FF FC 69 */ bl onMySw__11daTagMist_cFv -/* 8048F660 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 8048F664 54 00 46 BE */ rlwinm r0, r0, 8, 0x1a, 0x1f -/* 8048F668 3C 60 80 45 */ lis r3, mPlayerNo__11daTagMist_c+0x0@ha /* 0x80450DC0@ha */ -/* 8048F66C 98 03 0D C0 */ stb r0, mPlayerNo__11daTagMist_c+0x0@l(r3) /* 0x80450DC0@l */ -lbl_8048F670: -/* 8048F670 9B DF 05 A0 */ stb r30, 0x5a0(r31) -/* 8048F674 38 60 00 01 */ li r3, 1 -lbl_8048F678: -/* 8048F678 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8048F67C 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8048F680 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8048F684 7C 08 03 A6 */ mtlr r0 -/* 8048F688 38 21 00 20 */ addi r1, r1, 0x20 -/* 8048F68C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/func_8048F444.s b/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/func_8048F444.s deleted file mode 100644 index 54c7b503cb..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/func_8048F444.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_8048F444: -/* 8048F444 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048F448 7C 08 02 A6 */ mflr r0 -/* 8048F44C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048F450 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8048F454 93 C1 00 08 */ stw r30, 8(r1) -/* 8048F458 7C 7F 1B 78 */ mr r31, r3 -/* 8048F45C 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 8048F460 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 8048F464 40 82 00 40 */ bne lbl_8048F4A4 -/* 8048F468 7F E0 FB 79 */ or. r0, r31, r31 -/* 8048F46C 41 82 00 2C */ beq lbl_8048F498 -/* 8048F470 7C 1E 03 78 */ mr r30, r0 -/* 8048F474 4B B8 96 F1 */ bl __ct__10fopAc_ac_cFv -/* 8048F478 38 7E 05 70 */ addi r3, r30, 0x570 -/* 8048F47C 3C 80 80 49 */ lis r4, __ct__4cXyzFv@ha /* 0x8048F554@ha */ -/* 8048F480 38 84 F5 54 */ addi r4, r4, __ct__4cXyzFv@l /* 0x8048F554@l */ -/* 8048F484 3C A0 80 49 */ lis r5, __dt__4cXyzFv@ha /* 0x8048F518@ha */ -/* 8048F488 38 A5 F5 18 */ addi r5, r5, __dt__4cXyzFv@l /* 0x8048F518@l */ -/* 8048F48C 38 C0 00 0C */ li r6, 0xc -/* 8048F490 38 E0 00 04 */ li r7, 4 -/* 8048F494 4B ED 28 CD */ bl __construct_array -lbl_8048F498: -/* 8048F498 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 8048F49C 60 00 00 08 */ ori r0, r0, 8 -/* 8048F4A0 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_8048F4A4: -/* 8048F4A4 88 1F 05 A1 */ lbz r0, 0x5a1(r31) -/* 8048F4A8 28 00 00 00 */ cmplwi r0, 0 -/* 8048F4AC 40 82 00 38 */ bne lbl_8048F4E4 -/* 8048F4B0 38 00 00 01 */ li r0, 1 -/* 8048F4B4 98 1F 05 A1 */ stb r0, 0x5a1(r31) -/* 8048F4B8 A8 1F 04 B4 */ lha r0, 0x4b4(r31) -/* 8048F4BC B0 1F 05 A2 */ sth r0, 0x5a2(r31) -/* 8048F4C0 A8 1F 04 B8 */ lha r0, 0x4b8(r31) -/* 8048F4C4 B0 1F 05 A4 */ sth r0, 0x5a4(r31) -/* 8048F4C8 38 00 00 00 */ li r0, 0 -/* 8048F4CC B0 1F 04 B8 */ sth r0, 0x4b8(r31) -/* 8048F4D0 B0 1F 04 B4 */ sth r0, 0x4b4(r31) -/* 8048F4D4 B0 1F 04 E0 */ sth r0, 0x4e0(r31) -/* 8048F4D8 B0 1F 04 DC */ sth r0, 0x4dc(r31) -/* 8048F4DC B0 1F 04 E8 */ sth r0, 0x4e8(r31) -/* 8048F4E0 B0 1F 04 E4 */ sth r0, 0x4e4(r31) -lbl_8048F4E4: -/* 8048F4E4 7F E3 FB 78 */ mr r3, r31 -/* 8048F4E8 4B FF FE 89 */ bl Create__11daTagMist_cFv -/* 8048F4EC 2C 03 00 00 */ cmpwi r3, 0 -/* 8048F4F0 40 82 00 0C */ bne lbl_8048F4FC -/* 8048F4F4 38 60 00 05 */ li r3, 5 -/* 8048F4F8 48 00 00 08 */ b lbl_8048F500 -lbl_8048F4FC: -/* 8048F4FC 38 60 00 04 */ li r3, 4 -lbl_8048F500: -/* 8048F500 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8048F504 83 C1 00 08 */ lwz r30, 8(r1) -/* 8048F508 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048F50C 7C 08 03 A6 */ mtlr r0 -/* 8048F510 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048F514 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/isMySw__11daTagMist_cFv.s b/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/isMySw__11daTagMist_cFv.s deleted file mode 100644 index a7c60a4b19..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/isMySw__11daTagMist_cFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_8048F310: -/* 8048F310 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048F314 7C 08 02 A6 */ mflr r0 -/* 8048F318 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048F31C 7C 65 1B 78 */ mr r5, r3 -/* 8048F320 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 8048F324 54 04 06 3E */ clrlwi r4, r0, 0x18 -/* 8048F328 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f -/* 8048F32C 28 00 00 FF */ cmplwi r0, 0xff -/* 8048F330 41 82 00 2C */ beq lbl_8048F35C -/* 8048F334 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8048F338 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8048F33C 7C 84 02 14 */ add r4, r4, r0 -/* 8048F340 88 05 04 BA */ lbz r0, 0x4ba(r5) -/* 8048F344 7C 05 07 74 */ extsb r5, r0 -/* 8048F348 4B BA 60 19 */ bl isSwitch__10dSv_info_cCFii -/* 8048F34C 2C 03 00 00 */ cmpwi r3, 0 -/* 8048F350 41 82 00 0C */ beq lbl_8048F35C -/* 8048F354 38 60 00 01 */ li r3, 1 -/* 8048F358 48 00 00 08 */ b lbl_8048F360 -lbl_8048F35C: -/* 8048F35C 38 60 00 00 */ li r3, 0 -lbl_8048F360: -/* 8048F360 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048F364 7C 08 03 A6 */ mtlr r0 -/* 8048F368 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048F36C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/offSw__11daTagMist_cFv.s b/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/offSw__11daTagMist_cFv.s deleted file mode 100644 index ecdc4442cd..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/offSw__11daTagMist_cFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_8048F258: -/* 8048F258 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8048F25C 7C 08 02 A6 */ mflr r0 -/* 8048F260 90 01 00 24 */ stw r0, 0x24(r1) -/* 8048F264 39 61 00 20 */ addi r11, r1, 0x20 -/* 8048F268 4B ED 2F 6D */ bl _savegpr_27 -/* 8048F26C 7C 7B 1B 78 */ mr r27, r3 -/* 8048F270 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 8048F274 54 1E 06 3E */ clrlwi r30, r0, 0x18 -/* 8048F278 54 1D 86 3E */ rlwinm r29, r0, 0x10, 0x18, 0x1f -/* 8048F27C 3B 80 00 00 */ li r28, 0 -/* 8048F280 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8048F284 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8048F288 48 00 00 1C */ b lbl_8048F2A4 -lbl_8048F28C: -/* 8048F28C 7F E3 FB 78 */ mr r3, r31 -/* 8048F290 7C 9E E2 14 */ add r4, r30, r28 -/* 8048F294 88 1B 04 BA */ lbz r0, 0x4ba(r27) -/* 8048F298 7C 05 07 74 */ extsb r5, r0 -/* 8048F29C 4B BA 60 15 */ bl offSwitch__10dSv_info_cFii -/* 8048F2A0 3B 9C 00 01 */ addi r28, r28, 1 -lbl_8048F2A4: -/* 8048F2A4 7C 1C E8 00 */ cmpw r28, r29 -/* 8048F2A8 41 80 FF E4 */ blt lbl_8048F28C -/* 8048F2AC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8048F2B0 4B ED 2F 71 */ bl _restgpr_27 -/* 8048F2B4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8048F2B8 7C 08 03 A6 */ mtlr r0 -/* 8048F2BC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8048F2C0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/onMySw__11daTagMist_cFv.s b/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/onMySw__11daTagMist_cFv.s deleted file mode 100644 index b0b780f313..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mist/d_a_tag_mist/onMySw__11daTagMist_cFv.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_8048F2C4: -/* 8048F2C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8048F2C8 7C 08 02 A6 */ mflr r0 -/* 8048F2CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8048F2D0 7C 65 1B 78 */ mr r5, r3 -/* 8048F2D4 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 8048F2D8 54 04 06 3E */ clrlwi r4, r0, 0x18 -/* 8048F2DC 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f -/* 8048F2E0 28 00 00 FF */ cmplwi r0, 0xff -/* 8048F2E4 41 82 00 1C */ beq lbl_8048F300 -/* 8048F2E8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8048F2EC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8048F2F0 7C 84 02 14 */ add r4, r4, r0 -/* 8048F2F4 88 05 04 BA */ lbz r0, 0x4ba(r5) -/* 8048F2F8 7C 05 07 74 */ extsb r5, r0 -/* 8048F2FC 4B BA 5F 05 */ bl onSwitch__10dSv_info_cFii -lbl_8048F300: -/* 8048F300 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8048F304 7C 08 03 A6 */ mtlr r0 -/* 8048F308 38 21 00 10 */ addi r1, r1, 0x10 -/* 8048F30C 4E 80 00 20 */ blr From 511bec205927cf8d86c5b6ac03a597ed8f598c1d Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Fri, 30 Jun 2023 21:01:00 -0700 Subject: [PATCH 21/35] d_a_obj_crystal OK --- .../CheckCreateHeap__FP10fopAc_ac_c.s | 9 - .../CreateHeap__14daObjCrystal_cFv.s | 49 --- .../Create__14daObjCrystal_cFv.s | 85 ---- .../_delete__14daObjCrystal_cFv.s | 29 -- .../daObjCrystal_Create__FP14daObjCrystal_c.s | 9 - .../daObjCrystal_Delete__FP14daObjCrystal_c.s | 9 - .../daObjCrystal_Draw__FP14daObjCrystal_c.s | 9 - ...daObjCrystal_Execute__FP14daObjCrystal_c.s | 9 - .../draw__14daObjCrystal_cFv.s | 37 -- .../execute__14daObjCrystal_cFv.s | 10 - .../d_a_obj_crystal/func_80BD6664.s | 51 --- .../initBaseMtx__14daObjCrystal_cFv.s | 23 - .../setBaseMtx__14daObjCrystal_cFv.s | 25 -- .../d/a/obj/d_a_obj_crystal/d_a_obj_crystal.h | 19 +- .../a/obj/d_a_obj_crystal/d_a_obj_crystal.cpp | 412 ++++++------------ 15 files changed, 144 insertions(+), 641 deletions(-) delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CheckCreateHeap__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CreateHeap__14daObjCrystal_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/Create__14daObjCrystal_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/_delete__14daObjCrystal_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Create__FP14daObjCrystal_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Delete__FP14daObjCrystal_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Draw__FP14daObjCrystal_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Execute__FP14daObjCrystal_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/draw__14daObjCrystal_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/execute__14daObjCrystal_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/func_80BD6664.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/initBaseMtx__14daObjCrystal_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/setBaseMtx__14daObjCrystal_cFv.s diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CheckCreateHeap__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CheckCreateHeap__FP10fopAc_ac_c.s deleted file mode 100644 index 63d15acfce..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CheckCreateHeap__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BD6398: -/* 80BD6398 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BD639C 7C 08 02 A6 */ mflr r0 -/* 80BD63A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BD63A4 48 00 02 0D */ bl CreateHeap__14daObjCrystal_cFv -/* 80BD63A8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BD63AC 7C 08 03 A6 */ mtlr r0 -/* 80BD63B0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BD63B4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CreateHeap__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CreateHeap__14daObjCrystal_cFv.s deleted file mode 100644 index ea22b227e7..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CreateHeap__14daObjCrystal_cFv.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_80BD65B0: -/* 80BD65B0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80BD65B4 7C 08 02 A6 */ mflr r0 -/* 80BD65B8 90 01 00 34 */ stw r0, 0x34(r1) -/* 80BD65BC 39 61 00 30 */ addi r11, r1, 0x30 -/* 80BD65C0 4B 78 BC 09 */ bl _savegpr_24 -/* 80BD65C4 7C 78 1B 78 */ mr r24, r3 -/* 80BD65C8 3C 60 80 BD */ lis r3, lit_3693@ha /* 0x80BD68BC@ha */ -/* 80BD65CC 38 83 68 BC */ addi r4, r3, lit_3693@l /* 0x80BD68BC@l */ -/* 80BD65D0 3B 20 00 00 */ li r25, 0 -/* 80BD65D4 3B E0 00 00 */ li r31, 0 -/* 80BD65D8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80BD65DC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80BD65E0 3F 43 00 02 */ addis r26, r3, 2 -/* 80BD65E4 3C 60 80 BD */ lis r3, l_arcName@ha /* 0x80BD68F0@ha */ -/* 80BD65E8 3B 63 68 F0 */ addi r27, r3, l_arcName@l /* 0x80BD68F0@l */ -/* 80BD65EC 3B 84 00 04 */ addi r28, r4, 4 -/* 80BD65F0 3B A4 00 0C */ addi r29, r4, 0xc -/* 80BD65F4 3B C4 00 14 */ addi r30, r4, 0x14 -/* 80BD65F8 3B 5A C2 F8 */ addi r26, r26, -15624 -lbl_80BD65FC: -/* 80BD65FC 80 7B 00 00 */ lwz r3, 0(r27) -/* 80BD6600 7C 9C F8 2E */ lwzx r4, r28, r31 -/* 80BD6604 7F 45 D3 78 */ mr r5, r26 -/* 80BD6608 38 C0 00 80 */ li r6, 0x80 -/* 80BD660C 4B 46 5C E1 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 80BD6610 7C 9D F8 2E */ lwzx r4, r29, r31 -/* 80BD6614 7C BE F8 2E */ lwzx r5, r30, r31 -/* 80BD6618 4B 43 E6 3D */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl -/* 80BD661C 38 1F 05 70 */ addi r0, r31, 0x570 -/* 80BD6620 7C 78 01 2E */ stwx r3, r24, r0 -/* 80BD6624 7C 18 00 2E */ lwzx r0, r24, r0 -/* 80BD6628 28 00 00 00 */ cmplwi r0, 0 -/* 80BD662C 40 82 00 0C */ bne lbl_80BD6638 -/* 80BD6630 38 60 00 00 */ li r3, 0 -/* 80BD6634 48 00 00 18 */ b lbl_80BD664C -lbl_80BD6638: -/* 80BD6638 3B 39 00 01 */ addi r25, r25, 1 -/* 80BD663C 2C 19 00 02 */ cmpwi r25, 2 -/* 80BD6640 3B FF 00 04 */ addi r31, r31, 4 -/* 80BD6644 41 80 FF B8 */ blt lbl_80BD65FC -/* 80BD6648 38 60 00 01 */ li r3, 1 -lbl_80BD664C: -/* 80BD664C 39 61 00 30 */ addi r11, r1, 0x30 -/* 80BD6650 4B 78 BB C5 */ bl _restgpr_24 -/* 80BD6654 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80BD6658 7C 08 03 A6 */ mtlr r0 -/* 80BD665C 38 21 00 30 */ addi r1, r1, 0x30 -/* 80BD6660 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/Create__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/Create__14daObjCrystal_cFv.s deleted file mode 100644 index 23d746c98a..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/Create__14daObjCrystal_cFv.s +++ /dev/null @@ -1,85 +0,0 @@ -lbl_80BD6470: -/* 80BD6470 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80BD6474 7C 08 02 A6 */ mflr r0 -/* 80BD6478 90 01 00 34 */ stw r0, 0x34(r1) -/* 80BD647C 39 61 00 30 */ addi r11, r1, 0x30 -/* 80BD6480 4B 78 BD 59 */ bl _savegpr_28 -/* 80BD6484 7C 7F 1B 78 */ mr r31, r3 -/* 80BD6488 4B FF FF 31 */ bl initBaseMtx__14daObjCrystal_cFv -/* 80BD648C 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BD6490 38 03 00 24 */ addi r0, r3, 0x24 -/* 80BD6494 90 1F 05 04 */ stw r0, 0x504(r31) -/* 80BD6498 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80BD649C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80BD64A0 80 63 5D 3C */ lwz r3, 0x5d3c(r3) -/* 80BD64A4 38 80 00 00 */ li r4, 0 -/* 80BD64A8 90 81 00 08 */ stw r4, 8(r1) -/* 80BD64AC 38 00 FF FF */ li r0, -1 -/* 80BD64B0 90 01 00 0C */ stw r0, 0xc(r1) -/* 80BD64B4 90 81 00 10 */ stw r4, 0x10(r1) -/* 80BD64B8 90 81 00 14 */ stw r4, 0x14(r1) -/* 80BD64BC 90 81 00 18 */ stw r4, 0x18(r1) -/* 80BD64C0 38 80 00 00 */ li r4, 0 -/* 80BD64C4 3C A0 00 01 */ lis r5, 0x0001 /* 0x00008BED@ha */ -/* 80BD64C8 38 A5 8B ED */ addi r5, r5, 0x8BED /* 0x00008BED@l */ -/* 80BD64CC 38 DF 04 D0 */ addi r6, r31, 0x4d0 -/* 80BD64D0 38 E0 00 00 */ li r7, 0 -/* 80BD64D4 39 1F 04 B4 */ addi r8, r31, 0x4b4 -/* 80BD64D8 39 3F 04 EC */ addi r9, r31, 0x4ec -/* 80BD64DC 39 40 00 FF */ li r10, 0xff -/* 80BD64E0 3D 60 80 BD */ lis r11, lit_3693@ha /* 0x80BD68BC@ha */ -/* 80BD64E4 C0 2B 68 BC */ lfs f1, lit_3693@l(r11) /* 0x80BD68BC@l */ -/* 80BD64E8 4B 47 65 A9 */ bl set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf -/* 80BD64EC 90 7F 05 78 */ stw r3, 0x578(r31) -/* 80BD64F0 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */ -/* 80BD64F4 38 03 FF FF */ addi r0, r3, 0xFFFF /* 0x0000FFFF@l */ -/* 80BD64F8 B0 1F 05 7C */ sth r0, 0x57c(r31) -/* 80BD64FC 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BD6500 80 63 00 04 */ lwz r3, 4(r3) -/* 80BD6504 83 A3 00 54 */ lwz r29, 0x54(r3) -/* 80BD6508 3B 80 00 00 */ li r28, 0 -/* 80BD650C 3C 60 80 BD */ lis r3, d_a_obj_crystal__stringBase0@ha /* 0x80BD68D8@ha */ -/* 80BD6510 3B C3 68 D8 */ addi r30, r3, d_a_obj_crystal__stringBase0@l /* 0x80BD68D8@l */ -/* 80BD6514 48 00 00 28 */ b lbl_80BD653C -lbl_80BD6518: -/* 80BD6518 7F A3 EB 78 */ mr r3, r29 -/* 80BD651C 7F 84 E3 78 */ mr r4, r28 -/* 80BD6520 4B 70 85 D9 */ bl getName__10JUTNameTabCFUs -/* 80BD6524 38 9E 00 09 */ addi r4, r30, 9 -/* 80BD6528 4B 79 24 6D */ bl strcmp -/* 80BD652C 2C 03 00 00 */ cmpwi r3, 0 -/* 80BD6530 40 82 00 08 */ bne lbl_80BD6538 -/* 80BD6534 B3 9F 05 7C */ sth r28, 0x57c(r31) -lbl_80BD6538: -/* 80BD6538 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80BD653C: -/* 80BD653C 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BD6540 80 83 00 04 */ lwz r4, 4(r3) -/* 80BD6544 A0 84 00 2C */ lhz r4, 0x2c(r4) -/* 80BD6548 57 80 04 3E */ clrlwi r0, r28, 0x10 -/* 80BD654C 7C 00 20 40 */ cmplw r0, r4 -/* 80BD6550 41 80 FF C8 */ blt lbl_80BD6518 -/* 80BD6554 81 83 00 00 */ lwz r12, 0(r3) -/* 80BD6558 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 80BD655C 7D 89 03 A6 */ mtctr r12 -/* 80BD6560 4E 80 04 21 */ bctrl -/* 80BD6564 80 BF 05 78 */ lwz r5, 0x578(r31) -/* 80BD6568 28 05 00 00 */ cmplwi r5, 0 -/* 80BD656C 41 82 00 28 */ beq lbl_80BD6594 -/* 80BD6570 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80BD6574 80 63 00 84 */ lwz r3, 0x84(r3) -/* 80BD6578 80 63 00 0C */ lwz r3, 0xc(r3) -/* 80BD657C A0 1F 05 7C */ lhz r0, 0x57c(r31) -/* 80BD6580 1C 00 00 30 */ mulli r0, r0, 0x30 -/* 80BD6584 7C 63 02 14 */ add r3, r3, r0 -/* 80BD6588 38 85 00 68 */ addi r4, r5, 0x68 -/* 80BD658C 38 A5 00 A4 */ addi r5, r5, 0xa4 -/* 80BD6590 4B 6A A2 51 */ bl func_802807E0 -lbl_80BD6594: -/* 80BD6594 38 60 00 01 */ li r3, 1 -/* 80BD6598 39 61 00 30 */ addi r11, r1, 0x30 -/* 80BD659C 4B 78 BC 89 */ bl _restgpr_28 -/* 80BD65A0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80BD65A4 7C 08 03 A6 */ mtlr r0 -/* 80BD65A8 38 21 00 30 */ addi r1, r1, 0x30 -/* 80BD65AC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/_delete__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/_delete__14daObjCrystal_cFv.s deleted file mode 100644 index 1b88d936b9..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/_delete__14daObjCrystal_cFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_80BD67C8: -/* 80BD67C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BD67CC 7C 08 02 A6 */ mflr r0 -/* 80BD67D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BD67D4 80 83 05 78 */ lwz r4, 0x578(r3) -/* 80BD67D8 28 04 00 00 */ cmplwi r4, 0 -/* 80BD67DC 41 82 00 30 */ beq lbl_80BD680C -/* 80BD67E0 80 04 00 F4 */ lwz r0, 0xf4(r4) -/* 80BD67E4 60 00 00 01 */ ori r0, r0, 1 -/* 80BD67E8 90 04 00 F4 */ stw r0, 0xf4(r4) -/* 80BD67EC 38 00 00 01 */ li r0, 1 -/* 80BD67F0 90 04 00 24 */ stw r0, 0x24(r4) -/* 80BD67F4 80 83 05 78 */ lwz r4, 0x578(r3) -/* 80BD67F8 80 04 00 F4 */ lwz r0, 0xf4(r4) -/* 80BD67FC 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18 -/* 80BD6800 90 04 00 F4 */ stw r0, 0xf4(r4) -/* 80BD6804 38 00 00 00 */ li r0, 0 -/* 80BD6808 90 03 05 78 */ stw r0, 0x578(r3) -lbl_80BD680C: -/* 80BD680C 38 63 05 68 */ addi r3, r3, 0x568 -/* 80BD6810 3C 80 80 BD */ lis r4, l_arcName@ha /* 0x80BD68F0@ha */ -/* 80BD6814 38 84 68 F0 */ addi r4, r4, l_arcName@l /* 0x80BD68F0@l */ -/* 80BD6818 80 84 00 00 */ lwz r4, 0(r4) -/* 80BD681C 4B 45 67 ED */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 80BD6820 38 60 00 01 */ li r3, 1 -/* 80BD6824 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BD6828 7C 08 03 A6 */ mtlr r0 -/* 80BD682C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BD6830 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Create__FP14daObjCrystal_c.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Create__FP14daObjCrystal_c.s deleted file mode 100644 index e39e13a358..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Create__FP14daObjCrystal_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BD6894: -/* 80BD6894 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BD6898 7C 08 02 A6 */ mflr r0 -/* 80BD689C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BD68A0 4B FF FD C5 */ bl create__14daObjCrystal_cFv -/* 80BD68A4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BD68A8 7C 08 03 A6 */ mtlr r0 -/* 80BD68AC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BD68B0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Delete__FP14daObjCrystal_c.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Delete__FP14daObjCrystal_c.s deleted file mode 100644 index 77478d6dd8..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Delete__FP14daObjCrystal_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BD6874: -/* 80BD6874 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BD6878 7C 08 02 A6 */ mflr r0 -/* 80BD687C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BD6880 4B FF FF 49 */ bl _delete__14daObjCrystal_cFv -/* 80BD6884 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BD6888 7C 08 03 A6 */ mtlr r0 -/* 80BD688C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BD6890 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Draw__FP14daObjCrystal_c.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Draw__FP14daObjCrystal_c.s deleted file mode 100644 index 1038aa6dc8..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Draw__FP14daObjCrystal_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BD6834: -/* 80BD6834 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BD6838 7C 08 02 A6 */ mflr r0 -/* 80BD683C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BD6840 4B FF FE FD */ bl draw__14daObjCrystal_cFv -/* 80BD6844 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BD6848 7C 08 03 A6 */ mtlr r0 -/* 80BD684C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BD6850 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Execute__FP14daObjCrystal_c.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Execute__FP14daObjCrystal_c.s deleted file mode 100644 index adeaf027fc..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Execute__FP14daObjCrystal_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80BD6854: -/* 80BD6854 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BD6858 7C 08 02 A6 */ mflr r0 -/* 80BD685C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BD6860 4B FF FE B9 */ bl execute__14daObjCrystal_cFv -/* 80BD6864 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BD6868 7C 08 03 A6 */ mtlr r0 -/* 80BD686C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BD6870 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/draw__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/draw__14daObjCrystal_cFv.s deleted file mode 100644 index 673b985e4d..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/draw__14daObjCrystal_cFv.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_80BD673C: -/* 80BD673C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80BD6740 7C 08 02 A6 */ mflr r0 -/* 80BD6744 90 01 00 24 */ stw r0, 0x24(r1) -/* 80BD6748 39 61 00 20 */ addi r11, r1, 0x20 -/* 80BD674C 4B 78 BA 89 */ bl _savegpr_27 -/* 80BD6750 7C 7B 1B 78 */ mr r27, r3 -/* 80BD6754 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80BD6758 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80BD675C 38 80 00 10 */ li r4, 0x10 -/* 80BD6760 38 BB 04 D0 */ addi r5, r27, 0x4d0 -/* 80BD6764 38 DB 01 0C */ addi r6, r27, 0x10c -/* 80BD6768 4B 5C D0 5D */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 80BD676C 3B 80 00 00 */ li r28, 0 -/* 80BD6770 3B E0 00 00 */ li r31, 0 -/* 80BD6774 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80BD6778 3B C3 CA 54 */ addi r30, r3, g_env_light@l /* 0x8042CA54@l */ -lbl_80BD677C: -/* 80BD677C 7F C3 F3 78 */ mr r3, r30 -/* 80BD6780 3B BF 05 70 */ addi r29, r31, 0x570 -/* 80BD6784 7C 9B E8 2E */ lwzx r4, r27, r29 -/* 80BD6788 80 84 00 04 */ lwz r4, 4(r4) -/* 80BD678C 38 BB 01 0C */ addi r5, r27, 0x10c -/* 80BD6790 4B 5C E6 11 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 80BD6794 7C 7B E8 2E */ lwzx r3, r27, r29 -/* 80BD6798 4B 43 75 2D */ bl mDoExt_modelUpdateDL__FP8J3DModel -/* 80BD679C 3B 9C 00 01 */ addi r28, r28, 1 -/* 80BD67A0 2C 1C 00 02 */ cmpwi r28, 2 -/* 80BD67A4 3B FF 00 04 */ addi r31, r31, 4 -/* 80BD67A8 41 80 FF D4 */ blt lbl_80BD677C -/* 80BD67AC 38 60 00 01 */ li r3, 1 -/* 80BD67B0 39 61 00 20 */ addi r11, r1, 0x20 -/* 80BD67B4 4B 78 BA 6D */ bl _restgpr_27 -/* 80BD67B8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80BD67BC 7C 08 03 A6 */ mtlr r0 -/* 80BD67C0 38 21 00 20 */ addi r1, r1, 0x20 -/* 80BD67C4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/execute__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/execute__14daObjCrystal_cFv.s deleted file mode 100644 index b9bbc67b81..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/execute__14daObjCrystal_cFv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80BD6718: -/* 80BD6718 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BD671C 7C 08 02 A6 */ mflr r0 -/* 80BD6720 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BD6724 4B FF FC ED */ bl setBaseMtx__14daObjCrystal_cFv -/* 80BD6728 38 60 00 01 */ li r3, 1 -/* 80BD672C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BD6730 7C 08 03 A6 */ mtlr r0 -/* 80BD6734 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BD6738 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/func_80BD6664.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/func_80BD6664.s deleted file mode 100644 index 7c7669c1f0..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/func_80BD6664.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_80BD6664: -/* 80BD6664 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BD6668 7C 08 02 A6 */ mflr r0 -/* 80BD666C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BD6670 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BD6674 93 C1 00 08 */ stw r30, 8(r1) -/* 80BD6678 7C 7E 1B 78 */ mr r30, r3 -/* 80BD667C 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80BD6680 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80BD6684 40 82 00 1C */ bne lbl_80BD66A0 -/* 80BD6688 28 1E 00 00 */ cmplwi r30, 0 -/* 80BD668C 41 82 00 08 */ beq lbl_80BD6694 -/* 80BD6690 4B 44 24 D5 */ bl __ct__10fopAc_ac_cFv -lbl_80BD6694: -/* 80BD6694 80 1E 04 A0 */ lwz r0, 0x4a0(r30) -/* 80BD6698 60 00 00 08 */ ori r0, r0, 8 -/* 80BD669C 90 1E 04 A0 */ stw r0, 0x4a0(r30) -lbl_80BD66A0: -/* 80BD66A0 38 7E 05 68 */ addi r3, r30, 0x568 -/* 80BD66A4 3C 80 80 BD */ lis r4, l_arcName@ha /* 0x80BD68F0@ha */ -/* 80BD66A8 38 84 68 F0 */ addi r4, r4, l_arcName@l /* 0x80BD68F0@l */ -/* 80BD66AC 80 84 00 00 */ lwz r4, 0(r4) -/* 80BD66B0 4B 45 68 0D */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 80BD66B4 7C 7F 1B 78 */ mr r31, r3 -/* 80BD66B8 2C 1F 00 04 */ cmpwi r31, 4 -/* 80BD66BC 40 82 00 40 */ bne lbl_80BD66FC -/* 80BD66C0 7F C3 F3 78 */ mr r3, r30 -/* 80BD66C4 3C 80 80 BD */ lis r4, CheckCreateHeap__FP10fopAc_ac_c@ha /* 0x80BD6398@ha */ -/* 80BD66C8 38 84 63 98 */ addi r4, r4, CheckCreateHeap__FP10fopAc_ac_c@l /* 0x80BD6398@l */ -/* 80BD66CC 38 A0 40 00 */ li r5, 0x4000 -/* 80BD66D0 4B 44 3D E1 */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl -/* 80BD66D4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80BD66D8 40 82 00 0C */ bne lbl_80BD66E4 -/* 80BD66DC 38 60 00 05 */ li r3, 5 -/* 80BD66E0 48 00 00 20 */ b lbl_80BD6700 -lbl_80BD66E4: -/* 80BD66E4 7F C3 F3 78 */ mr r3, r30 -/* 80BD66E8 4B FF FD 89 */ bl Create__14daObjCrystal_cFv -/* 80BD66EC 2C 03 00 00 */ cmpwi r3, 0 -/* 80BD66F0 40 82 00 0C */ bne lbl_80BD66FC -/* 80BD66F4 38 60 00 05 */ li r3, 5 -/* 80BD66F8 48 00 00 08 */ b lbl_80BD6700 -lbl_80BD66FC: -/* 80BD66FC 7F E3 FB 78 */ mr r3, r31 -lbl_80BD6700: -/* 80BD6700 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BD6704 83 C1 00 08 */ lwz r30, 8(r1) -/* 80BD6708 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BD670C 7C 08 03 A6 */ mtlr r0 -/* 80BD6710 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BD6714 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/initBaseMtx__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/initBaseMtx__14daObjCrystal_cFv.s deleted file mode 100644 index 7f5fb8bdf8..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/initBaseMtx__14daObjCrystal_cFv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_80BD63B8: -/* 80BD63B8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BD63BC 7C 08 02 A6 */ mflr r0 -/* 80BD63C0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BD63C4 80 83 05 70 */ lwz r4, 0x570(r3) -/* 80BD63C8 C0 03 04 EC */ lfs f0, 0x4ec(r3) -/* 80BD63CC D0 04 00 18 */ stfs f0, 0x18(r4) -/* 80BD63D0 C0 03 04 F0 */ lfs f0, 0x4f0(r3) -/* 80BD63D4 D0 04 00 1C */ stfs f0, 0x1c(r4) -/* 80BD63D8 C0 03 04 F4 */ lfs f0, 0x4f4(r3) -/* 80BD63DC D0 04 00 20 */ stfs f0, 0x20(r4) -/* 80BD63E0 80 83 05 74 */ lwz r4, 0x574(r3) -/* 80BD63E4 C0 03 04 EC */ lfs f0, 0x4ec(r3) -/* 80BD63E8 D0 04 00 18 */ stfs f0, 0x18(r4) -/* 80BD63EC C0 03 04 F0 */ lfs f0, 0x4f0(r3) -/* 80BD63F0 D0 04 00 1C */ stfs f0, 0x1c(r4) -/* 80BD63F4 C0 03 04 F4 */ lfs f0, 0x4f4(r3) -/* 80BD63F8 D0 04 00 20 */ stfs f0, 0x20(r4) -/* 80BD63FC 48 00 00 15 */ bl setBaseMtx__14daObjCrystal_cFv -/* 80BD6400 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BD6404 7C 08 03 A6 */ mtlr r0 -/* 80BD6408 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BD640C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/setBaseMtx__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/setBaseMtx__14daObjCrystal_cFv.s deleted file mode 100644 index 1146dae633..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/setBaseMtx__14daObjCrystal_cFv.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_80BD6410: -/* 80BD6410 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80BD6414 7C 08 02 A6 */ mflr r0 -/* 80BD6418 90 01 00 14 */ stw r0, 0x14(r1) -/* 80BD641C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80BD6420 7C 7F 1B 78 */ mr r31, r3 -/* 80BD6424 38 7F 04 D0 */ addi r3, r31, 0x4d0 -/* 80BD6428 4B 43 69 3D */ bl transS__14mDoMtx_stack_cFRC4cXyz -/* 80BD642C 38 7F 04 E4 */ addi r3, r31, 0x4e4 -/* 80BD6430 4B 43 6B 15 */ bl ZXYrotM__14mDoMtx_stack_cFRC5csXyz -/* 80BD6434 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80BD6438 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80BD643C 80 9F 05 70 */ lwz r4, 0x570(r31) -/* 80BD6440 38 84 00 24 */ addi r4, r4, 0x24 -/* 80BD6444 4B 77 00 6D */ bl PSMTXCopy -/* 80BD6448 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80BD644C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80BD6450 80 9F 05 74 */ lwz r4, 0x574(r31) -/* 80BD6454 38 84 00 24 */ addi r4, r4, 0x24 -/* 80BD6458 4B 77 00 59 */ bl PSMTXCopy -/* 80BD645C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80BD6460 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80BD6464 7C 08 03 A6 */ mtlr r0 -/* 80BD6468 38 21 00 10 */ addi r1, r1, 0x10 -/* 80BD646C 4E 80 00 20 */ blr diff --git a/include/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.h b/include/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.h index cef101df22..ec42e9c70a 100644 --- a/include/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.h +++ b/include/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.h @@ -1,6 +1,23 @@ #ifndef D_A_OBJ_CRYSTAL_H #define D_A_OBJ_CRYSTAL_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daObjCrystal_c : public fopAc_ac_c { +public: + /* 80BD63B8 */ void initBaseMtx(); + /* 80BD6410 */ void setBaseMtx(); + /* 80BD6470 */ int Create(); + /* 80BD65B0 */ int CreateHeap(); + /* 80BD6664 */ int create(); + /* 80BD6718 */ int execute(); + /* 80BD673C */ int draw(); + /* 80BD67C8 */ int _delete(); + + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ J3DModel* mpModel[2]; + /* 0x578 */ JPABaseEmitter* mpEmitter; + /* 0x57C */ u16 mJointID; +}; #endif /* D_A_OBJ_CRYSTAL_H */ diff --git a/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.cpp b/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.cpp index b8354cabaa..dffc11f020 100644 --- a/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.cpp +++ b/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.cpp @@ -1,333 +1,173 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_obj_crystal -// +/** + * d_a_obj_crystal.cpp + * + */ #include "rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct csXyz {}; - -struct cXyz {}; - -struct mDoMtx_stack_c { - /* 8000CD64 */ void transS(cXyz const&); - /* 8000CF44 */ void ZXYrotM(csXyz const&); - - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daObjCrystal_c { - /* 80BD63B8 */ void initBaseMtx(); - /* 80BD6410 */ void setBaseMtx(); - /* 80BD6470 */ void Create(); - /* 80BD65B0 */ void CreateHeap(); - /* 80BD6664 */ void create(); - /* 80BD6718 */ void execute(); - /* 80BD673C */ void draw(); - /* 80BD67C8 */ void _delete(); -}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -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); -}; - -struct dPa_levelEcallBack {}; - -struct _GXColor {}; - -struct dPa_control_c { - /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, - u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, - cXyz const*, f32); -}; - -struct JUTNameTab { - /* 802DEAF8 */ void getName(u16) const; -}; - -struct JGeometry { - template - struct TVec3 {}; - /* TVec3 */ - struct TVec3__template0 {}; -}; - -struct J3DModel {}; - -// -// Forward References: -// - -extern "C" static void CheckCreateHeap__FP10fopAc_ac_c(); -extern "C" void initBaseMtx__14daObjCrystal_cFv(); -extern "C" void setBaseMtx__14daObjCrystal_cFv(); -extern "C" void Create__14daObjCrystal_cFv(); -extern "C" void CreateHeap__14daObjCrystal_cFv(); -extern "C" void create__14daObjCrystal_cFv(); -extern "C" void execute__14daObjCrystal_cFv(); -extern "C" void draw__14daObjCrystal_cFv(); -extern "C" void _delete__14daObjCrystal_cFv(); -extern "C" static void daObjCrystal_Draw__FP14daObjCrystal_c(); -extern "C" static void daObjCrystal_Execute__FP14daObjCrystal_c(); -extern "C" static void daObjCrystal_Delete__FP14daObjCrystal_c(); -extern "C" static void daObjCrystal_Create__FP14daObjCrystal_c(); -extern "C" extern char const* const d_a_obj_crystal__stringBase0; -extern "C" extern void* g_profile_Obj_Crystal[12]; - -// -// External References: -// - -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -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 -set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void func_802807E0(); -extern "C" void getName__10JUTNameTabCFUs(); -extern "C" void PSMTXCopy(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void strcmp(); -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: -// +#include "JSystem/JKernel/JKRHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" /* 80BD6398-80BD63B8 000078 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void CheckCreateHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CheckCreateHeap__FP10fopAc_ac_c.s" +static int CheckCreateHeap(fopAc_ac_c* i_this) { + return static_cast(i_this)->CreateHeap(); } -#pragma pop /* 80BD63B8-80BD6410 000098 0058+00 1/1 0/0 0/0 .text initBaseMtx__14daObjCrystal_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCrystal_c::initBaseMtx() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/initBaseMtx__14daObjCrystal_cFv.s" +void daObjCrystal_c::initBaseMtx() { + mpModel[0]->setBaseScale(mScale); + mpModel[1]->setBaseScale(mScale); + setBaseMtx(); } -#pragma pop /* 80BD6410-80BD6470 0000F0 0060+00 2/2 0/0 0/0 .text setBaseMtx__14daObjCrystal_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCrystal_c::setBaseMtx() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/setBaseMtx__14daObjCrystal_cFv.s" +void daObjCrystal_c::setBaseMtx() { + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + + mpModel[0]->i_setBaseTRMtx(mDoMtx_stack_c::get()); + mpModel[1]->i_setBaseTRMtx(mDoMtx_stack_c::get()); } -#pragma pop - -/* ############################################################################################## */ -/* 80BD68BC-80BD68C0 000000 0004+00 2/2 0/0 0/0 .rodata @3693 */ -SECTION_RODATA static f32 const lit_3693 = 1.0f; -COMPILER_STRIP_GATE(0x80BD68BC, &lit_3693); - -/* 80BD68D8-80BD68D8 00001C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80BD68D8 = "H_Suisho"; -SECTION_DEAD static char const* const stringBase_80BD68E1 = "polySurface1"; -#pragma pop - -/* 80BD6470-80BD65B0 000150 0140+00 1/1 0/0 0/0 .text Create__14daObjCrystal_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCrystal_c::Create() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/Create__14daObjCrystal_cFv.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80BD68C0-80BD68C8 000004 0008+00 0/1 0/0 0/0 .rodata l_bmd$3697 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_bmd[8] = { - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, -}; -COMPILER_STRIP_GATE(0x80BD68C0, &l_bmd); -#pragma pop - -/* 80BD68C8-80BD68D0 00000C 0008+00 0/1 0/0 0/0 .rodata l_diff_flag$3698 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_diff_flag[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80BD68C8, &l_diff_flag); -#pragma pop - -/* 80BD68D0-80BD68D8 000014 0008+00 0/1 0/0 0/0 .rodata l_flag$3699 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_flag[8] = { - 0x19, 0x00, 0x00, 0x84, 0x11, 0x00, 0x00, 0x84, -}; -COMPILER_STRIP_GATE(0x80BD68D0, &l_flag); -#pragma pop /* 80BD68F0-80BD68F4 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_obj_crystal__stringBase0; +static char* l_arcName = "H_Suisho"; + +/* 80BD6470-80BD65B0 000150 0140+00 1/1 0/0 0/0 .text Create__14daObjCrystal_cFv */ +int daObjCrystal_c::Create() { + initBaseMtx(); + fopAcM_SetMtx(this, mpModel[0]->getBaseTRMtx()); + + mpEmitter = dComIfGp_particle_set(0x8BED, ¤t.pos, &orig.angle, &mScale, 255, NULL, -1, + NULL, NULL, NULL); + mJointID = 0xFFFF; + + JUTNameTab* joint_name = mpModel[0]->getModelData()->getJointTree().getJointName(); + for (u16 i = 0; i < mpModel[0]->getModelData()->getJointNum(); i++) { + if (strcmp(joint_name->getName(i), "polySurface1") == 0) { + mJointID = i; + } + } + + mpModel[0]->calc(); + + if (mpEmitter != NULL) { + mpEmitter->setGlobalRTMatrix(mpModel[0]->i_getAnmMtx(mJointID)); + } + + return 1; +} /* 80BD65B0-80BD6664 000290 00B4+00 1/1 0/0 0/0 .text CreateHeap__14daObjCrystal_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCrystal_c::CreateHeap() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CreateHeap__14daObjCrystal_cFv.s" +int daObjCrystal_c::CreateHeap() { + static int const l_bmd[] = {4, 7}; + static u32 const l_diff_flag[] = {0, 0x80000}; + static u32 const l_flag[] = {0x19000084, 0x11000084}; + + for (int i = 0; i < 2; i++) { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, l_bmd[i]); + + mpModel[i] = mDoExt_J3DModel__create(modelData, l_diff_flag[i], l_flag[i]); + if (mpModel[i] == NULL) { + return 0; + } + } + + return 1; } -#pragma pop /* 80BD6664-80BD6718 000344 00B4+00 1/1 0/0 0/0 .text create__14daObjCrystal_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCrystal_c::create() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/func_80BD6664.s" +int daObjCrystal_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daObjCrystal_c(); + fopAcM_OnCondition(this, 8); + } + + int phase = dComIfG_resLoad(&mPhase, l_arcName); + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x4000)) { + return cPhs_ERROR_e; + } + + if (!Create()) { + return cPhs_ERROR_e; + } + } + + return phase; } -#pragma pop /* 80BD6718-80BD673C 0003F8 0024+00 1/1 0/0 0/0 .text execute__14daObjCrystal_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCrystal_c::execute() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/execute__14daObjCrystal_cFv.s" +int daObjCrystal_c::execute() { + setBaseMtx(); + return 1; } -#pragma pop /* 80BD673C-80BD67C8 00041C 008C+00 1/1 0/0 0/0 .text draw__14daObjCrystal_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCrystal_c::draw() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/draw__14daObjCrystal_cFv.s" +int daObjCrystal_c::draw() { + g_env_light.settingTevStruct(0x10, ¤t.pos, &mTevStr); + + for (int i = 0; i < 2; i++) { + g_env_light.setLightTevColorType_MAJI(mpModel[i], &mTevStr); + mDoExt_modelUpdateDL(mpModel[i]); + } + + return 1; } -#pragma pop /* 80BD67C8-80BD6834 0004A8 006C+00 1/1 0/0 0/0 .text _delete__14daObjCrystal_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjCrystal_c::_delete() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/_delete__14daObjCrystal_cFv.s" +int daObjCrystal_c::_delete() { + if (mpEmitter != NULL) { + mpEmitter->becomeInvalidEmitter(); + mpEmitter->quitImmortalEmitter(); + mpEmitter = NULL; + } + + dComIfG_resDelete(&mPhase, l_arcName); + return 1; } -#pragma pop /* 80BD6834-80BD6854 000514 0020+00 1/0 0/0 0/0 .text daObjCrystal_Draw__FP14daObjCrystal_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjCrystal_Draw(daObjCrystal_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Draw__FP14daObjCrystal_c.s" +static int daObjCrystal_Draw(daObjCrystal_c* i_this) { + return i_this->draw(); } -#pragma pop /* 80BD6854-80BD6874 000534 0020+00 1/0 0/0 0/0 .text daObjCrystal_Execute__FP14daObjCrystal_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjCrystal_Execute(daObjCrystal_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Execute__FP14daObjCrystal_c.s" +static int daObjCrystal_Execute(daObjCrystal_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80BD6874-80BD6894 000554 0020+00 1/0 0/0 0/0 .text daObjCrystal_Delete__FP14daObjCrystal_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjCrystal_Delete(daObjCrystal_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Delete__FP14daObjCrystal_c.s" +static int daObjCrystal_Delete(daObjCrystal_c* i_this) { + return i_this->_delete(); } -#pragma pop /* 80BD6894-80BD68B4 000574 0020+00 1/0 0/0 0/0 .text daObjCrystal_Create__FP14daObjCrystal_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjCrystal_Create(daObjCrystal_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Create__FP14daObjCrystal_c.s" +static int daObjCrystal_Create(daObjCrystal_c* i_this) { + return i_this->create(); } -#pragma pop /* ############################################################################################## */ /* 80BD68F4-80BD6914 -00001 0020+00 1/0 0/0 0/0 .data l_daObjCrystal_Method */ -SECTION_DATA static void* l_daObjCrystal_Method[8] = { - (void*)daObjCrystal_Create__FP14daObjCrystal_c, - (void*)daObjCrystal_Delete__FP14daObjCrystal_c, - (void*)daObjCrystal_Execute__FP14daObjCrystal_c, - (void*)NULL, - (void*)daObjCrystal_Draw__FP14daObjCrystal_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daObjCrystal_Method = { + (process_method_func)daObjCrystal_Create, (process_method_func)daObjCrystal_Delete, + (process_method_func)daObjCrystal_Execute, (process_method_func)NULL, + (process_method_func)daObjCrystal_Draw, }; /* 80BD6914-80BD6944 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Crystal */ -SECTION_DATA extern void* g_profile_Obj_Crystal[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x01A40000, (void*)&g_fpcLf_Method, - (void*)0x00000580, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02430000, (void*)&l_daObjCrystal_Method, - (void*)0x00040000, (void*)0x000E0000, +extern actor_process_profile_definition g_profile_Obj_Crystal = { + -3, + 7, + -3, + PROC_Obj_Crystal, + &g_fpcLf_Method.mBase, + sizeof(daObjCrystal_c), + 0, + 0, + &g_fopAc_Method.base, + 579, + &l_daObjCrystal_Method, + 0x40000, + 0, + 14, }; - -/* 80BD68D8-80BD68D8 00001C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ From 569384eadfe04d3f882e026384664cf7982b7144 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Sat, 1 Jul 2023 01:47:07 -0700 Subject: [PATCH 22/35] d_a_obj_lv4HsTarget OK and mDoHIO_entry_c fix --- .../CreateHeap__15daLv4HsTarget_cFv.s | 28 -- .../Delete__15daLv4HsTarget_cFv.s | 13 - .../Draw__15daLv4HsTarget_cFv.s | 26 -- .../Execute__15daLv4HsTarget_cFPPA3_A4_f.s | 6 - .../__ct__19daLv4HsTarget_HIO_cFv.s | 8 - .../__dt__14mDoHIO_entry_cFv.s | 20 - .../__dt__19daLv4HsTarget_HIO_cFv.s | 26 -- .../__sinit_d_a_obj_lv4HsTarget_cpp.s | 16 - .../create__15daLv4HsTarget_cFv.s | 60 --- .../daLv4HsTarget_Create__FP10fopAc_ac_c.s | 9 - ...aLv4HsTarget_Delete__FP15daLv4HsTarget_c.s | 9 - .../daLv4HsTarget_Draw__FP15daLv4HsTarget_c.s | 12 - ...Lv4HsTarget_Execute__FP15daLv4HsTarget_c.s | 9 - .../setBaseMtx__15daLv4HsTarget_cFv.s | 35 -- include/m_Do/m_Do_hostIO.h | 1 - .../d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget.h | 24 +- .../d/a/tag/d_a_tag_CstaSw/d_a_tag_CstaSw.h | 2 + .../d/a/tag/d_a_tag_lantern/d_a_tag_lantern.h | 8 +- .../tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h | 1 + .../d/a/tag/d_a_tag_poFire/d_a_tag_poFire.h | 2 + .../d_a_obj_lv4HsTarget.cpp | 397 ++++-------------- .../a/tag/d_a_tag_lantern/d_a_tag_lantern.cpp | 55 +-- 22 files changed, 148 insertions(+), 619 deletions(-) delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/CreateHeap__15daLv4HsTarget_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Delete__15daLv4HsTarget_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Draw__15daLv4HsTarget_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Execute__15daLv4HsTarget_cFPPA3_A4_f.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__ct__19daLv4HsTarget_HIO_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__dt__14mDoHIO_entry_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__dt__19daLv4HsTarget_HIO_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__sinit_d_a_obj_lv4HsTarget_cpp.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/create__15daLv4HsTarget_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Delete__FP15daLv4HsTarget_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Draw__FP15daLv4HsTarget_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Execute__FP15daLv4HsTarget_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/setBaseMtx__15daLv4HsTarget_cFv.s diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/CreateHeap__15daLv4HsTarget_cFv.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/CreateHeap__15daLv4HsTarget_cFv.s deleted file mode 100644 index 47eae93eaa..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/CreateHeap__15daLv4HsTarget_cFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_80C5F718: -/* 80C5F718 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5F71C 7C 08 02 A6 */ mflr r0 -/* 80C5F720 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5F724 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80C5F728 7C 7F 1B 78 */ mr r31, r3 -/* 80C5F72C 3C 60 80 C6 */ lis r3, d_a_obj_lv4HsTarget__stringBase0@ha /* 0x80C5FA3C@ha */ -/* 80C5F730 38 63 FA 3C */ addi r3, r3, d_a_obj_lv4HsTarget__stringBase0@l /* 0x80C5FA3C@l */ -/* 80C5F734 38 80 00 04 */ li r4, 4 -/* 80C5F738 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80C5F73C 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80C5F740 3C A5 00 02 */ addis r5, r5, 2 -/* 80C5F744 38 C0 00 80 */ li r6, 0x80 -/* 80C5F748 38 A5 C2 F8 */ addi r5, r5, -15624 -/* 80C5F74C 4B 3D CB A1 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 80C5F750 3C 80 00 08 */ lis r4, 8 -/* 80C5F754 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000084@ha */ -/* 80C5F758 38 A5 00 84 */ addi r5, r5, 0x0084 /* 0x11000084@l */ -/* 80C5F75C 4B 3B 54 F9 */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl -/* 80C5F760 90 7F 05 A8 */ stw r3, 0x5a8(r31) -/* 80C5F764 80 7F 05 A8 */ lwz r3, 0x5a8(r31) -/* 80C5F768 30 03 FF FF */ addic r0, r3, -1 -/* 80C5F76C 7C 60 19 10 */ subfe r3, r0, r3 -/* 80C5F770 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80C5F774 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5F778 7C 08 03 A6 */ mtlr r0 -/* 80C5F77C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5F780 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Delete__15daLv4HsTarget_cFv.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Delete__15daLv4HsTarget_cFv.s deleted file mode 100644 index 850d5643c2..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Delete__15daLv4HsTarget_cFv.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_80C5F8D4: -/* 80C5F8D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5F8D8 7C 08 02 A6 */ mflr r0 -/* 80C5F8DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5F8E0 3C 80 80 C6 */ lis r4, d_a_obj_lv4HsTarget__stringBase0@ha /* 0x80C5FA3C@ha */ -/* 80C5F8E4 38 84 FA 3C */ addi r4, r4, d_a_obj_lv4HsTarget__stringBase0@l /* 0x80C5FA3C@l */ -/* 80C5F8E8 38 63 05 A0 */ addi r3, r3, 0x5a0 -/* 80C5F8EC 4B 3C D7 1D */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 80C5F8F0 38 60 00 01 */ li r3, 1 -/* 80C5F8F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5F8F8 7C 08 03 A6 */ mtlr r0 -/* 80C5F8FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5F900 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Draw__15daLv4HsTarget_cFv.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Draw__15daLv4HsTarget_cFv.s deleted file mode 100644 index 4d105bfa8d..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Draw__15daLv4HsTarget_cFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80C5F870: -/* 80C5F870 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5F874 7C 08 02 A6 */ mflr r0 -/* 80C5F878 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5F87C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80C5F880 7C 7F 1B 78 */ mr r31, r3 -/* 80C5F884 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80C5F888 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80C5F88C 38 80 00 40 */ li r4, 0x40 -/* 80C5F890 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 80C5F894 38 DF 01 0C */ addi r6, r31, 0x10c -/* 80C5F898 4B 54 3F 2D */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 80C5F89C 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80C5F8A0 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80C5F8A4 80 9F 05 A8 */ lwz r4, 0x5a8(r31) -/* 80C5F8A8 80 84 00 04 */ lwz r4, 4(r4) -/* 80C5F8AC 38 BF 01 0C */ addi r5, r31, 0x10c -/* 80C5F8B0 4B 54 54 F1 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 80C5F8B4 80 7F 05 A8 */ lwz r3, 0x5a8(r31) -/* 80C5F8B8 4B 3A E4 0D */ bl mDoExt_modelUpdateDL__FP8J3DModel -/* 80C5F8BC 38 60 00 01 */ li r3, 1 -/* 80C5F8C0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80C5F8C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5F8C8 7C 08 03 A6 */ mtlr r0 -/* 80C5F8CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5F8D0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Execute__15daLv4HsTarget_cFPPA3_A4_f.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Execute__15daLv4HsTarget_cFPPA3_A4_f.s deleted file mode 100644 index d1e0e67f4e..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Execute__15daLv4HsTarget_cFPPA3_A4_f.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_80C5F85C: -/* 80C5F85C 80 63 05 A8 */ lwz r3, 0x5a8(r3) -/* 80C5F860 38 03 00 24 */ addi r0, r3, 0x24 -/* 80C5F864 90 04 00 00 */ stw r0, 0(r4) -/* 80C5F868 38 60 00 01 */ li r3, 1 -/* 80C5F86C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__ct__19daLv4HsTarget_HIO_cFv.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__ct__19daLv4HsTarget_HIO_cFv.s deleted file mode 100644 index 1316f38f74..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__ct__19daLv4HsTarget_HIO_cFv.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_80C5F62C: -/* 80C5F62C 3C 80 80 C6 */ lis r4, __vt__14mDoHIO_entry_c@ha /* 0x80C5FACC@ha */ -/* 80C5F630 38 04 FA CC */ addi r0, r4, __vt__14mDoHIO_entry_c@l /* 0x80C5FACC@l */ -/* 80C5F634 90 03 00 00 */ stw r0, 0(r3) -/* 80C5F638 3C 80 80 C6 */ lis r4, __vt__19daLv4HsTarget_HIO_c@ha /* 0x80C5FAC0@ha */ -/* 80C5F63C 38 04 FA C0 */ addi r0, r4, __vt__19daLv4HsTarget_HIO_c@l /* 0x80C5FAC0@l */ -/* 80C5F640 90 03 00 00 */ stw r0, 0(r3) -/* 80C5F644 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__dt__14mDoHIO_entry_cFv.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__dt__14mDoHIO_entry_cFv.s deleted file mode 100644 index 63d8632a29..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__dt__14mDoHIO_entry_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80C5F648: -/* 80C5F648 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5F64C 7C 08 02 A6 */ mflr r0 -/* 80C5F650 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5F654 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80C5F658 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80C5F65C 41 82 00 1C */ beq lbl_80C5F678 -/* 80C5F660 3C A0 80 C6 */ lis r5, __vt__14mDoHIO_entry_c@ha /* 0x80C5FACC@ha */ -/* 80C5F664 38 05 FA CC */ addi r0, r5, __vt__14mDoHIO_entry_c@l /* 0x80C5FACC@l */ -/* 80C5F668 90 1F 00 00 */ stw r0, 0(r31) -/* 80C5F66C 7C 80 07 35 */ extsh. r0, r4 -/* 80C5F670 40 81 00 08 */ ble lbl_80C5F678 -/* 80C5F674 4B 66 F6 C9 */ bl __dl__FPv -lbl_80C5F678: -/* 80C5F678 7F E3 FB 78 */ mr r3, r31 -/* 80C5F67C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80C5F680 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5F684 7C 08 03 A6 */ mtlr r0 -/* 80C5F688 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5F68C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__dt__19daLv4HsTarget_HIO_cFv.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__dt__19daLv4HsTarget_HIO_cFv.s deleted file mode 100644 index a6645ba9b1..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__dt__19daLv4HsTarget_HIO_cFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80C5F990: -/* 80C5F990 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5F994 7C 08 02 A6 */ mflr r0 -/* 80C5F998 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5F99C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80C5F9A0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80C5F9A4 41 82 00 30 */ beq lbl_80C5F9D4 -/* 80C5F9A8 3C 60 80 C6 */ lis r3, __vt__19daLv4HsTarget_HIO_c@ha /* 0x80C5FAC0@ha */ -/* 80C5F9AC 38 03 FA C0 */ addi r0, r3, __vt__19daLv4HsTarget_HIO_c@l /* 0x80C5FAC0@l */ -/* 80C5F9B0 90 1F 00 00 */ stw r0, 0(r31) -/* 80C5F9B4 41 82 00 10 */ beq lbl_80C5F9C4 -/* 80C5F9B8 3C 60 80 C6 */ lis r3, __vt__14mDoHIO_entry_c@ha /* 0x80C5FACC@ha */ -/* 80C5F9BC 38 03 FA CC */ addi r0, r3, __vt__14mDoHIO_entry_c@l /* 0x80C5FACC@l */ -/* 80C5F9C0 90 1F 00 00 */ stw r0, 0(r31) -lbl_80C5F9C4: -/* 80C5F9C4 7C 80 07 35 */ extsh. r0, r4 -/* 80C5F9C8 40 81 00 0C */ ble lbl_80C5F9D4 -/* 80C5F9CC 7F E3 FB 78 */ mr r3, r31 -/* 80C5F9D0 4B 66 F3 6D */ bl __dl__FPv -lbl_80C5F9D4: -/* 80C5F9D4 7F E3 FB 78 */ mr r3, r31 -/* 80C5F9D8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80C5F9DC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5F9E0 7C 08 03 A6 */ mtlr r0 -/* 80C5F9E4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5F9E8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__sinit_d_a_obj_lv4HsTarget_cpp.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__sinit_d_a_obj_lv4HsTarget_cpp.s deleted file mode 100644 index db256fa3fb..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__sinit_d_a_obj_lv4HsTarget_cpp.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80C5F9EC: -/* 80C5F9EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5F9F0 7C 08 02 A6 */ mflr r0 -/* 80C5F9F4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5F9F8 3C 60 80 C6 */ lis r3, l_HIO@ha /* 0x80C5FAEC@ha */ -/* 80C5F9FC 38 63 FA EC */ addi r3, r3, l_HIO@l /* 0x80C5FAEC@l */ -/* 80C5FA00 4B FF FC 2D */ bl __ct__19daLv4HsTarget_HIO_cFv -/* 80C5FA04 3C 80 80 C6 */ lis r4, __dt__19daLv4HsTarget_HIO_cFv@ha /* 0x80C5F990@ha */ -/* 80C5FA08 38 84 F9 90 */ addi r4, r4, __dt__19daLv4HsTarget_HIO_cFv@l /* 0x80C5F990@l */ -/* 80C5FA0C 3C A0 80 C6 */ lis r5, lit_3618@ha /* 0x80C5FAE0@ha */ -/* 80C5FA10 38 A5 FA E0 */ addi r5, r5, lit_3618@l /* 0x80C5FAE0@l */ -/* 80C5FA14 4B FF FB A5 */ bl __register_global_object -/* 80C5FA18 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5FA1C 7C 08 03 A6 */ mtlr r0 -/* 80C5FA20 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5FA24 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/create__15daLv4HsTarget_cFv.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/create__15daLv4HsTarget_cFv.s deleted file mode 100644 index ab1a4d01cb..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/create__15daLv4HsTarget_cFv.s +++ /dev/null @@ -1,60 +0,0 @@ -lbl_80C5F784: -/* 80C5F784 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5F788 7C 08 02 A6 */ mflr r0 -/* 80C5F78C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5F790 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80C5F794 93 C1 00 08 */ stw r30, 8(r1) -/* 80C5F798 7C 7F 1B 78 */ mr r31, r3 -/* 80C5F79C 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80C5F7A0 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80C5F7A4 40 82 00 28 */ bne lbl_80C5F7CC -/* 80C5F7A8 28 1F 00 00 */ cmplwi r31, 0 -/* 80C5F7AC 41 82 00 14 */ beq lbl_80C5F7C0 -/* 80C5F7B0 4B 41 8E 75 */ bl __ct__16dBgS_MoveBgActorFv -/* 80C5F7B4 3C 60 80 C6 */ lis r3, __vt__15daLv4HsTarget_c@ha /* 0x80C5FA98@ha */ -/* 80C5F7B8 38 03 FA 98 */ addi r0, r3, __vt__15daLv4HsTarget_c@l /* 0x80C5FA98@l */ -/* 80C5F7BC 90 1F 05 9C */ stw r0, 0x59c(r31) -lbl_80C5F7C0: -/* 80C5F7C0 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80C5F7C4 60 00 00 08 */ ori r0, r0, 8 -/* 80C5F7C8 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80C5F7CC: -/* 80C5F7CC 38 7F 05 A0 */ addi r3, r31, 0x5a0 -/* 80C5F7D0 3C 80 80 C6 */ lis r4, d_a_obj_lv4HsTarget__stringBase0@ha /* 0x80C5FA3C@ha */ -/* 80C5F7D4 38 84 FA 3C */ addi r4, r4, d_a_obj_lv4HsTarget__stringBase0@l /* 0x80C5FA3C@l */ -/* 80C5F7D8 4B 3C D6 E5 */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 80C5F7DC 7C 7E 1B 78 */ mr r30, r3 -/* 80C5F7E0 2C 1E 00 04 */ cmpwi r30, 4 -/* 80C5F7E4 40 82 00 5C */ bne lbl_80C5F840 -/* 80C5F7E8 7F E3 FB 78 */ mr r3, r31 -/* 80C5F7EC 3C 80 80 C6 */ lis r4, d_a_obj_lv4HsTarget__stringBase0@ha /* 0x80C5FA3C@ha */ -/* 80C5F7F0 38 84 FA 3C */ addi r4, r4, d_a_obj_lv4HsTarget__stringBase0@l /* 0x80C5FA3C@l */ -/* 80C5F7F4 38 A0 00 07 */ li r5, 7 -/* 80C5F7F8 3C C0 80 07 */ lis r6, dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz@ha /* 0x80075AD8@ha */ -/* 80C5F7FC 38 C6 5A D8 */ addi r6, r6, dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz@l /* 0x80075AD8@l */ -/* 80C5F800 38 E0 12 00 */ li r7, 0x1200 -/* 80C5F804 39 00 00 00 */ li r8, 0 -/* 80C5F808 4B 41 8F B5 */ bl MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f -/* 80C5F80C 2C 03 00 05 */ cmpwi r3, 5 -/* 80C5F810 40 82 00 0C */ bne lbl_80C5F81C -/* 80C5F814 38 60 00 05 */ li r3, 5 -/* 80C5F818 48 00 00 2C */ b lbl_80C5F844 -lbl_80C5F81C: -/* 80C5F81C 80 7F 05 A8 */ lwz r3, 0x5a8(r31) -/* 80C5F820 38 03 00 24 */ addi r0, r3, 0x24 -/* 80C5F824 90 1F 05 04 */ stw r0, 0x504(r31) -/* 80C5F828 80 7F 05 A8 */ lwz r3, 0x5a8(r31) -/* 80C5F82C 80 83 00 04 */ lwz r4, 4(r3) -/* 80C5F830 7F E3 FB 78 */ mr r3, r31 -/* 80C5F834 4B 3B AD 45 */ bl fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData -/* 80C5F838 7F E3 FB 78 */ mr r3, r31 -/* 80C5F83C 4B FF FE 55 */ bl setBaseMtx__15daLv4HsTarget_cFv -lbl_80C5F840: -/* 80C5F840 7F C3 F3 78 */ mr r3, r30 -lbl_80C5F844: -/* 80C5F844 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80C5F848 83 C1 00 08 */ lwz r30, 8(r1) -/* 80C5F84C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5F850 7C 08 03 A6 */ mtlr r0 -/* 80C5F854 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5F858 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 2a791322de..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80C5F970: -/* 80C5F970 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5F974 7C 08 02 A6 */ mflr r0 -/* 80C5F978 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5F97C 4B FF FE 09 */ bl create__15daLv4HsTarget_cFv -/* 80C5F980 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5F984 7C 08 03 A6 */ mtlr r0 -/* 80C5F988 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5F98C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Delete__FP15daLv4HsTarget_c.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Delete__FP15daLv4HsTarget_c.s deleted file mode 100644 index 394336b514..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Delete__FP15daLv4HsTarget_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80C5F950: -/* 80C5F950 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5F954 7C 08 02 A6 */ mflr r0 -/* 80C5F958 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5F95C 4B 41 8F 81 */ bl MoveBGDelete__16dBgS_MoveBgActorFv -/* 80C5F960 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5F964 7C 08 03 A6 */ mtlr r0 -/* 80C5F968 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5F96C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Draw__FP15daLv4HsTarget_c.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Draw__FP15daLv4HsTarget_c.s deleted file mode 100644 index 13680fbbd1..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Draw__FP15daLv4HsTarget_c.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80C5F904: -/* 80C5F904 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5F908 7C 08 02 A6 */ mflr r0 -/* 80C5F90C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5F910 81 83 05 9C */ lwz r12, 0x59c(r3) -/* 80C5F914 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 80C5F918 7D 89 03 A6 */ mtctr r12 -/* 80C5F91C 4E 80 04 21 */ bctrl -/* 80C5F920 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5F924 7C 08 03 A6 */ mtlr r0 -/* 80C5F928 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5F92C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Execute__FP15daLv4HsTarget_c.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Execute__FP15daLv4HsTarget_c.s deleted file mode 100644 index 40033c3a1a..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Execute__FP15daLv4HsTarget_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80C5F930: -/* 80C5F930 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5F934 7C 08 02 A6 */ mflr r0 -/* 80C5F938 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5F93C 4B 41 90 15 */ bl MoveBGExecute__16dBgS_MoveBgActorFv -/* 80C5F940 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5F944 7C 08 03 A6 */ mtlr r0 -/* 80C5F948 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5F94C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/setBaseMtx__15daLv4HsTarget_cFv.s b/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/setBaseMtx__15daLv4HsTarget_cFv.s deleted file mode 100644 index 9b34c27665..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/setBaseMtx__15daLv4HsTarget_cFv.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_80C5F690: -/* 80C5F690 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80C5F694 7C 08 02 A6 */ mflr r0 -/* 80C5F698 90 01 00 14 */ stw r0, 0x14(r1) -/* 80C5F69C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80C5F6A0 7C 7F 1B 78 */ mr r31, r3 -/* 80C5F6A4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80C5F6A8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80C5F6AC C0 3F 04 D0 */ lfs f1, 0x4d0(r31) -/* 80C5F6B0 C0 5F 04 D4 */ lfs f2, 0x4d4(r31) -/* 80C5F6B4 C0 7F 04 D8 */ lfs f3, 0x4d8(r31) -/* 80C5F6B8 4B 6E 72 31 */ bl PSMTXTrans -/* 80C5F6BC 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80C5F6C0 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80C5F6C4 A8 9F 04 E4 */ lha r4, 0x4e4(r31) -/* 80C5F6C8 A8 BF 04 E6 */ lha r5, 0x4e6(r31) -/* 80C5F6CC A8 DF 04 E8 */ lha r6, 0x4e8(r31) -/* 80C5F6D0 4B 3A CB D1 */ bl mDoMtx_ZXYrotM__FPA4_fsss -/* 80C5F6D4 80 7F 05 A8 */ lwz r3, 0x5a8(r31) -/* 80C5F6D8 C0 1F 04 EC */ lfs f0, 0x4ec(r31) -/* 80C5F6DC D0 03 00 18 */ stfs f0, 0x18(r3) -/* 80C5F6E0 C0 1F 04 F0 */ lfs f0, 0x4f0(r31) -/* 80C5F6E4 D0 03 00 1C */ stfs f0, 0x1c(r3) -/* 80C5F6E8 C0 1F 04 F4 */ lfs f0, 0x4f4(r31) -/* 80C5F6EC D0 03 00 20 */ stfs f0, 0x20(r3) -/* 80C5F6F0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80C5F6F4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80C5F6F8 80 9F 05 A8 */ lwz r4, 0x5a8(r31) -/* 80C5F6FC 38 84 00 24 */ addi r4, r4, 0x24 -/* 80C5F700 4B 6E 6D B1 */ bl PSMTXCopy -/* 80C5F704 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80C5F708 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80C5F70C 7C 08 03 A6 */ mtlr r0 -/* 80C5F710 38 21 00 10 */ addi r1, r1, 0x10 -/* 80C5F714 4E 80 00 20 */ blr diff --git a/include/m_Do/m_Do_hostIO.h b/include/m_Do/m_Do_hostIO.h index abf715f55d..a6f72935e0 100644 --- a/include/m_Do/m_Do_hostIO.h +++ b/include/m_Do/m_Do_hostIO.h @@ -6,7 +6,6 @@ class mDoHIO_entry_c { public: virtual ~mDoHIO_entry_c() {} - u8 unk_0x4; }; #endif /* M_DO_M_DO_HOSTIO_H */ diff --git a/include/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget.h b/include/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget.h index 0efc31e785..ff4f82776f 100644 --- a/include/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget.h +++ b/include/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget.h @@ -1,6 +1,28 @@ #ifndef D_A_OBJ_LV4HSTARGET_H #define D_A_OBJ_LV4HSTARGET_H -#include "dolphin/types.h" +#include "d/bg/d_bg_s_movebg_actor.h" +#include "f_op/f_op_actor_mng.h" +#include "m_Do/m_Do_hostIO.h" + +class daLv4HsTarget_c : public dBgS_MoveBgActor { +public: + /* 80C5F690 */ void setBaseMtx(); + /* 80C5F784 */ int create(); + + /* 80C5F718 */ virtual int CreateHeap(); + /* 80C5F85C */ virtual int Execute(Mtx**); + /* 80C5F870 */ virtual int Draw(); + /* 80C5F8D4 */ virtual int Delete(); + + /* 0x5A0 */ request_of_phase_process_class mPhase; + /* 0x5A8 */ J3DModel* mpModel; +}; + +class daLv4HsTarget_HIO_c : public mDoHIO_entry_c { +public: + /* 80C5F62C */ daLv4HsTarget_HIO_c(); + /* 80C5F990 */ virtual ~daLv4HsTarget_HIO_c() {} +}; #endif /* D_A_OBJ_LV4HSTARGET_H */ diff --git a/include/rel/d/a/tag/d_a_tag_CstaSw/d_a_tag_CstaSw.h b/include/rel/d/a/tag/d_a_tag_CstaSw/d_a_tag_CstaSw.h index ae36097347..05301d93a4 100644 --- a/include/rel/d/a/tag/d_a_tag_CstaSw/d_a_tag_CstaSw.h +++ b/include/rel/d/a/tag/d_a_tag_CstaSw/d_a_tag_CstaSw.h @@ -27,6 +27,8 @@ class daTagCstaSw_HIO_c : public mDoHIO_entry_c { public: /* 805A202C */ daTagCstaSw_HIO_c(); /* 805A2480 */ virtual ~daTagCstaSw_HIO_c(); + + u8 unk_0x4; }; #endif /* D_A_TAG_CSTASW_H */ diff --git a/include/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.h b/include/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.h index feadc9bc72..58718bd602 100644 --- a/include/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.h +++ b/include/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.h @@ -13,13 +13,13 @@ public: /* 8048EF6C */ int Draw(); /* 8048EF74 */ void initialize(); - /* 0x568 */ dMsgFlow_c field_0x568; - /* 0x5B4 */ cBgS_GndChk field_0x5b4; + /* 0x568 */ dMsgFlow_c mMsgFlow; + /* 0x5B4 */ cBgS_GndChk mGndChk; /* 0x5F0 */ u32 field_0x5f0; - /* 0x5F4 */ f32 field_0x5f4; + /* 0x5F4 */ f32 mGroundCross; /* 0x5F8 */ s32 field_0x5f8; /* 0x5FC */ u32 field_0x5fc; - /* 0x600 */ s32 field_0x600; + /* 0x600 */ int mFlowIndex; /* 0x604 */ u8 field_0x604; /* 8048ECAC */ virtual ~daTag_Lantern_c(); diff --git a/include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h b/include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h index 620595d744..4164d72d65 100644 --- a/include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h +++ b/include/rel/d/a/tag/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.h @@ -27,6 +27,7 @@ public: /* 80D5B2EC */ daLv6CstaSw_HIO_c(); /* 80D5B740 */ virtual ~daLv6CstaSw_HIO_c(); + u8 unk_0x4; }; #endif /* D_A_TAG_LV6CSTASW_H */ diff --git a/include/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.h b/include/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.h index 308919d430..9edc61ab1d 100644 --- a/include/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.h +++ b/include/rel/d/a/tag/d_a_tag_poFire/d_a_tag_poFire.h @@ -22,6 +22,8 @@ class daTagPoFire_HIO_c : public mDoHIO_entry_c { public: /* 80D5DACC */ daTagPoFire_HIO_c(); /* 80D5DCB0 */ virtual ~daTagPoFire_HIO_c(); + + u8 unk_0x4; }; #endif /* D_A_TAG_POFIRE_H */ diff --git a/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget.cpp b/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget.cpp index 6a73db8a1d..5b258932de 100644 --- a/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget.cpp +++ b/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget.cpp @@ -1,349 +1,126 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_obj_lv4HsTarget -// +/** + * d_a_obj_lv4HsTarget.cpp + * Arbiter's Grounds Clawshot Target + */ #include "rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct mDoHIO_entry_c { - /* 80C5F648 */ ~mDoHIO_entry_c(); -}; - -struct fopAc_ac_c {}; - -struct daLv4HsTarget_c { - /* 80C5F690 */ void setBaseMtx(); - /* 80C5F718 */ void CreateHeap(); - /* 80C5F784 */ void create(); - /* 80C5F85C */ void Execute(f32 (**)[3][4]); - /* 80C5F870 */ void Draw(); - /* 80C5F8D4 */ void Delete(); -}; - -struct daLv4HsTarget_HIO_c { - /* 80C5F62C */ daLv4HsTarget_HIO_c(); - /* 80C5F990 */ ~daLv4HsTarget_HIO_c(); -}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -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); -}; - -struct dBgW {}; - -struct cBgS_PolyInfo {}; - -struct csXyz {}; - -struct dBgS_MoveBgActor { - /* 80078624 */ dBgS_MoveBgActor(); - /* 80078690 */ bool Create(); - /* 800786B0 */ bool IsDelete(); - /* 800786B8 */ bool ToFore(); - /* 800786C0 */ bool ToBack(); - /* 800787BC */ void MoveBGCreate(char const*, int, - void (*)(dBgW*, void*, cBgS_PolyInfo const&, bool, cXyz*, - csXyz*, csXyz*), - u32, f32 (*)[3][4]); - /* 800788DC */ void MoveBGDelete(); - /* 80078950 */ void MoveBGExecute(); -}; - -struct J3DModel {}; - -// -// Forward References: -// - -extern "C" void __ct__19daLv4HsTarget_HIO_cFv(); -extern "C" void __dt__14mDoHIO_entry_cFv(); -extern "C" void setBaseMtx__15daLv4HsTarget_cFv(); -extern "C" void CreateHeap__15daLv4HsTarget_cFv(); -extern "C" void create__15daLv4HsTarget_cFv(); -extern "C" void Execute__15daLv4HsTarget_cFPPA3_A4_f(); -extern "C" void Draw__15daLv4HsTarget_cFv(); -extern "C" void Delete__15daLv4HsTarget_cFv(); -extern "C" static void daLv4HsTarget_Draw__FP15daLv4HsTarget_c(); -extern "C" static void daLv4HsTarget_Execute__FP15daLv4HsTarget_c(); -extern "C" static void daLv4HsTarget_Delete__FP15daLv4HsTarget_c(); -extern "C" static void daLv4HsTarget_Create__FP10fopAc_ac_c(); -extern "C" void __dt__19daLv4HsTarget_HIO_cFv(); -extern "C" void __sinit_d_a_obj_lv4HsTarget_cpp(); -extern "C" extern char const* const d_a_obj_lv4HsTarget__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_ZXYrotM__FPA4_fsss(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void fopAcM_setCullSizeBox2__FP10fopAc_ac_cP12J3DModelData(); -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 dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz(); -extern "C" void __ct__16dBgS_MoveBgActorFv(); -extern "C" bool Create__16dBgS_MoveBgActorFv(); -extern "C" bool IsDelete__16dBgS_MoveBgActorFv(); -extern "C" bool ToFore__16dBgS_MoveBgActorFv(); -extern "C" bool ToBack__16dBgS_MoveBgActorFv(); -extern "C" void -MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f(); -extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv(); -extern "C" void MoveBGExecute__16dBgS_MoveBgActorFv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void __dl__FPv(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -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]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80C5FA48-80C5FA68 -00001 0020+00 1/0 0/0 0/0 .data l_daLv4HsTarget_Method */ -SECTION_DATA static void* l_daLv4HsTarget_Method[8] = { - (void*)daLv4HsTarget_Create__FP10fopAc_ac_c, - (void*)daLv4HsTarget_Delete__FP15daLv4HsTarget_c, - (void*)daLv4HsTarget_Execute__FP15daLv4HsTarget_c, - (void*)NULL, - (void*)daLv4HsTarget_Draw__FP15daLv4HsTarget_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 80C5FA68-80C5FA98 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv4HsTarget */ -SECTION_DATA extern void* g_profile_Obj_Lv4HsTarget[12] = { - (void*)0xFFFFFFFD, (void*)0x0003FFFD, - (void*)0x009F0000, (void*)&g_fpcLf_Method, - (void*)0x000005AC, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02800000, (void*)&l_daLv4HsTarget_Method, - (void*)0x00040100, (void*)0x000E0000, -}; - -/* 80C5FA98-80C5FAC0 000050 0028+00 1/1 0/0 0/0 .data __vt__15daLv4HsTarget_c */ -SECTION_DATA extern void* __vt__15daLv4HsTarget_c[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__15daLv4HsTarget_cFv, - (void*)Create__16dBgS_MoveBgActorFv, - (void*)Execute__15daLv4HsTarget_cFPPA3_A4_f, - (void*)Draw__15daLv4HsTarget_cFv, - (void*)Delete__15daLv4HsTarget_cFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, -}; - -/* 80C5FAC0-80C5FACC 000078 000C+00 2/2 0/0 0/0 .data __vt__19daLv4HsTarget_HIO_c */ -SECTION_DATA extern void* __vt__19daLv4HsTarget_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__19daLv4HsTarget_HIO_cFv, -}; - -/* 80C5FACC-80C5FAD8 000084 000C+00 3/3 0/0 0/0 .data __vt__14mDoHIO_entry_c */ -SECTION_DATA extern void* __vt__14mDoHIO_entry_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14mDoHIO_entry_cFv, -}; +#include "JSystem/JKernel/JKRHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" /* 80C5F62C-80C5F648 0000EC 001C+00 1/1 0/0 0/0 .text __ct__19daLv4HsTarget_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daLv4HsTarget_HIO_c::daLv4HsTarget_HIO_c() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__ct__19daLv4HsTarget_HIO_cFv.s" -} -#pragma pop - -/* 80C5F648-80C5F690 000108 0048+00 1/0 0/0 0/0 .text __dt__14mDoHIO_entry_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm mDoHIO_entry_c::~mDoHIO_entry_c() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__dt__14mDoHIO_entry_cFv.s" -} -#pragma pop +daLv4HsTarget_HIO_c::daLv4HsTarget_HIO_c() {} /* 80C5F690-80C5F718 000150 0088+00 1/1 0/0 0/0 .text setBaseMtx__15daLv4HsTarget_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv4HsTarget_c::setBaseMtx() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/setBaseMtx__15daLv4HsTarget_cFv.s" -} -#pragma pop +void daLv4HsTarget_c::setBaseMtx() { + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::ZXYrotM(shape_angle.x, shape_angle.y, shape_angle.z); -/* ############################################################################################## */ -/* 80C5FA3C-80C5FA3C 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80C5FA3C = "L4HsMato"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_80C5FA45 = "\0\0"; -#pragma pop + mpModel->setBaseScale(mScale); + mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); +} /* 80C5F718-80C5F784 0001D8 006C+00 1/0 0/0 0/0 .text CreateHeap__15daLv4HsTarget_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv4HsTarget_c::CreateHeap() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/CreateHeap__15daLv4HsTarget_cFv.s" +int daLv4HsTarget_c::CreateHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("L4HsMato", 4); + + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (mpModel == NULL) { + return 0; + } + + return 1; } -#pragma pop /* 80C5F784-80C5F85C 000244 00D8+00 1/1 0/0 0/0 .text create__15daLv4HsTarget_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv4HsTarget_c::create() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/create__15daLv4HsTarget_cFv.s" +int daLv4HsTarget_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daLv4HsTarget_c(); + fopAcM_OnCondition(this, 8); + } + + int phase = dComIfG_resLoad(&mPhase, "L4HsMato"); + if (phase == cPhs_COMPLEATE_e) { + if (MoveBGCreate("L4HsMato", 7, dBgS_MoveBGProc_TypicalRotY, 0x1200, NULL) == cPhs_ERROR_e) + { + return cPhs_ERROR_e; + } + + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); + fopAcM_setCullSizeBox2(this, mpModel->getModelData()); + setBaseMtx(); + } + + return phase; } -#pragma pop /* 80C5F85C-80C5F870 00031C 0014+00 1/0 0/0 0/0 .text Execute__15daLv4HsTarget_cFPPA3_A4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv4HsTarget_c::Execute(f32 (**param_0)[3][4]) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Execute__15daLv4HsTarget_cFPPA3_A4_f.s" +int daLv4HsTarget_c::Execute(Mtx** param_0) { + *param_0 = &mpModel->getBaseTRMtx(); + return 1; } -#pragma pop /* 80C5F870-80C5F8D4 000330 0064+00 1/0 0/0 0/0 .text Draw__15daLv4HsTarget_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv4HsTarget_c::Draw() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Draw__15daLv4HsTarget_cFv.s" +int daLv4HsTarget_c::Draw() { + g_env_light.settingTevStruct(0x40, ¤t.pos, &mTevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr); + + mDoExt_modelUpdateDL(mpModel); + return 1; } -#pragma pop /* 80C5F8D4-80C5F904 000394 0030+00 1/0 0/0 0/0 .text Delete__15daLv4HsTarget_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daLv4HsTarget_c::Delete() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/Delete__15daLv4HsTarget_cFv.s" +int daLv4HsTarget_c::Delete() { + dComIfG_resDelete(&mPhase, "L4HsMato"); + return 1; } -#pragma pop /* 80C5F904-80C5F930 0003C4 002C+00 1/0 0/0 0/0 .text daLv4HsTarget_Draw__FP15daLv4HsTarget_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daLv4HsTarget_Draw(daLv4HsTarget_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Draw__FP15daLv4HsTarget_c.s" +static int daLv4HsTarget_Draw(daLv4HsTarget_c* i_this) { + return i_this->MoveBGDraw(); } -#pragma pop /* 80C5F930-80C5F950 0003F0 0020+00 1/0 0/0 0/0 .text daLv4HsTarget_Execute__FP15daLv4HsTarget_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daLv4HsTarget_Execute(daLv4HsTarget_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Execute__FP15daLv4HsTarget_c.s" +static int daLv4HsTarget_Execute(daLv4HsTarget_c* i_this) { + return i_this->MoveBGExecute(); } -#pragma pop /* 80C5F950-80C5F970 000410 0020+00 1/0 0/0 0/0 .text daLv4HsTarget_Delete__FP15daLv4HsTarget_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daLv4HsTarget_Delete(daLv4HsTarget_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Delete__FP15daLv4HsTarget_c.s" +static int daLv4HsTarget_Delete(daLv4HsTarget_c* i_this) { + return i_this->MoveBGDelete(); } -#pragma pop /* 80C5F970-80C5F990 000430 0020+00 1/0 0/0 0/0 .text daLv4HsTarget_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daLv4HsTarget_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/daLv4HsTarget_Create__FP10fopAc_ac_c.s" +static int daLv4HsTarget_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop - -/* 80C5F990-80C5F9EC 000450 005C+00 2/1 0/0 0/0 .text __dt__19daLv4HsTarget_HIO_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daLv4HsTarget_HIO_c::~daLv4HsTarget_HIO_c() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__dt__19daLv4HsTarget_HIO_cFv.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80C5FAE0-80C5FAEC 000008 000C+00 1/1 0/0 0/0 .bss @3618 */ -static u8 lit_3618[12]; /* 80C5FAEC-80C5FAF0 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; +static daLv4HsTarget_HIO_c l_HIO; -/* 80C5F9EC-80C5FA28 0004AC 003C+00 0/0 1/0 0/0 .text __sinit_d_a_obj_lv4HsTarget_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_a_obj_lv4HsTarget_cpp() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget/__sinit_d_a_obj_lv4HsTarget_cpp.s" -} -#pragma pop +/* ############################################################################################## */ +/* 80C5FA48-80C5FA68 -00001 0020+00 1/0 0/0 0/0 .data l_daLv4HsTarget_Method */ +static actor_method_class l_daLv4HsTarget_Method = { + (process_method_func)daLv4HsTarget_Create, (process_method_func)daLv4HsTarget_Delete, + (process_method_func)daLv4HsTarget_Execute, (process_method_func)NULL, + (process_method_func)daLv4HsTarget_Draw, +}; -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80C5F9EC, __sinit_d_a_obj_lv4HsTarget_cpp); -#pragma pop - -/* 80C5FA3C-80C5FA3C 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 80C5FA68-80C5FA98 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Lv4HsTarget */ +extern actor_process_profile_definition g_profile_Obj_Lv4HsTarget = { + -3, + 3, + -3, + PROC_Obj_Lv4HsTarget, + &g_fpcLf_Method.mBase, + sizeof(daLv4HsTarget_c), + 0, + 0, + &g_fopAc_Method.base, + 640, + &l_daLv4HsTarget_Method, + 0x40100, + 0, + 14, +}; diff --git a/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.cpp b/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.cpp index 126f292b2a..275b58fd0e 100644 --- a/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.cpp +++ b/rel/d/a/tag/d_a_tag_lantern/d_a_tag_lantern.cpp @@ -16,6 +16,7 @@ int daTag_Lantern_c::create() { new (this) daTag_Lantern_c(); fopAcM_OnCondition(this, 8); } + initialize(); return cPhs_COMPLEATE_e; } @@ -28,35 +29,36 @@ int daTag_Lantern_c::Delete() { /* 8048EDDC-8048EF6C 00021C 0190+00 2/2 0/0 0/0 .text Execute__15daTag_Lantern_cFv */ int daTag_Lantern_c::Execute() { - s32 sVar; - dComIfG_play_c& play = g_dComIfG_gameInfo.getPlay(); // fake match + dComIfG_play_c& play = g_dComIfG_gameInfo.getPlay(); // fake match + if (i_dComIfGp_event_runCheck()) { - if (mEvtInfo.mCommand == 1) { + if (mEvtInfo.checkCommandTalk()) { if (!field_0x604) { - field_0x568.init(this, field_0x600, NULL, NULL); - field_0x604 += 1; - } else if (field_0x604 == 1 && field_0x568.doFlow(this, NULL, NULL)) { + mMsgFlow.init(this, mFlowIndex, 0, NULL); + field_0x604++; + } else if (field_0x604 == 1 && mMsgFlow.doFlow(this, NULL, 0)) { play.getEvent().reset(); field_0x604 = 0; field_0x5f8 = 0; } } - } else { - if (field_0x5f8) { - mEvtInfo.mCondition |= 1; - fopAcM_orderSpeakEvent(this, 0, 0); - } + } else if (field_0x5f8) { + mEvtInfo.i_onCondition(1); + fopAcM_orderSpeakEvent(this, 0, 0); } - field_0x5b4.SetPos(¤t.pos); - field_0x5f4 = dComIfG_Bgsp().GroundCross(&field_0x5b4); - if (field_0x5f4 != -1000000000.0f) { - sVar = dComIfG_Bgsp().GetRoomId(field_0x5b4); - mTevStr.mEnvrIdxOverride = dComIfG_Bgsp().GetPolyColor(field_0x5b4); + mGndChk.SetPos(¤t.pos); + mGroundCross = dComIfG_Bgsp().GroundCross(&mGndChk); + + s32 room_no; + if (mGroundCross != -1000000000.0f) { + room_no = dComIfG_Bgsp().GetRoomId(mGndChk); + mTevStr.mEnvrIdxOverride = dComIfG_Bgsp().GetPolyColor(mGndChk); } else { - sVar = dComIfGp_roomControl_getStayNo(); + room_no = dComIfGp_roomControl_getStayNo(); } - mTevStr.mRoomNo = sVar; + + mTevStr.mRoomNo = room_no; fopAcM_SetRoomNo(this, mTevStr.mRoomNo); mAttentionInfo.mFlags = 0; mAttentionInfo.mPosition = current.pos; @@ -72,16 +74,20 @@ int daTag_Lantern_c::Draw() { /* 8048EF74-8048F024 0003B4 00B0+00 1/1 0/0 0/0 .text initialize__15daTag_Lantern_cFv */ void daTag_Lantern_c::initialize() { fopAcM_setCullSizeBox(this, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); - if (orig.angle.z != 0xffff) { - field_0x600 = orig.angle.z; + + if (orig.angle.z != 0xFFFF) { + mFlowIndex = orig.angle.z; } else { - field_0x600 = -1; + mFlowIndex = -1; } + orig.angle.z = 0; - field_0x5fc = fopAcM_GetParam(this) & 0xfff; + field_0x5fc = fopAcM_GetParam(this) & 0xFFF; + mScale.x *= 100.0f; mScale.y *= 100.0f; mScale.z *= 100.0f; + Execute(); } @@ -110,9 +116,6 @@ static int daTag_Lantern_IsDelete(void* i_this) { return 1; } -/* 8048F1C8-8048F1D4 000008 000C+00 1/1 0/0 0/0 .bss @3622 */ -static u8 lit_3622[12]; - /* 8048F1D4-8048F1D8 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ static daTag_Lantern_Param_c l_HIO; @@ -134,7 +137,7 @@ extern actor_process_profile_definition g_profile_TAG_LANTERN = { 0, // mSizeOther 0, // mParameters &g_fopAc_Method.base, // mSubMtd - 0x011E, // mPriority + 286, // mPriority &daTag_Lantern_MethodTable, // mSubMtd 0x00040000, // mStatus 0, // mActorType From 49dc4bc86f9b00d564dc0e5587cf5ffc69624e6d Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Sat, 1 Jul 2023 02:02:58 -0700 Subject: [PATCH 23/35] build fix --- include/d/d_gameover.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/d/d_gameover.h b/include/d/d_gameover.h index 80efa1f995..9a8841750c 100644 --- a/include/d/d_gameover.h +++ b/include/d/d_gameover.h @@ -13,6 +13,7 @@ public: /* 8019AFE0 */ dGov_HIO_c(); /* 8019C06C */ virtual ~dGov_HIO_c(); + /* 0x04 */ u8 unk_0x4; /* 0x08 */ f32 mScale; /* 0x0C */ f32 mAlpha; /* 0x10 */ f32 mAnimSpeed; From b320ea785a7262d5647f460c0f19345263192a95 Mon Sep 17 00:00:00 2001 From: Jcw87 Date: Sun, 2 Jul 2023 20:49:01 -0700 Subject: [PATCH 24/35] d_cc_d_nonmatching --- include/SSystem/SComponent/c_cc_d.h | 32 +++- include/SSystem/SComponent/c_m3d_g_cyl.h | 2 +- include/SSystem/SComponent/c_m3d_g_sph.h | 1 + include/d/cc/d_cc_d.h | 54 ++++-- libs/SSystem/SComponent/c_m3d.cpp | 20 +- rel/d/a/d_a_crod/d_a_crod.cpp | 10 +- rel/d/a/d_a_hitobj/d_a_hitobj.cpp | 8 +- rel/d/a/e/d_a_e_ym/d_a_e_ym.cpp | 8 +- rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.cpp | 8 +- .../obj/d_a_obj_volcball/d_a_obj_volcball.cpp | 8 +- rel/d/a/obj/d_a_obj_web0/d_a_obj_web0.cpp | 8 +- src/d/a/d_a_alink.cpp | 14 +- src/d/cc/d_cc_d_nonmatching.cpp | 178 ++++++++---------- src/d/cc/d_cc_s.cpp | 4 +- 14 files changed, 204 insertions(+), 151 deletions(-) diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h index b8b1ba29fa..0e2e4b2982 100644 --- a/include/SSystem/SComponent/c_cc_d.h +++ b/include/SSystem/SComponent/c_cc_d.h @@ -124,9 +124,20 @@ public: cCcD_TriAttr() {} }; +struct cCcD_SrcCpsAttr { + cM3dGCpsS mCps; +}; + class cCcD_CpsAttr : public cCcD_ShapeAttr, public cM3dGCps { public: cCcD_CpsAttr() {} + void Set(const cCcD_SrcCpsAttr& pSrc) { + cM3dGCps::Set(pSrc.mCps); + } + void Set(const cXyz& pStart, const cXyz& pEnd, float radius) { + cM3dGCps::Set(pStart, pEnd, radius); + } + /* 80085450 */ virtual ~cCcD_CpsAttr() {} /* 80263DC0 */ virtual bool CrossAtTg(cCcD_SphAttr const&, cXyz*) const; /* 80263E04 */ virtual bool CrossAtTg(cCcD_TriAttr const&, cXyz*) const; @@ -152,13 +163,15 @@ public: STATIC_ASSERT(0x40 == sizeof(cCcD_CpsAttr)); -class cCcD_SrcSphAttr : public cM3dGSphS {}; +struct cCcD_SrcSphAttr { + cM3dGSphS mSph; +}; class cCcD_SphAttr : public cCcD_ShapeAttr, public cM3dGSph { public: cCcD_SphAttr() {} void Set(const cCcD_SrcSphAttr& src) { - cM3dGSph::Set(src); + cM3dGSph::Set(src.mSph); } /* 8008721C */ virtual ~cCcD_SphAttr() {} @@ -339,8 +352,9 @@ public: s32 getSPrm() const { return mSPrm; } void setRPrm(s32 rprm) { mRPrm = rprm; } s32 getRPrm() const { return mRPrm; } - cCcD_Obj* getHitObj() { return mHitObj; } + cCcD_Obj* GetHitObj() { return mHitObj; } u32 MskSPrm(u32 mask) const { return mSPrm & mask; } + u32 MskRPrm(u32 mask) { return mRPrm & mask; } void OnSPrmBit(u32 flag) { mSPrm |= flag; } void OffSPrmBit(u32 flag) { mSPrm &= ~flag; } }; @@ -362,6 +376,7 @@ public: void SetType(u32 type) { mType = type; } void SetAtp(int atp) { mAtp = atp; } void ClrSet() { OffSPrmBit(1); } + u32 ChkHit() { return MskRPrm(1); } protected: /* 0x10 */ int mType; @@ -383,6 +398,7 @@ public: u32 GetGrp() const { return MskSPrm(0x1E); } bool ChkSet() const { return MskSPrm(1); } void ClrSet() { OffSPrmBit(1); } + u32 ChkHit() { return MskRPrm(1); } private: /* 0x10 */ int mType; @@ -404,6 +420,7 @@ public: u32 ChkNoCrr() const { return MskSPrm(0x100); } u32 ChkSph3DCrr() const { return MskSPrm(0x80); } void ClrSet() { OffSPrmBit(1); } + u32 ChkHit() { return MskRPrm(1); } }; STATIC_ASSERT(0x10 == sizeof(cCcD_ObjCo)); @@ -460,6 +477,15 @@ public: void OnCoSPrmBit(u32 flag) { mObjCo.OnSPrmBit(flag); } void SetTgSPrm(u32 prm) { mObjTg.SetSPrm(prm); } void SetCoSPrm(u32 prm) { mObjCo.SetSPrm(prm); } + void ClrAtHit() { mObjAt.ClrHit(); } + void ClrTgHit() { mObjTg.ClrHit(); } + void ClrCoHit() { mObjCo.ClrHit(); } + u32 ChkAtHit() { return mObjAt.ChkHit(); } + u32 ChkTgHit() { return mObjTg.ChkHit(); } + u32 ChkCoHit() { return mObjCo.ChkHit(); } + cCcD_Obj* GetAtHitObj() { return mObjAt.GetHitObj(); } + cCcD_Obj* GetTgHitObj() { return mObjTg.GetHitObj(); } + cCcD_Obj* GetCoHitObj() { return mObjCo.GetHitObj(); } }; // Size = 0x40 diff --git a/include/SSystem/SComponent/c_m3d_g_cyl.h b/include/SSystem/SComponent/c_m3d_g_cyl.h index 8e8d393689..f9a895741f 100644 --- a/include/SSystem/SComponent/c_m3d_g_cyl.h +++ b/include/SSystem/SComponent/c_m3d_g_cyl.h @@ -31,7 +31,7 @@ public: bool cross(const cM3dGSph*, cXyz*) const; bool cross(const cM3dGCyl*, cXyz*) const; void calcMinMax(cXyz*, cXyz*); - const cXyz& GetCP(void) const { return mCenter; } + const cXyz* GetCP(void) const { return &mCenter; } f32 GetR(void) const { return mRadius; } f32 GetH(void) const { return mHeight; } cXyz& GetC() { return mCenter; } diff --git a/include/SSystem/SComponent/c_m3d_g_sph.h b/include/SSystem/SComponent/c_m3d_g_sph.h index 494521fa01..e1a09de2ad 100644 --- a/include/SSystem/SComponent/c_m3d_g_sph.h +++ b/include/SSystem/SComponent/c_m3d_g_sph.h @@ -30,6 +30,7 @@ public: bool cross(const cM3dGCyl*, cXyz*) const; void GetMinMaxCube(cXyz&, cXyz&) const; const cXyz& GetC(void) const { return mCenter; } + const cXyz* GetCP() const { return &mCenter; } const f32 GetR(void) const { return mRadius; } f32 GetCX(void) const { return mCenter.x; } f32 GetCY(void) const { return mCenter.y; } diff --git a/include/d/cc/d_cc_d.h b/include/d/cc/d_cc_d.h index 66c7217599..83d8714930 100644 --- a/include/d/cc/d_cc_d.h +++ b/include/d/cc/d_cc_d.h @@ -7,6 +7,7 @@ */ #include "SSystem/SComponent/c_cc_d.h" +#include "Z2AudioLib/Z2SeMgr.h" #include "dolphin/types.h" enum dCcD_hitSe { @@ -66,16 +67,20 @@ struct dCcD_SrcGObjTg { /* 0x4 */ dCcD_SrcGAtTgCoCommonBase mBase; }; // Size: 0x8 +struct dCcD_SrcGObjCo { + /* 0x0 */ dCcD_SrcGAtTgCoCommonBase mBase; +}; // Size: 0x4 + struct dCcD_SrcGObjInf { /* 0x00 */ cCcD_SrcObj mObj; /* 0x1C */ dCcD_SrcGObjAt mGObjAt; /* 0x24 */ dCcD_SrcGObjTg mGObjTg; - /* 0x2C */ dCcD_SrcGAtTgCoCommonBase mGObjCo; + /* 0x2C */ dCcD_SrcGObjCo mGObjCo; }; // Size: 0x30 struct dCcD_SrcSph { /* 0x00 */ dCcD_SrcGObjInf mObjInf; - /* 0x30 */ cM3dGSphS mSph; + /* 0x30 */ cCcD_SrcSphAttr mSphAttr; }; // Size: 0x40 struct dCcD_SrcTri { @@ -89,7 +94,7 @@ struct dCcD_SrcCyl { struct dCcD_SrcCps { /* 0x00 */ dCcD_SrcGObjInf mObjInf; - /* 0x30 */ cM3dGCpsS mCps; + /* 0x30 */ cCcD_SrcCpsAttr mCpsAttr; }; // Size: 0x4C class dCcD_GStts : public cCcD_GStts { @@ -98,6 +103,7 @@ public: /* 800837F8 */ void Ct(); /* 80083830 */ void Move(); /* 8008523C */ virtual ~dCcD_GStts() {} + void ClrAt() { mAt = 0; } void ClrTg() { mTg = 0; } void SetAtApid(unsigned int id) { mAtApid = id; } void SetTgApid(unsigned int id) { mTgApid = id; } @@ -111,6 +117,7 @@ public: void SetAtSpl(dCcG_At_Spl spl) { mAt = spl; } dCcG_Tg_Spl GetTgSpl() { return (dCcG_Tg_Spl)mTg; } void SetTgSpl(dCcG_Tg_Spl spl) { mTg = spl; } + void OnNoActor() { field_0x1C |= 1; } // private: /* 0x04 */ u8 mAt; @@ -127,11 +134,11 @@ public: class dCcD_Stts : public cCcD_Stts, public dCcD_GStts { public: dCcD_Stts() {} - /* 80083850 */ cCcD_GStts* GetGStts(); + /* 80083850 */ virtual cCcD_GStts* GetGStts(); /* 80083860 */ void Init(int, int, fopAc_ac_c*); - /* 800838F4 */ void Ct(); - /* 80083928 */ void ClrAt(); - /* 80083934 */ void ClrTg(); + /* 800838F4 */ virtual void Ct(); + /* 80083928 */ virtual void ClrAt(); + /* 80083934 */ virtual void ClrTg(); /* 800851AC */ virtual ~dCcD_Stts() {} }; // Size = 0x3C @@ -164,7 +171,7 @@ public: /* 80083748 */ bool ChkEffCounter(); /* 80083CA0 */ virtual ~dCcD_GAtTgCoCommonBase() {} - void ResetEffCounter() { mEffCounter = 0; } + void ClrEffCounter() { mEffCounter = 0; } u32 GetGFlag() const { return mGFlag; } u32 GetRPrm() const { return mRPrm; } u32 MskSPrm(u32 mask) const { return mGFlag & mask; } @@ -173,9 +180,11 @@ public: void OnSPrm(u32 flag) { mGFlag |= flag; } void OnRPrm(u32 flag) { mRPrm |= flag; } void OffSPrm(u32 flag) { mGFlag &= ~flag; } + void OffRPrm(u32 flag) { mRPrm &= ~flag; } bool ChkRPrm(u32 flag) const { return MskRPrm(flag); } void SetHitCallback(dCcD_HitCallback callback) { mHitCallback = callback; } dCcD_HitCallback GetHitCallback() { return mHitCallback; } + void ClrHit() { ClrActorInfo(); } }; // Size = 0x1C @@ -243,6 +252,7 @@ private: class dCcD_GObjCo : public dCcD_GAtTgCoCommonBase { public: /* 80083B8C */ virtual ~dCcD_GObjCo() {} + void Set(dCcD_SrcGObjCo const& pSrc) { dCcD_GAtTgCoCommonBase::Set(pSrc.mBase); } }; // Size = 0x1C ? // Object Info @@ -250,21 +260,21 @@ class dCcD_GObjInf : public cCcD_GObjInf { public: /* 80083A28 */ dCcD_GObjInf(); /* 800840E4 */ virtual ~dCcD_GObjInf(); - /* 80084268 */ cCcD_GObjInf* GetGObjInf(); + /* 80084268 */ virtual cCcD_GObjInf* GetGObjInf(); /* 8008426C */ virtual void ClrAtHit(); /* 800842C0 */ u32 ChkAtHit(); /* 80084318 */ void ResetAtHit(); /* 80084358 */ cCcD_Obj* GetAtHitObj(); /* 800843A8 */ cCcD_GObjInf* GetAtHitGObj(); - /* 800843DC */ bool ChkAtNoGuard(); - /* 800843FC */ void ClrTgHit(); + /* 800843DC */ u8 ChkAtNoGuard(); + /* 800843FC */ virtual void ClrTgHit(); /* 80084460 */ u32 ChkTgHit(); /* 800844B8 */ void ResetTgHit(); /* 800844F8 */ cCcD_Obj* GetTgHitObj(); /* 80084548 */ dCcD_GObjInf* GetTgHitGObj(); /* 8008457C */ u8 GetTgHitObjSe(); - /* 800845B0 */ static u32 getHitSeID(u8, int); - /* 8008460C */ void ClrCoHit(); + /* 800845B0 */ static Z2SoundID getHitSeID(u8, int); + /* 8008460C */ virtual void ClrCoHit(); /* 80084658 */ u32 ChkCoHit(); /* 800846B0 */ void ResetCoHit(); /* 800846F0 */ cCcD_Obj* GetCoHitObj(); @@ -273,6 +283,7 @@ public: fopAc_ac_c* GetCoHitAc() { return mGObjCo.GetAc(); } void SetAtVec(cXyz& vec) { mGObjAt.SetVec(vec); } + void SetTgVec(cXyz& vec) { mGObjTg.SetVec(vec); } bool ChkAtNoMass() const { return mGObjAt.ChkSPrm(8); } void OnAtNoHitMark() { mGObjAt.OnSPrm(2); } void OffAtNoHitMark() { mGObjAt.OffSPrm(2); } @@ -326,8 +337,14 @@ public: void SetAtHitApid(unsigned int apid) { mGObjAt.SetHitApid(apid); } void SetTgHitApid(unsigned int apid) { mGObjTg.SetHitApid(apid); } void OnCoHitNoActor() { mGObjCo.OnRPrm(1); } + void OffCoHitNoActor() { mGObjCo.OffRPrm(1); } void OnAtHitNoActor() { mGObjAt.OnRPrm(2); } + void OffAtHitNoActor() { mGObjAt.OffRPrm(2); } void OnTgHitNoActor() { mGObjTg.OnRPrm(1); } + void OffTgHitNoActor() { mGObjTg.OffRPrm(1); } + bool ChkCoHitNoActor() const { return mGObjCo.ChkRPrm(1); } + bool ChkAtHitNoActor() const { return mGObjAt.ChkRPrm(2); } + bool ChkTgHitNoActor() const { return mGObjTg.ChkRPrm(1); } bool ChkTgWolfSpNoDamage() { return mGObjTg.ChkSPrm(0x800); } bool ChkAtNoHitMark() { return mGObjAt.ChkSPrm(2); } bool ChkTgNoHitMark() { return mGObjTg.ChkSPrm(4); } @@ -338,17 +355,26 @@ public: int GetAtHitMark() { return mGObjAt.GetHitMark(); } bool ChkAtEffCounter() { return mGObjAt.ChkEffCounter(); } bool ChkTgEffCounter() { return mGObjTg.ChkEffCounter(); } + void ClrAtEffCounter() { mGObjAt.ClrEffCounter(); } + void ClrTgEffCounter() { mGObjTg.ClrEffCounter(); } + void ClrCoEffCounter() { mGObjCo.ClrEffCounter(); } void SetAtEffCounterTimer() { mGObjAt.SetEffCounterTimer(); } void SetTgEffCounterTimer() { mGObjTg.SetEffCounterTimer(); } + void SubtractAtEffCounter() { mGObjAt.SubtractEffCounter(); } + void SubtractTgEffCounter() { mGObjTg.SubtractEffCounter(); } + void SubtractCoEffCounter() { mGObjCo.SubtractEffCounter(); } void OnTgShieldHit() { mGObjTg.OnRPrm(2); } + void OffTgShieldHit() { mGObjTg.OffRPrm(2); } void OnAtShieldHit() { mGObjAt.OnRPrm(1); } + void OffAtShieldHit() { mGObjAt.OffRPrm(1); } + void OffTgMagneHit() { mGObjTg.OffRPrm(4); } void SetTgRVec(cXyz& vec) { mGObjTg.SetRVec(vec); } void SetAtRVec(cXyz& vec) { mGObjAt.SetRVec(vec); } void SetTgHitPos(cXyz& pos) { mGObjTg.SetHitPos(pos); } void SetAtHitPos(cXyz& pos) { mGObjAt.SetHitPos(pos); } u32 GetTgHitObjHitSeID(int i_soundID) { return getHitSeID(GetTgHitObjSe(),i_soundID); } - static u32 const m_hitSeID[24]; + static const Z2SoundID m_hitSeID[24]; protected: /* 0x058 */ dCcD_GObjAt mGObjAt; diff --git a/libs/SSystem/SComponent/c_m3d.cpp b/libs/SSystem/SComponent/c_m3d.cpp index c9c83afa10..148318f825 100644 --- a/libs/SSystem/SComponent/c_m3d.cpp +++ b/libs/SSystem/SComponent/c_m3d.cpp @@ -296,17 +296,17 @@ bool cM3d_Cross_AabAab(const cM3dGAab* pAabA, const cM3dGAab* pAabB) { /* 80268B0C-80268BB4 26344C 00A8+00 0/0 4/4 0/0 .text cM3d_Cross_AabCyl__FPC8cM3dGAabPC8cM3dGCyl */ bool cM3d_Cross_AabCyl(const cM3dGAab* pAab, const cM3dGCyl* pCyl) { - if (pAab->getMinP().x > pCyl->GetCP().x + pCyl->GetR()) { + if (pAab->getMinP().x > pCyl->GetCP()->x + pCyl->GetR()) { return false; - } else if (pAab->getMaxP().x < pCyl->GetCP().x - pCyl->GetR()) { + } else if (pAab->getMaxP().x < pCyl->GetCP()->x - pCyl->GetR()) { return false; - } else if (pAab->getMinP().z > pCyl->GetCP().z + pCyl->GetR()) { + } else if (pAab->getMinP().z > pCyl->GetCP()->z + pCyl->GetR()) { return false; - } else if (pAab->getMaxP().z < pCyl->GetCP().z - pCyl->GetR()) { + } else if (pAab->getMaxP().z < pCyl->GetCP()->z - pCyl->GetR()) { return false; - } else if (pAab->getMinP().y > pCyl->GetCP().y + pCyl->GetH()) { + } else if (pAab->getMinP().y > pCyl->GetCP()->y + pCyl->GetH()) { return false; - } else if (pAab->getMaxP().y < pCyl->GetCP().y) { + } else if (pAab->getMaxP().y < pCyl->GetCP()->y) { return false; } else { return true; @@ -1002,11 +1002,11 @@ static int cM3d_Cross_CylPntPnt(const cM3dGCyl* pCylinder, const Vec* pVecStart, /* 8026D0B0-8026D114 2679F0 0064+00 2/2 0/0 0/0 .text cM3d_Cross_CylPnt__FPC8cM3dGCylPC3Vec */ bool cM3d_Cross_CylPnt(const cM3dGCyl* pCylinder, const Vec* pPoint) { - f32 dX = pCylinder->GetCP().getXDiff(pPoint); - f32 dZ = pCylinder->GetCP().getZDiff(pPoint); - f32 maxY = pCylinder->GetCP().y + pCylinder->GetH(); + f32 dX = pCylinder->GetCP()->getXDiff(pPoint); + f32 dZ = pCylinder->GetCP()->getZDiff(pPoint); + f32 maxY = pCylinder->GetCP()->y + pCylinder->GetH(); if (dX * dX + dZ * dZ < pCylinder->GetR() * pCylinder->GetR() && - pCylinder->GetCP().y < pPoint->y && maxY > pPoint->y) { + pCylinder->GetCP()->y < pPoint->y && maxY > pPoint->y) { return true; } else { return false; diff --git a/rel/d/a/d_a_crod/d_a_crod.cpp b/rel/d/a/d_a_crod/d_a_crod.cpp index e031eeb239..fa29b20f33 100644 --- a/rel/d/a/d_a_crod/d_a_crod.cpp +++ b/rel/d/a/d_a_crod/d_a_crod.cpp @@ -70,10 +70,12 @@ static dCcD_SrcCps l_atCpsSrc = { {0}, }, { - {0.0f, 0.0f, 0.0f}, - {0.0f, 0.0f, 0.0f}, - 20.0f, - }, + { + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + 20.0f, + }, + } }; /* 804A2F18-804A31F8 000158 02E0+00 1/1 0/0 0/0 .text create__8daCrod_cFv */ diff --git a/rel/d/a/d_a_hitobj/d_a_hitobj.cpp b/rel/d/a/d_a_hitobj/d_a_hitobj.cpp index b391295804..231a5556e0 100644 --- a/rel/d/a/d_a_hitobj/d_a_hitobj.cpp +++ b/rel/d/a/d_a_hitobj/d_a_hitobj.cpp @@ -51,9 +51,11 @@ static dCcD_SrcSph cc_sph_src = { {0}, }, { - {0.0f, 0.0f, 0.0f}, - 100.0f, - }, + { + {0.0f, 0.0f, 0.0f}, + 100.0f, + }, + } }; /* 8046B400-8046B53C 000120 013C+00 1/0 0/0 0/0 .text daHitobj_Create__FP10fopAc_ac_c */ 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 f9e92762bf..e6e104c125 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 @@ -436,9 +436,11 @@ dCcD_SrcSph E_YM_n::cc_sph_src = { {0}, }, { - {0.0f, 0.0f, 0.0f}, - 40.0f, - }, + { + {0.0f, 0.0f, 0.0f}, + 40.0f, + }, + } }; /* 80815B7C-80815B84 000078 0008+00 0/0 0/0 0/0 .data w_eff_id$5427 */ 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 31f931b973..803ca22165 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 @@ -198,9 +198,11 @@ const static dCcD_SrcSph l_sph_src = { {0}, }, { - {0.0f, 0.0f, 0.0f}, - 50.0f, - }, + { + {0.0f, 0.0f, 0.0f}, + 50.0f, + }, + } }; COMPILER_STRIP_GATE(0x80CECABC, &l_sph_src); #pragma pop diff --git a/rel/d/a/obj/d_a_obj_volcball/d_a_obj_volcball.cpp b/rel/d/a/obj/d_a_obj_volcball/d_a_obj_volcball.cpp index 374042f83f..9f4b95d22a 100644 --- a/rel/d/a/obj/d_a_obj_volcball/d_a_obj_volcball.cpp +++ b/rel/d/a/obj/d_a_obj_volcball/d_a_obj_volcball.cpp @@ -410,9 +410,11 @@ static const dCcD_SrcSph l_sph_src = { {0}, }, { - {0.0f, 0.0f, 0.0f}, - 100.0f, - }, + { + {0.0f, 0.0f, 0.0f}, + 100.0f, + }, + } }; /* 80D23E0C-80D23E10 000040 0004+00 2/6 0/0 0/0 .rodata @3715 */ diff --git a/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0.cpp b/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0.cpp index d292238a6e..14ef764cf3 100644 --- a/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0.cpp +++ b/rel/d/a/obj/d_a_obj_web0/d_a_obj_web0.cpp @@ -378,9 +378,11 @@ static int daObj_Web0_Create(fopAc_ac_c* i_this) { {0}, }, { - {0.0f, 0.0f, 0.0f}, - 40.0f, - }, + { + {0.0f, 0.0f, 0.0f}, + 40.0f, + }, + } }; int phase = dComIfG_resLoad(&_this->mPhase, "Obj_web0"); diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index 479d1da91a..2225697343 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -11287,8 +11287,10 @@ static dCcD_SrcSph l_sphSrc = { {0}, }, { - {0.0f, 0.0f, 0.0f}, - 40.0f, + { + {0.0f, 0.0f, 0.0f}, + 40.0f, + } }, }; @@ -11316,9 +11318,11 @@ static dCcD_SrcCps l_atCpsSrc = { {0}, }, { - {0.0f, 0.0f, 0.0f}, - {0.0f, 0.0f, 0.0f}, - 20.0f, + { + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + 20.0f, + } }, }; diff --git a/src/d/cc/d_cc_d_nonmatching.cpp b/src/d/cc/d_cc_d_nonmatching.cpp index a67067aa58..acde826b65 100644 --- a/src/d/cc/d_cc_d_nonmatching.cpp +++ b/src/d/cc/d_cc_d_nonmatching.cpp @@ -16,13 +16,13 @@ /* 8008364C-80083660 07DF8C 0014+00 3/3 0/0 0/0 .text ClrActorInfo__22dCcD_GAtTgCoCommonBaseFv */ void dCcD_GAtTgCoCommonBase::ClrActorInfo() { - mApid = 0xFFFFFFFF; + mApid = -1; mAc = NULL; } /* 80083660-80083678 07DFA0 0018+00 1/1 0/0 0/0 .text ct__22dCcD_GAtTgCoCommonBaseFv */ void dCcD_GAtTgCoCommonBase::ct() { - mGFlag = NULL; + mGFlag = 0; mRPrm = 0; mHitCallback = NULL; mEffCounter = 0; @@ -36,18 +36,16 @@ void dCcD_GAtTgCoCommonBase::SetHitApid(unsigned int hitApid) { /* 80083688-80083704 07DFC8 007C+00 6/6 17/17 43/43 .text GetAc__22dCcD_GAtTgCoCommonBaseFv */ fopAc_ac_c* dCcD_GAtTgCoCommonBase::GetAc() { - if (mApid == 0xFFFFFFFF) { + if (mApid == -1) { return NULL; - } else { - if (mAc == NULL) { - u32 apid = mApid; - mAc = static_cast(fopAcIt_Judge(fpcSch_JudgeByID, &apid)); - if (mAc == NULL) { - mApid = 0xFFFFFFFF; - } - } - return mAc; } + if (mAc == NULL) { + mAc = fopAcM_SearchByID(mApid); + if (mAc == NULL) { + mApid = -1; + } + } + return mAc; } /* 80083704-80083718 07E044 0014+00 3/3 0/0 0/0 .text @@ -82,11 +80,11 @@ dCcD_GStts::dCcD_GStts() { mAt = 0; mTg = 0; mRoomId = 0; - field_0x08 = 0xFFFF; - mAtApid = 0xFFFFFFFF; - mAtOldApid = 0xFFFFFFFF; - mTgApid = 0xFFFFFFFF; - mTgOldApid = 0xFFFFFFFF; + field_0x08 = -1; + mAtApid = -1; + mAtOldApid = -1; + mTgApid = -1; + mTgOldApid = -1; field_0x1C = 0; } @@ -95,11 +93,11 @@ void dCcD_GStts::Ct() { mAt = 0; mTg = 0; mRoomId = 0; - field_0x08 = 0xFFFF; - mAtApid = 0xFFFFFFFF; - mAtOldApid = 0xFFFFFFFF; - mTgApid = 0xFFFFFFFF; - mTgOldApid = 0xFFFFFFFF; + field_0x08 = -1; + mAtApid = -1; + mAtOldApid = -1; + mTgApid = -1; + mTgOldApid = -1; field_0x1C = 0; } @@ -122,7 +120,7 @@ void dCcD_Stts::Init(int param_0, int param_1, fopAc_ac_c* pActor) { if (pActor != NULL) { actorPid = fopAcM_GetID(pActor); } else { - actorPid = 0xFFFFFFFF; + actorPid = -1; } cCcD_Stts::Init(param_0, param_1, pActor, actorPid); @@ -132,13 +130,13 @@ void dCcD_Stts::Init(int param_0, int param_1, fopAc_ac_c* pActor) { roomNo = fopAcM_GetRoomNo(pActor); } else { roomNo = 0; - field_0x1C |= 1; + OnNoActor(); } if (roomNo != -1) { - mRoomId = roomNo; + SetRoomId(roomNo); } else { - mRoomId = 0; + SetRoomId(0); } } @@ -150,7 +148,8 @@ void dCcD_Stts::Ct() { /* 80083928-80083934 07E268 000C+00 1/0 0/0 0/0 .text ClrAt__9dCcD_SttsFv */ void dCcD_Stts::ClrAt() { - mAt = 0; + cCcD_Stts::ClrAt(); + dCcD_GStts::ClrAt(); } /* 80083934-80083944 07E274 0010+00 1/0 0/0 0/0 .text ClrTg__9dCcD_SttsFv */ @@ -191,18 +190,18 @@ cCcD_GObjInf* dCcD_GObjInf::GetGObjInf() { /* 8008426C-800842C0 07EBAC 0054+00 5/0 0/0 0/0 .text ClrAtHit__12dCcD_GObjInfFv */ void dCcD_GObjInf::ClrAtHit() { - mObjAt.ClrHit(); - mGObjAt.ClrActorInfo(); - mGObjAt.mRPrm &= ~1; - mGObjAt.mRPrm &= ~2; - mGObjAt.SubtractEffCounter(); + cCcD_ObjHitInf::ClrAtHit(); + mGObjAt.ClrHit(); + OffAtShieldHit(); + OffAtHitNoActor(); + SubtractAtEffCounter(); } /* 800842C0-80084318 07EC00 0058+00 0/0 12/12 78/78 .text ChkAtHit__12dCcD_GObjInfFv */ -s32 dCcD_GObjInf::ChkAtHit() { - if ((mObjAt.getRPrm() & 1) == 0) { +u32 dCcD_GObjInf::ChkAtHit() { + if (cCcD_ObjHitInf::ChkAtHit() == 0) { return 0; - } else if ((mGObjAt.mRPrm & 2) == 0 && mGObjAt.GetAc() == NULL) { + } else if (ChkAtHitNoActor() == 0 && GetAtHitAc() == NULL) { return 0; } else { return 1; @@ -212,15 +211,15 @@ s32 dCcD_GObjInf::ChkAtHit() { /* 80084318-80084358 07EC58 0040+00 0/0 10/10 7/7 .text ResetAtHit__12dCcD_GObjInfFv */ void dCcD_GObjInf::ResetAtHit() { ClrAtHit(); - mGObjAt.mEffCounter = 0; + ClrAtEffCounter(); } /* 80084358-800843A8 07EC98 0050+00 1/1 0/0 31/31 .text GetAtHitObj__12dCcD_GObjInfFv */ cCcD_Obj* dCcD_GObjInf::GetAtHitObj() { - if ((mGObjAt.mRPrm & 2) == 0 && mGObjAt.GetAc() == NULL) { + if (ChkAtHitNoActor() == 0 && GetAtHitAc() == NULL) { return NULL; } else { - return mObjAt.getHitObj(); + return cCcD_ObjHitInf::GetAtHitObj(); } } @@ -235,36 +234,25 @@ cCcD_GObjInf* dCcD_GObjInf::GetAtHitGObj() { } /* 800843DC-800843FC 07ED1C 0020+00 0/0 1/1 0/0 .text ChkAtNoGuard__12dCcD_GObjInfFv */ -#ifdef NONMATCHING -bool dCcD_GObjInf::ChkAtNoGuard() { - return 12 < mGObjAt.mSpl; +u8 dCcD_GObjInf::ChkAtNoGuard() { + return GetAtSpl() >= 12; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool dCcD_GObjInf::ChkAtNoGuard() { - nofralloc -#include "asm/d/cc/d_cc_d/ChkAtNoGuard__12dCcD_GObjInfFv.s" -} -#pragma pop -#endif /* 800843FC-80084460 07ED3C 0064+00 5/0 0/0 0/0 .text ClrTgHit__12dCcD_GObjInfFv */ void dCcD_GObjInf::ClrTgHit() { - mObjTg.ClrHit(); - mGObjTg.ClrActorInfo(); - mGObjTg.mRPrm &= ~1; - mGObjTg.mRPrm &= ~2; - mGObjTg.mRPrm &= ~4; - mGObjTg.SubtractEffCounter(); + cCcD_ObjHitInf::ClrTgHit(); + mGObjTg.ClrHit(); + OffTgHitNoActor(); + OffTgShieldHit(); + OffTgMagneHit(); + SubtractTgEffCounter(); } /* 80084460-800844B8 07EDA0 0058+00 0/0 6/6 305/305 .text ChkTgHit__12dCcD_GObjInfFv */ -bool dCcD_GObjInf::ChkTgHit() { - if ((mObjTg.getRPrm() & 1) == 0) { +u32 dCcD_GObjInf::ChkTgHit() { + if (cCcD_ObjHitInf::ChkTgHit() == 0) { return false; - } else if ((mGObjTg.mRPrm & 1) == 0 && mGObjTg.GetAc() == NULL) { + } else if (ChkTgHitNoActor() == 0 && GetTgHitAc() == NULL) { return false; } else { return true; @@ -274,16 +262,16 @@ bool dCcD_GObjInf::ChkTgHit() { /* 800844B8-800844F8 07EDF8 0040+00 0/0 1/1 5/5 .text ResetTgHit__12dCcD_GObjInfFv */ void dCcD_GObjInf::ResetTgHit() { ClrTgHit(); - mGObjTg.mEffCounter = 0; + ClrTgEffCounter(); } /* 800844F8-80084548 07EE38 0050+00 1/1 3/3 228/228 .text GetTgHitObj__12dCcD_GObjInfFv */ cCcD_Obj* dCcD_GObjInf::GetTgHitObj() { - if ((mGObjTg.mRPrm & 1) == 0 && mGObjTg.GetAc() == NULL) { + if (ChkTgHitNoActor() == 0 && GetTgHitAc() == NULL) { return NULL; } else { - return mObjTg.getHitObj(); + return cCcD_ObjHitInf::GetTgHitObj(); } } @@ -304,13 +292,13 @@ u8 dCcD_GObjInf::GetTgHitObjSe() { if (objInf == NULL) { return NULL; } else { - return objInf->mGObjAt.mSe; + return objInf->GetAtSe(); } } /* ############################################################################################## */ /* 8037A780-8037A7E0 006DE0 0060+00 1/1 0/0 0/0 .rodata m_hitSeID__12dCcD_GObjInf */ -u32 const dCcD_GObjInf::m_hitSeID[24] = { +Z2SoundID const dCcD_GObjInf::m_hitSeID[24] = { Z2SE_HIT_DUMMY_CANCEL, Z2SE_HIT_SWORD, Z2SE_HIT_SHIELD_ATTACK, Z2SE_HIT_WOLFKICK, Z2SE_HIT_HOOKSHOT_STICK, Z2SE_HIT_METAL_WEAPON, Z2SE_HIT_STONE_WEAPON, Z2SE_HIT_HARD_BODY, Z2SE_HIT_SOFT_BODY, @@ -322,7 +310,7 @@ u32 const dCcD_GObjInf::m_hitSeID[24] = { }; /* 800845B0-8008460C 07EEF0 005C+00 0/0 3/3 32/32 .text getHitSeID__12dCcD_GObjInfFUci */ -u32 dCcD_GObjInf::getHitSeID(u8 seIdx, int useRebound) { +Z2SoundID dCcD_GObjInf::getHitSeID(u8 seIdx, int useRebound) { if (useRebound) { if (seIdx == 23) { return Z2SE_HIT_AL_ARROW_REBOUND; @@ -339,17 +327,17 @@ u32 dCcD_GObjInf::getHitSeID(u8 seIdx, int useRebound) { /* 8008460C-80084658 07EF4C 004C+00 5/0 0/0 0/0 .text ClrCoHit__12dCcD_GObjInfFv */ void dCcD_GObjInf::ClrCoHit() { - mObjCo.ClrHit(); - mGObjCo.ClrActorInfo(); - mGObjCo.mRPrm &= ~1; - mGObjCo.SubtractEffCounter(); + cCcD_ObjHitInf::ClrCoHit(); + mGObjCo.ClrHit(); + OffCoHitNoActor(); + SubtractCoEffCounter(); } /* 80084658-800846B0 07EF98 0058+00 0/0 5/5 74/74 .text ChkCoHit__12dCcD_GObjInfFv */ -bool dCcD_GObjInf::ChkCoHit() { - if ((mObjCo.getRPrm() & 1) == 0) { +u32 dCcD_GObjInf::ChkCoHit() { + if (cCcD_ObjHitInf::ChkCoHit() == 0) { return false; - } else if ((mGObjCo.mRPrm & 1) == 0 && mGObjCo.GetAc() == NULL) { + } else if (ChkCoHitNoActor() == 0 && GetCoHitAc() == NULL) { return false; } else { return true; @@ -359,15 +347,15 @@ bool dCcD_GObjInf::ChkCoHit() { /* 800846B0-800846F0 07EFF0 0040+00 0/0 1/1 2/2 .text ResetCoHit__12dCcD_GObjInfFv */ void dCcD_GObjInf::ResetCoHit() { ClrCoHit(); - mGObjCo.ResetEffCounter(); + ClrCoEffCounter(); } /* 800846F0-80084740 07F030 0050+00 0/0 0/0 36/36 .text GetCoHitObj__12dCcD_GObjInfFv */ cCcD_Obj* dCcD_GObjInf::GetCoHitObj() { - if ((mGObjCo.mRPrm & 1) == 0 && mGObjCo.GetAc() == NULL) { + if (ChkCoHitNoActor() == 0 && GetCoHitAc() == NULL) { return NULL; } else { - return mObjCo.getHitObj(); + return cCcD_ObjHitInf::GetCoHitObj(); } } @@ -387,7 +375,7 @@ dCcD_GObjInf* dCcD_GetGObjInf(cCcD_Obj* p_obj) { /* 800847D0-80084814 07F110 0044+00 0/0 1/1 20/20 .text Set__8dCcD_CpsFRC11dCcD_SrcCps */ void dCcD_Cps::Set(dCcD_SrcCps const& src) { dCcD_GObjInf::Set(src.mObjInf); - cCcD_CpsAttr::Set(src.mCps); + cCcD_CpsAttr::Set(src.mCpsAttr); } /* 80084814-80084824 07F154 0010+00 1/0 0/0 0/0 .text GetShapeAttr__8dCcD_CpsFv */ @@ -397,14 +385,14 @@ cCcD_ShapeAttr* dCcD_Cps::GetShapeAttr() { /* 80084824-80084854 07F164 0030+00 0/0 0/0 6/6 .text CalcAtVec__8dCcD_CpsFv */ void dCcD_Cps::CalcAtVec() { - cXyz& dest = mGObjAt.GetVec(); - PSVECSubtract(&GetEndP(), &GetStartP(), &dest); + cXyz* dest = GetAtVecP(); + CalcVec(dest); } /* 80084854-80084884 07F194 0030+00 0/0 0/0 2/2 .text CalcTgVec__8dCcD_CpsFv */ void dCcD_Cps::CalcTgVec() { - cXyz& dest = mGObjTg.GetVec(); - PSVECSubtract(&GetEndP(), &GetStartP(), &dest); + cXyz* dest = GetTgVecP(); + CalcVec(dest); } /* 80084884-800848A4 07F1C4 0020+00 0/0 0/0 5/5 .text Set__8dCcD_TriFRC11dCcD_SrcTri */ @@ -431,28 +419,24 @@ cCcD_ShapeAttr* dCcD_Cyl::GetShapeAttr() { /* 80084908-80084954 07F248 004C+00 0/0 3/3 3/3 .text StartCAt__8dCcD_CylFR4cXyz */ void dCcD_Cyl::StartCAt(cXyz& pos) { - cXyz zero = cXyz::Zero; - mGObjAt.SetVec(zero); + cXyz zero(cXyz::Zero); + SetAtVec(zero); SetC(pos); } -inline void vecDiff(cXyz& out, const cXyz& a, const cXyz& b) { - out = a - b; -} - /* 80084954-800849C4 07F294 0070+00 0/0 3/3 4/4 .text MoveCAt__8dCcD_CylFR4cXyz */ void dCcD_Cyl::MoveCAt(cXyz& pos) { - cXyz diff; - vecDiff(diff, pos, GetCP()); - mGObjAt.SetVec(diff); + const cXyz* center = GetCP(); + cXyz diff = pos - *center; + SetAtVec(diff); SetC(pos); } /* 800849C4-80084A34 07F304 0070+00 0/0 0/0 1/1 .text MoveCTg__8dCcD_CylFR4cXyz */ void dCcD_Cyl::MoveCTg(cXyz& pos) { - cXyz diff; - vecDiff(diff, pos, GetCP()); - mGObjTg.SetVec(diff); + const cXyz* center = GetCP(); + cXyz diff = pos - *center; + SetTgVec(diff); SetC(pos); } @@ -460,7 +444,7 @@ void dCcD_Cyl::MoveCTg(cXyz& pos) { */ void dCcD_Sph::Set(dCcD_SrcSph const& src) { dCcD_GObjInf::Set(src.mObjInf); - cCcD_SphAttr::Set(src.mSph); + cCcD_SphAttr::Set(src.mSphAttr); } /* 80084A78-80084AC4 07F3B8 004C+00 0/0 3/3 25/25 .text StartCAt__8dCcD_SphFR4cXyz */ @@ -472,9 +456,9 @@ void dCcD_Sph::StartCAt(cXyz& pos) { /* 80084AC4-80084B34 07F404 0070+00 0/0 2/2 23/23 .text MoveCAt__8dCcD_SphFR4cXyz */ void dCcD_Sph::MoveCAt(cXyz& pos) { - cXyz diff; - vecDiff(diff, pos, GetC()); - mGObjAt.SetVec(diff); + const cXyz* center = GetCP(); + cXyz diff = pos - *center; + SetAtVec(diff); SetC(pos); } diff --git a/src/d/cc/d_cc_s.cpp b/src/d/cc/d_cc_s.cpp index d98e77f0c5..d06ca72126 100644 --- a/src/d/cc/d_cc_s.cpp +++ b/src/d/cc/d_cc_s.cpp @@ -700,8 +700,8 @@ bool dCcS::chkCameraPoint(cXyz const& param_0, cCcD_ShapeAttr::Shape* param_1, f cCcD_SphAttr sp48; cCcD_SrcSphAttr sp1C; - sp1C.mCenter = param_0; - sp1C.mRadius = 1.0f; + sp1C.mSph.mCenter = param_0; + sp1C.mSph.mRadius = 1.0f; sp48.Set(sp1C); sp48.CalcAabBox(); From a35a429de085a12f20ce629462e0eb96f3a85f97 Mon Sep 17 00:00:00 2001 From: hatal175 Date: Mon, 3 Jul 2023 22:04:51 +0300 Subject: [PATCH 25/35] d_event_manager OK, d_kankyo rain WIP (#360) * d_event_manager OK, d_kankyo rain WIP * Match createTimg --- Progress.md | 8 +- .../getEventData__16dEvent_manager_cFs.s | 26 - ...etHeartCnt__12dFile_info_cFP10dSv_save_c.s | 97 ---- asm/m_Do/m_Do_graphic/createTimg__FUsUsUl.s | 45 -- include/d/event/d_event_manager.h | 2 +- include/d/kankyo/d_kankyo.h | 6 + include/d/kankyo/d_kankyo_wether.h | 13 +- include/m_Do/m_Do_mtx.h | 4 + src/d/event/d_event_data.cpp | 10 +- src/d/event/d_event_manager.cpp | 126 ----- src/d/file/d_file_sel_info.cpp | 22 +- src/d/kankyo/d_kankyo_data.cpp | 14 - src/d/kankyo/d_kankyo_rain.cpp | 468 ++++++++++++++++-- src/d/kankyo/d_kankyo_wether.cpp | 10 +- src/m_Do/m_Do_graphic.cpp | 15 +- 15 files changed, 473 insertions(+), 393 deletions(-) delete mode 100644 asm/d/event/d_event_manager/getEventData__16dEvent_manager_cFs.s delete mode 100644 asm/d/file/d_file_sel_info/setHeartCnt__12dFile_info_cFP10dSv_save_c.s delete mode 100644 asm/m_Do/m_Do_graphic/createTimg__FUsUsUl.s diff --git a/Progress.md b/Progress.md index 4b2940e43d..1d25b35060 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 28.003550% | 1007160 | 3596544 +.text | 28.020678% | 1007776 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 35.593453% | 1431096 | 4020672 +Total | 35.608774% | 1431712 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 35.593453% | 1431096 | 4020672 +main.dol | 35.608774% | 1431712 | 4020672 RELs | 33.680860% | 3873408 | 11500324 -Total | 34.176312% | 5304504 | 15520996 +Total | 34.180281% | 5305120 | 15520996 ## RELs diff --git a/asm/d/event/d_event_manager/getEventData__16dEvent_manager_cFs.s b/asm/d/event/d_event_manager/getEventData__16dEvent_manager_cFs.s deleted file mode 100644 index 2c8b0ae927..0000000000 --- a/asm/d/event/d_event_manager/getEventData__16dEvent_manager_cFs.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_800474BC: -/* 800474BC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800474C0 7C 08 02 A6 */ mflr r0 -/* 800474C4 90 01 00 14 */ stw r0, 0x14(r1) -/* 800474C8 7C 86 07 34 */ extsh r6, r4 -/* 800474CC 2C 06 FF FF */ cmpwi r6, -1 -/* 800474D0 40 82 00 0C */ bne lbl_800474DC -/* 800474D4 38 60 00 00 */ li r3, 0 -/* 800474D8 48 00 00 2C */ b lbl_80047504 -lbl_800474DC: -/* 800474DC 38 06 00 01 */ addi r0, r6, 1 -/* 800474E0 30 00 FF FF */ addic r0, r0, -1 -/* 800474E4 7C A0 01 10 */ subfe r5, r0, r0 -/* 800474E8 7C C0 46 70 */ srawi r0, r6, 8 -/* 800474EC 7C 05 28 78 */ andc r5, r0, r5 -/* 800474F0 38 00 FF FF */ li r0, -1 -/* 800474F4 41 82 00 08 */ beq lbl_800474FC -/* 800474F8 54 80 06 3E */ clrlwi r0, r4, 0x18 -lbl_800474FC: -/* 800474FC 7C 04 03 78 */ mr r4, r0 -/* 80047500 4B FF FF 55 */ bl getEventData__16dEvent_manager_cFsi -lbl_80047504: -/* 80047504 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80047508 7C 08 03 A6 */ mtlr r0 -/* 8004750C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80047510 4E 80 00 20 */ blr diff --git a/asm/d/file/d_file_sel_info/setHeartCnt__12dFile_info_cFP10dSv_save_c.s b/asm/d/file/d_file_sel_info/setHeartCnt__12dFile_info_cFP10dSv_save_c.s deleted file mode 100644 index 8f2b604f13..0000000000 --- a/asm/d/file/d_file_sel_info/setHeartCnt__12dFile_info_cFP10dSv_save_c.s +++ /dev/null @@ -1,97 +0,0 @@ -lbl_80192AA0: -/* 80192AA0 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 80192AA4 7C 08 02 A6 */ mflr r0 -/* 80192AA8 90 01 00 84 */ stw r0, 0x84(r1) -/* 80192AAC 39 61 00 80 */ addi r11, r1, 0x80 -/* 80192AB0 48 1C F7 11 */ bl _savegpr_22 -/* 80192AB4 7C 78 1B 78 */ mr r24, r3 -/* 80192AB8 7C 99 23 78 */ mr r25, r4 -/* 80192ABC A0 84 00 02 */ lhz r4, 2(r4) -/* 80192AC0 54 80 04 3E */ clrlwi r0, r4, 0x10 -/* 80192AC4 38 60 00 05 */ li r3, 5 -/* 80192AC8 7F 80 1B D6 */ divw r28, r0, r3 -/* 80192ACC 7C 04 1B D6 */ divw r0, r4, r3 -/* 80192AD0 7C 00 19 D6 */ mullw r0, r0, r3 -/* 80192AD4 7F 60 20 51 */ subf. r27, r0, r4 -/* 80192AD8 41 82 00 08 */ beq lbl_80192AE0 -/* 80192ADC 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80192AE0: -/* 80192AE0 3B 40 00 00 */ li r26, 0 -/* 80192AE4 3A E0 00 00 */ li r23, 0 -/* 80192AE8 3A C0 00 00 */ li r22, 0 -/* 80192AEC 57 64 10 3A */ slwi r4, r27, 2 -/* 80192AF0 3C 60 80 3C */ lis r3, amariheartTex@ha /* 0x803BB548@ha */ -/* 80192AF4 38 03 B5 48 */ addi r0, r3, amariheartTex@l /* 0x803BB548@l */ -/* 80192AF8 7C 60 22 14 */ add r3, r0, r4 -/* 80192AFC 3B C3 FF FC */ addi r30, r3, -4 -/* 80192B00 3C 60 80 3C */ lis r3, l_htag@ha /* 0x803BB4A8@ha */ -/* 80192B04 3B E3 B4 A8 */ addi r31, r3, l_htag@l /* 0x803BB4A8@l */ -/* 80192B08 3B A1 00 08 */ addi r29, r1, 8 -lbl_80192B0C: -/* 80192B0C 80 78 00 0C */ lwz r3, 0xc(r24) -/* 80192B10 7C 9F B2 14 */ add r4, r31, r22 -/* 80192B14 80 A4 00 00 */ lwz r5, 0(r4) -/* 80192B18 80 C4 00 04 */ lwz r6, 4(r4) -/* 80192B1C 81 83 00 00 */ lwz r12, 0(r3) -/* 80192B20 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 80192B24 7D 89 03 A6 */ mtctr r12 -/* 80192B28 4E 80 04 21 */ bctrl -/* 80192B2C 7C 7D B9 2E */ stwx r3, r29, r23 -/* 80192B30 A0 79 00 00 */ lhz r3, 0(r25) -/* 80192B34 38 00 00 05 */ li r0, 5 -/* 80192B38 7C 03 03 D6 */ divw r0, r3, r0 -/* 80192B3C 7C 1A 00 00 */ cmpw r26, r0 -/* 80192B40 40 80 00 90 */ bge lbl_80192BD0 -/* 80192B44 38 00 00 01 */ li r0, 1 -/* 80192B48 7C 7D B8 2E */ lwzx r3, r29, r23 -/* 80192B4C 98 03 00 B0 */ stb r0, 0xb0(r3) -/* 80192B50 7C 1A E0 00 */ cmpw r26, r28 -/* 80192B54 40 80 00 58 */ bge lbl_80192BAC -/* 80192B58 2C 1B 00 00 */ cmpwi r27, 0 -/* 80192B5C 41 82 00 2C */ beq lbl_80192B88 -/* 80192B60 38 1C FF FF */ addi r0, r28, -1 -/* 80192B64 7C 1A 00 00 */ cmpw r26, r0 -/* 80192B68 40 82 00 20 */ bne lbl_80192B88 -/* 80192B6C 80 9E 00 00 */ lwz r4, 0(r30) -/* 80192B70 38 A0 00 00 */ li r5, 0 -/* 80192B74 81 83 00 00 */ lwz r12, 0(r3) -/* 80192B78 81 8C 01 14 */ lwz r12, 0x114(r12) -/* 80192B7C 7D 89 03 A6 */ mtctr r12 -/* 80192B80 4E 80 04 21 */ bctrl -/* 80192B84 48 00 00 58 */ b lbl_80192BDC -lbl_80192B88: -/* 80192B88 3C 80 80 39 */ lis r4, d_file_d_file_sel_info__stringBase0@ha /* 0x803948B8@ha */ -/* 80192B8C 38 84 48 B8 */ addi r4, r4, d_file_d_file_sel_info__stringBase0@l /* 0x803948B8@l */ -/* 80192B90 38 84 00 21 */ addi r4, r4, 0x21 -/* 80192B94 38 A0 00 00 */ li r5, 0 -/* 80192B98 81 83 00 00 */ lwz r12, 0(r3) -/* 80192B9C 81 8C 01 14 */ lwz r12, 0x114(r12) -/* 80192BA0 7D 89 03 A6 */ mtctr r12 -/* 80192BA4 4E 80 04 21 */ bctrl -/* 80192BA8 48 00 00 34 */ b lbl_80192BDC -lbl_80192BAC: -/* 80192BAC 3C 80 80 39 */ lis r4, d_file_d_file_sel_info__stringBase0@ha /* 0x803948B8@ha */ -/* 80192BB0 38 84 48 B8 */ addi r4, r4, d_file_d_file_sel_info__stringBase0@l /* 0x803948B8@l */ -/* 80192BB4 38 84 00 21 */ addi r4, r4, 0x21 -/* 80192BB8 38 A0 00 00 */ li r5, 0 -/* 80192BBC 81 83 00 00 */ lwz r12, 0(r3) -/* 80192BC0 81 8C 01 14 */ lwz r12, 0x114(r12) -/* 80192BC4 7D 89 03 A6 */ mtctr r12 -/* 80192BC8 4E 80 04 21 */ bctrl -/* 80192BCC 48 00 00 10 */ b lbl_80192BDC -lbl_80192BD0: -/* 80192BD0 38 00 00 00 */ li r0, 0 -/* 80192BD4 7C 7D B8 2E */ lwzx r3, r29, r23 -/* 80192BD8 98 03 00 B0 */ stb r0, 0xb0(r3) -lbl_80192BDC: -/* 80192BDC 3B 5A 00 01 */ addi r26, r26, 1 -/* 80192BE0 2C 1A 00 14 */ cmpwi r26, 0x14 -/* 80192BE4 3A F7 00 04 */ addi r23, r23, 4 -/* 80192BE8 3A D6 00 08 */ addi r22, r22, 8 -/* 80192BEC 41 80 FF 20 */ blt lbl_80192B0C -/* 80192BF0 39 61 00 80 */ addi r11, r1, 0x80 -/* 80192BF4 48 1C F6 19 */ bl _restgpr_22 -/* 80192BF8 80 01 00 84 */ lwz r0, 0x84(r1) -/* 80192BFC 7C 08 03 A6 */ mtlr r0 -/* 80192C00 38 21 00 80 */ addi r1, r1, 0x80 -/* 80192C04 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_graphic/createTimg__FUsUsUl.s b/asm/m_Do/m_Do_graphic/createTimg__FUsUsUl.s deleted file mode 100644 index 9ea4e13645..0000000000 --- a/asm/m_Do/m_Do_graphic/createTimg__FUsUsUl.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_80007D9C: -/* 80007D9C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80007DA0 7C 08 02 A6 */ mflr r0 -/* 80007DA4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80007DA8 39 61 00 20 */ addi r11, r1, 0x20 -/* 80007DAC 48 35 A4 29 */ bl _savegpr_27 -/* 80007DB0 7C 7B 1B 78 */ mr r27, r3 -/* 80007DB4 7C 9C 23 78 */ mr r28, r4 -/* 80007DB8 7C BD 2B 78 */ mr r29, r5 -/* 80007DBC 38 C0 00 00 */ li r6, 0 -/* 80007DC0 38 E0 00 00 */ li r7, 0 -/* 80007DC4 48 35 5E 59 */ bl GXGetTexBufferSize -/* 80007DC8 3B E3 00 20 */ addi r31, r3, 0x20 -/* 80007DCC 7F E3 FB 78 */ mr r3, r31 -/* 80007DD0 38 80 00 20 */ li r4, 0x20 -/* 80007DD4 38 A0 00 00 */ li r5, 0 -/* 80007DD8 48 2C 66 9D */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 80007DDC 7C 60 1B 78 */ mr r0, r3 -/* 80007DE0 7C 1E 03 79 */ or. r30, r0, r0 -/* 80007DE4 40 82 00 0C */ bne lbl_80007DF0 -/* 80007DE8 38 60 00 00 */ li r3, 0 -/* 80007DEC 48 00 00 40 */ b lbl_80007E2C -lbl_80007DF0: -/* 80007DF0 38 80 00 00 */ li r4, 0 -/* 80007DF4 7F E5 FB 78 */ mr r5, r31 -/* 80007DF8 48 26 7B 65 */ bl cLib_memSet__FPviUl -/* 80007DFC 9B BE 00 00 */ stb r29, 0(r30) -/* 80007E00 38 00 00 00 */ li r0, 0 -/* 80007E04 98 1E 00 01 */ stb r0, 1(r30) -/* 80007E08 B3 7E 00 02 */ sth r27, 2(r30) -/* 80007E0C B3 9E 00 04 */ sth r28, 4(r30) -/* 80007E10 38 00 00 01 */ li r0, 1 -/* 80007E14 98 1E 00 14 */ stb r0, 0x14(r30) -/* 80007E18 98 1E 00 15 */ stb r0, 0x15(r30) -/* 80007E1C 98 1E 00 18 */ stb r0, 0x18(r30) -/* 80007E20 38 00 00 20 */ li r0, 0x20 -/* 80007E24 90 1E 00 1C */ stw r0, 0x1c(r30) -/* 80007E28 7F C3 F3 78 */ mr r3, r30 -lbl_80007E2C: -/* 80007E2C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80007E30 48 35 A3 F1 */ bl _restgpr_27 -/* 80007E34 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80007E38 7C 08 03 A6 */ mtlr r0 -/* 80007E3C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80007E40 4E 80 00 20 */ blr diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h index 3993688b76..a2bf747559 100644 --- a/include/d/event/d_event_manager.h +++ b/include/d/event/d_event_manager.h @@ -81,7 +81,7 @@ public: bool dataLoaded() { return mDataLoaded; } int flagCheck(int flag) { return mFlags.flagCheck(flag); } - static int getIndexCompositId(s16 param_0) { return param_0 != -1 ? (u8)param_0 : -1; } + inline static s16 getIndexCompositId(s16 param_0) { return param_0 != -1 ? (s16)(param_0 & 0xff) : (s16)-1; } static int getTypeCompositId(s16 param_0) { return param_0 == -1 ? 0 : param_0 >> 8; } static s16 makeCompositId(s16 a, int b) { return a | (b << 8); } diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index f8d93aab24..a1655a0773 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -567,5 +567,11 @@ void dKy_plight_priority_set(LIGHT_INFLUENCE* param_0); void dKy_tevstr_init(dKy_tevstr_c* param_0, s8 param_1, u8 param_2); SND_INFLUENCE* dKy_Sound_get(); void dKy_plight_cut(LIGHT_INFLUENCE* param_0); +int dKy_rain_check(); +void dKy_set_actcol_ratio(f32 ratio); +void dKy_set_bgcol_ratio(f32 ratio); +void dKy_set_fogcol_ratio(f32 ratio); +void dKy_set_vrboxcol_ratio(f32 ratio); +f32 dKy_get_parcent(f32 param_0, f32 param_1, f32 param_2); #endif /* D_KANKYO_D_KANKYO_H */ diff --git a/include/d/kankyo/d_kankyo_wether.h b/include/d/kankyo/d_kankyo_wether.h index 2a99d418b5..2242f48386 100644 --- a/include/d/kankyo/d_kankyo_wether.h +++ b/include/d/kankyo/d_kankyo_wether.h @@ -42,11 +42,7 @@ public: /* 0x38 */ u8* mpResMoon_A_A01; /* 0x3C */ u8* mpResMoon_A_A02; /* 0x40 */ u8* mpResMoon_A_A03; - /* 0x44 */ int field_0x44; - /* 0x48 */ int field_0x48; - /* 0x4C */ int field_0x4c; - /* 0x50 */ int field_0x50; - /* 0x54 */ int field_0x54; + /* 0x44 */ u32 field_0x44[5]; /* 0x58 */ int field_0x58; /* 0x5C */ f32 field_0x5c; /* 0x60 */ f32 field_0x60; @@ -54,7 +50,7 @@ public: /* 0x68 */ f32 field_0x68; /* 0x6C */ f32 field_0x6c; /* 0x70 */ GXColor mColor; - /* 0x74 */ u8 field_0x74[4]; + /* 0x74 */ GXColor field_0x74; }; // Size: 0x78 class dKankyo_sunlenz_Packet : public J3DPacket { @@ -68,10 +64,11 @@ public: /* 0x1C */ u8* mpResRing_A; /* 0x20 */ u8* mpResLenz; /* 0x24 */ cXyz mPositions[8]; - /* 0x84 */ u8 field_0x84[8]; + /* 0x84 */ f32 field_0x84; + /* 0x88 */ f32 field_0x88; /* 0x8C */ f32 field_0x8c; /* 0x90 */ f32 field_0x90; - /* 0x94 */ u8 field_0x94[4]; + /* 0x94 */ f32 field_0x94; /* 0x98 */ f32 field_0x98; /* 0x9C */ u8 field_0x9c[2]; /* 0x9E */ bool mDrawLenzInSky; diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index c45e5fd334..12c00c5921 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -35,6 +35,10 @@ inline void cMtx_concat(const Mtx a, const Mtx b, Mtx ab) { PSMTXConcat(a, b, ab); } +inline void cMtx_scale(Mtx m, f32 x, f32 y, f32 z) { + PSMTXScale(m, x, y, z); +} + inline void mDoMtx_multVec(Mtx m, const Vec* src, Vec* dst) { PSMTXMultVec(m, src, dst); } diff --git a/src/d/event/d_event_data.cpp b/src/d/event/d_event_data.cpp index 89eb2ec594..a75bc1533c 100644 --- a/src/d/event/d_event_data.cpp +++ b/src/d/event/d_event_data.cpp @@ -306,10 +306,10 @@ static int dEvDt_Next_Stage(int index, int wipe_type) { point = stgInfo->mStart; roomNo = (s8)stgInfo->mRoom; layer = dStage_sclsInfo_getSceneLayer(stgInfo); - wipe = (s8)dStage_sclsInfo_getWipe(stgInfo); + wipe = (s8)stgInfo->mWipe; wipe_time = dStage_sclsInfo_getWipeTime(stgInfo); - if (wipe == 15) { + if (stgInfo->mWipe == 15) { wipe = 0; } @@ -1237,6 +1237,7 @@ SECTION_DEAD static char const* const stringBase_80379F18 = "OffsetAngY"; SECTION_SDATA2 static f32 lit_5057 = 10.0f; /* 80045878-80045AFC 0401B8 0284+00 1/1 0/0 0/0 .text specialProcPackage__12dEvDtStaff_cFv */ +// Matches without literals #ifdef NONMATCHING void dEvDtStaff_c::specialProcPackage() { dMsgObject_c* msgObj = dComIfGp_getMsgObjectClass(); @@ -1267,9 +1268,10 @@ void dEvDtStaff_c::specialProcPackage() { } // should not save event from g_dComIfG_gameInfo to register - u8* demoData = (u8*)i_dComIfGp_getEvent().getStbDemoData(fileName); + dComIfG_play_c& info = g_dComIfG_gameInfo.play; + u8* demoData = (u8*)info.getEvent().getStbDemoData(fileName); dDemo_c::start(demoData, offsetPos, offsetAngY); - dComIfGp_event_setCullRate(10.0f); + info.getEvent().setCullRate(10.0f); int* eventFlagP = dComIfGp_evmng_getMyIntegerP(staffId, "EventFlag"); if (eventFlagP != NULL) { diff --git a/src/d/event/d_event_manager.cpp b/src/d/event/d_event_manager.cpp index 4fea4c7694..a17180d08a 100644 --- a/src/d/event/d_event_manager.cpp +++ b/src/d/event/d_event_manager.cpp @@ -11,7 +11,6 @@ #include "d/com/d_com_inf_game.h" #include "d/d_camera.h" #include "d/d_stage.h" -#include "dol2asm.h" #include "dolphin/types.h" #include "f_op/f_op_actor_mng.h" #include "global.h" @@ -21,123 +20,10 @@ // Forward References: // -extern "C" void init__18dEvent_exception_cFv(); -extern "C" void setStartDemo__18dEvent_exception_cFi(); -extern "C" void getEventName__18dEvent_exception_cFv(); -extern "C" void getSubstance__16dEvent_manager_cFP11dEvDtData_ci(); -extern "C" void __ct__16dEvent_manager_cFv(); -extern "C" void __ct__11dEvDtBase_cFv(); -extern "C" void create__16dEvent_manager_cFv(); -extern "C" void setObjectArchive__16dEvent_manager_cFPc(); -extern "C" void demoInit__16dEvent_manager_cFv(); -extern "C" void roomInit__16dEvent_manager_cFi(); -extern "C" void roomFinish__16dEvent_manager_cFi(); -extern "C" void orderStartDemo__16dEvent_manager_cFv(); -extern "C" void remove__16dEvent_manager_cFv(); -extern "C" static void extraOnObjectCallBack__FP10fopAc_ac_cPv(); -extern "C" static void extraOffObjectCallBack__FP10fopAc_ac_cPv(); -extern "C" static void allOffObjectCallBack__FP10fopAc_ac_cPv(); -extern "C" void startProc__16dEvent_manager_cFP12dEvDtEvent_c(); -extern "C" void closeProc__16dEvent_manager_cFP12dEvDtEvent_c(); -extern "C" void endProc__16dEvent_manager_cFsi(); -extern "C" void Sequencer__16dEvent_manager_cFv(); -extern "C" void Experts__16dEvent_manager_cFv(); -extern "C" void getEventData__16dEvent_manager_cFsi(); -extern "C" void getEventData__16dEvent_manager_cFs(); -extern "C" void getEventIdx__16dEvent_manager_cFPCcUcl(); -extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cUc(); -extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc(); -extern "C" void isMapToolCamera__16dEvent_manager_cFUcl(); -extern "C" void order__16dEvent_manager_cFs(); -extern "C" void startCheck__16dEvent_manager_cFs(); -extern "C" void startCheckOld__16dEvent_manager_cFPCc(); -extern "C" void endCheck__16dEvent_manager_cFs(); -extern "C" void endCheckOld__16dEvent_manager_cFPCc(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getIsAddvance__16dEvent_manager_cFi(); -extern "C" static void dEvmng_strcmp__FPCcPc(); -extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii(); -extern "C" void getMyNowCutName__16dEvent_manager_cFi(); -extern "C" void getMyDataP__16dEvent_manager_cFiPCci(); -extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci(); -extern "C" void getMySubstanceNum__16dEvent_manager_cFiPCc(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void getEventPrio__16dEvent_manager_cFP10fopAc_ac_cs(); -extern "C" void issueStaff__16dEvent_manager_cFPCc(); -extern "C" void cancelStaff__16dEvent_manager_cFPCc(); -extern "C" void setGoal__16dEvent_manager_cFP4cXyz(); -extern "C" void getGoal__16dEvent_manager_cFv(); -extern "C" void getRunEventName__16dEvent_manager_cFv(); -extern "C" static void findShutterCallBack__FP10fopAc_ac_cPv(); -extern "C" void specialCast_Shutter__16dEvent_manager_cFsi(); -extern "C" void specialCast__16dEvent_manager_cFPCci(); -extern "C" static void dEv_talkman_get_action__Fi(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void checkStartDemo__16dEvent_manager_cFv(); -extern "C" extern char const* const d_event_d_event_manager__stringBase0; - // // External References: // -extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); -extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs(); -extern "C" void fopAcM_orderMapToolAutoNextEvent__FP10fopAc_ac_cUcsUsUsUs(); -extern "C" void fopAcM_searchFromName4Event__FPCcs(); -extern "C" void getStatusRoomDt__20dStage_roomControl_cFi(); -extern "C" void dComIfG_getStageRes__FPCc(); -extern "C" void dComIfG_getRoomArcName__Fi(); -extern "C" void dComIfGp_SelectWarpPt_get__Fv(); -extern "C" void __dt__11dEvDtBase_cFv(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void dEv_defaultSkipProc__FPvi(); -extern "C" void dEv_defaultSkipZev__FPvi(); -extern "C" void dEv_defaultSkipStb__FPvi(); -extern "C" void setSkipProc__14dEvt_control_cFPvPFPvi_ii(); -extern "C" void onSkipFade__14dEvt_control_cFv(); -extern "C" void getStageEventDt__14dEvt_control_cFv(); -extern "C" void sceneChange__14dEvt_control_cFi(); -extern "C" void convPId__14dEvt_control_cFUi(); -extern "C" void searchMapEventData__14dEvt_control_cFUcl(); -extern "C" void runningEventID__14dEvt_control_cFs(); -extern "C" void setPt2__14dEvt_control_cFPv(); -extern "C" void setPtI__14dEvt_control_cFPv(); -extern "C" void setPtD__14dEvt_control_cFPv(); -extern "C" void flagSet__11dEvDtFlag_cFi(); -extern "C" void init__11dEvDtFlag_cFv(); -extern "C" void finishCheck__12dEvDtEvent_cFv(); -extern "C" void specialStaffProc__12dEvDtEvent_cFP12dEvDtStaff_c(); -extern "C" void init__12dEvDtStaff_cFv(); -extern "C" void init__11dEvDtBase_cFv(); -extern "C" void init__11dEvDtBase_cFPci(); -extern "C" void advanceCut__11dEvDtBase_cFP12dEvDtEvent_c(); -extern "C" void EventRecoverNotime__9dCamera_cFv(); -extern "C" void dCam_getBody__Fv(); -extern "C" void Center__9dCamera_cFv(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void setDemoName__11Z2StatusMgrFPc(); -extern "C" void __construct_array(); -extern "C" void _savegpr_20(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_20(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" u8 mDemoArcName__20dStage_roomControl_c[10 + 2 /* padding */]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; - BOOL daPy_py_c::checkNowWolf() { return dComIfGp_getLinkPlayer()->i_checkWolf(); } @@ -629,26 +515,14 @@ dEvDtEvent_c* dEvent_manager_c::getEventData(s16 param_0, int idx) { /* 800474BC-80047514 041DFC 0058+00 9/9 3/3 4/4 .text getEventData__16dEvent_manager_cFs */ -#ifdef NONMATCHING dEvDtEvent_c* dEvent_manager_c::getEventData(s16 eventCompositId) { if (eventCompositId == -1) { return NULL; } else { - // extsh instead of mr here return getEventData(getIndexCompositId(eventCompositId), getTypeCompositId(eventCompositId)); } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dEvDtEvent_c* dEvent_manager_c::getEventData(s16 eventCompositId) { - nofralloc -#include "asm/d/event/d_event_manager/getEventData__16dEvent_manager_cFs.s" -} -#pragma pop -#endif /* 80047514-80047698 041E54 0184+00 3/3 8/8 3/3 .text getEventIdx__16dEvent_manager_cFPCcUcl */ s16 dEvent_manager_c::getEventIdx(char const* eventName, u8 mapToolID, s32 roomNo) { diff --git a/src/d/file/d_file_sel_info.cpp b/src/d/file/d_file_sel_info.cpp index c1c243a561..d3ca3c1fcd 100644 --- a/src/d/file/d_file_sel_info.cpp +++ b/src/d/file/d_file_sel_info.cpp @@ -261,11 +261,9 @@ int dFile_info_c::setSaveData(dSv_save_c* save, int checksumValid, u8 data_num) } /* 80192AA0-80192C08 18D3E0 0168+00 1/1 0/0 0/0 .text setHeartCnt__12dFile_info_cFP10dSv_save_c */ -// close -#ifdef NONMATCHING void dFile_info_c::setHeartCnt(dSv_save_c* save) { u16 life = save->getPlayer().getPlayerStatusA().getLife(); - s32 count = (u8)(life) / 5; + s32 count = (life & 0xffff) / 5; s32 quarter_count = life % 5; if (quarter_count != 0) { count++; @@ -278,7 +276,7 @@ void dFile_info_c::setHeartCnt(dSv_save_c* save) { if (i < save->getPlayer().getPlayerStatusA().getMaxLife() / 5) { heartP[i]->show(); if (i < count) { - if (quarter_count != 0 && i == --count) { + if (quarter_count != 0 && i == count - 1) { heartP[i]->changeTexture(amariheartTex[quarter_count - 1], 0); } else { heartP[i]->changeTexture("tt_heart_00.bti", 0); @@ -291,16 +289,6 @@ void dFile_info_c::setHeartCnt(dSv_save_c* save) { } } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dFile_info_c::setHeartCnt(dSv_save_c* param_0) { - nofralloc -#include "asm/d/file/d_file_sel_info/setHeartCnt__12dFile_info_cFP10dSv_save_c.s" -} -#pragma pop -#endif /* 80192C08-80192C70 18D548 0068+00 1/1 0/0 0/0 .text setSaveDate__12dFile_info_cFP10dSv_save_c */ void dFile_info_c::setSaveDate(dSv_save_c* save) { @@ -352,14 +340,16 @@ SECTION_SDATA2 static u8 lit_4001[4] = { }; /* 80192D9C-80192E88 18D6DC 00EC+00 1/0 0/0 0/0 .text draw__16dDlst_FileInfo_cFv */ -// close +// vtable order issue #ifdef NONMATCHING void dDlst_FileInfo_c::draw() { Mtx m; J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort(); if (mBasePane != NULL) { - MtxP glbMtx = mBasePane->getGlbMtx(); + MtxP glbMtx2 = mBasePane->getGlbMtx(); + // Fake match + MtxP glbMtx = (MtxP)&glbMtx2[0][0]; PSMTXScale(m, mBasePane->getWidth() / field_0x10->getWidth(), mBasePane->getHeight() / field_0x10->getHeight(), 1.0f); PSMTXConcat(glbMtx, m, glbMtx); diff --git a/src/d/kankyo/d_kankyo_data.cpp b/src/d/kankyo/d_kankyo_data.cpp index d30985334f..d9c2185216 100644 --- a/src/d/kankyo/d_kankyo_data.cpp +++ b/src/d/kankyo/d_kankyo_data.cpp @@ -23,20 +23,6 @@ struct dKyd_l_vr_box_data_struct { // Forward References: // -extern "C" void dKyd_dmpalet_getp__Fv(); -extern "C" void dKyd_dmpselect_getp__Fv(); -extern "C" void dKyd_dmenvr_getp__Fv(); -extern "C" void dKyd_dmvrbox_getp__Fv(); -extern "C" void dKyd_schejule_getp__Fv(); -extern "C" void dKyd_schejule_boss_getp__Fv(); -extern "C" void dKyd_xfog_table_set__FUc(); -extern "C" void dKyd_maple_col_getp__Fv(); -extern "C" void dKyd_darkworld_tbl_getp__Fv(); -extern "C" void dKyd_light_size_tbl_getp__Fv(); -extern "C" void dKyd_light_tw_size_tbl_getp__Fv(); -extern "C" void dKyd_BloomInf_tbl_getp__Fi(); -extern "C" extern char const* const d_kankyo_d_kankyo_data__stringBase0; - // // Declarations: // diff --git a/src/d/kankyo/d_kankyo_rain.cpp b/src/d/kankyo/d_kankyo_rain.cpp index 3d3b2e607d..6190cf95c0 100644 --- a/src/d/kankyo/d_kankyo_rain.cpp +++ b/src/d/kankyo/d_kankyo_rain.cpp @@ -12,6 +12,9 @@ #include "dol2asm.h" #include "dolphin/types.h" #include "f_op/f_op_actor_mng.h" +#include "m_Do/m_Do_lib.h" +#include "SSystem/SComponent/c_math.h" +#include "JSystem/JKernel/JKRHeap.h" // // Forward References: @@ -303,7 +306,7 @@ static asm void dKy_set_eyevect_calc2(camera_class* param_0, Vec* param_1, f32 p SECTION_SDATA2 static f32 lit_3992 = 0.125f; /* 804521C4-804521C8 0007C4 0004+00 9/9 0/0 0/0 .sdata2 @3993 */ -SECTION_SDATA2 static f32 lit_3993 = 1.0f / 100.0f; +SECTION_SDATA2 static f32 lit_3993 = 0.01f; /* 804521C8-804521D0 0007C8 0008+00 15/15 0/0 0/0 .sdata2 @3995 */ SECTION_SDATA2 static f64 lit_3995 = 4503601774854144.0 /* cast s32 to float */; @@ -342,7 +345,7 @@ static void dKyr_set_btitex(GXTexObj* i_obj, ResTIMG* i_img) { /* ############################################################################################## */ /* 804521D0-804521D4 0007D0 0004+00 4/4 0/0 0/0 .sdata2 @4103 */ -SECTION_SDATA2 static f32 lit_4103 = 9.999999747378752e-05f; +SECTION_SDATA2 static f32 lit_4103 = 0.0001; /* 804521D4-804521D8 0007D4 0004+00 4/4 0/0 0/0 .sdata2 @4104 */ SECTION_SDATA2 static f32 lit_4104 = 4000.0f; @@ -378,6 +381,54 @@ SECTION_SDATA2 static f32 lit_4113 = 110.0f; SECTION_SDATA2 static f32 lit_4114 = 4100.0f; /* 8005BA48-8005BED8 056388 0490+00 0/0 1/1 0/0 .text dKyr_lenzflare_move__Fv */ +// Matches with literals +#ifdef NONMATCHING +void dKyr_lenzflare_move() { + dKankyo_sun_Packet* sunPacket = g_env_light.mpSunPacket; + dKankyo_sunlenz_Packet* sunLenzPacket = g_env_light.mpSunLenzPacket; + camera_class* iVar6 = dComIfGp_getCamera(0); + + cXyz cStack_48; + cXyz cStack_54; + cXyz local_60; + cXyz cStack_6c; + if (sunPacket->field_0x5c < 0.0001) { + return; + } + dKy_set_eyevect_calc(iVar6, &cStack_48, 4000.0f, 4000.0f); + dKyr_get_vectle_calc(&cStack_48, sunPacket->mPos, &local_60); + sunLenzPacket->mPositions[0] = sunPacket->mPos[0]; + sunLenzPacket->mPositions[1] = sunPacket->mPos[0]; + cXyz local_78; + cXyz cStack_84; + cXyz local_90; + mDoLib_project(sunLenzPacket->mPositions, &cStack_84); + local_90.x = 304.0f; + local_90.y = 224.0f; + local_90.z = 0.0054931640625f; // Maybe 45 / 8192 + dKyr_get_vectle_calc(&local_90, &cStack_84, &local_78); + sunLenzPacket->field_0x94 = cM_atan2s(local_78.x, local_78.y); + sunLenzPacket->field_0x94 *= 0.0054931640625f; + sunLenzPacket->field_0x94 += 180.0f; + dKyr_get_vectle_calc(&iVar6->mLookat.mEye, &iVar6->mLookat.mCenter, &cStack_6c); + + for (int i = 2; i < 8; i++) { + if (i == 2) { + f32 fVar3 = local_60.abs(cStack_6c); + f32 fVar4 = 250.0f + 600.0f * fVar3; + sunLenzPacket->mPositions[i].x = sunPacket->mPos[0].x - local_60.x * fVar4 * i; + sunLenzPacket->mPositions[i].y = sunPacket->mPos[0].y - local_60.y * fVar4 * i; + sunLenzPacket->mPositions[i].z = sunPacket->mPos[0].z - local_60.z * fVar4 * i; + } else { + f32 fVar3 = local_60.abs(cStack_6c); + f32 fVar4 = 250.0f + 110.0f * fVar3; + sunLenzPacket->mPositions[i].x = sunPacket->mPos[0].x - (4100.0f * local_60.x + local_60.x * fVar4 * i); + sunLenzPacket->mPositions[i].y = sunPacket->mPos[0].y - (4100.0f * local_60.y + local_60.y * fVar4 * i); + sunLenzPacket->mPositions[i].z = sunPacket->mPos[0].z - (4100.0f * local_60.z + local_60.z * fVar4 * i); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -386,20 +437,26 @@ asm void dKyr_lenzflare_move() { #include "asm/d/kankyo/d_kankyo_rain/dKyr_lenzflare_move__Fv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80452208-8045220C 000808 0004+00 3/3 0/0 0/0 .sdata2 @4126 */ SECTION_SDATA2 static f32 lit_4126 = 285.0f; /* 8005BED8-8005BF08 056818 0030+00 1/1 0/0 0/0 .text dKyr_moon_arrival_check__Fv */ -static bool dKyr_moon_arrival_check() { - return g_env_light.mDaytime > lit_4126 || g_env_light.mDaytime < 67.5f; +static int dKyr_moon_arrival_check() { + int rv = 0; + if (g_env_light.mDaytime > lit_4126 || g_env_light.mDaytime < 67.5f) { + rv = 1; + } + + return rv; } /* ############################################################################################## */ /* 8037A4C0-8037A4E8 006B20 0028+00 1/1 0/0 0/0 .rodata sun_chkpnt$4155 */ -SECTION_RODATA static f32 const sun_chkpnt[10] = { - 0.0f, 0.0f, -10.0f, -20.0f, 10.0f, 20.0f, -20.0f, 10.0f, 20.0f, -10.0f, +SECTION_RODATA static f32 const sun_chkpnt[5][2] = { + {0.0f, 0.0f}, {-10.0f, -20.0f}, {10.0f, 20.0f}, {-20.0f, 10.0f}, {20.0f, -10.0f}, }; COMPILER_STRIP_GATE(0x8037A4C0, &sun_chkpnt); @@ -430,7 +487,7 @@ static f32 S_parcent_bak; /* 80450EEC-80450EF0 -00001 0004+00 2/2 0/0 0/0 .sbss None */ /* 80450EEC 0002+00 data_80450EEC None */ /* 80450EEE 0002+00 data_80450EEE S_rot_work1$7554 */ -static u8 struct_80450EEC[4]; +static s8 struct_80450EEC[4]; /* 80452210-80452214 000810 0004+00 4/4 0/0 0/0 .sdata2 @4353 */ SECTION_SDATA2 static f32 lit_4353 = 8000.0f; @@ -442,13 +499,13 @@ SECTION_SDATA2 static f32 lit_4354 = 1.0f; SECTION_SDATA2 static f32 lit_4355 = 77.5f; /* 8045221C-80452220 00081C 0004+00 5/5 0/0 0/0 .sdata2 @4356 */ -SECTION_SDATA2 static f32 lit_4356 = 1.0f / 20.0f; +SECTION_SDATA2 static f32 lit_4356 = 0.05f; /* 80452220-80452224 000820 0004+00 14/14 0/0 0/0 .sdata2 @4357 */ -SECTION_SDATA2 static f32 lit_4357 = 1.0f / 10.0f; +SECTION_SDATA2 static f32 lit_4357 = 0.1f; /* 80452224-80452228 000824 0004+00 2/2 0/0 0/0 .sdata2 @4358 */ -SECTION_SDATA2 static f32 lit_4358 = 9.999999747378752e-06f; +SECTION_SDATA2 static f32 lit_4358 = 0.00001f; /* 80452228-8045222C 000828 0004+00 2/2 0/0 0/0 .sdata2 @4359 */ SECTION_SDATA2 static f32 lit_4359 = 458.0f; @@ -463,19 +520,19 @@ SECTION_SDATA2 static f32 lit_4361 = 1000000000.0f; SECTION_SDATA2 static f32 lit_4362 = 450.0f; /* 80452238-8045223C 000838 0004+00 10/10 0/0 0/0 .sdata2 @4363 */ -SECTION_SDATA2 static f32 lit_4363 = 0.0010000000474974513f; +SECTION_SDATA2 static f32 lit_4363 = 0.001f; /* 8045223C-80452240 00083C 0004+00 18/18 0/0 0/0 .sdata2 @4364 */ SECTION_SDATA2 static f32 lit_4364 = 0.5f; /* 80452240-80452244 000840 0004+00 13/13 0/0 0/0 .sdata2 @4365 */ -SECTION_SDATA2 static f32 lit_4365 = 1.0f / 5.0f; +SECTION_SDATA2 static f32 lit_4365 = 0.2f; /* 80452244-80452248 000844 0004+00 11/11 0/0 0/0 .sdata2 @4366 */ -SECTION_SDATA2 static f32 lit_4366 = 3.0f / 10.0f; +SECTION_SDATA2 static f32 lit_4366 = 0.3f; /* 80452248-8045224C 000848 0004+00 8/8 0/0 0/0 .sdata2 @4367 */ -SECTION_SDATA2 static f32 lit_4367 = 4.0f / 5.0f; +SECTION_SDATA2 static f32 lit_4367 = 0.8f; /* 8045224C-80452250 00084C 0004+00 12/12 0/0 0/0 .sdata2 @4368 */ SECTION_SDATA2 static f32 lit_4368 = 255.0f; @@ -508,6 +565,242 @@ SECTION_SDATA2 static f32 lit_4376 = 21678.0f; SECTION_SDATA2 static f64 lit_4379 = 4503599627370496.0 /* cast u32 to float */; /* 8005BF08-8005CC5C 056848 0D54+00 0/0 1/1 0/0 .text dKyr_sun_move__Fv */ +// regalloc +#ifdef NONMATCHING +void dKyr_sun_move() { + dKankyo_sun_Packet* sunPacket = g_env_light.mpSunPacket; + dKankyo_sunlenz_Packet* sunLenzPacket = g_env_light.mpSunLenzPacket; + cXyz local_90; + cXyz cStack_9c; + f32 dVar20; + camera_class* pCamera = dComIfGp_getCamera(0); + f32 dVar19 = 0.0f; + if (struct_80450EEC[0] == 0) { + S_parcent_bak = dVar19; + struct_80450EEC[0] = 1; + } + u8 r22 = 0; + u8 r21 = 0; + s32 r20 = 0; + u32 stType = dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()); + if ((g_env_light.mBaseLightInfluence.mColor.r == 0) && (stType != 2)) { + dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mBaseLightInfluence.mPosition, &local_90); + } else { + dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mSunPos2, &local_90); + } + + sunPacket->mPos[0].x = pCamera->mLookat.mEye.x + 8000.0f * local_90.x; + sunPacket->mPos[0].y = pCamera->mLookat.mEye.y + 8000.0f * local_90.y; + sunPacket->mPos[0].z = pCamera->mLookat.mEye.z + 8000.0f * local_90.z; + + f32 fVar4 = (sunPacket->mPos[0].y - pCamera->mLookat.mEye.y) / 8000.0f; + if (fVar4 < 0.0f) { + fVar4 = 0.0f; + } + + if (fVar4 >= 1.0f) { + fVar4 = 1.0f; + } + + fVar4 = 1.0f - fVar4; + fVar4 *= fVar4; + dVar20 = 1.0f - fVar4; + + if (i_dComIfGp_getStage()->getStagInfo() != 0) { + dStage_stagInfo_GetSTType(i_dComIfGp_getStage()->getStagInfo()); + } + + if (sunPacket->field_0x28) { + sunPacket->field_0x28--; + } + + sunPacket->field_0x29 = 0; + if (g_env_light.mDaytime > 77.5f && g_env_light.mDaytime < 285.0f && dKy_rain_check() < 0x14 && + strcmp(dComIfGp_getStartStageName(), "F_SP200") != 0 && + strcmp(dComIfGp_getStartStageName(), "D_MN09B") != 0) { + f32 local_f8 = 0.0f; + cLib_addCalc( + &sunPacket->field_0x60, + 1.0f, + 1.0f / 20.0f, + 1.0f / 10.0f, + 0.00001f); + + if (pCamera != 0) { + local_f8 = pCamera->mCamera.TrimHeight(); + } + cXyz cStack_a8; + mDoLib_project(sunPacket->mPos, &cStack_a8); + for (int i = 0; i < 5; i++) { + cXyz local_b4 = cStack_a8; + local_b4.x -= sun_chkpnt[i][0]; + local_b4.y -= sun_chkpnt[i][1]; + if (local_b4.x > 0.0f && + local_b4.x < 608.0f && + local_b4.y > local_f8 && + local_b4.y < 458.0f - local_f8) + { + if ((sunPacket->field_0x44)[i] >= 0x00FFFFFF){ + r22++; + if (i == 0) { + r21++; + } + } + dComIfGd_peekZ(local_b4.x, local_b4.y, sunPacket->field_0x44 + i); + } else { + sunPacket->field_0x44[i] = 0; + r20++; + } + } + if (r20 != 0 && r22 != 0 && r21 != 0) { + r21 = 1; + r22 = 5; + } + if (r22 != 0) { + if (sunPacket->field_0x28 < 5) { + sunPacket->field_0x28 += 2; + } + sunPacket->field_0x29 = 1; + } + sunLenzPacket->field_0x84 = sunLenzPacket->field_0x8c; + sunLenzPacket->field_0x88 = sunLenzPacket->field_0x90; + sunLenzPacket->field_0x8c = 1000000000.0f; + sunLenzPacket->field_0x90 = 0.0f; + cXyz local_cc; + local_cc.x = 304.0f; + local_cc.y = 224.0f; + local_cc.z = 0.0f; + sunLenzPacket->field_0x98 = local_cc.abs(cStack_a8); + sunLenzPacket->field_0x98 /= 450.0f; + if (sunLenzPacket->field_0x98 > 1.0f) { + sunLenzPacket->field_0x98 = 1.0f; + } + sunLenzPacket->field_0x98 = 1.0f - sunLenzPacket->field_0x98; + dVar19 = sunLenzPacket->field_0x98 * sunLenzPacket->field_0x98; + sunLenzPacket->field_0x98 = 1.0f - dVar19; + } else { + cLib_addCalc(&sunPacket->field_0x60, 0.0f, 0.1f, 0.05f, 0.001f); + r22 = 0; + sunPacket->field_0x28 = 0; + sunPacket->field_0x29 = 0; + } + + + if (g_env_light.mColpatWeather != 0 || g_env_light.mSnowCount > 10) { + r21 = 0; + r22 = 0; + } + + if (stType == 2) { + r21 = 0; + r22 = 0; + } + + if (r21 != 0) { + if (r22 == 4) { + cLib_addCalc(&sunPacket->field_0x5c, 1.0f, 0.5f, 0.5f, 0.01f); + } else { + cLib_addCalc(&sunPacket->field_0x5c, 1.0f, 0.2f, 0.3f, 0.001f); + } + } else { + if (r22 < 1) { + cLib_addCalc(&sunPacket->field_0x5c, 0.0f, 0.5f, 0.5f, 0.001f); + } else { + cLib_addCalc(&sunPacket->field_0x5c, 0.0f, 0.2f, 0.3f, 0.001f); + } + } + + if (sunPacket->field_0x5c <= 0.0f) { + g_env_light.mpSunLenzPacket->mDrawLenzInSky = 1; + } else { + g_env_light.mpSunLenzPacket->mDrawLenzInSky = 0; + } + + if (local_90.y > 0.0f && g_env_light.mpSunLenzPacket->mDrawLenzInSky == 0) { + if (dStage_stagInfo_GetArg0(i_dComIfGp_getStage()->getStagInfo()) != 0) { + f32 dVar3; + if (S_parcent_bak < dVar19) { + dVar3 = dVar19 - S_parcent_bak; + } else { + dVar3 = S_parcent_bak - dVar19;; + } + if (dVar3 < 0.3f) { + dKy_set_actcol_ratio(1.0f - dVar19 * sunPacket->field_0x5c); + dKy_set_bgcol_ratio(1.0f - dVar19 * sunPacket->field_0x5c); + dKy_set_fogcol_ratio(1.0f - dVar20 * (dVar19 * sunPacket->field_0x5c)); + dKy_set_vrboxcol_ratio(1.0f - 0.8f * (dVar20 * (dVar19 * sunPacket->field_0x5c))); + } + S_parcent_bak = dVar19; + } + } + + if (g_env_light.mDaytime < 255.0f && g_env_light.mColpatWeather == 0) { + cLib_addCalc(&sunPacket->field_0x6c, 1.0f, 0.1f, 0.01f, 0.0001f); + } else { + cLib_addCalc(&sunPacket->field_0x6c, 0.0f, 0.5f, 0.1f, 0.001f); + } + + if (g_env_light.mDaytime < 180.0f) { + f32 fVar7; + if (g_env_light.mDaytime < 90.0f) { + fVar7 = 0.0f; + } else if (g_env_light.mDaytime < 105.0f) { + fVar7 = dKy_get_parcent(105.0f, 90.0f, g_env_light.mDaytime); + } else { + fVar7 = 1.0f; + } + + sunPacket->mColor.r = (f32)sun_color[0].r + fVar7 * ((f32)sun_color[1].r - (f32)sun_color[0].r); + sunPacket->mColor.g = (f32)sun_color[0].g + fVar7 * ((f32)sun_color[1].g - (f32)sun_color[0].g); + sunPacket->mColor.b = (f32)sun_color[0].b + fVar7 * ((f32)sun_color[1].b - (f32)sun_color[0].b); + + sunPacket->field_0x74.r = (f32)sun_color2[0].r + fVar7 * ((f32)sun_color2[1].r - (f32)sun_color2[0].r); + sunPacket->field_0x74.g = (f32)sun_color2[0].g + fVar7 * ((f32)sun_color2[1].g - (f32)sun_color2[0].g); + sunPacket->field_0x74.b = (f32)sun_color2[0].b + fVar7 * ((f32)sun_color2[1].b - (f32)sun_color2[0].b); + } else { + f32 fVar7; + if (g_env_light.mDaytime < 247.5f) { + fVar7 = 1.0f; + } else if (g_env_light.mDaytime < 270.0f) { + fVar7 = 1.0f - dKy_get_parcent(270.0f, 247.5f, g_env_light.mDaytime); + } else { + fVar7 = 0.0f; + } + + sunPacket->mColor.r = (f32)sun_color[2].r + fVar7 * ((f32)sun_color[1].r - (f32)sun_color[2].r); + sunPacket->mColor.g = (f32)sun_color[2].g + fVar7 * ((f32)sun_color[1].g - (f32)sun_color[2].g); + sunPacket->mColor.b = (f32)sun_color[2].b + fVar7 * ((f32)sun_color[1].b - (f32)sun_color[2].b); + + sunPacket->field_0x74.r = (f32)sun_color2[2].r + fVar7 * ((f32)sun_color2[1].r - (f32)sun_color2[2].r); + sunPacket->field_0x74.g = (f32)sun_color2[2].g + fVar7 * ((f32)sun_color2[1].g - (f32)sun_color2[2].g); + sunPacket->field_0x74.b = (f32)sun_color2[2].b + fVar7 * ((f32)sun_color2[1].b - (f32)sun_color2[2].b); + } + + if (dKyr_moon_arrival_check()) { + f32 fVar6 = (sunPacket->mPos[0].y - pCamera->mLookat.mEye.y) / -8000.0f; + fVar6 *= fVar6; + fVar6 *= 6.0f; + + if (fVar6 > 1.0f) { + fVar6 = 1.0f; + } + + cLib_addCalc(&sunPacket->field_0x68, fVar6, 0.2f, 0.01f, 0.001f); + } else { + cLib_addCalc(&sunPacket->field_0x68, 0.0f, 0.2f, 0.01f, 0.001f); + } + + if (g_env_light.mCameraInWater == 0 && g_env_light.mDaytime > 255.0f && sunPacket->field_0x60 >= 0.2f) { + cXyz local_d8; + dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mSunPos2, &local_90); + local_d8.x = pCamera->mLookat.mEye.x + 30160.0f * local_90.x; + local_d8.y = pCamera->mLookat.mEye.y + 30160.0f * local_90.y; + local_d8.z = pCamera->mLookat.mEye.z + 30160.0f * local_90.z; + local_d8.y -= 21678.0f; + sunPacket->field_0x58 = dComIfGp_particle_set(sunPacket->field_0x58, 0x11c, &local_d8, 0, 0); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -516,6 +809,7 @@ asm void dKyr_sun_move() { #include "asm/d/kankyo/d_kankyo_rain/dKyr_sun_move__Fv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -525,6 +819,31 @@ SECTION_DEAD static char const* const stringBase_8037A588 = "Always"; #pragma pop /* 8005CC5C-8005CDA8 05759C 014C+00 0/0 1/1 0/0 .text dKyr_rain_init__Fv */ +// Matches with literals +#ifdef NONMATCHING +void dKyr_rain_init() { + camera_class* pCamera = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera; + g_env_light.mpRainPacket->mpTex = (u8*)dComIfG_getObjectRes("Always", 0x4a); + g_env_light.mpRainPacket->mpTex2 = (u8*)dComIfG_getObjectRes("Always", 0x57); + g_env_light.mpRainPacket->mCamEyePos = pCamera->mLookat.mEye; + g_env_light.mpRainPacket->mCamCenterPos = pCamera->mLookat.mCenter; + g_env_light.mpRainPacket->mCenterDeltaMul = 0.0f; + g_env_light.mpRainPacket->field_0x3700 = 0.0f; + g_env_light.mpRainPacket->mSibukiAlpha = 0.0f; + g_env_light.mpRainPacket->mOverheadFade = 0.0f; + g_env_light.mpRainPacket->mFwdFade1 = 0.0f; + g_env_light.mpRainPacket->mFwdFade2 = 0.0f; + g_env_light.mpRainPacket->mStatus = 0.0f; + g_env_light.mpRainPacket->mCenterDelta.x = 0.0f; + g_env_light.mpRainPacket->mCenterDelta.y = 0.0f; + g_env_light.mpRainPacket->mCenterDelta.z = 0.0f; + + for (int i = 0; i < 250; i++) { + g_env_light.mpRainPacket->mRainEff[i].mStatus = 0; + } + g_env_light.mpRainPacket->mRainCount = 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -533,6 +852,7 @@ asm void dKyr_rain_init() { #include "asm/d/kankyo/d_kankyo_rain/dKyr_rain_init__Fv.s" } #pragma pop +#endif /* 8005CDA8-8005CDD0 0576E8 0028+00 1/1 0/0 0/0 .text rain_bg_chk__FP19dKankyo_rain_Packeti */ static void rain_bg_chk(dKankyo_rain_Packet* i_packet, int i_idx) { @@ -596,6 +916,40 @@ static asm void overhead_bg_chk() { /* 8005CF78-8005D18C 0578B8 0214+00 1/1 0/0 0/0 .text forward_overhead_bg_chk__FP4cXyzf */ +// Matches with literals +#ifdef NONMATCHING +static int forward_overhead_bg_chk(cXyz* param_0, f32 param_1) { + camera_class* iVar7 = dComIfGp_getCamera(0); + u32 r30 = 0; + dBgS_ObjGndChk_All adStack_88; + dBgS_RoofChk adStack_d8; + cXyz local_e8; + cXyz local_f4; + dKyr_get_vectle_calc(&iVar7->mLookat.mEye, &iVar7->mLookat.mCenter, &local_f4); + local_e8.x = iVar7->mLookat.mEye.x + local_f4.x * param_1; + local_e8.y = iVar7->mLookat.mEye.y + local_f4.y * param_1; + local_e8.z = iVar7->mLookat.mEye.z + local_f4.z * param_1; + local_e8.y = 50.0f + iVar7->mLookat.mEye.y; + *param_0 = local_e8; + adStack_d8.i_SetPos(local_e8); + if (1000000000.0f != dComIfG_Bgsp().RoofChk(&adStack_d8)) { + r30 = 1; + if (strcmp(dComIfGp_getStartStageName(), "F_SP122") == 0) { + if (dStage_roomControl_c::getStayNo() == 17) { + return 0; + } + } + } + + local_e8.y += 10000.0f; + adStack_88.SetPos(&local_e8); + + if (dComIfG_Bgsp().GroundCross(&adStack_88) > 50.0f + iVar7->mLookat.mEye.y) { + r30 = 1; + } + return r30; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -604,6 +958,7 @@ static asm void forward_overhead_bg_chk(cXyz* param_0, f32 param_1) { #include "asm/d/kankyo/d_kankyo_rain/forward_overhead_bg_chk__FP4cXyzf.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -870,6 +1225,34 @@ asm void dKyr_housi_move() { #pragma pop /* 8005FBDC-8005FD48 05A51C 016C+00 0/0 1/1 0/0 .text dKyr_snow_init__Fv */ +// Matches with literals +#ifdef NONMATCHING +void dKyr_snow_init() { + camera_class* pCamera = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera; + g_env_light.mpSnowPacket = new (32) dKankyo_snow_Packet(); + + if (g_env_light.mpSnowPacket == NULL) { + return; + } + + g_env_light.mpSnowPacket->mpTex = (u8*)dComIfG_getObjectRes("Always", 0x56); + + for (int i = 0; i < 500; i++) { + g_env_light.mpSnowPacket->mSnowEff[i].mStatus = 0; + } + + g_env_light.mpSnowPacket->field_0x6d88 = 0; + g_env_light.mpSnowPacket->field_0x6d74 = pCamera->mLookat.mEye; + g_env_light.mpSnowPacket->field_0x6d80 = 0.0f; + g_env_light.mpSnowPacket->field_0x6d84 = 0.0f; + g_env_light.mpSnowPacket->field_0x6d8a = 0; + g_env_light.mpSnowPacket->field_0x6d8c = 0; + g_env_light.mpSnowPacket->field_0x6d90 = 0; + g_env_light.mpSnowPacket->field_0x6d91 = 0; + g_env_light.mpSnowPacket->field_0x6d92 = 0; + g_env_light.mpSnowPacket->field_0x6d93 = 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -878,6 +1261,7 @@ asm void dKyr_snow_init() { #include "asm/d/kankyo/d_kankyo_rain/dKyr_snow_init__Fv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8037A578-8037A578 006BD8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -943,6 +1327,21 @@ asm void dKyr_snow_move() { #pragma pop /* 80061324-8006140C 05BC64 00E8+00 0/0 1/1 0/0 .text dKyr_star_init__Fv */ +// Matches without literals +#ifdef NONMATCHING +void dKyr_star_init() { + camera_class* pCamera = g_dComIfG_gameInfo.play.mCameraInfo[0].mCamera; + g_env_light.mpStarPacket = new (32) dKankyo_star_Packet(); + + if (g_env_light.mpStarPacket == NULL) { + return; + } + + g_env_light.mpStarPacket->field_0x10 = (u8*)dComIfG_getObjectRes("Always", 0x4a); + g_env_light.mpStarPacket->mEffect[0].field_0x28 = 1.0f; + g_env_light.mpStarPacket->mEffectNum = 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -951,6 +1350,7 @@ asm void dKyr_star_init() { #include "asm/d/kankyo/d_kankyo_rain/dKyr_star_init__Fv.s" } #pragma pop +#endif /* 8006140C-80061438 05BD4C 002C+00 0/0 1/1 0/0 .text dKyr_star_move__Fv */ void dKyr_star_move() { @@ -1124,7 +1524,7 @@ SECTION_SDATA2 static f32 lit_7211 = 0.01745329238474369f; SECTION_SDATA2 static f32 lit_7212 = 11000.0f; /* 80452468-8045246C 000A68 0004+00 2/2 0/0 0/0 .sdata2 @7213 */ -SECTION_SDATA2 static f32 lit_7213 = 23.0f / 10.0f; +SECTION_SDATA2 static f32 lit_7213 = 2.3f; /* 80062B4C-80063670 05D48C 0B24+00 2/1 0/0 0/0 .text dKyr_draw_rev_moon__FPA4_fPPUc */ #pragma push @@ -1209,7 +1609,7 @@ static u8 struct_80450EF0[4]; static u8 data_80450EF4[4]; /* 8045247C-80452480 000A7C 0004+00 1/1 0/0 0/0 .sdata2 @7882 */ -SECTION_SDATA2 static f32 lit_7882 = 29.0f / 10.0f; +SECTION_SDATA2 static f32 lit_7882 = 2.9f; /* 80452480-80452484 000A80 0004+00 2/2 0/0 0/0 .sdata2 @7883 */ SECTION_SDATA2 static f32 lit_7883 = 34.0f; @@ -1218,22 +1618,22 @@ SECTION_SDATA2 static f32 lit_7883 = 34.0f; SECTION_SDATA2 static f32 lit_7884 = 160.0f; /* 80452488-8045248C 000A88 0004+00 1/1 0/0 0/0 .sdata2 @7885 */ -SECTION_SDATA2 static f32 lit_7885 = 43.0f / 50.0f; +SECTION_SDATA2 static f32 lit_7885 = 0.86f; /* 8045248C-80452490 000A8C 0004+00 1/1 0/0 0/0 .sdata2 @7886 */ -SECTION_SDATA2 static f32 lit_7886 = 123.0f / 50.0f; +SECTION_SDATA2 static f32 lit_7886 = 2.46f; /* 80452490-80452494 000A90 0004+00 2/2 0/0 0/0 .sdata2 @7887 */ -SECTION_SDATA2 static f32 lit_7887 = 11.0f / 10.0f; +SECTION_SDATA2 static f32 lit_7887 = 1.1f; /* 80452494-80452498 000A94 0004+00 1/1 0/0 0/0 .sdata2 @7888 */ -SECTION_SDATA2 static f32 lit_7888 = 1.0f / 25.0f; +SECTION_SDATA2 static f32 lit_7888 = 0.04f; /* 80452498-8045249C 000A98 0004+00 1/1 0/0 0/0 .sdata2 @7889 */ -SECTION_SDATA2 static f32 lit_7889 = 3.0f / 40.0f; +SECTION_SDATA2 static f32 lit_7889 = 0.075f; /* 8045249C-804524A0 000A9C 0004+00 1/1 0/0 0/0 .sdata2 @7890 */ -SECTION_SDATA2 static f32 lit_7890 = 22.0f / 25.0f; +SECTION_SDATA2 static f32 lit_7890 = 0.88f; /* 804524A0-804524A4 000AA0 0004+00 1/1 0/0 0/0 .sdata2 @7891 */ SECTION_SDATA2 static f32 lit_7891 = 30.599998474121094f; @@ -1242,7 +1642,7 @@ SECTION_SDATA2 static f32 lit_7891 = 30.599998474121094f; SECTION_SDATA2 static f32 lit_7892 = 140.0f; /* 804524A8-804524AC 000AA8 0004+00 1/1 0/0 0/0 .sdata2 @7893 */ -SECTION_SDATA2 static f32 lit_7893 = 17.0f / 20.0f; +SECTION_SDATA2 static f32 lit_7893 = 0.85f; /* 804524AC-804524B0 000AAC 0004+00 2/2 0/0 0/0 .sdata2 @7894 */ SECTION_SDATA2 static f32 lit_7894 = 60.0f; @@ -1368,7 +1768,7 @@ SECTION_SDATA2 static f32 lit_8919 = 123.0f; SECTION_SDATA2 static f32 lit_8920 = 8.0f; /* 804524E4-804524E8 000AE4 0004+00 1/1 0/0 0/0 .sdata2 @8921 */ -SECTION_SDATA2 static f32 lit_8921 = -9.0f / 10.0f; +SECTION_SDATA2 static f32 lit_8921 = -0.9f; /* 804524E8-804524EC 000AE8 0004+00 1/1 0/0 0/0 .sdata2 @8922 */ SECTION_SDATA2 static f32 lit_8922 = 213.0f; @@ -1622,10 +2022,10 @@ static f32 rot_9421; static u8 struct_80450F1C[4]; /* 80452554-80452558 000B54 0004+00 2/2 0/0 0/0 .sdata2 @9833 */ -SECTION_SDATA2 static f32 lit_9833 = 13.0f / 20.0f; +SECTION_SDATA2 static f32 lit_9833 = 0.65f; /* 80452558-8045255C 000B58 0004+00 1/1 0/0 0/0 .sdata2 @9834 */ -SECTION_SDATA2 static f32 lit_9834 = 7.0f / 25.0f; +SECTION_SDATA2 static f32 lit_9834 = 0.28f; /* 8045255C-80452560 000B5C 0004+00 1/1 0/0 0/0 .sdata2 @9835 */ SECTION_SDATA2 static f32 lit_9835 = 540.0f; @@ -1663,10 +2063,10 @@ SECTION_SDATA2 static u32 lit_9851 = 0xFFFFFFFF; SECTION_SDATA2 static u32 lit_9852 = 0xFFFFFFFF; /* 80452574-80452578 000B74 0004+00 2/2 0/0 0/0 .sdata2 @10030 */ -SECTION_SDATA2 static f32 lit_10030 = 11.0f / 20.0f; +SECTION_SDATA2 static f32 lit_10030 = 0.55f; /* 80452578-8045257C 000B78 0004+00 2/2 0/0 0/0 .sdata2 @10031 */ -SECTION_SDATA2 static f32 lit_10031 = 49.0f / 100.0f; +SECTION_SDATA2 static f32 lit_10031 = 0.49f; /* 8006950C-8006A090 063E4C 0B84+00 0/0 1/1 0/0 .text drawCloudShadow__FPA4_fPPUc */ #pragma push @@ -1695,31 +2095,31 @@ static u8 data_80450F2C[4]; SECTION_SDATA2 static f32 lit_10593 = 240.0f; /* 80452580-80452584 000B80 0004+00 1/1 0/0 0/0 .sdata2 @10594 */ -SECTION_SDATA2 static f32 lit_10594 = 1.000000013351432e-10f; +SECTION_SDATA2 static f32 lit_10594 = 0.0000000001; /* 80452584-80452588 000B84 0004+00 1/1 0/0 0/0 .sdata2 @10595 */ SECTION_SDATA2 static f32 lit_10595 = 0.0625f; /* 80452588-8045258C 000B88 0004+00 1/1 0/0 0/0 .sdata2 @10596 */ -SECTION_SDATA2 static f32 lit_10596 = 21.0f / 25.0f; +SECTION_SDATA2 static f32 lit_10596 = 0.84f; /* 8045258C-80452590 000B8C 0004+00 1/1 0/0 0/0 .sdata2 @10597 */ -SECTION_SDATA2 static f32 lit_10597 = 23.0f / 25.0f; +SECTION_SDATA2 static f32 lit_10597 = 0.92f; /* 80452590-80452594 000B90 0004+00 1/1 0/0 0/0 .sdata2 @10598 */ -SECTION_SDATA2 static f32 lit_10598 = 19.0f / 10.0f; +SECTION_SDATA2 static f32 lit_10598 = 1.9f; /* 80452594-80452598 000B94 0004+00 1/1 0/0 0/0 .sdata2 @10599 */ SECTION_SDATA2 static f32 lit_10599 = 16.0f; /* 80452598-8045259C 000B98 0004+00 2/2 0/0 0/0 .sdata2 @10600 */ -SECTION_SDATA2 static f32 lit_10600 = 9.0f / 10.0f; +SECTION_SDATA2 static f32 lit_10600 = 0.9f; /* 8045259C-804525A0 000B9C 0004+00 1/1 0/0 0/0 .sdata2 @10601 */ SECTION_SDATA2 static f32 lit_10601 = -4.0f; /* 804525A0-804525A4 000BA0 0004+00 1/1 0/0 0/0 .sdata2 @10602 */ -SECTION_SDATA2 static f32 lit_10602 = 121.0f / 100.0f; +SECTION_SDATA2 static f32 lit_10602 = 1.21f; /* 804525A4-804525A8 000BA4 0004+00 1/1 0/0 0/0 .sdata2 @10603 */ SECTION_SDATA2 static f32 lit_10603 = 708.0f; diff --git a/src/d/kankyo/d_kankyo_wether.cpp b/src/d/kankyo/d_kankyo_wether.cpp index 81dbab3a97..3775bd00fe 100644 --- a/src/d/kankyo/d_kankyo_wether.cpp +++ b/src/d/kankyo/d_kankyo_wether.cpp @@ -841,11 +841,11 @@ static void wether_move_sun() { } else { g_env_light.mpSunPacket->field_0x6c = tmp0; } - g_env_light.mpSunPacket->field_0x44 = 0; - g_env_light.mpSunPacket->field_0x48 = 0; - g_env_light.mpSunPacket->field_0x4c = 0; - g_env_light.mpSunPacket->field_0x50 = 0; - g_env_light.mpSunPacket->field_0x54 = 0; + g_env_light.mpSunPacket->field_0x44[0] = 0; + g_env_light.mpSunPacket->field_0x44[1] = 0; + g_env_light.mpSunPacket->field_0x44[2] = 0; + g_env_light.mpSunPacket->field_0x44[3] = 0; + g_env_light.mpSunPacket->field_0x44[4] = 0; g_env_light.mpSunPacket->field_0x58 = 0; g_env_light.mpSunLenzPacket->mpResBall = diff --git a/src/m_Do/m_Do_graphic.cpp b/src/m_Do/m_Do_graphic.cpp index 55d0a570ce..4ad3a70517 100644 --- a/src/m_Do/m_Do_graphic.cpp +++ b/src/m_Do/m_Do_graphic.cpp @@ -166,13 +166,12 @@ extern "C" u8 sManager__10JUTProcBar[4]; // /* 80007D9C-80007E44 0026DC 00A8+00 1/1 0/0 0/0 .text createTimg__FUsUsUl */ -// extra mr optimized out? -#ifdef NONMATCHING static ResTIMG* createTimg(u16 width, u16 height, u32 format) { u32 bufferSize = GXGetTexBufferSize(width, height, format, GX_FALSE, 0) + 0x20; ResTIMG* timg; - timg = (ResTIMG*)JKRHeap::alloc(bufferSize, 0x20, NULL); + void* alloc_res = JKRHeap::alloc(bufferSize, 0x20, NULL); + timg = (ResTIMG*) alloc_res; if (timg == NULL) { return NULL; @@ -189,16 +188,6 @@ static ResTIMG* createTimg(u16 width, u16 height, u32 format) { timg->imageOffset = 0x20; return timg; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm ResTIMG* createTimg(u16 param_0, u16 param_1, u32 param_2) { - nofralloc -#include "asm/m_Do/m_Do_graphic/createTimg__FUsUsUl.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 80450590-80450594 000010 0004+00 2/2 1/1 0/0 .sdata mBackColor__13mDoGph_gInf_c */ From a94322ed472df46ac6b058f788c52dd05de70353 Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Mon, 3 Jul 2023 21:10:29 -0700 Subject: [PATCH 26/35] d_a_tag_hjump / d_a_scene_exit2 OK (#361) * d_a_tag_hjump OK * d_a_scene_exit2 OK * remove asm --- .../d_a_scene_exit2/Create__10daScExit_cFv.s | 33 -- .../d_a_scene_exit2/_delete__10daScExit_cFv.s | 14 - .../actionEvent__10daScExit_cFv.s | 34 -- .../actionOrderEvent__10daScExit_cFv.s | 35 -- .../actionWait__10daScExit_cFv.s | 28 - .../checkArea__10daScExit_cFv.s | 19 - .../daScExit_Create__FP10daScExit_c.s | 9 - .../daScExit_Delete__FP10daScExit_c.s | 9 - .../daScExit_Draw__FP10daScExit_c.s | 9 - .../daScExit_Execute__FP10daScExit_c.s | 9 - .../demoProc__10daScExit_cFv.s | 124 ---- .../event_proc_call__10daScExit_cFv.s | 49 -- .../d_a_scene_exit2/execute__10daScExit_cFv.s | 10 - .../d_a_scene_exit2/func_8059E230.s | 41 -- .../initBaseMtx__10daScExit_cFv.s | 9 - .../setBaseMtx__10daScExit_cFv.s | 15 - .../CreateHeap__12daTagHjump_cFv.s | 28 - .../d_a_tag_hjump/Draw__12daTagHjump_cFv.s | 46 -- .../d_a_tag_hjump/__dt__12daTagHjump_cFv.s | 41 -- .../d_a_tag_hjump/create__12daTagHjump_cFv.s | 159 ----- .../daTagHjump_Create__FP10fopAc_ac_c.s | 9 - .../daTagHjump_Delete__FP12daTagHjump_c.s | 16 - .../daTagHjump_Draw__FP12daTagHjump_c.s | 12 - .../daTagHjump_Execute__FP12daTagHjump_c.s | 9 - .../d_a_tag_hjump/execute__12daTagHjump_cFv.s | 192 ------ include/d/bg/d_bg_w.h | 1 + include/d/com/d_com_inf_game.h | 5 + include/f_op/f_op_actor_mng.h | 4 + include/rel/d/a/d_a_horse/d_a_horse.h | 10 + .../rel/d/a/d_a_scene_exit2/d_a_scene_exit2.h | 44 +- .../rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump.h | 28 +- rel/d/a/d_a_scene_exit2/Makefile | 2 - rel/d/a/d_a_scene_exit2/d_a_scene_exit2.cpp | 545 +++++------------- .../unknown_translation_unit_bss.cpp | 27 - rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump.cpp | 527 ++++++----------- 35 files changed, 437 insertions(+), 1715 deletions(-) delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/Create__10daScExit_cFv.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/_delete__10daScExit_cFv.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionEvent__10daScExit_cFv.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionOrderEvent__10daScExit_cFv.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionWait__10daScExit_cFv.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/checkArea__10daScExit_cFv.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Create__FP10daScExit_c.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Delete__FP10daScExit_c.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Draw__FP10daScExit_c.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Execute__FP10daScExit_c.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/demoProc__10daScExit_cFv.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/event_proc_call__10daScExit_cFv.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/execute__10daScExit_cFv.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/func_8059E230.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/initBaseMtx__10daScExit_cFv.s delete mode 100644 asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/setBaseMtx__10daScExit_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/CreateHeap__12daTagHjump_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/Draw__12daTagHjump_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/__dt__12daTagHjump_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/create__12daTagHjump_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Delete__FP12daTagHjump_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Draw__FP12daTagHjump_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Execute__FP12daTagHjump_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/execute__12daTagHjump_cFv.s delete mode 100644 rel/d/a/d_a_scene_exit2/unknown_translation_unit_bss.cpp diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/Create__10daScExit_cFv.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/Create__10daScExit_cFv.s deleted file mode 100644 index bac4ab5782..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/Create__10daScExit_cFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8059E1B0: -/* 8059E1B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E1B4 7C 08 02 A6 */ mflr r0 -/* 8059E1B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E1BC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059E1C0 7C 7F 1B 78 */ mr r31, r3 -/* 8059E1C4 3C 80 80 5A */ lis r4, lit_3659@ha /* 0x8059E7F4@ha */ -/* 8059E1C8 C0 24 E7 F4 */ lfs f1, lit_3659@l(r4) /* 0x8059E7F4@l */ -/* 8059E1CC C0 03 04 EC */ lfs f0, 0x4ec(r3) -/* 8059E1D0 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8059E1D4 D0 03 05 74 */ stfs f0, 0x574(r3) -/* 8059E1D8 4B FF FF 81 */ bl initBaseMtx__10daScExit_cFv -/* 8059E1DC 38 00 00 FF */ li r0, 0xff -/* 8059E1E0 98 1F 05 7A */ stb r0, 0x57a(r31) -/* 8059E1E4 3C 60 80 5A */ lis r3, l_arcName@ha /* 0x8059E858@ha */ -/* 8059E1E8 80 03 E8 58 */ lwz r0, l_arcName@l(r3) /* 0x8059E858@l */ -/* 8059E1EC 90 1F 01 00 */ stw r0, 0x100(r31) -/* 8059E1F0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059E1F4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059E1F8 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 8059E1FC 7F E4 FB 78 */ mr r4, r31 -/* 8059E200 3C A0 80 5A */ lis r5, l_evName@ha /* 0x8059E85C@ha */ -/* 8059E204 38 A5 E8 5C */ addi r5, r5, l_evName@l /* 0x8059E85C@l */ -/* 8059E208 80 A5 00 00 */ lwz r5, 0(r5) -/* 8059E20C 38 C0 00 FF */ li r6, 0xff -/* 8059E210 4B AA 95 49 */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc -/* 8059E214 B0 7F 05 78 */ sth r3, 0x578(r31) -/* 8059E218 38 60 00 01 */ li r3, 1 -/* 8059E21C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059E220 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E224 7C 08 03 A6 */ mtlr r0 -/* 8059E228 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E22C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/_delete__10daScExit_cFv.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/_delete__10daScExit_cFv.s deleted file mode 100644 index cf1c6a448d..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/_delete__10daScExit_cFv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8059E71C: -/* 8059E71C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E720 7C 08 02 A6 */ mflr r0 -/* 8059E724 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E728 3C 80 80 5A */ lis r4, l_arcName@ha /* 0x8059E858@ha */ -/* 8059E72C 38 84 E8 58 */ addi r4, r4, l_arcName@l /* 0x8059E858@l */ -/* 8059E730 80 84 00 00 */ lwz r4, 0(r4) -/* 8059E734 38 63 05 68 */ addi r3, r3, 0x568 -/* 8059E738 4B A8 E8 D1 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 8059E73C 38 60 00 01 */ li r3, 1 -/* 8059E740 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E744 7C 08 03 A6 */ mtlr r0 -/* 8059E748 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E74C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionEvent__10daScExit_cFv.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionEvent__10daScExit_cFv.s deleted file mode 100644 index 9a2eb1cdac..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionEvent__10daScExit_cFv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_8059E488: -/* 8059E488 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E48C 7C 08 02 A6 */ mflr r0 -/* 8059E490 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E494 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059E498 93 C1 00 08 */ stw r30, 8(r1) -/* 8059E49C 7C 7E 1B 78 */ mr r30, r3 -/* 8059E4A0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059E4A4 3B E3 61 C0 */ addi r31, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059E4A8 38 7F 4F F8 */ addi r3, r31, 0x4ff8 -/* 8059E4AC A8 9E 05 78 */ lha r4, 0x578(r30) -/* 8059E4B0 4B AA 95 C9 */ bl endCheck__16dEvent_manager_cFs -/* 8059E4B4 2C 03 00 00 */ cmpwi r3, 0 -/* 8059E4B8 41 82 00 18 */ beq lbl_8059E4D0 -/* 8059E4BC 38 00 00 03 */ li r0, 3 -/* 8059E4C0 98 1E 05 7B */ stb r0, 0x57b(r30) -/* 8059E4C4 38 7F 4E C8 */ addi r3, r31, 0x4ec8 -/* 8059E4C8 4B AA 3F A1 */ bl reset__14dEvt_control_cFv -/* 8059E4CC 48 00 00 20 */ b lbl_8059E4EC -lbl_8059E4D0: -/* 8059E4D0 7F C3 F3 78 */ mr r3, r30 -/* 8059E4D4 48 00 00 35 */ bl demoProc__10daScExit_cFv -/* 8059E4D8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059E4DC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059E4E0 80 03 5F 1C */ lwz r0, 0x5f1c(r3) -/* 8059E4E4 64 00 04 00 */ oris r0, r0, 0x400 -/* 8059E4E8 90 03 5F 1C */ stw r0, 0x5f1c(r3) -lbl_8059E4EC: -/* 8059E4EC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059E4F0 83 C1 00 08 */ lwz r30, 8(r1) -/* 8059E4F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E4F8 7C 08 03 A6 */ mtlr r0 -/* 8059E4FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E500 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionOrderEvent__10daScExit_cFv.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionOrderEvent__10daScExit_cFv.s deleted file mode 100644 index 2dc28c5e8d..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionOrderEvent__10daScExit_cFv.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_8059E408: -/* 8059E408 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E40C 7C 08 02 A6 */ mflr r0 -/* 8059E410 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E414 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059E418 7C 7F 1B 78 */ mr r31, r3 -/* 8059E41C A0 03 00 F8 */ lhz r0, 0xf8(r3) -/* 8059E420 28 00 00 02 */ cmplwi r0, 2 -/* 8059E424 40 82 00 28 */ bne lbl_8059E44C -/* 8059E428 38 00 00 02 */ li r0, 2 -/* 8059E42C 98 1F 05 7B */ stb r0, 0x57b(r31) -/* 8059E430 48 00 00 D9 */ bl demoProc__10daScExit_cFv -/* 8059E434 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059E438 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059E43C 80 03 5F 1C */ lwz r0, 0x5f1c(r3) -/* 8059E440 64 00 04 00 */ oris r0, r0, 0x400 -/* 8059E444 90 03 5F 1C */ stw r0, 0x5f1c(r3) -/* 8059E448 48 00 00 2C */ b lbl_8059E474 -lbl_8059E44C: -/* 8059E44C A8 9F 05 78 */ lha r4, 0x578(r31) -/* 8059E450 88 BF 05 7A */ lbz r5, 0x57a(r31) -/* 8059E454 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */ -/* 8059E458 38 C6 FF FF */ addi r6, r6, 0xFFFF /* 0x0000FFFF@l */ -/* 8059E45C 38 E0 00 00 */ li r7, 0 -/* 8059E460 39 00 00 01 */ li r8, 1 -/* 8059E464 4B A7 D2 19 */ bl fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs -/* 8059E468 A0 1F 00 FA */ lhz r0, 0xfa(r31) -/* 8059E46C 60 00 00 02 */ ori r0, r0, 2 -/* 8059E470 B0 1F 00 FA */ sth r0, 0xfa(r31) -lbl_8059E474: -/* 8059E474 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059E478 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E47C 7C 08 03 A6 */ mtlr r0 -/* 8059E480 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E484 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionWait__10daScExit_cFv.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionWait__10daScExit_cFv.s deleted file mode 100644 index 88f72a92b1..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionWait__10daScExit_cFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_8059E3A0: -/* 8059E3A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E3A4 7C 08 02 A6 */ mflr r0 -/* 8059E3A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E3AC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059E3B0 7C 7F 1B 78 */ mr r31, r3 -/* 8059E3B4 48 00 03 19 */ bl checkArea__10daScExit_cFv -/* 8059E3B8 2C 03 00 00 */ cmpwi r3, 0 -/* 8059E3BC 41 82 00 38 */ beq lbl_8059E3F4 -/* 8059E3C0 38 00 00 01 */ li r0, 1 -/* 8059E3C4 98 1F 05 7B */ stb r0, 0x57b(r31) -/* 8059E3C8 7F E3 FB 78 */ mr r3, r31 -/* 8059E3CC A8 9F 05 78 */ lha r4, 0x578(r31) -/* 8059E3D0 88 BF 05 7A */ lbz r5, 0x57a(r31) -/* 8059E3D4 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */ -/* 8059E3D8 38 C6 FF FF */ addi r6, r6, 0xFFFF /* 0x0000FFFF@l */ -/* 8059E3DC 38 E0 00 00 */ li r7, 0 -/* 8059E3E0 39 00 00 01 */ li r8, 1 -/* 8059E3E4 4B A7 D2 99 */ bl fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs -/* 8059E3E8 A0 1F 00 FA */ lhz r0, 0xfa(r31) -/* 8059E3EC 60 00 00 02 */ ori r0, r0, 2 -/* 8059E3F0 B0 1F 00 FA */ sth r0, 0xfa(r31) -lbl_8059E3F4: -/* 8059E3F4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059E3F8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E3FC 7C 08 03 A6 */ mtlr r0 -/* 8059E400 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E404 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/checkArea__10daScExit_cFv.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/checkArea__10daScExit_cFv.s deleted file mode 100644 index 77666d80b6..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/checkArea__10daScExit_cFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8059E6CC: -/* 8059E6CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E6D0 7C 08 02 A6 */ mflr r0 -/* 8059E6D4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E6D8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059E6DC 7C 7F 1B 78 */ mr r31, r3 -/* 8059E6E0 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059E6E4 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059E6E8 80 84 5D AC */ lwz r4, 0x5dac(r4) -/* 8059E6EC 4B A7 C2 79 */ bl fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c -/* 8059E6F0 C0 1F 05 74 */ lfs f0, 0x574(r31) -/* 8059E6F4 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8059E6F8 7C 00 00 26 */ mfcr r0 -/* 8059E6FC 54 03 0F FE */ srwi r3, r0, 0x1f -/* 8059E700 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059E704 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E708 7C 08 03 A6 */ mtlr r0 -/* 8059E70C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E710 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Create__FP10daScExit_c.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Create__FP10daScExit_c.s deleted file mode 100644 index 462cbcb839..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Create__FP10daScExit_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059E7B0: -/* 8059E7B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E7B4 7C 08 02 A6 */ mflr r0 -/* 8059E7B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E7BC 4B FF FA 75 */ bl create__10daScExit_cFv -/* 8059E7C0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E7C4 7C 08 03 A6 */ mtlr r0 -/* 8059E7C8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E7CC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Delete__FP10daScExit_c.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Delete__FP10daScExit_c.s deleted file mode 100644 index 45d69779a1..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Delete__FP10daScExit_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059E790: -/* 8059E790 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E794 7C 08 02 A6 */ mflr r0 -/* 8059E798 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E79C 4B FF FF 81 */ bl _delete__10daScExit_cFv -/* 8059E7A0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E7A4 7C 08 03 A6 */ mtlr r0 -/* 8059E7A8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E7AC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Draw__FP10daScExit_c.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Draw__FP10daScExit_c.s deleted file mode 100644 index 7870e3951d..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Draw__FP10daScExit_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059E750: -/* 8059E750 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E754 7C 08 02 A6 */ mflr r0 -/* 8059E758 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E75C 4B FF FF B9 */ bl draw__10daScExit_cFv -/* 8059E760 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E764 7C 08 03 A6 */ mtlr r0 -/* 8059E768 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E76C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Execute__FP10daScExit_c.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Execute__FP10daScExit_c.s deleted file mode 100644 index 6755ea6cd6..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Execute__FP10daScExit_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059E770: -/* 8059E770 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E774 7C 08 02 A6 */ mflr r0 -/* 8059E778 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E77C 4B FF FB 45 */ bl execute__10daScExit_cFv -/* 8059E780 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E784 7C 08 03 A6 */ mtlr r0 -/* 8059E788 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E78C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/demoProc__10daScExit_cFv.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/demoProc__10daScExit_cFv.s deleted file mode 100644 index 0f9e300c19..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/demoProc__10daScExit_cFv.s +++ /dev/null @@ -1,124 +0,0 @@ -lbl_8059E508: -/* 8059E508 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8059E50C 7C 08 02 A6 */ mflr r0 -/* 8059E510 90 01 00 34 */ stw r0, 0x34(r1) -/* 8059E514 39 61 00 30 */ addi r11, r1, 0x30 -/* 8059E518 4B DC 3C BD */ bl _savegpr_27 -/* 8059E51C 7C 7C 1B 78 */ mr r28, r3 -/* 8059E520 3C 60 80 5A */ lis r3, lit_3659@ha /* 0x8059E7F4@ha */ -/* 8059E524 3B C3 E7 F4 */ addi r30, r3, lit_3659@l /* 0x8059E7F4@l */ -/* 8059E528 80 1C 00 B0 */ lwz r0, 0xb0(r28) -/* 8059E52C 54 1F 06 3E */ clrlwi r31, r0, 0x18 -/* 8059E530 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8059E534 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8059E538 3B A3 4F F8 */ addi r29, r3, 0x4ff8 -/* 8059E53C 7F A3 EB 78 */ mr r3, r29 -/* 8059E540 80 9C 05 70 */ lwz r4, 0x570(r28) -/* 8059E544 3C A0 80 5A */ lis r5, action_table@ha /* 0x8059E8C0@ha */ -/* 8059E548 38 A5 E8 C0 */ addi r5, r5, action_table@l /* 0x8059E8C0@l */ -/* 8059E54C 38 C0 00 03 */ li r6, 3 -/* 8059E550 38 E0 00 00 */ li r7, 0 -/* 8059E554 39 00 00 00 */ li r8, 0 -/* 8059E558 4B AA 98 B9 */ bl getMyActIdx__16dEvent_manager_cFiPCPCciii -/* 8059E55C 7C 7B 1B 78 */ mr r27, r3 -/* 8059E560 7F A3 EB 78 */ mr r3, r29 -/* 8059E564 80 9C 05 70 */ lwz r4, 0x570(r28) -/* 8059E568 4B AA 97 E5 */ bl getIsAddvance__16dEvent_manager_cFi -/* 8059E56C 2C 03 00 00 */ cmpwi r3, 0 -/* 8059E570 41 82 00 BC */ beq lbl_8059E62C -/* 8059E574 2C 1B 00 01 */ cmpwi r27, 1 -/* 8059E578 41 82 00 54 */ beq lbl_8059E5CC -/* 8059E57C 40 80 00 B0 */ bge lbl_8059E62C -/* 8059E580 2C 1B 00 00 */ cmpwi r27, 0 -/* 8059E584 40 80 00 0C */ bge lbl_8059E590 -/* 8059E588 48 00 00 A4 */ b lbl_8059E62C -/* 8059E58C 48 00 00 A0 */ b lbl_8059E62C -lbl_8059E590: -/* 8059E590 7F A3 EB 78 */ mr r3, r29 -/* 8059E594 80 9C 05 70 */ lwz r4, 0x570(r28) -/* 8059E598 3C A0 80 5A */ lis r5, d_a_scene_exit2__stringBase0@ha /* 0x8059E808@ha */ -/* 8059E59C 38 A5 E8 08 */ addi r5, r5, d_a_scene_exit2__stringBase0@l /* 0x8059E808@l */ -/* 8059E5A0 38 A5 00 2A */ addi r5, r5, 0x2a -/* 8059E5A4 38 C0 00 03 */ li r6, 3 -/* 8059E5A8 4B AA 9B 45 */ bl getMySubstanceP__16dEvent_manager_cFiPCci -/* 8059E5AC 28 03 00 00 */ cmplwi r3, 0 -/* 8059E5B0 40 82 00 10 */ bne lbl_8059E5C0 -/* 8059E5B4 38 00 00 01 */ li r0, 1 -/* 8059E5B8 98 1C 05 7C */ stb r0, 0x57c(r28) -/* 8059E5BC 48 00 00 70 */ b lbl_8059E62C -lbl_8059E5C0: -/* 8059E5C0 80 03 00 00 */ lwz r0, 0(r3) -/* 8059E5C4 98 1C 05 7C */ stb r0, 0x57c(r28) -/* 8059E5C8 48 00 00 64 */ b lbl_8059E62C -lbl_8059E5CC: -/* 8059E5CC 88 1C 04 E2 */ lbz r0, 0x4e2(r28) -/* 8059E5D0 7C 03 07 74 */ extsb r3, r0 -/* 8059E5D4 4B A8 EA 99 */ bl dComIfGp_getReverb__Fi -/* 8059E5D8 7C 67 1B 78 */ mr r7, r3 -/* 8059E5DC 38 00 00 86 */ li r0, 0x86 -/* 8059E5E0 90 01 00 08 */ stw r0, 8(r1) -/* 8059E5E4 3C 60 80 45 */ lis r3, mAudioMgrPtr__10Z2AudioMgr@ha /* 0x80451368@ha */ -/* 8059E5E8 38 63 13 68 */ addi r3, r3, mAudioMgrPtr__10Z2AudioMgr@l /* 0x80451368@l */ -/* 8059E5EC 80 63 00 00 */ lwz r3, 0(r3) -/* 8059E5F0 38 81 00 08 */ addi r4, r1, 8 -/* 8059E5F4 38 BC 05 38 */ addi r5, r28, 0x538 -/* 8059E5F8 38 C0 00 00 */ li r6, 0 -/* 8059E5FC C0 3E 00 04 */ lfs f1, 4(r30) -/* 8059E600 FC 40 08 90 */ fmr f2, f1 -/* 8059E604 C0 7E 00 08 */ lfs f3, 8(r30) -/* 8059E608 FC 80 18 90 */ fmr f4, f3 -/* 8059E60C 39 00 00 00 */ li r8, 0 -/* 8059E610 4B D0 D3 75 */ bl seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc -/* 8059E614 C0 3E 00 0C */ lfs f1, 0xc(r30) -/* 8059E618 C0 1C 04 D4 */ lfs f0, 0x4d4(r28) -/* 8059E61C EC 01 00 2A */ fadds f0, f1, f0 -/* 8059E620 D0 1C 05 54 */ stfs f0, 0x554(r28) -/* 8059E624 C0 1C 05 54 */ lfs f0, 0x554(r28) -/* 8059E628 D0 1C 05 3C */ stfs f0, 0x53c(r28) -lbl_8059E62C: -/* 8059E62C 2C 1B 00 01 */ cmpwi r27, 1 -/* 8059E630 41 82 00 40 */ beq lbl_8059E670 -/* 8059E634 40 80 00 10 */ bge lbl_8059E644 -/* 8059E638 2C 1B 00 00 */ cmpwi r27, 0 -/* 8059E63C 40 80 00 14 */ bge lbl_8059E650 -/* 8059E640 48 00 00 64 */ b lbl_8059E6A4 -lbl_8059E644: -/* 8059E644 2C 1B 00 03 */ cmpwi r27, 3 -/* 8059E648 40 80 00 5C */ bge lbl_8059E6A4 -/* 8059E64C 48 00 00 34 */ b lbl_8059E680 -lbl_8059E650: -/* 8059E650 38 7C 05 7C */ addi r3, r28, 0x57c -/* 8059E654 48 00 01 7D */ bl func_8059E7D0 -/* 8059E658 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8059E65C 40 82 00 54 */ bne lbl_8059E6B0 -/* 8059E660 7F A3 EB 78 */ mr r3, r29 -/* 8059E664 80 9C 05 70 */ lwz r4, 0x570(r28) -/* 8059E668 4B AA 9B 15 */ bl cutEnd__16dEvent_manager_cFi -/* 8059E66C 48 00 00 44 */ b lbl_8059E6B0 -lbl_8059E670: -/* 8059E670 7F A3 EB 78 */ mr r3, r29 -/* 8059E674 80 9C 05 70 */ lwz r4, 0x570(r28) -/* 8059E678 4B AA 9B 05 */ bl cutEnd__16dEvent_manager_cFi -/* 8059E67C 48 00 00 34 */ b lbl_8059E6B0 -lbl_8059E680: -/* 8059E680 7F E3 FB 78 */ mr r3, r31 -/* 8059E684 C0 3E 00 10 */ lfs f1, 0x10(r30) -/* 8059E688 38 80 00 00 */ li r4, 0 -/* 8059E68C 88 1C 04 E2 */ lbz r0, 0x4e2(r28) -/* 8059E690 7C 05 07 74 */ extsb r5, r0 -/* 8059E694 38 C0 00 00 */ li r6, 0 -/* 8059E698 38 E0 FF FF */ li r7, -1 -/* 8059E69C 4B A8 8A D5 */ bl dStage_changeScene__FifUlScsi -/* 8059E6A0 48 00 00 10 */ b lbl_8059E6B0 -lbl_8059E6A4: -/* 8059E6A4 7F A3 EB 78 */ mr r3, r29 -/* 8059E6A8 80 9C 05 70 */ lwz r4, 0x570(r28) -/* 8059E6AC 4B AA 9A D1 */ bl cutEnd__16dEvent_manager_cFi -lbl_8059E6B0: -/* 8059E6B0 38 60 00 00 */ li r3, 0 -/* 8059E6B4 39 61 00 30 */ addi r11, r1, 0x30 -/* 8059E6B8 4B DC 3B 69 */ bl _restgpr_27 -/* 8059E6BC 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8059E6C0 7C 08 03 A6 */ mtlr r0 -/* 8059E6C4 38 21 00 30 */ addi r1, r1, 0x30 -/* 8059E6C8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/event_proc_call__10daScExit_cFv.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/event_proc_call__10daScExit_cFv.s deleted file mode 100644 index d43eeb0ac3..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/event_proc_call__10daScExit_cFv.s +++ /dev/null @@ -1,49 +0,0 @@ -lbl_8059E2E4: -/* 8059E2E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E2E8 7C 08 02 A6 */ mflr r0 -/* 8059E2EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E2F0 3C 80 80 5A */ lis r4, cNullVec__6Z2Calc@ha /* 0x8059E838@ha */ -/* 8059E2F4 38 E4 E8 38 */ addi r7, r4, cNullVec__6Z2Calc@l /* 0x8059E838@l */ -/* 8059E2F8 3C 80 80 5A */ lis r4, data_8059E920@ha /* 0x8059E920@ha */ -/* 8059E2FC 38 C4 E9 20 */ addi r6, r4, data_8059E920@l /* 0x8059E920@l */ -/* 8059E300 88 06 00 00 */ lbz r0, 0(r6) -/* 8059E304 7C 00 07 75 */ extsb. r0, r0 -/* 8059E308 40 82 00 70 */ bne lbl_8059E378 -/* 8059E30C 80 87 00 28 */ lwz r4, 0x28(r7) -/* 8059E310 80 07 00 2C */ lwz r0, 0x2c(r7) -/* 8059E314 90 87 00 58 */ stw r4, 0x58(r7) -/* 8059E318 90 07 00 5C */ stw r0, 0x5c(r7) -/* 8059E31C 80 07 00 30 */ lwz r0, 0x30(r7) -/* 8059E320 90 07 00 60 */ stw r0, 0x60(r7) -/* 8059E324 38 A7 00 58 */ addi r5, r7, 0x58 -/* 8059E328 80 87 00 34 */ lwz r4, 0x34(r7) -/* 8059E32C 80 07 00 38 */ lwz r0, 0x38(r7) -/* 8059E330 90 85 00 0C */ stw r4, 0xc(r5) -/* 8059E334 90 05 00 10 */ stw r0, 0x10(r5) -/* 8059E338 80 07 00 3C */ lwz r0, 0x3c(r7) -/* 8059E33C 90 05 00 14 */ stw r0, 0x14(r5) -/* 8059E340 80 87 00 40 */ lwz r4, 0x40(r7) -/* 8059E344 80 07 00 44 */ lwz r0, 0x44(r7) -/* 8059E348 90 85 00 18 */ stw r4, 0x18(r5) -/* 8059E34C 90 05 00 1C */ stw r0, 0x1c(r5) -/* 8059E350 80 07 00 48 */ lwz r0, 0x48(r7) -/* 8059E354 90 05 00 20 */ stw r0, 0x20(r5) -/* 8059E358 80 87 00 4C */ lwz r4, 0x4c(r7) -/* 8059E35C 80 07 00 50 */ lwz r0, 0x50(r7) -/* 8059E360 90 85 00 24 */ stw r4, 0x24(r5) -/* 8059E364 90 05 00 28 */ stw r0, 0x28(r5) -/* 8059E368 80 07 00 54 */ lwz r0, 0x54(r7) -/* 8059E36C 90 05 00 2C */ stw r0, 0x2c(r5) -/* 8059E370 38 00 00 01 */ li r0, 1 -/* 8059E374 98 06 00 00 */ stb r0, 0(r6) -lbl_8059E378: -/* 8059E378 88 03 05 7B */ lbz r0, 0x57b(r3) -/* 8059E37C 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8059E380 39 87 00 58 */ addi r12, r7, 0x58 -/* 8059E384 7D 8C 02 14 */ add r12, r12, r0 -/* 8059E388 4B DC 3C FD */ bl __ptmf_scall -/* 8059E38C 60 00 00 00 */ nop -/* 8059E390 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E394 7C 08 03 A6 */ mtlr r0 -/* 8059E398 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E39C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/execute__10daScExit_cFv.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/execute__10daScExit_cFv.s deleted file mode 100644 index 9c4cbbaaf8..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/execute__10daScExit_cFv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8059E2C0: -/* 8059E2C0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E2C4 7C 08 02 A6 */ mflr r0 -/* 8059E2C8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E2CC 48 00 00 19 */ bl event_proc_call__10daScExit_cFv -/* 8059E2D0 38 60 00 01 */ li r3, 1 -/* 8059E2D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E2D8 7C 08 03 A6 */ mtlr r0 -/* 8059E2DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E2E0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/func_8059E230.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/func_8059E230.s deleted file mode 100644 index e1fa59ae80..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/func_8059E230.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_8059E230: -/* 8059E230 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E234 7C 08 02 A6 */ mflr r0 -/* 8059E238 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E23C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059E240 93 C1 00 08 */ stw r30, 8(r1) -/* 8059E244 7C 7E 1B 78 */ mr r30, r3 -/* 8059E248 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 8059E24C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 8059E250 40 82 00 1C */ bne lbl_8059E26C -/* 8059E254 28 1E 00 00 */ cmplwi r30, 0 -/* 8059E258 41 82 00 08 */ beq lbl_8059E260 -/* 8059E25C 4B A7 A9 09 */ bl __ct__10fopAc_ac_cFv -lbl_8059E260: -/* 8059E260 80 1E 04 A0 */ lwz r0, 0x4a0(r30) -/* 8059E264 60 00 00 08 */ ori r0, r0, 8 -/* 8059E268 90 1E 04 A0 */ stw r0, 0x4a0(r30) -lbl_8059E26C: -/* 8059E26C 38 7E 05 68 */ addi r3, r30, 0x568 -/* 8059E270 3C 80 80 5A */ lis r4, l_arcName@ha /* 0x8059E858@ha */ -/* 8059E274 38 84 E8 58 */ addi r4, r4, l_arcName@l /* 0x8059E858@l */ -/* 8059E278 80 84 00 00 */ lwz r4, 0(r4) -/* 8059E27C 4B A8 EC 41 */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 8059E280 7C 7F 1B 78 */ mr r31, r3 -/* 8059E284 2C 1F 00 04 */ cmpwi r31, 4 -/* 8059E288 40 82 00 1C */ bne lbl_8059E2A4 -/* 8059E28C 7F C3 F3 78 */ mr r3, r30 -/* 8059E290 4B FF FF 21 */ bl Create__10daScExit_cFv -/* 8059E294 2C 03 00 00 */ cmpwi r3, 0 -/* 8059E298 40 82 00 0C */ bne lbl_8059E2A4 -/* 8059E29C 38 60 00 05 */ li r3, 5 -/* 8059E2A0 48 00 00 08 */ b lbl_8059E2A8 -lbl_8059E2A4: -/* 8059E2A4 7F E3 FB 78 */ mr r3, r31 -lbl_8059E2A8: -/* 8059E2A8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059E2AC 83 C1 00 08 */ lwz r30, 8(r1) -/* 8059E2B0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E2B4 7C 08 03 A6 */ mtlr r0 -/* 8059E2B8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E2BC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/initBaseMtx__10daScExit_cFv.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/initBaseMtx__10daScExit_cFv.s deleted file mode 100644 index 57f5bd6795..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/initBaseMtx__10daScExit_cFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059E158: -/* 8059E158 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E15C 7C 08 02 A6 */ mflr r0 -/* 8059E160 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E164 48 00 00 15 */ bl setBaseMtx__10daScExit_cFv -/* 8059E168 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E16C 7C 08 03 A6 */ mtlr r0 -/* 8059E170 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E174 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/setBaseMtx__10daScExit_cFv.s b/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/setBaseMtx__10daScExit_cFv.s deleted file mode 100644 index 7bb00eacea..0000000000 --- a/asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/setBaseMtx__10daScExit_cFv.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_8059E178: -/* 8059E178 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059E17C 7C 08 02 A6 */ mflr r0 -/* 8059E180 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059E184 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059E188 7C 7F 1B 78 */ mr r31, r3 -/* 8059E18C 38 7F 04 D0 */ addi r3, r31, 0x4d0 -/* 8059E190 4B A6 EB D5 */ bl transS__14mDoMtx_stack_cFRC4cXyz -/* 8059E194 38 7F 04 E4 */ addi r3, r31, 0x4e4 -/* 8059E198 4B A6 ED AD */ bl ZXYrotM__14mDoMtx_stack_cFRC5csXyz -/* 8059E19C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059E1A0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059E1A4 7C 08 03 A6 */ mtlr r0 -/* 8059E1A8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059E1AC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/CreateHeap__12daTagHjump_cFv.s b/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/CreateHeap__12daTagHjump_cFv.s deleted file mode 100644 index 6f946cde61..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/CreateHeap__12daTagHjump_cFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_805A3AB8: -/* 805A3AB8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A3ABC 7C 08 02 A6 */ mflr r0 -/* 805A3AC0 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A3AC4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 805A3AC8 7C 7F 1B 78 */ mr r31, r3 -/* 805A3ACC 3C 60 80 5A */ lis r3, l_arcName@ha /* 0x805A4238@ha */ -/* 805A3AD0 38 63 42 38 */ addi r3, r3, l_arcName@l /* 0x805A4238@l */ -/* 805A3AD4 38 80 00 04 */ li r4, 4 -/* 805A3AD8 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A3ADC 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A3AE0 3C A5 00 02 */ addis r5, r5, 2 -/* 805A3AE4 38 C0 00 80 */ li r6, 0x80 -/* 805A3AE8 38 A5 C2 F8 */ addi r5, r5, -15624 -/* 805A3AEC 4B A9 88 01 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 805A3AF0 3C 80 00 08 */ lis r4, 8 -/* 805A3AF4 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000084@ha */ -/* 805A3AF8 38 A5 00 84 */ addi r5, r5, 0x0084 /* 0x11000084@l */ -/* 805A3AFC 4B A7 11 59 */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl -/* 805A3B00 90 7F 05 A8 */ stw r3, 0x5a8(r31) -/* 805A3B04 80 7F 05 A8 */ lwz r3, 0x5a8(r31) -/* 805A3B08 30 03 FF FF */ addic r0, r3, -1 -/* 805A3B0C 7C 60 19 10 */ subfe r3, r0, r3 -/* 805A3B10 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 805A3B14 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A3B18 7C 08 03 A6 */ mtlr r0 -/* 805A3B1C 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A3B20 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/Draw__12daTagHjump_cFv.s b/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/Draw__12daTagHjump_cFv.s deleted file mode 100644 index f69627eda1..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/Draw__12daTagHjump_cFv.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_805A4154: -/* 805A4154 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A4158 7C 08 02 A6 */ mflr r0 -/* 805A415C 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A4160 93 E1 00 0C */ stw r31, 0xc(r1) -/* 805A4164 93 C1 00 08 */ stw r30, 8(r1) -/* 805A4168 7C 7E 1B 78 */ mr r30, r3 -/* 805A416C 88 03 05 AC */ lbz r0, 0x5ac(r3) -/* 805A4170 28 00 00 00 */ cmplwi r0, 0 -/* 805A4174 41 82 00 74 */ beq lbl_805A41E8 -/* 805A4178 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 805A417C 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 805A4180 38 80 00 10 */ li r4, 0x10 -/* 805A4184 38 BE 04 D0 */ addi r5, r30, 0x4d0 -/* 805A4188 38 DE 01 0C */ addi r6, r30, 0x10c -/* 805A418C 4B BF F6 39 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 805A4190 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 805A4194 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 805A4198 80 9E 05 A8 */ lwz r4, 0x5a8(r30) -/* 805A419C 80 84 00 04 */ lwz r4, 4(r4) -/* 805A41A0 38 BE 01 0C */ addi r5, r30, 0x10c -/* 805A41A4 4B C0 0B FD */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 805A41A8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A41AC 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A41B0 80 04 5F 70 */ lwz r0, 0x5f70(r4) -/* 805A41B4 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 805A41B8 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */ -/* 805A41BC 90 1F 00 48 */ stw r0, 0x48(r31) -/* 805A41C0 80 04 5F 74 */ lwz r0, 0x5f74(r4) -/* 805A41C4 90 1F 00 4C */ stw r0, 0x4c(r31) -/* 805A41C8 80 7E 05 A8 */ lwz r3, 0x5a8(r30) -/* 805A41CC 4B A6 9A F9 */ bl mDoExt_modelUpdateDL__FP8J3DModel -/* 805A41D0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A41D4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A41D8 80 03 5F 80 */ lwz r0, 0x5f80(r3) -/* 805A41DC 90 1F 00 48 */ stw r0, 0x48(r31) -/* 805A41E0 80 03 5F 84 */ lwz r0, 0x5f84(r3) -/* 805A41E4 90 1F 00 4C */ stw r0, 0x4c(r31) -lbl_805A41E8: -/* 805A41E8 38 60 00 01 */ li r3, 1 -/* 805A41EC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 805A41F0 83 C1 00 08 */ lwz r30, 8(r1) -/* 805A41F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A41F8 7C 08 03 A6 */ mtlr r0 -/* 805A41FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A4200 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/__dt__12daTagHjump_cFv.s b/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/__dt__12daTagHjump_cFv.s deleted file mode 100644 index 897d5a6fc5..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/__dt__12daTagHjump_cFv.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_805A3DA0: -/* 805A3DA0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A3DA4 7C 08 02 A6 */ mflr r0 -/* 805A3DA8 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A3DAC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 805A3DB0 93 C1 00 08 */ stw r30, 8(r1) -/* 805A3DB4 7C 7E 1B 79 */ or. r30, r3, r3 -/* 805A3DB8 7C 9F 23 78 */ mr r31, r4 -/* 805A3DBC 41 82 00 5C */ beq lbl_805A3E18 -/* 805A3DC0 3C 60 80 5A */ lis r3, __vt__12daTagHjump_c@ha /* 0x805A42BC@ha */ -/* 805A3DC4 38 03 42 BC */ addi r0, r3, __vt__12daTagHjump_c@l /* 0x805A42BC@l */ -/* 805A3DC8 90 1E 05 9C */ stw r0, 0x59c(r30) -/* 805A3DCC 88 1E 05 AC */ lbz r0, 0x5ac(r30) -/* 805A3DD0 28 00 00 00 */ cmplwi r0, 0 -/* 805A3DD4 41 82 00 14 */ beq lbl_805A3DE8 -/* 805A3DD8 38 7E 05 A0 */ addi r3, r30, 0x5a0 -/* 805A3DDC 3C 80 80 5A */ lis r4, l_arcName@ha /* 0x805A4238@ha */ -/* 805A3DE0 38 84 42 38 */ addi r4, r4, l_arcName@l /* 0x805A4238@l */ -/* 805A3DE4 4B A8 92 25 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -lbl_805A3DE8: -/* 805A3DE8 28 1E 00 00 */ cmplwi r30, 0 -/* 805A3DEC 41 82 00 1C */ beq lbl_805A3E08 -/* 805A3DF0 3C 60 80 3B */ lis r3, __vt__16dBgS_MoveBgActor@ha /* 0x803AB9A0@ha */ -/* 805A3DF4 38 03 B9 A0 */ addi r0, r3, __vt__16dBgS_MoveBgActor@l /* 0x803AB9A0@l */ -/* 805A3DF8 90 1E 05 9C */ stw r0, 0x59c(r30) -/* 805A3DFC 7F C3 F3 78 */ mr r3, r30 -/* 805A3E00 38 80 00 00 */ li r4, 0 -/* 805A3E04 4B A7 4E 89 */ bl __dt__10fopAc_ac_cFv -lbl_805A3E08: -/* 805A3E08 7F E0 07 35 */ extsh. r0, r31 -/* 805A3E0C 40 81 00 0C */ ble lbl_805A3E18 -/* 805A3E10 7F C3 F3 78 */ mr r3, r30 -/* 805A3E14 4B D2 AF 29 */ bl __dl__FPv -lbl_805A3E18: -/* 805A3E18 7F C3 F3 78 */ mr r3, r30 -/* 805A3E1C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 805A3E20 83 C1 00 08 */ lwz r30, 8(r1) -/* 805A3E24 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A3E28 7C 08 03 A6 */ mtlr r0 -/* 805A3E2C 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A3E30 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/create__12daTagHjump_cFv.s b/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/create__12daTagHjump_cFv.s deleted file mode 100644 index 5168bbb8c4..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/create__12daTagHjump_cFv.s +++ /dev/null @@ -1,159 +0,0 @@ -lbl_805A3B24: -/* 805A3B24 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 805A3B28 7C 08 02 A6 */ mflr r0 -/* 805A3B2C 90 01 00 24 */ stw r0, 0x24(r1) -/* 805A3B30 39 61 00 20 */ addi r11, r1, 0x20 -/* 805A3B34 4B DB E6 A9 */ bl _savegpr_29 -/* 805A3B38 7C 7D 1B 78 */ mr r29, r3 -/* 805A3B3C 3C 80 80 5A */ lis r4, l_arcName@ha /* 0x805A4238@ha */ -/* 805A3B40 3B E4 42 38 */ addi r31, r4, l_arcName@l /* 0x805A4238@l */ -/* 805A3B44 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 805A3B48 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 805A3B4C 40 82 00 28 */ bne lbl_805A3B74 -/* 805A3B50 28 1D 00 00 */ cmplwi r29, 0 -/* 805A3B54 41 82 00 14 */ beq lbl_805A3B68 -/* 805A3B58 4B AD 4A CD */ bl __ct__16dBgS_MoveBgActorFv -/* 805A3B5C 3C 60 80 5A */ lis r3, __vt__12daTagHjump_c@ha /* 0x805A42BC@ha */ -/* 805A3B60 38 03 42 BC */ addi r0, r3, __vt__12daTagHjump_c@l /* 0x805A42BC@l */ -/* 805A3B64 90 1D 05 9C */ stw r0, 0x59c(r29) -lbl_805A3B68: -/* 805A3B68 80 1D 04 A0 */ lwz r0, 0x4a0(r29) -/* 805A3B6C 60 00 00 08 */ ori r0, r0, 8 -/* 805A3B70 90 1D 04 A0 */ stw r0, 0x4a0(r29) -lbl_805A3B74: -/* 805A3B74 80 1D 00 B0 */ lwz r0, 0xb0(r29) -/* 805A3B78 54 00 E7 3E */ rlwinm r0, r0, 0x1c, 0x1c, 0x1f -/* 805A3B7C 98 1D 05 AC */ stb r0, 0x5ac(r29) -/* 805A3B80 80 1D 00 B0 */ lwz r0, 0xb0(r29) -/* 805A3B84 54 00 07 3E */ clrlwi r0, r0, 0x1c -/* 805A3B88 98 1D 05 AD */ stb r0, 0x5ad(r29) -/* 805A3B8C 80 1D 00 B0 */ lwz r0, 0xb0(r29) -/* 805A3B90 54 00 C5 3E */ rlwinm r0, r0, 0x18, 0x14, 0x1f -/* 805A3B94 B0 1D 05 B0 */ sth r0, 0x5b0(r29) -/* 805A3B98 80 1D 00 B0 */ lwz r0, 0xb0(r29) -/* 805A3B9C 54 00 65 3E */ srwi r0, r0, 0x14 -/* 805A3BA0 B0 1D 05 B2 */ sth r0, 0x5b2(r29) -/* 805A3BA4 88 1D 05 AD */ lbz r0, 0x5ad(r29) -/* 805A3BA8 28 00 00 0F */ cmplwi r0, 0xf -/* 805A3BAC 40 82 00 0C */ bne lbl_805A3BB8 -/* 805A3BB0 38 00 00 00 */ li r0, 0 -/* 805A3BB4 98 1D 05 AD */ stb r0, 0x5ad(r29) -lbl_805A3BB8: -/* 805A3BB8 88 1D 05 AC */ lbz r0, 0x5ac(r29) -/* 805A3BBC 28 00 00 00 */ cmplwi r0, 0 -/* 805A3BC0 41 82 01 30 */ beq lbl_805A3CF0 -/* 805A3BC4 38 7D 05 A0 */ addi r3, r29, 0x5a0 -/* 805A3BC8 38 9F 00 00 */ addi r4, r31, 0 -/* 805A3BCC 4B A8 92 F1 */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 805A3BD0 7C 7E 1B 78 */ mr r30, r3 -/* 805A3BD4 2C 1E 00 04 */ cmpwi r30, 4 -/* 805A3BD8 40 82 01 7C */ bne lbl_805A3D54 -/* 805A3BDC 7F A3 EB 78 */ mr r3, r29 -/* 805A3BE0 38 9F 00 00 */ addi r4, r31, 0 -/* 805A3BE4 38 A0 00 07 */ li r5, 7 -/* 805A3BE8 38 C0 00 00 */ li r6, 0 -/* 805A3BEC 38 E0 0C A0 */ li r7, 0xca0 -/* 805A3BF0 39 00 00 00 */ li r8, 0 -/* 805A3BF4 4B AD 4B C9 */ bl MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f -/* 805A3BF8 7C 7E 1B 78 */ mr r30, r3 -/* 805A3BFC 2C 1E 00 04 */ cmpwi r30, 4 -/* 805A3C00 40 82 01 54 */ bne lbl_805A3D54 -/* 805A3C04 80 7D 05 A8 */ lwz r3, 0x5a8(r29) -/* 805A3C08 38 03 00 24 */ addi r0, r3, 0x24 -/* 805A3C0C 90 1D 05 04 */ stw r0, 0x504(r29) -/* 805A3C10 88 1D 04 E2 */ lbz r0, 0x4e2(r29) -/* 805A3C14 98 1D 04 8C */ stb r0, 0x48c(r29) -/* 805A3C18 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 805A3C1C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 805A3C20 C0 3D 04 D0 */ lfs f1, 0x4d0(r29) -/* 805A3C24 C0 5D 04 D4 */ lfs f2, 0x4d4(r29) -/* 805A3C28 C0 7D 04 D8 */ lfs f3, 0x4d8(r29) -/* 805A3C2C 4B DA 2C BD */ bl PSMTXTrans -/* 805A3C30 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 805A3C34 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 805A3C38 A8 9D 04 E6 */ lha r4, 0x4e6(r29) -/* 805A3C3C 4B A6 87 F9 */ bl mDoMtx_YrotM__FPA4_fs -/* 805A3C40 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 805A3C44 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 805A3C48 80 9D 05 A8 */ lwz r4, 0x5a8(r29) -/* 805A3C4C 38 84 00 24 */ addi r4, r4, 0x24 -/* 805A3C50 4B DA 28 61 */ bl PSMTXCopy -/* 805A3C54 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 805A3C58 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 805A3C5C C0 03 00 1C */ lfs f0, 0x1c(r3) -/* 805A3C60 C0 3F 00 08 */ lfs f1, 8(r31) -/* 805A3C64 EC 00 08 28 */ fsubs f0, f0, f1 -/* 805A3C68 D0 03 00 1C */ stfs f0, 0x1c(r3) -/* 805A3C6C C0 1D 04 D4 */ lfs f0, 0x4d4(r29) -/* 805A3C70 EC 00 08 28 */ fsubs f0, f0, f1 -/* 805A3C74 D0 1D 04 D4 */ stfs f0, 0x4d4(r29) -/* 805A3C78 80 7D 05 68 */ lwz r3, 0x568(r29) -/* 805A3C7C 88 03 00 88 */ lbz r0, 0x88(r3) -/* 805A3C80 60 00 00 80 */ ori r0, r0, 0x80 -/* 805A3C84 98 03 00 88 */ stb r0, 0x88(r3) -/* 805A3C88 C0 1F 00 0C */ lfs f0, 0xc(r31) -/* 805A3C8C D0 1D 04 EC */ stfs f0, 0x4ec(r29) -/* 805A3C90 C0 1F 00 10 */ lfs f0, 0x10(r31) -/* 805A3C94 D0 1D 04 F0 */ stfs f0, 0x4f0(r29) -/* 805A3C98 C0 1F 00 14 */ lfs f0, 0x14(r31) -/* 805A3C9C D0 1D 04 F4 */ stfs f0, 0x4f4(r29) -/* 805A3CA0 C0 1F 00 18 */ lfs f0, 0x18(r31) -/* 805A3CA4 D0 1D 05 B8 */ stfs f0, 0x5b8(r29) -/* 805A3CA8 7F A3 EB 78 */ mr r3, r29 -/* 805A3CAC C0 1D 04 EC */ lfs f0, 0x4ec(r29) -/* 805A3CB0 FC 20 00 50 */ fneg f1, f0 -/* 805A3CB4 C0 5F 00 1C */ lfs f2, 0x1c(r31) -/* 805A3CB8 C0 7F 00 20 */ lfs f3, 0x20(r31) -/* 805A3CBC 4B A7 68 6D */ bl fopAcM_SetMin__FP10fopAc_ac_cfff -/* 805A3CC0 7F A3 EB 78 */ mr r3, r29 -/* 805A3CC4 C0 3D 04 EC */ lfs f1, 0x4ec(r29) -/* 805A3CC8 C0 5F 00 18 */ lfs f2, 0x18(r31) -/* 805A3CCC C0 7F 00 24 */ lfs f3, 0x24(r31) -/* 805A3CD0 4B A7 68 69 */ bl fopAcM_SetMax__FP10fopAc_ac_cfff -/* 805A3CD4 38 00 20 00 */ li r0, 0x2000 -/* 805A3CD8 B0 1D 05 AE */ sth r0, 0x5ae(r29) -/* 805A3CDC C0 1F 00 28 */ lfs f0, 0x28(r31) -/* 805A3CE0 D0 1D 05 20 */ stfs f0, 0x520(r29) -/* 805A3CE4 38 00 00 04 */ li r0, 4 -/* 805A3CE8 98 1D 05 AD */ stb r0, 0x5ad(r29) -/* 805A3CEC 48 00 00 68 */ b lbl_805A3D54 -lbl_805A3CF0: -/* 805A3CF0 3B C0 00 04 */ li r30, 4 -/* 805A3CF4 C0 1D 04 EC */ lfs f0, 0x4ec(r29) -/* 805A3CF8 C0 3F 00 08 */ lfs f1, 8(r31) -/* 805A3CFC EC 00 00 72 */ fmuls f0, f0, f1 -/* 805A3D00 D0 1D 04 EC */ stfs f0, 0x4ec(r29) -/* 805A3D04 C0 1D 04 F4 */ lfs f0, 0x4f4(r29) -/* 805A3D08 EC 00 00 72 */ fmuls f0, f0, f1 -/* 805A3D0C D0 1D 04 F4 */ stfs f0, 0x4f4(r29) -/* 805A3D10 C0 1D 04 F0 */ lfs f0, 0x4f0(r29) -/* 805A3D14 EC 00 00 72 */ fmuls f0, f0, f1 -/* 805A3D18 D0 1D 04 F0 */ stfs f0, 0x4f0(r29) -/* 805A3D1C 88 1D 05 AD */ lbz r0, 0x5ad(r29) -/* 805A3D20 28 00 00 00 */ cmplwi r0, 0 -/* 805A3D24 41 82 00 0C */ beq lbl_805A3D30 -/* 805A3D28 28 00 00 01 */ cmplwi r0, 1 -/* 805A3D2C 40 82 00 18 */ bne lbl_805A3D44 -lbl_805A3D30: -/* 805A3D30 C0 1F 00 24 */ lfs f0, 0x24(r31) -/* 805A3D34 D0 1D 05 B8 */ stfs f0, 0x5b8(r29) -/* 805A3D38 38 00 10 00 */ li r0, 0x1000 -/* 805A3D3C B0 1D 05 AE */ sth r0, 0x5ae(r29) -/* 805A3D40 48 00 00 14 */ b lbl_805A3D54 -lbl_805A3D44: -/* 805A3D44 C0 1F 00 18 */ lfs f0, 0x18(r31) -/* 805A3D48 D0 1D 05 B8 */ stfs f0, 0x5b8(r29) -/* 805A3D4C 38 00 20 00 */ li r0, 0x2000 -/* 805A3D50 B0 1D 05 AE */ sth r0, 0x5ae(r29) -lbl_805A3D54: -/* 805A3D54 C0 3D 04 D4 */ lfs f1, 0x4d4(r29) -/* 805A3D58 C0 1D 04 F0 */ lfs f0, 0x4f0(r29) -/* 805A3D5C EC 01 00 2A */ fadds f0, f1, f0 -/* 805A3D60 D0 1D 05 B4 */ stfs f0, 0x5b4(r29) -/* 805A3D64 7F C3 F3 78 */ mr r3, r30 -/* 805A3D68 39 61 00 20 */ addi r11, r1, 0x20 -/* 805A3D6C 4B DB E4 BD */ bl _restgpr_29 -/* 805A3D70 80 01 00 24 */ lwz r0, 0x24(r1) -/* 805A3D74 7C 08 03 A6 */ mtlr r0 -/* 805A3D78 38 21 00 20 */ addi r1, r1, 0x20 -/* 805A3D7C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 13bcf8a29a..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_805A3D80: -/* 805A3D80 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A3D84 7C 08 02 A6 */ mflr r0 -/* 805A3D88 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A3D8C 4B FF FD 99 */ bl create__12daTagHjump_cFv -/* 805A3D90 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A3D94 7C 08 03 A6 */ mtlr r0 -/* 805A3D98 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A3D9C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Delete__FP12daTagHjump_c.s b/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Delete__FP12daTagHjump_c.s deleted file mode 100644 index 7284afe45f..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Delete__FP12daTagHjump_c.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_805A3E34: -/* 805A3E34 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A3E38 7C 08 02 A6 */ mflr r0 -/* 805A3E3C 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A3E40 93 E1 00 0C */ stw r31, 0xc(r1) -/* 805A3E44 7C 7F 1B 78 */ mr r31, r3 -/* 805A3E48 4B AD 4A 95 */ bl MoveBGDelete__16dBgS_MoveBgActorFv -/* 805A3E4C 7F E3 FB 78 */ mr r3, r31 -/* 805A3E50 38 80 FF FF */ li r4, -1 -/* 805A3E54 4B FF FF 4D */ bl __dt__12daTagHjump_cFv -/* 805A3E58 38 60 00 01 */ li r3, 1 -/* 805A3E5C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 805A3E60 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A3E64 7C 08 03 A6 */ mtlr r0 -/* 805A3E68 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A3E6C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Draw__FP12daTagHjump_c.s b/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Draw__FP12daTagHjump_c.s deleted file mode 100644 index 81eb6074db..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Draw__FP12daTagHjump_c.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_805A4204: -/* 805A4204 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A4208 7C 08 02 A6 */ mflr r0 -/* 805A420C 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A4210 81 83 05 9C */ lwz r12, 0x59c(r3) -/* 805A4214 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 805A4218 7D 89 03 A6 */ mtctr r12 -/* 805A421C 4E 80 04 21 */ bctrl -/* 805A4220 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A4224 7C 08 03 A6 */ mtlr r0 -/* 805A4228 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A422C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Execute__FP12daTagHjump_c.s b/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Execute__FP12daTagHjump_c.s deleted file mode 100644 index 4ff3d7d254..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Execute__FP12daTagHjump_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_805A4134: -/* 805A4134 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 805A4138 7C 08 02 A6 */ mflr r0 -/* 805A413C 90 01 00 14 */ stw r0, 0x14(r1) -/* 805A4140 4B FF FD 31 */ bl execute__12daTagHjump_cFv -/* 805A4144 80 01 00 14 */ lwz r0, 0x14(r1) -/* 805A4148 7C 08 03 A6 */ mtlr r0 -/* 805A414C 38 21 00 10 */ addi r1, r1, 0x10 -/* 805A4150 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/execute__12daTagHjump_cFv.s b/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/execute__12daTagHjump_cFv.s deleted file mode 100644 index ec77b2abb8..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/execute__12daTagHjump_cFv.s +++ /dev/null @@ -1,192 +0,0 @@ -lbl_805A3E70: -/* 805A3E70 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 805A3E74 7C 08 02 A6 */ mflr r0 -/* 805A3E78 90 01 00 34 */ stw r0, 0x34(r1) -/* 805A3E7C 39 61 00 30 */ addi r11, r1, 0x30 -/* 805A3E80 4B DB E3 55 */ bl _savegpr_27 -/* 805A3E84 7C 7D 1B 78 */ mr r29, r3 -/* 805A3E88 3C 60 80 5A */ lis r3, l_arcName@ha /* 0x805A4238@ha */ -/* 805A3E8C 3B E3 42 38 */ addi r31, r3, l_arcName@l /* 0x805A4238@l */ -/* 805A3E90 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A3E94 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A3E98 83 C3 5D B8 */ lwz r30, 0x5db8(r3) -/* 805A3E9C 28 1E 00 00 */ cmplwi r30, 0 -/* 805A3EA0 41 82 02 78 */ beq lbl_805A4118 -/* 805A3EA4 88 1D 05 AC */ lbz r0, 0x5ac(r29) -/* 805A3EA8 28 00 00 00 */ cmplwi r0, 0 -/* 805A3EAC 40 82 00 64 */ bne lbl_805A3F10 -/* 805A3EB0 A0 1D 05 B0 */ lhz r0, 0x5b0(r29) -/* 805A3EB4 28 00 0F FF */ cmplwi r0, 0xfff -/* 805A3EB8 41 82 00 24 */ beq lbl_805A3EDC -/* 805A3EBC 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 805A3EC0 54 00 0B FC */ rlwinm r0, r0, 1, 0xf, 0x1e -/* 805A3EC4 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 805A3EC8 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 805A3ECC 7C 84 02 2E */ lhzx r4, r4, r0 -/* 805A3ED0 4B A9 0A ED */ bl isEventBit__11dSv_event_cCFUs -/* 805A3ED4 2C 03 00 00 */ cmpwi r3, 0 -/* 805A3ED8 41 82 02 40 */ beq lbl_805A4118 -lbl_805A3EDC: -/* 805A3EDC A0 1D 05 B2 */ lhz r0, 0x5b2(r29) -/* 805A3EE0 28 00 0F FF */ cmplwi r0, 0xfff -/* 805A3EE4 41 82 00 2C */ beq lbl_805A3F10 -/* 805A3EE8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805A3EEC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805A3EF0 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 805A3EF4 54 00 0B FC */ rlwinm r0, r0, 1, 0xf, 0x1e -/* 805A3EF8 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 805A3EFC 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 805A3F00 7C 84 02 2E */ lhzx r4, r4, r0 -/* 805A3F04 4B A9 0A B9 */ bl isEventBit__11dSv_event_cCFUs -/* 805A3F08 2C 03 00 00 */ cmpwi r3, 0 -/* 805A3F0C 40 82 02 0C */ bne lbl_805A4118 -lbl_805A3F10: -/* 805A3F10 A8 7D 04 E6 */ lha r3, 0x4e6(r29) -/* 805A3F14 A8 1E 04 E6 */ lha r0, 0x4e6(r30) -/* 805A3F18 7C 03 00 50 */ subf r0, r3, r0 -/* 805A3F1C 7C 1B 07 34 */ extsh r27, r0 -/* 805A3F20 7F 63 DB 78 */ mr r3, r27 -/* 805A3F24 4B DC 11 AD */ bl abs -/* 805A3F28 7C 7C 1B 78 */ mr r28, r3 -/* 805A3F2C 88 1D 05 AD */ lbz r0, 0x5ad(r29) -/* 805A3F30 28 00 00 00 */ cmplwi r0, 0 -/* 805A3F34 41 82 00 0C */ beq lbl_805A3F40 -/* 805A3F38 28 00 00 02 */ cmplwi r0, 2 -/* 805A3F3C 40 82 00 14 */ bne lbl_805A3F50 -lbl_805A3F40: -/* 805A3F40 C0 3F 00 2C */ lfs f1, 0x2c(r31) -/* 805A3F44 C0 1E 17 90 */ lfs f0, 0x1790(r30) -/* 805A3F48 EC 21 00 32 */ fmuls f1, f1, f0 -/* 805A3F4C 48 00 00 3C */ b lbl_805A3F88 -lbl_805A3F50: -/* 805A3F50 28 00 00 01 */ cmplwi r0, 1 -/* 805A3F54 41 82 00 0C */ beq lbl_805A3F60 -/* 805A3F58 28 00 00 03 */ cmplwi r0, 3 -/* 805A3F5C 40 82 00 14 */ bne lbl_805A3F70 -lbl_805A3F60: -/* 805A3F60 C0 3F 00 2C */ lfs f1, 0x2c(r31) -/* 805A3F64 C0 1E 17 8C */ lfs f0, 0x178c(r30) -/* 805A3F68 EC 21 00 32 */ fmuls f1, f1, f0 -/* 805A3F6C 48 00 00 1C */ b lbl_805A3F88 -lbl_805A3F70: -/* 805A3F70 C0 5E 17 8C */ lfs f2, 0x178c(r30) -/* 805A3F74 C0 3F 00 30 */ lfs f1, 0x30(r31) -/* 805A3F78 C0 1E 17 90 */ lfs f0, 0x1790(r30) -/* 805A3F7C EC 00 10 28 */ fsubs f0, f0, f2 -/* 805A3F80 EC 01 00 32 */ fmuls f0, f1, f0 -/* 805A3F84 EC 22 00 2A */ fadds f1, f2, f0 -lbl_805A3F88: -/* 805A3F88 C0 1E 05 2C */ lfs f0, 0x52c(r30) -/* 805A3F8C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 805A3F90 40 80 01 88 */ bge lbl_805A4118 -/* 805A3F94 A8 9D 05 AE */ lha r4, 0x5ae(r29) -/* 805A3F98 7C 1C 20 00 */ cmpw r28, r4 -/* 805A3F9C 41 80 00 18 */ blt lbl_805A3FB4 -/* 805A3FA0 3C 60 00 01 */ lis r3, 0x0001 /* 0x00008000@ha */ -/* 805A3FA4 38 03 80 00 */ addi r0, r3, 0x8000 /* 0x00008000@l */ -/* 805A3FA8 7C 04 00 50 */ subf r0, r4, r0 -/* 805A3FAC 7C 1C 00 00 */ cmpw r28, r0 -/* 805A3FB0 40 81 01 68 */ ble lbl_805A4118 -lbl_805A3FB4: -/* 805A3FB4 7F A3 EB 78 */ mr r3, r29 -/* 805A3FB8 38 9E 04 D0 */ addi r4, r30, 0x4d0 -/* 805A3FBC 38 A1 00 08 */ addi r5, r1, 8 -/* 805A3FC0 4B A7 99 41 */ bl fpoAcM_relativePos__FPC10fopAc_ac_cPC4cXyzP4cXyz -/* 805A3FC4 C0 41 00 10 */ lfs f2, 0x10(r1) -/* 805A3FC8 FC 00 12 10 */ fabs f0, f2 -/* 805A3FCC FC 60 00 18 */ frsp f3, f0 -/* 805A3FD0 C0 81 00 0C */ lfs f4, 0xc(r1) -/* 805A3FD4 C0 3F 00 1C */ lfs f1, 0x1c(r31) -/* 805A3FD8 FC 04 08 40 */ fcmpo cr0, f4, f1 -/* 805A3FDC 4C 41 13 82 */ cror 2, 1, 2 -/* 805A3FE0 40 82 01 38 */ bne lbl_805A4118 -/* 805A3FE4 C0 1D 04 F0 */ lfs f0, 0x4f0(r29) -/* 805A3FE8 FC 04 00 40 */ fcmpo cr0, f4, f0 -/* 805A3FEC 4C 40 13 82 */ cror 2, 0, 2 -/* 805A3FF0 40 82 01 28 */ bne lbl_805A4118 -/* 805A3FF4 C0 01 00 08 */ lfs f0, 8(r1) -/* 805A3FF8 FC 00 02 10 */ fabs f0, f0 -/* 805A3FFC FC 80 00 18 */ frsp f4, f0 -/* 805A4000 C0 1D 04 EC */ lfs f0, 0x4ec(r29) -/* 805A4004 FC 04 00 40 */ fcmpo cr0, f4, f0 -/* 805A4008 4C 40 13 82 */ cror 2, 0, 2 -/* 805A400C 40 82 01 0C */ bne lbl_805A4118 -/* 805A4010 C0 BD 04 F4 */ lfs f5, 0x4f4(r29) -/* 805A4014 C0 9D 05 B8 */ lfs f4, 0x5b8(r29) -/* 805A4018 EC 05 20 28 */ fsubs f0, f5, f4 -/* 805A401C FC 03 00 40 */ fcmpo cr0, f3, f0 -/* 805A4020 4C 41 13 82 */ cror 2, 1, 2 -/* 805A4024 40 82 00 F4 */ bne lbl_805A4118 -/* 805A4028 EC 05 20 2A */ fadds f0, f5, f4 -/* 805A402C FC 03 00 40 */ fcmpo cr0, f3, f0 -/* 805A4030 4C 40 13 82 */ cror 2, 0, 2 -/* 805A4034 40 82 00 E4 */ bne lbl_805A4118 -/* 805A4038 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 805A403C 40 81 00 1C */ ble lbl_805A4058 -/* 805A4040 A8 9D 05 AE */ lha r4, 0x5ae(r29) -/* 805A4044 3C 60 00 01 */ lis r3, 0x0001 /* 0x00008000@ha */ -/* 805A4048 38 03 80 00 */ addi r0, r3, 0x8000 /* 0x00008000@l */ -/* 805A404C 7C 04 00 50 */ subf r0, r4, r0 -/* 805A4050 7C 1C 00 00 */ cmpw r28, r0 -/* 805A4054 41 81 00 1C */ bgt lbl_805A4070 -lbl_805A4058: -/* 805A4058 C0 1F 00 1C */ lfs f0, 0x1c(r31) -/* 805A405C FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 805A4060 40 80 00 B8 */ bge lbl_805A4118 -/* 805A4064 A8 1D 05 AE */ lha r0, 0x5ae(r29) -/* 805A4068 7C 1C 00 00 */ cmpw r28, r0 -/* 805A406C 40 80 00 AC */ bge lbl_805A4118 -lbl_805A4070: -/* 805A4070 3C 60 80 44 */ lis r3, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 805A4074 38 03 9A 20 */ addi r0, r3, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 805A4078 57 64 04 38 */ rlwinm r4, r27, 0, 0x10, 0x1c -/* 805A407C 7C 60 22 14 */ add r3, r0, r4 -/* 805A4080 C0 03 00 04 */ lfs f0, 4(r3) -/* 805A4084 EC 02 00 24 */ fdivs f0, f2, f0 -/* 805A4088 FC 00 02 10 */ fabs f0, f0 -/* 805A408C FC 60 00 18 */ frsp f3, f0 -/* 805A4090 C0 1D 05 B8 */ lfs f0, 0x5b8(r29) -/* 805A4094 FC 03 00 40 */ fcmpo cr0, f3, f0 -/* 805A4098 40 80 00 0C */ bge lbl_805A40A4 -/* 805A409C FC 80 00 90 */ fmr f4, f0 -/* 805A40A0 48 00 00 08 */ b lbl_805A40A8 -lbl_805A40A4: -/* 805A40A4 FC 80 18 90 */ fmr f4, f3 -lbl_805A40A8: -/* 805A40A8 C0 41 00 08 */ lfs f2, 8(r1) -/* 805A40AC 3C 60 80 44 */ lis r3, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 805A40B0 38 63 9A 20 */ addi r3, r3, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 805A40B4 7C 03 24 2E */ lfsx f0, r3, r4 -/* 805A40B8 EC 23 00 32 */ fmuls f1, f3, f0 -/* 805A40BC EC 04 00 32 */ fmuls f0, f4, f0 -/* 805A40C0 EC 01 00 2A */ fadds f0, f1, f0 -/* 805A40C4 EC 02 00 2A */ fadds f0, f2, f0 -/* 805A40C8 D0 01 00 08 */ stfs f0, 8(r1) -/* 805A40CC FC 00 02 10 */ fabs f0, f0 -/* 805A40D0 FC 20 00 18 */ frsp f1, f0 -/* 805A40D4 C0 1D 04 EC */ lfs f0, 0x4ec(r29) -/* 805A40D8 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 805A40DC 4C 40 13 82 */ cror 2, 0, 2 -/* 805A40E0 41 82 00 1C */ beq lbl_805A40FC -/* 805A40E4 88 1D 05 AC */ lbz r0, 0x5ac(r29) -/* 805A40E8 28 00 00 00 */ cmplwi r0, 0 -/* 805A40EC 40 82 00 2C */ bne lbl_805A4118 -/* 805A40F0 88 1D 05 AD */ lbz r0, 0x5ad(r29) -/* 805A40F4 28 00 00 04 */ cmplwi r0, 4 -/* 805A40F8 40 82 00 20 */ bne lbl_805A4118 -lbl_805A40FC: -/* 805A40FC C0 1D 05 B4 */ lfs f0, 0x5b4(r29) -/* 805A4100 D0 7E 17 68 */ stfs f3, 0x1768(r30) -/* 805A4104 D0 1E 17 6C */ stfs f0, 0x176c(r30) -/* 805A4108 D0 9E 17 70 */ stfs f4, 0x1770(r30) -/* 805A410C 80 1E 17 4C */ lwz r0, 0x174c(r30) -/* 805A4110 60 00 00 01 */ ori r0, r0, 1 -/* 805A4114 90 1E 17 4C */ stw r0, 0x174c(r30) -lbl_805A4118: -/* 805A4118 38 60 00 01 */ li r3, 1 -/* 805A411C 39 61 00 30 */ addi r11, r1, 0x30 -/* 805A4120 4B DB E1 01 */ bl _restgpr_27 -/* 805A4124 80 01 00 34 */ lwz r0, 0x34(r1) -/* 805A4128 7C 08 03 A6 */ mtlr r0 -/* 805A412C 38 21 00 30 */ addi r1, r1, 0x30 -/* 805A4130 4E 80 00 20 */ blr diff --git a/include/d/bg/d_bg_w.h b/include/d/bg/d_bg_w.h index c2c9f23210..0b22d8dd3d 100644 --- a/include/d/bg/d_bg_w.h +++ b/include/d/bg/d_bg_w.h @@ -208,6 +208,7 @@ public: MtxP GetBaseMtxP() { return pm_base; } bool ChkNoCalcVtx() { return field_0x88 & 2; } bool ChkFlush() { return field_0x91 & 8; } + void SetLock() { field_0x88 |= 0x80; } public: /* 0x18 */ MtxP pm_base; diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 0466277171..237c15af9a 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -2936,6 +2936,11 @@ inline int i_dComIfGp_evmng_getMyStaffId(const char* pName, fopAc_ac_c* pActor, return dComIfGp_getPEvtManager()->getMyStaffId(pName, pActor, param_2); } +inline int dComIfGp_evmng_getMyActIdx(int i_staffIdx, char** param_1, int param_2, int param_3, + int param_4) { + return dComIfGp_getPEvtManager()->getMyActIdx(i_staffIdx, param_1, param_2, param_3, param_4); +} + inline int dComIfGp_evmng_getIsAddvance(int param_0) { return dComIfGp_getPEvtManager()->getIsAddvance(param_0); } diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 22d2ae1eb2..6106bb1ae9 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -301,6 +301,10 @@ inline dJntCol_c* fopAcM_GetJntCol(fopAc_ac_c* i_actor) { return i_actor->mJntCol; } +inline void fopAcM_setCullSizeFar(fopAc_ac_c* i_actor, f32 i_far) { + i_actor->mCullSizeFar = i_far; +} + inline f32 fopAcM_getCullSizeFar(const fopAc_ac_c* i_actor) { return i_actor->mCullSizeFar; } diff --git a/include/rel/d/a/d_a_horse/d_a_horse.h b/include/rel/d/a/d_a_horse/d_a_horse.h index 757eae2930..07caaee34c 100644 --- a/include/rel/d/a/d_a_horse/d_a_horse.h +++ b/include/rel/d/a/d_a_horse/d_a_horse.h @@ -39,6 +39,7 @@ private: class daHorse_c : public fopAc_ac_c { public: enum daHorse_ERFLG0 { + /* 0x001 */ ERFLG0_UNK_1 = 0x1, /* 0x010 */ MOVE_ACCEPT = 0x10, /* 0x080 */ RIDE_RUN_FLG = 0x80, /* 0x100 */ CUT_TURN_CANCEL = 0x100, @@ -157,6 +158,7 @@ public: bool checkEndResetStateFlg0(daHorse_ERFLG0 flag) { return mEndResetStateFlg0 & flag; } bool checkStateFlg0(daHorse_FLG0 flag) const { return mStateFlg0 & flag; } f32 getNormalMaxSpeedF() { return mNormalMaxSpeedF; } + f32 getLashMaxSpeedF() { return mLashMaxSpeedF; } void changeDemoMoveAngle(s16 angle) { mDemoMoveAngle = angle; } void setDemoStickR(f32 stick) { mDemoStickR = stick; } void i_changeDemoMode(u32 param_0, int param_1) { field_0x1740 = param_0; field_0x1728 = param_1; } @@ -166,6 +168,7 @@ public: void offRideFlg() { (this->*mpOffRideFlgFn)(); } void onStateFlg0(daHorse_FLG0 flag) { mStateFlg0 |= flag; } void offStateFlg0(daHorse_FLG0 flag) { mStateFlg0 &= ~flag; } + void onEndResetStateFlg0(daHorse_ERFLG0 i_flag) { mEndResetStateFlg0 |= i_flag;} void offNoDrawWait() { offStateFlg0(NO_DRAW_WAIT); } int checkSpecialWallHit(const cXyz& param_0) { return (this->*mpCheckSpecialWallHitFn)(param_0); } @@ -173,6 +176,13 @@ public: bool checkTurnStand() const { return checkResetStateFlg0(TURN_STAND); } bool checkRodeoMode() const { return checkStateFlg0(RODEO_MODE); } + void onTagJump(f32 param_0, f32 param_1, f32 param_2) { + field_0x1768 = param_0; + field_0x176c = param_1; + field_0x1770 = param_2; + onEndResetStateFlg0(ERFLG0_UNK_1); + } + static u8 const m_footJointTable[8]; static f32 const m_callLimitDistance2; diff --git a/include/rel/d/a/d_a_scene_exit2/d_a_scene_exit2.h b/include/rel/d/a/d_a_scene_exit2/d_a_scene_exit2.h index 0c59521beb..7c6713cbf2 100644 --- a/include/rel/d/a/d_a_scene_exit2/d_a_scene_exit2.h +++ b/include/rel/d/a/d_a_scene_exit2/d_a_scene_exit2.h @@ -1,6 +1,48 @@ #ifndef D_A_SCENE_EXIT2_H #define D_A_SCENE_EXIT2_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daScExit_c : public fopAc_ac_c { +public: + enum act_e { + WAIT_e, + START_e, + SCENE_CHG_e, + }; + + enum action_e { + ACTION_WAIT_e, + ACTION_ORDER_EVENT_e, + ACTION_EVENT_e, + ACTION_DEAD_e, + }; + + /* 8059E158 */ void initBaseMtx(); + /* 8059E178 */ void setBaseMtx(); + /* 8059E1B0 */ int Create(); + /* 8059E230 */ int create(); + /* 8059E2C0 */ int execute(); + /* 8059E2E4 */ void event_proc_call(); + /* 8059E3A0 */ void actionWait(); + /* 8059E408 */ void actionOrderEvent(); + /* 8059E488 */ void actionEvent(); + /* 8059E504 */ void actionDead(); + /* 8059E508 */ int demoProc(); + /* 8059E6CC */ BOOL checkArea(); + /* 8059E714 */ int draw(); + /* 8059E71C */ int _delete(); + + int getSceneID() { return fopAcM_GetParamBit(this, 0, 8); } + void setAction(u8 i_action) { mAction = i_action; } + + /* 0x568 */ request_of_phase_process_class mPhase; + /* 0x570 */ int mStaffID; + /* 0x574 */ f32 mRadius; + /* 0x578 */ s16 mEventID; + /* 0x57A */ u8 mToolID; + /* 0x57B */ u8 mAction; + /* 0x57C */ u8 mTimer; +}; #endif /* D_A_SCENE_EXIT2_H */ diff --git a/include/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump.h b/include/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump.h index 001d6cd9da..93ae37fd29 100644 --- a/include/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump.h +++ b/include/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump.h @@ -1,6 +1,32 @@ #ifndef D_A_TAG_HJUMP_H #define D_A_TAG_HJUMP_H -#include "dolphin/types.h" +#include "d/bg/d_bg_s_movebg_actor.h" +#include "f_op/f_op_actor_mng.h" + +class daTagHjump_c : public dBgS_MoveBgActor { +public: + enum Type_e { + TYPE_TRIGGER_e = 0, + TYPE_OBJECT_e = 3, + }; + + /* 805A3B24 */ int create(); + /* 805A3DA0 */ ~daTagHjump_c(); + /* 805A3E70 */ int execute(); + + /* 805A3AB8 */ virtual int CreateHeap(); + /* 805A4154 */ virtual int Draw(); + + /* 0x5A0 */ request_of_phase_process_class mPhase; + /* 0x5A8 */ J3DModel* mpModel; + /* 0x5AC */ u8 mType; + /* 0x5AD */ u8 field_0x5ad; + /* 0x5AE */ s16 field_0x5ae; + /* 0x5B0 */ u16 mOnFlagID; + /* 0x5B2 */ u16 mOffFlagID; + /* 0x5B4 */ f32 field_0x5b4; + /* 0x5B8 */ f32 field_0x5b8; +}; #endif /* D_A_TAG_HJUMP_H */ diff --git a/rel/d/a/d_a_scene_exit2/Makefile b/rel/d/a/d_a_scene_exit2/Makefile index 611c51dc72..253b81a826 100644 --- a/rel/d/a/d_a_scene_exit2/Makefile +++ b/rel/d/a/d_a_scene_exit2/Makefile @@ -8,12 +8,10 @@ M117_MAP := $(BUILD_DIR)/rel/d/a/d_a_scene_exit2.map M117_CPP_FILES := \ rel/executor.cpp \ - rel/d/a/d_a_scene_exit2/unknown_translation_unit_bss.cpp \ rel/d/a/d_a_scene_exit2/d_a_scene_exit2.cpp \ M117_O_FILES := \ $(BUILD_DIR)/rel/executor.o \ - $(BUILD_DIR)/rel/d/a/d_a_scene_exit2/unknown_translation_unit_bss.o \ $(BUILD_DIR)/rel/d/a/d_a_scene_exit2/d_a_scene_exit2.o \ M117_LIBS := \ diff --git a/rel/d/a/d_a_scene_exit2/d_a_scene_exit2.cpp b/rel/d/a/d_a_scene_exit2/d_a_scene_exit2.cpp index 97708d43d2..1f9a82304f 100644 --- a/rel/d/a/d_a_scene_exit2/d_a_scene_exit2.cpp +++ b/rel/d/a/d_a_scene_exit2/d_a_scene_exit2.cpp @@ -1,174 +1,25 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_scene_exit2 -// +/** + * d_a_scene_exit2.cpp + * Grotto Scene Exit trigger + */ #include "rel/d/a/d_a_scene_exit2/d_a_scene_exit2.h" -#include "dol2asm.h" -#include "dolphin/types.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct csXyz {}; - -struct cXyz {}; - -struct mDoMtx_stack_c { - /* 8000CD64 */ void transS(cXyz const&); - /* 8000CF44 */ void ZXYrotM(csXyz const&); -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daScExit_c { - /* 8059E158 */ void initBaseMtx(); - /* 8059E178 */ void setBaseMtx(); - /* 8059E1B0 */ void Create(); - /* 8059E230 */ void create(); - /* 8059E2C0 */ void execute(); - /* 8059E2E4 */ void event_proc_call(); - /* 8059E3A0 */ void actionWait(); - /* 8059E408 */ void actionOrderEvent(); - /* 8059E488 */ void actionEvent(); - /* 8059E504 */ void actionDead(); - /* 8059E508 */ void demoProc(); - /* 8059E6CC */ void checkArea(); - /* 8059E714 */ bool draw(); - /* 8059E71C */ void _delete(); -}; - -struct dEvt_control_c { - /* 80042468 */ void reset(); -}; - -struct dEvent_manager_c { - /* 80047758 */ void getEventIdx(fopAc_ac_c*, char const*, u8); - /* 80047A78 */ void endCheck(s16); - /* 80047D4C */ void getIsAddvance(int); - /* 80047E10 */ void getMyActIdx(int, char const* const*, int, int, int); - /* 800480EC */ void getMySubstanceP(int, char const*, int); - /* 8004817C */ void cutEnd(int); -}; - -struct JAISoundID {}; - -struct Vec {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -// -// Forward References: -// - -extern "C" void initBaseMtx__10daScExit_cFv(); -extern "C" void setBaseMtx__10daScExit_cFv(); -extern "C" void Create__10daScExit_cFv(); -extern "C" void create__10daScExit_cFv(); -extern "C" void execute__10daScExit_cFv(); -extern "C" void event_proc_call__10daScExit_cFv(); -extern "C" void actionWait__10daScExit_cFv(); -extern "C" void actionOrderEvent__10daScExit_cFv(); -extern "C" void actionEvent__10daScExit_cFv(); -extern "C" void actionDead__10daScExit_cFv(); -extern "C" void demoProc__10daScExit_cFv(); -extern "C" void checkArea__10daScExit_cFv(); -extern "C" bool draw__10daScExit_cFv(); -extern "C" void _delete__10daScExit_cFv(); -extern "C" static void daScExit_Draw__FP10daScExit_c(); -extern "C" static void daScExit_Execute__FP10daScExit_c(); -extern "C" static void daScExit_Delete__FP10daScExit_c(); -extern "C" static void daScExit_Create__FP10daScExit_c(); -extern "C" void func_8059E7D0(void* _this, u8*); -extern "C" extern char const* const d_a_scene_exit2__stringBase0; -extern "C" extern void* g_profile_SCENE_EXIT2[12]; - -// -// External References: -// - -extern "C" void transS__14mDoMtx_stack_cFRC4cXyz(); -extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs(); -extern "C" void dStage_changeScene__FifUlScsi(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfGp_getReverb__Fi(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc(); -extern "C" void endCheck__16dEvent_manager_cFs(); -extern "C" void getIsAddvance__16dEvent_manager_cFi(); -extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii(); -extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_27(); -extern "C" void _restgpr_27(); -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" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" extern u8 data_8059E920[4]; - -// -// Declarations: -// - -/* 8059E158-8059E178 000078 0020+00 1/1 0/0 0/0 .text initBaseMtx__10daScExit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daScExit_c::initBaseMtx() { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/initBaseMtx__10daScExit_cFv.s" -} -#pragma pop - -/* 8059E178-8059E1B0 000098 0038+00 1/1 0/0 0/0 .text setBaseMtx__10daScExit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daScExit_c::setBaseMtx() { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/setBaseMtx__10daScExit_cFv.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 8059E7F4-8059E7F8 000000 0004+00 2/2 0/0 0/0 .rodata @3659 */ -SECTION_RODATA static f32 const lit_3659 = 100.0f; -COMPILER_STRIP_GATE(0x8059E7F4, &lit_3659); - -/* 8059E808-8059E808 000014 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8059E808 = "SceneExit"; -SECTION_DEAD static char const* const stringBase_8059E812 = "SCENE_EXIT"; -#pragma pop +extern "C" u8 func_8059E7D0(u8*); /* 8059E838-8059E844 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { +static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; /* 8059E844-8059E858 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ #pragma push #pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { +// unused data? +static u32 lit_1787[1 + 4 /* padding */] = { 0x02000201, /* padding */ 0x40080000, @@ -178,294 +29,216 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { }; #pragma pop +/* 8059E158-8059E178 000078 0020+00 1/1 0/0 0/0 .text initBaseMtx__10daScExit_cFv */ +void daScExit_c::initBaseMtx() { + setBaseMtx(); +} + +/* 8059E178-8059E1B0 000098 0038+00 1/1 0/0 0/0 .text setBaseMtx__10daScExit_cFv */ +void daScExit_c::setBaseMtx() { + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); +} + /* 8059E858-8059E85C -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_scene_exit2__stringBase0; +static char* l_arcName = "SceneExit"; /* 8059E85C-8059E860 -00001 0004+00 1/1 0/0 0/0 .data l_evName */ -SECTION_DATA static void* l_evName = (void*)(((char*)&d_a_scene_exit2__stringBase0) + 0xA); +static char* l_evName = "SCENE_EXIT"; /* 8059E1B0-8059E230 0000D0 0080+00 1/1 0/0 0/0 .text Create__10daScExit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daScExit_c::Create() { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/Create__10daScExit_cFv.s" +int daScExit_c::Create() { + mRadius = mScale.x * 100.0f; + initBaseMtx(); + + mToolID = 0xFF; + mEvtInfo.setArchiveName(l_arcName); + mEventID = i_dComIfGp_getEventManager().getEventIdx(this, l_evName, 0xFF); + return 1; } -#pragma pop /* 8059E230-8059E2C0 000150 0090+00 1/1 0/0 0/0 .text create__10daScExit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daScExit_c::create() { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/func_8059E230.s" +int daScExit_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daScExit_c(); + fopAcM_OnCondition(this, 8); + } + + int phase = dComIfG_resLoad(&mPhase, l_arcName); + if (phase == cPhs_COMPLEATE_e) { + if (!Create()) { + return cPhs_ERROR_e; + } + } + + return phase; } -#pragma pop /* 8059E2C0-8059E2E4 0001E0 0024+00 1/1 0/0 0/0 .text execute__10daScExit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daScExit_c::execute() { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/execute__10daScExit_cFv.s" +int daScExit_c::execute() { + event_proc_call(); + return 1; } -#pragma pop - -/* ############################################################################################## */ -/* 8059E860-8059E86C -00001 000C+00 0/1 0/0 0/0 .data @3699 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3699[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionWait__10daScExit_cFv, -}; -#pragma pop - -/* 8059E86C-8059E878 -00001 000C+00 0/1 0/0 0/0 .data @3700 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3700[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionOrderEvent__10daScExit_cFv, -}; -#pragma pop - -/* 8059E878-8059E884 -00001 000C+00 0/1 0/0 0/0 .data @3701 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3701[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionEvent__10daScExit_cFv, -}; -#pragma pop - -/* 8059E884-8059E890 -00001 000C+00 0/1 0/0 0/0 .data @3702 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3702[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)actionDead__10daScExit_cFv, -}; -#pragma pop - -/* 8059E890-8059E8C0 000058 0030+00 0/1 0/0 0/0 .data l_func$3698 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_func[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop /* 8059E2E4-8059E3A0 000204 00BC+00 1/1 0/0 0/0 .text event_proc_call__10daScExit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daScExit_c::event_proc_call() { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/event_proc_call__10daScExit_cFv.s" +void daScExit_c::event_proc_call() { + typedef void (daScExit_c::*actionFunc)(); + static actionFunc l_func[] = {&daScExit_c::actionWait, &daScExit_c::actionOrderEvent, + &daScExit_c::actionEvent, &daScExit_c::actionDead}; + + (this->*l_func[mAction])(); } -#pragma pop /* 8059E3A0-8059E408 0002C0 0068+00 1/0 0/0 0/0 .text actionWait__10daScExit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daScExit_c::actionWait() { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionWait__10daScExit_cFv.s" +void daScExit_c::actionWait() { + if (checkArea()) { + setAction(ACTION_ORDER_EVENT_e); + fopAcM_orderOtherEventId(this, mEventID, mToolID, 0xFFFF, 0, 1); + mEvtInfo.i_onCondition(2); + } } -#pragma pop /* 8059E408-8059E488 000328 0080+00 1/0 0/0 0/0 .text actionOrderEvent__10daScExit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daScExit_c::actionOrderEvent() { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionOrderEvent__10daScExit_cFv.s" +void daScExit_c::actionOrderEvent() { + if (mEvtInfo.i_checkCommandDemoAccrpt()) { + setAction(ACTION_EVENT_e); + demoProc(); + dComIfGp_setPlayerStatus1(0, 0x4000000); + } else { + fopAcM_orderOtherEventId(this, mEventID, mToolID, 0xFFFF, 0, 1); + mEvtInfo.i_onCondition(2); + } } -#pragma pop /* 8059E488-8059E504 0003A8 007C+00 1/0 0/0 0/0 .text actionEvent__10daScExit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daScExit_c::actionEvent() { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/actionEvent__10daScExit_cFv.s" +void daScExit_c::actionEvent() { + if (dComIfGp_evmng_endCheck(mEventID)) { + setAction(ACTION_DEAD_e); + i_dComIfGp_event_reset(); + } else { + demoProc(); + dComIfGp_setPlayerStatus1(0, 0x4000000); + } } -#pragma pop /* 8059E504-8059E508 000424 0004+00 1/0 0/0 0/0 .text actionDead__10daScExit_cFv */ -void daScExit_c::actionDead() { - /* empty function */ -} - -/* ############################################################################################## */ -/* 8059E7F8-8059E7FC 000004 0004+00 0/1 0/0 0/0 .rodata @3797 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3797 = 1.0f; -COMPILER_STRIP_GATE(0x8059E7F8, &lit_3797); -#pragma pop - -/* 8059E7FC-8059E800 000008 0004+00 0/1 0/0 0/0 .rodata @3798 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3798 = -1.0f; -COMPILER_STRIP_GATE(0x8059E7FC, &lit_3798); -#pragma pop - -/* 8059E800-8059E804 00000C 0004+00 0/1 0/0 0/0 .rodata @3799 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3799 = 800.0f; -COMPILER_STRIP_GATE(0x8059E800, &lit_3799); -#pragma pop - -/* 8059E808-8059E808 000014 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8059E81D = "WAIT"; -SECTION_DEAD static char const* const stringBase_8059E822 = "START"; -SECTION_DEAD static char const* const stringBase_8059E828 = "SCENE_CHG"; -SECTION_DEAD static char const* const stringBase_8059E832 = "Timer"; -#pragma pop - -/* 8059E8C0-8059E8CC -00001 000C+00 1/1 0/0 0/0 .data action_table$3745 */ -SECTION_DATA static void* action_table[3] = { - (void*)(((char*)&d_a_scene_exit2__stringBase0) + 0x15), - (void*)(((char*)&d_a_scene_exit2__stringBase0) + 0x1A), - (void*)(((char*)&d_a_scene_exit2__stringBase0) + 0x20), -}; +void daScExit_c::actionDead() {} /* 8059E508-8059E6CC 000428 01C4+00 2/2 0/0 0/0 .text demoProc__10daScExit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daScExit_c::demoProc() { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/demoProc__10daScExit_cFv.s" +int daScExit_c::demoProc() { + static char* action_table[3] = {"WAIT", "START", "SCENE_CHG"}; + + u8 scene_id = getSceneID(); + int act_id = dComIfGp_evmng_getMyActIdx(mStaffID, action_table, 3, 0, 0); + + if (dComIfGp_evmng_getIsAddvance(mStaffID)) { + switch (act_id) { + case WAIT_e: + int* timer_p = dComIfGp_evmng_getMyIntegerP(mStaffID, "Timer"); + + if (timer_p == NULL) { + mTimer = 1; + } else { + mTimer = *timer_p; + } + break; + case START_e: + fopAcM_seStart(this, Z2SE_SY_WARP_FADE, 0); + mAttentionInfo.mPosition.y = current.pos.y + 800.0f; + mEyePos.y = mAttentionInfo.mPosition.y; + break; + case SCENE_CHG_e: + break; + } + } + + switch (act_id) { + case WAIT_e: + if (func_8059E7D0(&mTimer) == 0) { + dComIfGp_evmng_cutEnd(mStaffID); + } + break; + case START_e: + dComIfGp_evmng_cutEnd(mStaffID); + break; + case SCENE_CHG_e: + dStage_changeScene(scene_id, 0.0f, 0, fopAcM_GetRoomNo(this), 0, -1); + break; + default: + dComIfGp_evmng_cutEnd(mStaffID); + break; + } + + return 0; } -#pragma pop /* 8059E6CC-8059E714 0005EC 0048+00 1/1 0/0 0/0 .text checkArea__10daScExit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daScExit_c::checkArea() { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/checkArea__10daScExit_cFv.s" +BOOL daScExit_c::checkArea() { + return fopAcM_searchPlayerDistanceXZ(this) < mRadius; } -#pragma pop /* 8059E714-8059E71C 000634 0008+00 1/1 0/0 0/0 .text draw__10daScExit_cFv */ -bool daScExit_c::draw() { - return true; +int daScExit_c::draw() { + return 1; } /* 8059E71C-8059E750 00063C 0034+00 1/1 0/0 0/0 .text _delete__10daScExit_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daScExit_c::_delete() { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/_delete__10daScExit_cFv.s" +int daScExit_c::_delete() { + dComIfG_resDelete(&mPhase, l_arcName); + return 1; } -#pragma pop /* 8059E750-8059E770 000670 0020+00 1/0 0/0 0/0 .text daScExit_Draw__FP10daScExit_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daScExit_Draw(daScExit_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Draw__FP10daScExit_c.s" +static int daScExit_Draw(daScExit_c* i_this) { + return i_this->draw(); } -#pragma pop /* 8059E770-8059E790 000690 0020+00 1/0 0/0 0/0 .text daScExit_Execute__FP10daScExit_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daScExit_Execute(daScExit_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Execute__FP10daScExit_c.s" +static int daScExit_Execute(daScExit_c* i_this) { + return i_this->execute(); } -#pragma pop /* 8059E790-8059E7B0 0006B0 0020+00 1/0 0/0 0/0 .text daScExit_Delete__FP10daScExit_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daScExit_Delete(daScExit_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Delete__FP10daScExit_c.s" +static int daScExit_Delete(daScExit_c* i_this) { + return i_this->_delete(); } -#pragma pop /* 8059E7B0-8059E7D0 0006D0 0020+00 1/0 0/0 0/0 .text daScExit_Create__FP10daScExit_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daScExit_Create(daScExit_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/daScExit_Create__FP10daScExit_c.s" +static int daScExit_Create(daScExit_c* i_this) { + return i_this->create(); } -#pragma pop /* 8059E7D0-8059E7EC 0006F0 001C+00 1/1 0/0 0/0 .text cLib_calcTimer__FPUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -extern "C" asm void func_8059E7D0(void* _this, u8* param_0) { +extern "C" asm u8 func_8059E7D0(u8* param_0) { nofralloc #include "asm/rel/d/a/d_a_scene_exit2/d_a_scene_exit2/func_8059E7D0.s" } #pragma pop -/* ############################################################################################## */ -/* 8059E804-8059E808 000010 0004+00 0/0 0/0 0/0 .rodata @3800 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3800[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x8059E804, &lit_3800); -#pragma pop - /* 8059E8CC-8059E8EC -00001 0020+00 1/0 0/0 0/0 .data l_daScExit_Method */ -SECTION_DATA static void* l_daScExit_Method[8] = { - (void*)daScExit_Create__FP10daScExit_c, - (void*)daScExit_Delete__FP10daScExit_c, - (void*)daScExit_Execute__FP10daScExit_c, - (void*)NULL, - (void*)daScExit_Draw__FP10daScExit_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daScExit_Method = { + (process_method_func)daScExit_Create, (process_method_func)daScExit_Delete, + (process_method_func)daScExit_Execute, (process_method_func)NULL, + (process_method_func)daScExit_Draw, }; /* 8059E8EC-8059E91C -00001 0030+00 0/0 0/0 1/0 .data g_profile_SCENE_EXIT2 */ -SECTION_DATA extern void* g_profile_SCENE_EXIT2[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x01A70000, (void*)&g_fpcLf_Method, - (void*)0x00000580, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02470000, (void*)&l_daScExit_Method, - (void*)0x00040000, (void*)0x000E0000, +extern actor_process_profile_definition g_profile_SCENE_EXIT2 = { + -3, + 7, + -3, + PROC_SCENE_EXIT2, + &g_fpcLf_Method.mBase, + sizeof(daScExit_c), + 0, + 0, + &g_fopAc_Method.base, + 583, + &l_daScExit_Method, + 0x40000, + 0, + 14, }; - -/* 8059E808-8059E808 000014 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/rel/d/a/d_a_scene_exit2/unknown_translation_unit_bss.cpp b/rel/d/a/d_a_scene_exit2/unknown_translation_unit_bss.cpp deleted file mode 100644 index 98550cb102..0000000000 --- a/rel/d/a/d_a_scene_exit2/unknown_translation_unit_bss.cpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// Generated By: dol2asm -// Translation Unit: unknown_translation_unit_bss -// - -#include "rel/d/a/d_a_scene_exit2/unknown_translation_unit_bss.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" extern u8 data_8059E920[4]; - -// -// External References: -// - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 8059E920-8059E924 000000 0004+00 0/0 1/1 0/0 .bss None */ -extern u8 data_8059E920[4]; -u8 data_8059E920[4]; diff --git a/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump.cpp b/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump.cpp index 5e06f1cb21..d3425993b7 100644 --- a/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump.cpp +++ b/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump.cpp @@ -1,373 +1,222 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_tag_hjump -// +/** + * d_a_tag_hjump.cpp + * Epona fence jump trigger / object + */ #include "rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump.h" -#include "dol2asm.h" -#include "dolphin/types.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "SSystem/SComponent/c_math.h" +#include "d/bg/d_bg_w.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" +#include "rel/d/a/d_a_horse/d_a_horse.h" -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTagHjump_c { - /* 805A3AB8 */ void CreateHeap(); - /* 805A3B24 */ void create(); - /* 805A3DA0 */ ~daTagHjump_c(); - /* 805A3E70 */ void execute(); - /* 805A4154 */ void Draw(); -}; - -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -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); -}; - -struct dBgW {}; - -struct cBgS_PolyInfo {}; - -struct csXyz {}; - -struct dBgS_MoveBgActor { - /* 80078624 */ dBgS_MoveBgActor(); - /* 80078690 */ bool Create(); - /* 80078698 */ bool Execute(f32 (**)[3][4]); - /* 800786A8 */ bool Delete(); - /* 800786B0 */ bool IsDelete(); - /* 800786B8 */ bool ToFore(); - /* 800786C0 */ bool ToBack(); - /* 800787BC */ void MoveBGCreate(char const*, int, - void (*)(dBgW*, void*, cBgS_PolyInfo const&, bool, cXyz*, - csXyz*, csXyz*), - u32, f32 (*)[3][4]); - /* 800788DC */ void MoveBGDelete(); -}; - -struct JMath { - static u8 sincosTable_[65536]; -}; - -struct J3DModel {}; - -// -// Forward References: -// - -extern "C" void CreateHeap__12daTagHjump_cFv(); -extern "C" void create__12daTagHjump_cFv(); -extern "C" static void daTagHjump_Create__FP10fopAc_ac_c(); -extern "C" void __dt__12daTagHjump_cFv(); -extern "C" static void daTagHjump_Delete__FP12daTagHjump_c(); -extern "C" void execute__12daTagHjump_cFv(); -extern "C" static void daTagHjump_Execute__FP12daTagHjump_c(); -extern "C" void Draw__12daTagHjump_cFv(); -extern "C" static void daTagHjump_Draw__FP12daTagHjump_c(); - -// -// External References: -// - -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_SetMin__FP10fopAc_ac_cfff(); -extern "C" void fopAcM_SetMax__FP10fopAc_ac_cfff(); -extern "C" void fpoAcM_relativePos__FPC10fopAc_ac_cPC4cXyzP4cXyz(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void isEventBit__11dSv_event_cCFUs(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void __ct__16dBgS_MoveBgActorFv(); -extern "C" bool Create__16dBgS_MoveBgActorFv(); -extern "C" bool Execute__16dBgS_MoveBgActorFPPA3_A4_f(); -extern "C" bool Delete__16dBgS_MoveBgActorFv(); -extern "C" bool IsDelete__16dBgS_MoveBgActorFv(); -extern "C" bool ToFore__16dBgS_MoveBgActorFv(); -extern "C" bool ToBack__16dBgS_MoveBgActorFv(); -extern "C" void -MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f(); -extern "C" void MoveBGDelete__16dBgS_MoveBgActorFv(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void __dl__FPv(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_29(); -extern "C" void abs(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern void* __vt__16dBgS_MoveBgActor[10]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_env_light[4880]; -extern "C" extern u8 j3dSys[284]; -extern "C" u8 sincosTable___5JMath[65536]; - -// -// Declarations: -// - -/* ############################################################################################## */ /* 805A4238-805A4240 000000 0007+01 4/4 0/0 0/0 .rodata l_arcName */ -SECTION_RODATA static u8 const l_arcName[7 + 1 /* padding */] = { - 0x48, - 0x66, - 0x65, - 0x6E, - 0x63, - 0x65, - 0x00, - /* padding */ - 0x00, -}; -COMPILER_STRIP_GATE(0x805A4238, &l_arcName); +static char const l_arcName[] = "Hfence"; /* 805A3AB8-805A3B24 000078 006C+00 1/0 0/0 0/0 .text CreateHeap__12daTagHjump_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagHjump_c::CreateHeap() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/CreateHeap__12daTagHjump_cFv.s" +int daTagHjump_c::CreateHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 4); + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (mpModel == NULL) { + return 0; + } + + return 1; } -#pragma pop - -/* ############################################################################################## */ -/* 805A4240-805A4244 000008 0004+00 0/1 0/0 0/0 .rodata @3747 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3747 = 100.0f; -COMPILER_STRIP_GATE(0x805A4240, &lit_3747); -#pragma pop - -/* 805A4244-805A4248 00000C 0004+00 0/1 0/0 0/0 .rodata @3748 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3748 = 250.0f; -COMPILER_STRIP_GATE(0x805A4244, &lit_3748); -#pragma pop - -/* 805A4248-805A424C 000010 0004+00 0/1 0/0 0/0 .rodata @3749 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3749 = 350.0f; -COMPILER_STRIP_GATE(0x805A4248, &lit_3749); -#pragma pop - -/* 805A424C-805A4250 000014 0004+00 0/1 0/0 0/0 .rodata @3750 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3750 = 400.0f; -COMPILER_STRIP_GATE(0x805A424C, &lit_3750); -#pragma pop - -/* 805A4250-805A4254 000018 0004+00 0/1 0/0 0/0 .rodata @3751 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3751 = 200.0f; -COMPILER_STRIP_GATE(0x805A4250, &lit_3751); -#pragma pop - -/* 805A4254-805A4258 00001C 0004+00 0/2 0/0 0/0 .rodata @3752 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3752[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x805A4254, &lit_3752); -#pragma pop - -/* 805A4258-805A425C 000020 0004+00 0/1 0/0 0/0 .rodata @3753 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3753 = -50.0f; -COMPILER_STRIP_GATE(0x805A4258, &lit_3753); -#pragma pop - -/* 805A425C-805A4260 000024 0004+00 0/1 0/0 0/0 .rodata @3754 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3754 = 50.0f; -COMPILER_STRIP_GATE(0x805A425C, &lit_3754); -#pragma pop - -/* 805A4260-805A4264 000028 0004+00 0/1 0/0 0/0 .rodata @3755 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3755 = 5.0f; -COMPILER_STRIP_GATE(0x805A4260, &lit_3755); -#pragma pop - -/* 805A426C-805A428C -00001 0020+00 1/0 0/0 0/0 .data l_daTagHjump_Method */ -SECTION_DATA static void* l_daTagHjump_Method[8] = { - (void*)daTagHjump_Create__FP10fopAc_ac_c, - (void*)daTagHjump_Delete__FP12daTagHjump_c, - (void*)daTagHjump_Execute__FP12daTagHjump_c, - (void*)NULL, - (void*)daTagHjump_Draw__FP12daTagHjump_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 805A428C-805A42BC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Hjump */ -SECTION_DATA extern void* g_profile_Tag_Hjump[12] = { - (void*)0xFFFFFFFD, (void*)0x0003FFFD, - (void*)0x00EA0000, (void*)&g_fpcLf_Method, - (void*)0x000005BC, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x01B20000, (void*)&l_daTagHjump_Method, - (void*)0x00044100, (void*)0x030E0000, -}; - -/* 805A42BC-805A42E4 000050 0028+00 2/2 0/0 0/0 .data __vt__12daTagHjump_c */ -SECTION_DATA extern void* __vt__12daTagHjump_c[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)CreateHeap__12daTagHjump_cFv, - (void*)Create__16dBgS_MoveBgActorFv, - (void*)Execute__16dBgS_MoveBgActorFPPA3_A4_f, - (void*)Draw__12daTagHjump_cFv, - (void*)Delete__16dBgS_MoveBgActorFv, - (void*)IsDelete__16dBgS_MoveBgActorFv, - (void*)ToFore__16dBgS_MoveBgActorFv, - (void*)ToBack__16dBgS_MoveBgActorFv, -}; /* 805A3B24-805A3D80 0000E4 025C+00 1/1 0/0 0/0 .text create__12daTagHjump_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagHjump_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/create__12daTagHjump_cFv.s" +int daTagHjump_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagHjump_c(); + fopAcM_OnCondition(this, 8); + } + + mType = (fopAcM_GetParam(this) >> 4) & 0xF; + field_0x5ad = fopAcM_GetParam(this) & 0xF; + mOnFlagID = (fopAcM_GetParam(this) >> 8) & 0xFFF; + mOffFlagID = fopAcM_GetParam(this) >> 0x14; + + if (field_0x5ad == 15) { + field_0x5ad = 0; + } + + int phase; + if (mType != TYPE_TRIGGER_e) { + phase = dComIfG_resLoad(&mPhase, l_arcName); + if (phase == cPhs_COMPLEATE_e) { + phase = MoveBGCreate(l_arcName, 7, NULL, 0xCA0, NULL); + + if (phase == cPhs_COMPLEATE_e) { + fopAcM_SetMtx(this, mpModel->getBaseTRMtx()); + mTevStr.mRoomNo = fopAcM_GetRoomNo(this); + + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z); + mDoMtx_stack_c::YrotM(shape_angle.y); + mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); + + mDoMtx_stack_c::get()[1][3] -= 100.0f; + current.pos.y -= 100.0f; + + field_0x568->SetLock(); + mScale.x = 250.0f; + mScale.y = 350.0f; + mScale.z = 400.0f; + field_0x5b8 = 200.0f; + + fopAcM_SetMin(this, -mScale.x, 0.0f, -50.0f); + fopAcM_SetMax(this, mScale.x, 200.0f, 50.0f); + + field_0x5ae = 0x2000; + fopAcM_setCullSizeFar(this, 5.0f); + field_0x5ad = 4; + } + } + } else { + phase = cPhs_COMPLEATE_e; + mScale.x *= 100.0f; + mScale.z *= 100.0f; + mScale.y *= 100.0f; + + if (field_0x5ad == 0 || field_0x5ad == 1) { + field_0x5b8 = 50.0f; + field_0x5ae = 0x1000; + } else { + field_0x5b8 = 200.0f; + field_0x5ae = 0x2000; + } + } + + field_0x5b4 = current.pos.y + mScale.y; + return phase; } -#pragma pop /* 805A3D80-805A3DA0 000340 0020+00 1/0 0/0 0/0 .text daTagHjump_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagHjump_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Create__FP10fopAc_ac_c.s" +static int daTagHjump_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 805A3DA0-805A3E34 000360 0094+00 1/1 0/0 0/0 .text __dt__12daTagHjump_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagHjump_c::~daTagHjump_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/__dt__12daTagHjump_cFv.s" +daTagHjump_c::~daTagHjump_c() { + if (mType != TYPE_TRIGGER_e) { + dComIfG_resDelete(&mPhase, l_arcName); + } } -#pragma pop /* 805A3E34-805A3E70 0003F4 003C+00 1/0 0/0 0/0 .text daTagHjump_Delete__FP12daTagHjump_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagHjump_Delete(daTagHjump_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Delete__FP12daTagHjump_c.s" +static int daTagHjump_Delete(daTagHjump_c* i_this) { + i_this->MoveBGDelete(); + i_this->~daTagHjump_c(); + return 1; } -#pragma pop - -/* ############################################################################################## */ -/* 805A4264-805A4268 00002C 0004+00 0/1 0/0 0/0 .rodata @3904 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3904 = 4.0f / 5.0f; -COMPILER_STRIP_GATE(0x805A4264, &lit_3904); -#pragma pop - -/* 805A4268-805A426C 000030 0004+00 0/1 0/0 0/0 .rodata @3905 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3905 = 0.5f; -COMPILER_STRIP_GATE(0x805A4268, &lit_3905); -#pragma pop /* 805A3E70-805A4134 000430 02C4+00 1/1 0/0 0/0 .text execute__12daTagHjump_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagHjump_c::execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/execute__12daTagHjump_cFv.s" +int daTagHjump_c::execute() { + daHorse_c* horse_p = i_dComIfGp_getHorseActor(); + + if (horse_p != NULL && + (mType != TYPE_TRIGGER_e || + ((mOnFlagID == 0xFFF || + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[mOnFlagID])) && + (mOffFlagID == 0xFFF || + !i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[mOffFlagID]))))) + { + s16 angle_diff = horse_p->shape_angle.y - shape_angle.y; + int abs_angle = abs(angle_diff); + f32 min_jump_speed; + + if (field_0x5ad == 0 || field_0x5ad == 2) { + min_jump_speed = horse_p->getLashMaxSpeedF() * 0.8f; + } else if (field_0x5ad == 1 || field_0x5ad == 3) { + min_jump_speed = horse_p->getNormalMaxSpeedF() * 0.8f; + } else { + min_jump_speed = horse_p->getNormalMaxSpeedF() + + (horse_p->getLashMaxSpeedF() - horse_p->getNormalMaxSpeedF()) * 0.5f; + } + + if (min_jump_speed < horse_p->speedF && + (abs_angle < field_0x5ae || abs_angle > 0x8000 - field_0x5ae)) + { + cXyz rel_pos; + fpoAcM_relativePos(this, &horse_p->current.pos, &rel_pos); + + f32 temp_f3 = fabsf(rel_pos.z); + if (rel_pos.y >= 0.0f && rel_pos.y <= mScale.y && fabsf(rel_pos.x) <= mScale.x) { + if (temp_f3 >= (mScale.z - field_0x5b8) && temp_f3 <= (mScale.z + field_0x5b8) && + ((rel_pos.z > 0.0f && abs_angle > 0x8000 - field_0x5ae) || + (rel_pos.z < 0.0f && abs_angle < field_0x5ae))) + { + f32 temp_f3_2 = fabsf(rel_pos.z / cM_scos(angle_diff)); + f32 var_f4; + + if (temp_f3_2 < field_0x5b8) { + var_f4 = field_0x5b8; + } else { + var_f4 = temp_f3_2; + } + + rel_pos.x += (temp_f3_2 * cM_ssin(angle_diff)) + (var_f4 * cM_ssin(angle_diff)); + if (fabsf(rel_pos.x) <= mScale.x || + (mType == TYPE_TRIGGER_e && field_0x5ad == 4)) + { + horse_p->onTagJump(temp_f3_2, field_0x5b4, var_f4); + } + } + } + } + } + + return 1; } -#pragma pop /* 805A4134-805A4154 0006F4 0020+00 1/0 0/0 0/0 .text daTagHjump_Execute__FP12daTagHjump_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagHjump_Execute(daTagHjump_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Execute__FP12daTagHjump_c.s" +static int daTagHjump_Execute(daTagHjump_c* i_this) { + return i_this->execute(); } -#pragma pop /* 805A4154-805A4204 000714 00B0+00 1/0 0/0 0/0 .text Draw__12daTagHjump_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagHjump_c::Draw() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/Draw__12daTagHjump_cFv.s" +int daTagHjump_c::Draw() { + if (mType != TYPE_TRIGGER_e) { + g_env_light.settingTevStruct(0x10, ¤t.pos, &mTevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr); + + dComIfGd_setListBG(); + mDoExt_modelUpdateDL(mpModel); + dComIfGd_setList(); + } + + return 1; } -#pragma pop /* 805A4204-805A4230 0007C4 002C+00 1/0 0/0 0/0 .text daTagHjump_Draw__FP12daTagHjump_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagHjump_Draw(daTagHjump_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_hjump/d_a_tag_hjump/daTagHjump_Draw__FP12daTagHjump_c.s" +static int daTagHjump_Draw(daTagHjump_c* i_this) { + return i_this->MoveBGDraw(); } -#pragma pop + +/* 805A426C-805A428C -00001 0020+00 1/0 0/0 0/0 .data l_daTagHjump_Method */ +static actor_method_class l_daTagHjump_Method = { + (process_method_func)daTagHjump_Create, (process_method_func)daTagHjump_Delete, + (process_method_func)daTagHjump_Execute, (process_method_func)NULL, + (process_method_func)daTagHjump_Draw, +}; + +/* 805A428C-805A42BC -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Hjump */ +extern actor_process_profile_definition g_profile_Tag_Hjump = { + -3, + 3, + -3, + PROC_Tag_Hjump, + &g_fpcLf_Method.mBase, + sizeof(daTagHjump_c), + 0, + 0, + &g_fopAc_Method.base, + 434, + &l_daTagHjump_Method, + 0x44100, + 3, + 14, +}; From e6f16ecd840890d69b8c67fefdf5ac32df8bab44 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Wed, 5 Jul 2023 02:35:01 -0700 Subject: [PATCH 27/35] d_a_kytag15 OK --- .../rel/d/a/kytag/d_a_kytag15/d_a_kytag15.h | 12 +- rel/d/a/kytag/d_a_kytag15/d_a_kytag15.cpp | 391 ++++++------------ 2 files changed, 147 insertions(+), 256 deletions(-) diff --git a/include/rel/d/a/kytag/d_a_kytag15/d_a_kytag15.h b/include/rel/d/a/kytag/d_a_kytag15/d_a_kytag15.h index 994031c840..345f2d2000 100644 --- a/include/rel/d/a/kytag/d_a_kytag15/d_a_kytag15.h +++ b/include/rel/d/a/kytag/d_a_kytag15/d_a_kytag15.h @@ -1,6 +1,16 @@ #ifndef D_A_KYTAG15_H #define D_A_KYTAG15_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class kytag15_class : public fopAc_ac_c { +public: + /* 0x568 */ J3DModel* mpModel; + /* 0x56C */ mDoExt_btkAnm mBtk; + /* 0x584 */ request_of_phase_process_class mPhase; + /* 0x58C */ u8 field_0x58c; + /* 0x58D */ u8 field_0x58d[0x590 - 0x58D]; + /* 0x590 */ f32 field_0x590; +}; #endif /* D_A_KYTAG15_H */ diff --git a/rel/d/a/kytag/d_a_kytag15/d_a_kytag15.cpp b/rel/d/a/kytag/d_a_kytag15/d_a_kytag15.cpp index f8db9b1861..7859faff05 100644 --- a/rel/d/a/kytag/d_a_kytag15/d_a_kytag15.cpp +++ b/rel/d/a/kytag/d_a_kytag15/d_a_kytag15.cpp @@ -1,278 +1,159 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_kytag15 -// +/** + * d_a_kytag15.cpp + * + */ #include "rel/d/a/kytag/d_a_kytag15/d_a_kytag15.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct J3DMaterialTable {}; - -struct J3DAnmTextureSRTKey {}; - -struct mDoExt_btkAnm { - /* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16); - /* 8000D6D8 */ void entry(J3DMaterialTable*, f32); -}; - -struct mDoExt_baseAnm { - /* 8000D428 */ void play(); -}; - -struct kytag15_class {}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct J3DModelData {}; - -struct J3DModel {}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); - /* 80860AF0 */ ~J3DFrameCtrl(); -}; - -// -// Forward References: -// - -extern "C" static void daKytag15_Draw__FP13kytag15_class(); -extern "C" static void daKytag15_Execute__FP13kytag15_class(); -extern "C" static bool daKytag15_IsDelete__FP13kytag15_class(); -extern "C" static void daKytag15_Delete__FP13kytag15_class(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" static void daKytag15_Create__FP10fopAc_ac_c(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" extern char const* const d_a_kytag15__stringBase0; - -// -// External References: -// - -extern "C" void play__14mDoExt_baseAnmFv(); -extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss(); -extern "C" void entry__13mDoExt_btkAnmFP16J3DMaterialTablef(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -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 dKy_daynight_check__Fv(); -extern "C" void cLib_addCalc__FPfffff(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); -extern "C" void strcmp(); -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]; -extern "C" extern u8 j3dSys[284]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80860B40-80860B44 000000 0004+00 3/3 0/0 0/0 .rodata @3823 */ -SECTION_RODATA static u8 const lit_3823[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80860B40, &lit_3823); - -/* 80860B44-80860B48 000004 0004+00 0/1 0/0 0/0 .rodata @3824 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_3824 = 0x3BABB44E; -COMPILER_STRIP_GATE(0x80860B44, &lit_3824); -#pragma pop - -/* 80860B48-80860B4C 000008 0004+00 0/1 0/0 0/0 .rodata @3825 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3825 = -255.0f; -COMPILER_STRIP_GATE(0x80860B48, &lit_3825); -#pragma pop - -/* 80860B4C-80860B50 00000C 0004+00 0/1 0/0 0/0 .rodata @3826 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3826 = 255.0f; -COMPILER_STRIP_GATE(0x80860B4C, &lit_3826); -#pragma pop - -/* 80860B50-80860B58 000010 0008+00 0/1 0/0 0/0 .rodata @3828 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3828[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80860B50, &lit_3828); -#pragma pop +#include "JSystem/J3DGraphBase/J3DMaterial.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" /* 80860638-808607F8 000078 01C0+00 1/0 0/0 0/0 .text daKytag15_Draw__FP13kytag15_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag15_Draw(kytag15_class* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Draw__FP13kytag15_class.s" +static int daKytag15_Draw(kytag15_class* i_this) { + cXyz scale; + mDoMtx_stack_c::transS(0.0f, 0.0f, 0.0f); + + scale.x = 0.00524f; + scale.y = 0.00524f; + scale.z = 0.00524f; + + if (i_this->mpModel != NULL && i_this->field_0x590 > 0.0f) { + GXColorS10 color; + J3DMaterial* mat_p = i_this->mpModel->getModelData()->getMaterialNodePointer(0); + color.b = 0; + color.g = 0; + color.r = 0; + color.a = -180; + + if (i_this->field_0x58c == 1) { + color.a = -100; + } + + color.a = (color.a + 255.0f) * i_this->field_0x590 + -255.0f; + + mat_p->setTevColor(0, (J3DGXColorS10*)&color); + i_this->mpModel->setBaseScale(scale); + i_this->mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); + + i_this->mBtk.entry(i_this->mpModel->getModelData()); + i_this->mBtk.play(); + + if (i_this->field_0x58c == 1) { + i_this->mBtk.play(); + } + + dComIfGd_setXluList2DScreen(); + mDoExt_modelUpdateDL(i_this->mpModel); + dComIfGd_setList(); + } + + return 1; } -#pragma pop - -/* ############################################################################################## */ -/* 80860B58-80860B5C 000018 0004+00 2/3 0/0 0/0 .rodata @3845 */ -SECTION_RODATA static f32 const lit_3845 = 1.0f; -COMPILER_STRIP_GATE(0x80860B58, &lit_3845); - -/* 80860B5C-80860B60 00001C 0004+00 0/1 0/0 0/0 .rodata @3846 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3846 = 1.0f / 20.0f; -COMPILER_STRIP_GATE(0x80860B5C, &lit_3846); -#pragma pop - -/* 80860B60-80860B64 000020 0004+00 0/1 0/0 0/0 .rodata @3847 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3847 = 1.0f / 100.0f; -COMPILER_STRIP_GATE(0x80860B60, &lit_3847); -#pragma pop - -/* 80860B64-80860B68 000024 0004+00 0/1 0/0 0/0 .rodata @3848 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_3848 = 0x322BCC77; -COMPILER_STRIP_GATE(0x80860B64, &lit_3848); -#pragma pop /* 808607F8-808608B0 000238 00B8+00 1/0 0/0 0/0 .text daKytag15_Execute__FP13kytag15_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag15_Execute(kytag15_class* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Execute__FP13kytag15_class.s" +static int daKytag15_Execute(kytag15_class* i_this) { + if (!i_this->field_0x58c) { + if (!dKy_daynight_check()) { + cLib_addCalc(&i_this->field_0x590, 1.0f, 0.05f, 0.01f, 1.0E-8f); + } else { + cLib_addCalc(&i_this->field_0x590, 0.0f, 0.05f, 0.01f, 1.0E-8f); + } + } else if (g_env_light.mColPatPrev == 11) { + cLib_addCalc(&i_this->field_0x590, 1.0f, 0.05f, 0.01f, 1.0E-8f); + } + + return 1; } -#pragma pop /* 808608B0-808608B8 0002F0 0008+00 1/0 0/0 0/0 .text daKytag15_IsDelete__FP13kytag15_class */ -static bool daKytag15_IsDelete(kytag15_class* param_0) { - return true; +static int daKytag15_IsDelete(kytag15_class* i_this) { + return 1; } -/* ############################################################################################## */ -/* 80860B68-80860B68 000028 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80860B68 = "Kytag15"; -#pragma pop - /* 808608B8-808608E8 0002F8 0030+00 1/0 0/0 0/0 .text daKytag15_Delete__FP13kytag15_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag15_Delete(kytag15_class* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Delete__FP13kytag15_class.s" +static int daKytag15_Delete(kytag15_class* i_this) { + dComIfG_resDelete(&i_this->mPhase, "Kytag15"); + return 1; +} + +/* 808608E8-808609B4 000328 00CC+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */ +static int useHeapInit(fopAc_ac_c* i_this) { + kytag15_class* this_ = (kytag15_class*)i_this; + + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Kytag15", 4); + this_->mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284); + if (this_->mpModel == NULL) { + return 0; + } + + J3DAnmTextureSRTKey* btk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Kytag15", 7); + if (!this_->mBtk.init(modelData, btk, TRUE, 2, 1.0f, 0, -1)) { + return 0; + } + + return 1; +} + +/* 808609B4-80860AF0 0003F4 013C+00 1/0 0/0 0/0 .text daKytag15_Create__FP10fopAc_ac_c */ +static int daKytag15_Create(fopAc_ac_c* i_this) { + kytag15_class* this_ = (kytag15_class*)i_this; + + if (strcmp(dComIfGp_getStartStageName(), "F_SP118") == 0) { + this_->field_0x58c = 1; + } else { + this_->field_0x58c = 0; + } + + if (!fopAcM_CheckCondition(this_, 8)) { + new (this_) kytag15_class(); + fopAcM_OnCondition(this_, 8); + } + + if (this_->field_0x58c == 0) { + if (!dKy_daynight_check()) { + this_->field_0x590 = 1.0f; + } else { + this_->field_0x590 = 0.0f; + } + } else { + this_->field_0x590 = 0.0f; + } + + int phase = dComIfG_resLoad(&this_->mPhase, "Kytag15"); + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this_, useHeapInit, 0)) { + return cPhs_ERROR_e; + } + } + + return phase; } -#pragma pop /* ############################################################################################## */ /* 80860B78-80860B98 -00001 0020+00 1/0 0/0 0/0 .data l_daKytag15_Method */ -SECTION_DATA static void* l_daKytag15_Method[8] = { - (void*)daKytag15_Create__FP10fopAc_ac_c, - (void*)daKytag15_Delete__FP13kytag15_class, - (void*)daKytag15_Execute__FP13kytag15_class, - (void*)daKytag15_IsDelete__FP13kytag15_class, - (void*)daKytag15_Draw__FP13kytag15_class, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daKytag15_Method = { + (process_method_func)daKytag15_Create, (process_method_func)daKytag15_Delete, + (process_method_func)daKytag15_Execute, (process_method_func)daKytag15_IsDelete, + (process_method_func)daKytag15_Draw, }; /* 80860B98-80860BC8 -00001 0030+00 0/1 0/0 1/0 .data g_profile_KYTAG15 */ -SECTION_DATA extern void* g_profile_KYTAG15[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02B90000, (void*)&g_fpcLf_Method, - (void*)0x00000594, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x006D0000, (void*)&l_daKytag15_Method, - (void*)0x00044000, (void*)NULL, +extern actor_process_profile_definition g_profile_KYTAG15 = { + -3, + 7, + -3, + PROC_KYTAG15, + &g_fpcLf_Method.mBase, + sizeof(kytag15_class), + 0, + 0, + &g_fopAc_Method.base, + 109, + &l_daKytag15_Method, + 0x44000, + 0, + 0, }; - -/* 808608E8-808609B4 000328 00CC+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/kytag/d_a_kytag15/d_a_kytag15/useHeapInit__FP10fopAc_ac_c.s" -} -#pragma pop - -/* ############################################################################################## */ -/* 80860B68-80860B68 000028 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80860B70 = "F_SP118"; -#pragma pop - -/* 80860BC8-80860BD4 000050 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; - -/* 808609B4-80860AF0 0003F4 013C+00 1/0 0/0 0/0 .text daKytag15_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag15_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Create__FP10fopAc_ac_c.s" -} -#pragma pop - -/* 80860AF0-80860B38 000530 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DFrameCtrl::~J3DFrameCtrl() { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/__dt__12J3DFrameCtrlFv.s" -} -#pragma pop - -/* 80860B68-80860B68 000028 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ From 068ccf5ccc5b14172019b31da7e3d42ca7774410 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Wed, 5 Jul 2023 22:41:49 -0700 Subject: [PATCH 28/35] d_a_tag_mwait OK --- include/d/a/d_a_alink.h | 42 +- include/d/msg/d_msg_flow.h | 4 +- include/f_op/f_op_actor_mng.h | 2 +- .../rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h | 20 +- rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp | 401 +++++++----------- src/d/msg/d_msg_flow.cpp | 20 +- 6 files changed, 225 insertions(+), 264 deletions(-) diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index 95ba5e5a4b..4ad63a3076 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -6252,14 +6252,17 @@ public: enum daMidna_ERFLG0 { ERFLG0_NO_SERVICE_WAIT = 0x80, ERFLG0_FORCE_PANIC = 8, + ERFLG0_UNK_2 = 2, }; enum daMidna_FLG0 { + FLG0_UNK_80000000 = 0x80000000, FLG0_UNK_8000000 = 0x8000000, FLG0_NPC_NEAR = 0x100000, FLG0_NPC_FAR = 0x40000, FLG0_NO_INPUT = 0x4000, FLG0_NO_DRAW = 0x2000, + FLG0_UNK_400 = 0x400, FLG0_UNK_800 = 0x800, FLG0_UNK_200 = 0x200, }; @@ -6276,10 +6279,8 @@ public: u32 checkForceNormalColor() const; u32 checkForceTiredColor() const; bool checkMidnaTired(); - bool i_checkMidnaTired() { - return dComIfGs_isTransformLV(3) && !i_dComIfGs_isEventBit(0x1e08); - } void onNoServiceWait(); + /* 804BC3E0 */ void modelCallBack(int); /* 804BC5C4 */ void changeUpperBck(); /* 804BC614 */ void changeFaceBck(); @@ -6326,6 +6327,8 @@ public: /* 804C61A4 */ ~daMidna_c(); void onEndResetStateFlg0(daMidna_ERFLG0 pFlg) { mEndResetStateFlg0 |= pFlg; } + void onStateFlg0(daMidna_FLG0 i_flag) { mStateFlg0 |= i_flag; } + void offStateFlg0(daMidna_FLG0 i_flag) { mStateFlg0 &= ~i_flag; } u32 checkStateFlg0(daMidna_FLG0 flag) const { return mStateFlg0 & flag; } u32 checkStateFlg1(daMidna_FLG1 flag) const { return mStateFlg1 & flag; } void setFaceNum(int num) { mFaceNum = num; } @@ -6341,6 +6344,29 @@ public: int checkMetamorphoseEnable() { return (this->*mpFunc)(); } int checkShadowModelDrawDemoForce() const { return checkStateFlg1(FLG1_SHADOW_MODEL_DRAW_DEMO_FORCE); } + void onTagWaitPosWarp(const cXyz* param_0) { + field_0x9ac = *param_0; + onStateFlg0(FLG0_UNK_400); + onEndResetStateFlg0(ERFLG0_UNK_2); + } + + void onTagWaitPos(const cXyz* param_0) { + field_0x9ac = *param_0; + onStateFlg0(FLG0_UNK_400); + } + + void offTagWaitPos() { + offStateFlg0((daMidna_FLG0)(FLG0_UNK_80000000 | FLG0_UNK_8000000 | FLG0_UNK_400)); + } + + void onTagNoHairLead() { + onStateFlg0(FLG0_UNK_80000000); + } + + bool checkReturnAnime() const { + return field_0x5e4[0].getIdx() == 0x1CA; + } + bool checkShadowModelDrawSmode() const { if (field_0x84e != 3 && field_0x84e != 4) { if (field_0x84e == 2) { @@ -6363,7 +6389,7 @@ public: } int checkShadowReturnEnd() const { - if (field_0x5e4[0].getIdx() == 0x21c && !field_0x578->isStop()) { + if (field_0x5e4[0].getIdx() == 0x21C && !field_0x578->isStop()) { return 1; } @@ -6383,6 +6409,10 @@ public: inline static BOOL checkMidnaRealBody(); + bool i_checkMidnaTired() { + return dComIfGs_isTransformLV(3) && !i_dComIfGs_isEventBit(0x1E08); + } + static u8 const m_texDataTable[84]; static u8 const m_anmDataTable[636]; @@ -6477,7 +6507,9 @@ private: /* 0x091C */ cXyz field_0x91c[5]; /* 0x0958 */ u8 field_0x958[0xC]; // cXyz here, fix later /* 0x0964 */ cXyz field_0x964[5]; - /* 0x09A0 */ u8 field_0x9a0[0x14]; + /* 0x09A0 */ u8 field_0x9a0[0xC]; + /* 0x09AC */ cXyz field_0x9ac; + /* 0x09B8 */ u8 field_0x9b8[0x9C4 - 0x9B8]; /* 0x09C4 */ cXyz field_0x9c4; /* 0x09D0 */ u8 field_0x9d0[4]; /* 0x09D4 */ daMidna_func mpFunc; diff --git a/include/d/msg/d_msg_flow.h b/include/d/msg/d_msg_flow.h index 1374caae9d..3948f3a427 100644 --- a/include/d/msg/d_msg_flow.h +++ b/include/d/msg/d_msg_flow.h @@ -37,9 +37,9 @@ public: /* 80249F00 */ dMsgFlow_c(); /* 80249F48 */ virtual ~dMsgFlow_c(); - /* 80249F90 */ void init(fopAc_ac_c*, int, int, fopAc_ac_c**); + /* 80249F90 */ void init(fopAc_ac_c* i_partner, int i_flowID, int, fopAc_ac_c**); /* 8024A13C */ int checkOpenDoor(fopAc_ac_c*, int*); - /* 8024A2D8 */ int doFlow(fopAc_ac_c*, fopAc_ac_c**, int); + /* 8024A2D8 */ int doFlow(fopAc_ac_c*, fopAc_ac_c**, int i_flow); /* 8024A424 */ int checkEventRender(int*, int*, int*, int*); /* 8024A4C4 */ void remove(); /* 8024A528 */ u16 getEventId(int*); diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 6106bb1ae9..97a4eaf976 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -464,7 +464,7 @@ s32 fopAcM_cullingCheck(const fopAc_ac_c*); void* event_second_actor(u16); s32 fopAcM_orderTalkEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16); s32 fopAcM_orderTalkItemBtnEvent(u16, fopAc_ac_c*, fopAc_ac_c*, u16, u16); -s32 fopAcM_orderSpeakEvent(fopAc_ac_c*, u16, u16); +s32 fopAcM_orderSpeakEvent(fopAc_ac_c* i_actor, u16 i_priority, u16 i_flag); s32 fopAcM_orderDoorEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16); s32 fopAcM_orderCatchEvent(fopAc_ac_c*, fopAc_ac_c*, u16, u16); s32 fopAcM_orderOtherEvent(fopAc_ac_c*, const char*, u16, u16, u16); diff --git a/include/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h b/include/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h index 88af3a45bd..89da592253 100644 --- a/include/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h +++ b/include/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h @@ -1,6 +1,24 @@ #ifndef D_A_TAG_MWAIT_H #define D_A_TAG_MWAIT_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" +#include "d/msg/d_msg_flow.h" + +class daTagMwait_c : public fopAc_ac_c { +public: + /* 80D5BE18 */ int create(); + /* 80D5C01C */ ~daTagMwait_c(); + /* 80D5C0A8 */ int execute(); + + /* 0x568 */ u8 mOnSw; + /* 0x569 */ u8 mEnterSw; + /* 0x56A */ bool mInitMsgFlow; + /* 0x56B */ u8 mWarpToPos; + /* 0x56C */ bool mEnteredTrigger; + /* 0x56D */ u8 field_0x56d; + /* 0x570 */ f32 field_0x570; + /* 0x574 */ cXyz mWaitPosition; + /* 0x580 */ dMsgFlow_c mMsgFlow; +}; #endif /* D_A_TAG_MWAIT_H */ diff --git a/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp b/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp index 777f8b70f9..f146eeba82 100644 --- a/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp +++ b/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp @@ -1,277 +1,188 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_tag_mwait -// +/** + * d_a_tag_mwait.cpp + * Midna Wait Trigger + */ #include "rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daTagMwait_c { - /* 80D5BE18 */ void create(); - /* 80D5C01C */ ~daTagMwait_c(); - /* 80D5C0A8 */ void execute(); -}; - -struct daPy_py_c { - static u8 m_midnaActor[4]; -}; - -struct dSv_info_c { - /* 80035200 */ void onSwitch(int, int); - /* 80035360 */ void isSwitch(int, int) const; -}; - -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(); -}; - -// -// Forward References: -// - -extern "C" void create__12daTagMwait_cFv(); -extern "C" static void daTagMwait_Create__FP10fopAc_ac_c(); -extern "C" void __dt__12daTagMwait_cFv(); -extern "C" static void daTagMwait_Delete__FP12daTagMwait_c(); -extern "C" void execute__12daTagMwait_cFv(); -extern "C" static void daTagMwait_Execute__FP12daTagMwait_c(); -extern "C" static bool daTagMwait_Draw__FP12daTagMwait_c(); -extern "C" extern void* g_profile_Tag_Mwait[12]; - -// -// External References: -// - -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_orderSpeakEvent__FP10fopAc_ac_cUsUs(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c(); -extern "C" void doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci(); -extern "C" void __dl__FPv(); -extern "C" void PSVECScale(); -extern "C" void PSVECSquareDistance(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_28(); -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" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u32 __float_nan; -extern "C" u8 m_midnaActor__9daPy_py_c[4]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80D5C580-80D5C584 000000 0004+00 2/2 0/0 0/0 .rodata @3841 */ -SECTION_RODATA static f32 const lit_3841 = -1.0f; -COMPILER_STRIP_GATE(0x80D5C580, &lit_3841); - -/* 80D5C584-80D5C588 000004 0004+00 0/1 0/0 0/0 .rodata @3842 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3842 = 100.0f; -COMPILER_STRIP_GATE(0x80D5C584, &lit_3842); -#pragma pop - -/* 80D5C588-80D5C58C 000008 0004+00 0/1 0/0 0/0 .rodata @3843 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3843 = 10.0f; -COMPILER_STRIP_GATE(0x80D5C588, &lit_3843); -#pragma pop - -/* 80D5C58C-80D5C590 00000C 0004+00 0/1 0/0 0/0 .rodata @3844 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3844 = 220.0f; -COMPILER_STRIP_GATE(0x80D5C58C, &lit_3844); -#pragma pop - -/* 80D5C590-80D5C598 000010 0004+04 0/1 0/0 0/0 .rodata @3845 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3845[1 + 1 /* padding */] = { - 150.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80D5C590, &lit_3845); -#pragma pop - -/* 80D5C598-80D5C5A0 000018 0008+00 0/1 0/0 0/0 .rodata @3847 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3847[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D5C598, &lit_3847); -#pragma pop +#include "JSystem/JKernel/JKRHeap.h" +#include "d/a/d_a_alink.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" /* 80D5BE18-80D5BFFC 000078 01E4+00 1/1 0/0 0/0 .text create__12daTagMwait_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagMwait_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/create__12daTagMwait_cFv.s" +int daTagMwait_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagMwait_c(); + fopAcM_OnCondition(this, 8); + } + + mEnterSw = fopAcM_GetParam(this) >> 8; + + if (i_fopAcM_isSwitch(this, mEnterSw)) { + return cPhs_ERROR_e; + } + + mOnSw = fopAcM_GetParam(this); + + u32 prm = (fopAcM_GetParam(this) >> 0x10) & 0xFF; + if (prm == 0 || prm == 0xFF) { + field_0x570 = -1.0f; + } else { + field_0x570 = prm * prm * 100.0f; + } + + mWarpToPos = shape_angle.x & 0xF; + if (mWarpToPos >= 2) { + mWarpToPos = 0; + } + + field_0x56d = (shape_angle.x >> 4) & 0xF; + if (field_0x56d >= 2) { + field_0x56d = 0; + } + + mScale *= 100.0f; + + u32 wait_y_offset = (fopAcM_GetParam(this) >> 0x18) & 0xFF; + if (wait_y_offset == 0 || wait_y_offset == 0xFF) { + wait_y_offset = 0; + } + + mWaitPosition.set(current.pos.x, current.pos.y + (wait_y_offset * 10.0f), current.pos.z); + mAttentionInfo.mPosition.set(mWaitPosition.x, mWaitPosition.y + 220.0f, mWaitPosition.z); + mEyePos.set(mWaitPosition.x, mWaitPosition.y + 150.0f, mWaitPosition.z); + + mAttentionInfo.field_0x0[1] = 54; + mAttentionInfo.mFlags = 0; + return cPhs_COMPLEATE_e; } -#pragma pop /* 80D5BFFC-80D5C01C 00025C 0020+00 1/0 0/0 0/0 .text daTagMwait_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagMwait_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Create__FP10fopAc_ac_c.s" +static int daTagMwait_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 80D5C01C-80D5C080 00027C 0064+00 1/1 0/0 0/0 .text __dt__12daTagMwait_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagMwait_c::~daTagMwait_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/__dt__12daTagMwait_cFv.s" -} -#pragma pop +daTagMwait_c::~daTagMwait_c() {} /* 80D5C080-80D5C0A8 0002E0 0028+00 1/0 0/0 0/0 .text daTagMwait_Delete__FP12daTagMwait_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagMwait_Delete(daTagMwait_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Delete__FP12daTagMwait_c.s" +static int daTagMwait_Delete(daTagMwait_c* i_this) { + i_this->~daTagMwait_c(); + return 1; } -#pragma pop - -/* ############################################################################################## */ -/* 80D5C5A0-80D5C5A8 000020 0004+04 0/1 0/0 0/0 .rodata @4006 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4006[4 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80D5C5A0, &lit_4006); -#pragma pop - -/* 80D5C5A8-80D5C5B0 000028 0008+00 0/1 0/0 0/0 .rodata @4007 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4007[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D5C5A8, &lit_4007); -#pragma pop - -/* 80D5C5B0-80D5C5B8 000030 0008+00 0/1 0/0 0/0 .rodata @4008 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4008[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D5C5B0, &lit_4008); -#pragma pop - -/* 80D5C5B8-80D5C5C0 000038 0008+00 0/1 0/0 0/0 .rodata @4009 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4009[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80D5C5B8, &lit_4009); -#pragma pop - -/* 80D5C5C0-80D5C5C4 000040 0004+00 0/1 0/0 0/0 .rodata @4010 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4010 = 5.0f; -COMPILER_STRIP_GATE(0x80D5C5C0, &lit_4010); -#pragma pop /* 80D5C0A8-80D5C550 000308 04A8+00 1/1 0/0 0/0 .text execute__12daTagMwait_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagMwait_c::execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/execute__12daTagMwait_cFv.s" +int daTagMwait_c::execute() { + daMidna_c* midna_p = daPy_py_c::getMidnaActor(); + daPy_py_c* player_p = daPy_getLinkPlayerActorClass(); + + if (midna_p == NULL) { + return 1; + } + + mAttentionInfo.mFlags = 0; + + if (mEvtInfo.checkCommandTalk()) { + if (!mEnteredTrigger || !midna_p->checkReturnAnime()) { + if (!mInitMsgFlow) { + mMsgFlow.init(this, (u16)shape_angle.z, 0, NULL); + mInitMsgFlow = true; + } else if (mMsgFlow.doFlow(this, NULL, 0)) { + i_dComIfGp_event_reset(); + + if (mEnteredTrigger) { + fopAcM_delete(this); + return 1; + } + } + } + } else if (mEnteredTrigger) { + fopAcM_orderSpeakEvent(this, 0, 0); + mEvtInfo.i_onCondition(1); + mAttentionInfo.mPosition = midna_p->mAttentionInfo.mPosition; + mEyePos = mAttentionInfo.mPosition; + } else { + mInitMsgFlow = false; + + if (daPy_py_c::i_checkNowWolf() && midna_p != NULL && i_fopAcM_isSwitch(this, mOnSw)) { + if (mWarpToPos) { + midna_p->onTagWaitPosWarp(&mWaitPosition); + } else { + midna_p->onTagWaitPos(&mWaitPosition); + } + + if (midna_p->current.pos.abs(mWaitPosition) < 5.0f) { + if (field_0x56d == 1) { + midna_p->onTagNoHairLead(); + } + + f32 player_dist = player_p->current.pos.abs2XZ(current.pos); + if ((player_dist <= mScale.x * mScale.x && + player_p->current.pos.y >= current.pos.y && + player_p->current.pos.y <= current.pos.y + mScale.y) || + i_fopAcM_isSwitch(this, mEnterSw)) + { + midna_p->offTagWaitPos(); + i_fopAcM_onSwitch(this, mEnterSw); + mEnteredTrigger = true; + + if (shape_angle.z == 0) { + fopAcM_delete(this); + } else { + mAttentionInfo.mPosition = midna_p->mAttentionInfo.mPosition; + mEyePos = mAttentionInfo.mPosition; + fopAcM_orderSpeakEvent(this, 0, 0); + mEvtInfo.i_onCondition(1); + } + } else if (field_0x570 > 0.0f && player_dist < field_0x570 && + player_p->current.pos.y >= current.pos.y && + player_p->current.pos.y <= current.pos.y + mScale.y) + { + mAttentionInfo.mFlags = 2; + mEvtInfo.i_onCondition(1); + } + } + } + } + + return 1; } -#pragma pop /* 80D5C550-80D5C570 0007B0 0020+00 1/0 0/0 0/0 .text daTagMwait_Execute__FP12daTagMwait_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagMwait_Execute(daTagMwait_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Execute__FP12daTagMwait_c.s" +static int daTagMwait_Execute(daTagMwait_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80D5C570-80D5C578 0007D0 0008+00 1/0 0/0 0/0 .text daTagMwait_Draw__FP12daTagMwait_c */ -static bool daTagMwait_Draw(daTagMwait_c* param_0) { - return true; +static int daTagMwait_Draw(daTagMwait_c* i_this) { + return 1; } /* ############################################################################################## */ /* 80D5C5C4-80D5C5E4 -00001 0020+00 1/0 0/0 0/0 .data l_daTagMwait_Method */ -SECTION_DATA static void* l_daTagMwait_Method[8] = { - (void*)daTagMwait_Create__FP10fopAc_ac_c, - (void*)daTagMwait_Delete__FP12daTagMwait_c, - (void*)daTagMwait_Execute__FP12daTagMwait_c, - (void*)NULL, - (void*)daTagMwait_Draw__FP12daTagMwait_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daTagMwait_Method = { + (process_method_func)daTagMwait_Create, (process_method_func)daTagMwait_Delete, + (process_method_func)daTagMwait_Execute, (process_method_func)NULL, + (process_method_func)daTagMwait_Draw, }; /* 80D5C5E4-80D5C614 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Mwait */ -SECTION_DATA extern void* g_profile_Tag_Mwait[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02C30000, (void*)&g_fpcLf_Method, - (void*)0x000005CC, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x01000000, (void*)&l_daTagMwait_Method, - (void*)0x00044000, (void*)0x030E0000, +extern actor_process_profile_definition g_profile_Tag_Mwait = { + -3, + 7, + -3, + PROC_Tag_Mwait, + &g_fpcLf_Method.mBase, + sizeof(daTagMwait_c), + 0, + 0, + &g_fopAc_Method.base, + 256, + &l_daTagMwait_Method, + 0x44000, + 3, + 14, }; diff --git a/src/d/msg/d_msg_flow.cpp b/src/d/msg/d_msg_flow.cpp index a3d75a80d5..6dd30aab18 100644 --- a/src/d/msg/d_msg_flow.cpp +++ b/src/d/msg/d_msg_flow.cpp @@ -448,7 +448,7 @@ SECTION_DEAD static char const* const stringBase_80399CB5 = "FLI1"; /* 80249F90-8024A13C 2448D0 01AC+00 0/0 10/10 86/86 .text * init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c */ -void dMsgFlow_c::init(fopAc_ac_c* param_0, int param_1, int param_2, fopAc_ac_c** param_3) { +void dMsgFlow_c::init(fopAc_ac_c* i_partner, int i_flowID, int param_2, fopAc_ac_c** param_3) { u16 uVar4; u16 flow_val; @@ -459,11 +459,11 @@ void dMsgFlow_c::init(fopAc_ac_c* param_0, int param_1, int param_2, fopAc_ac_c* } if (param_2 == 0 && g_MsgObject_HIO_c.mMsgDebug == 2) { - param_1 = g_MsgObject_HIO_c.mFlowIndex; + i_flowID = g_MsgObject_HIO_c.mFlowIndex; } - flow_val = param_1; + flow_val = i_flowID; - dMsgObject_changeFlowGroup(param_1); + dMsgObject_changeFlowGroup(i_flowID); if (param_2 == 0) { setInitValue(1); mFlow_p = getMsgDataBlock("FLW1"); @@ -473,15 +473,15 @@ void dMsgFlow_c::init(fopAc_ac_c* param_0, int param_1, int param_2, fopAc_ac_c* field_0x18 = field_0x14 + *(u16*)(mFlow_p + 8); mFlow = flow_val; - if (param_0 != NULL) { - dMsgObject_setTalkPartner(param_0); + if (i_partner != NULL) { + dMsgObject_setTalkPartner(i_partner); } setNodeIndex(getInitNodeIndex(mFlow), param_3); } else { uVar4 = field_0x10; setInitValue(0); - if (param_0 != NULL) { - dMsgObject_setTalkPartner(param_0); + if (i_partner != NULL) { + dMsgObject_setTalkPartner(i_partner); } setNodeIndex(uVar4, param_3); } @@ -568,9 +568,9 @@ asm int dMsgFlow_c::checkOpenDoor(fopAc_ac_c* param_0, int* param_1) { /* 8024A2D8-8024A424 244C18 014C+00 0/0 21/21 78/78 .text * doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci */ -int dMsgFlow_c::doFlow(fopAc_ac_c* param_0, fopAc_ac_c** param_1, int flow) { +int dMsgFlow_c::doFlow(fopAc_ac_c* param_0, fopAc_ac_c** param_1, int i_flow) { int check = false; - u16 set_flow = flow; + u16 set_flow = i_flow; dMsgObject_changeFlowGroup(mFlow); if (dMsgObject_isKillMessageFlag()) { From 6ba6bcf69c5c502f41c6ec9746025d7589096ea8 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Wed, 5 Jul 2023 22:42:10 -0700 Subject: [PATCH 29/35] remove asm --- .../d_a_kytag15/__dt__12J3DFrameCtrlFv.s | 20 -- .../daKytag15_Create__FP10fopAc_ac_c.s | 89 ----- .../daKytag15_Delete__FP13kytag15_class.s | 13 - .../daKytag15_Draw__FP13kytag15_class.s | 116 ------- .../daKytag15_Execute__FP13kytag15_class.s | 50 --- .../d_a_kytag15/useHeapInit__FP10fopAc_ac_c.s | 54 --- .../d_a_tag_mwait/__dt__12daTagMwait_cFv.s | 27 -- .../d_a_tag_mwait/create__12daTagMwait_cFv.s | 133 -------- .../daTagMwait_Create__FP10fopAc_ac_c.s | 9 - .../daTagMwait_Delete__FP12daTagMwait_c.s | 11 - .../daTagMwait_Execute__FP12daTagMwait_c.s | 9 - .../d_a_tag_mwait/execute__12daTagMwait_cFv.s | 322 ------------------ 12 files changed, 853 deletions(-) delete mode 100644 asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/__dt__12J3DFrameCtrlFv.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Delete__FP13kytag15_class.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Draw__FP13kytag15_class.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Execute__FP13kytag15_class.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/useHeapInit__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/__dt__12daTagMwait_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/create__12daTagMwait_cFv.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Delete__FP12daTagMwait_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Execute__FP12daTagMwait_c.s delete mode 100644 asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/execute__12daTagMwait_cFv.s diff --git a/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/__dt__12J3DFrameCtrlFv.s b/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/__dt__12J3DFrameCtrlFv.s deleted file mode 100644 index 54dc8a2509..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/__dt__12J3DFrameCtrlFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80860AF0: -/* 80860AF0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80860AF4 7C 08 02 A6 */ mflr r0 -/* 80860AF8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80860AFC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80860B00 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80860B04 41 82 00 1C */ beq lbl_80860B20 -/* 80860B08 3C A0 80 86 */ lis r5, __vt__12J3DFrameCtrl@ha /* 0x80860BC8@ha */ -/* 80860B0C 38 05 0B C8 */ addi r0, r5, __vt__12J3DFrameCtrl@l /* 0x80860BC8@l */ -/* 80860B10 90 1F 00 00 */ stw r0, 0(r31) -/* 80860B14 7C 80 07 35 */ extsh. r0, r4 -/* 80860B18 40 81 00 08 */ ble lbl_80860B20 -/* 80860B1C 4B A6 E2 21 */ bl __dl__FPv -lbl_80860B20: -/* 80860B20 7F E3 FB 78 */ mr r3, r31 -/* 80860B24 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80860B28 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80860B2C 7C 08 03 A6 */ mtlr r0 -/* 80860B30 38 21 00 10 */ addi r1, r1, 0x10 -/* 80860B34 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 9be569ed7d..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,89 +0,0 @@ -lbl_808609B4: -/* 808609B4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 808609B8 7C 08 02 A6 */ mflr r0 -/* 808609BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 808609C0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 808609C4 93 C1 00 08 */ stw r30, 8(r1) -/* 808609C8 7C 7F 1B 78 */ mr r31, r3 -/* 808609CC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 808609D0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 808609D4 38 63 4E 00 */ addi r3, r3, 0x4e00 -/* 808609D8 3C 80 80 86 */ lis r4, d_a_kytag15__stringBase0@ha /* 0x80860B68@ha */ -/* 808609DC 38 84 0B 68 */ addi r4, r4, d_a_kytag15__stringBase0@l /* 0x80860B68@l */ -/* 808609E0 38 84 00 08 */ addi r4, r4, 8 -/* 808609E4 4B B0 7F B1 */ bl strcmp -/* 808609E8 2C 03 00 00 */ cmpwi r3, 0 -/* 808609EC 40 82 00 10 */ bne lbl_808609FC -/* 808609F0 38 00 00 01 */ li r0, 1 -/* 808609F4 98 1F 05 8C */ stb r0, 0x58c(r31) -/* 808609F8 48 00 00 0C */ b lbl_80860A04 -lbl_808609FC: -/* 808609FC 38 00 00 00 */ li r0, 0 -/* 80860A00 98 1F 05 8C */ stb r0, 0x58c(r31) -lbl_80860A04: -/* 80860A04 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80860A08 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80860A0C 40 82 00 44 */ bne lbl_80860A50 -/* 80860A10 28 1F 00 00 */ cmplwi r31, 0 -/* 80860A14 41 82 00 30 */ beq lbl_80860A44 -/* 80860A18 7F E3 FB 78 */ mr r3, r31 -/* 80860A1C 4B 7B 81 49 */ bl __ct__10fopAc_ac_cFv -/* 80860A20 3B DF 05 6C */ addi r30, r31, 0x56c -/* 80860A24 3C 60 80 86 */ lis r3, __vt__12J3DFrameCtrl@ha /* 0x80860BC8@ha */ -/* 80860A28 38 03 0B C8 */ addi r0, r3, __vt__12J3DFrameCtrl@l /* 0x80860BC8@l */ -/* 80860A2C 90 1F 05 6C */ stw r0, 0x56c(r31) -/* 80860A30 7F C3 F3 78 */ mr r3, r30 -/* 80860A34 38 80 00 00 */ li r4, 0 -/* 80860A38 4B AC 79 C5 */ bl init__12J3DFrameCtrlFs -/* 80860A3C 38 00 00 00 */ li r0, 0 -/* 80860A40 90 1E 00 14 */ stw r0, 0x14(r30) -lbl_80860A44: -/* 80860A44 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80860A48 60 00 00 08 */ ori r0, r0, 8 -/* 80860A4C 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80860A50: -/* 80860A50 88 1F 05 8C */ lbz r0, 0x58c(r31) -/* 80860A54 28 00 00 00 */ cmplwi r0, 0 -/* 80860A58 40 82 00 30 */ bne lbl_80860A88 -/* 80860A5C 4B 93 F0 5D */ bl dKy_daynight_check__Fv -/* 80860A60 2C 03 00 00 */ cmpwi r3, 0 -/* 80860A64 40 82 00 14 */ bne lbl_80860A78 -/* 80860A68 3C 60 80 86 */ lis r3, lit_3845@ha /* 0x80860B58@ha */ -/* 80860A6C C0 03 0B 58 */ lfs f0, lit_3845@l(r3) /* 0x80860B58@l */ -/* 80860A70 D0 1F 05 90 */ stfs f0, 0x590(r31) -/* 80860A74 48 00 00 20 */ b lbl_80860A94 -lbl_80860A78: -/* 80860A78 3C 60 80 86 */ lis r3, lit_3823@ha /* 0x80860B40@ha */ -/* 80860A7C C0 03 0B 40 */ lfs f0, lit_3823@l(r3) /* 0x80860B40@l */ -/* 80860A80 D0 1F 05 90 */ stfs f0, 0x590(r31) -/* 80860A84 48 00 00 10 */ b lbl_80860A94 -lbl_80860A88: -/* 80860A88 3C 60 80 86 */ lis r3, lit_3823@ha /* 0x80860B40@ha */ -/* 80860A8C C0 03 0B 40 */ lfs f0, lit_3823@l(r3) /* 0x80860B40@l */ -/* 80860A90 D0 1F 05 90 */ stfs f0, 0x590(r31) -lbl_80860A94: -/* 80860A94 38 7F 05 84 */ addi r3, r31, 0x584 -/* 80860A98 3C 80 80 86 */ lis r4, d_a_kytag15__stringBase0@ha /* 0x80860B68@ha */ -/* 80860A9C 38 84 0B 68 */ addi r4, r4, d_a_kytag15__stringBase0@l /* 0x80860B68@l */ -/* 80860AA0 4B 7C C4 1D */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 80860AA4 7C 7E 1B 78 */ mr r30, r3 -/* 80860AA8 2C 1E 00 04 */ cmpwi r30, 4 -/* 80860AAC 40 82 00 28 */ bne lbl_80860AD4 -/* 80860AB0 7F E3 FB 78 */ mr r3, r31 -/* 80860AB4 3C 80 80 86 */ lis r4, useHeapInit__FP10fopAc_ac_c@ha /* 0x808608E8@ha */ -/* 80860AB8 38 84 08 E8 */ addi r4, r4, useHeapInit__FP10fopAc_ac_c@l /* 0x808608E8@l */ -/* 80860ABC 38 A0 00 00 */ li r5, 0 -/* 80860AC0 4B 7B 99 F1 */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl -/* 80860AC4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80860AC8 40 82 00 0C */ bne lbl_80860AD4 -/* 80860ACC 38 60 00 05 */ li r3, 5 -/* 80860AD0 48 00 00 08 */ b lbl_80860AD8 -lbl_80860AD4: -/* 80860AD4 7F C3 F3 78 */ mr r3, r30 -lbl_80860AD8: -/* 80860AD8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80860ADC 83 C1 00 08 */ lwz r30, 8(r1) -/* 80860AE0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80860AE4 7C 08 03 A6 */ mtlr r0 -/* 80860AE8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80860AEC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Delete__FP13kytag15_class.s b/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Delete__FP13kytag15_class.s deleted file mode 100644 index b96dfd81ce..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Delete__FP13kytag15_class.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_808608B8: -/* 808608B8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 808608BC 7C 08 02 A6 */ mflr r0 -/* 808608C0 90 01 00 14 */ stw r0, 0x14(r1) -/* 808608C4 3C 80 80 86 */ lis r4, d_a_kytag15__stringBase0@ha /* 0x80860B68@ha */ -/* 808608C8 38 84 0B 68 */ addi r4, r4, d_a_kytag15__stringBase0@l /* 0x80860B68@l */ -/* 808608CC 38 63 05 84 */ addi r3, r3, 0x584 -/* 808608D0 4B 7C C7 39 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 808608D4 38 60 00 01 */ li r3, 1 -/* 808608D8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 808608DC 7C 08 03 A6 */ mtlr r0 -/* 808608E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 808608E4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Draw__FP13kytag15_class.s b/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Draw__FP13kytag15_class.s deleted file mode 100644 index 9063ff9195..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Draw__FP13kytag15_class.s +++ /dev/null @@ -1,116 +0,0 @@ -lbl_80860638: -/* 80860638 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8086063C 7C 08 02 A6 */ mflr r0 -/* 80860640 90 01 00 44 */ stw r0, 0x44(r1) -/* 80860644 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 80860648 93 C1 00 38 */ stw r30, 0x38(r1) -/* 8086064C 7C 7F 1B 78 */ mr r31, r3 -/* 80860650 3C 60 80 86 */ lis r3, lit_3823@ha /* 0x80860B40@ha */ -/* 80860654 3B C3 0B 40 */ addi r30, r3, lit_3823@l /* 0x80860B40@l */ -/* 80860658 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8086065C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80860660 C0 3E 00 00 */ lfs f1, 0(r30) -/* 80860664 FC 40 08 90 */ fmr f2, f1 -/* 80860668 FC 60 08 90 */ fmr f3, f1 -/* 8086066C 4B AE 62 7D */ bl PSMTXTrans -/* 80860670 C0 1E 00 04 */ lfs f0, 4(r30) -/* 80860674 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 80860678 D0 01 00 14 */ stfs f0, 0x14(r1) -/* 8086067C D0 01 00 18 */ stfs f0, 0x18(r1) -/* 80860680 80 7F 05 68 */ lwz r3, 0x568(r31) -/* 80860684 28 03 00 00 */ cmplwi r3, 0 -/* 80860688 41 82 01 54 */ beq lbl_808607DC -/* 8086068C C0 3F 05 90 */ lfs f1, 0x590(r31) -/* 80860690 C0 1E 00 00 */ lfs f0, 0(r30) -/* 80860694 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80860698 40 81 01 44 */ ble lbl_808607DC -/* 8086069C 80 63 00 04 */ lwz r3, 4(r3) -/* 808606A0 80 63 00 60 */ lwz r3, 0x60(r3) -/* 808606A4 80 63 00 00 */ lwz r3, 0(r3) -/* 808606A8 38 00 00 00 */ li r0, 0 -/* 808606AC B0 01 00 0C */ sth r0, 0xc(r1) -/* 808606B0 B0 01 00 0A */ sth r0, 0xa(r1) -/* 808606B4 B0 01 00 08 */ sth r0, 8(r1) -/* 808606B8 38 00 FF 4C */ li r0, -180 -/* 808606BC B0 01 00 0E */ sth r0, 0xe(r1) -/* 808606C0 88 1F 05 8C */ lbz r0, 0x58c(r31) -/* 808606C4 28 00 00 01 */ cmplwi r0, 1 -/* 808606C8 40 82 00 0C */ bne lbl_808606D4 -/* 808606CC 38 00 FF 9C */ li r0, -100 -/* 808606D0 B0 01 00 0E */ sth r0, 0xe(r1) -lbl_808606D4: -/* 808606D4 C0 7E 00 08 */ lfs f3, 8(r30) -/* 808606D8 C0 5E 00 0C */ lfs f2, 0xc(r30) -/* 808606DC A8 01 00 0E */ lha r0, 0xe(r1) -/* 808606E0 C8 3E 00 10 */ lfd f1, 0x10(r30) -/* 808606E4 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 808606E8 90 01 00 24 */ stw r0, 0x24(r1) -/* 808606EC 3C 00 43 30 */ lis r0, 0x4330 -/* 808606F0 90 01 00 20 */ stw r0, 0x20(r1) -/* 808606F4 C8 01 00 20 */ lfd f0, 0x20(r1) -/* 808606F8 EC 00 08 28 */ fsubs f0, f0, f1 -/* 808606FC EC 22 00 2A */ fadds f1, f2, f0 -/* 80860700 C0 1F 05 90 */ lfs f0, 0x590(r31) -/* 80860704 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80860708 EC 03 00 2A */ fadds f0, f3, f0 -/* 8086070C FC 00 00 1E */ fctiwz f0, f0 -/* 80860710 D8 01 00 28 */ stfd f0, 0x28(r1) -/* 80860714 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 80860718 B0 01 00 0E */ sth r0, 0xe(r1) -/* 8086071C 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 80860720 38 80 00 00 */ li r4, 0 -/* 80860724 38 A1 00 08 */ addi r5, r1, 8 -/* 80860728 81 83 00 00 */ lwz r12, 0(r3) -/* 8086072C 81 8C 00 60 */ lwz r12, 0x60(r12) -/* 80860730 7D 89 03 A6 */ mtctr r12 -/* 80860734 4E 80 04 21 */ bctrl -/* 80860738 80 7F 05 68 */ lwz r3, 0x568(r31) -/* 8086073C C0 01 00 10 */ lfs f0, 0x10(r1) -/* 80860740 D0 03 00 18 */ stfs f0, 0x18(r3) -/* 80860744 C0 01 00 14 */ lfs f0, 0x14(r1) -/* 80860748 D0 03 00 1C */ stfs f0, 0x1c(r3) -/* 8086074C C0 01 00 18 */ lfs f0, 0x18(r1) -/* 80860750 D0 03 00 20 */ stfs f0, 0x20(r3) -/* 80860754 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80860758 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8086075C 80 9F 05 68 */ lwz r4, 0x568(r31) -/* 80860760 38 84 00 24 */ addi r4, r4, 0x24 -/* 80860764 4B AE 5D 4D */ bl PSMTXCopy -/* 80860768 80 7F 05 68 */ lwz r3, 0x568(r31) -/* 8086076C 80 83 00 04 */ lwz r4, 4(r3) -/* 80860770 C0 3F 05 7C */ lfs f1, 0x57c(r31) -/* 80860774 38 7F 05 6C */ addi r3, r31, 0x56c -/* 80860778 38 84 00 58 */ addi r4, r4, 0x58 -/* 8086077C 4B 7A CF 5D */ bl entry__13mDoExt_btkAnmFP16J3DMaterialTablef -/* 80860780 38 7F 05 6C */ addi r3, r31, 0x56c -/* 80860784 4B 7A CC A5 */ bl play__14mDoExt_baseAnmFv -/* 80860788 88 1F 05 8C */ lbz r0, 0x58c(r31) -/* 8086078C 28 00 00 01 */ cmplwi r0, 1 -/* 80860790 40 82 00 0C */ bne lbl_8086079C -/* 80860794 38 7F 05 6C */ addi r3, r31, 0x56c -/* 80860798 4B 7A CC 91 */ bl play__14mDoExt_baseAnmFv -lbl_8086079C: -/* 8086079C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 808607A0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 808607A4 80 03 5F AC */ lwz r0, 0x5fac(r3) -/* 808607A8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 808607AC 3B C3 4A C8 */ addi r30, r3, j3dSys@l /* 0x80434AC8@l */ -/* 808607B0 90 1E 00 4C */ stw r0, 0x4c(r30) -/* 808607B4 80 7F 05 68 */ lwz r3, 0x568(r31) -/* 808607B8 4B 7A D5 0D */ bl mDoExt_modelUpdateDL__FP8J3DModel -/* 808607BC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 808607C0 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 808607C4 80 04 5F 80 */ lwz r0, 0x5f80(r4) -/* 808607C8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 808607CC 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 808607D0 90 03 00 48 */ stw r0, 0x48(r3) -/* 808607D4 80 04 5F 84 */ lwz r0, 0x5f84(r4) -/* 808607D8 90 1E 00 4C */ stw r0, 0x4c(r30) -lbl_808607DC: -/* 808607DC 38 60 00 01 */ li r3, 1 -/* 808607E0 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 808607E4 83 C1 00 38 */ lwz r30, 0x38(r1) -/* 808607E8 80 01 00 44 */ lwz r0, 0x44(r1) -/* 808607EC 7C 08 03 A6 */ mtlr r0 -/* 808607F0 38 21 00 40 */ addi r1, r1, 0x40 -/* 808607F4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Execute__FP13kytag15_class.s b/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Execute__FP13kytag15_class.s deleted file mode 100644 index ab4f739e77..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/daKytag15_Execute__FP13kytag15_class.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_808607F8: -/* 808607F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 808607FC 7C 08 02 A6 */ mflr r0 -/* 80860800 90 01 00 14 */ stw r0, 0x14(r1) -/* 80860804 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80860808 93 C1 00 08 */ stw r30, 8(r1) -/* 8086080C 7C 7E 1B 78 */ mr r30, r3 -/* 80860810 3C 60 80 86 */ lis r3, lit_3823@ha /* 0x80860B40@ha */ -/* 80860814 3B E3 0B 40 */ addi r31, r3, lit_3823@l /* 0x80860B40@l */ -/* 80860818 88 1E 05 8C */ lbz r0, 0x58c(r30) -/* 8086081C 28 00 00 00 */ cmplwi r0, 0 -/* 80860820 40 82 00 48 */ bne lbl_80860868 -/* 80860824 4B 93 F2 95 */ bl dKy_daynight_check__Fv -/* 80860828 2C 03 00 00 */ cmpwi r3, 0 -/* 8086082C 40 82 00 20 */ bne lbl_8086084C -/* 80860830 38 7E 05 90 */ addi r3, r30, 0x590 -/* 80860834 C0 3F 00 18 */ lfs f1, 0x18(r31) -/* 80860838 C0 5F 00 1C */ lfs f2, 0x1c(r31) -/* 8086083C C0 7F 00 20 */ lfs f3, 0x20(r31) -/* 80860840 C0 9F 00 24 */ lfs f4, 0x24(r31) -/* 80860844 4B A0 F1 39 */ bl cLib_addCalc__FPfffff -/* 80860848 48 00 00 4C */ b lbl_80860894 -lbl_8086084C: -/* 8086084C 38 7E 05 90 */ addi r3, r30, 0x590 -/* 80860850 C0 3F 00 00 */ lfs f1, 0(r31) -/* 80860854 C0 5F 00 1C */ lfs f2, 0x1c(r31) -/* 80860858 C0 7F 00 20 */ lfs f3, 0x20(r31) -/* 8086085C C0 9F 00 24 */ lfs f4, 0x24(r31) -/* 80860860 4B A0 F1 1D */ bl cLib_addCalc__FPfffff -/* 80860864 48 00 00 30 */ b lbl_80860894 -lbl_80860868: -/* 80860868 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 8086086C 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80860870 88 03 12 C2 */ lbz r0, 0x12c2(r3) -/* 80860874 28 00 00 0B */ cmplwi r0, 0xb -/* 80860878 40 82 00 1C */ bne lbl_80860894 -/* 8086087C 38 7E 05 90 */ addi r3, r30, 0x590 -/* 80860880 C0 3F 00 18 */ lfs f1, 0x18(r31) -/* 80860884 C0 5F 00 1C */ lfs f2, 0x1c(r31) -/* 80860888 C0 7F 00 20 */ lfs f3, 0x20(r31) -/* 8086088C C0 9F 00 24 */ lfs f4, 0x24(r31) -/* 80860890 4B A0 F0 ED */ bl cLib_addCalc__FPfffff -lbl_80860894: -/* 80860894 38 60 00 01 */ li r3, 1 -/* 80860898 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8086089C 83 C1 00 08 */ lwz r30, 8(r1) -/* 808608A0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 808608A4 7C 08 03 A6 */ mtlr r0 -/* 808608A8 38 21 00 10 */ addi r1, r1, 0x10 -/* 808608AC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/useHeapInit__FP10fopAc_ac_c.s b/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/useHeapInit__FP10fopAc_ac_c.s deleted file mode 100644 index f19230b904..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag15/d_a_kytag15/useHeapInit__FP10fopAc_ac_c.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_808608E8: -/* 808608E8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 808608EC 7C 08 02 A6 */ mflr r0 -/* 808608F0 90 01 00 24 */ stw r0, 0x24(r1) -/* 808608F4 39 61 00 20 */ addi r11, r1, 0x20 -/* 808608F8 4B B0 18 E5 */ bl _savegpr_29 -/* 808608FC 7C 7D 1B 78 */ mr r29, r3 -/* 80860900 3C 60 80 86 */ lis r3, d_a_kytag15__stringBase0@ha /* 0x80860B68@ha */ -/* 80860904 38 63 0B 68 */ addi r3, r3, d_a_kytag15__stringBase0@l /* 0x80860B68@l */ -/* 80860908 38 80 00 04 */ li r4, 4 -/* 8086090C 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80860910 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80860914 3F C5 00 02 */ addis r30, r5, 2 -/* 80860918 3B DE C2 F8 */ addi r30, r30, -15624 -/* 8086091C 7F C5 F3 78 */ mr r5, r30 -/* 80860920 38 C0 00 80 */ li r6, 0x80 -/* 80860924 4B 7D B9 C9 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 80860928 7C 7F 1B 78 */ mr r31, r3 -/* 8086092C 3C 80 00 08 */ lis r4, 8 -/* 80860930 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000284@ha */ -/* 80860934 38 A5 02 84 */ addi r5, r5, 0x0284 /* 0x11000284@l */ -/* 80860938 4B 7B 43 1D */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl -/* 8086093C 90 7D 05 68 */ stw r3, 0x568(r29) -/* 80860940 80 1D 05 68 */ lwz r0, 0x568(r29) -/* 80860944 28 00 00 00 */ cmplwi r0, 0 -/* 80860948 40 82 00 0C */ bne lbl_80860954 -/* 8086094C 38 60 00 00 */ li r3, 0 -/* 80860950 48 00 00 4C */ b lbl_8086099C -lbl_80860954: -/* 80860954 3C 60 80 86 */ lis r3, d_a_kytag15__stringBase0@ha /* 0x80860B68@ha */ -/* 80860958 38 63 0B 68 */ addi r3, r3, d_a_kytag15__stringBase0@l /* 0x80860B68@l */ -/* 8086095C 38 80 00 07 */ li r4, 7 -/* 80860960 7F C5 F3 78 */ mr r5, r30 -/* 80860964 38 C0 00 80 */ li r6, 0x80 -/* 80860968 4B 7D B9 85 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 8086096C 7C 65 1B 78 */ mr r5, r3 -/* 80860970 38 7D 05 6C */ addi r3, r29, 0x56c -/* 80860974 38 9F 00 58 */ addi r4, r31, 0x58 -/* 80860978 38 C0 00 01 */ li r6, 1 -/* 8086097C 38 E0 00 02 */ li r7, 2 -/* 80860980 3D 00 80 86 */ lis r8, lit_3845@ha /* 0x80860B58@ha */ -/* 80860984 C0 28 0B 58 */ lfs f1, lit_3845@l(r8) /* 0x80860B58@l */ -/* 80860988 39 00 00 00 */ li r8, 0 -/* 8086098C 39 20 FF FF */ li r9, -1 -/* 80860990 4B 7A CC AD */ bl init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss -/* 80860994 30 03 FF FF */ addic r0, r3, -1 -/* 80860998 7C 60 19 10 */ subfe r3, r0, r3 -lbl_8086099C: -/* 8086099C 39 61 00 20 */ addi r11, r1, 0x20 -/* 808609A0 4B B0 18 89 */ bl _restgpr_29 -/* 808609A4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 808609A8 7C 08 03 A6 */ mtlr r0 -/* 808609AC 38 21 00 20 */ addi r1, r1, 0x20 -/* 808609B0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/__dt__12daTagMwait_cFv.s b/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/__dt__12daTagMwait_cFv.s deleted file mode 100644 index 392fdfef09..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/__dt__12daTagMwait_cFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_80D5C01C: -/* 80D5C01C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5C020 7C 08 02 A6 */ mflr r0 -/* 80D5C024 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5C028 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D5C02C 93 C1 00 08 */ stw r30, 8(r1) -/* 80D5C030 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80D5C034 7C 9F 23 78 */ mr r31, r4 -/* 80D5C038 41 82 00 2C */ beq lbl_80D5C064 -/* 80D5C03C 38 7E 05 80 */ addi r3, r30, 0x580 -/* 80D5C040 38 80 FF FF */ li r4, -1 -/* 80D5C044 4B 4E DF 05 */ bl __dt__10dMsgFlow_cFv -/* 80D5C048 7F C3 F3 78 */ mr r3, r30 -/* 80D5C04C 38 80 00 00 */ li r4, 0 -/* 80D5C050 4B 2B CC 3D */ bl __dt__10fopAc_ac_cFv -/* 80D5C054 7F E0 07 35 */ extsh. r0, r31 -/* 80D5C058 40 81 00 0C */ ble lbl_80D5C064 -/* 80D5C05C 7F C3 F3 78 */ mr r3, r30 -/* 80D5C060 4B 57 2C DD */ bl __dl__FPv -lbl_80D5C064: -/* 80D5C064 7F C3 F3 78 */ mr r3, r30 -/* 80D5C068 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D5C06C 83 C1 00 08 */ lwz r30, 8(r1) -/* 80D5C070 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5C074 7C 08 03 A6 */ mtlr r0 -/* 80D5C078 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5C07C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/create__12daTagMwait_cFv.s b/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/create__12daTagMwait_cFv.s deleted file mode 100644 index 9db7dcf2e7..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/create__12daTagMwait_cFv.s +++ /dev/null @@ -1,133 +0,0 @@ -lbl_80D5BE18: -/* 80D5BE18 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80D5BE1C 7C 08 02 A6 */ mflr r0 -/* 80D5BE20 90 01 00 24 */ stw r0, 0x24(r1) -/* 80D5BE24 39 61 00 20 */ addi r11, r1, 0x20 -/* 80D5BE28 4B 60 63 B5 */ bl _savegpr_29 -/* 80D5BE2C 7C 7E 1B 78 */ mr r30, r3 -/* 80D5BE30 3C 80 80 D6 */ lis r4, lit_3841@ha /* 0x80D5C580@ha */ -/* 80D5BE34 3B E4 C5 80 */ addi r31, r4, lit_3841@l /* 0x80D5C580@l */ -/* 80D5BE38 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D5BE3C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D5BE40 40 82 00 28 */ bne lbl_80D5BE68 -/* 80D5BE44 7F C0 F3 79 */ or. r0, r30, r30 -/* 80D5BE48 41 82 00 14 */ beq lbl_80D5BE5C -/* 80D5BE4C 7C 1D 03 78 */ mr r29, r0 -/* 80D5BE50 4B 2B CD 15 */ bl __ct__10fopAc_ac_cFv -/* 80D5BE54 38 7D 05 80 */ addi r3, r29, 0x580 -/* 80D5BE58 4B 4E E0 A9 */ bl __ct__10dMsgFlow_cFv -lbl_80D5BE5C: -/* 80D5BE5C 80 1E 04 A0 */ lwz r0, 0x4a0(r30) -/* 80D5BE60 60 00 00 08 */ ori r0, r0, 8 -/* 80D5BE64 90 1E 04 A0 */ stw r0, 0x4a0(r30) -lbl_80D5BE68: -/* 80D5BE68 80 1E 00 B0 */ lwz r0, 0xb0(r30) -/* 80D5BE6C 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f -/* 80D5BE70 98 1E 05 69 */ stb r0, 0x569(r30) -/* 80D5BE74 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5BE78 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5BE7C 88 9E 05 69 */ lbz r4, 0x569(r30) -/* 80D5BE80 88 1E 04 BA */ lbz r0, 0x4ba(r30) -/* 80D5BE84 7C 05 07 74 */ extsb r5, r0 -/* 80D5BE88 4B 2D 94 D9 */ bl isSwitch__10dSv_info_cCFii -/* 80D5BE8C 2C 03 00 00 */ cmpwi r3, 0 -/* 80D5BE90 41 82 00 0C */ beq lbl_80D5BE9C -/* 80D5BE94 38 60 00 05 */ li r3, 5 -/* 80D5BE98 48 00 01 4C */ b lbl_80D5BFE4 -lbl_80D5BE9C: -/* 80D5BE9C 80 1E 00 B0 */ lwz r0, 0xb0(r30) -/* 80D5BEA0 98 1E 05 68 */ stb r0, 0x568(r30) -/* 80D5BEA4 80 1E 00 B0 */ lwz r0, 0xb0(r30) -/* 80D5BEA8 54 00 86 3F */ rlwinm. r0, r0, 0x10, 0x18, 0x1f -/* 80D5BEAC 41 82 00 0C */ beq lbl_80D5BEB8 -/* 80D5BEB0 28 00 00 FF */ cmplwi r0, 0xff -/* 80D5BEB4 40 82 00 10 */ bne lbl_80D5BEC4 -lbl_80D5BEB8: -/* 80D5BEB8 C0 1F 00 00 */ lfs f0, 0(r31) -/* 80D5BEBC D0 1E 05 70 */ stfs f0, 0x570(r30) -/* 80D5BEC0 48 00 00 2C */ b lbl_80D5BEEC -lbl_80D5BEC4: -/* 80D5BEC4 C0 5F 00 04 */ lfs f2, 4(r31) -/* 80D5BEC8 7C 00 01 D6 */ mullw r0, r0, r0 -/* 80D5BECC C8 3F 00 18 */ lfd f1, 0x18(r31) -/* 80D5BED0 90 01 00 0C */ stw r0, 0xc(r1) -/* 80D5BED4 3C 00 43 30 */ lis r0, 0x4330 -/* 80D5BED8 90 01 00 08 */ stw r0, 8(r1) -/* 80D5BEDC C8 01 00 08 */ lfd f0, 8(r1) -/* 80D5BEE0 EC 00 08 28 */ fsubs f0, f0, f1 -/* 80D5BEE4 EC 02 00 32 */ fmuls f0, f2, f0 -/* 80D5BEE8 D0 1E 05 70 */ stfs f0, 0x570(r30) -lbl_80D5BEEC: -/* 80D5BEEC A8 1E 04 E4 */ lha r0, 0x4e4(r30) -/* 80D5BEF0 54 00 07 3E */ clrlwi r0, r0, 0x1c -/* 80D5BEF4 98 1E 05 6B */ stb r0, 0x56b(r30) -/* 80D5BEF8 88 1E 05 6B */ lbz r0, 0x56b(r30) -/* 80D5BEFC 28 00 00 02 */ cmplwi r0, 2 -/* 80D5BF00 41 80 00 0C */ blt lbl_80D5BF0C -/* 80D5BF04 38 00 00 00 */ li r0, 0 -/* 80D5BF08 98 1E 05 6B */ stb r0, 0x56b(r30) -lbl_80D5BF0C: -/* 80D5BF0C A8 1E 04 E4 */ lha r0, 0x4e4(r30) -/* 80D5BF10 54 00 E7 3E */ rlwinm r0, r0, 0x1c, 0x1c, 0x1f -/* 80D5BF14 98 1E 05 6D */ stb r0, 0x56d(r30) -/* 80D5BF18 88 1E 05 6D */ lbz r0, 0x56d(r30) -/* 80D5BF1C 28 00 00 02 */ cmplwi r0, 2 -/* 80D5BF20 41 80 00 0C */ blt lbl_80D5BF2C -/* 80D5BF24 38 00 00 00 */ li r0, 0 -/* 80D5BF28 98 1E 05 6D */ stb r0, 0x56d(r30) -lbl_80D5BF2C: -/* 80D5BF2C 38 7E 04 EC */ addi r3, r30, 0x4ec -/* 80D5BF30 7C 64 1B 78 */ mr r4, r3 -/* 80D5BF34 C0 3F 00 04 */ lfs f1, 4(r31) -/* 80D5BF38 4B 5E B1 A1 */ bl PSVECScale -/* 80D5BF3C 80 1E 00 B0 */ lwz r0, 0xb0(r30) -/* 80D5BF40 54 00 46 3F */ rlwinm. r0, r0, 8, 0x18, 0x1f -/* 80D5BF44 41 82 00 0C */ beq lbl_80D5BF50 -/* 80D5BF48 28 00 00 FF */ cmplwi r0, 0xff -/* 80D5BF4C 40 82 00 08 */ bne lbl_80D5BF54 -lbl_80D5BF50: -/* 80D5BF50 38 00 00 00 */ li r0, 0 -lbl_80D5BF54: -/* 80D5BF54 C0 9E 04 D8 */ lfs f4, 0x4d8(r30) -/* 80D5BF58 C0 7E 04 D4 */ lfs f3, 0x4d4(r30) -/* 80D5BF5C C0 5F 00 08 */ lfs f2, 8(r31) -/* 80D5BF60 C8 3F 00 18 */ lfd f1, 0x18(r31) -/* 80D5BF64 90 01 00 0C */ stw r0, 0xc(r1) -/* 80D5BF68 3C 00 43 30 */ lis r0, 0x4330 -/* 80D5BF6C 90 01 00 08 */ stw r0, 8(r1) -/* 80D5BF70 C8 01 00 08 */ lfd f0, 8(r1) -/* 80D5BF74 EC 00 08 28 */ fsubs f0, f0, f1 -/* 80D5BF78 EC 02 00 32 */ fmuls f0, f2, f0 -/* 80D5BF7C EC 23 00 2A */ fadds f1, f3, f0 -/* 80D5BF80 C0 1E 04 D0 */ lfs f0, 0x4d0(r30) -/* 80D5BF84 D0 1E 05 74 */ stfs f0, 0x574(r30) -/* 80D5BF88 D0 3E 05 78 */ stfs f1, 0x578(r30) -/* 80D5BF8C D0 9E 05 7C */ stfs f4, 0x57c(r30) -/* 80D5BF90 C0 5E 05 7C */ lfs f2, 0x57c(r30) -/* 80D5BF94 C0 3F 00 0C */ lfs f1, 0xc(r31) -/* 80D5BF98 C0 1E 05 78 */ lfs f0, 0x578(r30) -/* 80D5BF9C EC 21 00 2A */ fadds f1, f1, f0 -/* 80D5BFA0 C0 1E 05 74 */ lfs f0, 0x574(r30) -/* 80D5BFA4 D0 1E 05 50 */ stfs f0, 0x550(r30) -/* 80D5BFA8 D0 3E 05 54 */ stfs f1, 0x554(r30) -/* 80D5BFAC D0 5E 05 58 */ stfs f2, 0x558(r30) -/* 80D5BFB0 C0 5E 05 7C */ lfs f2, 0x57c(r30) -/* 80D5BFB4 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 80D5BFB8 C0 1E 05 78 */ lfs f0, 0x578(r30) -/* 80D5BFBC EC 21 00 2A */ fadds f1, f1, f0 -/* 80D5BFC0 C0 1E 05 74 */ lfs f0, 0x574(r30) -/* 80D5BFC4 D0 1E 05 38 */ stfs f0, 0x538(r30) -/* 80D5BFC8 D0 3E 05 3C */ stfs f1, 0x53c(r30) -/* 80D5BFCC D0 5E 05 40 */ stfs f2, 0x540(r30) -/* 80D5BFD0 38 00 00 36 */ li r0, 0x36 -/* 80D5BFD4 98 1E 05 45 */ stb r0, 0x545(r30) -/* 80D5BFD8 38 00 00 00 */ li r0, 0 -/* 80D5BFDC 90 1E 05 5C */ stw r0, 0x55c(r30) -/* 80D5BFE0 38 60 00 04 */ li r3, 4 -lbl_80D5BFE4: -/* 80D5BFE4 39 61 00 20 */ addi r11, r1, 0x20 -/* 80D5BFE8 4B 60 62 41 */ bl _restgpr_29 -/* 80D5BFEC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80D5BFF0 7C 08 03 A6 */ mtlr r0 -/* 80D5BFF4 38 21 00 20 */ addi r1, r1, 0x20 -/* 80D5BFF8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 2ce5e67f41..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D5BFFC: -/* 80D5BFFC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5C000 7C 08 02 A6 */ mflr r0 -/* 80D5C004 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5C008 4B FF FE 11 */ bl create__12daTagMwait_cFv -/* 80D5C00C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5C010 7C 08 03 A6 */ mtlr r0 -/* 80D5C014 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5C018 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Delete__FP12daTagMwait_c.s b/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Delete__FP12daTagMwait_c.s deleted file mode 100644 index 840abf2dd5..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Delete__FP12daTagMwait_c.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80D5C080: -/* 80D5C080 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5C084 7C 08 02 A6 */ mflr r0 -/* 80D5C088 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5C08C 38 80 FF FF */ li r4, -1 -/* 80D5C090 4B FF FF 8D */ bl __dt__12daTagMwait_cFv -/* 80D5C094 38 60 00 01 */ li r3, 1 -/* 80D5C098 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5C09C 7C 08 03 A6 */ mtlr r0 -/* 80D5C0A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5C0A4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Execute__FP12daTagMwait_c.s b/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Execute__FP12daTagMwait_c.s deleted file mode 100644 index a8c4bec123..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/daTagMwait_Execute__FP12daTagMwait_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D5C550: -/* 80D5C550 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5C554 7C 08 02 A6 */ mflr r0 -/* 80D5C558 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5C55C 4B FF FB 4D */ bl execute__12daTagMwait_cFv -/* 80D5C560 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5C564 7C 08 03 A6 */ mtlr r0 -/* 80D5C568 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5C56C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/execute__12daTagMwait_cFv.s b/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/execute__12daTagMwait_cFv.s deleted file mode 100644 index e836ae2613..0000000000 --- a/asm/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait/execute__12daTagMwait_cFv.s +++ /dev/null @@ -1,322 +0,0 @@ -lbl_80D5C0A8: -/* 80D5C0A8 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 80D5C0AC 7C 08 02 A6 */ mflr r0 -/* 80D5C0B0 90 01 00 54 */ stw r0, 0x54(r1) -/* 80D5C0B4 DB E1 00 40 */ stfd f31, 0x40(r1) -/* 80D5C0B8 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 /* qr0 */ -/* 80D5C0BC 39 61 00 40 */ addi r11, r1, 0x40 -/* 80D5C0C0 4B 60 61 19 */ bl _savegpr_28 -/* 80D5C0C4 7C 7C 1B 78 */ mr r28, r3 -/* 80D5C0C8 3C 80 80 D6 */ lis r4, lit_3841@ha /* 0x80D5C580@ha */ -/* 80D5C0CC 3B E4 C5 80 */ addi r31, r4, lit_3841@l /* 0x80D5C580@l */ -/* 80D5C0D0 3C 80 80 45 */ lis r4, m_midnaActor__9daPy_py_c@ha /* 0x80451018@ha */ -/* 80D5C0D4 83 A4 10 18 */ lwz r29, m_midnaActor__9daPy_py_c@l(r4) /* 0x80451018@l */ -/* 80D5C0D8 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5C0DC 38 A4 61 C0 */ addi r5, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5C0E0 83 C5 5D B4 */ lwz r30, 0x5db4(r5) -/* 80D5C0E4 28 1D 00 00 */ cmplwi r29, 0 -/* 80D5C0E8 40 82 00 0C */ bne lbl_80D5C0F4 -/* 80D5C0EC 38 60 00 01 */ li r3, 1 -/* 80D5C0F0 48 00 04 40 */ b lbl_80D5C530 -lbl_80D5C0F4: -/* 80D5C0F4 38 80 00 00 */ li r4, 0 -/* 80D5C0F8 90 9C 05 5C */ stw r4, 0x55c(r28) -/* 80D5C0FC A0 1C 00 F8 */ lhz r0, 0xf8(r28) -/* 80D5C100 28 00 00 01 */ cmplwi r0, 1 -/* 80D5C104 40 82 00 98 */ bne lbl_80D5C19C -/* 80D5C108 88 1C 05 6C */ lbz r0, 0x56c(r28) -/* 80D5C10C 28 00 00 00 */ cmplwi r0, 0 -/* 80D5C110 41 82 00 10 */ beq lbl_80D5C120 -/* 80D5C114 A0 1D 05 E4 */ lhz r0, 0x5e4(r29) -/* 80D5C118 28 00 01 CA */ cmplwi r0, 0x1ca -/* 80D5C11C 41 82 04 10 */ beq lbl_80D5C52C -lbl_80D5C120: -/* 80D5C120 88 1C 05 6A */ lbz r0, 0x56a(r28) -/* 80D5C124 28 00 00 00 */ cmplwi r0, 0 -/* 80D5C128 40 82 00 2C */ bne lbl_80D5C154 -/* 80D5C12C 38 7C 05 80 */ addi r3, r28, 0x580 -/* 80D5C130 7F 84 E3 78 */ mr r4, r28 -/* 80D5C134 A8 1C 04 E8 */ lha r0, 0x4e8(r28) -/* 80D5C138 54 05 04 3E */ clrlwi r5, r0, 0x10 -/* 80D5C13C 38 C0 00 00 */ li r6, 0 -/* 80D5C140 38 E0 00 00 */ li r7, 0 -/* 80D5C144 4B 4E DE 4D */ bl init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c -/* 80D5C148 38 00 00 01 */ li r0, 1 -/* 80D5C14C 98 1C 05 6A */ stb r0, 0x56a(r28) -/* 80D5C150 48 00 03 DC */ b lbl_80D5C52C -lbl_80D5C154: -/* 80D5C154 38 7C 05 80 */ addi r3, r28, 0x580 -/* 80D5C158 7F 84 E3 78 */ mr r4, r28 -/* 80D5C15C 38 A0 00 00 */ li r5, 0 -/* 80D5C160 38 C0 00 00 */ li r6, 0 -/* 80D5C164 4B 4E E1 75 */ bl doFlow__10dMsgFlow_cFP10fopAc_ac_cPP10fopAc_ac_ci -/* 80D5C168 2C 03 00 00 */ cmpwi r3, 0 -/* 80D5C16C 41 82 03 C0 */ beq lbl_80D5C52C -/* 80D5C170 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5C174 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5C178 38 63 4E C8 */ addi r3, r3, 0x4ec8 -/* 80D5C17C 4B 2E 62 ED */ bl reset__14dEvt_control_cFv -/* 80D5C180 88 1C 05 6C */ lbz r0, 0x56c(r28) -/* 80D5C184 28 00 00 00 */ cmplwi r0, 0 -/* 80D5C188 41 82 03 A4 */ beq lbl_80D5C52C -/* 80D5C18C 7F 83 E3 78 */ mr r3, r28 -/* 80D5C190 4B 2B DA ED */ bl fopAcM_delete__FP10fopAc_ac_c -/* 80D5C194 38 60 00 01 */ li r3, 1 -/* 80D5C198 48 00 03 98 */ b lbl_80D5C530 -lbl_80D5C19C: -/* 80D5C19C 88 1C 05 6C */ lbz r0, 0x56c(r28) -/* 80D5C1A0 28 00 00 00 */ cmplwi r0, 0 -/* 80D5C1A4 41 82 00 50 */ beq lbl_80D5C1F4 -/* 80D5C1A8 38 80 00 00 */ li r4, 0 -/* 80D5C1AC 38 A0 00 00 */ li r5, 0 -/* 80D5C1B0 4B 2B EF ED */ bl fopAcM_orderSpeakEvent__FP10fopAc_ac_cUsUs -/* 80D5C1B4 A0 1C 00 FA */ lhz r0, 0xfa(r28) -/* 80D5C1B8 60 00 00 01 */ ori r0, r0, 1 -/* 80D5C1BC B0 1C 00 FA */ sth r0, 0xfa(r28) -/* 80D5C1C0 C0 1D 05 50 */ lfs f0, 0x550(r29) -/* 80D5C1C4 D0 1C 05 50 */ stfs f0, 0x550(r28) -/* 80D5C1C8 C0 1D 05 54 */ lfs f0, 0x554(r29) -/* 80D5C1CC D0 1C 05 54 */ stfs f0, 0x554(r28) -/* 80D5C1D0 C0 1D 05 58 */ lfs f0, 0x558(r29) -/* 80D5C1D4 D0 1C 05 58 */ stfs f0, 0x558(r28) -/* 80D5C1D8 C0 1C 05 50 */ lfs f0, 0x550(r28) -/* 80D5C1DC D0 1C 05 38 */ stfs f0, 0x538(r28) -/* 80D5C1E0 C0 1C 05 54 */ lfs f0, 0x554(r28) -/* 80D5C1E4 D0 1C 05 3C */ stfs f0, 0x53c(r28) -/* 80D5C1E8 C0 1C 05 58 */ lfs f0, 0x558(r28) -/* 80D5C1EC D0 1C 05 40 */ stfs f0, 0x540(r28) -/* 80D5C1F0 48 00 03 3C */ b lbl_80D5C52C -lbl_80D5C1F4: -/* 80D5C1F4 98 9C 05 6A */ stb r4, 0x56a(r28) -/* 80D5C1F8 80 65 5D B4 */ lwz r3, 0x5db4(r5) -/* 80D5C1FC 80 03 05 74 */ lwz r0, 0x574(r3) -/* 80D5C200 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 80D5C204 41 82 03 28 */ beq lbl_80D5C52C -/* 80D5C208 28 1D 00 00 */ cmplwi r29, 0 -/* 80D5C20C 41 82 03 20 */ beq lbl_80D5C52C -/* 80D5C210 7C A3 2B 78 */ mr r3, r5 -/* 80D5C214 88 9C 05 68 */ lbz r4, 0x568(r28) -/* 80D5C218 88 1C 04 BA */ lbz r0, 0x4ba(r28) -/* 80D5C21C 7C 05 07 74 */ extsb r5, r0 -/* 80D5C220 4B 2D 91 41 */ bl isSwitch__10dSv_info_cCFii -/* 80D5C224 2C 03 00 00 */ cmpwi r3, 0 -/* 80D5C228 41 82 03 04 */ beq lbl_80D5C52C -/* 80D5C22C 88 1C 05 6B */ lbz r0, 0x56b(r28) -/* 80D5C230 28 00 00 01 */ cmplwi r0, 1 -/* 80D5C234 40 82 00 38 */ bne lbl_80D5C26C -/* 80D5C238 C0 1C 05 74 */ lfs f0, 0x574(r28) -/* 80D5C23C D0 1D 09 AC */ stfs f0, 0x9ac(r29) -/* 80D5C240 C0 1C 05 78 */ lfs f0, 0x578(r28) -/* 80D5C244 D0 1D 09 B0 */ stfs f0, 0x9b0(r29) -/* 80D5C248 C0 1C 05 7C */ lfs f0, 0x57c(r28) -/* 80D5C24C D0 1D 09 B4 */ stfs f0, 0x9b4(r29) -/* 80D5C250 80 1D 08 90 */ lwz r0, 0x890(r29) -/* 80D5C254 60 00 04 00 */ ori r0, r0, 0x400 -/* 80D5C258 90 1D 08 90 */ stw r0, 0x890(r29) -/* 80D5C25C 80 1D 08 98 */ lwz r0, 0x898(r29) -/* 80D5C260 60 00 00 02 */ ori r0, r0, 2 -/* 80D5C264 90 1D 08 98 */ stw r0, 0x898(r29) -/* 80D5C268 48 00 00 28 */ b lbl_80D5C290 -lbl_80D5C26C: -/* 80D5C26C C0 1C 05 74 */ lfs f0, 0x574(r28) -/* 80D5C270 D0 1D 09 AC */ stfs f0, 0x9ac(r29) -/* 80D5C274 C0 1C 05 78 */ lfs f0, 0x578(r28) -/* 80D5C278 D0 1D 09 B0 */ stfs f0, 0x9b0(r29) -/* 80D5C27C C0 1C 05 7C */ lfs f0, 0x57c(r28) -/* 80D5C280 D0 1D 09 B4 */ stfs f0, 0x9b4(r29) -/* 80D5C284 80 1D 08 90 */ lwz r0, 0x890(r29) -/* 80D5C288 60 00 04 00 */ ori r0, r0, 0x400 -/* 80D5C28C 90 1D 08 90 */ stw r0, 0x890(r29) -lbl_80D5C290: -/* 80D5C290 38 7D 04 D0 */ addi r3, r29, 0x4d0 -/* 80D5C294 38 9C 05 74 */ addi r4, r28, 0x574 -/* 80D5C298 4B 5E B1 05 */ bl PSVECSquareDistance -/* 80D5C29C C0 1F 00 20 */ lfs f0, 0x20(r31) -/* 80D5C2A0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80D5C2A4 40 81 00 58 */ ble lbl_80D5C2FC -/* 80D5C2A8 FC 00 08 34 */ frsqrte f0, f1 -/* 80D5C2AC C8 9F 00 28 */ lfd f4, 0x28(r31) -/* 80D5C2B0 FC 44 00 32 */ fmul f2, f4, f0 -/* 80D5C2B4 C8 7F 00 30 */ lfd f3, 0x30(r31) -/* 80D5C2B8 FC 00 00 32 */ fmul f0, f0, f0 -/* 80D5C2BC FC 01 00 32 */ fmul f0, f1, f0 -/* 80D5C2C0 FC 03 00 28 */ fsub f0, f3, f0 -/* 80D5C2C4 FC 02 00 32 */ fmul f0, f2, f0 -/* 80D5C2C8 FC 44 00 32 */ fmul f2, f4, f0 -/* 80D5C2CC FC 00 00 32 */ fmul f0, f0, f0 -/* 80D5C2D0 FC 01 00 32 */ fmul f0, f1, f0 -/* 80D5C2D4 FC 03 00 28 */ fsub f0, f3, f0 -/* 80D5C2D8 FC 02 00 32 */ fmul f0, f2, f0 -/* 80D5C2DC FC 44 00 32 */ fmul f2, f4, f0 -/* 80D5C2E0 FC 00 00 32 */ fmul f0, f0, f0 -/* 80D5C2E4 FC 01 00 32 */ fmul f0, f1, f0 -/* 80D5C2E8 FC 03 00 28 */ fsub f0, f3, f0 -/* 80D5C2EC FC 02 00 32 */ fmul f0, f2, f0 -/* 80D5C2F0 FC 21 00 32 */ fmul f1, f1, f0 -/* 80D5C2F4 FC 20 08 18 */ frsp f1, f1 -/* 80D5C2F8 48 00 00 88 */ b lbl_80D5C380 -lbl_80D5C2FC: -/* 80D5C2FC C8 1F 00 38 */ lfd f0, 0x38(r31) -/* 80D5C300 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80D5C304 40 80 00 10 */ bge lbl_80D5C314 -/* 80D5C308 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 80D5C30C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -/* 80D5C310 48 00 00 70 */ b lbl_80D5C380 -lbl_80D5C314: -/* 80D5C314 D0 21 00 08 */ stfs f1, 8(r1) -/* 80D5C318 80 81 00 08 */ lwz r4, 8(r1) -/* 80D5C31C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8 -/* 80D5C320 3C 00 7F 80 */ lis r0, 0x7f80 -/* 80D5C324 7C 03 00 00 */ cmpw r3, r0 -/* 80D5C328 41 82 00 14 */ beq lbl_80D5C33C -/* 80D5C32C 40 80 00 40 */ bge lbl_80D5C36C -/* 80D5C330 2C 03 00 00 */ cmpwi r3, 0 -/* 80D5C334 41 82 00 20 */ beq lbl_80D5C354 -/* 80D5C338 48 00 00 34 */ b lbl_80D5C36C -lbl_80D5C33C: -/* 80D5C33C 54 80 02 7F */ clrlwi. r0, r4, 9 -/* 80D5C340 41 82 00 0C */ beq lbl_80D5C34C -/* 80D5C344 38 00 00 01 */ li r0, 1 -/* 80D5C348 48 00 00 28 */ b lbl_80D5C370 -lbl_80D5C34C: -/* 80D5C34C 38 00 00 02 */ li r0, 2 -/* 80D5C350 48 00 00 20 */ b lbl_80D5C370 -lbl_80D5C354: -/* 80D5C354 54 80 02 7F */ clrlwi. r0, r4, 9 -/* 80D5C358 41 82 00 0C */ beq lbl_80D5C364 -/* 80D5C35C 38 00 00 05 */ li r0, 5 -/* 80D5C360 48 00 00 10 */ b lbl_80D5C370 -lbl_80D5C364: -/* 80D5C364 38 00 00 03 */ li r0, 3 -/* 80D5C368 48 00 00 08 */ b lbl_80D5C370 -lbl_80D5C36C: -/* 80D5C36C 38 00 00 04 */ li r0, 4 -lbl_80D5C370: -/* 80D5C370 2C 00 00 01 */ cmpwi r0, 1 -/* 80D5C374 40 82 00 0C */ bne lbl_80D5C380 -/* 80D5C378 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 80D5C37C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -lbl_80D5C380: -/* 80D5C380 C0 1F 00 40 */ lfs f0, 0x40(r31) -/* 80D5C384 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80D5C388 40 80 01 A4 */ bge lbl_80D5C52C -/* 80D5C38C 88 1C 05 6D */ lbz r0, 0x56d(r28) -/* 80D5C390 28 00 00 01 */ cmplwi r0, 1 -/* 80D5C394 40 82 00 10 */ bne lbl_80D5C3A4 -/* 80D5C398 80 1D 08 90 */ lwz r0, 0x890(r29) -/* 80D5C39C 64 00 80 00 */ oris r0, r0, 0x8000 -/* 80D5C3A0 90 1D 08 90 */ stw r0, 0x890(r29) -lbl_80D5C3A4: -/* 80D5C3A4 C0 5E 04 D8 */ lfs f2, 0x4d8(r30) -/* 80D5C3A8 C0 1E 04 D0 */ lfs f0, 0x4d0(r30) -/* 80D5C3AC D0 01 00 0C */ stfs f0, 0xc(r1) -/* 80D5C3B0 C0 3F 00 20 */ lfs f1, 0x20(r31) -/* 80D5C3B4 D0 21 00 10 */ stfs f1, 0x10(r1) -/* 80D5C3B8 D0 41 00 14 */ stfs f2, 0x14(r1) -/* 80D5C3BC C0 5C 04 D8 */ lfs f2, 0x4d8(r28) -/* 80D5C3C0 C0 1C 04 D0 */ lfs f0, 0x4d0(r28) -/* 80D5C3C4 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 80D5C3C8 D0 21 00 1C */ stfs f1, 0x1c(r1) -/* 80D5C3CC D0 41 00 20 */ stfs f2, 0x20(r1) -/* 80D5C3D0 38 61 00 0C */ addi r3, r1, 0xc -/* 80D5C3D4 38 81 00 18 */ addi r4, r1, 0x18 -/* 80D5C3D8 4B 5E AF C5 */ bl PSVECSquareDistance -/* 80D5C3DC FF E0 08 90 */ fmr f31, f1 -/* 80D5C3E0 C0 1C 04 EC */ lfs f0, 0x4ec(r28) -/* 80D5C3E4 EC 00 00 32 */ fmuls f0, f0, f0 -/* 80D5C3E8 FC 1F 00 40 */ fcmpo cr0, f31, f0 -/* 80D5C3EC 4C 40 13 82 */ cror 2, 0, 2 -/* 80D5C3F0 40 82 00 2C */ bne lbl_80D5C41C -/* 80D5C3F4 C0 5E 04 D4 */ lfs f2, 0x4d4(r30) -/* 80D5C3F8 C0 3C 04 D4 */ lfs f1, 0x4d4(r28) -/* 80D5C3FC FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 80D5C400 4C 41 13 82 */ cror 2, 1, 2 -/* 80D5C404 40 82 00 18 */ bne lbl_80D5C41C -/* 80D5C408 C0 1C 04 F0 */ lfs f0, 0x4f0(r28) -/* 80D5C40C EC 01 00 2A */ fadds f0, f1, f0 -/* 80D5C410 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 80D5C414 4C 40 13 82 */ cror 2, 0, 2 -/* 80D5C418 41 82 00 24 */ beq lbl_80D5C43C -lbl_80D5C41C: -/* 80D5C41C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5C420 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5C424 88 9C 05 69 */ lbz r4, 0x569(r28) -/* 80D5C428 88 1C 04 BA */ lbz r0, 0x4ba(r28) -/* 80D5C42C 7C 05 07 74 */ extsb r5, r0 -/* 80D5C430 4B 2D 8F 31 */ bl isSwitch__10dSv_info_cCFii -/* 80D5C434 2C 03 00 00 */ cmpwi r3, 0 -/* 80D5C438 41 82 00 A0 */ beq lbl_80D5C4D8 -lbl_80D5C43C: -/* 80D5C43C 80 9D 08 90 */ lwz r4, 0x890(r29) -/* 80D5C440 3C 60 78 00 */ lis r3, 0x7800 /* 0x77FFFBFF@ha */ -/* 80D5C444 38 03 FB FF */ addi r0, r3, 0xFBFF /* 0x77FFFBFF@l */ -/* 80D5C448 7C 80 00 38 */ and r0, r4, r0 -/* 80D5C44C 90 1D 08 90 */ stw r0, 0x890(r29) -/* 80D5C450 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5C454 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5C458 88 9C 05 69 */ lbz r4, 0x569(r28) -/* 80D5C45C 88 1C 04 BA */ lbz r0, 0x4ba(r28) -/* 80D5C460 7C 05 07 74 */ extsb r5, r0 -/* 80D5C464 4B 2D 8D 9D */ bl onSwitch__10dSv_info_cFii -/* 80D5C468 38 00 00 01 */ li r0, 1 -/* 80D5C46C 98 1C 05 6C */ stb r0, 0x56c(r28) -/* 80D5C470 A8 1C 04 E8 */ lha r0, 0x4e8(r28) -/* 80D5C474 2C 00 00 00 */ cmpwi r0, 0 -/* 80D5C478 40 82 00 10 */ bne lbl_80D5C488 -/* 80D5C47C 7F 83 E3 78 */ mr r3, r28 -/* 80D5C480 4B 2B D7 FD */ bl fopAcM_delete__FP10fopAc_ac_c -/* 80D5C484 48 00 00 A8 */ b lbl_80D5C52C -lbl_80D5C488: -/* 80D5C488 C0 1D 05 50 */ lfs f0, 0x550(r29) -/* 80D5C48C D0 1C 05 50 */ stfs f0, 0x550(r28) -/* 80D5C490 C0 1D 05 54 */ lfs f0, 0x554(r29) -/* 80D5C494 D0 1C 05 54 */ stfs f0, 0x554(r28) -/* 80D5C498 C0 1D 05 58 */ lfs f0, 0x558(r29) -/* 80D5C49C D0 1C 05 58 */ stfs f0, 0x558(r28) -/* 80D5C4A0 C0 1C 05 50 */ lfs f0, 0x550(r28) -/* 80D5C4A4 D0 1C 05 38 */ stfs f0, 0x538(r28) -/* 80D5C4A8 C0 1C 05 54 */ lfs f0, 0x554(r28) -/* 80D5C4AC D0 1C 05 3C */ stfs f0, 0x53c(r28) -/* 80D5C4B0 C0 1C 05 58 */ lfs f0, 0x558(r28) -/* 80D5C4B4 D0 1C 05 40 */ stfs f0, 0x540(r28) -/* 80D5C4B8 7F 83 E3 78 */ mr r3, r28 -/* 80D5C4BC 38 80 00 00 */ li r4, 0 -/* 80D5C4C0 38 A0 00 00 */ li r5, 0 -/* 80D5C4C4 4B 2B EC D9 */ bl fopAcM_orderSpeakEvent__FP10fopAc_ac_cUsUs -/* 80D5C4C8 A0 1C 00 FA */ lhz r0, 0xfa(r28) -/* 80D5C4CC 60 00 00 01 */ ori r0, r0, 1 -/* 80D5C4D0 B0 1C 00 FA */ sth r0, 0xfa(r28) -/* 80D5C4D4 48 00 00 58 */ b lbl_80D5C52C -lbl_80D5C4D8: -/* 80D5C4D8 C0 3C 05 70 */ lfs f1, 0x570(r28) -/* 80D5C4DC C0 1F 00 20 */ lfs f0, 0x20(r31) -/* 80D5C4E0 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80D5C4E4 40 81 00 48 */ ble lbl_80D5C52C -/* 80D5C4E8 FC 1F 08 40 */ fcmpo cr0, f31, f1 -/* 80D5C4EC 40 80 00 40 */ bge lbl_80D5C52C -/* 80D5C4F0 C0 5E 04 D4 */ lfs f2, 0x4d4(r30) -/* 80D5C4F4 C0 3C 04 D4 */ lfs f1, 0x4d4(r28) -/* 80D5C4F8 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 80D5C4FC 4C 41 13 82 */ cror 2, 1, 2 -/* 80D5C500 40 82 00 2C */ bne lbl_80D5C52C -/* 80D5C504 C0 1C 04 F0 */ lfs f0, 0x4f0(r28) -/* 80D5C508 EC 01 00 2A */ fadds f0, f1, f0 -/* 80D5C50C FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 80D5C510 4C 40 13 82 */ cror 2, 0, 2 -/* 80D5C514 40 82 00 18 */ bne lbl_80D5C52C -/* 80D5C518 38 00 00 02 */ li r0, 2 -/* 80D5C51C 90 1C 05 5C */ stw r0, 0x55c(r28) -/* 80D5C520 A0 1C 00 FA */ lhz r0, 0xfa(r28) -/* 80D5C524 60 00 00 01 */ ori r0, r0, 1 -/* 80D5C528 B0 1C 00 FA */ sth r0, 0xfa(r28) -lbl_80D5C52C: -/* 80D5C52C 38 60 00 01 */ li r3, 1 -lbl_80D5C530: -/* 80D5C530 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 /* qr0 */ -/* 80D5C534 CB E1 00 40 */ lfd f31, 0x40(r1) -/* 80D5C538 39 61 00 40 */ addi r11, r1, 0x40 -/* 80D5C53C 4B 60 5C E9 */ bl _restgpr_28 -/* 80D5C540 80 01 00 54 */ lwz r0, 0x54(r1) -/* 80D5C544 7C 08 03 A6 */ mtlr r0 -/* 80D5C548 38 21 00 50 */ addi r1, r1, 0x50 -/* 80D5C54C 4E 80 00 20 */ blr From 76072af17f3ba9b79a8c26d7f8fc84e7327cc3d7 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Wed, 5 Jul 2023 23:04:44 -0700 Subject: [PATCH 30/35] fix build --- rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp b/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp index f146eeba82..5f67b41eaa 100644 --- a/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp +++ b/rel/d/a/tag/d_a_tag_mwait/d_a_tag_mwait.cpp @@ -106,8 +106,9 @@ int daTagMwait_c::execute() { } else { mInitMsgFlow = false; - if (daPy_py_c::i_checkNowWolf() && midna_p != NULL && i_fopAcM_isSwitch(this, mOnSw)) { - if (mWarpToPos) { + if (daPy_py_c::i_checkNowWolf() && midna_p != NULL && i_fopAcM_isSwitch(this, mOnSw)) + { + if (mWarpToPos == 1) { midna_p->onTagWaitPosWarp(&mWaitPosition); } else { midna_p->onTagWaitPos(&mWaitPosition); From 5d470c18ecbef61f02cc1e4b8850e834f76708ae Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Thu, 6 Jul 2023 16:30:11 -0700 Subject: [PATCH 31/35] d_a_kytag10 almost done --- include/JSystem/JGeometry.h | 21 ++ include/JSystem/JParticle/JPAParticle.h | 7 + .../rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h | 18 +- rel/d/a/kytag/d_a_kytag10/d_a_kytag10.cpp | 322 ++++++++++++------ rel/d/a/tag/d_a_tag_mstop/d_a_tag_mstop.cpp | 148 ++++---- 5 files changed, 336 insertions(+), 180 deletions(-) diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h index e01e72614a..dd984bcc85 100644 --- a/include/JSystem/JGeometry.h +++ b/include/JSystem/JGeometry.h @@ -31,12 +31,33 @@ struct TVec3 { } }; +inline void setTVec3f(const f32* vec_a, f32* vec_b) { + const register f32* v_a = vec_a; + register f32* v_b = vec_b; + + register f32 a_x; + register f32 b_x; + + asm { + psq_l a_x, 0(v_a), 0, 0 /* qr0 */ + lfs b_x, 8(v_a) + psq_st a_x, 0(v_b), 0, 0 /* qr0 */ + stfs b_x, 8(v_b) + }; +} + template <> struct TVec3 { f32 x; f32 y; f32 z; + /* TVec3(const Vec& i_vec) { + setTVec3f(&i_vec.x, &x); + } */ + + /* TVec3() {} */ + operator Vec*() { return (Vec*)&x; } operator const Vec*() const { return (Vec*)&x; } diff --git a/include/JSystem/JParticle/JPAParticle.h b/include/JSystem/JParticle/JPAParticle.h index 3448720ae0..ed4fe9142a 100644 --- a/include/JSystem/JParticle/JPAParticle.h +++ b/include/JSystem/JParticle/JPAParticle.h @@ -250,6 +250,13 @@ public: void setGlobalRTMatrix(const Mtx m) { JPASetRMtxTVecfromMtx(m, mGlobalRot, &mGlobalTrs); } void setGlobalTranslation(f32 x, f32 y, f32 z) { mGlobalTrs.set(x, y, z); } void setGlobalAlpha(u8 alpha) { mGlobalPrmClr.a = alpha; } + void setVolumeSize(u16 size) { mVolumeSize = size; } + void setLifeTime(s16 lifetime) { mLifeTime = lifetime; } + + void setGlobalParticleScale(const JGeometry::TVec3& scale) { + mGlobalPScl.set(scale.x, scale.y); + } + // void setGlobalScale(const JGeometry::TVec3& scale) { // mGlobalScl = scale; // mGlobalPScl = scale; diff --git a/include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h b/include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h index 2fde93b7be..8ac6b3cf82 100644 --- a/include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h +++ b/include/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h @@ -1,6 +1,22 @@ #ifndef D_A_KYTAG10_H #define D_A_KYTAG10_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +struct dPath; + +class kytag10_class : public fopAc_ac_c { +public: + /* 0x568 */ dPath* mpPath; + /* 0x56C */ JPABaseEmitter* mpEmitter1; + /* 0x570 */ JPABaseEmitter* mpEmitter2; + /* 0x574 */ cXyz mEmitterPtclScale; + /* 0x580 */ s16 mEmitterVolSize; + /* 0x582 */ s16 mEmitterLifeTime; + /* 0x584 */ u8 field_0x584; + /* 0x588 */ cXyz field_0x588; + /* 0x594 */ f32 field_0x594; + /* 0x598 */ int mPathPoint; +}; #endif /* D_A_KYTAG10_H */ diff --git a/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.cpp b/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.cpp index dab2be8bac..a5a229cbf7 100644 --- a/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.cpp +++ b/rel/d/a/kytag/d_a_kytag10/d_a_kytag10.cpp @@ -1,43 +1,17 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_kytag10 -// +/** + * d_a_kytag10.cpp + * Sparks Particle Emitter on a Path + */ #include "rel/d/a/kytag/d_a_kytag10/d_a_kytag10.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/JMath/JMath.h" +#include "SSystem/SComponent/c_math.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_path.h" +#include "d/d_procname.h" +#include "d/kankyo/d_kankyo_rain.h" #include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct kytag10_class {}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct dPath {}; - -struct dPa_levelEcallBack {}; - -struct dKy_tevstr_c {}; - -struct csXyz {}; - -struct _GXColor {}; - -struct cXyz {}; - -struct dPa_control_c { - /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, - u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, - cXyz const*, f32); -}; - -struct JPABaseEmitter { - /* 8027EC60 */ void deleteAllParticle(); -}; // // Forward References: @@ -53,7 +27,6 @@ extern "C" static void daKytag10_Execute__FP13kytag10_class(); extern "C" static bool daKytag10_IsDelete__FP13kytag10_class(); extern "C" static void daKytag10_Delete__FP13kytag10_class(); extern "C" static void daKytag10_Create__FP10fopAc_ac_c(); -extern "C" extern void* g_profile_KYTAG10[12]; // // External References: @@ -66,16 +39,10 @@ extern "C" void dPath_GetRoomPath__Fii(); extern "C" void dKyr_get_vectle_calc__FP4cXyzP4cXyzP4cXyz(); extern "C" void cM_atan2s__Fff(); extern "C" void deleteAllParticle__14JPABaseEmitterFv(); -extern "C" void PSVECSquareDistance(); extern "C" void _savegpr_27(); extern "C" void _savegpr_29(); extern "C" void _restgpr_27(); 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" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_env_light[4880]; -extern "C" extern u32 __float_nan; // // Declarations: @@ -93,49 +60,74 @@ COMPILER_STRIP_GATE(0x80529400, &lit_3788); /* 80528BF8-80528D0C 000078 0114+00 1/1 0/0 0/0 .text get_rail_ratio_pos__FP5dPathifPsPs */ +// matches with literals +#ifdef NONMATCHING +static cXyz get_rail_ratio_pos(dPath* i_path, int i_pointIdx, f32 param_2, s16* param_3, + s16* param_4) { + cXyz point_a; + cXyz point_b; + cXyz ret; + cXyz calc_vec; + + point_a.x = i_path->m_points[i_pointIdx].m_position.x; + point_a.y = i_path->m_points[i_pointIdx].m_position.y; + point_a.z = i_path->m_points[i_pointIdx].m_position.z; + + point_b.x = i_path->m_points[i_pointIdx + 1].m_position.x; + point_b.y = i_path->m_points[i_pointIdx + 1].m_position.y; + point_b.z = i_path->m_points[i_pointIdx + 1].m_position.z; + + ret.x = point_a.x + param_2 * (point_b.x - point_a.x); + ret.y = point_a.y + param_2 * (point_b.y - point_a.y); + ret.z = point_a.z + param_2 * (point_b.z - point_a.z); + + dKyr_get_vectle_calc(&point_a, &point_b, &calc_vec); + + *param_3 = + cM_atan2s(JMAFastSqrt(calc_vec.x * calc_vec.x + calc_vec.z * calc_vec.z), calc_vec.y); + *param_4 = cM_atan2s(calc_vec.x, calc_vec.z); + + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void get_rail_ratio_pos(dPath* param_0, int param_1, f32 param_2, s16* param_3, +static asm cXyz get_rail_ratio_pos(dPath* param_0, int param_1, f32 param_2, s16* param_3, s16* param_4) { nofralloc #include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_rail_ratio_pos__FP5dPathifPsPs.s" } #pragma pop +#endif /* 80528D0C-80528D54 00018C 0048+00 1/1 0/0 0/0 .text set_path_info__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void set_path_info(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/set_path_info__FP10fopAc_ac_c.s" +static dPath* set_path_info(fopAc_ac_c* i_actor) { + dPath* path_p = NULL; + u8 path_id = fopAcM_GetParam(i_actor) >> 0x10; + + if (path_id != 0xFF) { + path_p = dPath_GetRoomPath(path_id, fopAcM_GetRoomNo(i_actor)); + } + + return path_p; } -#pragma pop /* 80528D54-80528D64 0001D4 0010+00 1/1 0/0 0/0 .text * get_Extent_pos_start_get__FP13kytag10_classP5dPathP4cXyzfPi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void get_Extent_pos_start_get(kytag10_class* param_0, dPath* param_1, cXyz* param_2, - f32 param_3, int* param_4) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_start_get__FP13kytag10_classP5dPathP4cXyzfPi.s" +static dPath* get_Extent_pos_start_get(kytag10_class* i_this, dPath* i_path, cXyz*, f32, + int* param_4) { + *param_4 = 0; + return i_path; } -#pragma pop /* 80528D64-80528D78 0001E4 0014+00 1/1 0/0 0/0 .text * get_Extent_pos_end_get__FP13kytag10_classP5dPathP4cXyzfPi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void get_Extent_pos_end_get(kytag10_class* param_0, dPath* param_1, cXyz* param_2, - f32 param_3, int* param_4) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_end_get__FP13kytag10_classP5dPathP4cXyzfPi.s" +static dPath* get_Extent_pos_end_get(kytag10_class* param_0, dPath* i_path, cXyz*, f32, + int* param_4) { + *param_4 = i_path->m_num - 1; + return i_path; } -#pragma pop /* ############################################################################################## */ /* 80529404-80529408 000004 0004+00 0/1 0/0 0/0 .rodata @3950 */ @@ -218,6 +210,72 @@ COMPILER_STRIP_GATE(0x80529438, &lit_3959); #pragma pop /* 80528D78-80529148 0001F8 03D0+00 1/1 0/0 0/0 .text sparks_move__FP13kytag10_class */ +// TVec3 constructors need to be setup +#ifdef NONMATCHING +static void sparks_move(kytag10_class* i_this) { + camera_class* camera_p = dComIfGp_getCamera(0); + + cXyz ratio_pos_1; + cXyz ratio_pos_2; + cXyz ratio_pos_5; + cXyz ratio_pos_3; + cXyz ratio_pos_4; + + dPath* path_p = i_this->mpPath; + + if (path_p != NULL) { + int start_point_idx; + dPath* path_start = get_Extent_pos_start_get(i_this, path_p, &camera_p->mLookat.mEye, + 1000.0f, &start_point_idx); + + int end_point_idx; + dPath* path_end = get_Extent_pos_end_get(i_this, path_p, &camera_p->mLookat.mEye, 1000.0f, + &end_point_idx); + + s16 spD6; + s16 spD8; + ratio_pos_1 = get_rail_ratio_pos(path_start, 0, 0.0f, &spD6, &spD8); + ratio_pos_2 = get_rail_ratio_pos(path_end, end_point_idx - 1, 1.0f, &spD6, &spD8); + ratio_pos_3 = get_rail_ratio_pos(path_start, i_this->mPathPoint, 0.0f, &spD6, &spD8); + ratio_pos_4 = get_rail_ratio_pos(path_start, i_this->mPathPoint, 1.0f, &spD6, &spD8); + + f32 temp_f = 250.0f / ratio_pos_3.abs(ratio_pos_4); + + ratio_pos_5 = + get_rail_ratio_pos(path_start, i_this->mPathPoint, i_this->field_0x594, &spD6, &spD8); + i_this->field_0x588 = ratio_pos_5; + + i_this->mpEmitter1->setGlobalTranslation(ratio_pos_5.x, ratio_pos_5.y, ratio_pos_5.z); + i_this->mpEmitter2->setGlobalTranslation(ratio_pos_5.x, ratio_pos_5.y, ratio_pos_5.z); + + i_this->mpEmitter1->setVolumeSize(i_this->mEmitterVolSize); + i_this->mpEmitter1->setLifeTime(i_this->mEmitterLifeTime); + + i_this->mpEmitter2->setVolumeSize(i_this->mEmitterVolSize); + i_this->mpEmitter2->setLifeTime(i_this->mEmitterLifeTime); + + i_this->mpEmitter1->setGlobalParticleScale(i_this->mEmitterPtclScale); + i_this->mpEmitter2->setGlobalParticleScale(i_this->mEmitterPtclScale); + + if (i_this->field_0x584 != 0xFF) { + f32 rate = i_this->field_0x584 / 100.0f; + i_this->mpEmitter1->setRate(rate); + i_this->mpEmitter2->setRate(rate); + } + + if (i_this->field_0x594 <= 1.0f - (250.0f * temp_f)) { + i_this->field_0x594 += temp_f; + return; + } else if (i_this->mPathPoint >= end_point_idx - 1) { + i_this->mPathPoint = start_point_idx; + } else { + i_this->mPathPoint++; + } + + i_this->field_0x594 = 0.0f; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -226,38 +284,48 @@ static asm void sparks_move(kytag10_class* param_0) { #include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/sparks_move__FP13kytag10_class.s" } #pragma pop +#endif /* 80529148-80529150 0005C8 0008+00 1/0 0/0 0/0 .text daKytag10_Draw__FP13kytag10_class */ -static bool daKytag10_Draw(kytag10_class* param_0) { - return true; +static int daKytag10_Draw(kytag10_class* i_this) { + return 1; } /* 80529150-80529174 0005D0 0024+00 1/0 0/0 0/0 .text daKytag10_Execute__FP13kytag10_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag10_Execute(kytag10_class* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Execute__FP13kytag10_class.s" +static int daKytag10_Execute(kytag10_class* i_this) { + sparks_move(i_this); + return 1; } -#pragma pop /* 80529174-8052917C 0005F4 0008+00 1/0 0/0 0/0 .text daKytag10_IsDelete__FP13kytag10_class */ -static bool daKytag10_IsDelete(kytag10_class* param_0) { - return true; +static int daKytag10_IsDelete(kytag10_class* i_this) { + return 1; } /* 8052917C-80529248 0005FC 00CC+00 1/0 0/0 0/0 .text daKytag10_Delete__FP13kytag10_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daKytag10_Delete(kytag10_class* param_0) { - nofralloc -#include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Delete__FP13kytag10_class.s" +static int daKytag10_Delete(kytag10_class* i_this) { + g_env_light.field_0xf21 = 0; + + if (i_this->mpEmitter1 != NULL) { + i_this->mpEmitter1->deleteAllParticle(); + i_this->mpEmitter1->becomeInvalidEmitter(); + i_this->mpEmitter1->quitImmortalEmitter(); + i_this->mpEmitter1->setEmitterCallBackPtr(NULL); + i_this->mpEmitter1 = NULL; + } + + if (i_this->mpEmitter2 != NULL) { + i_this->mpEmitter2->deleteAllParticle(); + i_this->mpEmitter2->becomeInvalidEmitter(); + i_this->mpEmitter2->quitImmortalEmitter(); + i_this->mpEmitter2->setEmitterCallBackPtr(NULL); + i_this->mpEmitter2 = NULL; + } + + return 1; } -#pragma pop /* ############################################################################################## */ /* 80529440-80529444 000040 0004+00 0/0 0/0 0/0 .rodata @3971 */ @@ -275,34 +343,82 @@ COMPILER_STRIP_GATE(0x80529444, &lit_4058); #pragma pop /* 80529248-805293F8 0006C8 01B0+00 1/0 0/0 0/0 .text daKytag10_Create__FP10fopAc_ac_c */ +// matches with literals +#ifdef NONMATCHING +static int daKytag10_Create(fopAc_ac_c* i_this) { + if (!fopAcM_CheckCondition(i_this, 8)) { + new (i_this) kytag10_class(); + fopAcM_OnCondition(i_this, 8); + } + + u8 prm0 = fopAcM_GetParam(i_this); + if (prm0 == 0xFF) { + prm0 = 10; + } + + ((kytag10_class*)i_this)->mEmitterPtclScale.z = prm0 * 0.1f; + ((kytag10_class*)i_this)->mEmitterPtclScale.y = prm0 * 0.1f; + ((kytag10_class*)i_this)->mEmitterPtclScale.x = prm0 * 0.1f; + + s16 prm1 = (fopAcM_GetParam(i_this) >> 8) & 0xFF; + if (prm1 == 0xFF) { + prm1 = 0; + } + + ((kytag10_class*)i_this)->mEmitterVolSize = prm1 * 10; + + s16 prm3 = (fopAcM_GetParam(i_this) >> 0x18) & 0xFF; + if (prm3 == 0xFF) { + prm3 = 15; + } + + ((kytag10_class*)i_this)->mEmitterLifeTime = prm3 * 10; + ((kytag10_class*)i_this)->field_0x584 = i_this->current.angle.x & 0xFF; + ((kytag10_class*)i_this)->mpEmitter1 = NULL; + ((kytag10_class*)i_this)->mpEmitter2 = NULL; + ((kytag10_class*)i_this)->field_0x594 = 0.0f; + ((kytag10_class*)i_this)->mPathPoint = 0; + ((kytag10_class*)i_this)->mpPath = set_path_info(i_this); + ((kytag10_class*)i_this)->mpEmitter1 = + dComIfGp_particle_set(0x852B, &i_this->current.pos, NULL, NULL); + ((kytag10_class*)i_this)->mpEmitter2 = + dComIfGp_particle_set(0x852C, &i_this->current.pos, NULL, NULL); + + return cPhs_COMPLEATE_e; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void daKytag10_Create(fopAc_ac_c* param_0) { +static asm int daKytag10_Create(fopAc_ac_c* param_0) { nofralloc #include "asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Create__FP10fopAc_ac_c.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80529448-80529468 -00001 0020+00 1/0 0/0 0/0 .data l_daKytag10_Method */ -SECTION_DATA static void* l_daKytag10_Method[8] = { - (void*)daKytag10_Create__FP10fopAc_ac_c, - (void*)daKytag10_Delete__FP13kytag10_class, - (void*)daKytag10_Execute__FP13kytag10_class, - (void*)daKytag10_IsDelete__FP13kytag10_class, - (void*)daKytag10_Draw__FP13kytag10_class, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daKytag10_Method = { + (process_method_func)daKytag10_Create, (process_method_func)daKytag10_Delete, + (process_method_func)daKytag10_Execute, (process_method_func)daKytag10_IsDelete, + (process_method_func)daKytag10_Draw, }; /* 80529468-80529498 -00001 0030+00 0/0 0/0 1/0 .data g_profile_KYTAG10 */ -SECTION_DATA extern void* g_profile_KYTAG10[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02B40000, (void*)&g_fpcLf_Method, - (void*)0x0000059C, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x00680000, (void*)&l_daKytag10_Method, - (void*)0x00044000, (void*)NULL, +extern actor_process_profile_definition g_profile_KYTAG10 = { + -3, + 7, + -3, + PROC_KYTAG10, + &g_fpcLf_Method.mBase, + sizeof(kytag10_class), + 0, + 0, + &g_fopAc_Method.base, + 104, + &l_daKytag10_Method, + 0x44000, + 0, + 0, }; diff --git a/rel/d/a/tag/d_a_tag_mstop/d_a_tag_mstop.cpp b/rel/d/a/tag/d_a_tag_mstop/d_a_tag_mstop.cpp index 8f49916715..b38b7b3783 100644 --- a/rel/d/a/tag/d_a_tag_mstop/d_a_tag_mstop.cpp +++ b/rel/d/a/tag/d_a_tag_mstop/d_a_tag_mstop.cpp @@ -200,91 +200,87 @@ COMPILER_STRIP_GATE(0x805A6980, &lit_4059); #pragma pop /* 805A63F8-805A693C 000338 0544+00 1/1 0/0 0/0 .text execute__12daTagMstop_cFv */ +// one small block with issues #ifdef NONMATCHING -// inline function nightmare int daTagMstop_c::execute() { if (field_0x56c) { fopAcM_seStartCurrentLevel(this, Z2SE_OBJ_DARK_GATE, 0); } - daMidna_c* midna = daPy_py_c::getMidnaActor(); + daMidna_c* midna_p = daPy_py_c::getMidnaActor(); - if (!midna) { + if (midna_p == NULL) { return 1; - } else { - daAlink_c* link = (daAlink_c*)daPy_getLinkPlayerActorClass(); - - if (checkNoAttention()) { - mAttentionInfo.mPosition = midna->mAttentionInfo.mPosition; - shape_angle.y = midna->shape_angle.y; - mEyePos = midna->mAttentionInfo.mPosition; - - } else { - shape_angle.y = fopAcM_searchPlayerAngleY(this); - } - - if (field_0x56e == 4) { - if (field_0x5c8.abs2(link->current.pos) < 2500.0f) { - i_dComIfGp_event_reset(); - link->i_cancelOriginalDemo(); - field_0x56e = 0; - } - } else if (field_0x56e == 3) { - if (link->checkHorseRide()) { - link->setPlayerPosAndAngle(&field_0x5c8, link->shape_angle.y, 0); - i_dComIfGp_event_reset(); - field_0x56e = 0; - } else { - field_0x56e = 4; - link->i_changeOriginalDemo(); - - field_0x56a == 0 ? link->i_changeDemoMode(3, 0, 0, 0) : - link->i_changeDemoMode(2, 0, 0, 0); - link->i_changeDemoPos0(&field_0x5c8); - } - } else if (mEvtInfo.checkCommandTalk()) { - if (field_0x56e == 2) { - int shadowmode = midna->checkShadowModelDraw(); - if (midna->checkShadowReturnEnd()) { - i_dComIfGp_getEvent().reset(this); - fopAcM_orderPotentialEvent(this, 0x400, 0x14f, 1); - field_0x56e = 3; - } else if (shadowmode == 0) { - return 1; - } - } - } else if (mSwitch != 0xFF || i_fopAcM_isSwitch(this, mSwitch) && field_0x572 == -1 || - dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x572])) - { - fopAcM_delete(this); - - } else if (field_0x568 == 0xFF || - i_fopAcM_isSwitch(this, field_0x568) && field_0x570 == -1 || - dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x572]) && - current.pos.y <= link->current.pos.y && link->current.pos.y <= field_0x5c4 && - fopAcM_searchPlayerDistanceXZ2(this) < field_0x5c0) - { - eventOrder(); - - } else { - if (midna->checkShadowModeTalkWait()) { - if (field_0x56e == 0) { - mMsgFlow.init(this, shape_angle.z, 0, 0); - mDoAud_seStart(16, 0, 0, 0); - field_0x56e = 1; - } else { - if (mMsgFlow.doFlow(this, 0, 0)) { - field_0x56e = 2; - mDoAud_seStart(17, 0, 0, 0); - - if (midna->checkShadowModelDraw()) { - midna->setShadowReturn(); - } - } - } - } - } } + + daPy_py_c* player_p = daPy_getLinkPlayerActorClass(); + + if (checkNoAttention()) { + mAttentionInfo.mPosition = midna_p->mAttentionInfo.mPosition; + shape_angle.y = midna_p->shape_angle.y; + mEyePos = mAttentionInfo.mPosition; + } else { + shape_angle.y = fopAcM_searchPlayerAngleY(this); + } + + if (field_0x56e == 4) { + if (field_0x5c8.abs2(player_p->current.pos) < 2500.0f) { + i_dComIfGp_event_reset(); + player_p->i_cancelOriginalDemo(); + field_0x56e = 0; + } + } else if (field_0x56e == 3) { + if (player_p->checkHorseRide()) { + player_p->setPlayerPosAndAngle(&field_0x5c8, player_p->shape_angle.y, 0); + i_dComIfGp_event_reset(); + field_0x56e = 0; + } else { + field_0x56e = 4; + player_p->i_changeOriginalDemo(); + field_0x56a == 0 ? player_p->i_changeDemoMode(3, 0, 0, 0) : + player_p->i_changeDemoMode(2, 0, 0, 0); + + player_p->i_changeDemoPos0(&field_0x5c8); + } + } else if (mEvtInfo.checkCommandTalk()) { + if (field_0x56e == 2) { + if (!midna_p->checkShadowModelDraw() || midna_p->checkShadowReturnEnd()) { + i_dComIfGp_getEvent().reset(this); + fopAcM_orderPotentialEvent(this, 0x400, 0x14f, 1); + field_0x56e = 3; + } + } else if (!midna_p->checkShadowModeTalkWait()) { + if (field_0x56e == 0) { + mMsgFlow.init(this, (u16)shape_angle.z, 0, 0); + mDoAud_seStart(Z2SE_NAVI_TALK_START, 0, 0, 0); + field_0x56e = 1; + } else if (mMsgFlow.doFlow(this, 0, 0)) { + field_0x56e = 2; + mDoAud_seStart(Z2SE_NAVI_TALK_END, 0, 0, 0); + + if (midna_p->checkShadowModelDraw()) { + midna_p->setShadowReturn(); + } + } + } + } else if ((mSwitch != 0xFF && i_fopAcM_isSwitch(this, mSwitch)) || + (field_0x572 != 0xFFFF && + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x572]))) + { + fopAcM_delete(this); + return 1; + } else if ((field_0x568 != 0xFF && !i_fopAcM_isSwitch(this, field_0x568)) || + (field_0x570 != 0xFFFF && + !i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x570]))) + { + return 1; + } else if (current.pos.y <= player_p->current.pos.y && field_0x5c4 >= player_p->current.pos.y && + fopAcM_searchPlayerDistanceXZ2(this) < field_0x5c0) + { + eventOrder(); + } + + return 1; } #else #pragma push From 8084a49a6e7b1abd3d00df988499ff090c293056 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Fri, 7 Jul 2023 01:16:47 -0700 Subject: [PATCH 32/35] d_a_warp_bug OK --- include/JSystem/J3DGraphBase/J3DMaterial.h | 1 + include/d/a/d_a_player.h | 2 + include/d/com/d_com_inf_game.h | 5 + include/d/d_drawlist.h | 2 + include/rel/d/a/d_a_warp_bug/d_a_warp_bug.h | 21 +- rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp | 1 + rel/d/a/d_a_warp_bug/d_a_warp_bug.cpp | 356 +++++++++----------- 7 files changed, 192 insertions(+), 196 deletions(-) diff --git a/include/JSystem/J3DGraphBase/J3DMaterial.h b/include/JSystem/J3DGraphBase/J3DMaterial.h index d3696d5a78..4ad02396d4 100644 --- a/include/JSystem/J3DGraphBase/J3DMaterial.h +++ b/include/JSystem/J3DGraphBase/J3DMaterial.h @@ -63,6 +63,7 @@ public: J3DNBTScale* getNBTScale() const { return mTexGenBlock->getNBTScale(); } u32 getTexNo(u32 idx) const { return mTevBlock->getTexNo(idx); } GXColor* getTevKColor(u32 param_0) { return mTevBlock->getTevKColor(param_0); } + GXColorS10* getTevColor(u32 param_0) { return mTevBlock->getTevColor(param_0); } J3DFog* getFog() { return mPEBlock->getFog(); } J3DTexMtx* getTexMtx(u32 idx) { return mTexGenBlock->getTexMtx(idx); } u16 getIndex() { return mIndex; } diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 2bb875205d..33d9d27b72 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -722,6 +722,8 @@ public: s16 getBodyAngleX() const { return mBodyAngle.x; } s16 getBodyAngleY() const { return mBodyAngle.y; } + BOOL checkMidnaWarp() const { return 0; } + // some functions use these function as an inline // is there a better way to handle this? int i_checkNoResetFlg0(daPy_FLG0 pFlag) const { return mNoResetFlg0 & pFlag; } diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 237c15af9a..eb21ea5267 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -3372,6 +3372,11 @@ inline void dComIfGd_setListDark() { g_dComIfG_gameInfo.drawlist.setXluListDark(); } +inline void dComIfGd_setListDarkBG() { + g_dComIfG_gameInfo.drawlist.setOpaListDarkBG(); + g_dComIfG_gameInfo.drawlist.setXluListDarkBG(); +} + inline void dComIfGd_setList() { g_dComIfG_gameInfo.drawlist.setOpaList(); g_dComIfG_gameInfo.drawlist.setXluList(); diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index bfef45fd5f..5a67a9181c 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -315,6 +315,8 @@ public: void setOpaListSky() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_SKY]); } void setXluListDark() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_DARK]); } void setOpaListDark() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_DARK]); } + void setXluListDarkBG() { setXluDrawList(mDrawBuffers[DB_XLU_LIST_DARK_BG]); } + void setOpaListDarkBG() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_DARK_BG]); } void setOpaList() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST]); } void setXluList() { setXluDrawList(mDrawBuffers[DB_XLU_LIST]); } void setOpaListItem3D() { setOpaDrawList(mDrawBuffers[DB_OPA_LIST_ITEM3D]); } diff --git a/include/rel/d/a/d_a_warp_bug/d_a_warp_bug.h b/include/rel/d/a/d_a_warp_bug/d_a_warp_bug.h index ada17256c3..451d2a88ea 100644 --- a/include/rel/d/a/d_a_warp_bug/d_a_warp_bug.h +++ b/include/rel/d/a/d_a_warp_bug/d_a_warp_bug.h @@ -1,6 +1,25 @@ #ifndef D_A_WARP_BUG_H #define D_A_WARP_BUG_H -#include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class daWarpBug_c : public fopAc_ac_c { +public: + inline ~daWarpBug_c(); + + /* 80D67E38 */ void create_init(); + /* 80D68068 */ int draw(); + + inline int createHeap(); + inline int execute(); + inline int create(); + + /* 0x568 */ J3DModel* mpModel; + /* 0x56C */ mDoExt_brkAnm* mpBrk; + /* 0x570 */ mDoExt_btkAnm* mpBtk; + /* 0x574 */ request_of_phase_process_class mPhase; + /* 0x57C */ s16 field_0x57c; + /* 0x57E */ u8 field_0x57e; +}; #endif /* D_A_WARP_BUG_H */ diff --git a/rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp b/rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp index 12654ce323..0456688544 100644 --- a/rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp +++ b/rel/d/a/d_a_scene_exit/d_a_scene_exit.cpp @@ -144,6 +144,7 @@ COMPILER_STRIP_GATE(0x80485CA8, &lit_3842); /* 80485A50-80485C90 000290 0240+00 1/1 0/0 0/0 .text execute__8daScex_cFv */ // regalloc +// this matches debug but not retail :/ #ifdef NONMATCHING int daScex_c::execute() { daPy_py_c* player = daPy_getPlayerActorClass(); diff --git a/rel/d/a/d_a_warp_bug/d_a_warp_bug.cpp b/rel/d/a/d_a_warp_bug/d_a_warp_bug.cpp index 0f45e7e530..98a348b4e0 100644 --- a/rel/d/a/d_a_warp_bug/d_a_warp_bug.cpp +++ b/rel/d/a/d_a_warp_bug/d_a_warp_bug.cpp @@ -1,229 +1,195 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_warp_bug -// +/** + * d_a_warp_bug.cpp + * + */ #include "rel/d/a/d_a_warp_bug/d_a_warp_bug.h" -#include "dol2asm.h" -#include "dolphin/types.h" - -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct J3DMaterialTable {}; - -struct J3DAnmTextureSRTKey {}; - -struct mDoExt_btkAnm { - /* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16); -}; - -struct J3DAnmTevRegKey {}; - -struct mDoExt_brkAnm { - /* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16); -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); - /* 80018C8C */ ~fopAc_ac_c(); -}; - -struct daWarpBug_c { - /* 80D67E38 */ void create_init(); - /* 80D68068 */ void draw(); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C37C */ void getRes(char const*, char const*, dRes_info_c*, int); -}; - -struct J3DModelData {}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); - /* 80D68000 */ ~J3DFrameCtrl(); -}; - -// -// Forward References: -// - -extern "C" void create_init__11daWarpBug_cFv(); -extern "C" static void createSolidHeap__FP10fopAc_ac_c(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" static void daWarpBug_Draw__FP11daWarpBug_c(); -extern "C" void draw__11daWarpBug_cFv(); -extern "C" static void daWarpBug_Execute__FP11daWarpBug_c(); -extern "C" static bool daWarpBug_IsDelete__FP11daWarpBug_c(); -extern "C" static void daWarpBug_Delete__FP11daWarpBug_c(); -extern "C" static void daWarpBug_Create__FP10fopAc_ac_c(); -extern "C" extern char const* const d_a_warp_bug__stringBase0; - -// -// External References: -// - -extern "C" void init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss(); -extern "C" void init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__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_cFPCcPCcP11dRes_info_ci(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void PSMTXCopy(); -extern "C" void _savegpr_27(); -extern "C" void _restgpr_27(); -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]; - -// -// Declarations: -// +#include "JSystem/J3DGraphBase/J3DMaterial.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "d/a/d_a_player.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" /* 80D67E38-80D67E3C 000078 0004+00 1/1 0/0 0/0 .text create_init__11daWarpBug_cFv */ -void daWarpBug_c::create_init() { - /* empty function */ -} - -/* ############################################################################################## */ -/* 80D681DC-80D681E0 000000 0004+00 1/1 0/0 0/0 .rodata @3709 */ -SECTION_RODATA static f32 const lit_3709 = 1.0f; -COMPILER_STRIP_GATE(0x80D681DC, &lit_3709); - -/* 80D681E0-80D681E0 000004 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80D681E0 = "WarpBug"; -SECTION_DEAD static char const* const stringBase_80D681E8 = "kisei.bmd"; -SECTION_DEAD static char const* const stringBase_80D681F2 = "kisei.brk"; -SECTION_DEAD static char const* const stringBase_80D681FC = "kisei.btk"; -#pragma pop +void daWarpBug_c::create_init() {} /* 80D68208-80D6820C -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_warp_bug__stringBase0; +static char* l_arcName = "WarpBug"; -/* 80D6820C-80D6822C -00001 0020+00 1/0 0/0 0/0 .data l_daWarpBug_Method */ -SECTION_DATA static void* l_daWarpBug_Method[8] = { - (void*)daWarpBug_Create__FP10fopAc_ac_c, - (void*)daWarpBug_Delete__FP11daWarpBug_c, - (void*)daWarpBug_Execute__FP11daWarpBug_c, - (void*)daWarpBug_IsDelete__FP11daWarpBug_c, - (void*)daWarpBug_Draw__FP11daWarpBug_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; +int daWarpBug_c::createHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "kisei.bmd"); + mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284); -/* 80D6822C-80D6825C -00001 0030+00 0/0 0/0 1/0 .data g_profile_WarpBug */ -SECTION_DATA extern void* g_profile_WarpBug[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x01560000, (void*)&g_fpcLf_Method, - (void*)0x00000580, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02D60000, (void*)&l_daWarpBug_Method, - (void*)0x00040000, (void*)0x000E0000, -}; + J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, "kisei.brk"); + J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, "kisei.btk"); -/* 80D6825C-80D68268 000054 000C+00 2/2 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; + if (pbrk != NULL) { + mpBrk = new mDoExt_brkAnm(); + + if (!mpBrk->init(modelData, pbrk, TRUE, 2, 1.0f, 0, -1)) { + return 0; + } + } + + if (pbtk != NULL) { + mpBtk = new mDoExt_btkAnm(); + + if (!mpBtk->init(modelData, pbtk, TRUE, 2, 1.0f, 0, -1)) { + return 0; + } + } + + if (mpModel == NULL) { + return 0; + } + + return 1; +} /* 80D67E3C-80D68000 00007C 01C4+00 1/1 0/0 0/0 .text createSolidHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void createSolidHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/createSolidHeap__FP10fopAc_ac_c.s" +static int createSolidHeap(fopAc_ac_c* i_this) { + return static_cast(i_this)->createHeap(); } -#pragma pop - -/* 80D68000-80D68048 000240 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DFrameCtrl::~J3DFrameCtrl() { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/__dt__12J3DFrameCtrlFv.s" -} -#pragma pop /* 80D68048-80D68068 000288 0020+00 1/0 0/0 0/0 .text daWarpBug_Draw__FP11daWarpBug_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daWarpBug_Draw(daWarpBug_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Draw__FP11daWarpBug_c.s" +static int daWarpBug_Draw(daWarpBug_c* i_this) { + return i_this->draw(); } -#pragma pop /* 80D68068-80D68078 0002A8 0010+00 1/1 0/0 0/0 .text draw__11daWarpBug_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daWarpBug_c::draw() { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/draw__11daWarpBug_cFv.s" +int daWarpBug_c::draw() { +#ifdef DEBUG + daPy_py_c* player_p = (daPy_py_c*)dComIfGp_getPlayer(0); + if (!player_p->checkMidnaWarp()) { +#endif + + field_0x57c = 0; + return 1; + +#ifdef DEBUG + } + + cLib_chaseS(&field_0x57c, 255, 25); + g_env_light.settingTevStruct(0x10, ¤t.pos, &mTevStr); + g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr); + + J3DModelData* modelData = mpModel->getModelData(); + for (u16 i = 0; i < modelData->getMaterialNum(); i++) { + GXColorS10* color = modelData->getMaterialNodePointer(i)->getTevColor(1); + + if (field_0x57e != 0) { + color->r = 0; + color->g = 255; + color->b = 0; + } else { + color->r = 250; + color->g = 50; + color->b = 50; + } + + color->a = field_0x57c; + } + + if (field_0x57e != 0) { + field_0x57e = 0; + } + + dComIfGd_setListDarkBG(); + mpBrk->entry(modelData); + mpBtk->entry(modelData); + mDoExt_modelUpdateDL(mpModel); + dComIfGd_setList(); + + return 1; +#endif +} + +int daWarpBug_c::execute() { +#ifdef DEBUG + daPy_py_c* player_p = (daPy_py_c*)dComIfGp_getPlayer(0); +#endif + + mDoMtx_stack_c::copy(mpModel->getBaseTRMtx()); + mDoMtx_stack_c::multVecZero(¤t.pos); + +#ifdef DEBUG + if (player_p->checkMidnaWarp()) { + mpBrk->play(); + mpBtk->play(); + Z2GetAudioMgr()->mSeMgr.seStartLevel(Z2SE_EN_YM_WAIT, ¤t.pos, NULL, 0, 1.0f, 1.0f, + -1.0f, -1.0f, 0); + } +#endif + return 1; } -#pragma pop /* 80D68078-80D680D8 0002B8 0060+00 1/0 0/0 0/0 .text daWarpBug_Execute__FP11daWarpBug_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daWarpBug_Execute(daWarpBug_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Execute__FP11daWarpBug_c.s" +static int daWarpBug_Execute(daWarpBug_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80D680D8-80D680E0 000318 0008+00 1/0 0/0 0/0 .text daWarpBug_IsDelete__FP11daWarpBug_c */ -static bool daWarpBug_IsDelete(daWarpBug_c* param_0) { - return true; +static int daWarpBug_IsDelete(daWarpBug_c* i_this) { + return 1; +} + +daWarpBug_c::~daWarpBug_c() { + dComIfG_resDelete(&mPhase, l_arcName); } /* 80D680E0-80D68130 000320 0050+00 1/0 0/0 0/0 .text daWarpBug_Delete__FP11daWarpBug_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daWarpBug_Delete(daWarpBug_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Delete__FP11daWarpBug_c.s" +static int daWarpBug_Delete(daWarpBug_c* i_this) { + i_this->~daWarpBug_c(); + return 1; +} + +int daWarpBug_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daWarpBug_c(); + fopAcM_OnCondition(this, 8); + } + + int phase = dComIfG_resLoad(&mPhase, l_arcName); + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, createSolidHeap, 0x4000)) { + return cPhs_ERROR_e; + } + + create_init(); + } + + return phase; } -#pragma pop /* 80D68130-80D681D4 000370 00A4+00 1/0 0/0 0/0 .text daWarpBug_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daWarpBug_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Create__FP10fopAc_ac_c.s" +static int daWarpBug_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop -/* 80D681E0-80D681E0 000004 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 80D6820C-80D6822C -00001 0020+00 1/0 0/0 0/0 .data l_daWarpBug_Method */ +static actor_method_class l_daWarpBug_Method = { + (process_method_func)daWarpBug_Create, (process_method_func)daWarpBug_Delete, + (process_method_func)daWarpBug_Execute, (process_method_func)daWarpBug_IsDelete, + (process_method_func)daWarpBug_Draw, +}; + +/* 80D6822C-80D6825C -00001 0030+00 0/0 0/0 1/0 .data g_profile_WarpBug */ +extern actor_process_profile_definition g_profile_WarpBug = { + -3, + 7, + -3, + PROC_WarpBug, + &g_fpcLf_Method.mBase, + sizeof(daWarpBug_c), + 0, + 0, + &g_fopAc_Method.base, + 726, + &l_daWarpBug_Method, + 0x40000, + 0, + 14, +}; From 7d64db8480234de45e9c487aedca69df81c58152 Mon Sep 17 00:00:00 2001 From: TakaRikka Date: Fri, 7 Jul 2023 01:17:09 -0700 Subject: [PATCH 33/35] remove asm --- .../d_a_warp_bug/__dt__12J3DFrameCtrlFv.s | 20 --- .../createSolidHeap__FP10fopAc_ac_c.s | 120 ------------------ .../daWarpBug_Create__FP10fopAc_ac_c.s | 46 ------- .../daWarpBug_Delete__FP11daWarpBug_c.s | 22 ---- .../daWarpBug_Draw__FP11daWarpBug_c.s | 9 -- .../daWarpBug_Execute__FP11daWarpBug_c.s | 25 ---- .../d_a_warp_bug/draw__11daWarpBug_cFv.s | 5 - .../daKytag10_Delete__FP13kytag10_class.s | 54 -------- .../daKytag10_Execute__FP13kytag10_class.s | 10 -- ...d_get__FP13kytag10_classP5dPathP4cXyzfPi.s | 6 - ...t_get__FP13kytag10_classP5dPathP4cXyzfPi.s | 5 - .../set_path_info__FP10fopAc_ac_c.s | 20 --- 12 files changed, 342 deletions(-) delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/__dt__12J3DFrameCtrlFv.s delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/createSolidHeap__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Delete__FP11daWarpBug_c.s delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Draw__FP11daWarpBug_c.s delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Execute__FP11daWarpBug_c.s delete mode 100644 asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/draw__11daWarpBug_cFv.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Delete__FP13kytag10_class.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Execute__FP13kytag10_class.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_end_get__FP13kytag10_classP5dPathP4cXyzfPi.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_start_get__FP13kytag10_classP5dPathP4cXyzfPi.s delete mode 100644 asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/set_path_info__FP10fopAc_ac_c.s diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/__dt__12J3DFrameCtrlFv.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/__dt__12J3DFrameCtrlFv.s deleted file mode 100644 index dbb5958e9b..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/__dt__12J3DFrameCtrlFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80D68000: -/* 80D68000 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D68004 7C 08 02 A6 */ mflr r0 -/* 80D68008 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D6800C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D68010 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80D68014 41 82 00 1C */ beq lbl_80D68030 -/* 80D68018 3C A0 80 D7 */ lis r5, __vt__12J3DFrameCtrl@ha /* 0x80D6825C@ha */ -/* 80D6801C 38 05 82 5C */ addi r0, r5, __vt__12J3DFrameCtrl@l /* 0x80D6825C@l */ -/* 80D68020 90 1F 00 00 */ stw r0, 0(r31) -/* 80D68024 7C 80 07 35 */ extsh. r0, r4 -/* 80D68028 40 81 00 08 */ ble lbl_80D68030 -/* 80D6802C 4B 56 6D 11 */ bl __dl__FPv -lbl_80D68030: -/* 80D68030 7F E3 FB 78 */ mr r3, r31 -/* 80D68034 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D68038 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6803C 7C 08 03 A6 */ mtlr r0 -/* 80D68040 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D68044 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/createSolidHeap__FP10fopAc_ac_c.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/createSolidHeap__FP10fopAc_ac_c.s deleted file mode 100644 index 52b8afc241..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/createSolidHeap__FP10fopAc_ac_c.s +++ /dev/null @@ -1,120 +0,0 @@ -lbl_80D67E3C: -/* 80D67E3C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80D67E40 7C 08 02 A6 */ mflr r0 -/* 80D67E44 90 01 00 24 */ stw r0, 0x24(r1) -/* 80D67E48 39 61 00 20 */ addi r11, r1, 0x20 -/* 80D67E4C 4B 5F A3 89 */ bl _savegpr_27 -/* 80D67E50 7C 7E 1B 78 */ mr r30, r3 -/* 80D67E54 3C 60 80 D7 */ lis r3, l_arcName@ha /* 0x80D68208@ha */ -/* 80D67E58 38 63 82 08 */ addi r3, r3, l_arcName@l /* 0x80D68208@l */ -/* 80D67E5C 80 63 00 00 */ lwz r3, 0(r3) -/* 80D67E60 3C 80 80 D7 */ lis r4, d_a_warp_bug__stringBase0@ha /* 0x80D681E0@ha */ -/* 80D67E64 38 84 81 E0 */ addi r4, r4, d_a_warp_bug__stringBase0@l /* 0x80D681E0@l */ -/* 80D67E68 38 84 00 08 */ addi r4, r4, 8 -/* 80D67E6C 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D67E70 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D67E74 3F 85 00 02 */ addis r28, r5, 2 -/* 80D67E78 3B 9C C2 F8 */ addi r28, r28, -15624 -/* 80D67E7C 7F 85 E3 78 */ mr r5, r28 -/* 80D67E80 38 C0 00 80 */ li r6, 0x80 -/* 80D67E84 4B 2D 44 F9 */ bl getRes__14dRes_control_cFPCcPCcP11dRes_info_ci -/* 80D67E88 7C 7F 1B 78 */ mr r31, r3 -/* 80D67E8C 3C 80 00 08 */ lis r4, 8 -/* 80D67E90 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000284@ha */ -/* 80D67E94 38 A5 02 84 */ addi r5, r5, 0x0284 /* 0x11000284@l */ -/* 80D67E98 4B 2A CD BD */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl -/* 80D67E9C 90 7E 05 68 */ stw r3, 0x568(r30) -/* 80D67EA0 3C 60 80 D7 */ lis r3, l_arcName@ha /* 0x80D68208@ha */ -/* 80D67EA4 38 63 82 08 */ addi r3, r3, l_arcName@l /* 0x80D68208@l */ -/* 80D67EA8 80 63 00 00 */ lwz r3, 0(r3) -/* 80D67EAC 3C 80 80 D7 */ lis r4, d_a_warp_bug__stringBase0@ha /* 0x80D681E0@ha */ -/* 80D67EB0 38 84 81 E0 */ addi r4, r4, d_a_warp_bug__stringBase0@l /* 0x80D681E0@l */ -/* 80D67EB4 38 84 00 12 */ addi r4, r4, 0x12 -/* 80D67EB8 7F 85 E3 78 */ mr r5, r28 -/* 80D67EBC 38 C0 00 80 */ li r6, 0x80 -/* 80D67EC0 4B 2D 44 BD */ bl getRes__14dRes_control_cFPCcPCcP11dRes_info_ci -/* 80D67EC4 7C 7B 1B 78 */ mr r27, r3 -/* 80D67EC8 3C 60 80 D7 */ lis r3, l_arcName@ha /* 0x80D68208@ha */ -/* 80D67ECC 38 63 82 08 */ addi r3, r3, l_arcName@l /* 0x80D68208@l */ -/* 80D67ED0 80 63 00 00 */ lwz r3, 0(r3) -/* 80D67ED4 3C 80 80 D7 */ lis r4, d_a_warp_bug__stringBase0@ha /* 0x80D681E0@ha */ -/* 80D67ED8 38 84 81 E0 */ addi r4, r4, d_a_warp_bug__stringBase0@l /* 0x80D681E0@l */ -/* 80D67EDC 38 84 00 1C */ addi r4, r4, 0x1c -/* 80D67EE0 7F 85 E3 78 */ mr r5, r28 -/* 80D67EE4 38 C0 00 80 */ li r6, 0x80 -/* 80D67EE8 4B 2D 44 95 */ bl getRes__14dRes_control_cFPCcPCcP11dRes_info_ci -/* 80D67EEC 7C 7C 1B 78 */ mr r28, r3 -/* 80D67EF0 28 1B 00 00 */ cmplwi r27, 0 -/* 80D67EF4 41 82 00 6C */ beq lbl_80D67F60 -/* 80D67EF8 38 60 00 18 */ li r3, 0x18 -/* 80D67EFC 4B 56 6D 51 */ bl __nw__FUl -/* 80D67F00 7C 7D 1B 79 */ or. r29, r3, r3 -/* 80D67F04 41 82 00 20 */ beq lbl_80D67F24 -/* 80D67F08 3C 80 80 D7 */ lis r4, __vt__12J3DFrameCtrl@ha /* 0x80D6825C@ha */ -/* 80D67F0C 38 04 82 5C */ addi r0, r4, __vt__12J3DFrameCtrl@l /* 0x80D6825C@l */ -/* 80D67F10 90 1D 00 00 */ stw r0, 0(r29) -/* 80D67F14 38 80 00 00 */ li r4, 0 -/* 80D67F18 4B 5C 04 E5 */ bl init__12J3DFrameCtrlFs -/* 80D67F1C 38 00 00 00 */ li r0, 0 -/* 80D67F20 90 1D 00 14 */ stw r0, 0x14(r29) -lbl_80D67F24: -/* 80D67F24 93 BE 05 6C */ stw r29, 0x56c(r30) -/* 80D67F28 80 7E 05 6C */ lwz r3, 0x56c(r30) -/* 80D67F2C 38 9F 00 58 */ addi r4, r31, 0x58 -/* 80D67F30 7F 65 DB 78 */ mr r5, r27 -/* 80D67F34 38 C0 00 01 */ li r6, 1 -/* 80D67F38 38 E0 00 02 */ li r7, 2 -/* 80D67F3C 3D 00 80 D7 */ lis r8, lit_3709@ha /* 0x80D681DC@ha */ -/* 80D67F40 C0 28 81 DC */ lfs f1, lit_3709@l(r8) /* 0x80D681DC@l */ -/* 80D67F44 39 00 00 00 */ li r8, 0 -/* 80D67F48 39 20 FF FF */ li r9, -1 -/* 80D67F4C 4B 2A 57 C1 */ bl init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss -/* 80D67F50 2C 03 00 00 */ cmpwi r3, 0 -/* 80D67F54 40 82 00 0C */ bne lbl_80D67F60 -/* 80D67F58 38 60 00 00 */ li r3, 0 -/* 80D67F5C 48 00 00 8C */ b lbl_80D67FE8 -lbl_80D67F60: -/* 80D67F60 28 1C 00 00 */ cmplwi r28, 0 -/* 80D67F64 41 82 00 6C */ beq lbl_80D67FD0 -/* 80D67F68 38 60 00 18 */ li r3, 0x18 -/* 80D67F6C 4B 56 6C E1 */ bl __nw__FUl -/* 80D67F70 7C 7D 1B 79 */ or. r29, r3, r3 -/* 80D67F74 41 82 00 20 */ beq lbl_80D67F94 -/* 80D67F78 3C 80 80 D7 */ lis r4, __vt__12J3DFrameCtrl@ha /* 0x80D6825C@ha */ -/* 80D67F7C 38 04 82 5C */ addi r0, r4, __vt__12J3DFrameCtrl@l /* 0x80D6825C@l */ -/* 80D67F80 90 1D 00 00 */ stw r0, 0(r29) -/* 80D67F84 38 80 00 00 */ li r4, 0 -/* 80D67F88 4B 5C 04 75 */ bl init__12J3DFrameCtrlFs -/* 80D67F8C 38 00 00 00 */ li r0, 0 -/* 80D67F90 90 1D 00 14 */ stw r0, 0x14(r29) -lbl_80D67F94: -/* 80D67F94 93 BE 05 70 */ stw r29, 0x570(r30) -/* 80D67F98 80 7E 05 70 */ lwz r3, 0x570(r30) -/* 80D67F9C 38 9F 00 58 */ addi r4, r31, 0x58 -/* 80D67FA0 7F 85 E3 78 */ mr r5, r28 -/* 80D67FA4 38 C0 00 01 */ li r6, 1 -/* 80D67FA8 38 E0 00 02 */ li r7, 2 -/* 80D67FAC 3D 00 80 D7 */ lis r8, lit_3709@ha /* 0x80D681DC@ha */ -/* 80D67FB0 C0 28 81 DC */ lfs f1, lit_3709@l(r8) /* 0x80D681DC@l */ -/* 80D67FB4 39 00 00 00 */ li r8, 0 -/* 80D67FB8 39 20 FF FF */ li r9, -1 -/* 80D67FBC 4B 2A 56 81 */ bl init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss -/* 80D67FC0 2C 03 00 00 */ cmpwi r3, 0 -/* 80D67FC4 40 82 00 0C */ bne lbl_80D67FD0 -/* 80D67FC8 38 60 00 00 */ li r3, 0 -/* 80D67FCC 48 00 00 1C */ b lbl_80D67FE8 -lbl_80D67FD0: -/* 80D67FD0 80 1E 05 68 */ lwz r0, 0x568(r30) -/* 80D67FD4 28 00 00 00 */ cmplwi r0, 0 -/* 80D67FD8 40 82 00 0C */ bne lbl_80D67FE4 -/* 80D67FDC 38 60 00 00 */ li r3, 0 -/* 80D67FE0 48 00 00 08 */ b lbl_80D67FE8 -lbl_80D67FE4: -/* 80D67FE4 38 60 00 01 */ li r3, 1 -lbl_80D67FE8: -/* 80D67FE8 39 61 00 20 */ addi r11, r1, 0x20 -/* 80D67FEC 4B 5F A2 35 */ bl _restgpr_27 -/* 80D67FF0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80D67FF4 7C 08 03 A6 */ mtlr r0 -/* 80D67FF8 38 21 00 20 */ addi r1, r1, 0x20 -/* 80D67FFC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 53b8ce848e..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_80D68130: -/* 80D68130 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D68134 7C 08 02 A6 */ mflr r0 -/* 80D68138 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D6813C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D68140 93 C1 00 08 */ stw r30, 8(r1) -/* 80D68144 7C 7E 1B 78 */ mr r30, r3 -/* 80D68148 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D6814C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D68150 40 82 00 1C */ bne lbl_80D6816C -/* 80D68154 28 1E 00 00 */ cmplwi r30, 0 -/* 80D68158 41 82 00 08 */ beq lbl_80D68160 -/* 80D6815C 4B 2B 0A 09 */ bl __ct__10fopAc_ac_cFv -lbl_80D68160: -/* 80D68160 80 1E 04 A0 */ lwz r0, 0x4a0(r30) -/* 80D68164 60 00 00 08 */ ori r0, r0, 8 -/* 80D68168 90 1E 04 A0 */ stw r0, 0x4a0(r30) -lbl_80D6816C: -/* 80D6816C 38 7E 05 74 */ addi r3, r30, 0x574 -/* 80D68170 3C 80 80 D7 */ lis r4, l_arcName@ha /* 0x80D68208@ha */ -/* 80D68174 38 84 82 08 */ addi r4, r4, l_arcName@l /* 0x80D68208@l */ -/* 80D68178 80 84 00 00 */ lwz r4, 0(r4) -/* 80D6817C 4B 2C 4D 41 */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 80D68180 7C 7F 1B 78 */ mr r31, r3 -/* 80D68184 2C 1F 00 04 */ cmpwi r31, 4 -/* 80D68188 40 82 00 30 */ bne lbl_80D681B8 -/* 80D6818C 7F C3 F3 78 */ mr r3, r30 -/* 80D68190 3C 80 80 D6 */ lis r4, createSolidHeap__FP10fopAc_ac_c@ha /* 0x80D67E3C@ha */ -/* 80D68194 38 84 7E 3C */ addi r4, r4, createSolidHeap__FP10fopAc_ac_c@l /* 0x80D67E3C@l */ -/* 80D68198 38 A0 40 00 */ li r5, 0x4000 -/* 80D6819C 4B 2B 23 15 */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl -/* 80D681A0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80D681A4 40 82 00 0C */ bne lbl_80D681B0 -/* 80D681A8 3B E0 00 05 */ li r31, 5 -/* 80D681AC 48 00 00 0C */ b lbl_80D681B8 -lbl_80D681B0: -/* 80D681B0 7F C3 F3 78 */ mr r3, r30 -/* 80D681B4 4B FF FC 85 */ bl create_init__11daWarpBug_cFv -lbl_80D681B8: -/* 80D681B8 7F E3 FB 78 */ mr r3, r31 -/* 80D681BC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D681C0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80D681C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D681C8 7C 08 03 A6 */ mtlr r0 -/* 80D681CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D681D0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Delete__FP11daWarpBug_c.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Delete__FP11daWarpBug_c.s deleted file mode 100644 index 7f3332e12f..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Delete__FP11daWarpBug_c.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80D680E0: -/* 80D680E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D680E4 7C 08 02 A6 */ mflr r0 -/* 80D680E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D680EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D680F0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80D680F4 41 82 00 24 */ beq lbl_80D68118 -/* 80D680F8 38 7F 05 74 */ addi r3, r31, 0x574 -/* 80D680FC 3C 80 80 D7 */ lis r4, l_arcName@ha /* 0x80D68208@ha */ -/* 80D68100 38 84 82 08 */ addi r4, r4, l_arcName@l /* 0x80D68208@l */ -/* 80D68104 80 84 00 00 */ lwz r4, 0(r4) -/* 80D68108 4B 2C 4F 01 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 80D6810C 7F E3 FB 78 */ mr r3, r31 -/* 80D68110 38 80 00 00 */ li r4, 0 -/* 80D68114 4B 2B 0B 79 */ bl __dt__10fopAc_ac_cFv -lbl_80D68118: -/* 80D68118 38 60 00 01 */ li r3, 1 -/* 80D6811C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D68120 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D68124 7C 08 03 A6 */ mtlr r0 -/* 80D68128 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D6812C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Draw__FP11daWarpBug_c.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Draw__FP11daWarpBug_c.s deleted file mode 100644 index f7db7801d4..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Draw__FP11daWarpBug_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D68048: -/* 80D68048 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D6804C 7C 08 02 A6 */ mflr r0 -/* 80D68050 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D68054 48 00 00 15 */ bl draw__11daWarpBug_cFv -/* 80D68058 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D6805C 7C 08 03 A6 */ mtlr r0 -/* 80D68060 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D68064 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Execute__FP11daWarpBug_c.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Execute__FP11daWarpBug_c.s deleted file mode 100644 index 696f9cf57f..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/daWarpBug_Execute__FP11daWarpBug_c.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_80D68078: -/* 80D68078 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D6807C 7C 08 02 A6 */ mflr r0 -/* 80D68080 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D68084 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D68088 7C 7F 1B 78 */ mr r31, r3 -/* 80D6808C 80 63 05 68 */ lwz r3, 0x568(r3) -/* 80D68090 38 63 00 24 */ addi r3, r3, 0x24 -/* 80D68094 3C 80 80 3E */ lis r4, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80D68098 38 84 D4 70 */ addi r4, r4, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80D6809C 4B 5D E4 15 */ bl PSMTXCopy -/* 80D680A0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80D680A4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80D680A8 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 80D680AC D0 1F 04 D0 */ stfs f0, 0x4d0(r31) -/* 80D680B0 C0 03 00 1C */ lfs f0, 0x1c(r3) -/* 80D680B4 D0 1F 04 D4 */ stfs f0, 0x4d4(r31) -/* 80D680B8 C0 03 00 2C */ lfs f0, 0x2c(r3) -/* 80D680BC D0 1F 04 D8 */ stfs f0, 0x4d8(r31) -/* 80D680C0 38 60 00 01 */ li r3, 1 -/* 80D680C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D680C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D680CC 7C 08 03 A6 */ mtlr r0 -/* 80D680D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D680D4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/draw__11daWarpBug_cFv.s b/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/draw__11daWarpBug_cFv.s deleted file mode 100644 index 31d05374bf..0000000000 --- a/asm/rel/d/a/d_a_warp_bug/d_a_warp_bug/draw__11daWarpBug_cFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_80D68068: -/* 80D68068 38 00 00 00 */ li r0, 0 -/* 80D6806C B0 03 05 7C */ sth r0, 0x57c(r3) -/* 80D68070 38 60 00 01 */ li r3, 1 -/* 80D68074 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Delete__FP13kytag10_class.s b/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Delete__FP13kytag10_class.s deleted file mode 100644 index 0378a49b14..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Delete__FP13kytag10_class.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_8052917C: -/* 8052917C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80529180 7C 08 02 A6 */ mflr r0 -/* 80529184 90 01 00 14 */ stw r0, 0x14(r1) -/* 80529188 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8052918C 7C 7F 1B 78 */ mr r31, r3 -/* 80529190 38 00 00 00 */ li r0, 0 -/* 80529194 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80529198 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 8052919C 98 03 0F 21 */ stb r0, 0xf21(r3) -/* 805291A0 80 7F 05 6C */ lwz r3, 0x56c(r31) -/* 805291A4 28 03 00 00 */ cmplwi r3, 0 -/* 805291A8 41 82 00 40 */ beq lbl_805291E8 -/* 805291AC 4B D5 5A B5 */ bl deleteAllParticle__14JPABaseEmitterFv -/* 805291B0 80 7F 05 6C */ lwz r3, 0x56c(r31) -/* 805291B4 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 805291B8 60 00 00 01 */ ori r0, r0, 1 -/* 805291BC 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 805291C0 38 00 00 01 */ li r0, 1 -/* 805291C4 90 03 00 24 */ stw r0, 0x24(r3) -/* 805291C8 80 7F 05 6C */ lwz r3, 0x56c(r31) -/* 805291CC 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 805291D0 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18 -/* 805291D4 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 805291D8 38 00 00 00 */ li r0, 0 -/* 805291DC 80 7F 05 6C */ lwz r3, 0x56c(r31) -/* 805291E0 90 03 00 EC */ stw r0, 0xec(r3) -/* 805291E4 90 1F 05 6C */ stw r0, 0x56c(r31) -lbl_805291E8: -/* 805291E8 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 805291EC 28 03 00 00 */ cmplwi r3, 0 -/* 805291F0 41 82 00 40 */ beq lbl_80529230 -/* 805291F4 4B D5 5A 6D */ bl deleteAllParticle__14JPABaseEmitterFv -/* 805291F8 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 805291FC 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 80529200 60 00 00 01 */ ori r0, r0, 1 -/* 80529204 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 80529208 38 00 00 01 */ li r0, 1 -/* 8052920C 90 03 00 24 */ stw r0, 0x24(r3) -/* 80529210 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80529214 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 80529218 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18 -/* 8052921C 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 80529220 38 00 00 00 */ li r0, 0 -/* 80529224 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80529228 90 03 00 EC */ stw r0, 0xec(r3) -/* 8052922C 90 1F 05 70 */ stw r0, 0x570(r31) -lbl_80529230: -/* 80529230 38 60 00 01 */ li r3, 1 -/* 80529234 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80529238 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8052923C 7C 08 03 A6 */ mtlr r0 -/* 80529240 38 21 00 10 */ addi r1, r1, 0x10 -/* 80529244 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Execute__FP13kytag10_class.s b/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Execute__FP13kytag10_class.s deleted file mode 100644 index 8c7173d8d0..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/daKytag10_Execute__FP13kytag10_class.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80529150: -/* 80529150 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80529154 7C 08 02 A6 */ mflr r0 -/* 80529158 90 01 00 14 */ stw r0, 0x14(r1) -/* 8052915C 4B FF FC 1D */ bl sparks_move__FP13kytag10_class -/* 80529160 38 60 00 01 */ li r3, 1 -/* 80529164 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80529168 7C 08 03 A6 */ mtlr r0 -/* 8052916C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80529170 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_end_get__FP13kytag10_classP5dPathP4cXyzfPi.s b/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_end_get__FP13kytag10_classP5dPathP4cXyzfPi.s deleted file mode 100644 index 740bd81efa..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_end_get__FP13kytag10_classP5dPathP4cXyzfPi.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_80528D64: -/* 80528D64 A0 64 00 00 */ lhz r3, 0(r4) -/* 80528D68 38 03 FF FF */ addi r0, r3, -1 -/* 80528D6C 90 06 00 00 */ stw r0, 0(r6) -/* 80528D70 7C 83 23 78 */ mr r3, r4 -/* 80528D74 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_start_get__FP13kytag10_classP5dPathP4cXyzfPi.s b/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_start_get__FP13kytag10_classP5dPathP4cXyzfPi.s deleted file mode 100644 index 07b0a44605..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/get_Extent_pos_start_get__FP13kytag10_classP5dPathP4cXyzfPi.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_80528D54: -/* 80528D54 38 00 00 00 */ li r0, 0 -/* 80528D58 90 06 00 00 */ stw r0, 0(r6) -/* 80528D5C 7C 83 23 78 */ mr r3, r4 -/* 80528D60 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/set_path_info__FP10fopAc_ac_c.s b/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/set_path_info__FP10fopAc_ac_c.s deleted file mode 100644 index 1b0ddc20ce..0000000000 --- a/asm/rel/d/a/kytag/d_a_kytag10/d_a_kytag10/set_path_info__FP10fopAc_ac_c.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80528D0C: -/* 80528D0C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80528D10 7C 08 02 A6 */ mflr r0 -/* 80528D14 90 01 00 14 */ stw r0, 0x14(r1) -/* 80528D18 7C 65 1B 78 */ mr r5, r3 -/* 80528D1C 38 80 00 00 */ li r4, 0 -/* 80528D20 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 80528D24 54 03 86 3E */ rlwinm r3, r0, 0x10, 0x18, 0x1f -/* 80528D28 28 03 00 FF */ cmplwi r3, 0xff -/* 80528D2C 41 82 00 14 */ beq lbl_80528D40 -/* 80528D30 88 05 04 E2 */ lbz r0, 0x4e2(r5) -/* 80528D34 7C 04 07 74 */ extsb r4, r0 -/* 80528D38 4B B2 8A B5 */ bl dPath_GetRoomPath__Fii -/* 80528D3C 7C 64 1B 78 */ mr r4, r3 -lbl_80528D40: -/* 80528D40 7C 83 23 78 */ mr r3, r4 -/* 80528D44 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80528D48 7C 08 03 A6 */ mtlr r0 -/* 80528D4C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80528D50 4E 80 00 20 */ blr From 3486b64c5827b7d420653a9ff3e2d38ce8a58147 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Fri, 7 Jul 2023 18:06:12 +0300 Subject: [PATCH 34/35] Work on m_Do_graphic --- Progress.md | 36 +- ...epth2__FP10view_classP15view_port_classi.s | 2 +- .../draw__Q213mDoGph_gInf_c7bloom_cFv.s | 2 +- ...frame__FP10view_classP15view_port_classi.s | 79 --- include/d/kankyo/d_kankyo.h | 2 +- include/f_op/f_op_camera_mng.h | 4 + include/m_Do/m_Do_graphic.h | 9 + libs/JSystem/J2DGraph/J2DOrthoGraph.cpp | 31 - src/d/kankyo/d_kankyo.cpp | 2 +- src/m_Do/m_Do_graphic.cpp | 615 +++++++++++++++--- 10 files changed, 570 insertions(+), 212 deletions(-) delete mode 100644 asm/m_Do/m_Do_graphic/retry_captue_frame__FP10view_classP15view_port_classi.s diff --git a/Progress.md b/Progress.md index 1d25b35060..1386fab601 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 28.020678% | 1007776 | 3596544 +.text | 28.029130% | 1008080 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 35.608774% | 1431712 | 4020672 +Total | 35.616335% | 1432016 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 35.608774% | 1431712 | 4020672 -RELs | 33.680860% | 3873408 | 11500324 -Total | 34.180281% | 5305120 | 15520996 +main.dol | 35.616335% | 1432016 | 4020672 +RELs | 33.810282% | 3888292 | 11500324 +Total | 34.278135% | 5320308 | 15520996 ## RELs @@ -71,7 +71,7 @@ d_a_cstaF | 32.377740% | 3840 | 11860 d_a_cstatue | 29.155833% | 6728 | 23076 d_a_demo00 | 29.136000% | 7284 | 25000 d_a_demo_item | 33.863165% | 3920 | 11576 -d_a_disappear | 45.091514% | 1084 | 2404 +d_a_disappear | 100.000000% | 2404 | 2404 d_a_dmidna | 100.000000% | 1888 | 1888 d_a_do | 37.666220% | 14616 | 38804 d_a_door_boss | 40.856890% | 3700 | 9056 @@ -201,13 +201,13 @@ d_a_kytag06 | 100.000000% | 14140 | 14140 d_a_kytag07 | 100.000000% | 1272 | 1272 d_a_kytag08 | 31.379026% | 1520 | 4844 d_a_kytag09 | 49.936948% | 1584 | 3172 -d_a_kytag10 | 31.720430% | 944 | 2976 +d_a_kytag10 | 43.413978% | 1292 | 2976 d_a_kytag11 | 52.643172% | 956 | 1816 d_a_kytag12 | 20.217129% | 3352 | 16580 d_a_kytag13 | 30.696576% | 2080 | 6776 d_a_kytag14 | 100.000000% | 1408 | 1408 -d_a_kytag15 | 49.443561% | 1244 | 2516 -d_a_kytag16 | 47.212544% | 1084 | 2296 +d_a_kytag15 | 100.000000% | 2516 | 2516 +d_a_kytag16 | 100.000000% | 2296 | 2296 d_a_kytag17 | 100.000000% | 752 | 752 d_a_mant | 86.020312% | 40316 | 46868 d_a_mg_fish | 26.024167% | 17660 | 67860 @@ -385,7 +385,7 @@ d_a_obj_crvhahen | 37.120623% | 1908 | 5140 d_a_obj_crvlh_down | 42.363776% | 2208 | 5212 d_a_obj_crvlh_up | 42.485784% | 2092 | 4924 d_a_obj_crvsteel | 48.717949% | 1520 | 3120 -d_a_obj_crystal | 44.482173% | 1048 | 2356 +d_a_obj_crystal | 100.000000% | 2356 | 2356 d_a_obj_cwall | 30.455195% | 5968 | 19596 d_a_obj_damCps | 100.000000% | 504 | 504 d_a_obj_dan | 35.198921% | 4176 | 11864 @@ -489,12 +489,12 @@ d_a_obj_lv3Water | 44.263566% | 4568 | 10320 d_a_obj_lv3Water2 | 41.786571% | 2788 | 6672 d_a_obj_lv3WaterB | 46.278317% | 1716 | 3708 d_a_obj_lv3saka00 | 50.576369% | 1404 | 2776 -d_a_obj_lv3waterEff | 48.122066% | 820 | 1704 +d_a_obj_lv3waterEff | 100.000000% | 1704 | 1704 d_a_obj_lv4CandleDemoTag | 46.972860% | 1800 | 3832 d_a_obj_lv4CandleTag | 50.114416% | 1752 | 3496 d_a_obj_lv4EdShutter | 45.846154% | 2384 | 5200 d_a_obj_lv4Gate | 48.863636% | 2064 | 4224 -d_a_obj_lv4HsTarget | 58.333333% | 1428 | 2448 +d_a_obj_lv4HsTarget | 100.000000% | 2448 | 2448 d_a_obj_lv4PoGate | 44.906743% | 2504 | 5576 d_a_obj_lv4RailWall | 41.496973% | 3016 | 7268 d_a_obj_lv4SlideWall | 48.954373% | 2060 | 4208 @@ -690,7 +690,7 @@ d_a_path_line | 100.000000% | 508 | 508 d_a_peru | 33.139234% | 10244 | 30912 d_a_ppolamp | 42.341463% | 1736 | 4100 d_a_scene_exit | 61.359223% | 1264 | 2060 -d_a_scene_exit2 | 44.782034% | 1356 | 3028 +d_a_scene_exit2 | 99.075297% | 3000 | 3028 d_a_set_bgobj | 100.000000% | 1108 | 1108 d_a_shop_item | 43.088737% | 2020 | 4688 d_a_skip_2D | 100.000000% | 1332 | 1332 @@ -729,7 +729,7 @@ d_a_tag_gra | 100.000000% | 800 | 800 d_a_tag_gstart | 100.000000% | 1208 | 1208 d_a_tag_guard | 100.000000% | 1176 | 1176 d_a_tag_hinit | 100.000000% | 1440 | 1440 -d_a_tag_hjump | 40.841584% | 1320 | 3232 +d_a_tag_hjump | 100.000000% | 3232 | 3232 d_a_tag_howl | 100.000000% | 1892 | 1892 d_a_tag_hstop | 100.000000% | 3424 | 3424 d_a_tag_instruction | 100.000000% | 712 | 712 @@ -742,11 +742,11 @@ d_a_tag_lv5soup | 100.000000% | 1908 | 1908 d_a_tag_lv6CstaSw | 100.000000% | 2560 | 2560 d_a_tag_magne | 100.000000% | 928 | 928 d_a_tag_mhint | 35.576923% | 1332 | 3744 -d_a_tag_mist | 43.436293% | 900 | 2072 +d_a_tag_mist | 100.000000% | 2072 | 2072 d_a_tag_mmsg | 100.000000% | 1960 | 1960 d_a_tag_msg | 37.563971% | 1468 | 3908 d_a_tag_mstop | 43.995098% | 1436 | 3264 -d_a_tag_mwait | 35.082873% | 1016 | 2896 +d_a_tag_mwait | 100.000000% | 2896 | 2896 d_a_tag_myna2 | 47.260274% | 828 | 1752 d_a_tag_myna_light | 36.747759% | 1148 | 3124 d_a_tag_pachi | 51.107595% | 1292 | 2528 @@ -782,7 +782,7 @@ d_a_tboxSw | 100.000000% | 1016 | 1016 d_a_title | 39.558574% | 2796 | 7068 d_a_vrbox | 100.000000% | 2152 | 2152 d_a_vrbox2 | 34.977578% | 2184 | 6244 -d_a_warp_bug | 54.940711% | 1112 | 2024 +d_a_warp_bug | 100.000000% | 2024 | 2024 d_a_ykgr | 44.400631% | 2252 | 5072 f_pc_profile_lst | 100.000000% | 28156 | 28156 -Total | 33.680860% | 3873408 | 11500324 +Total | 33.810282% | 3888292 | 11500324 diff --git a/asm/m_Do/m_Do_graphic/drawDepth2__FP10view_classP15view_port_classi.s b/asm/m_Do/m_Do_graphic/drawDepth2__FP10view_classP15view_port_classi.s index 809c5bb5ad..f50a470d8d 100644 --- a/asm/m_Do/m_Do_graphic/drawDepth2__FP10view_classP15view_port_classi.s +++ b/asm/m_Do/m_Do_graphic/drawDepth2__FP10view_classP15view_port_classi.s @@ -414,7 +414,7 @@ lbl_80008C24: /* 80008C48 B0 1E 00 06 */ sth r0, 6(r30) lbl_80008C4C: /* 80008C4C 80 6D 80 18 */ lwz r3, l_tevColor0(r13) -/* 80008C50 80 0D 80 1C */ lwz r0, data_8045059C(r13) +/* 80008C50 80 0D 80 1C */ lwz r0, l_tevColor0+0x4(r13) /* 80008C54 90 61 00 20 */ stw r3, 0x20(r1) /* 80008C58 90 01 00 24 */ stw r0, 0x24(r1) /* 80008C5C 38 60 00 01 */ li r3, 1 diff --git a/asm/m_Do/m_Do_graphic/draw__Q213mDoGph_gInf_c7bloom_cFv.s b/asm/m_Do/m_Do_graphic/draw__Q213mDoGph_gInf_c7bloom_cFv.s index 447667d168..5228f7ef03 100644 --- a/asm/m_Do/m_Do_graphic/draw__Q213mDoGph_gInf_c7bloom_cFv.s +++ b/asm/m_Do/m_Do_graphic/draw__Q213mDoGph_gInf_c7bloom_cFv.s @@ -308,7 +308,7 @@ lbl_80009928: /* 80009B0C 38 C0 00 07 */ li r6, 7 /* 80009B10 48 35 60 E1 */ bl GXSetBlendMode /* 80009B14 80 62 80 B4 */ lwz r3, lit_4528(r2) -/* 80009B18 80 02 80 B8 */ lwz r0, data_80451AB8(r2) +/* 80009B18 80 02 80 B8 */ lwz r0, lit_4528+0x4(r2) /* 80009B1C 90 61 00 24 */ stw r3, 0x24(r1) /* 80009B20 90 01 00 28 */ stw r0, 0x28(r1) /* 80009B24 88 1F 00 0A */ lbz r0, 0xa(r31) diff --git a/asm/m_Do/m_Do_graphic/retry_captue_frame__FP10view_classP15view_port_classi.s b/asm/m_Do/m_Do_graphic/retry_captue_frame__FP10view_classP15view_port_classi.s deleted file mode 100644 index ac993af2c3..0000000000 --- a/asm/m_Do/m_Do_graphic/retry_captue_frame__FP10view_classP15view_port_classi.s +++ /dev/null @@ -1,79 +0,0 @@ -lbl_8000A160: -/* 8000A160 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8000A164 7C 08 02 A6 */ mflr r0 -/* 8000A168 90 01 00 44 */ stw r0, 0x44(r1) -/* 8000A16C 39 61 00 40 */ addi r11, r1, 0x40 -/* 8000A170 48 35 80 65 */ bl _savegpr_27 -/* 8000A174 C0 04 00 00 */ lfs f0, 0(r4) -/* 8000A178 FC 00 00 1E */ fctiwz f0, f0 -/* 8000A17C D8 01 00 08 */ stfd f0, 8(r1) -/* 8000A180 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8000A184 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c -/* 8000A188 7C 1F 07 34 */ extsh r31, r0 -/* 8000A18C C0 04 00 04 */ lfs f0, 4(r4) -/* 8000A190 FC 00 00 1E */ fctiwz f0, f0 -/* 8000A194 D8 01 00 10 */ stfd f0, 0x10(r1) -/* 8000A198 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8000A19C 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c -/* 8000A1A0 7C 05 07 34 */ extsh r5, r0 -/* 8000A1A4 7C A0 FE 70 */ srawi r0, r5, 0x1f -/* 8000A1A8 7C A0 00 78 */ andc r0, r5, r0 -/* 8000A1AC 7C 1E 07 34 */ extsh r30, r0 -/* 8000A1B0 C0 04 00 08 */ lfs f0, 8(r4) -/* 8000A1B4 FC 00 00 1E */ fctiwz f0, f0 -/* 8000A1B8 D8 01 00 18 */ stfd f0, 0x18(r1) -/* 8000A1BC 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8000A1C0 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c -/* 8000A1C4 7C 1D 07 34 */ extsh r29, r0 -/* 8000A1C8 C0 04 00 0C */ lfs f0, 0xc(r4) -/* 8000A1CC FC 00 00 1E */ fctiwz f0, f0 -/* 8000A1D0 D8 01 00 20 */ stfd f0, 0x20(r1) -/* 8000A1D4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8000A1D8 54 00 00 38 */ rlwinm r0, r0, 0, 0, 0x1c -/* 8000A1DC 7C 1C 07 34 */ extsh r28, r0 -/* 8000A1E0 83 6D 86 50 */ lwz r27, mFrameBufferTex__13mDoGph_gInf_c(r13) -/* 8000A1E4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8000A1E8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8000A1EC 88 03 5E B5 */ lbz r0, 0x5eb5(r3) -/* 8000A1F0 28 00 00 00 */ cmplwi r0, 0 -/* 8000A1F4 40 82 00 84 */ bne lbl_8000A278 -/* 8000A1F8 7C A0 07 35 */ extsh. r0, r5 -/* 8000A1FC 40 80 00 30 */ bge lbl_8000A22C -/* 8000A200 7F 9C 2A 14 */ add r28, r28, r5 -/* 8000A204 7C 05 00 D0 */ neg r0, r5 -/* 8000A208 7C 00 0E 70 */ srawi r0, r0, 1 -/* 8000A20C 38 60 01 30 */ li r3, 0x130 -/* 8000A210 54 04 04 3E */ clrlwi r4, r0, 0x10 -/* 8000A214 80 AD 86 4C */ lwz r5, mFrameBufferTimg__13mDoGph_gInf_c(r13) -/* 8000A218 88 A5 00 00 */ lbz r5, 0(r5) -/* 8000A21C 38 C0 00 00 */ li r6, 0 -/* 8000A220 38 E0 00 00 */ li r7, 0 -/* 8000A224 48 35 39 F9 */ bl GXGetTexBufferSize -/* 8000A228 7F 7B 1A 14 */ add r27, r27, r3 -lbl_8000A22C: -/* 8000A22C 57 E3 04 3E */ clrlwi r3, r31, 0x10 -/* 8000A230 57 C4 04 3E */ clrlwi r4, r30, 0x10 -/* 8000A234 57 A5 04 3E */ clrlwi r5, r29, 0x10 -/* 8000A238 57 86 04 3E */ clrlwi r6, r28, 0x10 -/* 8000A23C 48 35 28 45 */ bl GXSetTexCopySrc -/* 8000A240 7F A0 0E 70 */ srawi r0, r29, 1 -/* 8000A244 54 03 04 3E */ clrlwi r3, r0, 0x10 -/* 8000A248 7F 80 07 34 */ extsh r0, r28 -/* 8000A24C 7C 00 0E 70 */ srawi r0, r0, 1 -/* 8000A250 54 04 04 3E */ clrlwi r4, r0, 0x10 -/* 8000A254 80 AD 86 4C */ lwz r5, mFrameBufferTimg__13mDoGph_gInf_c(r13) -/* 8000A258 88 A5 00 00 */ lbz r5, 0(r5) -/* 8000A25C 38 C0 00 01 */ li r6, 1 -/* 8000A260 48 35 28 D1 */ bl GXSetTexCopyDst -/* 8000A264 7F 63 DB 78 */ mr r3, r27 -/* 8000A268 38 80 00 00 */ li r4, 0 -/* 8000A26C 48 35 32 01 */ bl GXCopyTex -/* 8000A270 48 35 21 05 */ bl GXPixModeSync -/* 8000A274 48 35 43 F1 */ bl GXInvalidateTexAll -lbl_8000A278: -/* 8000A278 39 61 00 40 */ addi r11, r1, 0x40 -/* 8000A27C 48 35 7F A5 */ bl _restgpr_27 -/* 8000A280 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8000A284 7C 08 03 A6 */ mtlr r0 -/* 8000A288 38 21 00 40 */ addi r1, r1, 0x40 -/* 8000A28C 4E 80 00 20 */ blr diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index a1655a0773..24f7e67cb0 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -525,7 +525,7 @@ public: /* 0x12F4 */ dKy_color_data_struct* mResColorDataTbl; /* 0x12F8 */ s8 mFogDensity; /* 0x12F9 */ u8 field_0x12f9; - /* 0x12FA */ u8 field_0x12fa; + /* 0x12FA */ u8 mIsBlure; /* 0x12FB */ u8 field_0x12fb; /* 0x12FC */ s8 field_0x12fc; /* 0x12FD */ u8 mDarktimeWeek; diff --git a/include/f_op/f_op_camera_mng.h b/include/f_op/f_op_camera_mng.h index d022417bad..37ee8dfcbe 100644 --- a/include/f_op/f_op_camera_mng.h +++ b/include/f_op/f_op_camera_mng.h @@ -62,6 +62,10 @@ inline s16 fopCamM_GetAngleY(camera_class* i_camera) { return i_camera->mAngle.y; } +inline f32 fopCamM_GetFovy(camera_class* i_camera) { + return i_camera->mFovy; +} + u32 fopCamM_Create(int i_cameraIdx, s16 pProcName, void* param_3); void fopCamM_Management(void); u32 fopCamM_GetParam(camera_class* pCamera); diff --git a/include/m_Do/m_Do_graphic.h b/include/m_Do/m_Do_graphic.h index 1c24974dc5..d6884266fa 100644 --- a/include/m_Do/m_Do_graphic.h +++ b/include/m_Do/m_Do_graphic.h @@ -62,7 +62,11 @@ public: static void offFade() { mFade = 0; } static u8 isFade() { return mFade; } static void offBlure() { mBlureFlag = false; } + static bool isBlure() { return mBlureFlag; } + static u8 getBlureRate() { return mBlureRate; } + static MtxP getBlureMtx() { return mBlureMtx; } static void offAutoForcus() { data_80450BE7 = 0; } + static bool isAutoForcus() { return data_80450BE7; } static void setTickRate(u32 rate) { JFWDisplay::getManager()->setTickRate(rate); } static void waitBlanking(int wait) { JFWDisplay::getManager()->waitBlanking(wait); } static f32 getWidthF() { return 608.0f; } @@ -81,12 +85,16 @@ public: static ResTIMG* getFrameBufferTimg() { return mFrameBufferTimg; } static ResTIMG* getZbufferTimg() { return mZbufferTimg; } static void* getFrameBufferTex() { return mFrameBufferTex; } + static void* getZbufferTex() { return mZbufferTex; } static void setFadeRate(f32 rate) { mFadeRate = rate; } static f32 getFadeRate() { return mFadeRate; } static bloom_c* getBloom() { return &m_bloom; } static GXColor& getFadeColor() { return mFadeColor; } static GXColor& getBackColor() { return mBackColor; } static void endRender() { JFWDisplay::getManager()->endRender(); } + static GXTexObj* getZbufferTexObj() { return &mZbufferTexObj; } + static GXTexObj* getFrameBufferTexObj() { return &mFrameBufferTexObj; } + static f32 getInvScale() { return 1.0f; } static GXTexObj mFrameBufferTexObj; static GXTexObj mZbufferTexObj; @@ -102,6 +110,7 @@ public: static f32 mFadeRate; static f32 mFadeSpeed; static bool mBlureFlag; + static u8 mBlureRate; static u8 mFade; }; diff --git a/libs/JSystem/J2DGraph/J2DOrthoGraph.cpp b/libs/JSystem/J2DGraph/J2DOrthoGraph.cpp index 16c56f6436..0c2fe29963 100644 --- a/libs/JSystem/J2DGraph/J2DOrthoGraph.cpp +++ b/libs/JSystem/J2DGraph/J2DOrthoGraph.cpp @@ -4,7 +4,6 @@ // #include "JSystem/J2DGraph/J2DOrthoGraph.h" -#include "dol2asm.h" #include "dolphin/gx/GX.h" #include "dolphin/mtx/mtx44.h" #include "dolphin/types.h" @@ -13,40 +12,10 @@ // Forward References: // -extern "C" void __ct__13J2DOrthoGraphFv(); -extern "C" void __ct__13J2DOrthoGraphFffffff(); -extern "C" void setPort__13J2DOrthoGraphFv(); -extern "C" void func_802E980C(); -extern "C" void setLookat__13J2DOrthoGraphFv(); -extern "C" void func_802E987C(); -extern "C" void J2DDrawLine__FffffQ28JUtility6TColori(); -extern "C" void J2DFillBox__FffffQ28JUtility6TColor(); -extern "C" void func_802E9B0C(); -extern "C" void J2DDrawFrame__FffffQ28JUtility6TColorUc(); -extern "C" void func_802E9BE8(); -extern "C" bool getGrafType__13J2DOrthoGraphCFv(); - // // External References: // -extern "C" void __dt__13J2DOrthoGraphFv(); -extern "C" void __ct__14J2DGrafContextFffff(); -extern "C" void setPort__14J2DGrafContextFv(); -extern "C" void setup2D__14J2DGrafContextFv(); -extern "C" void setScissor__14J2DGrafContextFv(); -extern "C" void func_802E90E4(); -extern "C" void -setColor__14J2DGrafContextFQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColor(); -extern "C" void setLineWidth__14J2DGrafContextFUc(); -extern "C" void func_802E9260(); -extern "C" void func_802E9368(); -extern "C" void func_802E9564(); -extern "C" void place__14J2DGrafContextFffff(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); -extern "C" extern void* __vt__14J2DGrafContext[10]; - // // Declarations: // diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index 52266c0325..30b11ef94e 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -1474,7 +1474,7 @@ static void envcolor_init() { undwater_init(); dComIfGs_PolyDamageOff_Set(0); g_env_light.field_0x98c = dComIfGp_roomControl_getStayNo(); - g_env_light.field_0x12fa = 0; + g_env_light.mIsBlure = 0; g_env_light.field_0x12fb = 0; g_env_light.field_0x1300 = -1; g_env_light.field_0x1302 = -1; diff --git a/src/m_Do/m_Do_graphic.cpp b/src/m_Do/m_Do_graphic.cpp index 4ad3a70517..1daa12690d 100644 --- a/src/m_Do/m_Do_graphic.cpp +++ b/src/m_Do/m_Do_graphic.cpp @@ -9,33 +9,28 @@ #include "JSystem/JUtility/JUTDbPrint.h" #include "JSystem/JUtility/JUTProcBar.h" #include "JSystem/JUtility/JUTTexture.h" +#include "JSystem/JUtility/JUTConsole.h" +#include "JSystem/J2DGraph/J2DOrthoGraph.h" +#include "JSystem/J2DGraph/J2DPrint.h" #include "SSystem/SComponent/c_lib.h" +#include "SSystem/SComponent/c_math.h" #include "d/a/d_a_player.h" #include "d/com/d_com_inf_game.h" #include "d/menu/d_menu_collect.h" #include "dol2asm.h" #include "dolphin/types.h" #include "f_ap/f_ap_game.h" +#include "f_op/f_op_actor_mng.h" #include "global.h" #include "m_Do/m_Do_controller_pad.h" #include "m_Do/m_Do_machine.h" #include "m_Do/m_Do_mtx.h" +#include "m_Do/m_Do_main.h" // // Types: // -struct J2DPrint { - /* 802F4658 */ static void setBuffer(u32); -}; - -struct J2DOrthoGraph { - /* 8000B118 */ ~J2DOrthoGraph(); - /* 802E96D0 */ J2DOrthoGraph(f32, f32, f32, f32, f32, f32); - /* 802E97B4 */ void setPort(); - /* 802E980C */ void setOrtho(JGeometry::TBox2 const&, f32, f32); -}; - // // Forward References: // @@ -227,7 +222,7 @@ bool mDoGph_gInf_c::mBlureFlag; #pragma push #pragma force_active on -static bool data_80450BE5; +u8 mDoGph_gInf_c::mBlureRate; u8 mDoGph_gInf_c::mFade; @@ -409,10 +404,10 @@ static asm void darwFilter(_GXColor param_0) { SECTION_SDATA2 static f32 lit_4131 = 255.0f; /* 80008330-8000841C 002C70 00EC+00 1/1 0/0 0/0 .text calcFade__13mDoGph_gInf_cFv */ -// li instead of addi +// Matches with literals #ifdef NONMATCHING void mDoGph_gInf_c::calcFade() { - if (mDoGph_gInf_c::mFade == 1) { + if (mDoGph_gInf_c::mFade != 0) { mFadeRate += mFadeSpeed; if (mFadeRate < 0.0f) { @@ -468,7 +463,7 @@ int mDoGph_BeforeOfDraw() { } /* 80008474-80008630 002DB4 01BC+00 0/0 1/0 0/0 .text mDoGph_AfterOfDraw__Fv */ -// r6 / r7 swapped +// Matches with literals #ifdef NONMATCHING int mDoGph_AfterOfDraw() { if (fapGmHIO_isMenu()) { @@ -477,7 +472,7 @@ int mDoGph_AfterOfDraw() { JUTDbPrint::getManager()->setVisible(true); } else { int sysConsole_visible = JFWSystem::getSystemConsole()->isVisible(); - int port3_connected = mDoCPd_c::isConnect(PAD_3); + s32 port3_connected = mDoCPd_c::isConnect(PAD_3); BOOL procBar_visible = port3_connected && fapGmHIO_getMeter() && !sysConsole_visible; BOOL console_visible = port3_connected && fapGmHIO_isPrint(); @@ -521,7 +516,7 @@ asm void mDoGph_AfterOfDraw() { /* ############################################################################################## */ /* 80450598-8045059C 000018 0004+00 1/1 0/0 0/0 .sdata l_tevColor0$4208 */ -SECTION_SDATA static u8 l_tevColor0[4] = { +SECTION_SDATA static GXColorS10 l_tevColor0 = { 0x00, 0x00, 0x00, @@ -529,12 +524,12 @@ SECTION_SDATA static u8 l_tevColor0[4] = { }; /* 8045059C-804505A0 00001C 0004+00 1/1 0/0 0/0 .sdata None */ -SECTION_SDATA static u8 data_8045059C[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; +// SECTION_SDATA static u8 data_8045059C[4] = { +// 0x00, +// 0x00, +// 0x00, +// 0x00, +// }; /* 80451A48-80451A4C 000048 0004+00 1/1 0/0 0/0 .sdata2 @4422 */ SECTION_SDATA2 static f32 lit_4422 = -255.0f; @@ -563,7 +558,7 @@ SECTION_SDATA2 static u8 lit_4428[8] = { SECTION_SDATA2 static f32 lit_4429 = 280.0f; /* 80451A74-80451A78 000074 0004+00 1/1 0/0 0/0 .sdata2 @4430 */ -SECTION_SDATA2 static f32 lit_4430 = 4.0f / 5.0f; +SECTION_SDATA2 static f32 lit_4430 = 0.8f; /* 80451A78-80451A7C 000078 0004+00 1/1 0/0 0/0 .sdata2 @4431 */ SECTION_SDATA2 static f32 lit_4431 = -180.0f; @@ -581,13 +576,13 @@ SECTION_SDATA2 static f32 lit_4434 = 999999.0f; SECTION_SDATA2 static f32 lit_4435 = 80.0f; /* 80451A8C-80451A90 00008C 0004+00 1/1 0/0 0/0 .sdata2 @4436 */ -SECTION_SDATA2 static f32 lit_4436 = 1.0f / 10.0f; +SECTION_SDATA2 static f32 lit_4436 = 0.1f; /* 80451A90-80451A94 000090 0004+00 1/1 0/0 0/0 .sdata2 @4437 */ SECTION_SDATA2 static f32 lit_4437 = 100.0f; /* 80451A94-80451A98 000094 0004+00 1/1 0/0 0/0 .sdata2 @4438 */ -SECTION_SDATA2 static f32 lit_4438 = 9.999999747378752e-05f; +SECTION_SDATA2 static f32 lit_4438 = 0.0001f; /* 80451A98-80451A9C 000098 0004+00 1/1 0/0 0/0 .sdata2 @4439 */ SECTION_SDATA2 static f32 lit_4439 = -254.0f; @@ -596,13 +591,198 @@ SECTION_SDATA2 static f32 lit_4439 = -254.0f; SECTION_SDATA2 static f32 lit_4440 = 509.0f; /* 80451AA0-80451AA4 0000A0 0004+00 1/1 0/0 0/0 .sdata2 @4441 */ -SECTION_SDATA2 static f32 lit_4441 = 0.0024999999441206455f; +SECTION_SDATA2 static f32 lit_4441 = 0.0025f; /* 80451AA4-80451AA8 0000A4 0004+00 1/1 0/0 0/0 .sdata2 @4442 */ -SECTION_SDATA2 static f32 lit_4442 = -0.0024999999441206455f; +SECTION_SDATA2 static f32 lit_4442 = -0.0025f; /* 80008630-80009184 002F70 0B54+00 1/1 0/0 0/0 .text * drawDepth2__FP10view_classP15view_port_classi */ +// regalloc +#ifdef NONMATCHING +static void drawDepth2(view_class* param_0, view_port_class* param_1, int param_2) { + if (dComIfGp_getLinkPlayer() == NULL) { + return; + } + + if ((s32)data_80450BE7 != 0) { + f32 auStack_d8[7]; + f32 auStack_f0[6]; + f32 auStack_110; + f32 auStack_114; + f32 local_118; + GXGetProjectionv(auStack_d8); + GXGetViewportv(auStack_f0); + GXProject(param_0->mLookat.mCenter.x, param_0->mLookat.mCenter.y, + param_0->mLookat.mCenter.z, (MtxP)param_0->mViewMtx, (f32*)auStack_d8, (f32*)auStack_f0, + &auStack_110, &auStack_114, &local_118); + } + + camera_class* local_120 = dComIfGp_getCamera(0); + f32 f30 = -255.0f; + if (dCam_getBody()->mNextMode != 4 && dCam_getBody()->mNextMode != 7) { + camera_class* local_128 = dComIfGp_getCamera(i_dComIfGp_getPlayerCameraID(0)); + dAttention_c& local_12c = dComIfGp_getAttention(); + f32 f31 = 60.0f / (local_128 ? fopCamM_GetFovy(local_128) : 48.0f); + if (local_12c.LockonTruth()) { + fopAc_ac_c* local_130 = fopAcM_SearchByID(daPy_getLinkPlayerActorClass()->getAtnActorID()); + if (local_130 != NULL) { + cXyz cStack_100 = local_130->mEyePos; + if (fabsf(cStack_100.y - local_120->mLookat.mEye.y) < 400.0f) { + cStack_100.y = local_120->mLookat.mEye.y; + } + f32 fVar2 = (local_130->current.pos.abs(local_120->mLookat.mEye)) / (280.0f * f31); + fVar2 -= 0.8f; + if (fVar2 < 0.0f) { + fVar2 = 0.0f; + } else if (fVar2 > 1.0f) { + fVar2 = 1.0f; + } + f30 = -180.0f - 75.0f * fVar2; + } + } else { + if (g_dComIfG_gameInfo.play.getEvent().runCheck() && f31 < 3.0f && g_env_light.field_0x126c < 999999.0f) { + f32 fVar2 = g_env_light.field_0x126c / (80.0f * f31); + fVar2 -= 0.8f; + if (fVar2 < 0.0f) { + fVar2 = 0.0f; + } else if (fVar2 > 1.0f) { + fVar2 = 1.0f; + } + f30 = -180.0f - 75.0f * fVar2; + } + } + } + + cLib_addCalc(&g_env_light.field_0x1264, f30, 0.1f, 100.0f, 0.0001f); + l_tevColor0.a = g_env_light.field_0x1264; + if (l_tevColor0.a <= -254) { + l_tevColor0.a = -255; + } + + s16 x_orig = (int)param_1->mXOrig & ~7; + s16 y_orig = (int)param_1->mYOrig & ~7; + s16 y_orig_pos = y_orig < 0 ? 0 : y_orig; + s16 width = (int)param_1->mWidth & ~7; + s16 height = (int)param_1->mHeight & ~7; + void* zBufferTex = mDoGph_gInf_c::mZbufferTex; + void* frameBufferTex = mDoGph_gInf_c::mFrameBufferTex; + + if (y_orig < 0) { + height += y_orig; + s16 tmp_y_orig = -y_orig >> 1; + zBufferTex = (char*)zBufferTex + GXGetTexBufferSize(304, tmp_y_orig, + GX_TF_IA8, + GX_FALSE, 0); + frameBufferTex = (char*)frameBufferTex + GXGetTexBufferSize(304, tmp_y_orig, + mDoGph_gInf_c::getFrameBufferTimg()->format, + GX_FALSE, 0); + } + u16 halfWidth = width >> 1; + u16 halfHeight = height >> 1; + GXSetCopyFilter(GX_FALSE, NULL, GX_TRUE, JUTGetVideoManager()->getRenderMode()->vfilter); + GXSetTexCopySrc(x_orig, y_orig_pos, width, height); + GXSetTexCopyDst(halfWidth, halfHeight, GX_TF_Z16, GX_TRUE); + GXCopyTex(zBufferTex, GX_FALSE); + GXSetTexCopySrc(x_orig, y_orig_pos, width, height); + GXSetTexCopyDst(halfWidth, halfHeight, mDoGph_gInf_c::getFrameBufferTimg()->format, GX_TRUE); + GXCopyTex(frameBufferTex, GX_FALSE); + GXInitTexObj(mDoGph_gInf_c::getZbufferTexObj(), zBufferTex, halfWidth, halfHeight, GX_TF_IA8, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(mDoGph_gInf_c::getZbufferTexObj(), GX_NEAR, GX_NEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXInitTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), frameBufferTex, halfWidth, halfHeight, (GXTexFmt)mDoGph_gInf_c::getFrameBufferTimg()->format, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(mDoGph_gInf_c::getFrameBufferTexObj(), GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXPixModeSync(); + GXInvalidateTexAll(); + GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP1); + GXLoadTexObj(mDoGph_gInf_c::getZbufferTexObj(), GX_TEXMAP0); + if (0.0f != g_env_light.mDemoAttentionPoint) { + if (g_env_light.mDemoAttentionPoint >= 0.0f) { + l_tevColor0.a = -254.0f + 509.0f * g_env_light.mDemoAttentionPoint; + } else { + l_tevColor0.a = -254.0f + 509.0f * (1.0f + g_env_light.mDemoAttentionPoint); + } + } + GXSetTevColorS10(GX_TEVREG0, l_tevColor0); + GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_ALPHA, GX_CH_GREEN, GX_CH_BLUE, GX_CH_RED); + GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP3); + GXSetTevKAlphaSel(GX_TEVSTAGE0, GX_TEV_KASEL_1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_KONST, GX_CA_TEXA, GX_CA_KONST, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_COMP_A8_EQ, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_APREV, GX_CA_TEXA, GX_CA_A0); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_4, GX_TRUE, GX_TEVPREV); + + GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD1, GX_TEXMAP1, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); + GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + + GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD2, GX_TEXMAP1, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE3, GX_CC_CPREV, GX_CC_TEXC, GX_CC_HALF, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE3, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_APREV); + GXSetTevAlphaOp(GX_TEVSTAGE3, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + + GXSetZCompLoc(GX_TRUE); + GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE); + if (g_env_light.mDemoAttentionPoint >= 0.0f) { + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR); + GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0); + } else { + GXSetBlendMode(GX_BM_BLEND, GX_BL_INV_SRC_ALPHA, GX_BL_SRC_ALPHA, GX_LO_CLEAR); + GXSetAlphaCompare(GX_LESS, 0xff, GX_AOP_OR, GX_LESS, 0xff); + } + + GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor); + GXSetCullMode(GX_CULL_NONE); + GXSetDither(GX_TRUE); + GXSetNumIndStages(0); + Mtx44 ortho; + C_MTXOrtho(ortho, param_1->mYOrig, param_1->mYOrig + param_1->mHeight, param_1->mXOrig, param_1->mXOrig + param_1->mWidth, 0.0f, 10.0f); + GXLoadPosMtxImm(mDoMtx_getIdentity(), 0); + mDoMtx_stack_c::transS(0.0025f, 0.0025f, 0.0f); + GXLoadTexMtxImm(mDoMtx_stack_c::get(), 0x1e, GX_MTX2x4); + mDoMtx_stack_c::transS(-0.0025f, -0.0025f, 0.0f); + GXLoadTexMtxImm(mDoMtx_stack_c::get(), 0x21, GX_MTX2x4); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S16, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_S8, 0); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c, GX_FALSE, 0x7d); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, 0x1e, GX_FALSE, 0x7d); + GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX0, 0x21, GX_FALSE, 0x7d); + GXSetNumChans(0); + GXSetNumTexGens(3); + GXSetNumTevStages(4); + GXSetProjection(ortho, GX_ORTHOGRAPHIC); + GXSetCurrentMtx(0); + + if (l_tevColor0.a > -255) { + GXBegin(GX_QUADS, GX_VTXFMT0, 4); + i_GXPosition3s16(x_orig, y_orig, -5); + GXTexCoord2s8(0,0); + i_GXPosition3s16(width, y_orig, -5); + GXTexCoord2s8(1,0); + i_GXPosition3s16(width, height, -5); + GXTexCoord2s8(1,1); + i_GXPosition3s16(x_orig, height, -5); + GXTexCoord2s8(0,1); + i_GXEnd(); + } + + GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA); + GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP0); + GXSetProjection(param_0->mProjMtx, GX_PERSPECTIVE); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -611,6 +791,7 @@ static asm void drawDepth2(view_class* param_0, view_port_class* param_1, int pa #include "asm/m_Do/m_Do_graphic/drawDepth2__FP10view_classP15view_port_classi.s" } #pragma pop +#endif /* 80009184-800091C0 003AC4 003C+00 0/0 53/53 0/0 .text __dt__4cXyzFv */ #pragma push @@ -632,6 +813,64 @@ SECTION_SDATA2 static f32 lit_4481 = 608.0f; /* 800091C0-800094B4 003B00 02F4+00 1/1 0/0 0/0 .text trimming__FP10view_classP15view_port_class */ +// Matches with literals +#ifdef NONMATCHING +static void trimming(view_class* param_0, view_port_class* param_1) { + s16 y_orig = (int)param_1->mYOrig & ~7; + s16 y_orig_pos = y_orig < 0 ? 0 : y_orig; + if ((y_orig_pos == 0) && (param_1->mScissor.mYOrig != param_1->mYOrig || + (param_1->mScissor.mHeight != param_1->mHeight))) + { + s32 sc_top = (int)param_1->mScissor.mYOrig; + s32 sc_bottom = param_1->mScissor.mYOrig + param_1->mScissor.mHeight; + GXSetNumChans(1); + GXSetChanCtrl(GX_ALPHA0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE); + GXSetNumTexGens(0); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetZCompLoc(1); + GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE); + GXSetBlendMode(GX_BM_NONE, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); + GXSetFog(GX_FOG_NONE, 0.0f, + 0.0f, 0.0f, + 0.0f, g_clearColor); + GXSetCullMode(GX_CULL_NONE); + GXSetDither(GX_TRUE); + GXSetNumIndStages(0); + Mtx44 ortho; + C_MTXOrtho( + ortho, + 0.0f, 448.0f, + 0.0f, 608.0f, + 0.0f, 10.0f); + GXLoadPosMtxImm(mDoMtx_getIdentity(), 0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGBA4, 0); + GXSetProjection(ortho, GX_ORTHOGRAPHIC); + GXSetCurrentMtx(0); + GXBegin(GX_QUADS, GX_VTXFMT0, 8); + i_GXPosition3s16(0, 0, -5); + i_GXPosition3s16(0x260, 0, -5); + i_GXPosition3s16(0x280, sc_top, -5); + i_GXPosition3s16(0, sc_top, -5); + i_GXPosition3s16(0, sc_bottom, -5); + i_GXPosition3s16(0x280, sc_bottom, -5); + i_GXPosition3s16(0x280, 0x1c0, -5); + i_GXPosition3s16(0, 0x1c8, -5); + i_GXEnd(); + } + GXSetScissor(param_1->mScissor.mXOrig, param_1->mScissor.mYOrig, + param_1->mScissor.mWidth, param_1->mScissor.mHeight); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -640,6 +879,7 @@ static asm void trimming(view_class* param_0, view_port_class* param_1) { #include "asm/m_Do/m_Do_graphic/trimming__FP10view_classP15view_port_class.s" } #pragma pop +#endif /* 800094B4-80009544 003DF4 0090+00 2/2 1/1 0/0 .text mDoGph_drawFilterQuad__FScSc */ void mDoGph_drawFilterQuad(s8 param_0, s8 param_1) { @@ -682,34 +922,209 @@ void mDoGph_gInf_c::bloom_c::remove() { /* ############################################################################################## */ /* 80451AB4-80451AB8 0000B4 0004+00 1/1 0/0 0/0 .sdata2 @4528 */ -SECTION_SDATA2 static u8 lit_4528[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 80451AB8-80451ABC 0000B8 0004+00 1/1 0/0 0/0 .sdata2 None */ -SECTION_SDATA2 static u32 data_80451AB8 = 0x00000040; +SECTION_SDATA2 static GXColorS10 lit_4528 = {0, 0, 0, 0x40}; /* 80451ABC-80451AC0 0000BC 0004+00 1/1 0/0 0/0 .sdata2 @4592 */ SECTION_SDATA2 static f32 lit_4592 = 4.0f; -/* 80451AC0-80451AC8 0000C0 0004+04 1/1 0/0 0/0 .sdata2 @4593 */ -SECTION_SDATA2 static f32 lit_4593[1 + 1 /* padding */] = { - 0.00015624999650754035f, - /* padding */ - 0.0f, -}; +/* 80451AC0-80451AC8 0000C0 0004+04 1/1 0/0 0f/0 .sdata2 @4593 */ +SECTION_SDATA2 static f32 lit_4593 = 1.0f / 6400.0f; /* 80451AC8-80451AD0 0000C8 0008+00 1/1 0/0 0/0 .sdata2 @4595 */ SECTION_SDATA2 static f64 lit_4595 = 4503599627370496.0 /* cast u32 to float */; /* 80456B60-80456B68 000000 0004+04 1/1 0/0 0/0 .sbss2 @4530 */ -SECTION_SBSS2 static u8 lit_4530[4 + 4 /* padding */]; +SECTION_SBSS2 static GXColor lit_4530; + +static inline void GXSetTexCoordGen(GXTexCoordID param_1, GXTexGenType param_2, GXTexGenSrc param_3, u32 param_4){ + GXSetTexCoordGen2(param_1, param_2, param_3, param_4, GX_FALSE, 0x7d); +} /* 80009650-8000A160 003F90 0B10+00 1/1 0/0 0/0 .text draw__Q213mDoGph_gInf_c7bloom_cFv */ +// Matches with literals +#ifdef NONMATCHING +void mDoGph_gInf_c::bloom_c::draw() { + bool enabled = false; + enabled = mEnable && m_buffer != NULL; + if (mMonoColor.a != 0 || enabled) { + GXSetViewport(0.0f, 0.0f, 608.0f, 448.0f, 0.0f, 1.0f); + GXSetScissor(0, 0, 0x260, 0x1c0); + GXLoadTexObj(getFrameBufferTexObj(), GX_TEXMAP0); + GXSetNumChans(0); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c); + GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_GREEN); + GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA); + GXSetZCompLoc(1); + GXSetZMode(0, GX_ALWAYS, 0); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); + GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor); + GXSetFogRangeAdj(0, 0, 0); + GXSetCullMode(GX_CULL_NONE); + GXSetDither(1); + Mtx44 ortho; + C_MTXOrtho(ortho, 0.0f, 4.0f, 0.0f, 4.0f, 0.0f, 10.0f); + GXLoadPosMtxImm(mDoMtx_getIdentity(), 0); + GXSetProjection(ortho, GX_ORTHOGRAPHIC); + GXSetCurrentMtx(0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGB, GX_RGB8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGB8, 0); + if (mMonoColor.a != 0) { + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_C2, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A2); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP1, GX_TEV_SWAP1); + GXSetTevColor(GX_TEVREG2, mMonoColor); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR); + mDoGph_drawFilterQuad(4, 4); + } + if (enabled) { + GXSetTexCopySrc(0, 0, 0x130, 0xe0); + GXSetTexCopyDst(0x130, 0xe0, 6, 0); + GXCopyTex(m_buffer, 0); + GXSetNumTevStages(3); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_TEXC, GX_CC_TEXA, GX_CC_HALF, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP1, GX_TEV_SWAP1); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE1, GX_CC_TEXC, GX_CC_CPREV, GX_CC_HALF, GX_CC_C0); + GXSetTevColorOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE1, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE1, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevSwapMode(GX_TEVSTAGE1, GX_TEV_SWAP3, GX_TEV_SWAP3); + GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE2, GX_CC_ZERO, GX_CC_TEXC, GX_CC_CPREV, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE2, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetBlendMode(GX_BM_NONE, GX_BL_ZERO, GX_BL_ZERO, GX_LO_OR); + GXColorS10 tevColor0 = lit_4528; + tevColor0.r = -mPoint; + tevColor0.g = -mPoint; + tevColor0.b = -mPoint; + GXSetTevColorS10(GX_TEVREG0,tevColor0); + GXColor tevColor1 = lit_4530; + tevColor1.r = mBlureRatio; + tevColor1.g = mBlureRatio; + tevColor1.b = mBlureRatio; + tevColor1.a = mBlureRatio; + GXSetTevColor(GX_TEVREG1, tevColor1); + GXPixModeSync(); + mDoGph_drawFilterQuad(2, 2); + GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA); + GXSetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP0); + GXSetTevSwapMode(GX_TEVSTAGE1, GX_TEV_SWAP0, GX_TEV_SWAP0); + void* zBufferTex = getZbufferTex(); + GXSetTexCopySrc(0, 0, 0x130, 0xe0); + GXSetTexCopyDst(0x98, 0x70, 6, GX_TRUE); + GXCopyTex(zBufferTex, 0); + GXTexObj auStack_c0; + GXInitTexObj(&auStack_c0, zBufferTex, 0x98, 0x70, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&auStack_c0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&auStack_c0, GX_TEXMAP0); + GXSetNumTexGens(8); + u32 iVar11 = 0x1e; + s16 sVar10 = 0; + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c); + for (int texCoord = (int)GX_TEXCOORD1; texCoord < (int)GX_MAXCOORD; texCoord++, iVar11 += 3, sVar10 += 0x2492) { + GXSetTexCoordGen((GXTexCoordID) texCoord, GX_TG_MTX2x4, GX_TG_TEX0, iVar11); + f32 dVar15 = mBlureSize * (1.0f / 6400.0f); + mDoMtx_stack_c::transS( + (dVar15 * cM_scos(sVar10)) * getInvScale(), + dVar15 * cM_ssin(sVar10), + 0.0f); + GXLoadTexMtxImm(mDoMtx_stack_c::get(), iVar11, GX_MTX2x4); + } + GXSetNumTevStages(8); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + for (int tevStage = (int)GX_TEVSTAGE1; tevStage < 8; tevStage++) { + GXSetTevOrder((GXTevStageID)tevStage, (GXTexCoordID)tevStage, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn((GXTevStageID)tevStage, GX_CC_ZERO, GX_CC_TEXC, GX_CC_A1, GX_CC_CPREV); + GXSetTevColorOp((GXTevStageID)tevStage, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevAlphaIn((GXTevStageID)tevStage, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); + GXSetTevAlphaOp((GXTevStageID)tevStage, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + } + GXPixModeSync(); + mDoGph_drawFilterQuad(1, 1); + GXSetTexCopySrc(0, 0, 0x98, 0x70); + GXSetTexCopyDst(0x4c, 0x38, 6, GX_TRUE); + GXCopyTex(zBufferTex, GX_FALSE); + GXTexObj auStack_e0; + GXInitTexObj(&auStack_e0, zBufferTex, 0x4c, 0x38, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&auStack_c0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&auStack_e0, GX_TEXMAP0); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR); + GXPixModeSync(); + GXInvalidateTexAll(); + mDoGph_drawFilterQuad(1, 1); + GXSetTexCopySrc(0, 0, 0x98, 0x70); + GXSetTexCopyDst(0x98, 0x70, 6, GX_FALSE); + GXCopyTex(zBufferTex, GX_FALSE); + GXInitTexObj(&auStack_e0, m_buffer, 0x130, 0xe0, GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&auStack_e0, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1); + GXLoadTexObj(&auStack_e0, GX_TEXMAP0); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x3c); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetBlendMode(GX_BM_NONE, GX_BL_ONE, GX_BL_ONE, GX_LO_OR); + mDoGph_drawFilterQuad(2, 2); + GXLoadTexObj(&auStack_c0, GX_TEXMAP0); + GXSetTevColor(GX_TEVREG0, mBlendColor); + GXSetNumTevStages(1); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_TEXC, GX_CC_C0, GX_CC_ZERO); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXBlendFactor blendFactor; + if (mMode == 1) { + blendFactor = GX_BL_INV_DST_COLOR; + } else { + blendFactor = GX_BL_ONE; + } + GXSetBlendMode(GX_BM_BLEND, blendFactor, GX_BL_SRC_ALPHA, GX_LO_OR); + GXPixModeSync(); + GXInvalidateTexAll(); + mDoGph_drawFilterQuad(4, 4); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -718,22 +1133,24 @@ asm void mDoGph_gInf_c::bloom_c::draw() { #include "asm/m_Do/m_Do_graphic/draw__Q213mDoGph_gInf_c7bloom_cFv.s" } #pragma pop +#endif /* 8000A160-8000A290 004AA0 0130+00 1/1 0/0 0/0 .text * retry_captue_frame__FP10view_classP15view_port_classi */ -#ifdef NONMATCHING static void retry_captue_frame(view_class* param_0, view_port_class* param_1, int param_2) { - s16 width; s16 x_orig; s16 y_orig; + s16 y_orig_pos; + s16 width; s16 height; void* tex; x_orig = (int)param_1->mXOrig & 0xFFFFFFF8; y_orig = (int)param_1->mYOrig & 0xFFFFFFF8; + y_orig_pos = y_orig < 0 ? 0 : y_orig; width = (int)param_1->mWidth & 0xFFFFFFF8; height = (int)param_1->mHeight & 0xFFFFFFF8; - tex = mDoGph_gInf_c::getFrameBufferTex(); + tex = mDoGph_gInf_c::mFrameBufferTex; if (!dComIfGp_isPauseFlag()) { if (y_orig < 0) { @@ -744,7 +1161,7 @@ static void retry_captue_frame(view_class* param_0, view_port_class* param_1, in GX_FALSE, 0); } - GXSetTexCopySrc(x_orig, y_orig, width, height); + GXSetTexCopySrc(x_orig, y_orig_pos, width, height); GXSetTexCopyDst(width >> 1, height >> 1, mDoGph_gInf_c::getFrameBufferTimg()->format, GX_TRUE); GXCopyTex(tex, GX_FALSE); @@ -752,18 +1169,55 @@ static void retry_captue_frame(view_class* param_0, view_port_class* param_1, in GXInvalidateTexAll(); } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void retry_captue_frame(view_class* param_0, view_port_class* param_1, int param_2) { - nofralloc -#include "asm/m_Do/m_Do_graphic/retry_captue_frame__FP10view_classP15view_port_classi.s" -} -#pragma pop -#endif /* 8000A290-8000A504 004BD0 0274+00 1/1 0/0 0/0 .text motionBlure__FP10view_class */ +// Matches with literals +#ifdef NONMATCHING +static void motionBlure(view_class* param_0) { + if (g_env_light.mIsBlure) { + GXLoadTexObj(mDoGph_gInf_c::getFrameBufferTexObj(), GX_TEXMAP0); + GXColor local_60; + local_60.a = mDoGph_gInf_c::getBlureRate(); + GXSetNumChans(0); + GXSetNumTexGens(1); + GXSetTexCoordGen(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, 0x1e); + GXSetNumTevStages(1); + GXSetTevColor(GX_TEVREG0, local_60); + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR_NULL); + GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_TEXC); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetZCompLoc(1); + GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0); + GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor); + GXSetCullMode(GX_CULL_NONE); + GXSetDither(GX_TRUE); + Mtx44 ortho; + C_MTXOrtho(ortho, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 10.0f); + GXLoadPosMtxImm(mDoMtx_getIdentity(), 0); + GXLoadTexMtxImm(mDoGph_gInf_c::getBlureMtx(), 0x1e, GX_MTX2x4); + GXSetProjection(ortho, GX_ORTHOGRAPHIC); + GXSetCurrentMtx(0); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_DIRECT); + GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGB, GX_RGB8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGB8, 0); + mDoGph_drawFilterQuad(1, 1); + GXSetProjection(param_0->mProjMtx, GX_PERSPECTIVE); + } + if (mDoGph_gInf_c::isBlure()) { + g_env_light.mIsBlure = 1; + } else { + g_env_light.mIsBlure = 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -772,7 +1226,7 @@ static asm void motionBlure(view_class* param_0) { #include "asm/m_Do/m_Do_graphic/motionBlure__FP10view_class.s" } #pragma pop - +#endif /* ############################################################################################## */ /* 80451AD0-80451AD4 0000D0 0004+00 1/1 0/0 0/0 .sdata2 @4641 */ SECTION_SDATA2 static f32 lit_4641 = -35000.0f; @@ -859,7 +1313,7 @@ SECTION_SDATA2 static f32 lit_5031[1 + 1 /* padding */] = { }; /* 8000A604-8000B118 004F44 0B14+00 0/0 1/0 0/0 .text mDoGph_Painter__Fv */ -// lots of regalloc / various issues +// Matches without literals #ifdef NONMATCHING int mDoGph_Painter() { dComIfGp_particle_calcMenu(); @@ -874,8 +1328,8 @@ int mDoGph_Painter() { GXSetDither(GX_ENABLE); J2DOrthoGraph ortho(0.0f, 0.0f, 608.0f, 448.0f, -1.0f, 1.0f); - ortho.setOrtho(JGeometry::TBox2(mDoGph_gInf_c::getHeightF(), mDoGph_gInf_c::getWidthF(), - mDoGph_gInf_c::getMinYF(), mDoGph_gInf_c::getMinXF()), + ortho.setOrtho(JGeometry::TBox2(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(), + mDoGph_gInf_c::getWidthF(), mDoGph_gInf_c::getHeightF()), -1.0f, 1.0f); ortho.setPort(); @@ -953,7 +1407,7 @@ int mDoGph_Painter() { GXInvalidateTexAll(); GXSetClipMode(GX_CLIP_ENABLE); - if (g_env_light.field_0x12fa == 0) { + if (g_env_light.mIsBlure == 0) { dComIfGd_drawOpaListInvisible(); dComIfGd_drawXluListInvisible(); } @@ -978,7 +1432,7 @@ int mDoGph_Painter() { retry_captue_frame(camera_p, view_port, dComIfGp_getCameraZoomForcus(camera_id)); GXSetClipMode(GX_CLIP_ENABLE); - if (g_env_light.field_0x12fa == 1) { + if (g_env_light.mIsBlure == 1) { dComIfGd_drawOpaListInvisible(); dComIfGd_drawXluListInvisible(); } @@ -995,13 +1449,13 @@ int mDoGph_Painter() { GXSetViewport(0.0f, 0.0f, 608.0f, 448.0f, 0.0f, 1.0f); + Mtx m2; Mtx44 m; C_MTXPerspective(m, 60.0f, 1.357143f, 1.0f, 100000.0f); GXSetProjection(m, GX_PERSPECTIVE); cXyz sp38c(0.0f, 0.0f, -2.0f); cXyz sp398(0.0f, 1.0f, 0.0f); - Mtx m2; mDoMtx_lookAt(m2, &sp38c, &cXyz::Zero, &sp398, 0); j3dSys.setViewMtx(m2); dComIfGd_drawXluList2DScreen(); @@ -1010,13 +1464,13 @@ int mDoGph_Painter() { GXSetProjection(camera_p->mProjMtx, GX_PERSPECTIVE); j3dSys.reinitGX(); - if ((g_env_light.mCameraInWater || - !strcmp(dComIfGp_getStartStageName(), "D_MN08")) && - mDoGph_gInf_c::getBloom()->getEnable() && - mDoGph_gInf_c::getBloom()->getMonoColor()) - { - retry_captue_frame(camera_p, view_port, - dComIfGp_getCameraZoomForcus(camera_id)); + if ((g_env_light.mCameraInWater || !strcmp(dComIfGp_getStartStageName(), "D_MN08"))) { + u8 enable = mDoGph_gInf_c::getBloom()->getEnable(); + GXColor color = *mDoGph_gInf_c::getBloom()->getMonoColor(); + if (color.a != 0 || enable) { + retry_captue_frame(camera_p, view_port, + dComIfGp_getCameraZoomForcus(camera_id)); + } } mDoGph_gInf_c::getBloom()->draw(); @@ -1025,8 +1479,8 @@ int mDoGph_Painter() { dComIfGd_drawOpaList3Dlast(); ortho.setOrtho( - JGeometry::TBox2(mDoGph_gInf_c::getHeightF(), mDoGph_gInf_c::getWidthF(), - mDoGph_gInf_c::getMinYF(), mDoGph_gInf_c::getMinXF()), + JGeometry::TBox2(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(), + mDoGph_gInf_c::getWidthF(), mDoGph_gInf_c::getHeightF()), 100000.0f, -100000.0f); ortho.setPort(); @@ -1037,7 +1491,7 @@ int mDoGph_Painter() { trimming(camera_p, view_port); - if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") && !mDoGph_gInf_c::isFade()) { + if (strcmp(dComIfGp_getStartStageName(), "F_SP127") != 0 && (mDoGph_gInf_c::mFade & 0x80) == 0) { mDoGph_gInf_c::calcFade(); } } @@ -1048,8 +1502,8 @@ int mDoGph_Painter() { dDlst_list_c::calcWipe(); j3dSys.reinitGX(); - ortho.setOrtho(JGeometry::TBox2(mDoGph_gInf_c::getHeightF(), mDoGph_gInf_c::getWidthF(), - mDoGph_gInf_c::getMinYF(), mDoGph_gInf_c::getMinXF()), + ortho.setOrtho(JGeometry::TBox2(mDoGph_gInf_c::getMinXF(), mDoGph_gInf_c::getMinYF(), + mDoGph_gInf_c::getWidthF(), mDoGph_gInf_c::getHeightF()), 100000.0f, -100000.0f); ortho.setPort(); @@ -1076,10 +1530,10 @@ int mDoGph_Painter() { dComIfGd_draw2DXlu(); if (!dComIfGp_isPauseFlag()) { - dComIfGp_particle_draw2Dback(&draw_info3); + dComIfGp_particle_draw2Dfore(&draw_info3); } - if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") && !mDoGph_gInf_c::isFade()) { + if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0 || (mDoGph_gInf_c::mFade & 0x80) != 0) { mDoGph_gInf_c::calcFade(); } @@ -1104,7 +1558,8 @@ asm void mDoGph_Painter() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DOrthoGraph::~J2DOrthoGraph() { +//asm J2DOrthoGraph::~J2DOrthoGraph() { +asm void __dt__13J2DOrthoGraphFv() { nofralloc #include "asm/m_Do/m_Do_graphic/__dt__13J2DOrthoGraphFv.s" } From 7aad5e63705b1f7d6dd9b462feb9a7ff19d10303 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Fri, 7 Jul 2023 21:04:10 +0300 Subject: [PATCH 35/35] Work on JPAEmitterManager --- Progress.md | 8 +- .../calcYBBCam__17JPAEmitterManagerFv.s | 78 ------------------- include/JSystem/JGeometry.h | 39 ++++++++++ include/JSystem/JParticle/JPAParticle.h | 5 ++ include/dolphin/mtx/vec.h | 14 ++++ libs/JSystem/J3DGraphBase/J3DTransform.cpp | 4 - libs/JSystem/JParticle/JPABaseShape.cpp | 5 -- libs/JSystem/JParticle/JPAEmitter.cpp | 1 - libs/JSystem/JParticle/JPAEmitterManager.cpp | 52 +++++-------- libs/JSystem/JParticle/JPAMath.cpp | 5 -- libs/JSystem/JParticle/JPAParticle.cpp | 1 - .../JStudio/JStudio_JAudio2/object-sound.cpp | 1 - .../JStudio_JParticle/object-particle.cpp | 1 - libs/Z2AudioLib/Z2Audience.cpp | 5 -- libs/Z2AudioLib/Z2SeMgr.cpp | 1 - libs/Z2AudioLib/Z2SoundObject.cpp | 1 - 16 files changed, 81 insertions(+), 140 deletions(-) delete mode 100644 asm/JSystem/JParticle/JPAEmitterManager/calcYBBCam__17JPAEmitterManagerFv.s diff --git a/Progress.md b/Progress.md index 1386fab601..9695e3bd75 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 28.029130% | 1008080 | 3596544 +.text | 28.037360% | 1008376 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 35.616335% | 1432016 | 4020672 +Total | 35.623697% | 1432312 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 35.616335% | 1432016 | 4020672 +main.dol | 35.623697% | 1432312 | 4020672 RELs | 33.810282% | 3888292 | 11500324 -Total | 34.278135% | 5320308 | 15520996 +Total | 34.280042% | 5320604 | 15520996 ## RELs diff --git a/asm/JSystem/JParticle/JPAEmitterManager/calcYBBCam__17JPAEmitterManagerFv.s b/asm/JSystem/JParticle/JPAEmitterManager/calcYBBCam__17JPAEmitterManagerFv.s deleted file mode 100644 index 43eec54a46..0000000000 --- a/asm/JSystem/JParticle/JPAEmitterManager/calcYBBCam__17JPAEmitterManagerFv.s +++ /dev/null @@ -1,78 +0,0 @@ -lbl_8027E3F4: -/* 8027E3F4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8027E3F8 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8027E3FC C0 24 01 A8 */ lfs f1, 0x1a8(r4) -/* 8027E400 C0 04 01 98 */ lfs f0, 0x198(r4) -/* 8027E404 C0 42 B9 58 */ lfs f2, lit_2632(r2) -/* 8027E408 D0 41 00 08 */ stfs f2, 8(r1) -/* 8027E40C D0 01 00 0C */ stfs f0, 0xc(r1) -/* 8027E410 D0 21 00 10 */ stfs f1, 0x10(r1) -/* 8027E414 E0 01 00 08 */ psq_l f0, 8(r1), 0, 0 /* qr0 */ -/* 8027E418 10 00 00 32 */ ps_mul f0, f0, f0 -/* 8027E41C 10 A1 00 7A */ ps_madd f5, f1, f1, f0 -/* 8027E420 10 A5 00 14 */ ps_sum0 f5, f5, f0, f0 -/* 8027E424 C0 22 B9 5C */ lfs f1, lit_2633(r2) -/* 8027E428 3C 80 80 45 */ lis r4, __float_epsilon@ha /* 0x80450AEC@ha */ -/* 8027E42C C0 04 0A EC */ lfs f0, __float_epsilon@l(r4) /* 0x80450AEC@l */ -/* 8027E430 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8027E434 FC 05 00 40 */ fcmpo cr0, f5, f0 -/* 8027E438 4C 40 13 82 */ cror 2, 0, 2 -/* 8027E43C 41 82 00 58 */ beq lbl_8027E494 -/* 8027E440 FC 05 10 40 */ fcmpo cr0, f5, f2 -/* 8027E444 4C 40 13 82 */ cror 2, 0, 2 -/* 8027E448 40 82 00 0C */ bne lbl_8027E454 -/* 8027E44C FC 60 28 90 */ fmr f3, f5 -/* 8027E450 48 00 00 2C */ b lbl_8027E47C -lbl_8027E454: -/* 8027E454 FC 80 28 34 */ frsqrte f4, f5 -/* 8027E458 FC 80 20 18 */ frsp f4, f4 -/* 8027E45C C0 02 B9 60 */ lfs f0, lit_2634(r2) -/* 8027E460 EC 40 01 32 */ fmuls f2, f0, f4 -/* 8027E464 C0 22 B9 64 */ lfs f1, lit_2635(r2) -/* 8027E468 EC 04 01 32 */ fmuls f0, f4, f4 -/* 8027E46C EC 05 00 32 */ fmuls f0, f5, f0 -/* 8027E470 EC 01 00 28 */ fsubs f0, f1, f0 -/* 8027E474 EC 02 00 32 */ fmuls f0, f2, f0 -/* 8027E478 FC 60 00 90 */ fmr f3, f0 -lbl_8027E47C: -/* 8027E47C E0 01 00 08 */ psq_l f0, 8(r1), 0, 0 /* qr0 */ -/* 8027E480 E0 21 80 10 */ psq_l f1, 16(r1), 1, 0 /* qr0 */ -/* 8027E484 10 00 00 D8 */ ps_muls0 f0, f0, f3 -/* 8027E488 F0 01 00 08 */ psq_st f0, 8(r1), 0, 0 /* qr0 */ -/* 8027E48C 10 01 00 D8 */ ps_muls0 f0, f1, f3 -/* 8027E490 F0 01 80 10 */ psq_st f0, 16(r1), 1, 0 /* qr0 */ -lbl_8027E494: -/* 8027E494 C0 02 B9 68 */ lfs f0, lit_2636(r2) -/* 8027E498 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8027E49C D0 04 01 54 */ stfs f0, 0x154(r4) -/* 8027E4A0 C0 62 B9 58 */ lfs f3, lit_2632(r2) -/* 8027E4A4 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8027E4A8 D0 64 01 58 */ stfs f3, 0x158(r4) -/* 8027E4AC 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8027E4B0 D0 64 01 5C */ stfs f3, 0x15c(r4) -/* 8027E4B4 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8027E4B8 C0 04 01 90 */ lfs f0, 0x190(r4) -/* 8027E4BC D0 04 01 60 */ stfs f0, 0x160(r4) -/* 8027E4C0 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8027E4C4 D0 64 01 64 */ stfs f3, 0x164(r4) -/* 8027E4C8 C0 41 00 0C */ lfs f2, 0xc(r1) -/* 8027E4CC 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8027E4D0 D0 44 01 68 */ stfs f2, 0x168(r4) -/* 8027E4D4 C0 21 00 10 */ lfs f1, 0x10(r1) -/* 8027E4D8 FC 00 08 50 */ fneg f0, f1 -/* 8027E4DC 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8027E4E0 D0 04 01 6C */ stfs f0, 0x16c(r4) -/* 8027E4E4 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8027E4E8 C0 04 01 A0 */ lfs f0, 0x1a0(r4) -/* 8027E4EC D0 04 01 70 */ stfs f0, 0x170(r4) -/* 8027E4F0 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8027E4F4 D0 64 01 74 */ stfs f3, 0x174(r4) -/* 8027E4F8 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8027E4FC D0 24 01 78 */ stfs f1, 0x178(r4) -/* 8027E500 80 83 00 20 */ lwz r4, 0x20(r3) -/* 8027E504 D0 44 01 7C */ stfs f2, 0x17c(r4) -/* 8027E508 80 63 00 20 */ lwz r3, 0x20(r3) -/* 8027E50C C0 03 01 B0 */ lfs f0, 0x1b0(r3) -/* 8027E510 D0 03 01 80 */ stfs f0, 0x180(r3) -/* 8027E514 38 21 00 20 */ addi r1, r1, 0x20 -/* 8027E518 4E 80 00 20 */ blr diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h index dd984bcc85..8f37b01fc9 100644 --- a/include/JSystem/JGeometry.h +++ b/include/JSystem/JGeometry.h @@ -3,6 +3,8 @@ #include "dolphin/mtx/vec.h" #include "dolphin/types.h" +#include "MSL_C/float.h" +#include "MSL_C/math.h" namespace JGeometry { @@ -46,6 +48,11 @@ inline void setTVec3f(const f32* vec_a, f32* vec_b) { }; } +inline float fsqrt_step(float mag) { + f32 root = __frsqrte(mag); + return 0.5f * root * (3.0f - mag * (root * root)); +} + template <> struct TVec3 { f32 x; @@ -110,6 +117,38 @@ struct TVec3 { }; return *this; } + + f32 squared() { + return C_VECSquareMag((Vec*)&x); + } + + void normalize() { + f32 sq = squared(); + if (sq <= FLT_EPSILON * 32.0f) { + return; + } + f32 norm; + if (sq <= 0.0f) { + norm = sq; + } else { + norm = fsqrt_step(sq); + } + scale(norm); + } + + void scale(register f32 sc) { + register f32 z; + register f32 x_y; + register f32* dst = &x; + asm { + psq_l x_y, 0(dst), 0, 0 + psq_l z, 8(dst), 1, 0 + ps_muls0 x_y, x_y, sc + psq_st x_y, 0(dst), 0, 0 + ps_muls0 x_y, z, sc + psq_st x_y, 8(dst), 1, 0 + }; + } }; template diff --git a/include/JSystem/JParticle/JPAParticle.h b/include/JSystem/JParticle/JPAParticle.h index ed4fe9142a..3d27dca8e4 100644 --- a/include/JSystem/JParticle/JPAParticle.h +++ b/include/JSystem/JParticle/JPAParticle.h @@ -75,6 +75,11 @@ public: template struct JPANode { + JPANode() { + mpPrev = NULL; + mpNext = NULL; + } + ~JPANode() {} JPANode* mpPrev; JPANode* mpNext; T mData; diff --git a/include/dolphin/mtx/vec.h b/include/dolphin/mtx/vec.h index 29b3961af7..0167c0aad7 100644 --- a/include/dolphin/mtx/vec.h +++ b/include/dolphin/mtx/vec.h @@ -33,6 +33,20 @@ f32 PSVECDistance(const Vec* a, const Vec* b); void C_VECHalfAngle(const Vec* a, const Vec* b, Vec* half); void C_VECReflect(const Vec* src, const Vec* normal, Vec* dst); +inline f32 C_VECSquareMag(const Vec* v) { + register f32 x_y; + register f32 z; + register const f32* src = &v->x; + asm { + psq_l x_y, 0(src), 0, 0 + ps_mul x_y, x_y, x_y + lfs z, 8(src) + ps_madd z, z, z, x_y + ps_sum0 z, z, x_y, x_y + }; + return z; +} + #ifdef __cplusplus }; #endif diff --git a/libs/JSystem/J3DGraphBase/J3DTransform.cpp b/libs/JSystem/J3DGraphBase/J3DTransform.cpp index f783bab1a4..823ba92b13 100644 --- a/libs/JSystem/J3DGraphBase/J3DTransform.cpp +++ b/libs/JSystem/J3DGraphBase/J3DTransform.cpp @@ -11,10 +11,6 @@ // Types: // -struct JMath { - static u8 sincosTable_[65536]; -}; - struct J3DTextureSRTInfo {}; // diff --git a/libs/JSystem/JParticle/JPABaseShape.cpp b/libs/JSystem/JParticle/JPABaseShape.cpp index 6e72ee6e3a..e782f0c12c 100644 --- a/libs/JSystem/JParticle/JPABaseShape.cpp +++ b/libs/JSystem/JParticle/JPABaseShape.cpp @@ -22,10 +22,6 @@ struct JKRHeap { /* 802CE474 */ void alloc(u32, int, JKRHeap*); }; -struct JMath { - static u8 sincosTable_[65536]; -}; - // // Forward References: // @@ -125,7 +121,6 @@ extern "C" void _restgpr_24(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern u32 __float_epsilon; // // Declarations: diff --git a/libs/JSystem/JParticle/JPAEmitter.cpp b/libs/JSystem/JParticle/JPAEmitter.cpp index 105a616948..719ca1a2ae 100644 --- a/libs/JSystem/JParticle/JPAEmitter.cpp +++ b/libs/JSystem/JParticle/JPAEmitter.cpp @@ -42,7 +42,6 @@ extern "C" void init_c__15JPABaseParticleFP18JPAEmitterWorkDataP15JPABaseParticl extern "C" void __dl__FPv(); extern "C" void load__10JUTTextureF11_GXTexMapID(); extern "C" extern void* __vt__18JPAEmitterCallBack[7]; -extern "C" extern u32 __float_epsilon; // // Declarations: diff --git a/libs/JSystem/JParticle/JPAEmitterManager.cpp b/libs/JSystem/JParticle/JPAEmitterManager.cpp index 0d1b1ff76f..6737e63da2 100644 --- a/libs/JSystem/JParticle/JPAEmitterManager.cpp +++ b/libs/JSystem/JParticle/JPAEmitterManager.cpp @@ -64,7 +64,6 @@ extern "C" void _restgpr_24(); extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_29(); -extern "C" extern u32 __float_epsilon; // // Declarations: @@ -72,6 +71,7 @@ extern "C" extern u32 __float_epsilon; /* 8027DCA0-8027DEBC 2785E0 021C+00 0/0 1/1 0/0 .text __ct__17JPAEmitterManagerFUlUlP7JKRHeapUcUc */ +// template ctors are at the end of the TU for some reason #ifdef NONMATCHING JPAEmitterManager::JPAEmitterManager(u32 ptclMax, u32 emtrMax, JKRHeap* pHeap, u8 grpMax, u8 resMax) { @@ -88,11 +88,11 @@ JPAEmitterManager::JPAEmitterManager(u32 ptclMax, u32 emtrMax, JKRHeap* pHeap, u for (u32 i = 0; i < mPtclMax; i++) mPtclPool.push_back(&ptcl[i]); - // can't get __construct_new_array to call the correct constructor within. mpGrpEmtr = new (pHeap, 0) JSUList[mGrpMax]; mpResMgrAry = new (pHeap, 0) JPAResourceManager*[mResMax]; - for (u8 i = 0; i < mResMax; i++) + for (int i = 0; i < mResMax; i++) { mpResMgrAry[i] = NULL; + } mpWorkData = new (pHeap, 0) JPAEmitterWorkData(); } @@ -231,40 +231,26 @@ void JPAEmitterManager::clearResourceManager(u8 resMgrID) { } /* ############################################################################################## */ -/* 80455358-8045535C 003958 0004+00 1/1 0/0 0/0 .sdata2 @2632 */ -SECTION_SDATA2 static u8 lit_2632[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 8045535C-80455360 00395C 0004+00 1/1 0/0 0/0 .sdata2 @2633 */ -SECTION_SDATA2 static f32 lit_2633 = 32.0f; - -/* 80455360-80455364 003960 0004+00 1/1 0/0 0/0 .sdata2 @2634 */ -SECTION_SDATA2 static f32 lit_2634 = 0.5f; - -/* 80455364-80455368 003964 0004+00 1/1 0/0 0/0 .sdata2 @2635 */ -SECTION_SDATA2 static f32 lit_2635 = 3.0f; - -/* 80455368-80455370 003968 0004+04 1/1 0/0 0/0 .sdata2 @2636 */ -SECTION_SDATA2 static f32 lit_2636[1 + 1 /* padding */] = { - 1.0f, - /* padding */ - 0.0f, -}; /* 8027E3F4-8027E51C 278D34 0128+00 1/1 0/0 0/0 .text calcYBBCam__17JPAEmitterManagerFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAEmitterManager::calcYBBCam() { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitterManager/calcYBBCam__17JPAEmitterManagerFv.s" +void JPAEmitterManager::calcYBBCam() { + JGeometry::TVec3 v; + v.set(0.0f, mpWorkData->mPosCamMtx[1][1], mpWorkData->mPosCamMtx[2][1]); + v.normalize(); + mpWorkData->mYBBCamMtx[0][0] = 1.0f; + mpWorkData->mYBBCamMtx[0][1] = 0.0f; + mpWorkData->mYBBCamMtx[0][2] = 0.0f; + mpWorkData->mYBBCamMtx[0][3] = mpWorkData->mPosCamMtx[0][3]; + mpWorkData->mYBBCamMtx[1][0] = 0.0f; + mpWorkData->mYBBCamMtx[1][1] = v.y; + mpWorkData->mYBBCamMtx[1][2] = -v.z; + mpWorkData->mYBBCamMtx[1][3] = mpWorkData->mPosCamMtx[1][3]; + mpWorkData->mYBBCamMtx[2][0] = 0.0f; + mpWorkData->mYBBCamMtx[2][1] = v.z; + mpWorkData->mYBBCamMtx[2][2] = v.y; + mpWorkData->mYBBCamMtx[2][3] = mpWorkData->mPosCamMtx[2][3]; } -#pragma pop /* 8027E51C-8027E54C 278E5C 0030+00 1/1 0/0 0/0 .text __ct__25JSUList<14JPABaseEmitter>Fv */ diff --git a/libs/JSystem/JParticle/JPAMath.cpp b/libs/JSystem/JParticle/JPAMath.cpp index 36e6211995..3bc8902583 100644 --- a/libs/JSystem/JParticle/JPAMath.cpp +++ b/libs/JSystem/JParticle/JPAMath.cpp @@ -11,10 +11,6 @@ // Types: // -struct JMath { - static u8 sincosTable_[65536]; -}; - // // Forward References: // @@ -33,7 +29,6 @@ extern "C" void JPACalcKeyAnmValue__FfUsPCf(); extern "C" void _savegpr_28(); extern "C" void _restgpr_28(); extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern u32 __float_epsilon; // // Declarations: diff --git a/libs/JSystem/JParticle/JPAParticle.cpp b/libs/JSystem/JParticle/JPAParticle.cpp index f317236969..ced16917af 100644 --- a/libs/JSystem/JParticle/JPAParticle.cpp +++ b/libs/JSystem/JParticle/JPAParticle.cpp @@ -37,7 +37,6 @@ extern "C" void _savegpr_29(); extern "C" void _restgpr_26(); extern "C" void _restgpr_29(); extern "C" extern void* __vt__19JPAParticleCallBack[5]; -extern "C" extern u32 __float_epsilon; // // Declarations: diff --git a/libs/JSystem/JStudio/JStudio_JAudio2/object-sound.cpp b/libs/JSystem/JStudio/JStudio_JAudio2/object-sound.cpp index 4d46fd661e..ba73013582 100644 --- a/libs/JSystem/JStudio/JStudio_JAudio2/object-sound.cpp +++ b/libs/JSystem/JStudio/JStudio_JAudio2/object-sound.cpp @@ -86,7 +86,6 @@ extern "C" u8 const sauVariableValue_3_POSITION_XYZ__Q27JStudio14TAdaptor_sound[ extern "C" extern void* __vt__Q27JStudio14TAdaptor_sound[20]; extern "C" extern void* __vt__Q27JStudio8TAdaptor[8]; extern "C" extern void* __vt__Q37JStudio14TVariableValue7TOutput[4]; -extern "C" extern u32 __float_nan; extern "C" u8 soOutput_none___Q27JStudio14TVariableValue[4 + 4 /* padding */]; extern "C" extern u8 data_804511F8[8]; diff --git a/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp b/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp index dfaa3d4884..265eff12c8 100644 --- a/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp +++ b/libs/JSystem/JStudio/JStudio_JParticle/object-particle.cpp @@ -90,7 +90,6 @@ extern "C" u8 const sauVariableValue_4_COLOR_RGBA__Q27JStudio17TAdaptor_particle extern "C" extern void* __vt__18JPAEmitterCallBack[7]; extern "C" extern void* __vt__Q27JStudio17TAdaptor_particle[19]; extern "C" extern void* __vt__Q27JStudio8TAdaptor[8]; -extern "C" extern u32 __float_nan; extern "C" extern u8 data_80451200[8]; // diff --git a/libs/Z2AudioLib/Z2Audience.cpp b/libs/Z2AudioLib/Z2Audience.cpp index f8c9402495..3944a2ce74 100644 --- a/libs/Z2AudioLib/Z2Audience.cpp +++ b/libs/Z2AudioLib/Z2Audience.cpp @@ -50,10 +50,6 @@ struct Z2AudibleAbsPos { JGeometry::TVec3 const*); }; -struct JMath { - static u8 sincosTable_[65536]; -}; - template struct JASMemPool {}; /* JASMemPool */ @@ -164,7 +160,6 @@ extern "C" f32 DOLBY_FLONT_DISTANCE_MAX__7Z2Param; extern "C" f32 DOLBY_BEHIND_DISTANCE_MAX__7Z2Param; extern "C" f32 DISTANCE_FX_PARAM__7Z2Param; extern "C" f32 SONIC_SPEED__7Z2Param; -extern "C" extern u32 __float_epsilon; extern "C" extern u8 data_80450B4C[4]; extern "C" f32 MIN_DISTANCE_VOLUME__7Z2Param; extern "C" extern u8 __OSReport_disable; diff --git a/libs/Z2AudioLib/Z2SeMgr.cpp b/libs/Z2AudioLib/Z2SeMgr.cpp index f936b5b331..bfa8f2e9b2 100644 --- a/libs/Z2AudioLib/Z2SeMgr.cpp +++ b/libs/Z2AudioLib/Z2SeMgr.cpp @@ -178,7 +178,6 @@ extern "C" f32 VOL_SE_CHAR_VOICE_PAUSING__7Z2Param; extern "C" f32 VOL_SE_CHAR_MOVE_PAUSING__7Z2Param; extern "C" f32 VOL_SE_OBJECT_PAUSING__7Z2Param; extern "C" f32 VOL_SE_ATMOSPHERE_PAUSING__7Z2Param; -extern "C" extern u32 __float_nan; extern "C" extern u8 data_80450B44[4]; extern "C" extern u8 data_80450B60[4]; extern "C" extern u8 data_80450B70[4]; diff --git a/libs/Z2AudioLib/Z2SoundObject.cpp b/libs/Z2AudioLib/Z2SoundObject.cpp index fa72125af7..d51807e912 100644 --- a/libs/Z2AudioLib/Z2SoundObject.cpp +++ b/libs/Z2AudioLib/Z2SoundObject.cpp @@ -101,7 +101,6 @@ extern "C" void _savegpr_29(); extern "C" void _restgpr_23(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" extern u32 __float_max; extern "C" extern Z2SoundInfo* data_80450B4C; extern "C" extern u8 data_80450B60[4]; extern "C" extern Z2SoundStarter* data_80450B74;