diff --git a/Progress.md b/Progress.md index 86011453598..6cf560a7b0b 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 54.157315% | 2177488 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 54.157315% | 2177488 | 4020672 -RELs | 37.556090% | 4319072 | 11500324 -Total | 41.856592% | 6496560 | 15520996 +RELs | 37.574802% | 4321224 | 11500324 +Total | 41.870457% | 6498712 | 15520996 ## RELs @@ -321,7 +321,7 @@ d_a_npc_tkj | 37.419769% | 6996 | 18696 d_a_npc_tkj2 | 28.985507% | 5520 | 19044 d_a_npc_tks | 27.123246% | 14384 | 53032 d_a_npc_toby | 35.857461% | 14168 | 39512 -d_a_npc_tr | 57.199682% | 2876 | 5028 +d_a_npc_tr | 100.000000% | 5028 | 5028 d_a_npc_uri | 34.281392% | 13596 | 39660 d_a_npc_worm | 33.717579% | 2340 | 6940 d_a_npc_wrestler | 27.819607% | 28820 | 103596 @@ -785,4 +785,4 @@ d_a_vrbox2 | 44.907111% | 2804 | 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 | 37.556090% | 4319072 | 11500324 +Total | 37.574802% | 4321224 | 11500324 diff --git a/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/__ct__14daNPC_TR_HIO_cFv.s b/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/__ct__14daNPC_TR_HIO_cFv.s deleted file mode 100644 index ef01feaf0ee..00000000000 --- a/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/__ct__14daNPC_TR_HIO_cFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_80B25A0C: -/* 80B25A0C 3C 80 80 B2 */ lis r4, lit_3768@ha /* 0x80B2657C@ha */ -/* 80B25A10 38 A4 65 7C */ addi r5, r4, lit_3768@l /* 0x80B2657C@l */ -/* 80B25A14 3C 80 80 B2 */ lis r4, __vt__14daNPC_TR_HIO_c@ha /* 0x80B26660@ha */ -/* 80B25A18 38 04 66 60 */ addi r0, r4, __vt__14daNPC_TR_HIO_c@l /* 0x80B26660@l */ -/* 80B25A1C 90 03 00 00 */ stw r0, 0(r3) -/* 80B25A20 38 00 FF FF */ li r0, -1 -/* 80B25A24 98 03 00 04 */ stb r0, 4(r3) -/* 80B25A28 C0 05 00 00 */ lfs f0, 0(r5) -/* 80B25A2C D0 03 00 08 */ stfs f0, 8(r3) -/* 80B25A30 C0 05 00 04 */ lfs f0, 4(r5) -/* 80B25A34 D0 03 00 0C */ stfs f0, 0xc(r3) -/* 80B25A38 C0 05 00 08 */ lfs f0, 8(r5) -/* 80B25A3C D0 03 00 10 */ stfs f0, 0x10(r3) -/* 80B25A40 C0 05 00 0C */ lfs f0, 0xc(r5) -/* 80B25A44 D0 03 00 14 */ stfs f0, 0x14(r3) -/* 80B25A48 C0 05 00 10 */ lfs f0, 0x10(r5) -/* 80B25A4C D0 03 00 18 */ stfs f0, 0x18(r3) -/* 80B25A50 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/action__FP12npc_tr_class.s b/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/action__FP12npc_tr_class.s deleted file mode 100644 index 6594a865920..00000000000 --- a/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/action__FP12npc_tr_class.s +++ /dev/null @@ -1,130 +0,0 @@ -lbl_80B25FE0: -/* 80B25FE0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80B25FE4 7C 08 02 A6 */ mflr r0 -/* 80B25FE8 90 01 00 34 */ stw r0, 0x34(r1) -/* 80B25FEC 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80B25FF0 93 C1 00 28 */ stw r30, 0x28(r1) -/* 80B25FF4 7C 7E 1B 78 */ mr r30, r3 -/* 80B25FF8 3C 80 80 B2 */ lis r4, lit_3768@ha /* 0x80B2657C@ha */ -/* 80B25FFC 3B E4 65 7C */ addi r31, r4, lit_3768@l /* 0x80B2657C@l */ -/* 80B26000 A8 03 05 BE */ lha r0, 0x5be(r3) -/* 80B26004 2C 00 00 00 */ cmpwi r0, 0 -/* 80B26008 41 82 00 08 */ beq lbl_80B26010 -/* 80B2600C 48 00 00 08 */ b lbl_80B26014 -lbl_80B26010: -/* 80B26010 4B FF FB CD */ bl npc_tr_move__FP12npc_tr_class -lbl_80B26014: -/* 80B26014 38 7E 04 E6 */ addi r3, r30, 0x4e6 -/* 80B26018 A8 9E 04 DE */ lha r4, 0x4de(r30) -/* 80B2601C 38 A0 00 04 */ li r5, 4 -/* 80B26020 38 C0 20 00 */ li r6, 0x2000 -/* 80B26024 4B 74 A5 E5 */ bl cLib_addCalcAngleS2__FPssss -/* 80B26028 38 7E 04 E4 */ addi r3, r30, 0x4e4 -/* 80B2602C A8 9E 04 DC */ lha r4, 0x4dc(r30) -/* 80B26030 38 A0 00 04 */ li r5, 4 -/* 80B26034 38 C0 20 00 */ li r6, 0x2000 -/* 80B26038 4B 74 A5 D1 */ bl cLib_addCalcAngleS2__FPssss -/* 80B2603C 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */ -/* 80B26040 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */ -/* 80B26044 80 63 00 00 */ lwz r3, 0(r3) -/* 80B26048 A8 9E 04 DE */ lha r4, 0x4de(r30) -/* 80B2604C 4B 4E 63 91 */ bl mDoMtx_YrotS__FPA4_fs -/* 80B26050 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */ -/* 80B26054 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */ -/* 80B26058 80 63 00 00 */ lwz r3, 0(r3) -/* 80B2605C A8 9E 04 DC */ lha r4, 0x4dc(r30) -/* 80B26060 4B 4E 63 3D */ bl mDoMtx_XrotM__FPA4_fs -/* 80B26064 C0 1F 00 18 */ lfs f0, 0x18(r31) -/* 80B26068 D0 01 00 14 */ stfs f0, 0x14(r1) -/* 80B2606C D0 01 00 18 */ stfs f0, 0x18(r1) -/* 80B26070 C0 3E 05 2C */ lfs f1, 0x52c(r30) -/* 80B26074 3C 60 80 B2 */ lis r3, l_HIO@ha /* 0x80B26688@ha */ -/* 80B26078 38 63 66 88 */ addi r3, r3, l_HIO@l /* 0x80B26688@l */ -/* 80B2607C C0 03 00 08 */ lfs f0, 8(r3) -/* 80B26080 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80B26084 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 80B26088 38 61 00 14 */ addi r3, r1, 0x14 -/* 80B2608C 38 9E 04 F8 */ addi r4, r30, 0x4f8 -/* 80B26090 4B 74 AE 5D */ bl MtxPosition__FP4cXyzP4cXyz -/* 80B26094 38 7E 04 D0 */ addi r3, r30, 0x4d0 -/* 80B26098 38 9E 04 F8 */ addi r4, r30, 0x4f8 -/* 80B2609C 7C 65 1B 78 */ mr r5, r3 -/* 80B260A0 4B 82 0F F1 */ bl PSVECAdd -/* 80B260A4 38 7E 05 E4 */ addi r3, r30, 0x5e4 -/* 80B260A8 C0 3E 05 E8 */ lfs f1, 0x5e8(r30) -/* 80B260AC C0 5F 00 64 */ lfs f2, 0x64(r31) -/* 80B260B0 C0 7F 00 7C */ lfs f3, 0x7c(r31) -/* 80B260B4 4B 74 99 89 */ bl cLib_addCalc2__FPffff -/* 80B260B8 38 7E 05 FC */ addi r3, r30, 0x5fc -/* 80B260BC C0 3F 00 80 */ lfs f1, 0x80(r31) -/* 80B260C0 C0 1E 05 E4 */ lfs f0, 0x5e4(r30) -/* 80B260C4 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80B260C8 EC 21 00 2A */ fadds f1, f1, f0 -/* 80B260CC C0 5F 00 50 */ lfs f2, 0x50(r31) -/* 80B260D0 C0 7F 00 20 */ lfs f3, 0x20(r31) -/* 80B260D4 4B 74 99 69 */ bl cLib_addCalc2__FPffff -/* 80B260D8 C0 5F 00 80 */ lfs f2, 0x80(r31) -/* 80B260DC C0 3F 00 84 */ lfs f1, 0x84(r31) -/* 80B260E0 C0 1E 05 E4 */ lfs f0, 0x5e4(r30) -/* 80B260E4 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80B260E8 EC 02 00 2A */ fadds f0, f2, f0 -/* 80B260EC FC 00 00 1E */ fctiwz f0, f0 -/* 80B260F0 D8 01 00 20 */ stfd f0, 0x20(r1) -/* 80B260F4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80B260F8 B0 1E 05 EE */ sth r0, 0x5ee(r30) -/* 80B260FC A8 7E 05 EC */ lha r3, 0x5ec(r30) -/* 80B26100 A8 1E 05 EE */ lha r0, 0x5ee(r30) -/* 80B26104 7C 03 02 14 */ add r0, r3, r0 -/* 80B26108 B0 1E 05 EC */ sth r0, 0x5ec(r30) -/* 80B2610C 80 7F 00 70 */ lwz r3, 0x70(r31) -/* 80B26110 80 1F 00 74 */ lwz r0, 0x74(r31) -/* 80B26114 90 61 00 08 */ stw r3, 8(r1) -/* 80B26118 90 01 00 0C */ stw r0, 0xc(r1) -/* 80B2611C 80 1F 00 78 */ lwz r0, 0x78(r31) -/* 80B26120 90 01 00 10 */ stw r0, 0x10(r1) -/* 80B26124 38 60 00 00 */ li r3, 0 -/* 80B26128 38 80 00 00 */ li r4, 0 -/* 80B2612C 38 A0 00 00 */ li r5, 0 -/* 80B26130 3C C0 80 44 */ lis r6, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 80B26134 39 06 9A 20 */ addi r8, r6, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 80B26138 38 E1 00 08 */ addi r7, r1, 8 -/* 80B2613C 38 00 00 03 */ li r0, 3 -/* 80B26140 7C 09 03 A6 */ mtctr r0 -lbl_80B26144: -/* 80B26144 A8 1E 05 EC */ lha r0, 0x5ec(r30) -/* 80B26148 7C 00 2A 14 */ add r0, r0, r5 -/* 80B2614C 54 00 04 38 */ rlwinm r0, r0, 0, 0x10, 0x1c -/* 80B26150 7C 48 04 2E */ lfsx f2, r8, r0 -/* 80B26154 7C 27 24 2E */ lfsx f1, r7, r4 -/* 80B26158 C0 1E 05 FC */ lfs f0, 0x5fc(r30) -/* 80B2615C EC 00 00 B2 */ fmuls f0, f0, f2 -/* 80B26160 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80B26164 FC 00 00 1E */ fctiwz f0, f0 -/* 80B26168 D8 01 00 20 */ stfd f0, 0x20(r1) -/* 80B2616C 80 C1 00 24 */ lwz r6, 0x24(r1) -/* 80B26170 38 03 05 F2 */ addi r0, r3, 0x5f2 -/* 80B26174 7C DE 03 2E */ sthx r6, r30, r0 -/* 80B26178 38 63 00 02 */ addi r3, r3, 2 -/* 80B2617C 38 84 00 04 */ addi r4, r4, 4 -/* 80B26180 38 A5 C5 68 */ addi r5, r5, -15000 -/* 80B26184 42 00 FF C0 */ bdnz lbl_80B26144 -/* 80B26188 A8 7E 05 EC */ lha r3, 0x5ec(r30) -/* 80B2618C 38 03 E4 A8 */ addi r0, r3, -7000 -/* 80B26190 54 00 04 38 */ rlwinm r0, r0, 0, 0x10, 0x1c -/* 80B26194 3C 60 80 44 */ lis r3, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 80B26198 38 63 9A 20 */ addi r3, r3, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 80B2619C 7C 43 04 2E */ lfsx f2, r3, r0 -/* 80B261A0 C0 3F 00 88 */ lfs f1, 0x88(r31) -/* 80B261A4 C0 1E 05 FC */ lfs f0, 0x5fc(r30) -/* 80B261A8 EC 00 00 B2 */ fmuls f0, f0, f2 -/* 80B261AC EC 01 00 32 */ fmuls f0, f1, f0 -/* 80B261B0 FC 00 00 1E */ fctiwz f0, f0 -/* 80B261B4 D8 01 00 20 */ stfd f0, 0x20(r1) -/* 80B261B8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80B261BC B0 1E 05 F0 */ sth r0, 0x5f0(r30) -/* 80B261C0 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80B261C4 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 80B261C8 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80B261CC 7C 08 03 A6 */ mtlr r0 -/* 80B261D0 38 21 00 30 */ addi r1, r1, 0x30 -/* 80B261D4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/daNPC_TR_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/daNPC_TR_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 14bdd0739a1..00000000000 --- a/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/daNPC_TR_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,71 +0,0 @@ -lbl_80B263E4: -/* 80B263E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80B263E8 7C 08 02 A6 */ mflr r0 -/* 80B263EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80B263F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80B263F4 93 C1 00 08 */ stw r30, 8(r1) -/* 80B263F8 7C 7F 1B 78 */ mr r31, r3 -/* 80B263FC 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80B26400 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80B26404 40 82 00 1C */ bne lbl_80B26420 -/* 80B26408 28 1F 00 00 */ cmplwi r31, 0 -/* 80B2640C 41 82 00 08 */ beq lbl_80B26414 -/* 80B26410 4B 4F 27 55 */ bl __ct__10fopAc_ac_cFv -lbl_80B26414: -/* 80B26414 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80B26418 60 00 00 08 */ ori r0, r0, 8 -/* 80B2641C 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80B26420: -/* 80B26420 38 7F 05 AC */ addi r3, r31, 0x5ac -/* 80B26424 3C 80 80 B2 */ lis r4, d_a_npc_tr__stringBase0@ha /* 0x80B26608@ha */ -/* 80B26428 38 84 66 08 */ addi r4, r4, d_a_npc_tr__stringBase0@l /* 0x80B26608@l */ -/* 80B2642C 4B 50 6A 91 */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc -/* 80B26430 7C 7E 1B 78 */ mr r30, r3 -/* 80B26434 2C 1E 00 04 */ cmpwi r30, 4 -/* 80B26438 40 82 00 90 */ bne lbl_80B264C8 -/* 80B2643C 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80B26440 98 1F 05 B4 */ stb r0, 0x5b4(r31) -/* 80B26444 7F E3 FB 78 */ mr r3, r31 -/* 80B26448 3C 80 80 B2 */ lis r4, useHeapInit__FP10fopAc_ac_c@ha /* 0x80B2632C@ha */ -/* 80B2644C 38 84 63 2C */ addi r4, r4, useHeapInit__FP10fopAc_ac_c@l /* 0x80B2632C@l */ -/* 80B26450 3C A0 00 05 */ lis r5, 0x0005 /* 0x0004B000@ha */ -/* 80B26454 38 A5 B0 00 */ addi r5, r5, 0xB000 /* 0x0004B000@l */ -/* 80B26458 4B 4F 40 59 */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl -/* 80B2645C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80B26460 40 82 00 0C */ bne lbl_80B2646C -/* 80B26464 38 60 00 05 */ li r3, 5 -/* 80B26468 48 00 00 64 */ b lbl_80B264CC -lbl_80B2646C: -/* 80B2646C 3C 60 80 B2 */ lis r3, data_80B26678@ha /* 0x80B26678@ha */ -/* 80B26470 8C 03 66 78 */ lbzu r0, data_80B26678@l(r3) /* 0x80B26678@l */ -/* 80B26474 28 00 00 00 */ cmplwi r0, 0 -/* 80B26478 40 82 00 20 */ bne lbl_80B26498 -/* 80B2647C 38 00 00 01 */ li r0, 1 -/* 80B26480 98 1F 06 00 */ stb r0, 0x600(r31) -/* 80B26484 98 03 00 00 */ stb r0, 0(r3) -/* 80B26488 38 00 FF FF */ li r0, -1 -/* 80B2648C 3C 60 80 B2 */ lis r3, l_HIO@ha /* 0x80B26688@ha */ -/* 80B26490 38 63 66 88 */ addi r3, r3, l_HIO@l /* 0x80B26688@l */ -/* 80B26494 98 03 00 04 */ stb r0, 4(r3) -lbl_80B26498: -/* 80B26498 80 7F 05 B8 */ lwz r3, 0x5b8(r31) -/* 80B2649C 38 03 00 24 */ addi r0, r3, 0x24 -/* 80B264A0 90 1F 05 04 */ stw r0, 0x504(r31) -/* 80B264A4 3C 60 80 B2 */ lis r3, lit_3938@ha /* 0x80B265C4@ha */ -/* 80B264A8 C0 23 65 C4 */ lfs f1, lit_3938@l(r3) /* 0x80B265C4@l */ -/* 80B264AC 4B 74 14 E1 */ bl cM_rndFX__Ff -/* 80B264B0 3C 60 80 B2 */ lis r3, lit_3768@ha /* 0x80B2657C@ha */ -/* 80B264B4 C0 03 65 7C */ lfs f0, lit_3768@l(r3) /* 0x80B2657C@l */ -/* 80B264B8 EC 00 08 2A */ fadds f0, f0, f1 -/* 80B264BC D0 1F 04 EC */ stfs f0, 0x4ec(r31) -/* 80B264C0 7F E3 FB 78 */ mr r3, r31 -/* 80B264C4 4B FF FD 15 */ bl daNPC_TR_Execute__FP12npc_tr_class -lbl_80B264C8: -/* 80B264C8 7F C3 F3 78 */ mr r3, r30 -lbl_80B264CC: -/* 80B264CC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80B264D0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80B264D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80B264D8 7C 08 03 A6 */ mtlr r0 -/* 80B264DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80B264E0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/nodeCallBack__FP8J3DJointi.s b/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/nodeCallBack__FP8J3DJointi.s deleted file mode 100644 index b79b1a105c9..00000000000 --- a/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/nodeCallBack__FP8J3DJointi.s +++ /dev/null @@ -1,77 +0,0 @@ -lbl_80B25A54: -/* 80B25A54 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80B25A58 7C 08 02 A6 */ mflr r0 -/* 80B25A5C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80B25A60 39 61 00 20 */ addi r11, r1, 0x20 -/* 80B25A64 4B 83 C7 75 */ bl _savegpr_28 -/* 80B25A68 2C 04 00 00 */ cmpwi r4, 0 -/* 80B25A6C 40 82 00 F0 */ bne lbl_80B25B5C -/* 80B25A70 A3 83 00 14 */ lhz r28, 0x14(r3) -/* 80B25A74 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80B25A78 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80B25A7C 83 E3 00 38 */ lwz r31, 0x38(r3) -/* 80B25A80 83 BF 00 14 */ lwz r29, 0x14(r31) -/* 80B25A84 80 7F 00 84 */ lwz r3, 0x84(r31) -/* 80B25A88 80 03 00 0C */ lwz r0, 0xc(r3) -/* 80B25A8C 1F DC 00 30 */ mulli r30, r28, 0x30 -/* 80B25A90 7C 60 F2 14 */ add r3, r0, r30 -/* 80B25A94 3C 80 80 45 */ lis r4, calc_mtx@ha /* 0x80450768@ha */ -/* 80B25A98 38 84 07 68 */ addi r4, r4, calc_mtx@l /* 0x80450768@l */ -/* 80B25A9C 80 84 00 00 */ lwz r4, 0(r4) -/* 80B25AA0 4B 82 0A 11 */ bl PSMTXCopy -/* 80B25AA4 2C 1C 00 01 */ cmpwi r28, 1 -/* 80B25AA8 40 82 00 40 */ bne lbl_80B25AE8 -/* 80B25AAC 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */ -/* 80B25AB0 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */ -/* 80B25AB4 80 63 00 00 */ lwz r3, 0(r3) -/* 80B25AB8 A8 BD 05 F2 */ lha r5, 0x5f2(r29) -/* 80B25ABC 3C 80 80 B2 */ lis r4, lit_3770@ha /* 0x80B26584@ha */ -/* 80B25AC0 C0 24 65 84 */ lfs f1, lit_3770@l(r4) /* 0x80B26584@l */ -/* 80B25AC4 C0 1D 05 F8 */ lfs f0, 0x5f8(r29) -/* 80B25AC8 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80B25ACC FC 00 00 1E */ fctiwz f0, f0 -/* 80B25AD0 D8 01 00 08 */ stfd f0, 8(r1) -/* 80B25AD4 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80B25AD8 7C 05 02 14 */ add r0, r5, r0 -/* 80B25ADC 7C 04 07 34 */ extsh r4, r0 -/* 80B25AE0 4B 4E 69 55 */ bl mDoMtx_YrotM__FPA4_fs -/* 80B25AE4 48 00 00 44 */ b lbl_80B25B28 -lbl_80B25AE8: -/* 80B25AE8 41 80 00 40 */ blt lbl_80B25B28 -/* 80B25AEC 2C 1C 00 03 */ cmpwi r28, 3 -/* 80B25AF0 41 81 00 38 */ bgt lbl_80B25B28 -/* 80B25AF4 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */ -/* 80B25AF8 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */ -/* 80B25AFC 80 63 00 00 */ lwz r3, 0(r3) -/* 80B25B00 57 80 08 3C */ slwi r0, r28, 1 -/* 80B25B04 7C 9D 02 14 */ add r4, r29, r0 -/* 80B25B08 A8 84 05 F0 */ lha r4, 0x5f0(r4) -/* 80B25B0C C0 1D 05 F8 */ lfs f0, 0x5f8(r29) -/* 80B25B10 FC 00 00 1E */ fctiwz f0, f0 -/* 80B25B14 D8 01 00 08 */ stfd f0, 8(r1) -/* 80B25B18 80 01 00 0C */ lwz r0, 0xc(r1) -/* 80B25B1C 7C 04 02 14 */ add r0, r4, r0 -/* 80B25B20 7C 04 07 34 */ extsh r4, r0 -/* 80B25B24 4B 4E 69 11 */ bl mDoMtx_YrotM__FPA4_fs -lbl_80B25B28: -/* 80B25B28 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */ -/* 80B25B2C 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */ -/* 80B25B30 80 63 00 00 */ lwz r3, 0(r3) -/* 80B25B34 80 9F 00 84 */ lwz r4, 0x84(r31) -/* 80B25B38 80 04 00 0C */ lwz r0, 0xc(r4) -/* 80B25B3C 7C 80 F2 14 */ add r4, r0, r30 -/* 80B25B40 4B 82 09 71 */ bl PSMTXCopy -/* 80B25B44 3C 60 80 45 */ lis r3, calc_mtx@ha /* 0x80450768@ha */ -/* 80B25B48 38 63 07 68 */ addi r3, r3, calc_mtx@l /* 0x80450768@l */ -/* 80B25B4C 80 63 00 00 */ lwz r3, 0(r3) -/* 80B25B50 3C 80 80 43 */ lis r4, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */ -/* 80B25B54 38 84 4B E4 */ addi r4, r4, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */ -/* 80B25B58 4B 82 09 59 */ bl PSMTXCopy -lbl_80B25B5C: -/* 80B25B5C 38 60 00 01 */ li r3, 1 -/* 80B25B60 39 61 00 20 */ addi r11, r1, 0x20 -/* 80B25B64 4B 83 C6 C1 */ bl _restgpr_28 -/* 80B25B68 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80B25B6C 7C 08 03 A6 */ mtlr r0 -/* 80B25B70 38 21 00 20 */ addi r1, r1, 0x20 -/* 80B25B74 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/npc_tr_move__FP12npc_tr_class.s b/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/npc_tr_move__FP12npc_tr_class.s deleted file mode 100644 index 88e985a8987..00000000000 --- a/asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/npc_tr_move__FP12npc_tr_class.s +++ /dev/null @@ -1,279 +0,0 @@ -lbl_80B25BDC: -/* 80B25BDC 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 80B25BE0 7C 08 02 A6 */ mflr r0 -/* 80B25BE4 90 01 00 74 */ stw r0, 0x74(r1) -/* 80B25BE8 DB E1 00 60 */ stfd f31, 0x60(r1) -/* 80B25BEC F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0 /* qr0 */ -/* 80B25BF0 DB C1 00 50 */ stfd f30, 0x50(r1) -/* 80B25BF4 F3 C1 00 58 */ psq_st f30, 88(r1), 0, 0 /* qr0 */ -/* 80B25BF8 39 61 00 50 */ addi r11, r1, 0x50 -/* 80B25BFC 4B 83 C5 DD */ bl _savegpr_28 -/* 80B25C00 7C 7E 1B 78 */ mr r30, r3 -/* 80B25C04 3C 60 80 B2 */ lis r3, lit_3768@ha /* 0x80B2657C@ha */ -/* 80B25C08 3B E3 65 7C */ addi r31, r3, lit_3768@l /* 0x80B2657C@l */ -/* 80B25C0C A8 1E 05 C0 */ lha r0, 0x5c0(r30) -/* 80B25C10 2C 00 00 01 */ cmpwi r0, 1 -/* 80B25C14 41 82 01 D0 */ beq lbl_80B25DE4 -/* 80B25C18 40 80 02 18 */ bge lbl_80B25E30 -/* 80B25C1C 2C 00 00 00 */ cmpwi r0, 0 -/* 80B25C20 40 80 00 08 */ bge lbl_80B25C28 -/* 80B25C24 48 00 02 0C */ b lbl_80B25E30 -lbl_80B25C28: -/* 80B25C28 A8 1E 05 DC */ lha r0, 0x5dc(r30) -/* 80B25C2C 2C 00 00 00 */ cmpwi r0, 0 -/* 80B25C30 40 82 01 A0 */ bne lbl_80B25DD0 -/* 80B25C34 3B A0 00 00 */ li r29, 0 -/* 80B25C38 C3 FF 00 18 */ lfs f31, 0x18(r31) -/* 80B25C3C C3 DF 00 40 */ lfs f30, 0x40(r31) -lbl_80B25C40: -/* 80B25C40 C0 3F 00 1C */ lfs f1, 0x1c(r31) -/* 80B25C44 4B 74 1D 49 */ bl cM_rndFX__Ff -/* 80B25C48 C0 1E 04 A8 */ lfs f0, 0x4a8(r30) -/* 80B25C4C EC 00 08 2A */ fadds f0, f0, f1 -/* 80B25C50 D0 1E 05 C4 */ stfs f0, 0x5c4(r30) -/* 80B25C54 C0 3F 00 20 */ lfs f1, 0x20(r31) -/* 80B25C58 4B 74 1D 35 */ bl cM_rndFX__Ff -/* 80B25C5C C0 1E 04 AC */ lfs f0, 0x4ac(r30) -/* 80B25C60 EC 00 08 2A */ fadds f0, f0, f1 -/* 80B25C64 D0 1E 05 C8 */ stfs f0, 0x5c8(r30) -/* 80B25C68 C0 3F 00 1C */ lfs f1, 0x1c(r31) -/* 80B25C6C 4B 74 1D 21 */ bl cM_rndFX__Ff -/* 80B25C70 C0 1E 04 B0 */ lfs f0, 0x4b0(r30) -/* 80B25C74 EC 00 08 2A */ fadds f0, f0, f1 -/* 80B25C78 D0 1E 05 CC */ stfs f0, 0x5cc(r30) -/* 80B25C7C 38 61 00 18 */ addi r3, r1, 0x18 -/* 80B25C80 38 9E 05 C4 */ addi r4, r30, 0x5c4 -/* 80B25C84 38 BE 04 D0 */ addi r5, r30, 0x4d0 -/* 80B25C88 4B 74 0E AD */ bl __mi__4cXyzCFRC3Vec -/* 80B25C8C C0 01 00 18 */ lfs f0, 0x18(r1) -/* 80B25C90 D0 01 00 24 */ stfs f0, 0x24(r1) -/* 80B25C94 C0 01 00 1C */ lfs f0, 0x1c(r1) -/* 80B25C98 D0 01 00 28 */ stfs f0, 0x28(r1) -/* 80B25C9C C0 01 00 20 */ lfs f0, 0x20(r1) -/* 80B25CA0 D0 01 00 2C */ stfs f0, 0x2c(r1) -/* 80B25CA4 D3 E1 00 28 */ stfs f31, 0x28(r1) -/* 80B25CA8 38 61 00 24 */ addi r3, r1, 0x24 -/* 80B25CAC 4B 82 14 8D */ bl PSVECSquareMag -/* 80B25CB0 FC 01 F8 40 */ fcmpo cr0, f1, f31 -/* 80B25CB4 40 81 00 58 */ ble lbl_80B25D0C -/* 80B25CB8 FC 00 08 34 */ frsqrte f0, f1 -/* 80B25CBC C8 9F 00 28 */ lfd f4, 0x28(r31) -/* 80B25CC0 FC 44 00 32 */ fmul f2, f4, f0 -/* 80B25CC4 C8 7F 00 30 */ lfd f3, 0x30(r31) -/* 80B25CC8 FC 00 00 32 */ fmul f0, f0, f0 -/* 80B25CCC FC 01 00 32 */ fmul f0, f1, f0 -/* 80B25CD0 FC 03 00 28 */ fsub f0, f3, f0 -/* 80B25CD4 FC 02 00 32 */ fmul f0, f2, f0 -/* 80B25CD8 FC 44 00 32 */ fmul f2, f4, f0 -/* 80B25CDC FC 00 00 32 */ fmul f0, f0, f0 -/* 80B25CE0 FC 01 00 32 */ fmul f0, f1, f0 -/* 80B25CE4 FC 03 00 28 */ fsub f0, f3, f0 -/* 80B25CE8 FC 02 00 32 */ fmul f0, f2, f0 -/* 80B25CEC FC 44 00 32 */ fmul f2, f4, f0 -/* 80B25CF0 FC 00 00 32 */ fmul f0, f0, f0 -/* 80B25CF4 FC 01 00 32 */ fmul f0, f1, f0 -/* 80B25CF8 FC 03 00 28 */ fsub f0, f3, f0 -/* 80B25CFC FC 02 00 32 */ fmul f0, f2, f0 -/* 80B25D00 FC 21 00 32 */ fmul f1, f1, f0 -/* 80B25D04 FC 20 08 18 */ frsp f1, f1 -/* 80B25D08 48 00 00 88 */ b lbl_80B25D90 -lbl_80B25D0C: -/* 80B25D0C C8 1F 00 38 */ lfd f0, 0x38(r31) -/* 80B25D10 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80B25D14 40 80 00 10 */ bge lbl_80B25D24 -/* 80B25D18 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 80B25D1C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -/* 80B25D20 48 00 00 70 */ b lbl_80B25D90 -lbl_80B25D24: -/* 80B25D24 D0 21 00 08 */ stfs f1, 8(r1) -/* 80B25D28 80 81 00 08 */ lwz r4, 8(r1) -/* 80B25D2C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8 -/* 80B25D30 3C 00 7F 80 */ lis r0, 0x7f80 -/* 80B25D34 7C 03 00 00 */ cmpw r3, r0 -/* 80B25D38 41 82 00 14 */ beq lbl_80B25D4C -/* 80B25D3C 40 80 00 40 */ bge lbl_80B25D7C -/* 80B25D40 2C 03 00 00 */ cmpwi r3, 0 -/* 80B25D44 41 82 00 20 */ beq lbl_80B25D64 -/* 80B25D48 48 00 00 34 */ b lbl_80B25D7C -lbl_80B25D4C: -/* 80B25D4C 54 80 02 7F */ clrlwi. r0, r4, 9 -/* 80B25D50 41 82 00 0C */ beq lbl_80B25D5C -/* 80B25D54 38 00 00 01 */ li r0, 1 -/* 80B25D58 48 00 00 28 */ b lbl_80B25D80 -lbl_80B25D5C: -/* 80B25D5C 38 00 00 02 */ li r0, 2 -/* 80B25D60 48 00 00 20 */ b lbl_80B25D80 -lbl_80B25D64: -/* 80B25D64 54 80 02 7F */ clrlwi. r0, r4, 9 -/* 80B25D68 41 82 00 0C */ beq lbl_80B25D74 -/* 80B25D6C 38 00 00 05 */ li r0, 5 -/* 80B25D70 48 00 00 10 */ b lbl_80B25D80 -lbl_80B25D74: -/* 80B25D74 38 00 00 03 */ li r0, 3 -/* 80B25D78 48 00 00 08 */ b lbl_80B25D80 -lbl_80B25D7C: -/* 80B25D7C 38 00 00 04 */ li r0, 4 -lbl_80B25D80: -/* 80B25D80 2C 00 00 01 */ cmpwi r0, 1 -/* 80B25D84 40 82 00 0C */ bne lbl_80B25D90 -/* 80B25D88 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */ -/* 80B25D8C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */ -lbl_80B25D90: -/* 80B25D90 FC 01 F0 40 */ fcmpo cr0, f1, f30 -/* 80B25D94 40 81 00 30 */ ble lbl_80B25DC4 -/* 80B25D98 38 00 00 01 */ li r0, 1 -/* 80B25D9C B0 1E 05 C0 */ sth r0, 0x5c0(r30) -/* 80B25DA0 C0 3F 00 44 */ lfs f1, 0x44(r31) -/* 80B25DA4 4B 74 1B B1 */ bl cM_rndF__Ff -/* 80B25DA8 C0 1F 00 44 */ lfs f0, 0x44(r31) -/* 80B25DAC EC 00 08 2A */ fadds f0, f0, f1 -/* 80B25DB0 FC 00 00 1E */ fctiwz f0, f0 -/* 80B25DB4 D8 01 00 30 */ stfd f0, 0x30(r1) -/* 80B25DB8 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80B25DBC B0 1E 05 DC */ sth r0, 0x5dc(r30) -/* 80B25DC0 48 00 00 10 */ b lbl_80B25DD0 -lbl_80B25DC4: -/* 80B25DC4 3B BD 00 01 */ addi r29, r29, 1 -/* 80B25DC8 2C 1D 00 64 */ cmpwi r29, 0x64 -/* 80B25DCC 41 80 FE 74 */ blt lbl_80B25C40 -lbl_80B25DD0: -/* 80B25DD0 C0 1F 00 48 */ lfs f0, 0x48(r31) -/* 80B25DD4 D0 1E 05 E8 */ stfs f0, 0x5e8(r30) -/* 80B25DD8 3B A0 00 00 */ li r29, 0 -/* 80B25DDC C3 FF 00 4C */ lfs f31, 0x4c(r31) -/* 80B25DE0 48 00 00 50 */ b lbl_80B25E30 -lbl_80B25DE4: -/* 80B25DE4 A8 1E 05 DC */ lha r0, 0x5dc(r30) -/* 80B25DE8 2C 00 00 00 */ cmpwi r0, 0 -/* 80B25DEC 40 82 00 2C */ bne lbl_80B25E18 -/* 80B25DF0 38 00 00 00 */ li r0, 0 -/* 80B25DF4 B0 1E 05 C0 */ sth r0, 0x5c0(r30) -/* 80B25DF8 C0 3F 00 44 */ lfs f1, 0x44(r31) -/* 80B25DFC 4B 74 1B 59 */ bl cM_rndF__Ff -/* 80B25E00 C0 1F 00 44 */ lfs f0, 0x44(r31) -/* 80B25E04 EC 00 08 2A */ fadds f0, f0, f1 -/* 80B25E08 FC 00 00 1E */ fctiwz f0, f0 -/* 80B25E0C D8 01 00 30 */ stfd f0, 0x30(r1) -/* 80B25E10 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80B25E14 B0 1E 05 DC */ sth r0, 0x5dc(r30) -lbl_80B25E18: -/* 80B25E18 3C 60 80 B2 */ lis r3, l_HIO@ha /* 0x80B26688@ha */ -/* 80B25E1C 38 63 66 88 */ addi r3, r3, l_HIO@l /* 0x80B26688@l */ -/* 80B25E20 C0 03 00 10 */ lfs f0, 0x10(r3) -/* 80B25E24 D0 1E 05 E8 */ stfs f0, 0x5e8(r30) -/* 80B25E28 3B A0 04 00 */ li r29, 0x400 -/* 80B25E2C C3 FF 00 50 */ lfs f31, 0x50(r31) -lbl_80B25E30: -/* 80B25E30 A8 1E 05 DE */ lha r0, 0x5de(r30) -/* 80B25E34 2C 00 00 00 */ cmpwi r0, 0 -/* 80B25E38 41 82 00 20 */ beq lbl_80B25E58 -/* 80B25E3C C3 FF 00 50 */ lfs f31, 0x50(r31) -/* 80B25E40 3C 60 80 B2 */ lis r3, l_HIO@ha /* 0x80B26688@ha */ -/* 80B25E44 38 63 66 88 */ addi r3, r3, l_HIO@l /* 0x80B26688@l */ -/* 80B25E48 C0 03 00 14 */ lfs f0, 0x14(r3) -/* 80B25E4C D0 1E 05 E8 */ stfs f0, 0x5e8(r30) -/* 80B25E50 3B A0 06 00 */ li r29, 0x600 -/* 80B25E54 48 00 00 50 */ b lbl_80B25EA4 -lbl_80B25E58: -/* 80B25E58 C0 3E 05 D8 */ lfs f1, 0x5d8(r30) -/* 80B25E5C 3C 60 80 B2 */ lis r3, l_HIO@ha /* 0x80B26688@ha */ -/* 80B25E60 38 63 66 88 */ addi r3, r3, l_HIO@l /* 0x80B26688@l */ -/* 80B25E64 C0 03 00 18 */ lfs f0, 0x18(r3) -/* 80B25E68 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80B25E6C 40 80 00 38 */ bge lbl_80B25EA4 -/* 80B25E70 C0 3F 00 54 */ lfs f1, 0x54(r31) -/* 80B25E74 4B 74 1A E1 */ bl cM_rndF__Ff -/* 80B25E78 C0 1F 00 54 */ lfs f0, 0x54(r31) -/* 80B25E7C EC 00 08 2A */ fadds f0, f0, f1 -/* 80B25E80 FC 00 00 1E */ fctiwz f0, f0 -/* 80B25E84 D8 01 00 30 */ stfd f0, 0x30(r1) -/* 80B25E88 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80B25E8C B0 1E 05 DE */ sth r0, 0x5de(r30) -/* 80B25E90 A8 1E 05 C0 */ lha r0, 0x5c0(r30) -/* 80B25E94 2C 00 00 01 */ cmpwi r0, 1 -/* 80B25E98 40 82 00 0C */ bne lbl_80B25EA4 -/* 80B25E9C 38 00 00 00 */ li r0, 0 -/* 80B25EA0 B0 1E 05 C0 */ sth r0, 0x5c0(r30) -lbl_80B25EA4: -/* 80B25EA4 38 61 00 0C */ addi r3, r1, 0xc -/* 80B25EA8 38 9E 05 C4 */ addi r4, r30, 0x5c4 -/* 80B25EAC 38 BE 04 D0 */ addi r5, r30, 0x4d0 -/* 80B25EB0 4B 74 0C 85 */ bl __mi__4cXyzCFRC3Vec -/* 80B25EB4 C0 21 00 0C */ lfs f1, 0xc(r1) -/* 80B25EB8 D0 21 00 24 */ stfs f1, 0x24(r1) -/* 80B25EBC C0 01 00 10 */ lfs f0, 0x10(r1) -/* 80B25EC0 D0 01 00 28 */ stfs f0, 0x28(r1) -/* 80B25EC4 C0 41 00 14 */ lfs f2, 0x14(r1) -/* 80B25EC8 D0 41 00 2C */ stfs f2, 0x2c(r1) -/* 80B25ECC AB 9E 04 DE */ lha r28, 0x4de(r30) -/* 80B25ED0 4B 74 17 A5 */ bl cM_atan2s__Fff -/* 80B25ED4 7C 64 1B 78 */ mr r4, r3 -/* 80B25ED8 38 7E 04 DE */ addi r3, r30, 0x4de -/* 80B25EDC 38 A0 00 04 */ li r5, 4 -/* 80B25EE0 7F A6 EB 78 */ mr r6, r29 -/* 80B25EE4 4B 74 A7 25 */ bl cLib_addCalcAngleS2__FPssss -/* 80B25EE8 C0 01 00 24 */ lfs f0, 0x24(r1) -/* 80B25EEC EC 20 00 32 */ fmuls f1, f0, f0 -/* 80B25EF0 C0 01 00 2C */ lfs f0, 0x2c(r1) -/* 80B25EF4 EC 00 00 32 */ fmuls f0, f0, f0 -/* 80B25EF8 EC 41 00 2A */ fadds f2, f1, f0 -/* 80B25EFC C0 1F 00 18 */ lfs f0, 0x18(r31) -/* 80B25F00 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 80B25F04 40 81 00 0C */ ble lbl_80B25F10 -/* 80B25F08 FC 00 10 34 */ frsqrte f0, f2 -/* 80B25F0C EC 40 00 B2 */ fmuls f2, f0, f2 -lbl_80B25F10: -/* 80B25F10 C0 21 00 28 */ lfs f1, 0x28(r1) -/* 80B25F14 4B 74 17 61 */ bl cM_atan2s__Fff -/* 80B25F18 7C 03 00 D0 */ neg r0, r3 -/* 80B25F1C 7C 04 07 34 */ extsh r4, r0 -/* 80B25F20 38 7E 04 DC */ addi r3, r30, 0x4dc -/* 80B25F24 38 A0 00 04 */ li r5, 4 -/* 80B25F28 7F A6 EB 78 */ mr r6, r29 -/* 80B25F2C 4B 74 A6 DD */ bl cLib_addCalcAngleS2__FPssss -/* 80B25F30 A8 1E 04 DE */ lha r0, 0x4de(r30) -/* 80B25F34 7F 80 E0 50 */ subf r28, r0, r28 -/* 80B25F38 C0 5F 00 58 */ lfs f2, 0x58(r31) -/* 80B25F3C 7F 80 07 34 */ extsh r0, r28 -/* 80B25F40 C8 3F 00 68 */ lfd f1, 0x68(r31) -/* 80B25F44 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 80B25F48 90 01 00 34 */ stw r0, 0x34(r1) -/* 80B25F4C 3C 00 43 30 */ lis r0, 0x4330 -/* 80B25F50 90 01 00 30 */ stw r0, 0x30(r1) -/* 80B25F54 C8 01 00 30 */ lfd f0, 0x30(r1) -/* 80B25F58 EC 00 08 28 */ fsubs f0, f0, f1 -/* 80B25F5C EC 22 00 32 */ fmuls f1, f2, f0 -/* 80B25F60 C0 1F 00 5C */ lfs f0, 0x5c(r31) -/* 80B25F64 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80B25F68 40 81 00 0C */ ble lbl_80B25F74 -/* 80B25F6C FC 20 00 90 */ fmr f1, f0 -/* 80B25F70 48 00 00 14 */ b lbl_80B25F84 -lbl_80B25F74: -/* 80B25F74 C0 1F 00 60 */ lfs f0, 0x60(r31) -/* 80B25F78 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80B25F7C 40 80 00 08 */ bge lbl_80B25F84 -/* 80B25F80 FC 20 00 90 */ fmr f1, f0 -lbl_80B25F84: -/* 80B25F84 38 7E 05 F8 */ addi r3, r30, 0x5f8 -/* 80B25F88 C0 5F 00 50 */ lfs f2, 0x50(r31) -/* 80B25F8C C0 7F 00 1C */ lfs f3, 0x1c(r31) -/* 80B25F90 4B 74 9A AD */ bl cLib_addCalc2__FPffff -/* 80B25F94 38 7E 05 2C */ addi r3, r30, 0x52c -/* 80B25F98 C0 3E 05 E4 */ lfs f1, 0x5e4(r30) -/* 80B25F9C 3C 80 80 B2 */ lis r4, l_HIO@ha /* 0x80B26688@ha */ -/* 80B25FA0 38 84 66 88 */ addi r4, r4, l_HIO@l /* 0x80B26688@l */ -/* 80B25FA4 C0 04 00 0C */ lfs f0, 0xc(r4) -/* 80B25FA8 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80B25FAC C0 5F 00 64 */ lfs f2, 0x64(r31) -/* 80B25FB0 FC 60 F8 90 */ fmr f3, f31 -/* 80B25FB4 4B 74 9A 89 */ bl cLib_addCalc2__FPffff -/* 80B25FB8 E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0 /* qr0 */ -/* 80B25FBC CB E1 00 60 */ lfd f31, 0x60(r1) -/* 80B25FC0 E3 C1 00 58 */ psq_l f30, 88(r1), 0, 0 /* qr0 */ -/* 80B25FC4 CB C1 00 50 */ lfd f30, 0x50(r1) -/* 80B25FC8 39 61 00 50 */ addi r11, r1, 0x50 -/* 80B25FCC 4B 83 C2 59 */ bl _restgpr_28 -/* 80B25FD0 80 01 00 74 */ lwz r0, 0x74(r1) -/* 80B25FD4 7C 08 03 A6 */ mtlr r0 -/* 80B25FD8 38 21 00 70 */ addi r1, r1, 0x70 -/* 80B25FDC 4E 80 00 20 */ blr diff --git a/include/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.h b/include/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.h index 557c031e32c..1fba24be244 100644 --- a/include/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.h +++ b/include/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.h @@ -1,5 +1,44 @@ #ifndef D_A_NPC_TR_H #define D_A_NPC_TR_H +#include "SSystem/SComponent/c_phase.h" +#include "f_op/f_op_actor.h" + +class npc_tr_class : public fopAc_ac_c { +public: + /* 0x568 */ u8 field_0x568[0x5AC - 0x568]; + /* 0x5AC */ request_of_phase_process_class mPhaseReq; + /* 0x5B4 */ u8 field_0x5b4; + /* 0x5B8 */ J3DModel* field_0x5b8; + /* 0x5BC */ s16 field_0x5bc; + /* 0x5BE */ s16 field_0x5be; + /* 0x5C0 */ s16 field_0x5c0; + /* 0x5C4 */ cXyz field_0x5c4; + /* 0x5D0 */ u8 field_0x5d0[0x8]; + /* 0x5D8 */ f32 field_0x5d8; + /* 0x5DC */ s16 field_0x5dc[4]; + /* 0x5E4 */ f32 field_0x5e4; + /* 0x5E8 */ f32 field_0x5e8; + /* 0x5EC */ s16 field_0x5ec; + /* 0x5EE */ s16 field_0x5ee; + /* 0x5F0 */ s16 field_0x5f0; + /* 0x5F2 */ s16 field_0x5f2[3]; + /* 0x5F8 */ f32 field_0x5f8; + /* 0x5FC */ f32 field_0x5fc; + /* 0x600 */ u8 field_0x600; +}; + +class daNPC_TR_HIO_c { +public: + /* 80B25A0C */ daNPC_TR_HIO_c(); + /* 80B264E4 */ virtual ~daNPC_TR_HIO_c(); + + /* 0x04 */ s8 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xc; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; +}; #endif /* D_A_NPC_TR_H */ diff --git a/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.cpp b/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.cpp index 798e538b730..4ba988d18cd 100644 --- a/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.cpp +++ b/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.cpp @@ -1,171 +1,18 @@ // -// Generated By: dol2asm -// Translation Unit: d_a_npc_tr +// d_a_npc_tr.cpp +// NPC - Trout // #include "rel/d/a/npc/d_a_npc_tr/d_a_npc_tr.h" -#include "dol2asm.h" +#include "SSystem/SComponent/c_math.h" #include "d/com/d_com_inf_game.h" #include "m_Do/m_Do_mtx.h" -// -// Types: -// - -class npc_tr_class : public fopAc_ac_c { -public: - /* 0x568 */ u8 field_0x568[0x5AC - 0x568]; - /* 0x5AC */ request_of_phase_process_class mPhaseReq; - /* 0x5B4 */ u8 field_0x5b4; - /* 0x5B8 */ J3DModel* field_0x5b8; - /* 0x5BC */ s16 field_0x5bc; - /* 0x5BE */ s16 field_0x5be; - /* 0x5C0 */ s16 field_0x5c0; - /* 0x5C4 */ cXyz field_0x5c4; - /* 0x5D0 */ u8 field_0x5d0[0x8]; - /* 0x5D8 */ f32 field_0x5d8; - /* 0x5DC */ s16 field_0x5dc[4]; - /* 0x5E4 */ f32 field_0x5e4; - /* 0x5E8 */ f32 field_0x5e8; - /* 0x5EC */ s16 field_0x5ec; - /* 0x5EE */ s16 field_0x5ee; - /* 0x5F0 */ s16 field_0x5f0; - /* 0x5F2 */ s16 field_0x5f2[3]; - /* 0x5F8 */ f32 field_0x5f8; - /* 0x5FC */ f32 field_0x5fc; - /* 0x600 */ u8 field_0x600; -}; - -class daNPC_TR_HIO_c { -public: - /* 80B25A0C */ daNPC_TR_HIO_c(); - /* 80B264E4 */ virtual ~daNPC_TR_HIO_c(); - - /* 0x04 */ s8 field_0x4; - /* 0x08 */ f32 field_0x8; - /* 0x0C */ f32 field_0xc; - /* 0x10 */ f32 field_0x10; - /* 0x14 */ f32 field_0x14; - /* 0x18 */ f32 field_0x18; -}; - -// -// Forward References: -// - -extern "C" void __ct__14daNPC_TR_HIO_cFv(); -extern "C" static void nodeCallBack__FP8J3DJointi(); -extern "C" static void daNPC_TR_Draw__FP12npc_tr_class(); -extern "C" static void npc_tr_move__FP12npc_tr_class(); -extern "C" static void action__FP12npc_tr_class(); -extern "C" static void daNPC_TR_Execute__FP12npc_tr_class(); -extern "C" static bool daNPC_TR_IsDelete__FP12npc_tr_class(); -extern "C" static void daNPC_TR_Delete__FP12npc_tr_class(); -extern "C" static void useHeapInit__FP10fopAc_ac_c(); -extern "C" static void daNPC_TR_Create__FP10fopAc_ac_c(); -extern "C" void __dt__14daNPC_TR_HIO_cFv(); -extern "C" void __sinit_d_a_npc_tr_cpp(); -extern "C" extern char const* const d_a_npc_tr__stringBase0; - -// -// External References: -// - -extern "C" void mDoMtx_XrotM__FPA4_fs(); -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void scaleM__14mDoMtx_stack_cFfff(); -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 fopAcM_searchActorDistance__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rndF__Ff(); -extern "C" void cM_rndFX__Ff(); -extern "C" void cLib_addCalc2__FPffff(); -extern "C" void cLib_addCalcAngleS2__FPssss(); -extern "C" void MtxPosition__FP4cXyzP4cXyz(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" void __register_global_object(); - // // Declarations: // -/* ############################################################################################## */ -/* 80B2657C-80B26580 000000 0004+00 4/4 0/0 0/0 .rodata @3768 */ -SECTION_RODATA static f32 const lit_3768 = 4.0f / 5.0f; -COMPILER_STRIP_GATE(0x80B2657C, &lit_3768); - -/* 80B26580-80B26584 000004 0004+00 0/1 0/0 0/0 .rodata @3769 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3769 = 15.0f; -COMPILER_STRIP_GATE(0x80B26580, &lit_3769); -#pragma pop - -/* 80B26584-80B26588 000008 0004+00 1/2 0/0 0/0 .rodata @3770 */ -SECTION_RODATA static f32 const lit_3770 = 3.0f / 10.0f; -COMPILER_STRIP_GATE(0x80B26584, &lit_3770); - -/* 80B26588-80B2658C 00000C 0004+00 0/1 0/0 0/0 .rodata @3771 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3771 = 3.0f / 5.0f; -COMPILER_STRIP_GATE(0x80B26588, &lit_3771); -#pragma pop - -/* 80B2658C-80B26590 000010 0004+00 0/1 0/0 0/0 .rodata @3772 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3772 = 250.0f; -COMPILER_STRIP_GATE(0x80B2658C, &lit_3772); -#pragma pop - -/* 80B26610-80B26630 -00001 0020+00 1/0 0/0 0/0 .data l_daNPC_TR_Method */ -SECTION_DATA static void* l_daNPC_TR_Method[8] = { - (void*)daNPC_TR_Create__FP10fopAc_ac_c, - (void*)daNPC_TR_Delete__FP12npc_tr_class, - (void*)daNPC_TR_Execute__FP12npc_tr_class, - (void*)daNPC_TR_IsDelete__FP12npc_tr_class, - (void*)daNPC_TR_Draw__FP12npc_tr_class, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; - -/* 80B26630-80B26660 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_TR */ -SECTION_DATA extern void* g_profile_NPC_TR[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x010E0000, (void*)&g_fpcLf_Method, - (void*)0x00000604, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02D30000, (void*)&l_daNPC_TR_Method, - (void*)0x00040100, (void*)0x02000000, -}; - -/* 80B26660-80B2666C 000050 000C+00 2/2 0/0 0/0 .data __vt__14daNPC_TR_HIO_c */ -SECTION_DATA extern void* __vt__14daNPC_TR_HIO_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14daNPC_TR_HIO_cFv, -}; - /* 80B25A0C-80B25A54 0000EC 0048+00 1/1 0/0 0/0 .text __ct__14daNPC_TR_HIO_cFv */ -// matches with literals -#ifdef NONMATCHING daNPC_TR_HIO_c::daNPC_TR_HIO_c() { field_0x4 = -1; field_0x8 = 0.8f; @@ -174,27 +21,15 @@ daNPC_TR_HIO_c::daNPC_TR_HIO_c() { field_0x14 = 0.6f; field_0x18 = 250.0f; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daNPC_TR_HIO_c::daNPC_TR_HIO_c() { - nofralloc -#include "asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/__ct__14daNPC_TR_HIO_cFv.s" -} -#pragma pop -#endif /* 80B25A54-80B25B78 000134 0124+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */ -// regalloc -#ifdef NONMATCHING static int nodeCallBack(J3DJoint* p_joint, int param_1) { if (param_1 == 0) { int jointNo = p_joint->getJntNo(); - J3DModel* sysModel = j3dSys.mModel; - npc_tr_class* npc_tr = (npc_tr_class*)sysModel->mUserArea; + J3DModel* sysModel = j3dSys.getModel(); + npc_tr_class* npc_tr = (npc_tr_class*)sysModel->getUserArea(); - MTXCopy(sysModel->getAnmMtx(jointNo), *calc_mtx); + mDoMtx_copy(sysModel->getAnmMtx(jointNo), *calc_mtx); if (jointNo == 1) { mDoMtx_YrotM(*calc_mtx, npc_tr->field_0x5f2[0] + (s16)(npc_tr->field_0x5f8 * 0.3f)); @@ -202,21 +37,11 @@ static int nodeCallBack(J3DJoint* p_joint, int param_1) { mDoMtx_YrotM(*calc_mtx, npc_tr->field_0x5f2[jointNo - 1] + (s16)(npc_tr->field_0x5f8)); } sysModel->setAnmMtx(jointNo, *calc_mtx); - MTXCopy(*calc_mtx, j3dSys.mCurrentMtx); + mDoMtx_copy(*calc_mtx, j3dSys.mCurrentMtx); } return 1; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int nodeCallBack(J3DJoint* param_0, int param_1) { - nofralloc -#include "asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/nodeCallBack__FP8J3DJointi.s" -} -#pragma pop -#endif /* 80B25B78-80B25BDC 000258 0064+00 1/0 0/0 0/0 .text daNPC_TR_Draw__FP12npc_tr_class */ static int daNPC_TR_Draw(npc_tr_class* npc_tr) { @@ -226,159 +51,24 @@ static int daNPC_TR_Draw(npc_tr_class* npc_tr) { return 1; } -/* ############################################################################################## */ -/* 80B26590-80B26594 000014 0004+00 0/0 0/0 0/0 .rodata @3849 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3849 = 50.0f; -COMPILER_STRIP_GATE(0x80B26590, &lit_3849); -#pragma pop - -/* 80B26594-80B26598 000018 0004+00 0/2 0/0 0/0 .rodata @3850 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3850[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B26594, &lit_3850); -#pragma pop - -/* 80B26598-80B2659C 00001C 0004+00 0/1 0/0 0/0 .rodata @3931 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3931 = 1000.0f; -COMPILER_STRIP_GATE(0x80B26598, &lit_3931); -#pragma pop - -/* 80B2659C-80B265A4 000020 0004+04 0/2 0/0 0/0 .rodata @3932 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3932[1 + 1 /* padding */] = { - 200.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80B2659C, &lit_3932); -#pragma pop - -/* 80B265A4-80B265AC 000028 0008+00 0/1 0/0 0/0 .rodata @3933 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3933[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B265A4, &lit_3933); -#pragma pop - -/* 80B265AC-80B265B4 000030 0008+00 0/1 0/0 0/0 .rodata @3934 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3934[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B265AC, &lit_3934); -#pragma pop - -/* 80B265B4-80B265BC 000038 0008+00 0/1 0/0 0/0 .rodata @3935 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3935[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B265B4, &lit_3935); -#pragma pop - -/* 80B265BC-80B265C0 000040 0004+00 0/1 0/0 0/0 .rodata @3936 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3936 = 500.0f; -COMPILER_STRIP_GATE(0x80B265BC, &lit_3936); -#pragma pop - -/* 80B265C0-80B265C4 000044 0004+00 0/1 0/0 0/0 .rodata @3937 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3937 = 30.0f; -COMPILER_STRIP_GATE(0x80B265C0, &lit_3937); -#pragma pop - -/* 80B265C4-80B265C8 000048 0004+00 1/2 0/0 0/0 .rodata @3938 */ -SECTION_RODATA static f32 const lit_3938 = 1.0f / 10.0f; -COMPILER_STRIP_GATE(0x80B265C4, &lit_3938); - -/* 80B265C8-80B265CC 00004C 0004+00 0/1 0/0 0/0 .rodata @3939 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3939 = 1.0f / 20.0f; -COMPILER_STRIP_GATE(0x80B265C8, &lit_3939); -#pragma pop - -/* 80B265CC-80B265D0 000050 0004+00 0/2 0/0 0/0 .rodata @3940 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3940 = 0.5f; -COMPILER_STRIP_GATE(0x80B265CC, &lit_3940); -#pragma pop - -/* 80B265D0-80B265D4 000054 0004+00 0/1 0/0 0/0 .rodata @3941 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3941 = 20.0f; -COMPILER_STRIP_GATE(0x80B265D0, &lit_3941); -#pragma pop - -/* 80B265D4-80B265D8 000058 0004+00 0/1 0/0 0/0 .rodata @3942 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3942 = 5.0f; -COMPILER_STRIP_GATE(0x80B265D4, &lit_3942); -#pragma pop - -/* 80B265D8-80B265DC 00005C 0004+00 0/1 0/0 0/0 .rodata @3943 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3943 = 4000.0f; -COMPILER_STRIP_GATE(0x80B265D8, &lit_3943); -#pragma pop - -/* 80B265DC-80B265E0 000060 0004+00 0/1 0/0 0/0 .rodata @3944 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3944 = -4000.0f; -COMPILER_STRIP_GATE(0x80B265DC, &lit_3944); -#pragma pop - -/* 80B265E0-80B265E4 000064 0004+00 0/2 0/0 0/0 .rodata @3945 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3945 = 1.0f; -COMPILER_STRIP_GATE(0x80B265E0, &lit_3945); -#pragma pop - -/* 80B265E4-80B265EC 000068 0008+00 0/1 0/0 0/0 .rodata @3947 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3947[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B265E4, &lit_3947); -#pragma pop +// placeholder for daNPC_TR_HIO_c::genMessage to generate literals in the right place +static f32 dummyLiterals() { + f32 dummy = 50.0f; + dummy *= 0.0f; + dummy *= 1000.0f; + dummy *= 200.0f; + return dummy; +} /* 80B26678-80B2667C 000008 0004+00 2/2 0/0 0/0 .bss None */ static u8 data_80B26678; -/* 80B2667C-80B26688 00000C 000C+00 1/1 0/0 0/0 .bss @3763 */ -//static u8 lit_3763[12]; - /* 80B26688-80B266A4 000018 001C+00 5/5 0/0 0/0 .bss l_HIO */ static daNPC_TR_HIO_c l_HIO; /* 80B25BDC-80B25FE0 0002BC 0404+00 1/1 0/0 0/0 .text npc_tr_move__FP12npc_tr_class */ -#ifdef NONMATCHING static void npc_tr_move(npc_tr_class* npc_tr) { + cXyz distance; f32 var_f31; s16 var_r29; @@ -390,7 +80,7 @@ static void npc_tr_move(npc_tr_class* npc_tr) { npc_tr->field_0x5c4.y = npc_tr->home.pos.y + cM_rndFX(200.0f); npc_tr->field_0x5c4.z = npc_tr->home.pos.z + cM_rndFX(1000.0f); - cXyz distance = npc_tr->field_0x5c4 - npc_tr->current.pos; + distance = npc_tr->field_0x5c4 - npc_tr->current.pos; distance.y = 0.0f; if (distance.abs() > 500.0f) { @@ -421,20 +111,21 @@ static void npc_tr_move(npc_tr_class* npc_tr) { var_r29 = 0x600; } else if (npc_tr->field_0x5d8 < l_HIO.field_0x18) { npc_tr->field_0x5dc[1] = (s16)(cM_rndF(20.0f) + 20.0f); - + if (npc_tr->field_0x5c0 == 1) { npc_tr->field_0x5c0 = 0; } } - cXyz distance = npc_tr->field_0x5c4 - npc_tr->current.pos; + distance = npc_tr->field_0x5c4 - npc_tr->current.pos; s16 angle = npc_tr->current.angle.y; cLib_addCalcAngleS2(&npc_tr->current.angle.y, cM_atan2s(distance.x, distance.z), 4, var_r29); - + f32 var_f2 = JMAFastSqrt((distance.x * distance.x) + (distance.z * distance.z)); cLib_addCalcAngleS2(&npc_tr->current.angle.x, -cM_atan2s(distance.y, var_f2), 4, var_r29); - f32 var_f1_2 = (f32)(angle - npc_tr->current.angle.y) * 5.0f; + angle -= npc_tr->current.angle.y; + f32 var_f1_2 = angle * 5.0f; if (var_f1_2 > 4000.0f) { var_f1_2 = 4000.0f; } else if (var_f1_2 < -4000.0f) { @@ -444,64 +135,43 @@ static void npc_tr_move(npc_tr_class* npc_tr) { cLib_addCalc2(&npc_tr->field_0x5f8, var_f1_2, 0.5f, 1000.0f); cLib_addCalc2(&npc_tr->speedF, npc_tr->field_0x5e4 * l_HIO.field_0xc, 1.0f, var_f31); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void npc_tr_move(npc_tr_class* param_0) { - nofralloc -#include "asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/npc_tr_move__FP12npc_tr_class.s" -} -#pragma pop -#endif - -/* ############################################################################################## */ -/* 80B265EC-80B265F8 000070 000C+00 0/1 0/0 0/0 .rodata @3953 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3953[12] = { - 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B265EC, &lit_3953); -#pragma pop - -/* 80B265F8-80B265FC 00007C 0004+00 0/1 0/0 0/0 .rodata @3983 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3983 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x80B265F8, &lit_3983); -#pragma pop - -/* 80B265FC-80B26600 000080 0004+00 0/1 0/0 0/0 .rodata @3984 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3984 = 2000.0f; -COMPILER_STRIP_GATE(0x80B265FC, &lit_3984); -#pragma pop - -/* 80B26600-80B26604 000084 0004+00 0/1 0/0 0/0 .rodata @3985 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3985 = 13000.0f; -COMPILER_STRIP_GATE(0x80B26600, &lit_3985); -#pragma pop - -/* 80B26604-80B26608 000088 0004+00 0/1 0/0 0/0 .rodata @3986 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3986 = -3.0f / 10.0f; -COMPILER_STRIP_GATE(0x80B26604, &lit_3986); -#pragma pop /* 80B25FE0-80B261D8 0006C0 01F8+00 1/1 0/0 0/0 .text action__FP12npc_tr_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void action(npc_tr_class* param_0) { - nofralloc -#include "asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/action__FP12npc_tr_class.s" +static void action(npc_tr_class* i_this) { + switch (i_this->field_0x5be) { + case 0: + npc_tr_move(i_this); + break; + } + + cLib_addCalcAngleS2(&i_this->shape_angle.y, i_this->current.angle.GetY(), 4, 0x2000); + cLib_addCalcAngleS2(&i_this->shape_angle.x, i_this->current.angle.GetX(), 4, 0x2000); + + mDoMtx_YrotS(*calc_mtx, i_this->current.angle.GetY()); + mDoMtx_XrotM(*calc_mtx, i_this->current.angle.GetX()); + + cXyz v; + v.x = 0.0f; + v.y = 0.0f; + v.z = i_this->speedF * l_HIO.field_0x8; + MtxPosition(&v, &i_this->speed); + + i_this->current.pos += i_this->speed; + + cLib_addCalc2(&i_this->field_0x5e4, i_this->field_0x5e8, 1.0f, 0.2f); + cLib_addCalc2(&i_this->field_0x5fc, i_this->field_0x5e4 * 2000.0f + 2000.0f, 0.5f, 200.0f); + + i_this->field_0x5ee = i_this->field_0x5e4 * 13000.0f + 2000.0f; + i_this->field_0x5ec += i_this->field_0x5ee; + + f32 local_28[3] = {0.5f, 1.0f, 2.5f}; + for (int i = 0; i < 3; ++i) { + i_this->field_0x5f2[i] = + local_28[i] * (i_this->field_0x5fc * cM_ssin(i_this->field_0x5ec + (i * -15000))); + } + + i_this->field_0x5f0 = cM_ssin(i_this->field_0x5ec + -7000) * i_this->field_0x5fc * -0.3f; } -#pragma pop /* 80B261D8-80B262D0 0008B8 00F8+00 2/1 0/0 0/0 .text daNPC_TR_Execute__FP12npc_tr_class */ @@ -566,12 +236,10 @@ static int useHeapInit(fopAc_ac_c* actor) { } /* 80B263E4-80B264E4 000AC4 0100+00 1/0 0/0 0/0 .text daNPC_TR_Create__FP10fopAc_ac_c */ -// matches with literals -#ifdef NONMATCHING static int daNPC_TR_Create(fopAc_ac_c* i_this) { fopAcM_SetupActor(i_this, npc_tr_class); npc_tr_class* npc_tr = (npc_tr_class*)i_this; - + int phase_state = dComIfG_resLoad(&npc_tr->mPhaseReq, "NPC_TR"); if (phase_state == cPhs_COMPLEATE_e) { npc_tr->field_0x5b4 = fopAcM_GetParam(npc_tr); @@ -593,16 +261,31 @@ static int daNPC_TR_Create(fopAc_ac_c* i_this) { return phase_state; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm int daNPC_TR_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/npc/d_a_npc_tr/d_a_npc_tr/daNPC_TR_Create__FP10fopAc_ac_c.s" -} -#pragma pop -#endif /* 80B264E4-80B2652C 000BC4 0048+00 2/1 0/0 0/0 .text __dt__14daNPC_TR_HIO_cFv */ daNPC_TR_HIO_c::~daNPC_TR_HIO_c() {} + +/* 80B26610-80B26630 -00001 0020+00 1/0 0/0 0/0 .data l_daNPC_TR_Method */ +static actor_method_class l_daNPC_TR_Method = { + (process_method_func)daNPC_TR_Create, (process_method_func)daNPC_TR_Delete, + (process_method_func)daNPC_TR_Execute, (process_method_func)daNPC_TR_IsDelete, + (process_method_func)daNPC_TR_Draw, +}; + +/* 80B26630-80B26660 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_TR */ +extern actor_process_profile_definition g_profile_NPC_TR = { + fpcLy_CURRENT_e, // mLayerID + 7, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_NPC_TR, // mProcName + &g_fpcLf_Method.mBase, // sub_method + sizeof(npc_tr_class), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 723, // mPriority + &l_daNPC_TR_Method, // sub_method + 0x40100, // mStatus + fopAc_ENEMY_e, // mActorType + fopAc_CULLBOX_0_e, // cullType +}; \ No newline at end of file