d_a_npc_tr (#2131)

* Fixed some issues, mostly done besides some data problems in action

* Decomp OK

* Cleanup pass

* Updating progress

---------

Co-authored-by: GinNoOokami <noreply>
This commit is contained in:
Jeff Padgham 2024-04-14 04:01:42 -07:00 committed by GitHub
parent 5ec6df0d24
commit 5ffd54f286
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 125 additions and 979 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 */

View File

@ -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
};