diff --git a/Progress.md b/Progress.md index d566bb9474e..e7f0a4cf24a 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 37.746227% | 1517652 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 37.746227% | 1517652 | 4020672 -RELs | 34.066692% | 3917780 | 11500324 -Total | 35.019866% | 5435432 | 15520996 +RELs | 34.092883% | 3920792 | 11500324 +Total | 35.039272% | 5438444 | 15520996 ## RELs @@ -60,7 +60,7 @@ d_a_balloon_2D | 29.886212% | 3572 | 11952 d_a_bd | 31.115418% | 5780 | 18576 d_a_bg | 41.505376% | 3860 | 9300 d_a_bg_obj | 32.434657% | 6304 | 19436 -d_a_boomerang | 31.776601% | 7920 | 24924 +d_a_boomerang | 43.861338% | 10932 | 24924 d_a_bullet | 42.660550% | 2604 | 6104 d_a_canoe | 28.479263% | 4944 | 17360 d_a_coach_2D | 38.344915% | 2428 | 6332 @@ -785,4 +785,4 @@ d_a_vrbox2 | 34.977578% | 2184 | 6244 d_a_warp_bug | 100.000000% | 2024 | 2024 d_a_ykgr | 44.400631% | 2252 | 5072 f_pc_profile_lst | 100.000000% | 28156 | 28156 -Total | 34.066692% | 3917780 | 11500324 +Total | 34.092883% | 3920792 | 11500324 diff --git a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/checkBgHit__13daBoomerang_cFP4cXyzP4cXyz.s b/asm/rel/d/a/d_a_boomerang/d_a_boomerang/checkBgHit__13daBoomerang_cFP4cXyzP4cXyz.s deleted file mode 100644 index ad402170dff..00000000000 --- a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/checkBgHit__13daBoomerang_cFP4cXyzP4cXyz.s +++ /dev/null @@ -1,134 +0,0 @@ -lbl_8049FE6C: -/* 8049FE6C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8049FE70 7C 08 02 A6 */ mflr r0 -/* 8049FE74 90 01 00 24 */ stw r0, 0x24(r1) -/* 8049FE78 39 61 00 20 */ addi r11, r1, 0x20 -/* 8049FE7C 4B EC 23 5D */ bl _savegpr_28 -/* 8049FE80 7C 7F 1B 78 */ mr r31, r3 -/* 8049FE84 7C 9C 23 78 */ mr r28, r4 -/* 8049FE88 7C BD 2B 78 */ mr r29, r5 -/* 8049FE8C 38 7F 0C FC */ addi r3, r31, 0xcfc -/* 8049FE90 7F E6 FB 78 */ mr r6, r31 -/* 8049FE94 4B BD 7E D1 */ bl Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c -/* 8049FE98 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8049FE9C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8049FEA0 3B C3 0F 38 */ addi r30, r3, 0xf38 -/* 8049FEA4 7F C3 F3 78 */ mr r3, r30 -/* 8049FEA8 38 9F 0C FC */ addi r4, r31, 0xcfc -/* 8049FEAC 4B BD 45 09 */ bl LineCross__4cBgSFP11cBgS_LinChk -/* 8049FEB0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8049FEB4 41 82 00 54 */ beq lbl_8049FF08 -/* 8049FEB8 C0 1F 0D 2C */ lfs f0, 0xd2c(r31) -/* 8049FEBC D0 1F 04 D0 */ stfs f0, 0x4d0(r31) -/* 8049FEC0 C0 1F 0D 30 */ lfs f0, 0xd30(r31) -/* 8049FEC4 D0 1F 04 D4 */ stfs f0, 0x4d4(r31) -/* 8049FEC8 C0 1F 0D 34 */ lfs f0, 0xd34(r31) -/* 8049FECC D0 1F 04 D8 */ stfs f0, 0x4d8(r31) -/* 8049FED0 80 1F 09 64 */ lwz r0, 0x964(r31) -/* 8049FED4 60 00 00 01 */ ori r0, r0, 1 -/* 8049FED8 90 1F 09 64 */ stw r0, 0x964(r31) -/* 8049FEDC 38 00 00 00 */ li r0, 0 -/* 8049FEE0 98 1F 09 57 */ stb r0, 0x957(r31) -/* 8049FEE4 A8 7F 04 DE */ lha r3, 0x4de(r31) -/* 8049FEE8 3C 63 00 01 */ addis r3, r3, 1 -/* 8049FEEC 38 03 80 00 */ addi r0, r3, -32768 -/* 8049FEF0 B0 1F 04 DE */ sth r0, 0x4de(r31) -/* 8049FEF4 A8 1F 04 DE */ lha r0, 0x4de(r31) -/* 8049FEF8 B0 1F 04 E6 */ sth r0, 0x4e6(r31) -/* 8049FEFC 7F E3 FB 78 */ mr r3, r31 -/* 8049FF00 4B FF FA A5 */ bl resetLockActor__13daBoomerang_cFv -/* 8049FF04 48 00 01 50 */ b lbl_804A0054 -lbl_8049FF08: -/* 8049FF08 A8 1F 09 62 */ lha r0, 0x962(r31) -/* 8049FF0C 2C 00 00 00 */ cmpwi r0, 0 -/* 8049FF10 40 82 01 44 */ bne lbl_804A0054 -/* 8049FF14 38 7F 0C 8C */ addi r3, r31, 0xc8c -/* 8049FF18 7F 84 E3 78 */ mr r4, r28 -/* 8049FF1C 7F A5 EB 78 */ mr r5, r29 -/* 8049FF20 7F E6 FB 78 */ mr r6, r31 -/* 8049FF24 4B BD 7E 41 */ bl Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c -/* 8049FF28 7F C3 F3 78 */ mr r3, r30 -/* 8049FF2C 38 9F 0C 8C */ addi r4, r31, 0xc8c -/* 8049FF30 4B BD 44 85 */ bl LineCross__4cBgSFP11cBgS_LinChk -/* 8049FF34 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8049FF38 41 82 01 1C */ beq lbl_804A0054 -/* 8049FF3C 80 1F 09 64 */ lwz r0, 0x964(r31) -/* 8049FF40 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16 -/* 8049FF44 40 82 01 10 */ bne lbl_804A0054 -/* 8049FF48 88 BF 09 51 */ lbz r5, 0x951(r31) -/* 8049FF4C 7C 7F 2A 14 */ add r3, r31, r5 -/* 8049FF50 88 03 07 18 */ lbz r0, 0x718(r3) -/* 8049FF54 28 00 00 00 */ cmplwi r0, 0 -/* 8049FF58 41 82 00 58 */ beq lbl_8049FFB0 -/* 8049FF5C 38 9F 0C BC */ addi r4, r31, 0xcbc -/* 8049FF60 1C 65 00 0C */ mulli r3, r5, 0xc -/* 8049FF64 38 63 06 DC */ addi r3, r3, 0x6dc -/* 8049FF68 7C 7F 1A 14 */ add r3, r31, r3 -/* 8049FF6C 4B EA 74 31 */ bl PSVECSquareDistance -/* 8049FF70 3C 60 80 4A */ lis r3, lit_5044@ha /* 0x804A2918@ha */ -/* 8049FF74 C0 03 29 18 */ lfs f0, lit_5044@l(r3) /* 0x804A2918@l */ -/* 8049FF78 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8049FF7C 40 80 00 34 */ bge lbl_8049FFB0 -/* 8049FF80 88 9F 09 51 */ lbz r4, 0x951(r31) -/* 8049FF84 88 7F 09 50 */ lbz r3, 0x950(r31) -/* 8049FF88 38 03 FF FF */ addi r0, r3, -1 -/* 8049FF8C 7C 04 00 00 */ cmpw r4, r0 -/* 8049FF90 40 80 00 20 */ bge lbl_8049FFB0 -/* 8049FF94 38 00 00 00 */ li r0, 0 -/* 8049FF98 7C 7F 22 14 */ add r3, r31, r4 -/* 8049FF9C 98 03 07 18 */ stb r0, 0x718(r3) -/* 8049FFA0 88 7F 09 51 */ lbz r3, 0x951(r31) -/* 8049FFA4 38 03 00 01 */ addi r0, r3, 1 -/* 8049FFA8 98 1F 09 51 */ stb r0, 0x951(r31) -/* 8049FFAC 48 00 00 A8 */ b lbl_804A0054 -lbl_8049FFB0: -/* 8049FFB0 88 1F 09 57 */ lbz r0, 0x957(r31) -/* 8049FFB4 28 00 00 00 */ cmplwi r0, 0 -/* 8049FFB8 40 82 00 9C */ bne lbl_804A0054 -/* 8049FFBC 80 1F 09 64 */ lwz r0, 0x964(r31) -/* 8049FFC0 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 8049FFC4 40 82 00 14 */ bne lbl_8049FFD8 -/* 8049FFC8 88 7F 09 50 */ lbz r3, 0x950(r31) -/* 8049FFCC 88 1F 09 51 */ lbz r0, 0x951(r31) -/* 8049FFD0 7C 03 00 40 */ cmplw r3, r0 -/* 8049FFD4 41 81 00 80 */ bgt lbl_804A0054 -lbl_8049FFD8: -/* 8049FFD8 C0 1F 0C BC */ lfs f0, 0xcbc(r31) -/* 8049FFDC D0 1F 04 D0 */ stfs f0, 0x4d0(r31) -/* 8049FFE0 C0 1F 0C C0 */ lfs f0, 0xcc0(r31) -/* 8049FFE4 D0 1F 04 D4 */ stfs f0, 0x4d4(r31) -/* 8049FFE8 C0 1F 0C C4 */ lfs f0, 0xcc4(r31) -/* 8049FFEC D0 1F 04 D8 */ stfs f0, 0x4d8(r31) -/* 8049FFF0 80 1F 09 64 */ lwz r0, 0x964(r31) -/* 8049FFF4 60 00 00 01 */ ori r0, r0, 1 -/* 8049FFF8 90 1F 09 64 */ stw r0, 0x964(r31) -/* 8049FFFC 38 00 00 00 */ li r0, 0 -/* 804A0000 98 1F 09 57 */ stb r0, 0x957(r31) -/* 804A0004 A8 7F 04 DE */ lha r3, 0x4de(r31) -/* 804A0008 3C 63 00 01 */ addis r3, r3, 1 -/* 804A000C 38 03 80 00 */ addi r0, r3, -32768 -/* 804A0010 B0 1F 04 DE */ sth r0, 0x4de(r31) -/* 804A0014 38 7F 0C A0 */ addi r3, r31, 0xca0 -/* 804A0018 4B BD 5D D5 */ bl dBgS_CheckBRoofPoly__FRC13cBgS_PolyInfo -/* 804A001C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 804A0020 41 82 00 24 */ beq lbl_804A0044 -/* 804A0024 A8 1F 04 DC */ lha r0, 0x4dc(r31) -/* 804A0028 1C 00 FF FF */ mulli r0, r0, -1 -/* 804A002C B0 1F 04 DC */ sth r0, 0x4dc(r31) -/* 804A0030 C0 3F 04 D4 */ lfs f1, 0x4d4(r31) -/* 804A0034 3C 60 80 4A */ lis r3, lit_5045@ha /* 0x804A291C@ha */ -/* 804A0038 C0 03 29 1C */ lfs f0, lit_5045@l(r3) /* 0x804A291C@l */ -/* 804A003C EC 01 00 28 */ fsubs f0, f1, f0 -/* 804A0040 D0 1F 04 D4 */ stfs f0, 0x4d4(r31) -lbl_804A0044: -/* 804A0044 A8 1F 04 DE */ lha r0, 0x4de(r31) -/* 804A0048 B0 1F 04 E6 */ sth r0, 0x4e6(r31) -/* 804A004C 7F E3 FB 78 */ mr r3, r31 -/* 804A0050 4B FF F9 55 */ bl resetLockActor__13daBoomerang_cFv -lbl_804A0054: -/* 804A0054 39 61 00 20 */ addi r11, r1, 0x20 -/* 804A0058 4B EC 21 CD */ bl _restgpr_28 -/* 804A005C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 804A0060 7C 08 03 A6 */ mtlr r0 -/* 804A0064 38 21 00 20 */ addi r1, r1, 0x20 -/* 804A0068 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/createHeap__19daBoomerang_sight_cFv.s b/asm/rel/d/a/d_a_boomerang/d_a_boomerang/createHeap__19daBoomerang_sight_cFv.s deleted file mode 100644 index 761e4046ccf..00000000000 --- a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/createHeap__19daBoomerang_sight_cFv.s +++ /dev/null @@ -1,188 +0,0 @@ -lbl_8049E0B8: -/* 8049E0B8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8049E0BC 7C 08 02 A6 */ mflr r0 -/* 8049E0C0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8049E0C4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8049E0C8 93 C1 00 08 */ stw r30, 8(r1) -/* 8049E0CC 7C 7E 1B 78 */ mr r30, r3 -/* 8049E0D0 4B BF F7 B5 */ bl getAlinkArcName__9daAlink_cFv -/* 8049E0D4 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8049E0D8 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8049E0DC 3C 84 00 02 */ addis r4, r4, 2 -/* 8049E0E0 38 A0 00 80 */ li r5, 0x80 -/* 8049E0E4 38 84 C2 F8 */ addi r4, r4, -15624 -/* 8049E0E8 4B B9 E0 FD */ bl getResInfo__14dRes_control_cFPCcP11dRes_info_ci -/* 8049E0EC 83 E3 00 14 */ lwz r31, 0x14(r3) -/* 8049E0F0 38 60 01 18 */ li r3, 0x118 -/* 8049E0F4 4B E3 0B 59 */ bl __nw__FUl -/* 8049E0F8 7C 60 1B 79 */ or. r0, r3, r3 -/* 8049E0FC 41 82 00 0C */ beq lbl_8049E108 -/* 8049E100 4B E5 A3 99 */ bl __ct__9J2DScreenFv -/* 8049E104 7C 60 1B 78 */ mr r0, r3 -lbl_8049E108: -/* 8049E108 90 1E 00 04 */ stw r0, 4(r30) -/* 8049E10C 80 7E 00 04 */ lwz r3, 4(r30) -/* 8049E110 28 03 00 00 */ cmplwi r3, 0 -/* 8049E114 40 82 00 0C */ bne lbl_8049E120 -/* 8049E118 38 60 00 00 */ li r3, 0 -/* 8049E11C 48 00 02 38 */ b lbl_8049E354 -lbl_8049E120: -/* 8049E120 3C 80 80 4A */ lis r4, d_a_boomerang__stringBase0@ha /* 0x804A2990@ha */ -/* 8049E124 38 84 29 90 */ addi r4, r4, d_a_boomerang__stringBase0@l /* 0x804A2990@l */ -/* 8049E128 3C A0 00 10 */ lis r5, 0x10 -/* 8049E12C 7F E6 FB 78 */ mr r6, r31 -/* 8049E130 4B E5 A5 19 */ bl setPriority__9J2DScreenFPCcUlP10JKRArchive -/* 8049E134 80 7E 00 04 */ lwz r3, 4(r30) -/* 8049E138 4B DB 6F B1 */ bl dPaneClass_showNullPane__FP9J2DScreen -/* 8049E13C 3C 60 80 4A */ lis r3, d_a_boomerang__stringBase0@ha /* 0x804A2990@ha */ -/* 8049E140 38 63 29 90 */ addi r3, r3, d_a_boomerang__stringBase0@l /* 0x804A2990@l */ -/* 8049E144 38 63 00 1E */ addi r3, r3, 0x1e -/* 8049E148 7F E4 FB 78 */ mr r4, r31 -/* 8049E14C 4B E3 61 25 */ bl getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader -/* 8049E150 4B E6 A9 1D */ bl load__20J2DAnmLoaderDataBaseFPCv -/* 8049E154 90 7E 00 58 */ stw r3, 0x58(r30) -/* 8049E158 80 1E 00 58 */ lwz r0, 0x58(r30) -/* 8049E15C 28 00 00 00 */ cmplwi r0, 0 -/* 8049E160 40 82 00 0C */ bne lbl_8049E16C -/* 8049E164 38 60 00 00 */ li r3, 0 -/* 8049E168 48 00 01 EC */ b lbl_8049E354 -lbl_8049E16C: -/* 8049E16C 3C 60 80 4A */ lis r3, d_a_boomerang__stringBase0@ha /* 0x804A2990@ha */ -/* 8049E170 38 63 29 90 */ addi r3, r3, d_a_boomerang__stringBase0@l /* 0x804A2990@l */ -/* 8049E174 38 63 00 3C */ addi r3, r3, 0x3c -/* 8049E178 7F E4 FB 78 */ mr r4, r31 -/* 8049E17C 4B E3 60 F5 */ bl getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader -/* 8049E180 4B E6 A8 ED */ bl load__20J2DAnmLoaderDataBaseFPCv -/* 8049E184 90 7E 00 5C */ stw r3, 0x5c(r30) -/* 8049E188 80 1E 00 5C */ lwz r0, 0x5c(r30) -/* 8049E18C 28 00 00 00 */ cmplwi r0, 0 -/* 8049E190 40 82 00 0C */ bne lbl_8049E19C -/* 8049E194 38 60 00 00 */ li r3, 0 -/* 8049E198 48 00 01 BC */ b lbl_8049E354 -lbl_8049E19C: -/* 8049E19C 3C 60 80 4A */ lis r3, d_a_boomerang__stringBase0@ha /* 0x804A2990@ha */ -/* 8049E1A0 38 63 29 90 */ addi r3, r3, d_a_boomerang__stringBase0@l /* 0x804A2990@l */ -/* 8049E1A4 38 63 00 5A */ addi r3, r3, 0x5a -/* 8049E1A8 7F E4 FB 78 */ mr r4, r31 -/* 8049E1AC 4B E3 60 C5 */ bl getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader -/* 8049E1B0 4B E6 A8 BD */ bl load__20J2DAnmLoaderDataBaseFPCv -/* 8049E1B4 90 7E 00 18 */ stw r3, 0x18(r30) -/* 8049E1B8 80 1E 00 18 */ lwz r0, 0x18(r30) -/* 8049E1BC 28 00 00 00 */ cmplwi r0, 0 -/* 8049E1C0 40 82 00 0C */ bne lbl_8049E1CC -/* 8049E1C4 38 60 00 00 */ li r3, 0 -/* 8049E1C8 48 00 01 8C */ b lbl_8049E354 -lbl_8049E1CC: -/* 8049E1CC 3C 60 80 4A */ lis r3, d_a_boomerang__stringBase0@ha /* 0x804A2990@ha */ -/* 8049E1D0 38 63 29 90 */ addi r3, r3, d_a_boomerang__stringBase0@l /* 0x804A2990@l */ -/* 8049E1D4 38 63 00 7B */ addi r3, r3, 0x7b -/* 8049E1D8 7F E4 FB 78 */ mr r4, r31 -/* 8049E1DC 4B E3 60 95 */ bl getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader -/* 8049E1E0 4B E6 A8 8D */ bl load__20J2DAnmLoaderDataBaseFPCv -/* 8049E1E4 90 7E 00 1C */ stw r3, 0x1c(r30) -/* 8049E1E8 80 1E 00 1C */ lwz r0, 0x1c(r30) -/* 8049E1EC 28 00 00 00 */ cmplwi r0, 0 -/* 8049E1F0 40 82 00 0C */ bne lbl_8049E1FC -/* 8049E1F4 38 60 00 00 */ li r3, 0 -/* 8049E1F8 48 00 01 5C */ b lbl_8049E354 -lbl_8049E1FC: -/* 8049E1FC 38 60 01 18 */ li r3, 0x118 -/* 8049E200 4B E3 0A 4D */ bl __nw__FUl -/* 8049E204 7C 60 1B 79 */ or. r0, r3, r3 -/* 8049E208 41 82 00 0C */ beq lbl_8049E214 -/* 8049E20C 4B E5 A2 8D */ bl __ct__9J2DScreenFv -/* 8049E210 7C 60 1B 78 */ mr r0, r3 -lbl_8049E214: -/* 8049E214 90 1E 00 20 */ stw r0, 0x20(r30) -/* 8049E218 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 8049E21C 28 03 00 00 */ cmplwi r3, 0 -/* 8049E220 40 82 00 0C */ bne lbl_8049E22C -/* 8049E224 38 60 00 00 */ li r3, 0 -/* 8049E228 48 00 01 2C */ b lbl_8049E354 -lbl_8049E22C: -/* 8049E22C 3C 80 80 4A */ lis r4, d_a_boomerang__stringBase0@ha /* 0x804A2990@ha */ -/* 8049E230 38 84 29 90 */ addi r4, r4, d_a_boomerang__stringBase0@l /* 0x804A2990@l */ -/* 8049E234 38 84 00 99 */ addi r4, r4, 0x99 -/* 8049E238 3C A0 00 10 */ lis r5, 0x10 -/* 8049E23C 7F E6 FB 78 */ mr r6, r31 -/* 8049E240 4B E5 A4 09 */ bl setPriority__9J2DScreenFPCcUlP10JKRArchive -/* 8049E244 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 8049E248 4B DB 6E A1 */ bl dPaneClass_showNullPane__FP9J2DScreen -/* 8049E24C 3C 60 80 4A */ lis r3, d_a_boomerang__stringBase0@ha /* 0x804A2990@ha */ -/* 8049E250 38 63 29 90 */ addi r3, r3, d_a_boomerang__stringBase0@l /* 0x804A2990@l */ -/* 8049E254 38 63 00 B4 */ addi r3, r3, 0xb4 -/* 8049E258 7F E4 FB 78 */ mr r4, r31 -/* 8049E25C 4B E3 60 15 */ bl getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader -/* 8049E260 4B E6 A8 0D */ bl load__20J2DAnmLoaderDataBaseFPCv -/* 8049E264 90 7E 00 34 */ stw r3, 0x34(r30) -/* 8049E268 80 1E 00 34 */ lwz r0, 0x34(r30) -/* 8049E26C 28 00 00 00 */ cmplwi r0, 0 -/* 8049E270 40 82 00 0C */ bne lbl_8049E27C -/* 8049E274 38 60 00 00 */ li r3, 0 -/* 8049E278 48 00 00 DC */ b lbl_8049E354 -lbl_8049E27C: -/* 8049E27C 3C 60 80 4A */ lis r3, d_a_boomerang__stringBase0@ha /* 0x804A2990@ha */ -/* 8049E280 38 63 29 90 */ addi r3, r3, d_a_boomerang__stringBase0@l /* 0x804A2990@l */ -/* 8049E284 38 63 00 D2 */ addi r3, r3, 0xd2 -/* 8049E288 7F E4 FB 78 */ mr r4, r31 -/* 8049E28C 4B E3 5F E5 */ bl getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader -/* 8049E290 4B E6 A7 DD */ bl load__20J2DAnmLoaderDataBaseFPCv -/* 8049E294 90 7E 00 38 */ stw r3, 0x38(r30) -/* 8049E298 80 1E 00 38 */ lwz r0, 0x38(r30) -/* 8049E29C 28 00 00 00 */ cmplwi r0, 0 -/* 8049E2A0 40 82 00 0C */ bne lbl_8049E2AC -/* 8049E2A4 38 60 00 00 */ li r3, 0 -/* 8049E2A8 48 00 00 AC */ b lbl_8049E354 -lbl_8049E2AC: -/* 8049E2AC 38 60 01 18 */ li r3, 0x118 -/* 8049E2B0 4B E3 09 9D */ bl __nw__FUl -/* 8049E2B4 7C 60 1B 79 */ or. r0, r3, r3 -/* 8049E2B8 41 82 00 0C */ beq lbl_8049E2C4 -/* 8049E2BC 4B E5 A1 DD */ bl __ct__9J2DScreenFv -/* 8049E2C0 7C 60 1B 78 */ mr r0, r3 -lbl_8049E2C4: -/* 8049E2C4 90 1E 00 3C */ stw r0, 0x3c(r30) -/* 8049E2C8 80 7E 00 3C */ lwz r3, 0x3c(r30) -/* 8049E2CC 28 03 00 00 */ cmplwi r3, 0 -/* 8049E2D0 40 82 00 0C */ bne lbl_8049E2DC -/* 8049E2D4 38 60 00 00 */ li r3, 0 -/* 8049E2D8 48 00 00 7C */ b lbl_8049E354 -lbl_8049E2DC: -/* 8049E2DC 3C 80 80 4A */ lis r4, d_a_boomerang__stringBase0@ha /* 0x804A2990@ha */ -/* 8049E2E0 38 84 29 90 */ addi r4, r4, d_a_boomerang__stringBase0@l /* 0x804A2990@l */ -/* 8049E2E4 38 84 00 ED */ addi r4, r4, 0xed -/* 8049E2E8 3C A0 00 10 */ lis r5, 0x10 -/* 8049E2EC 7F E6 FB 78 */ mr r6, r31 -/* 8049E2F0 4B E5 A3 59 */ bl setPriority__9J2DScreenFPCcUlP10JKRArchive -/* 8049E2F4 80 7E 00 3C */ lwz r3, 0x3c(r30) -/* 8049E2F8 4B DB 6D F1 */ bl dPaneClass_showNullPane__FP9J2DScreen -/* 8049E2FC 3C 60 80 4A */ lis r3, d_a_boomerang__stringBase0@ha /* 0x804A2990@ha */ -/* 8049E300 38 63 29 90 */ addi r3, r3, d_a_boomerang__stringBase0@l /* 0x804A2990@l */ -/* 8049E304 38 63 01 0B */ addi r3, r3, 0x10b -/* 8049E308 7F E4 FB 78 */ mr r4, r31 -/* 8049E30C 4B E3 5F 65 */ bl getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader -/* 8049E310 4B E6 A7 5D */ bl load__20J2DAnmLoaderDataBaseFPCv -/* 8049E314 90 7E 00 50 */ stw r3, 0x50(r30) -/* 8049E318 80 1E 00 50 */ lwz r0, 0x50(r30) -/* 8049E31C 28 00 00 00 */ cmplwi r0, 0 -/* 8049E320 40 82 00 0C */ bne lbl_8049E32C -/* 8049E324 38 60 00 00 */ li r3, 0 -/* 8049E328 48 00 00 2C */ b lbl_8049E354 -lbl_8049E32C: -/* 8049E32C 3C 60 80 4A */ lis r3, d_a_boomerang__stringBase0@ha /* 0x804A2990@ha */ -/* 8049E330 38 63 29 90 */ addi r3, r3, d_a_boomerang__stringBase0@l /* 0x804A2990@l */ -/* 8049E334 38 63 01 2C */ addi r3, r3, 0x12c -/* 8049E338 7F E4 FB 78 */ mr r4, r31 -/* 8049E33C 4B E3 5F 35 */ bl getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader -/* 8049E340 4B E6 A7 2D */ bl load__20J2DAnmLoaderDataBaseFPCv -/* 8049E344 90 7E 00 54 */ stw r3, 0x54(r30) -/* 8049E348 80 7E 00 54 */ lwz r3, 0x54(r30) -/* 8049E34C 30 03 FF FF */ addic r0, r3, -1 -/* 8049E350 7C 60 19 10 */ subfe r3, r0, r3 -lbl_8049E354: -/* 8049E354 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8049E358 83 C1 00 08 */ lwz r30, 8(r1) -/* 8049E35C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8049E360 7C 08 03 A6 */ mtlr r0 -/* 8049E364 38 21 00 10 */ addi r1, r1, 0x10 -/* 8049E368 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/daBoomerang_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/d_a_boomerang/d_a_boomerang/daBoomerang_Create__FP10fopAc_ac_c.s deleted file mode 100644 index b9f9a3319a4..00000000000 --- a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/daBoomerang_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_804A26F8: -/* 804A26F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804A26FC 7C 08 02 A6 */ mflr r0 -/* 804A2700 90 01 00 14 */ stw r0, 0x14(r1) -/* 804A2704 4B FF F9 81 */ bl create__13daBoomerang_cFv -/* 804A2708 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804A270C 7C 08 03 A6 */ mtlr r0 -/* 804A2710 38 21 00 10 */ addi r1, r1, 0x10 -/* 804A2714 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/draw__13daBoomerang_cFv.s b/asm/rel/d/a/d_a_boomerang/d_a_boomerang/draw__13daBoomerang_cFv.s deleted file mode 100644 index 103a250db2b..00000000000 --- a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/draw__13daBoomerang_cFv.s +++ /dev/null @@ -1,155 +0,0 @@ -lbl_8049F39C: -/* 8049F39C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8049F3A0 7C 08 02 A6 */ mflr r0 -/* 8049F3A4 90 01 00 24 */ stw r0, 0x24(r1) -/* 8049F3A8 39 61 00 20 */ addi r11, r1, 0x20 -/* 8049F3AC 4B EC 2E 31 */ bl _savegpr_29 -/* 8049F3B0 7C 7F 1B 78 */ mr r31, r3 -/* 8049F3B4 80 03 09 64 */ lwz r0, 0x964(r3) -/* 8049F3B8 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d -/* 8049F3BC 40 82 01 50 */ bne lbl_8049F50C -/* 8049F3C0 3B A0 00 00 */ li r29, 0 -/* 8049F3C4 48 00 00 B4 */ b lbl_8049F478 -lbl_8049F3C8: -/* 8049F3C8 7C 7F EA 14 */ add r3, r31, r29 -/* 8049F3CC 88 03 05 FA */ lbz r0, 0x5fa(r3) -/* 8049F3D0 28 00 00 00 */ cmplwi r0, 0 -/* 8049F3D4 41 82 00 A0 */ beq lbl_8049F474 -/* 8049F3D8 57 A0 10 3A */ slwi r0, r29, 2 -/* 8049F3DC 7F DF 02 14 */ add r30, r31, r0 -/* 8049F3E0 80 1E 06 C0 */ lwz r0, 0x6c0(r30) -/* 8049F3E4 28 00 00 00 */ cmplwi r0, 0 -/* 8049F3E8 41 82 00 54 */ beq lbl_8049F43C -/* 8049F3EC 80 1E 06 AC */ lwz r0, 0x6ac(r30) -/* 8049F3F0 90 01 00 0C */ stw r0, 0xc(r1) -/* 8049F3F4 3C 60 80 02 */ lis r3, fpcSch_JudgeByID__FPvPv@ha /* 0x80023590@ha */ -/* 8049F3F8 38 63 35 90 */ addi r3, r3, fpcSch_JudgeByID__FPvPv@l /* 0x80023590@l */ -/* 8049F3FC 38 81 00 0C */ addi r4, r1, 0xc -/* 8049F400 4B B7 A3 F9 */ bl fopAcIt_Judge__FPFPvPv_PvPv -/* 8049F404 90 7E 06 C0 */ stw r3, 0x6c0(r30) -/* 8049F408 80 9E 06 C0 */ lwz r4, 0x6c0(r30) -/* 8049F40C 28 04 00 00 */ cmplwi r4, 0 -/* 8049F410 40 82 00 18 */ bne lbl_8049F428 -/* 8049F414 7F E3 FB 78 */ mr r3, r31 -/* 8049F418 7F A4 EB 78 */ mr r4, r29 -/* 8049F41C 48 00 02 F5 */ bl pushLockList__13daBoomerang_cFi -/* 8049F420 3B BD FF FF */ addi r29, r29, -1 -/* 8049F424 48 00 00 50 */ b lbl_8049F474 -lbl_8049F428: -/* 8049F428 38 7F 05 98 */ addi r3, r31, 0x598 -/* 8049F42C 38 84 05 38 */ addi r4, r4, 0x538 -/* 8049F430 7F A5 EB 78 */ mr r5, r29 -/* 8049F434 4B FF FA 95 */ bl setSight__19daBoomerang_sight_cFPC4cXyzi -/* 8049F438 48 00 00 3C */ b lbl_8049F474 -lbl_8049F43C: -/* 8049F43C 88 03 07 18 */ lbz r0, 0x718(r3) -/* 8049F440 28 00 00 00 */ cmplwi r0, 0 -/* 8049F444 41 82 00 20 */ beq lbl_8049F464 -/* 8049F448 38 7F 05 98 */ addi r3, r31, 0x598 -/* 8049F44C 1C 9D 00 0C */ mulli r4, r29, 0xc -/* 8049F450 38 84 06 DC */ addi r4, r4, 0x6dc -/* 8049F454 7C 9F 22 14 */ add r4, r31, r4 -/* 8049F458 7F A5 EB 78 */ mr r5, r29 -/* 8049F45C 4B FF FA 6D */ bl setSight__19daBoomerang_sight_cFPC4cXyzi -/* 8049F460 48 00 00 14 */ b lbl_8049F474 -lbl_8049F464: -/* 8049F464 38 7F 05 98 */ addi r3, r31, 0x598 -/* 8049F468 38 80 00 00 */ li r4, 0 -/* 8049F46C 7F A5 EB 78 */ mr r5, r29 -/* 8049F470 4B FF FA 59 */ bl setSight__19daBoomerang_sight_cFPC4cXyzi -lbl_8049F474: -/* 8049F474 3B BD 00 01 */ addi r29, r29, 1 -lbl_8049F478: -/* 8049F478 2C 1D 00 05 */ cmpwi r29, 5 -/* 8049F47C 41 80 FF 4C */ blt lbl_8049F3C8 -/* 8049F480 88 1F 05 FF */ lbz r0, 0x5ff(r31) -/* 8049F484 28 00 00 00 */ cmplwi r0, 0 -/* 8049F488 41 82 00 5C */ beq lbl_8049F4E4 -/* 8049F48C 80 1F 06 D8 */ lwz r0, 0x6d8(r31) -/* 8049F490 28 00 00 00 */ cmplwi r0, 0 -/* 8049F494 41 82 00 20 */ beq lbl_8049F4B4 -/* 8049F498 80 1F 06 D4 */ lwz r0, 0x6d4(r31) -/* 8049F49C 90 01 00 08 */ stw r0, 8(r1) -/* 8049F4A0 3C 60 80 02 */ lis r3, fpcSch_JudgeByID__FPvPv@ha /* 0x80023590@ha */ -/* 8049F4A4 38 63 35 90 */ addi r3, r3, fpcSch_JudgeByID__FPvPv@l /* 0x80023590@l */ -/* 8049F4A8 38 81 00 08 */ addi r4, r1, 8 -/* 8049F4AC 4B B7 A3 4D */ bl fopAcIt_Judge__FPFPvPv_PvPv -/* 8049F4B0 90 7F 06 D8 */ stw r3, 0x6d8(r31) -lbl_8049F4B4: -/* 8049F4B4 80 9F 06 D8 */ lwz r4, 0x6d8(r31) -/* 8049F4B8 28 04 00 00 */ cmplwi r4, 0 -/* 8049F4BC 41 82 00 18 */ beq lbl_8049F4D4 -/* 8049F4C0 38 7F 05 98 */ addi r3, r31, 0x598 -/* 8049F4C4 38 84 05 38 */ addi r4, r4, 0x538 -/* 8049F4C8 38 A0 00 05 */ li r5, 5 -/* 8049F4CC 4B FF F9 FD */ bl setSight__19daBoomerang_sight_cFPC4cXyzi -/* 8049F4D0 48 00 00 14 */ b lbl_8049F4E4 -lbl_8049F4D4: -/* 8049F4D4 38 7F 05 98 */ addi r3, r31, 0x598 -/* 8049F4D8 38 80 00 00 */ li r4, 0 -/* 8049F4DC 38 A0 00 05 */ li r5, 5 -/* 8049F4E0 4B FF F9 E9 */ bl setSight__19daBoomerang_sight_cFPC4cXyzi -lbl_8049F4E4: -/* 8049F4E4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8049F4E8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8049F4EC 88 03 4F AD */ lbz r0, 0x4fad(r3) -/* 8049F4F0 28 00 00 00 */ cmplwi r0, 0 -/* 8049F4F4 40 82 00 18 */ bne lbl_8049F50C -/* 8049F4F8 38 63 5F 64 */ addi r3, r3, 0x5f64 -/* 8049F4FC 38 83 02 3C */ addi r4, r3, 0x23c -/* 8049F500 38 A3 02 40 */ addi r5, r3, 0x240 -/* 8049F504 38 DF 05 98 */ addi r6, r31, 0x598 -/* 8049F508 4B BB 72 8D */ bl set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c -lbl_8049F50C: -/* 8049F50C 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 8049F510 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 8049F514 38 80 00 00 */ li r4, 0 -/* 8049F518 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 8049F51C 38 DF 01 0C */ addi r6, r31, 0x10c -/* 8049F520 4B D0 42 A5 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 8049F524 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 8049F528 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 8049F52C 80 9F 05 68 */ lwz r4, 0x568(r31) -/* 8049F530 80 84 00 04 */ lwz r4, 4(r4) -/* 8049F534 38 BF 01 0C */ addi r5, r31, 0x10c -/* 8049F538 4B D0 58 69 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 8049F53C 80 7F 05 68 */ lwz r3, 0x568(r31) -/* 8049F540 4B B6 E7 85 */ bl mDoExt_modelUpdateDL__FP8J3DModel -/* 8049F544 80 7F 05 68 */ lwz r3, 0x568(r31) -/* 8049F548 4B B9 24 05 */ bl entry__10daMirror_cFP8J3DModel -/* 8049F54C 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 8049F550 28 00 00 00 */ cmplwi r0, 0 -/* 8049F554 41 82 00 30 */ beq lbl_8049F584 -/* 8049F558 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 8049F55C 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 8049F560 80 9F 05 6C */ lwz r4, 0x56c(r31) -/* 8049F564 80 84 00 04 */ lwz r4, 4(r4) -/* 8049F568 38 BF 01 0C */ addi r5, r31, 0x10c -/* 8049F56C 4B D0 58 35 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 8049F570 80 7F 05 6C */ lwz r3, 0x56c(r31) -/* 8049F574 4B B6 E7 F1 */ bl mDoExt_modelEntryDL__FP8J3DModel -/* 8049F578 80 7F 05 6C */ lwz r3, 0x56c(r31) -/* 8049F57C 4B B9 23 D1 */ bl entry__10daMirror_cFP8J3DModel -/* 8049F580 48 00 00 38 */ b lbl_8049F5B8 -lbl_8049F584: -/* 8049F584 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8049F588 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8049F58C 80 03 5F 18 */ lwz r0, 0x5f18(r3) -/* 8049F590 54 00 03 19 */ rlwinm. r0, r0, 0, 0xc, 0xc -/* 8049F594 41 82 00 24 */ beq lbl_8049F5B8 -/* 8049F598 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 8049F59C 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 8049F5A0 80 9F 05 90 */ lwz r4, 0x590(r31) -/* 8049F5A4 80 84 00 04 */ lwz r4, 4(r4) -/* 8049F5A8 38 BF 01 0C */ addi r5, r31, 0x10c -/* 8049F5AC 4B D0 57 F5 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 8049F5B0 80 7F 05 90 */ lwz r3, 0x590(r31) -/* 8049F5B4 4B B6 E7 11 */ bl mDoExt_modelUpdateDL__FP8J3DModel -lbl_8049F5B8: -/* 8049F5B8 38 60 00 01 */ li r3, 1 -/* 8049F5BC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8049F5C0 4B EC 2C 69 */ bl _restgpr_29 -/* 8049F5C4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8049F5C8 7C 08 03 A6 */ mtlr r0 -/* 8049F5CC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8049F5D0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/pushLockList__13daBoomerang_cFi.s b/asm/rel/d/a/d_a_boomerang/d_a_boomerang/pushLockList__13daBoomerang_cFi.s deleted file mode 100644 index 900a0742c12..00000000000 --- a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/pushLockList__13daBoomerang_cFi.s +++ /dev/null @@ -1,72 +0,0 @@ -lbl_8049F710: -/* 8049F710 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8049F714 7C 08 02 A6 */ mflr r0 -/* 8049F718 90 01 00 24 */ stw r0, 0x24(r1) -/* 8049F71C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8049F720 4B EC 2A B9 */ bl _savegpr_28 -/* 8049F724 7C 7F 1B 78 */ mr r31, r3 -/* 8049F728 2C 04 00 00 */ cmpwi r4, 0 -/* 8049F72C 40 82 00 0C */ bne lbl_8049F738 -/* 8049F730 38 00 00 00 */ li r0, 0 -/* 8049F734 98 1F 05 F8 */ stb r0, 0x5f8(r31) -lbl_8049F738: -/* 8049F738 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 8049F73C 28 00 00 01 */ cmplwi r0, 1 -/* 8049F740 40 82 00 18 */ bne lbl_8049F758 -/* 8049F744 88 7F 09 51 */ lbz r3, 0x951(r31) -/* 8049F748 7C 04 18 00 */ cmpw r4, r3 -/* 8049F74C 40 80 00 0C */ bge lbl_8049F758 -/* 8049F750 38 03 FF FF */ addi r0, r3, -1 -/* 8049F754 98 1F 09 51 */ stb r0, 0x951(r31) -lbl_8049F758: -/* 8049F758 7C 9C 23 78 */ mr r28, r4 -/* 8049F75C 54 9D 10 3A */ slwi r29, r4, 2 -/* 8049F760 1F C4 00 0C */ mulli r30, r4, 0xc -/* 8049F764 48 00 00 58 */ b lbl_8049F7BC -lbl_8049F768: -/* 8049F768 7C 7F EA 14 */ add r3, r31, r29 -/* 8049F76C 80 03 06 B0 */ lwz r0, 0x6b0(r3) -/* 8049F770 90 03 06 AC */ stw r0, 0x6ac(r3) -/* 8049F774 80 03 06 C4 */ lwz r0, 0x6c4(r3) -/* 8049F778 90 03 06 C0 */ stw r0, 0x6c0(r3) -/* 8049F77C 7C 7F F2 14 */ add r3, r31, r30 -/* 8049F780 C0 03 06 E8 */ lfs f0, 0x6e8(r3) -/* 8049F784 D0 03 06 DC */ stfs f0, 0x6dc(r3) -/* 8049F788 C0 03 06 EC */ lfs f0, 0x6ec(r3) -/* 8049F78C D0 03 06 E0 */ stfs f0, 0x6e0(r3) -/* 8049F790 C0 03 06 F0 */ lfs f0, 0x6f0(r3) -/* 8049F794 D0 03 06 E4 */ stfs f0, 0x6e4(r3) -/* 8049F798 7C 7F E2 14 */ add r3, r31, r28 -/* 8049F79C 88 03 07 19 */ lbz r0, 0x719(r3) -/* 8049F7A0 98 03 07 18 */ stb r0, 0x718(r3) -/* 8049F7A4 38 7F 05 98 */ addi r3, r31, 0x598 -/* 8049F7A8 7F 84 E3 78 */ mr r4, r28 -/* 8049F7AC 4B FF F6 3D */ bl copyNumData__19daBoomerang_sight_cFi -/* 8049F7B0 3B 9C 00 01 */ addi r28, r28, 1 -/* 8049F7B4 3B DE 00 0C */ addi r30, r30, 0xc -/* 8049F7B8 3B BD 00 04 */ addi r29, r29, 4 -lbl_8049F7BC: -/* 8049F7BC 88 7F 09 50 */ lbz r3, 0x950(r31) -/* 8049F7C0 38 03 FF FF */ addi r0, r3, -1 -/* 8049F7C4 7C 1C 00 00 */ cmpw r28, r0 -/* 8049F7C8 41 80 FF A0 */ blt lbl_8049F768 -/* 8049F7CC 38 00 FF FF */ li r0, -1 -/* 8049F7D0 57 83 10 3A */ slwi r3, r28, 2 -/* 8049F7D4 7C 7F 1A 14 */ add r3, r31, r3 -/* 8049F7D8 90 03 06 AC */ stw r0, 0x6ac(r3) -/* 8049F7DC 38 00 00 00 */ li r0, 0 -/* 8049F7E0 90 03 06 C0 */ stw r0, 0x6c0(r3) -/* 8049F7E4 7C 7F E2 14 */ add r3, r31, r28 -/* 8049F7E8 98 03 07 18 */ stb r0, 0x718(r3) -/* 8049F7EC 88 7F 09 50 */ lbz r3, 0x950(r31) -/* 8049F7F0 28 03 00 00 */ cmplwi r3, 0 -/* 8049F7F4 41 82 00 0C */ beq lbl_8049F800 -/* 8049F7F8 38 03 FF FF */ addi r0, r3, -1 -/* 8049F7FC 98 1F 09 50 */ stb r0, 0x950(r31) -lbl_8049F800: -/* 8049F800 39 61 00 20 */ addi r11, r1, 0x20 -/* 8049F804 4B EC 2A 21 */ bl _restgpr_28 -/* 8049F808 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8049F80C 7C 08 03 A6 */ mtlr r0 -/* 8049F810 38 21 00 20 */ addi r1, r1, 0x20 -/* 8049F814 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/setAimPos__13daBoomerang_cFv.s b/asm/rel/d/a/d_a_boomerang/d_a_boomerang/setAimPos__13daBoomerang_cFv.s deleted file mode 100644 index 336b418e670..00000000000 --- a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/setAimPos__13daBoomerang_cFv.s +++ /dev/null @@ -1,71 +0,0 @@ -lbl_8049FD6C: -/* 8049FD6C 80 03 09 64 */ lwz r0, 0x964(r3) -/* 8049FD70 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 8049FD74 41 82 00 38 */ beq lbl_8049FDAC -/* 8049FD78 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 8049FD7C 28 00 00 01 */ cmplwi r0, 1 -/* 8049FD80 4C 82 00 20 */ bnelr -/* 8049FD84 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8049FD88 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8049FD8C 80 84 5D B4 */ lwz r4, 0x5db4(r4) -/* 8049FD90 C0 04 35 34 */ lfs f0, 0x3534(r4) -/* 8049FD94 D0 03 09 90 */ stfs f0, 0x990(r3) -/* 8049FD98 C0 04 35 38 */ lfs f0, 0x3538(r4) -/* 8049FD9C D0 03 09 94 */ stfs f0, 0x994(r3) -/* 8049FDA0 C0 04 35 3C */ lfs f0, 0x353c(r4) -/* 8049FDA4 D0 03 09 98 */ stfs f0, 0x998(r3) -/* 8049FDA8 4E 80 00 20 */ blr -lbl_8049FDAC: -/* 8049FDAC 88 03 09 57 */ lbz r0, 0x957(r3) -/* 8049FDB0 28 00 00 00 */ cmplwi r0, 0 -/* 8049FDB4 41 82 00 20 */ beq lbl_8049FDD4 -/* 8049FDB8 C0 03 09 AC */ lfs f0, 0x9ac(r3) -/* 8049FDBC D0 03 09 90 */ stfs f0, 0x990(r3) -/* 8049FDC0 C0 03 09 B0 */ lfs f0, 0x9b0(r3) -/* 8049FDC4 D0 03 09 94 */ stfs f0, 0x994(r3) -/* 8049FDC8 C0 03 09 B4 */ lfs f0, 0x9b4(r3) -/* 8049FDCC D0 03 09 98 */ stfs f0, 0x998(r3) -/* 8049FDD0 4E 80 00 20 */ blr -lbl_8049FDD4: -/* 8049FDD4 88 C3 09 51 */ lbz r6, 0x951(r3) -/* 8049FDD8 54 C4 10 3A */ slwi r4, r6, 2 -/* 8049FDDC 48 00 00 80 */ b lbl_8049FE5C -lbl_8049FDE0: -/* 8049FDE0 38 04 06 C0 */ addi r0, r4, 0x6c0 -/* 8049FDE4 7C 03 00 2E */ lwzx r0, r3, r0 -/* 8049FDE8 28 00 00 00 */ cmplwi r0, 0 -/* 8049FDEC 41 82 00 28 */ beq lbl_8049FE14 -/* 8049FDF0 7C 83 22 14 */ add r4, r3, r4 -/* 8049FDF4 80 84 06 C0 */ lwz r4, 0x6c0(r4) -/* 8049FDF8 C0 04 05 38 */ lfs f0, 0x538(r4) -/* 8049FDFC D0 03 09 90 */ stfs f0, 0x990(r3) -/* 8049FE00 C0 04 05 3C */ lfs f0, 0x53c(r4) -/* 8049FE04 D0 03 09 94 */ stfs f0, 0x994(r3) -/* 8049FE08 C0 04 05 40 */ lfs f0, 0x540(r4) -/* 8049FE0C D0 03 09 98 */ stfs f0, 0x998(r3) -/* 8049FE10 4E 80 00 20 */ blr -lbl_8049FE14: -/* 8049FE14 38 06 07 18 */ addi r0, r6, 0x718 -/* 8049FE18 7C 03 00 AE */ lbzx r0, r3, r0 -/* 8049FE1C 28 00 00 00 */ cmplwi r0, 0 -/* 8049FE20 41 82 00 28 */ beq lbl_8049FE48 -/* 8049FE24 1C 06 00 0C */ mulli r0, r6, 0xc -/* 8049FE28 7C 83 02 14 */ add r4, r3, r0 -/* 8049FE2C C0 04 06 DC */ lfs f0, 0x6dc(r4) -/* 8049FE30 D0 03 09 90 */ stfs f0, 0x990(r3) -/* 8049FE34 C0 04 06 E0 */ lfs f0, 0x6e0(r4) -/* 8049FE38 D0 03 09 94 */ stfs f0, 0x994(r3) -/* 8049FE3C C0 04 06 E4 */ lfs f0, 0x6e4(r4) -/* 8049FE40 D0 03 09 98 */ stfs f0, 0x998(r3) -/* 8049FE44 4E 80 00 20 */ blr -lbl_8049FE48: -/* 8049FE48 88 A3 09 51 */ lbz r5, 0x951(r3) -/* 8049FE4C 38 05 00 01 */ addi r0, r5, 1 -/* 8049FE50 98 03 09 51 */ stb r0, 0x951(r3) -/* 8049FE54 38 C6 00 01 */ addi r6, r6, 1 -/* 8049FE58 38 84 00 04 */ addi r4, r4, 4 -lbl_8049FE5C: -/* 8049FE5C 88 03 09 50 */ lbz r0, 0x950(r3) -/* 8049FE60 7C 06 00 00 */ cmpw r6, r0 -/* 8049FE64 41 80 FF 7C */ blt lbl_8049FDE0 -/* 8049FE68 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/setKeepMatrix__13daBoomerang_cFv.s b/asm/rel/d/a/d_a_boomerang/d_a_boomerang/setKeepMatrix__13daBoomerang_cFv.s deleted file mode 100644 index f6109fa9f9f..00000000000 --- a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/setKeepMatrix__13daBoomerang_cFv.s +++ /dev/null @@ -1,67 +0,0 @@ -lbl_8049FAA4: -/* 8049FAA4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8049FAA8 7C 08 02 A6 */ mflr r0 -/* 8049FAAC 90 01 00 24 */ stw r0, 0x24(r1) -/* 8049FAB0 39 61 00 20 */ addi r11, r1, 0x20 -/* 8049FAB4 4B EC 27 29 */ bl _savegpr_29 -/* 8049FAB8 7C 7D 1B 78 */ mr r29, r3 -/* 8049FABC 3C 60 80 4A */ lis r3, lit_4078@ha /* 0x804A2850@ha */ -/* 8049FAC0 3B E3 28 50 */ addi r31, r3, lit_4078@l /* 0x804A2850@l */ -/* 8049FAC4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8049FAC8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8049FACC 83 C3 5D B4 */ lwz r30, 0x5db4(r3) -/* 8049FAD0 7F C3 F3 78 */ mr r3, r30 -/* 8049FAD4 81 9E 06 28 */ lwz r12, 0x628(r30) -/* 8049FAD8 81 8C 00 20 */ lwz r12, 0x20(r12) -/* 8049FADC 7D 89 03 A6 */ mtctr r12 -/* 8049FAE0 4E 80 04 21 */ bctrl -/* 8049FAE4 3C 80 80 3E */ lis r4, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8049FAE8 38 84 D4 70 */ addi r4, r4, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8049FAEC 4B EA 69 C5 */ bl PSMTXCopy -/* 8049FAF0 C0 3F 00 B4 */ lfs f1, 0xb4(r31) -/* 8049FAF4 C0 5F 00 B8 */ lfs f2, 0xb8(r31) -/* 8049FAF8 C0 7F 00 BC */ lfs f3, 0xbc(r31) -/* 8049FAFC 4B B6 D2 A1 */ bl transM__14mDoMtx_stack_cFfff -/* 8049FB00 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8049FB04 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8049FB08 38 80 FD 28 */ li r4, -728 -/* 8049FB0C 38 A0 1B BB */ li r5, 0x1bbb -/* 8049FB10 38 C0 F9 9A */ li r6, -1638 -/* 8049FB14 4B B6 C6 51 */ bl mDoMtx_XYZrotM__FPA4_fsss -/* 8049FB18 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8049FB1C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8049FB20 80 9D 05 68 */ lwz r4, 0x568(r29) -/* 8049FB24 38 84 00 24 */ addi r4, r4, 0x24 -/* 8049FB28 4B EA 69 89 */ bl PSMTXCopy -/* 8049FB2C 7F C3 F3 78 */ mr r3, r30 -/* 8049FB30 81 9E 06 28 */ lwz r12, 0x628(r30) -/* 8049FB34 81 8C 00 20 */ lwz r12, 0x20(r12) -/* 8049FB38 7D 89 03 A6 */ mtctr r12 -/* 8049FB3C 4E 80 04 21 */ bctrl -/* 8049FB40 80 9D 05 6C */ lwz r4, 0x56c(r29) -/* 8049FB44 38 84 00 24 */ addi r4, r4, 0x24 -/* 8049FB48 4B EA 69 69 */ bl PSMTXCopy -/* 8049FB4C 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8049FB50 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8049FB54 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 8049FB58 D0 1D 04 D0 */ stfs f0, 0x4d0(r29) -/* 8049FB5C C0 03 00 1C */ lfs f0, 0x1c(r3) -/* 8049FB60 D0 1D 04 D4 */ stfs f0, 0x4d4(r29) -/* 8049FB64 C0 03 00 2C */ lfs f0, 0x2c(r3) -/* 8049FB68 D0 1D 04 D8 */ stfs f0, 0x4d8(r29) -/* 8049FB6C 80 7D 05 94 */ lwz r3, 0x594(r29) -/* 8049FB70 4B C0 96 D9 */ bl simpleAnmPlay__9daAlink_cFP10J3DAnmBase -/* 8049FB74 7F C3 F3 78 */ mr r3, r30 -/* 8049FB78 81 9E 06 28 */ lwz r12, 0x628(r30) -/* 8049FB7C 81 8C 00 20 */ lwz r12, 0x20(r12) -/* 8049FB80 7D 89 03 A6 */ mtctr r12 -/* 8049FB84 4E 80 04 21 */ bctrl -/* 8049FB88 80 9D 05 90 */ lwz r4, 0x590(r29) -/* 8049FB8C 38 84 00 24 */ addi r4, r4, 0x24 -/* 8049FB90 4B EA 69 21 */ bl PSMTXCopy -/* 8049FB94 39 61 00 20 */ addi r11, r1, 0x20 -/* 8049FB98 4B EC 26 91 */ bl _restgpr_29 -/* 8049FB9C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8049FBA0 7C 08 03 A6 */ mtlr r0 -/* 8049FBA4 38 21 00 20 */ addi r1, r1, 0x20 -/* 8049FBA8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/setLockActor__13daBoomerang_cFP10fopAc_ac_ci.s b/asm/rel/d/a/d_a_boomerang/d_a_boomerang/setLockActor__13daBoomerang_cFP10fopAc_ac_ci.s deleted file mode 100644 index 9cf75a84ab8..00000000000 --- a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/setLockActor__13daBoomerang_cFP10fopAc_ac_ci.s +++ /dev/null @@ -1,72 +0,0 @@ -lbl_8049F8B0: -/* 8049F8B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8049F8B4 7C 08 02 A6 */ mflr r0 -/* 8049F8B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8049F8BC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8049F8C0 93 C1 00 08 */ stw r30, 8(r1) -/* 8049F8C4 7C 7E 1B 78 */ mr r30, r3 -/* 8049F8C8 88 C3 09 50 */ lbz r6, 0x950(r3) -/* 8049F8CC 28 06 00 05 */ cmplwi r6, 5 -/* 8049F8D0 41 80 00 0C */ blt lbl_8049F8DC -/* 8049F8D4 38 60 00 00 */ li r3, 0 -/* 8049F8D8 48 00 00 B4 */ b lbl_8049F98C -lbl_8049F8DC: -/* 8049F8DC 28 04 00 00 */ cmplwi r4, 0 -/* 8049F8E0 41 82 00 0C */ beq lbl_8049F8EC -/* 8049F8E4 83 E4 00 04 */ lwz r31, 4(r4) -/* 8049F8E8 48 00 00 08 */ b lbl_8049F8F0 -lbl_8049F8EC: -/* 8049F8EC 3B E0 FF FF */ li r31, -1 -lbl_8049F8F0: -/* 8049F8F0 38 60 00 00 */ li r3, 0 -/* 8049F8F4 7C C9 03 A6 */ mtctr r6 -/* 8049F8F8 2C 06 00 00 */ cmpwi r6, 0 -/* 8049F8FC 40 81 00 24 */ ble lbl_8049F920 -lbl_8049F900: -/* 8049F900 38 03 06 AC */ addi r0, r3, 0x6ac -/* 8049F904 7C 1E 00 2E */ lwzx r0, r30, r0 -/* 8049F908 7C 00 F8 40 */ cmplw r0, r31 -/* 8049F90C 40 82 00 0C */ bne lbl_8049F918 -/* 8049F910 38 60 00 00 */ li r3, 0 -/* 8049F914 48 00 00 78 */ b lbl_8049F98C -lbl_8049F918: -/* 8049F918 38 63 00 04 */ addi r3, r3, 4 -/* 8049F91C 42 00 FF E4 */ bdnz lbl_8049F900 -lbl_8049F920: -/* 8049F920 2C 05 00 00 */ cmpwi r5, 0 -/* 8049F924 41 82 00 30 */ beq lbl_8049F954 -/* 8049F928 38 64 05 38 */ addi r3, r4, 0x538 -/* 8049F92C 38 9E 04 D0 */ addi r4, r30, 0x4d0 -/* 8049F930 4B EA 7A 6D */ bl PSVECSquareDistance -/* 8049F934 C0 1E 09 84 */ lfs f0, 0x984(r30) -/* 8049F938 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 8049F93C 40 81 00 0C */ ble lbl_8049F948 -/* 8049F940 38 60 00 00 */ li r3, 0 -/* 8049F944 48 00 00 48 */ b lbl_8049F98C -lbl_8049F948: -/* 8049F948 D0 3E 09 84 */ stfs f1, 0x984(r30) -/* 8049F94C 93 FE 06 A8 */ stw r31, 0x6a8(r30) -/* 8049F950 48 00 00 38 */ b lbl_8049F988 -lbl_8049F954: -/* 8049F954 54 C0 15 BA */ rlwinm r0, r6, 2, 0x16, 0x1d -/* 8049F958 7C 7E 02 14 */ add r3, r30, r0 -/* 8049F95C 93 E3 06 AC */ stw r31, 0x6ac(r3) -/* 8049F960 88 1E 09 50 */ lbz r0, 0x950(r30) -/* 8049F964 54 00 10 3A */ slwi r0, r0, 2 -/* 8049F968 7C 7E 02 14 */ add r3, r30, r0 -/* 8049F96C 90 83 06 C0 */ stw r4, 0x6c0(r3) -/* 8049F970 38 7E 05 98 */ addi r3, r30, 0x598 -/* 8049F974 88 9E 09 50 */ lbz r4, 0x950(r30) -/* 8049F978 4B FF F4 31 */ bl initFrame__19daBoomerang_sight_cFi -/* 8049F97C 88 7E 09 50 */ lbz r3, 0x950(r30) -/* 8049F980 38 03 00 01 */ addi r0, r3, 1 -/* 8049F984 98 1E 09 50 */ stb r0, 0x950(r30) -lbl_8049F988: -/* 8049F988 38 60 00 01 */ li r3, 1 -lbl_8049F98C: -/* 8049F98C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8049F990 83 C1 00 08 */ lwz r30, 8(r1) -/* 8049F994 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8049F998 7C 08 03 A6 */ mtlr r0 -/* 8049F99C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8049F9A0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/setRoomInfo__13daBoomerang_cFv.s b/asm/rel/d/a/d_a_boomerang/d_a_boomerang/setRoomInfo__13daBoomerang_cFv.s deleted file mode 100644 index 4216ec3dc90..00000000000 --- a/asm/rel/d/a/d_a_boomerang/d_a_boomerang/setRoomInfo__13daBoomerang_cFv.s +++ /dev/null @@ -1,48 +0,0 @@ -lbl_8049F9F0: -/* 8049F9F0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8049F9F4 7C 08 02 A6 */ mflr r0 -/* 8049F9F8 90 01 00 24 */ stw r0, 0x24(r1) -/* 8049F9FC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8049FA00 4B EC 27 DD */ bl _savegpr_29 -/* 8049FA04 7C 7D 1B 78 */ mr r29, r3 -/* 8049FA08 38 7D 0D 6C */ addi r3, r29, 0xd6c -/* 8049FA0C 38 9D 04 D0 */ addi r4, r29, 0x4d0 -/* 8049FA10 4B DC 83 19 */ bl SetPos__11cBgS_GndChkFPC4cXyz -/* 8049FA14 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8049FA18 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8049FA1C 3B E3 0F 38 */ addi r31, r3, 0xf38 -/* 8049FA20 7F E3 FB 78 */ mr r3, r31 -/* 8049FA24 38 9D 0D 6C */ addi r4, r29, 0xd6c -/* 8049FA28 4B BD 4A 79 */ bl GroundCross__4cBgSFP11cBgS_GndChk -/* 8049FA2C D0 3D 09 80 */ stfs f1, 0x980(r29) -/* 8049FA30 3C 60 80 4A */ lis r3, lit_4886@ha /* 0x804A2900@ha */ -/* 8049FA34 C0 23 29 00 */ lfs f1, lit_4886@l(r3) /* 0x804A2900@l */ -/* 8049FA38 C0 1D 09 80 */ lfs f0, 0x980(r29) -/* 8049FA3C FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 8049FA40 41 82 00 28 */ beq lbl_8049FA68 -/* 8049FA44 7F E3 FB 78 */ mr r3, r31 -/* 8049FA48 38 9D 0D 80 */ addi r4, r29, 0xd80 -/* 8049FA4C 4B BD 56 B5 */ bl GetRoomId__4dBgSFRC13cBgS_PolyInfo -/* 8049FA50 7C 7E 1B 78 */ mr r30, r3 -/* 8049FA54 7F E3 FB 78 */ mr r3, r31 -/* 8049FA58 38 9D 0D 80 */ addi r4, r29, 0xd80 -/* 8049FA5C 4B BD 51 8D */ bl GetPolyColor__4dBgSFRC13cBgS_PolyInfo -/* 8049FA60 98 7D 04 8D */ stb r3, 0x48d(r29) -/* 8049FA64 48 00 00 10 */ b lbl_8049FA74 -lbl_8049FA68: -/* 8049FA68 3C 60 80 45 */ lis r3, mStayNo__20dStage_roomControl_c+0x0@ha /* 0x80450D64@ha */ -/* 8049FA6C 8B C3 0D 64 */ lbz r30, mStayNo__20dStage_roomControl_c+0x0@l(r3) /* 0x80450D64@l */ -/* 8049FA70 7F DE 07 74 */ extsb r30, r30 -lbl_8049FA74: -/* 8049FA74 9B DD 04 8C */ stb r30, 0x48c(r29) -/* 8049FA78 7F C3 F3 78 */ mr r3, r30 -/* 8049FA7C 4B B8 D5 F1 */ bl dComIfGp_getReverb__Fi -/* 8049FA80 98 7D 09 53 */ stb r3, 0x953(r29) -/* 8049FA84 9B DD 09 F2 */ stb r30, 0x9f2(r29) -/* 8049FA88 9B DD 04 E2 */ stb r30, 0x4e2(r29) -/* 8049FA8C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8049FA90 4B EC 27 99 */ bl _restgpr_29 -/* 8049FA94 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8049FA98 7C 08 03 A6 */ mtlr r0 -/* 8049FA9C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8049FAA0 4E 80 00 20 */ blr diff --git a/include/SSystem/SComponent/c_math.h b/include/SSystem/SComponent/c_math.h index 767f1ddfc08..7348052c9d5 100644 --- a/include/SSystem/SComponent/c_math.h +++ b/include/SSystem/SComponent/c_math.h @@ -33,6 +33,10 @@ inline s16 i_cM_deg2s(f32 deg) { return deg; } +inline f32 cM_fcos(f32 x) { + return JMASCos(cM_rad2s(x)); +} + inline f32 cM_fsin(f32 x) { return JMASSin(cM_rad2s(x)); } diff --git a/include/d/bg/d_bg_s.h b/include/d/bg/d_bg_s.h index 9bfb83b528d..c3fa6032eb3 100644 --- a/include/d/bg/d_bg_s.h +++ b/include/d/bg/d_bg_s.h @@ -111,6 +111,7 @@ public: }; // Size: 0x1404 bool dBgS_CheckBGroundPoly(cBgS_PolyInfo const&); +bool dBgS_CheckBRoofPoly(cBgS_PolyInfo const&); bool dBgS_CheckBWallPoly(cBgS_PolyInfo const&); void dBgS_MoveBGProc_Typical(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2, bool param_3, cXyz* param_4, csXyz* param_5, csXyz* param_6); 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 7b3cb997893..8b66ed79d7c 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 @@ -11,9 +11,9 @@ class daBoomerang_sight_c { public: - /* 8049E0B8 */ void createHeap(); + /* 8049E0B8 */ int createHeap(); /* 8049E36C */ void initialize(); - /* 8049EB64 */ void playAnime(int, int); + /* 8049EB64 */ int playAnime(int, int); /* 8049EDA8 */ void initFrame(int); /* 8049EDE8 */ void copyNumData(int); /* 8049EEC8 */ void setSight(cXyz const*, int); @@ -22,6 +22,10 @@ public: /* 804A278C */ virtual ~daBoomerang_sight_c(); u8 getReserve() const { return mReserve; } + u8 getAlpha(int i_index) { return mAlpha[i_index]; } + void offRedSight() { mRedSight = false; } + void onReserve() { mReserve = 1; } + void offReserve() { mReserve = 0; } private: /* 0x04 */ J2DScreen* field_0x4; @@ -29,24 +33,24 @@ private: /* 0x0C */ J2DPane* field_0xc; /* 0x10 */ J2DPane* field_0x10; /* 0x14 */ J2DPane* field_0x14; - /* 0x18 */ J2DAnmBase* field_0x18; - /* 0x1C */ J2DAnmBase* field_0x1c; + /* 0x18 */ J2DAnmTevRegKey* field_0x18; + /* 0x1C */ J2DAnmTevRegKey* field_0x1c; /* 0x20 */ J2DScreen* field_0x20; /* 0x24 */ J2DPane* field_0x24; /* 0x28 */ J2DPane* field_0x28; /* 0x2C */ J2DPane* field_0x2c; /* 0x30 */ J2DPane* field_0x30; - /* 0x34 */ J2DAnmBase* field_0x34; - /* 0x38 */ J2DAnmBase* field_0x38; + /* 0x34 */ J2DAnmTevRegKey* field_0x34; + /* 0x38 */ J2DAnmTevRegKey* field_0x38; /* 0x3C */ J2DScreen* field_0x3c; /* 0x40 */ J2DPane* field_0x40; /* 0x44 */ J2DPane* field_0x44; /* 0x48 */ J2DPane* field_0x48; /* 0x4C */ J2DPane* field_0x4c; - /* 0x50 */ J2DAnmBase* field_0x50; - /* 0x54 */ J2DAnmBase* field_0x54; - /* 0x58 */ J2DAnmBase* field_0x58; - /* 0x5C */ J2DAnmBase* field_0x5c; + /* 0x50 */ J2DAnmTevRegKey* field_0x50; + /* 0x54 */ J2DAnmTevRegKey* field_0x54; + /* 0x58 */ J2DAnmColor* field_0x58; + /* 0x5C */ J2DAnmTransform* field_0x5c; /* 0x60 */ bool mRedSight; /* 0x61 */ u8 mReserve; /* 0x62 */ u8 mAlpha[6]; @@ -62,7 +66,10 @@ class daAlink_c; class daBoomerang_c : public fopAc_ac_c { public: enum daBoomerang_FLG0 { + /* 0x001 */ FLG0_1 = 0x001, /* 0x004 */ FLG0_UNK = 0x004, + /* 0x010 */ FLG0_10 = 0x010, + /* 0x200 */ FLG0_0x200 = 0x200, /* 0x800 */ FLG0_LOCK_DIST_CANCEL = 0x800, /* 0x080 */ WIND_CATCH = 0x80, }; @@ -74,7 +81,7 @@ public: /* 8049F710 */ void pushLockList(int); /* 8049F818 */ void cancelLockActorBase(fopAc_ac_c*); /* 8049F874 */ void setAimActorBase(fopAc_ac_c*); - /* 8049F8B0 */ void setLockActor(fopAc_ac_c*, int); + /* 8049F8B0 */ int setLockActor(fopAc_ac_c*, int); /* 8049F9A4 */ void resetLockActor(); /* 8049F9F0 */ void setRoomInfo(); /* 8049FAA4 */ void setKeepMatrix(); @@ -82,7 +89,7 @@ public: /* 8049FCD0 */ void setRotAngle(); /* 8049FD6C */ void setAimPos(); /* 8049FE6C */ void checkBgHit(cXyz*, cXyz*); - /* 804A006C */ void setEffectTraceMatrix(u32*, u16); + /* 804A006C */ JPABaseEmitter* setEffectTraceMatrix(u32*, u16); /* 804A012C */ void setEffect(); /* 804A0874 */ void procWait(); /* 804A0F0C */ void procMove(); @@ -92,6 +99,7 @@ public: /* 804A2084 */ int create(); /* 804A230C */ daBoomerang_c(); + u32 checkStateFlg0(daBoomerang_FLG0 i_flag) { return mStateFlg0 & i_flag; } void onStateFlg0(daBoomerang_FLG0 flag) { mStateFlg0 |= flag; } void onWindCatch() { onStateFlg0(WIND_CATCH); } bool checkForceDelete() const { return mForceDelete; } @@ -108,16 +116,16 @@ private: /* 0x568 */ J3DModel* field_0x568; /* 0x56C */ J3DModel* field_0x56c; /* 0x570 */ J3DAnmTextureSRTKey* m_windBtk; - /* 0x574 */ mDoExt_bckAnm field_0x574; + /* 0x574 */ mDoExt_bckAnm mBck; /* 0x590 */ J3DModel* field_0x590; /* 0x594 */ J3DAnmTextureSRTKey* m_waitEffBtk; /* 0x598 */ daBoomerang_sight_c mSight; - /* 0x6A8 */ u32 field_0x6a8; - /* 0x6AC */ u32 field_0x6ac[5]; + /* 0x6A8 */ s32 field_0x6a8; + /* 0x6AC */ s32 field_0x6ac[5]; /* 0x6C0 */ fopAc_ac_c* mLockActors[5]; // Actors corresponding to the five target points - /* 0x6D4 */ fopAc_ac_c* field_0x6d4; - /* 0x6D8 */ u8 field_0x6d8[4]; - /* 0x6DC */ cXyz field_0x6dc[5]; + /* 0x6D4 */ u32 field_0x6d4; + /* 0x6D8 */ fopAc_ac_c* field_0x6d8; + /* 0x6DC */ cXyz mLockActorsPositions[5]; /* 0x718 */ u8 field_0x718[5]; /* 0x720 */ Z2SoundObjSimple field_0x720; /* 0x740 */ dBgS_Acch field_0x740; @@ -137,7 +145,16 @@ private: /* 0x960 */ s16 field_0x960; /* 0x962 */ s16 field_0x962; /* 0x964 */ u32 mStateFlg0; - /* 0x968 */ u8 field_0x968[0x990 - 0x968]; + /* 0x968 */ u32 field_0x968; + /* 0x96C */ u32 field_0x96c; + /* 0x970 */ u32 field_0x970; + /* 0x974 */ u32 field_0x974; + /* 0x978 */ u32 field_0x978; + /* 0x97C */ u32 field_0x97c; + /* 0x980 */ f32 field_0x980; + /* 0x984 */ f32 field_0x984; + /* 0x988 */ f32 field_0x988; + /* 0x98C */ f32 field_0x98c; /* 0x990 */ cXyz field_0x990; /* 0x99C */ cXyz field_0x99c; /* 0x9A8 */ f32 field_0x9a8; 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 d3a11d5dee7..e752340af2e 100644 --- a/rel/d/a/d_a_boomerang/d_a_boomerang.cpp +++ b/rel/d/a/d_a_boomerang/d_a_boomerang.cpp @@ -4,12 +4,20 @@ // #include "rel/d/a/d_a_boomerang/d_a_boomerang.h" -#include "rel/d/a/d_a_mirror/d_a_mirror.h" +#include "JSystem/J2DGraph/J2DAnimation.h" +#include "JSystem/J2DGraph/J2DAnmLoader.h" +#include "JSystem/JKernel/JKRArchive.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/JParticle/JPAParticle.h" +#include "SSystem/SComponent/c_math.h" +#include "d/a/d_a_alink.h" #include "d/com/d_com_inf_game.h" #include "d/d_procname.h" +#include "d/pane/d_pane_class.h" #include "dol2asm.h" #include "f_op/f_op_actor_mng.h" #include "m_Do/m_Do_lib.h" +#include "rel/d/a/d_a_mirror/d_a_mirror.h" // // Types: @@ -249,33 +257,75 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // Declarations: // -/* ############################################################################################## */ -/* 804A2990-804A2990 000140 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_804A2990 = "zelda_v_cursor_new_yellow.blo"; -SECTION_DEAD static char const* const stringBase_804A29AE = "zelda_v_cursor_new_yellow.bpk"; -SECTION_DEAD static char const* const stringBase_804A29CC = "zelda_v_cursor_new_yellow.bck"; -SECTION_DEAD static char const* const stringBase_804A29EA = "zelda_v_cursor_new_yellow_02.brk"; -SECTION_DEAD static char const* const stringBase_804A2A0B = "zelda_v_cursor_new_yellow.brk"; -SECTION_DEAD static char const* const stringBase_804A2A29 = "zelda_v_cursor_new_red.blo"; -SECTION_DEAD static char const* const stringBase_804A2A44 = "zelda_v_cursor_new_red_02.brk"; -SECTION_DEAD static char const* const stringBase_804A2A62 = "zelda_v_cursor_new_red.brk"; -SECTION_DEAD static char const* const stringBase_804A2A7D = "zelda_v_cursor_new_orange.blo"; -SECTION_DEAD static char const* const stringBase_804A2A9B = "zelda_v_cursor_new_orange_02.brk"; -SECTION_DEAD static char const* const stringBase_804A2ABC = "zelda_v_cursor_new_orange.brk"; -#pragma pop - /* 8049E0B8-8049E36C 000078 02B4+00 1/1 0/0 0/0 .text createHeap__19daBoomerang_sight_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBoomerang_sight_c::createHeap() { - nofralloc -#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/createHeap__19daBoomerang_sight_cFv.s" +int daBoomerang_sight_c::createHeap() { + void* resource; + char* arcName = daAlink_c::getAlinkArcName(); + JKRArchive* loader = dComIfG_getObjectResInfo(arcName)->getArchive(); + + field_0x4 = new J2DScreen(); + if (field_0x4 == NULL) { + return 0; + } + field_0x4->setPriority("zelda_v_cursor_new_yellow.blo", 0x100000, loader); + dPaneClass_showNullPane(field_0x4); + resource = JKRFileLoader::getGlbResource("zelda_v_cursor_new_yellow.bpk", loader); + field_0x58 = (J2DAnmColor*)J2DAnmLoaderDataBase::load(resource); + if (field_0x58 == NULL) { + return 0; + } + resource = JKRFileLoader::getGlbResource("zelda_v_cursor_new_yellow.bck", loader); + field_0x5c = (J2DAnmTransform*)J2DAnmLoaderDataBase::load(resource); + if (field_0x5c == NULL) { + return 0; + } + resource = JKRFileLoader::getGlbResource("zelda_v_cursor_new_yellow_02.brk", loader); + field_0x18 = (J2DAnmTevRegKey*)J2DAnmLoaderDataBase::load(resource); + if (field_0x18 == NULL) { + return 0; + } + resource = JKRFileLoader::getGlbResource("zelda_v_cursor_new_yellow.brk", loader); + field_0x1c = (J2DAnmTevRegKey*)J2DAnmLoaderDataBase::load(resource); + if (field_0x1c == NULL) { + return 0; + } + + field_0x20 = new J2DScreen(); + if (field_0x20 == NULL) { + return 0; + } + field_0x20->setPriority("zelda_v_cursor_new_red.blo", 0x100000, loader); + dPaneClass_showNullPane(field_0x20); + resource = JKRFileLoader::getGlbResource("zelda_v_cursor_new_red_02.brk", loader); + field_0x34 = (J2DAnmTevRegKey*)J2DAnmLoaderDataBase::load(resource); + if (field_0x34 == NULL) { + return 0; + } + resource = JKRFileLoader::getGlbResource("zelda_v_cursor_new_red.brk", loader); + field_0x38 = (J2DAnmTevRegKey*)J2DAnmLoaderDataBase::load(resource); + if (field_0x38 == NULL) { + return 0; + } + + field_0x3c = new J2DScreen(); + if (field_0x3c == NULL) { + return 0; + } + field_0x3c->setPriority("zelda_v_cursor_new_orange.blo", 0x100000, loader); + dPaneClass_showNullPane(field_0x3c); + resource = JKRFileLoader::getGlbResource("zelda_v_cursor_new_orange_02.brk", loader); + field_0x50 = (J2DAnmTevRegKey*)J2DAnmLoaderDataBase::load(resource); + if (field_0x50 == NULL) { + return 0; + } + resource = JKRFileLoader::getGlbResource("zelda_v_cursor_new_orange.brk", loader); + field_0x54 = (J2DAnmTevRegKey*)J2DAnmLoaderDataBase::load(resource); + if (field_0x54 == NULL) { + return 0; + } + return 1; } -#pragma pop /* ############################################################################################## */ /* 804A2850-804A285C 000000 000C+00 7/7 0/0 0/0 .rodata @4078 */ @@ -365,14 +415,9 @@ COMPILER_STRIP_GATE(0x804A288C, &daBoomerang_HIO_c0::m_lockWindScale); #pragma pop /* 804A2890-804A28A4 000040 0014+00 0/1 0/0 0/0 .rodata l_lockSeFlg */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const l_lockSeFlg[20] = { - 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, - 0x00, 0x6A, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x6C, +static const u32 l_lockSeFlg[5] = { + 104, 105, 106, 107, 108, }; -COMPILER_STRIP_GATE(0x804A2890, &l_lockSeFlg); -#pragma pop /* 804A28A4-804A28A8 000054 0004+00 2/6 0/0 0/0 .rodata @4432 */ SECTION_RODATA static u8 const lit_4432[4] = { @@ -385,6 +430,100 @@ COMPILER_STRIP_GATE(0x804A28A4, &lit_4432); /* 8049E36C-8049EB64 00032C 07F8+00 1/1 0/0 0/0 .text initialize__19daBoomerang_sight_cFv */ +#ifdef NONMATCHING +// Matches with literals +void daBoomerang_sight_c::initialize() { + field_0x8 = field_0x4->search('n_all'); + field_0xc = field_0x4->search('cursor0'); + field_0x10 = field_0x4->search('cursor1'); + field_0x14 = field_0x4->search('cursor2'); + + field_0x5c->searchUpdateMaterialID(field_0x4); + field_0x8->setAnimation(field_0x5c); + field_0xc->setAnimation(field_0x5c); + field_0x10->setAnimation(field_0x5c); + field_0x14->setAnimation(field_0x5c); + field_0x5c->setFrame(0.0f); + + field_0x58->searchUpdateMaterialID(field_0x4); + field_0xc->setAnimation(field_0x58); + field_0x10->setAnimation(field_0x58); + field_0x14->setAnimation(field_0x58); + field_0x4->search('flash')->setAnimation(field_0x58); + field_0x58->setFrame(0.0f); + + field_0x18->searchUpdateMaterialID(field_0x4); + field_0x1c->searchUpdateMaterialID(field_0x4); + field_0xc->setAnimation(field_0x18); + field_0x10->setAnimation(field_0x18); + field_0x14->setAnimation(field_0x18); + field_0xc->setAnimation(field_0x1c); + field_0x10->setAnimation(field_0x1c); + field_0x14->setAnimation(field_0x1c); + field_0x18->setFrame(0.0f); + field_0x1c->setFrame(0.0f); + + field_0x4->animation(); + field_0x4->setUserInfo('n_43'); + field_0x8->setUserInfo(' '); + field_0x24 = field_0x20->search('n_all'); + field_0x28 = field_0x20->search('cursor0'); + field_0x2c = field_0x20->search('cursor1'); + field_0x30 = field_0x20->search('cursor2'); + + field_0x24->setAnimation(field_0x5c); + field_0x28->setAnimation(field_0x5c); + field_0x2c->setAnimation(field_0x5c); + field_0x30->setAnimation(field_0x5c); + field_0x28->setAnimation(field_0x58); + field_0x2c->setAnimation(field_0x58); + field_0x30->setAnimation(field_0x58); + field_0x20->search('flash')->setAnimation(field_0x58); + + field_0x34->searchUpdateMaterialID(field_0x20); + field_0x38->searchUpdateMaterialID(field_0x20); + field_0x28->setAnimation(field_0x34); + field_0x2c->setAnimation(field_0x34); + field_0x30->setAnimation(field_0x34); + field_0x28->setAnimation(field_0x38); + field_0x2c->setAnimation(field_0x38); + field_0x30->setAnimation(field_0x38); + field_0x34->setFrame(0.0f); + field_0x38->setFrame(0.0f); + + field_0x20->animation(); + field_0x20->setUserInfo('n_43'); + field_0x24->setUserInfo(' '); + field_0x40 = field_0x3c->search('n_all'); + field_0x44 = field_0x3c->search('cursor0'); + field_0x48 = field_0x3c->search('cursor1'); + field_0x4c = field_0x3c->search('cursor2'); + + field_0x40->setAnimation(field_0x5c); + field_0x44->setAnimation(field_0x5c); + field_0x48->setAnimation(field_0x5c); + field_0x4c->setAnimation(field_0x5c); + field_0x44->setAnimation(field_0x58); + field_0x48->setAnimation(field_0x58); + field_0x4c->setAnimation(field_0x58); + field_0x3c->search('flash')->setAnimation(field_0x58); + + field_0x50->searchUpdateMaterialID(field_0x3c); + field_0x54->searchUpdateMaterialID(field_0x3c); + field_0x44->setAnimation(field_0x50); + field_0x48->setAnimation(field_0x50); + field_0x4c->setAnimation(field_0x50); + field_0x44->setAnimation(field_0x54); + field_0x48->setAnimation(field_0x54); + field_0x4c->setAnimation(field_0x54); + field_0x50->setFrame(0.0f); + field_0x54->setFrame(0.0f); + + field_0x3c->animation(); + field_0x3c->setUserInfo('n_43'); + field_0x40->setUserInfo(' '); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -393,6 +532,7 @@ asm void daBoomerang_sight_c::initialize() { #include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/initialize__19daBoomerang_sight_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804A28A8-804A28AC 000058 0004+00 0/1 0/0 0/0 .rodata @4481 */ @@ -442,14 +582,58 @@ COMPILER_STRIP_GATE(0x804A28C0, &lit_4487); /* 8049EB64-8049EDA8 000B24 0244+00 1/1 0/0 0/0 .text playAnime__19daBoomerang_sight_cFii */ +#ifdef NONMATCHING +// Matches with literals +int daBoomerang_sight_c::playAnime(int param_0, int param_1) { + int i; + f32* pfVar3 = field_0x98; + f32* pfVar6 = field_0xb0; + u8* alphaPtr = mAlpha; + + for (i = 0; i < 5; i++, pfVar3++, pfVar6++, alphaPtr++) { + *pfVar3 += 1.1f; + if (*pfVar3 >= 50.0f) { + *pfVar3 += 29.0f; + } + *pfVar6 += 1.1f; + if (*pfVar6 >= (f32)field_0x18->getFrameMax()) { + *pfVar6 -= (f32)field_0x18->getFrameMax(); + } + if (param_0 <= i && param_1 > i) { + cLib_chaseUC(alphaPtr, 0xff, 0x1e); + } else { + cLib_chaseUC(alphaPtr, 0, 0x1e); + if (*alphaPtr == 0 && i == 0) { + mRedSight = false; + } + } + } + if (*pfVar3 < 21.0f) { + *pfVar3 = 21.0f; + } + *pfVar3 += 0.9f; + if (*pfVar3 >= 50.0f) { + *pfVar3 += 29.0f; + } + *pfVar6 += 0.9f; + if (*pfVar6 >= field_0x18->getFrameMax()) { + *pfVar6 -= (f32)field_0x18->getFrameMax(); + } + if (mReserve != 0) { + return cLib_chaseUC(alphaPtr, 0x80, 0x1e); + } + return cLib_chaseUC(alphaPtr, 0, 0x1e); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daBoomerang_sight_c::playAnime(int param_0, int param_1) { +asm int daBoomerang_sight_c::playAnime(int param_0, int param_1) { nofralloc #include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/playAnime__19daBoomerang_sight_cFii.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804A28C8-804A28CC 000078 0004+00 1/2 0/0 0/0 .rodata @4495 */ @@ -458,6 +642,17 @@ COMPILER_STRIP_GATE(0x804A28C8, &lit_4495); /* 8049EDA8-8049EDE8 000D68 0040+00 2/2 0/0 0/0 .text initFrame__19daBoomerang_sight_cFi */ +#ifdef NONMATCHING +// Matches with literals +void daBoomerang_sight_c::initFrame(int i_idx) { + mAlpha[i_idx] = 0; + field_0x98[i_idx] = 4.0f; + field_0xb0[i_idx] = 0.0f; + if (i_idx == 0) { + mRedSight = true; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -466,6 +661,7 @@ asm void daBoomerang_sight_c::initFrame(int param_0) { #include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/initFrame__19daBoomerang_sight_cFi.s" } #pragma pop +#endif /* 8049EDE8-8049EE8C 000DA8 00A4+00 1/1 0/0 0/0 .text copyNumData__19daBoomerang_sight_cFi */ void daBoomerang_sight_c::copyNumData(int i_idx) { @@ -587,6 +783,70 @@ COMPILER_STRIP_GATE(0x804A28F8, &lit_4654); #pragma pop /* 8049EF60-8049F280 000F20 0320+00 1/0 0/0 0/0 .text draw__19daBoomerang_sight_cFv */ +#ifdef NONMATCHING +// Matches with literals +void daBoomerang_sight_c::draw() { + J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort(); + u8* puVar = mAlpha; + J2DPane* pJVar5; + J2DPane* pJVar9; + J2DPane* pJVar8; + J2DScreen* screen; + J2DPane* pJVar4; + f32 f30; + f32 f31; + + for (int i = 0; i < 6; i++, puVar++) { + if (*puVar != 0) { + field_0x5c->setFrame(field_0x98[i]); + field_0x58->setFrame(field_0x98[i] > 21.0f ? 21.0f : field_0x98[i]); + if (i == 5) { + field_0x18->setFrame(field_0xb0[i]); + pJVar5 = field_0xc; + pJVar9 = field_0x10; + pJVar8 = field_0x14; + screen = field_0x4; + pJVar4 = field_0x8; + f31 = 80.0f; + } else if (i == 0 && mRedSight != false) { + field_0x34->setFrame(field_0xb0[i]); + pJVar5 = field_0x28; + pJVar9 = field_0x2c; + pJVar8 = field_0x30; + screen = field_0x20; + pJVar4 = field_0x24; + f31 = 35.0f; + } else { + field_0x50->setFrame(field_0xb0[i]); + pJVar5 = field_0x44; + pJVar9 = field_0x48; + pJVar8 = field_0x4c; + screen = field_0x3c; + pJVar4 = field_0x40; + f31 = 35.0f; + } + screen->animation(); + pJVar4->scale(0.6f, 0.6f); + pJVar4->translate(field_0x68[i], field_0x80[i]); + field_0x98[i] = field_0x98[i]; + if (!(field_0x98[i] < 15.0f)) { + if (field_0x98[i] < 21.0f) { + f30 = f31 * (field_0x98[i] - 15.0f) * 0.1666667f; + } else if (i == 5) { + f30 = f31 * (*puVar * 0.00390625f + 0.5f); + } else { + f30 = f31 * (*puVar * 0.001960784f + 0.5f); + } + + pJVar5->translate(0.0f, -f30); + pJVar9->translate(f30 * cM_fcos(2.617994f), f30 * cM_fsin(2.617994f)); + pJVar8->translate(f30 * cM_fcos(0.5235988f), f30 * cM_fsin(0.5235988f)); + } + screen->draw(0.0f, 0.0f, ctx); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -595,6 +855,7 @@ asm void daBoomerang_sight_c::draw() { #include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/draw__19daBoomerang_sight_cFv.s" } #pragma pop +#endif /* 8049F280-8049F360 001240 00E0+00 1/1 0/0 0/0 .text windModelCallBack__13daBoomerang_cFv */ void daBoomerang_c::windModelCallBack() { @@ -628,14 +889,56 @@ static int daBoomeang_windModelCallBack(J3DJoint* param_0, int param_1) { } /* 8049F39C-8049F5D4 00135C 0238+00 1/1 0/0 0/0 .text draw__13daBoomerang_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daBoomerang_c::draw() { - nofralloc -#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/draw__13daBoomerang_cFv.s" +int daBoomerang_c::draw() { + if (checkStateFlg0(FLG0_UNK) == 0) { + for (int i = 0; i < 5; i++) { + if (mSight.getAlpha(i) != 0) { + if (mLockActors[i] != NULL) { + mLockActors[i] = fopAcM_SearchByID(field_0x6ac[i]); + if (mLockActors[i] == NULL) { + pushLockList(i); + i--; + } else { + mSight.setSight(&mLockActors[i]->mEyePos, i); + } + + } else { + if (field_0x718[i] != 0) { + mSight.setSight(&mLockActorsPositions[i], i); + } else { + mSight.setSight(NULL, i); + } + } + } + } + if (mSight.getAlpha(5) != 0) { + if (field_0x6d8 != NULL) { + field_0x6d8 = fopAcM_SearchByID(field_0x6d4); + } + if (field_0x6d8 != 0) { + mSight.setSight(&field_0x6d8->mEyePos, 5); + } else { + mSight.setSight(NULL, 5); + } + } + if (i_dComIfGp_event_runCheck() == 0) { + dComIfGd_set2DXlu((dDlst_base_c*)&mSight); + } + } + g_env_light.settingTevStruct(0, ¤t.pos, &mTevStr); + g_env_light.setLightTevColorType_MAJI(field_0x568, &mTevStr); + mDoExt_modelUpdateDL(field_0x568); + daMirror_c::entry(field_0x568); + if (fopAcM_GetParam(this) != 0) { + g_env_light.setLightTevColorType_MAJI(field_0x56c, &mTevStr); + mDoExt_modelEntryDL(field_0x56c); + daMirror_c::entry(field_0x56c); + } else if (i_dComIfGp_checkPlayerStatus0(0, 0x80000) != 0) { + g_env_light.setLightTevColorType_MAJI(field_0x590, &mTevStr); + mDoExt_modelUpdateDL(field_0x590); + } + return 1; } -#pragma pop /* 8049F5D4-8049F5F4 001594 0020+00 1/0 0/0 0/0 .text daBoomerang_Draw__FP13daBoomerang_c */ @@ -689,14 +992,29 @@ static void daBoomerang_moveLineCallback(fopAc_ac_c* i_actorP1, dCcD_GObjInf* pa } /* 8049F710-8049F818 0016D0 0108+00 3/3 0/0 0/0 .text pushLockList__13daBoomerang_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBoomerang_c::pushLockList(int param_0) { - nofralloc -#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/pushLockList__13daBoomerang_cFi.s" +void daBoomerang_c::pushLockList(int param_0) { + if (param_0 == 0) { + mSight.offRedSight(); + } + if (fopAcM_GetParam(this) == 1 && param_0 < field_0x951) { + field_0x951--; + } + + int i; + for (i = param_0; i < mLockCnt - 1; i++) { + field_0x6ac[i] = field_0x6ac[i + 1]; + mLockActors[i] = mLockActors[i + 1]; + mLockActorsPositions[i] = mLockActorsPositions[i + 1]; + field_0x718[i] = field_0x718[i + 1]; + mSight.copyNumData(i); + } + field_0x6ac[i] = -1; + mLockActors[i] = NULL; + field_0x718[i] = 0; + if (mLockCnt != 0) { + mLockCnt--; + } } -#pragma pop /* 8049F818-8049F874 0017D8 005C+00 1/0 0/0 0/0 .text * cancelLockActorBase__13daBoomerang_cFP10fopAc_ac_c */ @@ -720,14 +1038,31 @@ void daBoomerang_c::setAimActorBase(fopAc_ac_c* i_actorP) { /* 8049F8B0-8049F9A4 001870 00F4+00 2/2 0/0 0/0 .text setLockActor__13daBoomerang_cFP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBoomerang_c::setLockActor(fopAc_ac_c* param_0, int param_1) { - nofralloc -#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/setLockActor__13daBoomerang_cFP10fopAc_ac_ci.s" +int daBoomerang_c::setLockActor(fopAc_ac_c* param_0, int param_1) { + if (mLockCnt >= 5) { + return 0; + } + u32 Id = fopAcM_GetID(param_0); + for (int i = 0; i < mLockCnt; i++) { + if (field_0x6ac[i] == Id) { + return 0; + } + } + if (param_1 != 0) { + f32 squareDistance = param_0->mEyePos.abs2(current.pos); + if (squareDistance > field_0x984) { + return 0; + } + field_0x984 = squareDistance; + field_0x6a8 = Id; + } else { + field_0x6ac[mLockCnt] = Id; + mLockActors[mLockCnt] = param_0; + mSight.initFrame(mLockCnt); + mLockCnt++; + } + return 1; } -#pragma pop /* 8049F9A4-8049F9F0 001964 004C+00 3/3 0/0 0/0 .text resetLockActor__13daBoomerang_cFv */ @@ -742,52 +1077,35 @@ void daBoomerang_c::resetLockActor() { field_0x951 = 0; } -/* ############################################################################################## */ -/* 804A2900-804A2904 0000B0 0004+00 1/1 0/0 0/0 .rodata @4886 */ -SECTION_RODATA static f32 const lit_4886 = -1000000000.0f; -COMPILER_STRIP_GATE(0x804A2900, &lit_4886); - /* 8049F9F0-8049FAA4 0019B0 00B4+00 2/2 0/0 0/0 .text setRoomInfo__13daBoomerang_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBoomerang_c::setRoomInfo() { - nofralloc -#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/setRoomInfo__13daBoomerang_cFv.s" +void daBoomerang_c::setRoomInfo() { + field_0xd6c.SetPos(¤t.pos); + field_0x980 = dComIfG_Bgsp().GroundCross(&field_0xd6c); + int roomNo; + if (field_0x980 != -1000000000.0f) { + roomNo = dComIfG_Bgsp().GetRoomId(field_0xd6c); + mTevStr.mEnvrIdxOverride = dComIfG_Bgsp().GetPolyColor(field_0xd6c); + } else { + roomNo = dComIfGp_roomControl_getStayNo(); + } + mTevStr.mRoomNo = roomNo; + field_0x953 = dComIfGp_getReverb(roomNo); + field_0x9d0.SetRoomId(roomNo); + fopAcM_SetRoomNo(this, roomNo); } -#pragma pop - -/* ############################################################################################## */ -/* 804A2904-804A2908 0000B4 0004+00 0/1 0/0 0/0 .rodata @4910 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4910 = 32.0f; -COMPILER_STRIP_GATE(0x804A2904, &lit_4910); -#pragma pop - -/* 804A2908-804A290C 0000B8 0004+00 0/1 0/0 0/0 .rodata @4911 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4911 = -5.0f; -COMPILER_STRIP_GATE(0x804A2908, &lit_4911); -#pragma pop - -/* 804A290C-804A2910 0000BC 0004+00 0/1 0/0 0/0 .rodata @4912 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4912 = -6.0f; -COMPILER_STRIP_GATE(0x804A290C, &lit_4912); -#pragma pop /* 8049FAA4-8049FBAC 001A64 0108+00 2/2 0/0 0/0 .text setKeepMatrix__13daBoomerang_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBoomerang_c::setKeepMatrix() { - nofralloc -#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/setKeepMatrix__13daBoomerang_cFv.s" +void daBoomerang_c::setKeepMatrix() { + daAlink_c* link = daAlink_getAlinkActorClass(); + PSMTXCopy(link->getLeftItemMatrix(), mDoMtx_stack_c::now); + mDoMtx_stack_c::transM(32.0f, -5.0f, -6.0f); + mDoMtx_stack_c::XYZrotM(0xfd28, 0x1bbb, 0xf99a); + PSMTXCopy(mDoMtx_stack_c::now, field_0x568->mBaseTransformMtx); + PSMTXCopy(link->getLeftItemMatrix(), field_0x56c->mBaseTransformMtx); + mDoMtx_stack_c::multVecZero(¤t.pos); + daAlink_c::simpleAnmPlay(m_waitEffBtk); + PSMTXCopy(link->getLeftItemMatrix(), field_0x590->mBaseTransformMtx); } -#pragma pop /* ############################################################################################## */ /* 804A2910-804A2914 0000C0 0004+00 5/8 0/0 0/0 .rodata @4945 */ @@ -795,6 +1113,27 @@ SECTION_RODATA static f32 const lit_4945 = 1.0f; COMPILER_STRIP_GATE(0x804A2910, &lit_4945); /* 8049FBAC-8049FCD0 001B6C 0124+00 1/1 0/0 0/0 .text setMoveMatrix__13daBoomerang_cFv */ +#ifdef NONMATCHING +// Matches with literals +void daBoomerang_c::setMoveMatrix() { + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + PSMTXCopy(mDoMtx_stack_c::now, field_0x56c->mBaseTransformMtx); + daAlink_c::simpleAnmPlay(m_windBtk); + field_0x98c += 1.0f; + s32 maxFrame = mBck.getBckAnm()->getFrameMax(); + if (field_0x98c >= maxFrame) { + field_0x98c -= maxFrame; + } + mBck.entry(field_0x56c->getModelData(), field_0x98c); + field_0x56c->calc(); + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + mDoMtx_stack_c::YrotM(field_0x95a); + mDoMtx_stack_c::XrotM(0x7fff); + PSMTXCopy(mDoMtx_stack_c::now, field_0x568->mBaseTransformMtx); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -803,6 +1142,7 @@ asm void daBoomerang_c::setMoveMatrix() { #include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/setMoveMatrix__13daBoomerang_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804A2914-804A2918 0000C4 0004+00 1/2 0/0 0/0 .rodata @4961 */ @@ -810,6 +1150,16 @@ SECTION_RODATA static f32 const lit_4961 = -1.0f; COMPILER_STRIP_GATE(0x804A2914, &lit_4961); /* 8049FCD0-8049FD6C 001C90 009C+00 1/1 0/0 0/0 .text setRotAngle__13daBoomerang_cFv */ +#ifdef NONMATCHING +// Matches with literals +void daBoomerang_c::setRotAngle() { + s16 sVar = field_0x95a; + field_0x95a -= 0x1f00; + if (sVar >= 0 && field_0x95a < 0) { + fopAcM_seStart(this, JA_SE_LK_BOOM_FLY, 0); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -818,46 +1168,101 @@ asm void daBoomerang_c::setRotAngle() { #include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/setRotAngle__13daBoomerang_cFv.s" } #pragma pop +#endif /* 8049FD6C-8049FE6C 001D2C 0100+00 2/2 0/0 0/0 .text setAimPos__13daBoomerang_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBoomerang_c::setAimPos() { - nofralloc -#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/setAimPos__13daBoomerang_cFv.s" +void daBoomerang_c::setAimPos() { + if (checkStateFlg0(FLG0_1) != 0) { + if (fopAcM_GetParam(this) != 1) + return; + field_0x990 = daAlink_getAlinkActorClass()->getBoomerangCatchPos(); + return; + } + if (field_0x957 != 0) { + field_0x990 = field_0x9ac; + return; + } + for (int i = field_0x951; i < mLockCnt; i++, field_0x951++) { + if (mLockActors[i] != NULL) { + field_0x990 = mLockActors[i]->mEyePos; + return; + } + if (field_0x718[i] != 0) { + field_0x990 = mLockActorsPositions[i]; + return; + } + } } -#pragma pop - -/* ############################################################################################## */ -/* 804A2918-804A291C 0000C8 0004+00 1/1 0/0 0/0 .rodata @5044 */ -SECTION_RODATA static f32 const lit_5044 = 2500.0f; -COMPILER_STRIP_GATE(0x804A2918, &lit_5044); - -/* 804A291C-804A2920 0000CC 0004+00 1/2 0/0 0/0 .rodata @5045 */ -SECTION_RODATA static f32 const lit_5045 = 30.0f; -COMPILER_STRIP_GATE(0x804A291C, &lit_5045); /* 8049FE6C-804A006C 001E2C 0200+00 2/2 0/0 0/0 .text checkBgHit__13daBoomerang_cFP4cXyzP4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBoomerang_c::checkBgHit(cXyz* param_0, cXyz* param_1) { - nofralloc -#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/checkBgHit__13daBoomerang_cFP4cXyzP4cXyz.s" +void daBoomerang_c::checkBgHit(cXyz* i_start, cXyz* i_end) { + field_0xcfc.Set(i_start, i_end, this); + if (dComIfG_Bgsp().LineCross(&field_0xcfc) != 0) { + current.pos = field_0xcfc.i_GetCross(); + onStateFlg0(FLG0_1); + field_0x957 = 0; + current.angle.y -= -0x8000; + shape_angle.y = current.angle.y; + resetLockActor(); + return; + } + if (field_0x962 != 0) { + return; + } + field_0xc8c.Set(i_start, i_end, this); + if (dComIfG_Bgsp().LineCross(&field_0xc8c) == 0) + return; + if (checkStateFlg0(FLG0_0x200) != 0) { + return; + } + if (field_0x718[field_0x951] != 0) { + if (mLockActorsPositions[field_0x951].abs2(field_0xc8c.i_GetCross()) < 2500.0f) { + if (field_0x951 < mLockCnt - 1) { + field_0x718[field_0x951] = 0; + field_0x951++; + return; + } + } + } + if (field_0x957 == 0) { + if (checkStateFlg0(FLG0_10) == 0 && mLockCnt > field_0x951) { + return; + } + current.pos = field_0xc8c.i_GetCross(); + onStateFlg0(FLG0_1); + field_0x957 = 0; + current.angle.y -= -0x8000; + if (dBgS_CheckBRoofPoly(field_0xc8c) != 0) { + current.angle.x *= -1; + current.pos.y -= 30.0f; + } + shape_angle.y = current.angle.y; + resetLockActor(); + } } -#pragma pop /* 804A006C-804A012C 00202C 00C0+00 1/1 0/0 0/0 .text setEffectTraceMatrix__13daBoomerang_cFPUlUs */ +#ifdef NONMATCHING +// Matches with literals +JPABaseEmitter* daBoomerang_c::setEffectTraceMatrix(u32* param_0, u16 param_1) { + *param_0 = dComIfGp_particle_set(*param_0, param_1, ¤t.pos, &mTevStr); + JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(*param_0); + if (emitter != NULL) { + emitter->setGlobalRTMatrix(field_0x568->getBaseTRMtx()); + } + return emitter; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daBoomerang_c::setEffectTraceMatrix(u32* param_0, u16 param_1) { +asm JPABaseEmitter* daBoomerang_c::setEffectTraceMatrix(u32* param_0, u16 param_1) { nofralloc #include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/setEffectTraceMatrix__13daBoomerang_cFPUlUs.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804A2920-804A2924 0000D0 0004+00 0/1 0/0 0/0 .rodata @5385 */ @@ -937,7 +1342,7 @@ COMPILER_STRIP_GATE(0x804A2950, &lit_5394); #pragma pop /* 804A2ADC-804A2AE8 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, }; @@ -971,24 +1376,38 @@ SECTION_DATA static void* lit_5579[3] = { /* 804A2B14-804A2B60 000038 004C+00 0/1 0/0 0/0 .data l_atCpsSrc */ #pragma push #pragma force_active on -SECTION_DATA static u8 l_atCpsSrc[76] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x04, 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, 0x41, 0x70, 0x00, 0x00, +static dCcD_SrcCps l_atCpsSrc = { + { + {0, {{AT_TYPE_BOOMERANG, 0, 0x3B}, {0, 0}, 0}}, + {dCcD_SE_WOOD, 4, 0, 0, {0}}, + {dCcD_SE_NONE, 0, 0, 0, {0}}, + {0}, + }, + { + { + {0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f}, + 15.0f, + }, + } }; #pragma pop /* 804A2B60-804A2BA4 000084 0044+00 0/1 0/0 0/0 .data l_windAtCylSrc */ #pragma push #pragma force_active on -SECTION_DATA static u8 l_windAtCylSrc[68] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0D, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, 0x44, 0x16, 0x00, 0x00, +static dCcD_SrcCyl l_windAtCylSrc = { + { + {0, {{AT_TYPE_BOOMERANG, 0, 0x1B}, {0, 0}, 0}}, + {dCcD_SE_13, 0, 0, 3, {2}}, + {dCcD_SE_NONE, 0, 0, 0, {0}}, + {0}, + }, + { + {0.0f, 0.0f, 0.0f}, + 150.0f, + 600.0f, + } }; #pragma pop @@ -1416,6 +1835,38 @@ static int daBoomerang_Delete(daBoomerang_c* i_this) { } /* 804A1EE4-804A2064 003EA4 0180+00 1/1 0/0 0/0 .text createHeap__13daBoomerang_cFv */ +#ifdef NONMATCHING +// Matches with literals +int daBoomerang_c::createHeap() { + if (mSight.createHeap() == 0) { + return 0; + } + mSight.initialize(); + J3DModelData* modelData = + (J3DModelData*)dComIfG_getObjectRes(daAlink_c::getAlinkArcName(), 0x1f); + field_0x568 = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + if (field_0x568 == NULL) { + return 0; + } + modelData = (J3DModelData*)dComIfG_getObjectRes(daAlink_c::getAlinkArcName(), 0x34); + field_0x56c = mDoExt_J3DModel__create(modelData, 0, 0x11000284); + if (field_0x56c == NULL) { + return 0; + } + J3DAnmTransform* transform = + (J3DAnmTransform*)dComIfG_getObjectRes(daAlink_c::getAlinkArcName(), 0x13); + if (mBck.init(transform, 0, 2, 1.0f, 0, -1, false) == 0) { + return 0; + } + modelData = (J3DModelData*)dComIfG_getObjectRes(daAlink_c::getAlinkArcName(), 0x19); + field_0x590 = mDoExt_J3DModel__create(modelData, 0, 0x11000284); + if (field_0x590 == NULL) { + return 0; + } + field_0x720.init(¤t.pos, 2); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1424,11 +1875,11 @@ asm int daBoomerang_c::createHeap() { #include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/createHeap__13daBoomerang_cFv.s" } #pragma pop +#endif /* 804A2064-804A2084 004024 0020+00 1/1 0/0 0/0 .text daBoomerang_createHeap__FP10fopAc_ac_c */ static int daBoomerang_createHeap(fopAc_ac_c* i_this) { - daBoomerang_c* boomerang = (daBoomerang_c*)i_this; - return boomerang->createHeap(); + return static_cast(i_this)->createHeap(); } /* ############################################################################################## */ @@ -1513,14 +1964,9 @@ extern "C" asm void __dt__12dBgS_ObjAcchFv() { /* 804A26F8-804A2718 0046B8 0020+00 1/0 0/0 0/0 .text daBoomerang_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int daBoomerang_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/d_a_boomerang/d_a_boomerang/daBoomerang_Create__FP10fopAc_ac_c.s" +static int daBoomerang_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 804A2718-804A271C 0046D8 0004+00 1/0 0/0 0/0 .text draw__12dDlst_base_cFv */ void draw__12dDlst_base_cFv() {