diff --git a/README.md b/README.md index 96dfa63e6c..6d753df2cd 100644 --- a/README.md +++ b/README.md @@ -19,13 +19,13 @@ Project Setup 1. Clone down project ```bash -$ git clone https://github.com/zeldaret/tp +git clone https://github.com/zeldaret/tp ``` 2. Setup compiler directory ```bash -$ mkdir -p tools/mwcc_compiler/ +mkdir -p tools/mwcc_compiler/ ``` 3. Download `GC_COMPILERS.zip` from the [Discord](https://discord.gg/Nshw5pHS4h) server. See the pins in the `#tp-decomp` channel under the Twilight Princess group. @@ -33,7 +33,7 @@ $ mkdir -p tools/mwcc_compiler/ 4. Extract `GC_COMPILERS.zip` into the previously created `mwcc_compiler` directory ```bash -$ unzip GC_COMPILERS.zip -d tools/mwcc_compiler/ +unzip GC_COMPILERS.zip -d tools/mwcc_compiler/ ``` 5. Place a copy of NTSC-U GCN Twilight Princess in the root directory and call it `gz2e01.iso` (find this on your own) @@ -41,7 +41,7 @@ $ unzip GC_COMPILERS.zip -d tools/mwcc_compiler/ 6. Setup the project ```bash -$ ./tp setup +./tp setup ``` Building The Game @@ -50,7 +50,7 @@ Building The Game 1. To build a playable game, complete the [Project Setup](#project-setup) steps, then run ```bash -$ make game +make game ``` The completed build is under `build/dolzel2/game/sys/main.dol` @@ -58,7 +58,7 @@ The completed build is under `build/dolzel2/game/sys/main.dol` Build DOL ```bash -$ make +make ``` (Note that any time you run make you can add the -j# argument where # is the amount of threads your system has in order to greatly speed up build times) @@ -66,7 +66,7 @@ $ make Build RELs ```bash -$ make rels +make rels ``` The completed RELs will be under `build/dolzel2/rel` @@ -74,7 +74,7 @@ The completed RELs will be under `build/dolzel2/rel` Extract Game Assets ```bash -$ make assets +make assets ``` Create Expected Directory @@ -83,7 +83,7 @@ Create Expected Directory 2. Run: ```bash -$ ./tp expected +./tp expected ``` @@ -93,25 +93,25 @@ Clean Directories Clean RELs ```bash -$ make clean_rels +make clean_rels ``` Clean Game Directory ```bash -$ make clean_game +make clean_game ``` Clean Build Directory ```bash -$ make clean_all +make clean_all ``` Clean Dol ```bash -$ make clean +make clean ``` diff --git a/asm/d/a/d_a_npc/CheckCreateHeap__FP10fopAc_ac_c.s b/asm/d/a/d_a_npc/CheckCreateHeap__FP10fopAc_ac_c.s deleted file mode 100644 index 379cc511f3..0000000000 --- a/asm/d/a/d_a_npc/CheckCreateHeap__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8014F4F8: -/* 8014F4F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014F4FC 7C 08 02 A6 */ mflr r0 -/* 8014F500 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014F504 48 00 00 15 */ bl MoveBGCreateHeap__23daBaseNpc_moveBgActor_cFv -/* 8014F508 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014F50C 7C 08 03 A6 */ mtlr r0 -/* 8014F510 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014F514 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/__ct__23daBaseNpc_moveBgActor_cFv.s b/asm/d/a/d_a_npc/__ct__23daBaseNpc_moveBgActor_cFv.s deleted file mode 100644 index 4711dd2e1f..0000000000 --- a/asm/d/a/d_a_npc/__ct__23daBaseNpc_moveBgActor_cFv.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_8014F4B4: -/* 8014F4B4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014F4B8 7C 08 02 A6 */ mflr r0 -/* 8014F4BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014F4C0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8014F4C4 7C 7F 1B 78 */ mr r31, r3 -/* 8014F4C8 4B FF F2 01 */ bl __ct__11daBaseNpc_cFv -/* 8014F4CC 3C 60 80 3B */ lis r3, __vt__23daBaseNpc_moveBgActor_c@ha /* 0x803B3948@ha */ -/* 8014F4D0 38 03 39 48 */ addi r0, r3, __vt__23daBaseNpc_moveBgActor_c@l /* 0x803B3948@l */ -/* 8014F4D4 90 1F 05 68 */ stw r0, 0x568(r31) -/* 8014F4D8 38 00 00 00 */ li r0, 0 -/* 8014F4DC 90 1F 0A 14 */ stw r0, 0xa14(r31) -/* 8014F4E0 7F E3 FB 78 */ mr r3, r31 -/* 8014F4E4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8014F4E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014F4EC 7C 08 03 A6 */ mtlr r0 -/* 8014F4F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014F4F4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/attnSttsOn__11daBaseNpc_cFii.s b/asm/d/a/d_a_npc/attnSttsOn__11daBaseNpc_cFii.s deleted file mode 100644 index cfbb599229..0000000000 --- a/asm/d/a/d_a_npc/attnSttsOn__11daBaseNpc_cFii.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_8014EFA4: -/* 8014EFA4 3C C0 80 40 */ lis r6, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014EFA8 38 C6 61 C0 */ addi r6, r6, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014EFAC 80 C6 5D B4 */ lwz r6, 0x5db4(r6) -/* 8014EFB0 80 06 05 74 */ lwz r0, 0x574(r6) -/* 8014EFB4 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 8014EFB8 41 82 00 1C */ beq lbl_8014EFD4 -/* 8014EFBC 2C 05 00 00 */ cmpwi r5, 0 -/* 8014EFC0 41 82 00 0C */ beq lbl_8014EFCC -/* 8014EFC4 38 00 00 0A */ li r0, 0xa -/* 8014EFC8 48 00 00 20 */ b lbl_8014EFE8 -lbl_8014EFCC: -/* 8014EFCC 38 00 00 01 */ li r0, 1 -/* 8014EFD0 48 00 00 18 */ b lbl_8014EFE8 -lbl_8014EFD4: -/* 8014EFD4 2C 04 00 00 */ cmpwi r4, 0 -/* 8014EFD8 41 82 00 0C */ beq lbl_8014EFE4 -/* 8014EFDC 38 00 00 0A */ li r0, 0xa -/* 8014EFE0 48 00 00 08 */ b lbl_8014EFE8 -lbl_8014EFE4: -/* 8014EFE4 38 00 00 01 */ li r0, 1 -lbl_8014EFE8: -/* 8014EFE8 90 03 05 5C */ stw r0, 0x55c(r3) -/* 8014EFEC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/chkPassed__13daNpcF_Path_cF4cXyz.s b/asm/d/a/d_a_npc/chkPassed__13daNpcF_Path_cF4cXyz.s deleted file mode 100644 index d49a580f4f..0000000000 --- a/asm/d/a/d_a_npc/chkPassed__13daNpcF_Path_cF4cXyz.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_80150A24: -/* 80150A24 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80150A28 7C 08 02 A6 */ mflr r0 -/* 80150A2C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80150A30 7C 68 1B 78 */ mr r8, r3 -/* 80150A34 C0 04 00 00 */ lfs f0, 0(r4) -/* 80150A38 D0 01 00 08 */ stfs f0, 8(r1) -/* 80150A3C C0 04 00 04 */ lfs f0, 4(r4) -/* 80150A40 D0 01 00 0C */ stfs f0, 0xc(r1) -/* 80150A44 C0 04 00 08 */ lfs f0, 8(r4) -/* 80150A48 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 80150A4C 80 C3 00 04 */ lwz r6, 4(r3) -/* 80150A50 38 61 00 08 */ addi r3, r1, 8 -/* 80150A54 80 86 00 08 */ lwz r4, 8(r6) -/* 80150A58 A0 A8 00 00 */ lhz r5, 0(r8) -/* 80150A5C A0 C6 00 00 */ lhz r6, 0(r6) -/* 80150A60 88 E8 00 03 */ lbz r7, 3(r8) -/* 80150A64 89 08 00 02 */ lbz r8, 2(r8) -/* 80150A68 48 00 43 F5 */ bl daNpcF_chkPassed__F4cXyzP4dPntUsUsii -/* 80150A6C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80150A70 7C 08 03 A6 */ mtlr r0 -/* 80150A74 38 21 00 20 */ addi r1, r1, 0x20 -/* 80150A78 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/chkPointInArea__8daNpcF_cF4cXyz4cXyz4cXyzs.s b/asm/d/a/d_a_npc/chkPointInArea__8daNpcF_cF4cXyz4cXyz4cXyzs.s deleted file mode 100644 index a69cb010c6..0000000000 --- a/asm/d/a/d_a_npc/chkPointInArea__8daNpcF_cF4cXyz4cXyz4cXyzs.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_801548F4: -/* 801548F4 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 801548F8 7C 08 02 A6 */ mflr r0 -/* 801548FC 90 01 00 34 */ stw r0, 0x34(r1) -/* 80154900 C0 04 00 00 */ lfs f0, 0(r4) -/* 80154904 D0 01 00 20 */ stfs f0, 0x20(r1) -/* 80154908 C0 04 00 04 */ lfs f0, 4(r4) -/* 8015490C D0 01 00 24 */ stfs f0, 0x24(r1) -/* 80154910 C0 04 00 08 */ lfs f0, 8(r4) -/* 80154914 D0 01 00 28 */ stfs f0, 0x28(r1) -/* 80154918 C0 05 00 00 */ lfs f0, 0(r5) -/* 8015491C D0 01 00 14 */ stfs f0, 0x14(r1) -/* 80154920 C0 05 00 04 */ lfs f0, 4(r5) -/* 80154924 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 80154928 C0 05 00 08 */ lfs f0, 8(r5) -/* 8015492C D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 80154930 C0 06 00 00 */ lfs f0, 0(r6) -/* 80154934 D0 01 00 08 */ stfs f0, 8(r1) -/* 80154938 C0 06 00 04 */ lfs f0, 4(r6) -/* 8015493C D0 01 00 0C */ stfs f0, 0xc(r1) -/* 80154940 C0 06 00 08 */ lfs f0, 8(r6) -/* 80154944 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 80154948 38 61 00 20 */ addi r3, r1, 0x20 -/* 8015494C 38 81 00 14 */ addi r4, r1, 0x14 -/* 80154950 38 A1 00 08 */ addi r5, r1, 8 -/* 80154954 7C E6 3B 78 */ mr r6, r7 -/* 80154958 48 00 10 11 */ bl daNpcF_chkPointInArea__F4cXyz4cXyz4cXyzs -/* 8015495C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80154960 7C 08 03 A6 */ mtlr r0 -/* 80154964 38 21 00 30 */ addi r1, r1, 0x30 -/* 80154968 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/ctrlFaceMotion__8daNpcT_cFv.s b/asm/d/a/d_a_npc/ctrlFaceMotion__8daNpcT_cFv.s deleted file mode 100644 index 2b114c4d05..0000000000 --- a/asm/d/a/d_a_npc/ctrlFaceMotion__8daNpcT_cFv.s +++ /dev/null @@ -1,48 +0,0 @@ -lbl_8014924C: -/* 8014924C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80149250 7C 08 02 A6 */ mflr r0 -/* 80149254 90 01 00 24 */ stw r0, 0x24(r1) -/* 80149258 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8014925C 7C 7F 1B 78 */ mr r31, r3 -/* 80149260 38 7F 0B 50 */ addi r3, r31, 0xb50 -/* 80149264 A0 9F 0E 20 */ lhz r4, 0xe20(r31) -/* 80149268 38 A1 00 0C */ addi r5, r1, 0xc -/* 8014926C 38 C1 00 08 */ addi r6, r1, 8 -/* 80149270 4B FF C6 51 */ bl play__22daNpcT_MotionSeqMngr_cFUsPiPf -/* 80149274 2C 03 00 00 */ cmpwi r3, 0 -/* 80149278 41 82 00 74 */ beq lbl_801492EC -/* 8014927C 7F E3 FB 78 */ mr r3, r31 -/* 80149280 80 81 00 0C */ lwz r4, 0xc(r1) -/* 80149284 38 A0 00 01 */ li r5, 1 -/* 80149288 48 00 11 01 */ bl setFaceMotionAnm__8daNpcT_cFib -/* 8014928C C0 21 00 08 */ lfs f1, 8(r1) -/* 80149290 C0 02 99 D8 */ lfs f0, lit_4116(r2) -/* 80149294 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80149298 40 80 00 30 */ bge lbl_801492C8 -/* 8014929C 80 7F 05 78 */ lwz r3, 0x578(r31) -/* 801492A0 C0 3F 0A 80 */ lfs f1, 0xa80(r31) -/* 801492A4 4B EC 68 D9 */ bl setMorf__13mDoExt_morf_cFf -/* 801492A8 C0 1F 0A 80 */ lfs f0, 0xa80(r31) -/* 801492AC D0 1F 0D FC */ stfs f0, 0xdfc(r31) -/* 801492B0 80 7F 05 7C */ lwz r3, 0x57c(r31) -/* 801492B4 28 03 00 00 */ cmplwi r3, 0 -/* 801492B8 41 82 00 34 */ beq lbl_801492EC -/* 801492BC C0 3F 0A 80 */ lfs f1, 0xa80(r31) -/* 801492C0 4B EC 68 BD */ bl setMorf__13mDoExt_morf_cFf -/* 801492C4 48 00 00 28 */ b lbl_801492EC -lbl_801492C8: -/* 801492C8 80 7F 05 78 */ lwz r3, 0x578(r31) -/* 801492CC 4B EC 68 B1 */ bl setMorf__13mDoExt_morf_cFf -/* 801492D0 C0 01 00 08 */ lfs f0, 8(r1) -/* 801492D4 D0 1F 0D FC */ stfs f0, 0xdfc(r31) -/* 801492D8 80 7F 05 7C */ lwz r3, 0x57c(r31) -/* 801492DC 28 03 00 00 */ cmplwi r3, 0 -/* 801492E0 41 82 00 0C */ beq lbl_801492EC -/* 801492E4 C0 21 00 08 */ lfs f1, 8(r1) -/* 801492E8 4B EC 68 95 */ bl setMorf__13mDoExt_morf_cFf -lbl_801492EC: -/* 801492EC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 801492F0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801492F4 7C 08 03 A6 */ mtlr r0 -/* 801492F8 38 21 00 20 */ addi r1, r1, 0x20 -/* 801492FC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daBaseNpc_decIdx__FiPUsii.s b/asm/d/a/d_a_npc/daBaseNpc_decIdx__FiPUsii.s deleted file mode 100644 index 4feac3a000..0000000000 --- a/asm/d/a/d_a_npc/daBaseNpc_decIdx__FiPUsii.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_8014D620: -/* 8014D620 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014D624 7C 08 02 A6 */ mflr r0 -/* 8014D628 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014D62C 7C 68 1B 78 */ mr r8, r3 -/* 8014D630 7C 87 23 78 */ mr r7, r4 -/* 8014D634 7C A0 2B 78 */ mr r0, r5 -/* 8014D638 2C 06 00 00 */ cmpwi r6, 0 -/* 8014D63C 40 80 00 1C */ bge lbl_8014D658 -/* 8014D640 38 60 00 01 */ li r3, 1 -/* 8014D644 7D 04 43 78 */ mr r4, r8 -/* 8014D648 7C E5 3B 78 */ mr r5, r7 -/* 8014D64C 7C 06 03 78 */ mr r6, r0 -/* 8014D650 4B FF FE E9 */ bl daBaseNpc_addIdx__FiiPUsi -/* 8014D654 48 00 00 18 */ b lbl_8014D66C -lbl_8014D658: -/* 8014D658 38 60 00 01 */ li r3, 1 -/* 8014D65C 7D 04 43 78 */ mr r4, r8 -/* 8014D660 7C E5 3B 78 */ mr r5, r7 -/* 8014D664 7C 06 03 78 */ mr r6, r0 -/* 8014D668 4B FF FF 1D */ bl daBaseNpc_subIdx__FiiPUsi -lbl_8014D66C: -/* 8014D66C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014D670 7C 08 03 A6 */ mtlr r0 -/* 8014D674 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014D678 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daBaseNpc_incIdx__FiPUsii.s b/asm/d/a/d_a_npc/daBaseNpc_incIdx__FiPUsii.s deleted file mode 100644 index 0d5edf3164..0000000000 --- a/asm/d/a/d_a_npc/daBaseNpc_incIdx__FiPUsii.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_8014D5C4: -/* 8014D5C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014D5C8 7C 08 02 A6 */ mflr r0 -/* 8014D5CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014D5D0 7C 68 1B 78 */ mr r8, r3 -/* 8014D5D4 7C 87 23 78 */ mr r7, r4 -/* 8014D5D8 7C A0 2B 78 */ mr r0, r5 -/* 8014D5DC 2C 06 00 00 */ cmpwi r6, 0 -/* 8014D5E0 40 80 00 1C */ bge lbl_8014D5FC -/* 8014D5E4 38 60 00 01 */ li r3, 1 -/* 8014D5E8 7D 04 43 78 */ mr r4, r8 -/* 8014D5EC 7C E5 3B 78 */ mr r5, r7 -/* 8014D5F0 7C 06 03 78 */ mr r6, r0 -/* 8014D5F4 4B FF FF 91 */ bl daBaseNpc_subIdx__FiiPUsi -/* 8014D5F8 48 00 00 18 */ b lbl_8014D610 -lbl_8014D5FC: -/* 8014D5FC 38 60 00 01 */ li r3, 1 -/* 8014D600 7D 04 43 78 */ mr r4, r8 -/* 8014D604 7C E5 3B 78 */ mr r5, r7 -/* 8014D608 7C 06 03 78 */ mr r6, r0 -/* 8014D60C 4B FF FF 2D */ bl daBaseNpc_addIdx__FiiPUsi -lbl_8014D610: -/* 8014D610 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014D614 7C 08 03 A6 */ mtlr r0 -/* 8014D618 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014D61C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_addIdx__FiiRUsi.s b/asm/d/a/d_a_npc/daNpcF_addIdx__FiiRUsi.s deleted file mode 100644 index 48756ed948..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_addIdx__FiiRUsi.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8015056C: -/* 8015056C 38 E0 00 00 */ li r7, 0 -/* 80150570 A1 05 00 00 */ lhz r8, 0(r5) -/* 80150574 7D 08 1A 14 */ add r8, r8, r3 -/* 80150578 7C 04 40 00 */ cmpw r4, r8 -/* 8015057C 41 81 00 24 */ bgt lbl_801505A0 -/* 80150580 2C 06 00 00 */ cmpwi r6, 0 -/* 80150584 41 82 00 14 */ beq lbl_80150598 -/* 80150588 7C 08 23 D6 */ divw r0, r8, r4 -/* 8015058C 7C 00 21 D6 */ mullw r0, r0, r4 -/* 80150590 7D 00 40 50 */ subf r8, r0, r8 -/* 80150594 48 00 00 0C */ b lbl_801505A0 -lbl_80150598: -/* 80150598 39 04 FF FF */ addi r8, r4, -1 -/* 8015059C 38 E0 00 01 */ li r7, 1 -lbl_801505A0: -/* 801505A0 B1 05 00 00 */ sth r8, 0(r5) -/* 801505A4 7C E3 3B 78 */ mr r3, r7 -/* 801505A8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_chkDoBtnEqSpeak__FP10fopAc_ac_c.s b/asm/d/a/d_a_npc/daNpcF_chkDoBtnEqSpeak__FP10fopAc_ac_c.s deleted file mode 100644 index bfe8ac41c2..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_chkDoBtnEqSpeak__FP10fopAc_ac_c.s +++ /dev/null @@ -1,77 +0,0 @@ -lbl_80155854: -/* 80155854 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80155858 7C 08 02 A6 */ mflr r0 -/* 8015585C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80155860 39 61 00 20 */ addi r11, r1, 0x20 -/* 80155864 48 20 C9 75 */ bl _savegpr_28 -/* 80155868 7C 7C 1B 78 */ mr r28, r3 -/* 8015586C 3B C0 00 00 */ li r30, 0 -/* 80155870 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80155874 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80155878 80 63 5D AC */ lwz r3, 0x5dac(r3) -/* 8015587C 7F 84 E3 78 */ mr r4, r28 -/* 80155880 81 83 06 28 */ lwz r12, 0x628(r3) -/* 80155884 81 8C 01 D8 */ lwz r12, 0x1d8(r12) -/* 80155888 7D 89 03 A6 */ mtctr r12 -/* 8015588C 4E 80 04 21 */ bctrl -/* 80155890 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80155894 41 82 00 B8 */ beq lbl_8015594C -/* 80155898 3B A0 00 00 */ li r29, 0 -/* 8015589C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801558A0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801558A4 3B E3 56 B8 */ addi r31, r3, 0x56b8 -/* 801558A8 48 00 00 44 */ b lbl_801558EC -lbl_801558AC: -/* 801558AC 7F E3 FB 78 */ mr r3, r31 -/* 801558B0 7F A4 EB 78 */ mr r4, r29 -/* 801558B4 4B F1 DE 81 */ bl ActionTarget__12dAttention_cFl -/* 801558B8 7C 03 E0 40 */ cmplw r3, r28 -/* 801558BC 40 82 00 2C */ bne lbl_801558E8 -/* 801558C0 7F E3 FB 78 */ mr r3, r31 -/* 801558C4 4B F1 AF BD */ bl getActionBtnB__12dAttention_cFv -/* 801558C8 28 03 00 00 */ cmplwi r3, 0 -/* 801558CC 41 82 00 1C */ beq lbl_801558E8 -/* 801558D0 7F E3 FB 78 */ mr r3, r31 -/* 801558D4 4B F1 AF AD */ bl getActionBtnB__12dAttention_cFv -/* 801558D8 80 03 00 0C */ lwz r0, 0xc(r3) -/* 801558DC 28 00 00 03 */ cmplwi r0, 3 -/* 801558E0 40 82 00 08 */ bne lbl_801558E8 -/* 801558E4 3B C0 00 01 */ li r30, 1 -lbl_801558E8: -/* 801558E8 3B BD 00 01 */ addi r29, r29, 1 -lbl_801558EC: -/* 801558EC 80 1F 04 30 */ lwz r0, 0x430(r31) -/* 801558F0 7C 1D 00 00 */ cmpw r29, r0 -/* 801558F4 41 80 FF B8 */ blt lbl_801558AC -/* 801558F8 3B A0 00 00 */ li r29, 0 -/* 801558FC 48 00 00 44 */ b lbl_80155940 -lbl_80155900: -/* 80155900 7F E3 FB 78 */ mr r3, r31 -/* 80155904 7F A4 EB 78 */ mr r4, r29 -/* 80155908 4B F1 DC 35 */ bl LockonTarget__12dAttention_cFl -/* 8015590C 7C 03 E0 40 */ cmplw r3, r28 -/* 80155910 40 82 00 2C */ bne lbl_8015593C -/* 80155914 7F E3 FB 78 */ mr r3, r31 -/* 80155918 4B F1 AF 69 */ bl getActionBtnB__12dAttention_cFv -/* 8015591C 28 03 00 00 */ cmplwi r3, 0 -/* 80155920 41 82 00 1C */ beq lbl_8015593C -/* 80155924 7F E3 FB 78 */ mr r3, r31 -/* 80155928 4B F1 AF 59 */ bl getActionBtnB__12dAttention_cFv -/* 8015592C 80 03 00 0C */ lwz r0, 0xc(r3) -/* 80155930 28 00 00 01 */ cmplwi r0, 1 -/* 80155934 40 82 00 08 */ bne lbl_8015593C -/* 80155938 3B C0 00 01 */ li r30, 1 -lbl_8015593C: -/* 8015593C 3B BD 00 01 */ addi r29, r29, 1 -lbl_80155940: -/* 80155940 80 1F 03 D8 */ lwz r0, 0x3d8(r31) -/* 80155944 7C 1D 00 00 */ cmpw r29, r0 -/* 80155948 41 80 FF B8 */ blt lbl_80155900 -lbl_8015594C: -/* 8015594C 7F C3 F3 78 */ mr r3, r30 -/* 80155950 39 61 00 20 */ addi r11, r1, 0x20 -/* 80155954 48 20 C8 D1 */ bl _restgpr_28 -/* 80155958 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8015595C 7C 08 03 A6 */ mtlr r0 -/* 80155960 38 21 00 20 */ addi r1, r1, 0x20 -/* 80155964 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_chkEvtBit__FUl.s b/asm/d/a/d_a_npc/daNpcF_chkEvtBit__FUl.s deleted file mode 100644 index ac122900a2..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_chkEvtBit__FUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_80155634: -/* 80155634 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80155638 7C 08 02 A6 */ mflr r0 -/* 8015563C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80155640 7C 60 1B 78 */ mr r0, r3 -/* 80155644 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80155648 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015564C 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 80155650 54 00 08 3C */ slwi r0, r0, 1 -/* 80155654 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 80155658 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 8015565C 7C 84 02 2E */ lhzx r4, r4, r0 -/* 80155660 4B ED F3 5D */ bl isEventBit__11dSv_event_cCFUs -/* 80155664 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80155668 7C 08 03 A6 */ mtlr r0 -/* 8015566C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80155670 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_chkPointInArea__F4cXyz4cXyz4cXyzs.s b/asm/d/a/d_a_npc/daNpcF_chkPointInArea__F4cXyz4cXyz4cXyzs.s deleted file mode 100644 index bd5a02b901..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_chkPointInArea__F4cXyz4cXyz4cXyzs.s +++ /dev/null @@ -1,95 +0,0 @@ -lbl_80155968: -/* 80155968 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 8015596C 7C 08 02 A6 */ mflr r0 -/* 80155970 90 01 00 84 */ stw r0, 0x84(r1) -/* 80155974 DB E1 00 70 */ stfd f31, 0x70(r1) -/* 80155978 F3 E1 00 78 */ psq_st f31, 120(r1), 0, 0 /* qr0 */ -/* 8015597C DB C1 00 60 */ stfd f30, 0x60(r1) -/* 80155980 F3 C1 00 68 */ psq_st f30, 104(r1), 0, 0 /* qr0 */ -/* 80155984 DB A1 00 50 */ stfd f29, 0x50(r1) -/* 80155988 F3 A1 00 58 */ psq_st f29, 88(r1), 0, 0 /* qr0 */ -/* 8015598C DB 81 00 40 */ stfd f28, 0x40(r1) -/* 80155990 F3 81 00 48 */ psq_st f28, 72(r1), 0, 0 /* qr0 */ -/* 80155994 39 61 00 40 */ addi r11, r1, 0x40 -/* 80155998 48 20 C8 45 */ bl _savegpr_29 -/* 8015599C 7C 7D 1B 78 */ mr r29, r3 -/* 801559A0 7C 9E 23 78 */ mr r30, r4 -/* 801559A4 7C BF 2B 78 */ mr r31, r5 -/* 801559A8 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 801559AC 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 801559B0 7C 06 00 D0 */ neg r0, r6 -/* 801559B4 7C 04 07 34 */ extsh r4, r0 -/* 801559B8 4B EB 6A 25 */ bl mDoMtx_YrotS__FPA4_fs -/* 801559BC C0 1E 00 00 */ lfs f0, 0(r30) -/* 801559C0 FC 20 00 50 */ fneg f1, f0 -/* 801559C4 C0 1E 00 04 */ lfs f0, 4(r30) -/* 801559C8 FC 40 00 50 */ fneg f2, f0 -/* 801559CC C0 1E 00 08 */ lfs f0, 8(r30) -/* 801559D0 FC 60 00 50 */ fneg f3, f0 -/* 801559D4 4B EB 73 C9 */ bl transM__14mDoMtx_stack_cFfff -/* 801559D8 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 801559DC 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 801559E0 7F A4 EB 78 */ mr r4, r29 -/* 801559E4 38 A1 00 20 */ addi r5, r1, 0x20 -/* 801559E8 48 1F 13 85 */ bl PSMTXMultVec -/* 801559EC C0 1F 00 00 */ lfs f0, 0(r31) -/* 801559F0 FC 00 02 10 */ fabs f0, f0 -/* 801559F4 FF E0 00 18 */ frsp f31, f0 -/* 801559F8 C0 1F 00 08 */ lfs f0, 8(r31) -/* 801559FC FC 00 02 10 */ fabs f0, f0 -/* 80155A00 FF C0 00 18 */ frsp f30, f0 -/* 80155A04 C0 01 00 20 */ lfs f0, 0x20(r1) -/* 80155A08 FC 00 02 10 */ fabs f0, f0 -/* 80155A0C FF A0 00 18 */ frsp f29, f0 -/* 80155A10 C0 01 00 28 */ lfs f0, 0x28(r1) -/* 80155A14 FC 00 02 10 */ fabs f0, f0 -/* 80155A18 FF 80 00 18 */ frsp f28, f0 -/* 80155A1C 38 61 00 08 */ addi r3, r1, 8 -/* 80155A20 7F C4 F3 78 */ mr r4, r30 -/* 80155A24 7F A5 EB 78 */ mr r5, r29 -/* 80155A28 48 11 11 0D */ bl __mi__4cXyzCFRC3Vec -/* 80155A2C C0 01 00 08 */ lfs f0, 8(r1) -/* 80155A30 D0 01 00 14 */ stfs f0, 0x14(r1) -/* 80155A34 C0 21 00 0C */ lfs f1, 0xc(r1) -/* 80155A38 D0 21 00 18 */ stfs f1, 0x18(r1) -/* 80155A3C C0 01 00 10 */ lfs f0, 0x10(r1) -/* 80155A40 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 80155A44 C0 5F 00 04 */ lfs f2, 4(r31) -/* 80155A48 FC 00 10 50 */ fneg f0, f2 -/* 80155A4C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80155A50 4C 40 13 82 */ cror 2, 0, 2 -/* 80155A54 41 82 00 10 */ beq lbl_80155A64 -/* 80155A58 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 80155A5C 4C 40 13 82 */ cror 2, 0, 2 -/* 80155A60 40 82 00 0C */ bne lbl_80155A6C -lbl_80155A64: -/* 80155A64 38 60 00 00 */ li r3, 0 -/* 80155A68 48 00 00 34 */ b lbl_80155A9C -lbl_80155A6C: -/* 80155A6C EC 3D 07 72 */ fmuls f1, f29, f29 -/* 80155A70 EC 1F 07 F2 */ fmuls f0, f31, f31 -/* 80155A74 EC 41 00 24 */ fdivs f2, f1, f0 -/* 80155A78 EC 3C 07 32 */ fmuls f1, f28, f28 -/* 80155A7C EC 1E 07 B2 */ fmuls f0, f30, f30 -/* 80155A80 EC 01 00 24 */ fdivs f0, f1, f0 -/* 80155A84 EC 22 00 2A */ fadds f1, f2, f0 -/* 80155A88 C0 02 99 DC */ lfs f0, lit_4140(r2) -/* 80155A8C FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80155A90 4C 40 13 82 */ cror 2, 0, 2 -/* 80155A94 7C 00 00 26 */ mfcr r0 -/* 80155A98 54 03 1F FE */ rlwinm r3, r0, 3, 0x1f, 0x1f -lbl_80155A9C: -/* 80155A9C E3 E1 00 78 */ psq_l f31, 120(r1), 0, 0 /* qr0 */ -/* 80155AA0 CB E1 00 70 */ lfd f31, 0x70(r1) -/* 80155AA4 E3 C1 00 68 */ psq_l f30, 104(r1), 0, 0 /* qr0 */ -/* 80155AA8 CB C1 00 60 */ lfd f30, 0x60(r1) -/* 80155AAC E3 A1 00 58 */ psq_l f29, 88(r1), 0, 0 /* qr0 */ -/* 80155AB0 CB A1 00 50 */ lfd f29, 0x50(r1) -/* 80155AB4 E3 81 00 48 */ psq_l f28, 72(r1), 0, 0 /* qr0 */ -/* 80155AB8 CB 81 00 40 */ lfd f28, 0x40(r1) -/* 80155ABC 39 61 00 40 */ addi r11, r1, 0x40 -/* 80155AC0 48 20 C7 69 */ bl _restgpr_29 -/* 80155AC4 80 01 00 84 */ lwz r0, 0x84(r1) -/* 80155AC8 7C 08 03 A6 */ mtlr r0 -/* 80155ACC 38 21 00 80 */ addi r1, r1, 0x80 -/* 80155AD0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_chkTmpBit__FUl.s b/asm/d/a/d_a_npc/daNpcF_chkTmpBit__FUl.s deleted file mode 100644 index 4ec4872dae..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_chkTmpBit__FUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_801556B4: -/* 801556B4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801556B8 7C 08 02 A6 */ mflr r0 -/* 801556BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 801556C0 7C 60 1B 78 */ mr r0, r3 -/* 801556C4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801556C8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801556CC 38 63 0D D8 */ addi r3, r3, 0xdd8 -/* 801556D0 54 00 08 3C */ slwi r0, r0, 1 -/* 801556D4 3C 80 80 38 */ lis r4, tempBitLabels__20dSv_event_tmp_flag_c@ha /* 0x803790C0@ha */ -/* 801556D8 38 84 90 C0 */ addi r4, r4, tempBitLabels__20dSv_event_tmp_flag_c@l /* 0x803790C0@l */ -/* 801556DC 7C 84 02 2E */ lhzx r4, r4, r0 -/* 801556E0 4B ED F2 DD */ bl isEventBit__11dSv_event_cCFUs -/* 801556E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801556E8 7C 08 03 A6 */ mtlr r0 -/* 801556EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 801556F0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_clearMessageTmpBit__Fv.s b/asm/d/a/d_a_npc/daNpcF_clearMessageTmpBit__Fv.s deleted file mode 100644 index b73cca0baa..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_clearMessageTmpBit__Fv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_80155AE8: -/* 80155AE8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80155AEC 7C 08 02 A6 */ mflr r0 -/* 80155AF0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80155AF4 38 60 00 0B */ li r3, 0xb -/* 80155AF8 4B FF FC 3D */ bl daNpcF_offTmpBit__FUl -/* 80155AFC 38 60 00 0C */ li r3, 0xc -/* 80155B00 4B FF FC 35 */ bl daNpcF_offTmpBit__FUl -/* 80155B04 38 60 00 0D */ li r3, 0xd -/* 80155B08 4B FF FC 2D */ bl daNpcF_offTmpBit__FUl -/* 80155B0C 38 60 00 0E */ li r3, 0xe -/* 80155B10 4B FF FC 25 */ bl daNpcF_offTmpBit__FUl -/* 80155B14 38 60 00 0F */ li r3, 0xf -/* 80155B18 4B FF FC 1D */ bl daNpcF_offTmpBit__FUl -/* 80155B1C 38 60 00 33 */ li r3, 0x33 -/* 80155B20 4B FF FC 15 */ bl daNpcF_offTmpBit__FUl -/* 80155B24 38 60 00 34 */ li r3, 0x34 -/* 80155B28 4B FF FC 0D */ bl daNpcF_offTmpBit__FUl -/* 80155B2C 38 60 00 35 */ li r3, 0x35 -/* 80155B30 4B FF FC 05 */ bl daNpcF_offTmpBit__FUl -/* 80155B34 38 60 00 36 */ li r3, 0x36 -/* 80155B38 4B FF FB FD */ bl daNpcF_offTmpBit__FUl -/* 80155B3C 38 60 00 37 */ li r3, 0x37 -/* 80155B40 4B FF FB F5 */ bl daNpcF_offTmpBit__FUl -/* 80155B44 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80155B48 7C 08 03 A6 */ mtlr r0 -/* 80155B4C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80155B50 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_decIdx__FiRUsii.s b/asm/d/a/d_a_npc/daNpcF_decIdx__FiRUsii.s deleted file mode 100644 index 64aab097d1..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_decIdx__FiRUsii.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80150654: -/* 80150654 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80150658 7C 08 02 A6 */ mflr r0 -/* 8015065C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80150660 7C 68 1B 78 */ mr r8, r3 -/* 80150664 7C 87 23 78 */ mr r7, r4 -/* 80150668 7C A0 2B 78 */ mr r0, r5 -/* 8015066C 2C 06 00 00 */ cmpwi r6, 0 -/* 80150670 41 82 00 1C */ beq lbl_8015068C -/* 80150674 38 60 00 01 */ li r3, 1 -/* 80150678 7D 04 43 78 */ mr r4, r8 -/* 8015067C 7C E5 3B 78 */ mr r5, r7 -/* 80150680 7C 06 03 78 */ mr r6, r0 -/* 80150684 4B FF FE E9 */ bl daNpcF_addIdx__FiiRUsi -/* 80150688 48 00 00 18 */ b lbl_801506A0 -lbl_8015068C: -/* 8015068C 38 60 00 01 */ li r3, 1 -/* 80150690 7D 04 43 78 */ mr r4, r8 -/* 80150694 7C E5 3B 78 */ mr r5, r7 -/* 80150698 7C 06 03 78 */ mr r6, r0 -/* 8015069C 4B FF FF 11 */ bl daNpcF_subIdx__FiiRUsi -lbl_801506A0: -/* 801506A0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801506A4 7C 08 03 A6 */ mtlr r0 -/* 801506A8 38 21 00 10 */ addi r1, r1, 0x10 -/* 801506AC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_getDistTableIdx__Fii.s b/asm/d/a/d_a_npc/daNpcF_getDistTableIdx__Fii.s deleted file mode 100644 index 21d54fd324..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_getDistTableIdx__Fii.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_80155AD4: -/* 80155AD4 1C 84 00 14 */ mulli r4, r4, 0x14 -/* 80155AD8 38 04 00 5E */ addi r0, r4, 0x5e -/* 80155ADC 7C 03 02 14 */ add r0, r3, r0 -/* 80155AE0 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 80155AE4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_incIdx__FiRUsii.s b/asm/d/a/d_a_npc/daNpcF_incIdx__FiRUsii.s deleted file mode 100644 index 6baa3fa163..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_incIdx__FiRUsii.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_801505F8: -/* 801505F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801505FC 7C 08 02 A6 */ mflr r0 -/* 80150600 90 01 00 14 */ stw r0, 0x14(r1) -/* 80150604 7C 68 1B 78 */ mr r8, r3 -/* 80150608 7C 87 23 78 */ mr r7, r4 -/* 8015060C 7C A0 2B 78 */ mr r0, r5 -/* 80150610 2C 06 00 00 */ cmpwi r6, 0 -/* 80150614 41 82 00 1C */ beq lbl_80150630 -/* 80150618 38 60 00 01 */ li r3, 1 -/* 8015061C 7D 04 43 78 */ mr r4, r8 -/* 80150620 7C E5 3B 78 */ mr r5, r7 -/* 80150624 7C 06 03 78 */ mr r6, r0 -/* 80150628 4B FF FF 85 */ bl daNpcF_subIdx__FiiRUsi -/* 8015062C 48 00 00 18 */ b lbl_80150644 -lbl_80150630: -/* 80150630 38 60 00 01 */ li r3, 1 -/* 80150634 7D 04 43 78 */ mr r4, r8 -/* 80150638 7C E5 3B 78 */ mr r5, r7 -/* 8015063C 7C 06 03 78 */ mr r6, r0 -/* 80150640 4B FF FF 2D */ bl daNpcF_addIdx__FiiRUsi -lbl_80150644: -/* 80150644 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80150648 7C 08 03 A6 */ mtlr r0 -/* 8015064C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80150650 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_offTmpBit__FUl.s b/asm/d/a/d_a_npc/daNpcF_offTmpBit__FUl.s deleted file mode 100644 index ac06ebcc88..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_offTmpBit__FUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_80155734: -/* 80155734 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80155738 7C 08 02 A6 */ mflr r0 -/* 8015573C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80155740 7C 60 1B 78 */ mr r0, r3 -/* 80155744 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80155748 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015574C 38 63 0D D8 */ addi r3, r3, 0xdd8 -/* 80155750 54 00 08 3C */ slwi r0, r0, 1 -/* 80155754 3C 80 80 38 */ lis r4, tempBitLabels__20dSv_event_tmp_flag_c@ha /* 0x803790C0@ha */ -/* 80155758 38 84 90 C0 */ addi r4, r4, tempBitLabels__20dSv_event_tmp_flag_c@l /* 0x803790C0@l */ -/* 8015575C 7C 84 02 2E */ lhzx r4, r4, r0 -/* 80155760 4B ED F2 45 */ bl offEventBit__11dSv_event_cFUs -/* 80155764 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80155768 7C 08 03 A6 */ mtlr r0 -/* 8015576C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80155770 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_onEvtBit__FUl.s b/asm/d/a/d_a_npc/daNpcF_onEvtBit__FUl.s deleted file mode 100644 index 88a50e36ba..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_onEvtBit__FUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_80155674: -/* 80155674 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80155678 7C 08 02 A6 */ mflr r0 -/* 8015567C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80155680 7C 60 1B 78 */ mr r0, r3 -/* 80155684 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80155688 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015568C 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 80155690 54 00 08 3C */ slwi r0, r0, 1 -/* 80155694 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 80155698 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 8015569C 7C 84 02 2E */ lhzx r4, r4, r0 -/* 801556A0 4B ED F2 ED */ bl onEventBit__11dSv_event_cFUs -/* 801556A4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 801556A8 7C 08 03 A6 */ mtlr r0 -/* 801556AC 38 21 00 10 */ addi r1, r1, 0x10 -/* 801556B0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_onTmpBit__FUl.s b/asm/d/a/d_a_npc/daNpcF_onTmpBit__FUl.s deleted file mode 100644 index 286afc42ce..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_onTmpBit__FUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_801556F4: -/* 801556F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801556F8 7C 08 02 A6 */ mflr r0 -/* 801556FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80155700 7C 60 1B 78 */ mr r0, r3 -/* 80155704 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80155708 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015570C 38 63 0D D8 */ addi r3, r3, 0xdd8 -/* 80155710 54 00 08 3C */ slwi r0, r0, 1 -/* 80155714 3C 80 80 38 */ lis r4, tempBitLabels__20dSv_event_tmp_flag_c@ha /* 0x803790C0@ha */ -/* 80155718 38 84 90 C0 */ addi r4, r4, tempBitLabels__20dSv_event_tmp_flag_c@l /* 0x803790C0@l */ -/* 8015571C 7C 84 02 2E */ lhzx r4, r4, r0 -/* 80155720 4B ED F2 6D */ bl onEventBit__11dSv_event_cFUs -/* 80155724 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80155728 7C 08 03 A6 */ mtlr r0 -/* 8015572C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80155730 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_pntVsLineSegmentLengthSquare2D__FffffffPfPfPf.s b/asm/d/a/d_a_npc/daNpcF_pntVsLineSegmentLengthSquare2D__FffffffPfPfPf.s deleted file mode 100644 index d35ac230c9..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_pntVsLineSegmentLengthSquare2D__FffffffPfPfPf.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_80154DA8: -/* 80154DA8 38 00 00 00 */ li r0, 0 -/* 80154DAC ED 05 18 28 */ fsubs f8, f5, f3 -/* 80154DB0 ED 26 20 28 */ fsubs f9, f6, f4 -/* 80154DB4 EC A8 02 32 */ fmuls f5, f8, f8 -/* 80154DB8 EC 09 02 72 */ fmuls f0, f9, f9 -/* 80154DBC EC E5 00 2A */ fadds f7, f5, f0 -/* 80154DC0 C0 C2 99 D8 */ lfs f6, lit_4116(r2) -/* 80154DC4 FC 06 38 00 */ fcmpu cr0, f6, f7 -/* 80154DC8 40 82 00 10 */ bne lbl_80154DD8 -/* 80154DCC D0 C5 00 00 */ stfs f6, 0(r5) -/* 80154DD0 38 60 00 00 */ li r3, 0 -/* 80154DD4 4E 80 00 20 */ blr -lbl_80154DD8: -/* 80154DD8 EC 01 18 28 */ fsubs f0, f1, f3 -/* 80154DDC EC A8 00 32 */ fmuls f5, f8, f0 -/* 80154DE0 EC 02 20 28 */ fsubs f0, f2, f4 -/* 80154DE4 EC 09 00 32 */ fmuls f0, f9, f0 -/* 80154DE8 EC 05 00 2A */ fadds f0, f5, f0 -/* 80154DEC EC A0 38 24 */ fdivs f5, f0, f7 -/* 80154DF0 FC 06 28 40 */ fcmpo cr0, f6, f5 -/* 80154DF4 4C 40 13 82 */ cror 2, 0, 2 -/* 80154DF8 40 82 00 18 */ bne lbl_80154E10 -/* 80154DFC C0 02 99 DC */ lfs f0, lit_4140(r2) -/* 80154E00 FC 05 00 40 */ fcmpo cr0, f5, f0 -/* 80154E04 4C 40 13 82 */ cror 2, 0, 2 -/* 80154E08 40 82 00 08 */ bne lbl_80154E10 -/* 80154E0C 38 00 00 01 */ li r0, 1 -lbl_80154E10: -/* 80154E10 EC 08 01 72 */ fmuls f0, f8, f5 -/* 80154E14 EC 03 00 2A */ fadds f0, f3, f0 -/* 80154E18 D0 03 00 00 */ stfs f0, 0(r3) -/* 80154E1C EC 09 01 72 */ fmuls f0, f9, f5 -/* 80154E20 EC 04 00 2A */ fadds f0, f4, f0 -/* 80154E24 D0 04 00 00 */ stfs f0, 0(r4) -/* 80154E28 C0 83 00 00 */ lfs f4, 0(r3) -/* 80154E2C EC 04 08 28 */ fsubs f0, f4, f1 -/* 80154E30 EC 60 00 32 */ fmuls f3, f0, f0 -/* 80154E34 C0 04 00 00 */ lfs f0, 0(r4) -/* 80154E38 EC 20 10 28 */ fsubs f1, f0, f2 -/* 80154E3C EC 04 10 28 */ fsubs f0, f4, f2 -/* 80154E40 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80154E44 EC 03 00 2A */ fadds f0, f3, f0 -/* 80154E48 D0 05 00 00 */ stfs f0, 0(r5) -/* 80154E4C 7C 03 03 78 */ mr r3, r0 -/* 80154E50 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcF_subIdx__FiiRUsi.s b/asm/d/a/d_a_npc/daNpcF_subIdx__FiiRUsi.s deleted file mode 100644 index b4b5c3f1e2..0000000000 --- a/asm/d/a/d_a_npc/daNpcF_subIdx__FiiRUsi.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_801505AC: -/* 801505AC 38 E0 00 00 */ li r7, 0 -/* 801505B0 A1 05 00 00 */ lhz r8, 0(r5) -/* 801505B4 7D 03 40 51 */ subf. r8, r3, r8 -/* 801505B8 40 80 00 34 */ bge lbl_801505EC -/* 801505BC 2C 06 00 00 */ cmpwi r6, 0 -/* 801505C0 41 82 00 24 */ beq lbl_801505E4 -/* 801505C4 7C 08 23 D6 */ divw r0, r8, r4 -/* 801505C8 7C 00 21 D6 */ mullw r0, r0, r4 -/* 801505CC 7C 00 40 50 */ subf r0, r0, r8 -/* 801505D0 7C 64 02 14 */ add r3, r4, r0 -/* 801505D4 7C 03 23 D6 */ divw r0, r3, r4 -/* 801505D8 7C 00 21 D6 */ mullw r0, r0, r4 -/* 801505DC 7D 00 18 50 */ subf r8, r0, r3 -/* 801505E0 48 00 00 0C */ b lbl_801505EC -lbl_801505E4: -/* 801505E4 39 00 00 00 */ li r8, 0 -/* 801505E8 38 E0 00 01 */ li r7, 1 -lbl_801505EC: -/* 801505EC B1 05 00 00 */ sth r8, 0(r5) -/* 801505F0 7C E3 3B 78 */ mr r3, r7 -/* 801505F4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcT_addIdx__FiiRUsi.s b/asm/d/a/d_a_npc/daNpcT_addIdx__FiiRUsi.s deleted file mode 100644 index a9821d8f54..0000000000 --- a/asm/d/a/d_a_npc/daNpcT_addIdx__FiiRUsi.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_80145A38: -/* 80145A38 38 E0 00 00 */ li r7, 0 -/* 80145A3C A1 05 00 00 */ lhz r8, 0(r5) -/* 80145A40 7D 08 1A 14 */ add r8, r8, r3 -/* 80145A44 7C 04 40 00 */ cmpw r4, r8 -/* 80145A48 41 81 00 24 */ bgt lbl_80145A6C -/* 80145A4C 2C 06 00 00 */ cmpwi r6, 0 -/* 80145A50 41 82 00 14 */ beq lbl_80145A64 -/* 80145A54 7C 08 23 D6 */ divw r0, r8, r4 -/* 80145A58 7C 00 21 D6 */ mullw r0, r0, r4 -/* 80145A5C 7D 00 40 50 */ subf r8, r0, r8 -/* 80145A60 48 00 00 0C */ b lbl_80145A6C -lbl_80145A64: -/* 80145A64 39 04 FF FF */ addi r8, r4, -1 -/* 80145A68 38 E0 00 01 */ li r7, 1 -lbl_80145A6C: -/* 80145A6C B1 05 00 00 */ sth r8, 0(r5) -/* 80145A70 7C E3 3B 78 */ mr r3, r7 -/* 80145A74 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcT_chkDoBtnIsSpeak__FP10fopAc_ac_c.s b/asm/d/a/d_a_npc/daNpcT_chkDoBtnIsSpeak__FP10fopAc_ac_c.s deleted file mode 100644 index 75dce9e89e..0000000000 --- a/asm/d/a/d_a_npc/daNpcT_chkDoBtnIsSpeak__FP10fopAc_ac_c.s +++ /dev/null @@ -1,80 +0,0 @@ -lbl_8014C5E0: -/* 8014C5E0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8014C5E4 7C 08 02 A6 */ mflr r0 -/* 8014C5E8 90 01 00 24 */ stw r0, 0x24(r1) -/* 8014C5EC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8014C5F0 48 21 5B E9 */ bl _savegpr_28 -/* 8014C5F4 7C 7C 1B 78 */ mr r28, r3 -/* 8014C5F8 3B C0 00 00 */ li r30, 0 -/* 8014C5FC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014C600 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014C604 88 03 5E 24 */ lbz r0, 0x5e24(r3) -/* 8014C608 28 00 00 1C */ cmplwi r0, 0x1c -/* 8014C60C 40 82 00 D8 */ bne lbl_8014C6E4 -/* 8014C610 80 63 5D AC */ lwz r3, 0x5dac(r3) -/* 8014C614 7F 84 E3 78 */ mr r4, r28 -/* 8014C618 81 83 06 28 */ lwz r12, 0x628(r3) -/* 8014C61C 81 8C 01 D8 */ lwz r12, 0x1d8(r12) -/* 8014C620 7D 89 03 A6 */ mtctr r12 -/* 8014C624 4E 80 04 21 */ bctrl -/* 8014C628 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8014C62C 41 82 00 B8 */ beq lbl_8014C6E4 -/* 8014C630 3B A0 00 00 */ li r29, 0 -/* 8014C634 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014C638 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014C63C 3B E3 56 B8 */ addi r31, r3, 0x56b8 -/* 8014C640 48 00 00 44 */ b lbl_8014C684 -lbl_8014C644: -/* 8014C644 7F E3 FB 78 */ mr r3, r31 -/* 8014C648 7F A4 EB 78 */ mr r4, r29 -/* 8014C64C 4B F2 70 E9 */ bl ActionTarget__12dAttention_cFl -/* 8014C650 7C 03 E0 40 */ cmplw r3, r28 -/* 8014C654 40 82 00 2C */ bne lbl_8014C680 -/* 8014C658 7F E3 FB 78 */ mr r3, r31 -/* 8014C65C 4B F2 42 25 */ bl getActionBtnB__12dAttention_cFv -/* 8014C660 28 03 00 00 */ cmplwi r3, 0 -/* 8014C664 41 82 00 1C */ beq lbl_8014C680 -/* 8014C668 7F E3 FB 78 */ mr r3, r31 -/* 8014C66C 4B F2 42 15 */ bl getActionBtnB__12dAttention_cFv -/* 8014C670 80 03 00 0C */ lwz r0, 0xc(r3) -/* 8014C674 28 00 00 03 */ cmplwi r0, 3 -/* 8014C678 40 82 00 08 */ bne lbl_8014C680 -/* 8014C67C 3B C0 00 01 */ li r30, 1 -lbl_8014C680: -/* 8014C680 3B BD 00 01 */ addi r29, r29, 1 -lbl_8014C684: -/* 8014C684 80 1F 04 30 */ lwz r0, 0x430(r31) -/* 8014C688 7C 1D 00 00 */ cmpw r29, r0 -/* 8014C68C 41 80 FF B8 */ blt lbl_8014C644 -/* 8014C690 3B A0 00 00 */ li r29, 0 -/* 8014C694 48 00 00 44 */ b lbl_8014C6D8 -lbl_8014C698: -/* 8014C698 7F E3 FB 78 */ mr r3, r31 -/* 8014C69C 7F A4 EB 78 */ mr r4, r29 -/* 8014C6A0 4B F2 6E 9D */ bl LockonTarget__12dAttention_cFl -/* 8014C6A4 7C 03 E0 40 */ cmplw r3, r28 -/* 8014C6A8 40 82 00 2C */ bne lbl_8014C6D4 -/* 8014C6AC 7F E3 FB 78 */ mr r3, r31 -/* 8014C6B0 4B F2 41 D1 */ bl getActionBtnB__12dAttention_cFv -/* 8014C6B4 28 03 00 00 */ cmplwi r3, 0 -/* 8014C6B8 41 82 00 1C */ beq lbl_8014C6D4 -/* 8014C6BC 7F E3 FB 78 */ mr r3, r31 -/* 8014C6C0 4B F2 41 C1 */ bl getActionBtnB__12dAttention_cFv -/* 8014C6C4 80 03 00 0C */ lwz r0, 0xc(r3) -/* 8014C6C8 28 00 00 01 */ cmplwi r0, 1 -/* 8014C6CC 40 82 00 08 */ bne lbl_8014C6D4 -/* 8014C6D0 3B C0 00 01 */ li r30, 1 -lbl_8014C6D4: -/* 8014C6D4 3B BD 00 01 */ addi r29, r29, 1 -lbl_8014C6D8: -/* 8014C6D8 80 1F 03 D8 */ lwz r0, 0x3d8(r31) -/* 8014C6DC 7C 1D 00 00 */ cmpw r29, r0 -/* 8014C6E0 41 80 FF B8 */ blt lbl_8014C698 -lbl_8014C6E4: -/* 8014C6E4 7F C3 F3 78 */ mr r3, r30 -/* 8014C6E8 39 61 00 20 */ addi r11, r1, 0x20 -/* 8014C6EC 48 21 5B 39 */ bl _restgpr_28 -/* 8014C6F0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8014C6F4 7C 08 03 A6 */ mtlr r0 -/* 8014C6F8 38 21 00 20 */ addi r1, r1, 0x20 -/* 8014C6FC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcT_chkEvtBit__FUl.s b/asm/d/a/d_a_npc/daNpcT_chkEvtBit__FUl.s deleted file mode 100644 index 0830c5b663..0000000000 --- a/asm/d/a/d_a_npc/daNpcT_chkEvtBit__FUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8014CAAC: -/* 8014CAAC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014CAB0 7C 08 02 A6 */ mflr r0 -/* 8014CAB4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014CAB8 7C 60 1B 78 */ mr r0, r3 -/* 8014CABC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014CAC0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014CAC4 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 8014CAC8 54 00 08 3C */ slwi r0, r0, 1 -/* 8014CACC 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 8014CAD0 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 8014CAD4 7C 84 02 2E */ lhzx r4, r4, r0 -/* 8014CAD8 4B EE 7E E5 */ bl isEventBit__11dSv_event_cCFUs -/* 8014CADC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014CAE0 7C 08 03 A6 */ mtlr r0 -/* 8014CAE4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014CAE8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcT_chkTmpBit__FUl.s b/asm/d/a/d_a_npc/daNpcT_chkTmpBit__FUl.s deleted file mode 100644 index b25b02c100..0000000000 --- a/asm/d/a/d_a_npc/daNpcT_chkTmpBit__FUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8014CB6C: -/* 8014CB6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014CB70 7C 08 02 A6 */ mflr r0 -/* 8014CB74 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014CB78 7C 60 1B 78 */ mr r0, r3 -/* 8014CB7C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014CB80 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014CB84 38 63 0D D8 */ addi r3, r3, 0xdd8 -/* 8014CB88 54 00 08 3C */ slwi r0, r0, 1 -/* 8014CB8C 3C 80 80 38 */ lis r4, tempBitLabels__20dSv_event_tmp_flag_c@ha /* 0x803790C0@ha */ -/* 8014CB90 38 84 90 C0 */ addi r4, r4, tempBitLabels__20dSv_event_tmp_flag_c@l /* 0x803790C0@l */ -/* 8014CB94 7C 84 02 2E */ lhzx r4, r4, r0 -/* 8014CB98 4B EE 7E 25 */ bl isEventBit__11dSv_event_cCFUs -/* 8014CB9C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014CBA0 7C 08 03 A6 */ mtlr r0 -/* 8014CBA4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014CBA8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcT_decIdx__FiRUsii.s b/asm/d/a/d_a_npc/daNpcT_decIdx__FiRUsii.s deleted file mode 100644 index 71b9379fd6..0000000000 --- a/asm/d/a/d_a_npc/daNpcT_decIdx__FiRUsii.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80145B20: -/* 80145B20 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80145B24 7C 08 02 A6 */ mflr r0 -/* 80145B28 90 01 00 14 */ stw r0, 0x14(r1) -/* 80145B2C 7C 68 1B 78 */ mr r8, r3 -/* 80145B30 7C 87 23 78 */ mr r7, r4 -/* 80145B34 7C A0 2B 78 */ mr r0, r5 -/* 80145B38 2C 06 00 00 */ cmpwi r6, 0 -/* 80145B3C 41 82 00 1C */ beq lbl_80145B58 -/* 80145B40 38 60 00 01 */ li r3, 1 -/* 80145B44 7D 04 43 78 */ mr r4, r8 -/* 80145B48 7C E5 3B 78 */ mr r5, r7 -/* 80145B4C 7C 06 03 78 */ mr r6, r0 -/* 80145B50 4B FF FE E9 */ bl daNpcT_addIdx__FiiRUsi -/* 80145B54 48 00 00 18 */ b lbl_80145B6C -lbl_80145B58: -/* 80145B58 38 60 00 01 */ li r3, 1 -/* 80145B5C 7D 04 43 78 */ mr r4, r8 -/* 80145B60 7C E5 3B 78 */ mr r5, r7 -/* 80145B64 7C 06 03 78 */ mr r6, r0 -/* 80145B68 4B FF FF 11 */ bl daNpcT_subIdx__FiiRUsi -lbl_80145B6C: -/* 80145B6C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80145B70 7C 08 03 A6 */ mtlr r0 -/* 80145B74 38 21 00 10 */ addi r1, r1, 0x10 -/* 80145B78 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcT_getDistTableIdx__Fii.s b/asm/d/a/d_a_npc/daNpcT_getDistTableIdx__Fii.s deleted file mode 100644 index 2e46d0b907..0000000000 --- a/asm/d/a/d_a_npc/daNpcT_getDistTableIdx__Fii.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8014CA18: -/* 8014CA18 1C 84 00 14 */ mulli r4, r4, 0x14 -/* 8014CA1C 38 04 00 5E */ addi r0, r4, 0x5e -/* 8014CA20 7C 03 02 14 */ add r0, r3, r0 -/* 8014CA24 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8014CA28 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcT_incIdx__FiRUsii.s b/asm/d/a/d_a_npc/daNpcT_incIdx__FiRUsii.s deleted file mode 100644 index bf41ff5d1d..0000000000 --- a/asm/d/a/d_a_npc/daNpcT_incIdx__FiRUsii.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80145AC4: -/* 80145AC4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80145AC8 7C 08 02 A6 */ mflr r0 -/* 80145ACC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80145AD0 7C 68 1B 78 */ mr r8, r3 -/* 80145AD4 7C 87 23 78 */ mr r7, r4 -/* 80145AD8 7C A0 2B 78 */ mr r0, r5 -/* 80145ADC 2C 06 00 00 */ cmpwi r6, 0 -/* 80145AE0 41 82 00 1C */ beq lbl_80145AFC -/* 80145AE4 38 60 00 01 */ li r3, 1 -/* 80145AE8 7D 04 43 78 */ mr r4, r8 -/* 80145AEC 7C E5 3B 78 */ mr r5, r7 -/* 80145AF0 7C 06 03 78 */ mr r6, r0 -/* 80145AF4 4B FF FF 85 */ bl daNpcT_subIdx__FiiRUsi -/* 80145AF8 48 00 00 18 */ b lbl_80145B10 -lbl_80145AFC: -/* 80145AFC 38 60 00 01 */ li r3, 1 -/* 80145B00 7D 04 43 78 */ mr r4, r8 -/* 80145B04 7C E5 3B 78 */ mr r5, r7 -/* 80145B08 7C 06 03 78 */ mr r6, r0 -/* 80145B0C 4B FF FF 2D */ bl daNpcT_addIdx__FiiRUsi -lbl_80145B10: -/* 80145B10 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80145B14 7C 08 03 A6 */ mtlr r0 -/* 80145B18 38 21 00 10 */ addi r1, r1, 0x10 -/* 80145B1C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcT_offEvtBit__FUl.s b/asm/d/a/d_a_npc/daNpcT_offEvtBit__FUl.s deleted file mode 100644 index 28bcba2a80..0000000000 --- a/asm/d/a/d_a_npc/daNpcT_offEvtBit__FUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8014CA6C: -/* 8014CA6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014CA70 7C 08 02 A6 */ mflr r0 -/* 8014CA74 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014CA78 7C 60 1B 78 */ mr r0, r3 -/* 8014CA7C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014CA80 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014CA84 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 8014CA88 54 00 08 3C */ slwi r0, r0, 1 -/* 8014CA8C 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 8014CA90 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 8014CA94 7C 84 02 2E */ lhzx r4, r4, r0 -/* 8014CA98 4B EE 7F 0D */ bl offEventBit__11dSv_event_cFUs -/* 8014CA9C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014CAA0 7C 08 03 A6 */ mtlr r0 -/* 8014CAA4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014CAA8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcT_offTmpBit__FUl.s b/asm/d/a/d_a_npc/daNpcT_offTmpBit__FUl.s deleted file mode 100644 index 2b2255bacb..0000000000 --- a/asm/d/a/d_a_npc/daNpcT_offTmpBit__FUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8014CB2C: -/* 8014CB2C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014CB30 7C 08 02 A6 */ mflr r0 -/* 8014CB34 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014CB38 7C 60 1B 78 */ mr r0, r3 -/* 8014CB3C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014CB40 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014CB44 38 63 0D D8 */ addi r3, r3, 0xdd8 -/* 8014CB48 54 00 08 3C */ slwi r0, r0, 1 -/* 8014CB4C 3C 80 80 38 */ lis r4, tempBitLabels__20dSv_event_tmp_flag_c@ha /* 0x803790C0@ha */ -/* 8014CB50 38 84 90 C0 */ addi r4, r4, tempBitLabels__20dSv_event_tmp_flag_c@l /* 0x803790C0@l */ -/* 8014CB54 7C 84 02 2E */ lhzx r4, r4, r0 -/* 8014CB58 4B EE 7E 4D */ bl offEventBit__11dSv_event_cFUs -/* 8014CB5C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014CB60 7C 08 03 A6 */ mtlr r0 -/* 8014CB64 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014CB68 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcT_onEvtBit__FUl.s b/asm/d/a/d_a_npc/daNpcT_onEvtBit__FUl.s deleted file mode 100644 index 75becefa1f..0000000000 --- a/asm/d/a/d_a_npc/daNpcT_onEvtBit__FUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8014CA2C: -/* 8014CA2C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014CA30 7C 08 02 A6 */ mflr r0 -/* 8014CA34 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014CA38 7C 60 1B 78 */ mr r0, r3 -/* 8014CA3C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014CA40 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014CA44 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 8014CA48 54 00 08 3C */ slwi r0, r0, 1 -/* 8014CA4C 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 8014CA50 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 8014CA54 7C 84 02 2E */ lhzx r4, r4, r0 -/* 8014CA58 4B EE 7F 35 */ bl onEventBit__11dSv_event_cFUs -/* 8014CA5C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014CA60 7C 08 03 A6 */ mtlr r0 -/* 8014CA64 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014CA68 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcT_onTmpBit__FUl.s b/asm/d/a/d_a_npc/daNpcT_onTmpBit__FUl.s deleted file mode 100644 index d3d829e4c9..0000000000 --- a/asm/d/a/d_a_npc/daNpcT_onTmpBit__FUl.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8014CAEC: -/* 8014CAEC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014CAF0 7C 08 02 A6 */ mflr r0 -/* 8014CAF4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014CAF8 7C 60 1B 78 */ mr r0, r3 -/* 8014CAFC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014CB00 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014CB04 38 63 0D D8 */ addi r3, r3, 0xdd8 -/* 8014CB08 54 00 08 3C */ slwi r0, r0, 1 -/* 8014CB0C 3C 80 80 38 */ lis r4, tempBitLabels__20dSv_event_tmp_flag_c@ha /* 0x803790C0@ha */ -/* 8014CB10 38 84 90 C0 */ addi r4, r4, tempBitLabels__20dSv_event_tmp_flag_c@l /* 0x803790C0@l */ -/* 8014CB14 7C 84 02 2E */ lhzx r4, r4, r0 -/* 8014CB18 4B EE 7E 75 */ bl onEventBit__11dSv_event_cFUs -/* 8014CB1C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014CB20 7C 08 03 A6 */ mtlr r0 -/* 8014CB24 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014CB28 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/daNpcT_subIdx__FiiRUsi.s b/asm/d/a/d_a_npc/daNpcT_subIdx__FiiRUsi.s deleted file mode 100644 index c5387f1d35..0000000000 --- a/asm/d/a/d_a_npc/daNpcT_subIdx__FiiRUsi.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80145A78: -/* 80145A78 38 E0 00 00 */ li r7, 0 -/* 80145A7C A1 05 00 00 */ lhz r8, 0(r5) -/* 80145A80 7D 03 40 51 */ subf. r8, r3, r8 -/* 80145A84 40 80 00 34 */ bge lbl_80145AB8 -/* 80145A88 2C 06 00 00 */ cmpwi r6, 0 -/* 80145A8C 41 82 00 24 */ beq lbl_80145AB0 -/* 80145A90 7C 08 23 D6 */ divw r0, r8, r4 -/* 80145A94 7C 00 21 D6 */ mullw r0, r0, r4 -/* 80145A98 7C 00 40 50 */ subf r0, r0, r8 -/* 80145A9C 7C 64 02 14 */ add r3, r4, r0 -/* 80145AA0 7C 03 23 D6 */ divw r0, r3, r4 -/* 80145AA4 7C 00 21 D6 */ mullw r0, r0, r4 -/* 80145AA8 7D 00 18 50 */ subf r8, r0, r3 -/* 80145AAC 48 00 00 0C */ b lbl_80145AB8 -lbl_80145AB0: -/* 80145AB0 39 00 00 00 */ li r8, 0 -/* 80145AB4 38 E0 00 01 */ li r7, 1 -lbl_80145AB8: -/* 80145AB8 B1 05 00 00 */ sth r8, 0(r5) -/* 80145ABC 7C E3 3B 78 */ mr r3, r7 -/* 80145AC0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c.s b/asm/d/a/d_a_npc/entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c.s deleted file mode 100644 index 1cf593250c..0000000000 --- a/asm/d/a/d_a_npc/entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_801506BC: -/* 801506BC 28 04 00 00 */ cmplwi r4, 0 -/* 801506C0 41 82 00 0C */ beq lbl_801506CC -/* 801506C4 80 04 00 04 */ lwz r0, 4(r4) -/* 801506C8 48 00 00 08 */ b lbl_801506D0 -lbl_801506CC: -/* 801506CC 38 00 FF FF */ li r0, -1 -lbl_801506D0: -/* 801506D0 90 03 00 00 */ stw r0, 0(r3) -/* 801506D4 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/execute__8daNpcT_cFv.s b/asm/d/a/d_a_npc/execute__8daNpcT_cFv.s deleted file mode 100644 index 86934a6e07..0000000000 --- a/asm/d/a/d_a_npc/execute__8daNpcT_cFv.s +++ /dev/null @@ -1,221 +0,0 @@ -lbl_8014852C: -/* 8014852C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80148530 7C 08 02 A6 */ mflr r0 -/* 80148534 90 01 00 14 */ stw r0, 0x14(r1) -/* 80148538 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8014853C 93 C1 00 08 */ stw r30, 8(r1) -/* 80148540 7C 7E 1B 78 */ mr r30, r3 -/* 80148544 81 83 0E 3C */ lwz r12, 0xe3c(r3) -/* 80148548 81 8C 00 44 */ lwz r12, 0x44(r12) -/* 8014854C 7D 89 03 A6 */ mtctr r12 -/* 80148550 4E 80 04 21 */ bctrl -/* 80148554 7F C3 F3 78 */ mr r3, r30 -/* 80148558 81 9E 0E 3C */ lwz r12, 0xe3c(r30) -/* 8014855C 81 8C 00 5C */ lwz r12, 0x5c(r12) -/* 80148560 7D 89 03 A6 */ mtctr r12 -/* 80148564 4E 80 04 21 */ bctrl -/* 80148568 2C 03 00 00 */ cmpwi r3, 0 -/* 8014856C 40 82 00 18 */ bne lbl_80148584 -/* 80148570 7F C3 F3 78 */ mr r3, r30 -/* 80148574 81 9E 0E 3C */ lwz r12, 0xe3c(r30) -/* 80148578 81 8C 00 60 */ lwz r12, 0x60(r12) -/* 8014857C 7D 89 03 A6 */ mtctr r12 -/* 80148580 4E 80 04 21 */ bctrl -lbl_80148584: -/* 80148584 7F C3 F3 78 */ mr r3, r30 -/* 80148588 81 9E 0E 3C */ lwz r12, 0xe3c(r30) -/* 8014858C 81 8C 00 64 */ lwz r12, 0x64(r12) -/* 80148590 7D 89 03 A6 */ mtctr r12 -/* 80148594 4E 80 04 21 */ bctrl -/* 80148598 7F C3 F3 78 */ mr r3, r30 -/* 8014859C 38 9E 08 64 */ addi r4, r30, 0x864 -/* 801485A0 4B ED 21 2D */ bl fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz -/* 801485A4 38 7E 06 8C */ addi r3, r30, 0x68c -/* 801485A8 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 801485AC 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 801485B0 3B E4 0F 38 */ addi r31, r4, 0xf38 -/* 801485B4 7F E4 FB 78 */ mr r4, r31 -/* 801485B8 4B F2 E4 F5 */ bl CrrPos__9dBgS_AcchFR4dBgS -/* 801485BC 80 1E 07 68 */ lwz r0, 0x768(r30) -/* 801485C0 90 1E 09 30 */ stw r0, 0x930(r30) -/* 801485C4 80 1E 07 6C */ lwz r0, 0x76c(r30) -/* 801485C8 90 1E 09 34 */ stw r0, 0x934(r30) -/* 801485CC 80 1E 07 70 */ lwz r0, 0x770(r30) -/* 801485D0 90 1E 09 38 */ stw r0, 0x938(r30) -/* 801485D4 88 1E 07 74 */ lbz r0, 0x774(r30) -/* 801485D8 98 1E 09 3C */ stb r0, 0x93c(r30) -/* 801485DC A0 1E 07 7C */ lhz r0, 0x77c(r30) -/* 801485E0 B0 1E 09 44 */ sth r0, 0x944(r30) -/* 801485E4 A0 1E 07 7E */ lhz r0, 0x77e(r30) -/* 801485E8 B0 1E 09 46 */ sth r0, 0x946(r30) -/* 801485EC 80 1E 07 80 */ lwz r0, 0x780(r30) -/* 801485F0 90 1E 09 48 */ stw r0, 0x948(r30) -/* 801485F4 80 1E 07 84 */ lwz r0, 0x784(r30) -/* 801485F8 90 1E 09 4C */ stw r0, 0x94c(r30) -/* 801485FC C0 1E 07 8C */ lfs f0, 0x78c(r30) -/* 80148600 D0 1E 09 54 */ stfs f0, 0x954(r30) -/* 80148604 C0 1E 07 90 */ lfs f0, 0x790(r30) -/* 80148608 D0 1E 09 58 */ stfs f0, 0x958(r30) -/* 8014860C C0 1E 07 94 */ lfs f0, 0x794(r30) -/* 80148610 D0 1E 09 5C */ stfs f0, 0x95c(r30) -/* 80148614 80 1E 07 98 */ lwz r0, 0x798(r30) -/* 80148618 90 1E 09 60 */ stw r0, 0x960(r30) -/* 8014861C C0 1E 07 9C */ lfs f0, 0x79c(r30) -/* 80148620 D0 1E 09 64 */ stfs f0, 0x964(r30) -/* 80148624 80 1E 07 A0 */ lwz r0, 0x7a0(r30) -/* 80148628 90 1E 09 68 */ stw r0, 0x968(r30) -/* 8014862C 38 7E 09 44 */ addi r3, r30, 0x944 -/* 80148630 A8 9E 04 DE */ lha r4, 0x4de(r30) -/* 80148634 4B ED 54 B1 */ bl fopAcM_getPolygonAngle__FRC13cBgS_PolyInfos -/* 80148638 B0 7E 0D CA */ sth r3, 0xdca(r30) -/* 8014863C C0 1E 07 24 */ lfs f0, 0x724(r30) -/* 80148640 D0 1E 0D F4 */ stfs f0, 0xdf4(r30) -/* 80148644 C0 22 9A 40 */ lfs f1, lit_5667(r2) -/* 80148648 C0 1E 0D F4 */ lfs f0, 0xdf4(r30) -/* 8014864C FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 80148650 41 82 00 4C */ beq lbl_8014869C -/* 80148654 38 7E 07 7C */ addi r3, r30, 0x77c -/* 80148658 48 06 2E 69 */ bl dKy_pol_sound_get__FPC13cBgS_PolyInfo -/* 8014865C 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 80148660 90 1E 0D A8 */ stw r0, 0xda8(r30) -/* 80148664 88 7E 08 86 */ lbz r3, 0x886(r30) -/* 80148668 4B EE 4A 05 */ bl dComIfGp_getReverb__Fi -/* 8014866C 98 7E 0E 24 */ stb r3, 0xe24(r30) -/* 80148670 80 1E 06 B8 */ lwz r0, 0x6b8(r30) -/* 80148674 54 00 05 29 */ rlwinm. r0, r0, 0, 0x14, 0x14 -/* 80148678 41 82 00 24 */ beq lbl_8014869C -/* 8014867C C0 3E 08 58 */ lfs f1, 0x858(r30) -/* 80148680 C0 1E 0D F4 */ lfs f0, 0xdf4(r30) -/* 80148684 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80148688 40 81 00 14 */ ble lbl_8014869C -/* 8014868C 38 7E 08 0C */ addi r3, r30, 0x80c -/* 80148690 48 06 2E 31 */ bl dKy_pol_sound_get__FPC13cBgS_PolyInfo -/* 80148694 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 80148698 90 1E 0D A8 */ stw r0, 0xda8(r30) -lbl_8014869C: -/* 8014869C 7F C3 F3 78 */ mr r3, r30 -/* 801486A0 81 9E 0E 3C */ lwz r12, 0xe3c(r30) -/* 801486A4 81 8C 00 68 */ lwz r12, 0x68(r12) -/* 801486A8 7D 89 03 A6 */ mtctr r12 -/* 801486AC 4E 80 04 21 */ bctrl -/* 801486B0 C0 22 9A 40 */ lfs f1, lit_5667(r2) -/* 801486B4 C0 1E 0D F4 */ lfs f0, 0xdf4(r30) -/* 801486B8 FC 01 00 00 */ fcmpu cr0, f1, f0 -/* 801486BC 41 82 00 14 */ beq lbl_801486D0 -/* 801486C0 7F C3 F3 78 */ mr r3, r30 -/* 801486C4 48 00 05 AD */ bl setEnvTevColor__8daNpcT_cFv -/* 801486C8 7F C3 F3 78 */ mr r3, r30 -/* 801486CC 48 00 06 01 */ bl setRoomNo__8daNpcT_cFv -lbl_801486D0: -/* 801486D0 38 60 00 00 */ li r3, 0 -/* 801486D4 80 1E 0B 60 */ lwz r0, 0xb60(r30) -/* 801486D8 2C 00 00 00 */ cmpwi r0, 0 -/* 801486DC 40 82 00 14 */ bne lbl_801486F0 -/* 801486E0 80 1E 0B 64 */ lwz r0, 0xb64(r30) -/* 801486E4 2C 00 FF FF */ cmpwi r0, -1 -/* 801486E8 40 82 00 08 */ bne lbl_801486F0 -/* 801486EC 38 60 00 01 */ li r3, 1 -lbl_801486F0: -/* 801486F0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 801486F4 41 82 00 24 */ beq lbl_80148718 -/* 801486F8 7F C3 F3 78 */ mr r3, r30 -/* 801486FC 48 00 0B 51 */ bl ctrlFaceMotion__8daNpcT_cFv -/* 80148700 7F C3 F3 78 */ mr r3, r30 -/* 80148704 38 80 00 01 */ li r4, 1 -/* 80148708 81 9E 0E 3C */ lwz r12, 0xe3c(r30) -/* 8014870C 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 80148710 7D 89 03 A6 */ mtctr r12 -/* 80148714 4E 80 04 21 */ bctrl -lbl_80148718: -/* 80148718 38 60 00 00 */ li r3, 0 -/* 8014871C 80 1E 0B 84 */ lwz r0, 0xb84(r30) -/* 80148720 2C 00 00 00 */ cmpwi r0, 0 -/* 80148724 40 82 00 14 */ bne lbl_80148738 -/* 80148728 80 1E 0B 88 */ lwz r0, 0xb88(r30) -/* 8014872C 2C 00 FF FF */ cmpwi r0, -1 -/* 80148730 40 82 00 08 */ bne lbl_80148738 -/* 80148734 38 60 00 01 */ li r3, 1 -lbl_80148738: -/* 80148738 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8014873C 41 82 00 0C */ beq lbl_80148748 -/* 80148740 7F C3 F3 78 */ mr r3, r30 -/* 80148744 48 00 0B BD */ bl ctrlMotion__8daNpcT_cFv -lbl_80148748: -/* 80148748 7F C3 F3 78 */ mr r3, r30 -/* 8014874C 48 00 07 01 */ bl playAllAnm__8daNpcT_cFv -/* 80148750 7F C3 F3 78 */ mr r3, r30 -/* 80148754 48 00 0A F9 */ bl ctrlFaceMotion__8daNpcT_cFv -/* 80148758 7F C3 F3 78 */ mr r3, r30 -/* 8014875C 38 80 00 00 */ li r4, 0 -/* 80148760 81 9E 0E 3C */ lwz r12, 0xe3c(r30) -/* 80148764 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 80148768 7D 89 03 A6 */ mtctr r12 -/* 8014876C 4E 80 04 21 */ bctrl -/* 80148770 7F C3 F3 78 */ mr r3, r30 -/* 80148774 48 00 0B 8D */ bl ctrlMotion__8daNpcT_cFv -/* 80148778 7F C3 F3 78 */ mr r3, r30 -/* 8014877C 81 9E 0E 3C */ lwz r12, 0xe3c(r30) -/* 80148780 81 8C 00 6C */ lwz r12, 0x6c(r12) -/* 80148784 7D 89 03 A6 */ mtctr r12 -/* 80148788 4E 80 04 21 */ bctrl -/* 8014878C 38 7E 0D FC */ addi r3, r30, 0xdfc -/* 80148790 C0 22 99 D8 */ lfs f1, lit_4116(r2) -/* 80148794 C0 42 99 DC */ lfs f2, lit_4140(r2) -/* 80148798 48 12 7F A9 */ bl cLib_chaseF__FPfff -/* 8014879C 7F C3 F3 78 */ mr r3, r30 -/* 801487A0 81 9E 0E 3C */ lwz r12, 0xe3c(r30) -/* 801487A4 81 8C 00 80 */ lwz r12, 0x80(r12) -/* 801487A8 7D 89 03 A6 */ mtctr r12 -/* 801487AC 4E 80 04 21 */ bctrl -/* 801487B0 7F C3 F3 78 */ mr r3, r30 -/* 801487B4 81 9E 0E 3C */ lwz r12, 0xe3c(r30) -/* 801487B8 81 8C 00 74 */ lwz r12, 0x74(r12) -/* 801487BC 7D 89 03 A6 */ mtctr r12 -/* 801487C0 4E 80 04 21 */ bctrl -/* 801487C4 88 1E 0E 2C */ lbz r0, 0xe2c(r30) -/* 801487C8 28 00 00 00 */ cmplwi r0, 0 -/* 801487CC 40 82 00 5C */ bne lbl_80148828 -/* 801487D0 88 1E 0E 33 */ lbz r0, 0xe33(r30) -/* 801487D4 28 00 00 00 */ cmplwi r0, 0 -/* 801487D8 41 82 00 28 */ beq lbl_80148800 -/* 801487DC 38 00 00 00 */ li r0, 0 -/* 801487E0 88 7F 40 75 */ lbz r3, 0x4075(r31) -/* 801487E4 28 03 00 00 */ cmplwi r3, 0 -/* 801487E8 41 82 00 0C */ beq lbl_801487F4 -/* 801487EC 28 03 00 02 */ cmplwi r3, 2 -/* 801487F0 40 82 00 08 */ bne lbl_801487F8 -lbl_801487F4: -/* 801487F4 38 00 00 01 */ li r0, 1 -lbl_801487F8: -/* 801487F8 54 00 06 3F */ clrlwi. r0, r0, 0x18 -/* 801487FC 40 82 00 18 */ bne lbl_80148814 -lbl_80148800: -/* 80148800 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80148804 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80148808 88 03 4F AD */ lbz r0, 0x4fad(r3) -/* 8014880C 28 00 00 00 */ cmplwi r0, 0 -/* 80148810 40 82 00 18 */ bne lbl_80148828 -lbl_80148814: -/* 80148814 7F C3 F3 78 */ mr r3, r30 -/* 80148818 81 9E 0E 3C */ lwz r12, 0xe3c(r30) -/* 8014881C 81 8C 00 88 */ lwz r12, 0x88(r12) -/* 80148820 7D 89 03 A6 */ mtctr r12 -/* 80148824 4E 80 04 21 */ bctrl -lbl_80148828: -/* 80148828 7F C3 F3 78 */ mr r3, r30 -/* 8014882C 81 9E 0E 3C */ lwz r12, 0xe3c(r30) -/* 80148830 81 8C 00 90 */ lwz r12, 0x90(r12) -/* 80148834 7D 89 03 A6 */ mtctr r12 -/* 80148838 4E 80 04 21 */ bctrl -/* 8014883C 7F C3 F3 78 */ mr r3, r30 -/* 80148840 81 9E 0E 3C */ lwz r12, 0xe3c(r30) -/* 80148844 81 8C 00 8C */ lwz r12, 0x8c(r12) -/* 80148848 7D 89 03 A6 */ mtctr r12 -/* 8014884C 4E 80 04 21 */ bctrl -/* 80148850 38 60 00 01 */ li r3, 1 -/* 80148854 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80148858 83 C1 00 08 */ lwz r30, 8(r1) -/* 8014885C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80148860 7C 08 03 A6 */ mtlr r0 -/* 80148864 38 21 00 10 */ addi r1, r1, 0x10 -/* 80148868 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/getActorP__18daNpcF_ActorMngr_cFv.s b/asm/d/a/d_a_npc/getActorP__18daNpcF_ActorMngr_cFv.s deleted file mode 100644 index c5482c63d5..0000000000 --- a/asm/d/a/d_a_npc/getActorP__18daNpcF_ActorMngr_cFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_801506EC: -/* 801506EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 801506F0 7C 08 02 A6 */ mflr r0 -/* 801506F4 90 01 00 14 */ stw r0, 0x14(r1) -/* 801506F8 38 00 00 00 */ li r0, 0 -/* 801506FC 90 01 00 08 */ stw r0, 8(r1) -/* 80150700 80 63 00 00 */ lwz r3, 0(r3) -/* 80150704 38 81 00 08 */ addi r4, r1, 8 -/* 80150708 4B EC 92 B5 */ bl fopAcM_SearchByID__FUiPP10fopAc_ac_c -/* 8015070C 2C 03 00 01 */ cmpwi r3, 1 -/* 80150710 40 82 00 14 */ bne lbl_80150724 -/* 80150714 80 61 00 08 */ lwz r3, 8(r1) -/* 80150718 28 03 00 00 */ cmplwi r3, 0 -/* 8015071C 41 82 00 08 */ beq lbl_80150724 -/* 80150720 48 00 00 08 */ b lbl_80150728 -lbl_80150724: -/* 80150724 38 60 00 00 */ li r3, 0 -lbl_80150728: -/* 80150728 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015072C 7C 08 03 A6 */ mtlr r0 -/* 80150730 38 21 00 10 */ addi r1, r1, 0x10 -/* 80150734 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/getAttentionPos__8daNpcF_cFP10fopAc_ac_c.s b/asm/d/a/d_a_npc/getAttentionPos__8daNpcF_cFP10fopAc_ac_c.s deleted file mode 100644 index 23f4734da0..0000000000 --- a/asm/d/a/d_a_npc/getAttentionPos__8daNpcF_cFP10fopAc_ac_c.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_8015496C: -/* 8015496C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80154970 7C 08 02 A6 */ mflr r0 -/* 80154974 90 01 00 24 */ stw r0, 0x24(r1) -/* 80154978 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8015497C 7C 7F 1B 78 */ mr r31, r3 -/* 80154980 C0 05 05 50 */ lfs f0, 0x550(r5) -/* 80154984 D0 01 00 08 */ stfs f0, 8(r1) -/* 80154988 C0 05 05 54 */ lfs f0, 0x554(r5) -/* 8015498C D0 01 00 0C */ stfs f0, 0xc(r1) -/* 80154990 C0 05 05 58 */ lfs f0, 0x558(r5) -/* 80154994 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 80154998 A8 05 00 08 */ lha r0, 8(r5) -/* 8015499C 2C 00 00 FD */ cmpwi r0, 0xfd -/* 801549A0 40 82 00 14 */ bne lbl_801549B4 -/* 801549A4 48 00 AA 59 */ bl getAttentionOffsetY__9daPy_py_cFv -/* 801549A8 C0 01 00 0C */ lfs f0, 0xc(r1) -/* 801549AC EC 00 08 28 */ fsubs f0, f0, f1 -/* 801549B0 D0 01 00 0C */ stfs f0, 0xc(r1) -lbl_801549B4: -/* 801549B4 C0 01 00 08 */ lfs f0, 8(r1) -/* 801549B8 D0 1F 00 00 */ stfs f0, 0(r31) -/* 801549BC C0 01 00 0C */ lfs f0, 0xc(r1) -/* 801549C0 D0 1F 00 04 */ stfs f0, 4(r31) -/* 801549C4 C0 01 00 10 */ lfs f0, 0x10(r1) -/* 801549C8 D0 1F 00 08 */ stfs f0, 8(r31) -/* 801549CC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 801549D0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801549D4 7C 08 03 A6 */ mtlr r0 -/* 801549D8 38 21 00 20 */ addi r1, r1, 0x20 -/* 801549DC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/getDistTableIdx__8daNpcF_cFii.s b/asm/d/a/d_a_npc/getDistTableIdx__8daNpcF_cFii.s deleted file mode 100644 index aac3f7b3e5..0000000000 --- a/asm/d/a/d_a_npc/getDistTableIdx__8daNpcF_cFii.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80154278: -/* 80154278 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015427C 7C 08 02 A6 */ mflr r0 -/* 80154280 90 01 00 14 */ stw r0, 0x14(r1) -/* 80154284 7C 83 23 78 */ mr r3, r4 -/* 80154288 7C A4 2B 78 */ mr r4, r5 -/* 8015428C 48 00 18 49 */ bl daNpcF_getDistTableIdx__Fii -/* 80154290 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80154294 7C 08 03 A6 */ mtlr r0 -/* 80154298 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015429C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/getIdx__16daBaseNpc_path_cFv.s b/asm/d/a/d_a_npc/getIdx__16daBaseNpc_path_cFv.s deleted file mode 100644 index 3abcfbdc97..0000000000 --- a/asm/d/a/d_a_npc/getIdx__16daBaseNpc_path_cFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8014DB04: -/* 8014DB04 A0 63 0A 10 */ lhz r3, 0xa10(r3) -/* 8014DB08 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/getTexPtrnAnmP__11daBaseNpc_cFPci.s b/asm/d/a/d_a_npc/getTexPtrnAnmP__11daBaseNpc_cFPci.s deleted file mode 100644 index 7e981ee209..0000000000 --- a/asm/d/a/d_a_npc/getTexPtrnAnmP__11daBaseNpc_cFPci.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8014EF28: -/* 8014EF28 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014EF2C 7C 08 02 A6 */ mflr r0 -/* 8014EF30 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014EF34 7C 83 23 78 */ mr r3, r4 -/* 8014EF38 7C A4 2B 78 */ mr r4, r5 -/* 8014EF3C 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014EF40 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014EF44 3C A5 00 02 */ addis r5, r5, 2 -/* 8014EF48 38 C0 00 80 */ li r6, 0x80 -/* 8014EF4C 38 A5 C2 F8 */ addi r5, r5, -15624 -/* 8014EF50 4B EE D3 9D */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 8014EF54 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014EF58 7C 08 03 A6 */ mtlr r0 -/* 8014EF5C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014EF60 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/getTrnsfrmKeyAnmP__11daBaseNpc_cFPci.s b/asm/d/a/d_a_npc/getTrnsfrmKeyAnmP__11daBaseNpc_cFPci.s deleted file mode 100644 index 611ab9a58b..0000000000 --- a/asm/d/a/d_a_npc/getTrnsfrmKeyAnmP__11daBaseNpc_cFPci.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8014EE44: -/* 8014EE44 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014EE48 7C 08 02 A6 */ mflr r0 -/* 8014EE4C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014EE50 7C 83 23 78 */ mr r3, r4 -/* 8014EE54 7C A4 2B 78 */ mr r4, r5 -/* 8014EE58 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014EE5C 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014EE60 3C A5 00 02 */ addis r5, r5, 2 -/* 8014EE64 38 C0 00 80 */ li r6, 0x80 -/* 8014EE68 38 A5 C2 F8 */ addi r5, r5, -15624 -/* 8014EE6C 4B EE D4 81 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 8014EE70 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014EE74 7C 08 03 A6 */ mtlr r0 -/* 8014EE78 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014EE7C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/hermite__13daNpcT_Path_cFR4cXyzR4cXyzR4cXyzR4cXyzR16daNpcT_Hermite_cR4cXyz.s b/asm/d/a/d_a_npc/hermite__13daNpcT_Path_cFR4cXyzR4cXyzR4cXyzR4cXyzR16daNpcT_Hermite_cR4cXyz.s deleted file mode 100644 index 9d1cdc59e7..0000000000 --- a/asm/d/a/d_a_npc/hermite__13daNpcT_Path_cFR4cXyzR4cXyzR4cXyzR4cXyzR16daNpcT_Hermite_cR4cXyz.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_80145B7C: -/* 80145B7C C0 27 00 00 */ lfs f1, 0(r7) -/* 80145B80 C0 08 00 10 */ lfs f0, 0x10(r8) -/* 80145B84 EC 81 00 32 */ fmuls f4, f1, f0 -/* 80145B88 C0 25 00 00 */ lfs f1, 0(r5) -/* 80145B8C C0 08 00 0C */ lfs f0, 0xc(r8) -/* 80145B90 EC 61 00 32 */ fmuls f3, f1, f0 -/* 80145B94 C0 24 00 00 */ lfs f1, 0(r4) -/* 80145B98 C0 08 00 04 */ lfs f0, 4(r8) -/* 80145B9C EC 41 00 32 */ fmuls f2, f1, f0 -/* 80145BA0 C0 26 00 00 */ lfs f1, 0(r6) -/* 80145BA4 C0 08 00 08 */ lfs f0, 8(r8) -/* 80145BA8 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80145BAC EC 02 00 2A */ fadds f0, f2, f0 -/* 80145BB0 EC 03 00 2A */ fadds f0, f3, f0 -/* 80145BB4 EC 04 00 2A */ fadds f0, f4, f0 -/* 80145BB8 D0 09 00 00 */ stfs f0, 0(r9) -/* 80145BBC C0 27 00 04 */ lfs f1, 4(r7) -/* 80145BC0 C0 08 00 10 */ lfs f0, 0x10(r8) -/* 80145BC4 EC 81 00 32 */ fmuls f4, f1, f0 -/* 80145BC8 C0 25 00 04 */ lfs f1, 4(r5) -/* 80145BCC C0 08 00 0C */ lfs f0, 0xc(r8) -/* 80145BD0 EC 61 00 32 */ fmuls f3, f1, f0 -/* 80145BD4 C0 24 00 04 */ lfs f1, 4(r4) -/* 80145BD8 C0 08 00 04 */ lfs f0, 4(r8) -/* 80145BDC EC 41 00 32 */ fmuls f2, f1, f0 -/* 80145BE0 C0 26 00 04 */ lfs f1, 4(r6) -/* 80145BE4 C0 08 00 08 */ lfs f0, 8(r8) -/* 80145BE8 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80145BEC EC 02 00 2A */ fadds f0, f2, f0 -/* 80145BF0 EC 03 00 2A */ fadds f0, f3, f0 -/* 80145BF4 EC 04 00 2A */ fadds f0, f4, f0 -/* 80145BF8 D0 09 00 04 */ stfs f0, 4(r9) -/* 80145BFC C0 27 00 08 */ lfs f1, 8(r7) -/* 80145C00 C0 08 00 10 */ lfs f0, 0x10(r8) -/* 80145C04 EC 81 00 32 */ fmuls f4, f1, f0 -/* 80145C08 C0 25 00 08 */ lfs f1, 8(r5) -/* 80145C0C C0 08 00 0C */ lfs f0, 0xc(r8) -/* 80145C10 EC 61 00 32 */ fmuls f3, f1, f0 -/* 80145C14 C0 24 00 08 */ lfs f1, 8(r4) -/* 80145C18 C0 08 00 04 */ lfs f0, 4(r8) -/* 80145C1C EC 41 00 32 */ fmuls f2, f1, f0 -/* 80145C20 C0 26 00 08 */ lfs f1, 8(r6) -/* 80145C24 C0 08 00 08 */ lfs f0, 8(r8) -/* 80145C28 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80145C2C EC 02 00 2A */ fadds f0, f2, f0 -/* 80145C30 EC 03 00 2A */ fadds f0, f3, f0 -/* 80145C34 EC 04 00 2A */ fadds f0, f4, f0 -/* 80145C38 D0 09 00 08 */ stfs f0, 8(r9) -/* 80145C3C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/initTalk__8daNpcF_cFiPP10fopAc_ac_c.s b/asm/d/a/d_a_npc/initTalk__8daNpcF_cFiPP10fopAc_ac_c.s deleted file mode 100644 index 91c7360c1b..0000000000 --- a/asm/d/a/d_a_npc/initTalk__8daNpcF_cFiPP10fopAc_ac_c.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_80153D1C: -/* 80153D1C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80153D20 7C 08 02 A6 */ mflr r0 -/* 80153D24 90 01 00 14 */ stw r0, 0x14(r1) -/* 80153D28 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80153D2C 7C 7F 1B 78 */ mr r31, r3 -/* 80153D30 7C 80 23 78 */ mr r0, r4 -/* 80153D34 7C A7 2B 78 */ mr r7, r5 -/* 80153D38 38 7F 09 F8 */ addi r3, r31, 0x9f8 -/* 80153D3C 7F E4 FB 78 */ mr r4, r31 -/* 80153D40 7C 05 03 78 */ mr r5, r0 -/* 80153D44 38 C0 00 00 */ li r6, 0 -/* 80153D48 48 0F 62 49 */ bl init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c -/* 80153D4C C0 02 99 D8 */ lfs f0, lit_4116(r2) -/* 80153D50 D0 1F 05 2C */ stfs f0, 0x52c(r31) -/* 80153D54 D0 1F 04 F8 */ stfs f0, 0x4f8(r31) -/* 80153D58 D0 1F 04 FC */ stfs f0, 0x4fc(r31) -/* 80153D5C D0 1F 05 00 */ stfs f0, 0x500(r31) -/* 80153D60 38 00 00 00 */ li r0, 0 -/* 80153D64 98 1F 09 E9 */ stb r0, 0x9e9(r31) -/* 80153D68 98 1F 09 EC */ stb r0, 0x9ec(r31) -/* 80153D6C 38 60 00 01 */ li r3, 1 -/* 80153D70 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80153D74 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80153D78 7C 08 03 A6 */ mtlr r0 -/* 80153D7C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80153D80 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/initTalk__8daNpcT_cFiPP10fopAc_ac_c.s b/asm/d/a/d_a_npc/initTalk__8daNpcT_cFiPP10fopAc_ac_c.s deleted file mode 100644 index 5508d0b9f9..0000000000 --- a/asm/d/a/d_a_npc/initTalk__8daNpcT_cFiPP10fopAc_ac_c.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_8014BBF0: -/* 8014BBF0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014BBF4 7C 08 02 A6 */ mflr r0 -/* 8014BBF8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014BBFC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8014BC00 7C 7F 1B 78 */ mr r31, r3 -/* 8014BC04 7C 80 23 78 */ mr r0, r4 -/* 8014BC08 7C A7 2B 78 */ mr r7, r5 -/* 8014BC0C 38 7F 09 74 */ addi r3, r31, 0x974 -/* 8014BC10 7F E4 FB 78 */ mr r4, r31 -/* 8014BC14 7C 05 03 78 */ mr r5, r0 -/* 8014BC18 38 C0 00 00 */ li r6, 0 -/* 8014BC1C 48 0F E3 75 */ bl init__10dMsgFlow_cFP10fopAc_ac_ciiPP10fopAc_ac_c -/* 8014BC20 7F E3 FB 78 */ mr r3, r31 -/* 8014BC24 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014BC28 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014BC2C 80 84 5D AC */ lwz r4, 0x5dac(r4) -/* 8014BC30 4B EC EA E1 */ bl fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c -/* 8014BC34 B0 7F 0D C8 */ sth r3, 0xdc8(r31) -/* 8014BC38 A8 1F 0D D8 */ lha r0, 0xdd8(r31) -/* 8014BC3C 2C 00 00 01 */ cmpwi r0, 1 -/* 8014BC40 40 82 00 0C */ bne lbl_8014BC4C -/* 8014BC44 38 00 00 00 */ li r0, 0 -/* 8014BC48 B0 1F 0D D8 */ sth r0, 0xdd8(r31) -lbl_8014BC4C: -/* 8014BC4C C0 02 99 D8 */ lfs f0, lit_4116(r2) -/* 8014BC50 D0 1F 05 2C */ stfs f0, 0x52c(r31) -/* 8014BC54 D0 1F 04 F8 */ stfs f0, 0x4f8(r31) -/* 8014BC58 D0 1F 04 FC */ stfs f0, 0x4fc(r31) -/* 8014BC5C D0 1F 05 00 */ stfs f0, 0x500(r31) -/* 8014BC60 38 60 00 01 */ li r3, 1 -/* 8014BC64 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8014BC68 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014BC6C 7C 08 03 A6 */ mtlr r0 -/* 8014BC70 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014BC74 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/initialize__13daNpcF_Path_cFv.s b/asm/d/a/d_a_npc/initialize__13daNpcF_Path_cFv.s deleted file mode 100644 index 8d1fb84add..0000000000 --- a/asm/d/a/d_a_npc/initialize__13daNpcF_Path_cFv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_80150900: -/* 80150900 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80150904 7C 08 02 A6 */ mflr r0 -/* 80150908 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015090C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80150910 7C 7F 1B 78 */ mr r31, r3 -/* 80150914 38 00 00 00 */ li r0, 0 -/* 80150918 B0 03 00 00 */ sth r0, 0(r3) -/* 8015091C 98 03 00 02 */ stb r0, 2(r3) -/* 80150920 98 03 00 03 */ stb r0, 3(r3) -/* 80150924 90 03 00 04 */ stw r0, 4(r3) -/* 80150928 38 7F 00 20 */ addi r3, r31, 0x20 -/* 8015092C 38 80 00 00 */ li r4, 0 -/* 80150930 38 A0 00 00 */ li r5, 0 -/* 80150934 4B FF FF 3D */ bl initialize__16daNpcF_SPCurve_cFP5dPathi -/* 80150938 C0 02 99 D8 */ lfs f0, lit_4116(r2) -/* 8015093C D0 1F 00 08 */ stfs f0, 8(r31) -/* 80150940 D0 1F 00 0C */ stfs f0, 0xc(r31) -/* 80150944 D0 1F 00 10 */ stfs f0, 0x10(r31) -/* 80150948 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8015094C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80150950 7C 08 03 A6 */ mtlr r0 -/* 80150954 38 21 00 10 */ addi r1, r1, 0x10 -/* 80150958 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/initialize__13daNpcT_Path_cFv.s b/asm/d/a/d_a_npc/initialize__13daNpcT_Path_cFv.s deleted file mode 100644 index b047750e58..0000000000 --- a/asm/d/a/d_a_npc/initialize__13daNpcT_Path_cFv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80145C40: -/* 80145C40 38 00 00 00 */ li r0, 0 -/* 80145C44 90 03 00 00 */ stw r0, 0(r3) -/* 80145C48 C0 02 99 D8 */ lfs f0, lit_4116(r2) -/* 80145C4C D0 03 00 04 */ stfs f0, 4(r3) -/* 80145C50 D0 03 00 08 */ stfs f0, 8(r3) -/* 80145C54 D0 03 00 0C */ stfs f0, 0xc(r3) -/* 80145C58 D0 03 00 10 */ stfs f0, 0x10(r3) -/* 80145C5C D0 03 00 14 */ stfs f0, 0x14(r3) -/* 80145C60 D0 03 00 18 */ stfs f0, 0x18(r3) -/* 80145C64 B0 03 00 1C */ sth r0, 0x1c(r3) -/* 80145C68 98 03 00 20 */ stb r0, 0x20(r3) -/* 80145C6C 98 03 00 21 */ stb r0, 0x21(r3) -/* 80145C70 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/initialize__15daNpcF_MatAnm_cFv.s b/asm/d/a/d_a_npc/initialize__15daNpcF_MatAnm_cFv.s deleted file mode 100644 index 52926b30a3..0000000000 --- a/asm/d/a/d_a_npc/initialize__15daNpcF_MatAnm_cFv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80150738: -/* 80150738 C0 02 99 D8 */ lfs f0, lit_4116(r2) -/* 8015073C D0 03 00 F4 */ stfs f0, 0xf4(r3) -/* 80150740 D0 03 00 F8 */ stfs f0, 0xf8(r3) -/* 80150744 D0 03 00 FC */ stfs f0, 0xfc(r3) -/* 80150748 D0 03 01 00 */ stfs f0, 0x100(r3) -/* 8015074C 38 00 00 00 */ li r0, 0 -/* 80150750 98 03 01 04 */ stb r0, 0x104(r3) -/* 80150754 98 03 01 05 */ stb r0, 0x105(r3) -/* 80150758 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/initialize__15daNpcT_MatAnm_cFv.s b/asm/d/a/d_a_npc/initialize__15daNpcT_MatAnm_cFv.s deleted file mode 100644 index 397ed3b84b..0000000000 --- a/asm/d/a/d_a_npc/initialize__15daNpcT_MatAnm_cFv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_80145764: -/* 80145764 C0 02 99 D8 */ lfs f0, lit_4116(r2) -/* 80145768 D0 03 00 F4 */ stfs f0, 0xf4(r3) -/* 8014576C D0 03 00 F8 */ stfs f0, 0xf8(r3) -/* 80145770 D0 03 00 FC */ stfs f0, 0xfc(r3) -/* 80145774 D0 03 01 00 */ stfs f0, 0x100(r3) -/* 80145778 38 00 00 00 */ li r0, 0 -/* 8014577C 98 03 01 04 */ stb r0, 0x104(r3) -/* 80145780 98 03 01 05 */ stb r0, 0x105(r3) -/* 80145784 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/initialize__18daNpcF_ActorMngr_cFv.s b/asm/d/a/d_a_npc/initialize__18daNpcF_ActorMngr_cFv.s deleted file mode 100644 index 2f0c72e21f..0000000000 --- a/asm/d/a/d_a_npc/initialize__18daNpcF_ActorMngr_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_801506B0: -/* 801506B0 38 00 FF FF */ li r0, -1 -/* 801506B4 90 03 00 00 */ stw r0, 0(r3) -/* 801506B8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/isPath__16daBaseNpc_path_cFv.s b/asm/d/a/d_a_npc/isPath__16daBaseNpc_path_cFv.s deleted file mode 100644 index 11db162cf7..0000000000 --- a/asm/d/a/d_a_npc/isPath__16daBaseNpc_path_cFv.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8014D9A8: -/* 8014D9A8 80 63 00 04 */ lwz r3, 4(r3) -/* 8014D9AC 30 03 FF FF */ addic r0, r3, -1 -/* 8014D9B0 7C 00 19 10 */ subfe r0, r0, r3 -/* 8014D9B4 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 8014D9B8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/limitter__18daBaseNpc_lookat_cFsPsss.s b/asm/d/a/d_a_npc/limitter__18daBaseNpc_lookat_cFsPsss.s deleted file mode 100644 index 502af22d29..0000000000 --- a/asm/d/a/d_a_npc/limitter__18daBaseNpc_lookat_cFsPsss.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8014DB40: -/* 8014DB40 7C 88 07 34 */ extsh r8, r4 -/* 8014DB44 A8 65 00 00 */ lha r3, 0(r5) -/* 8014DB48 7D 28 1A 14 */ add r9, r8, r3 -/* 8014DB4C 7C C0 07 34 */ extsh r0, r6 -/* 8014DB50 7C 00 48 00 */ cmpw r0, r9 -/* 8014DB54 40 80 00 24 */ bge lbl_8014DB78 -/* 8014DB58 7C 08 00 00 */ cmpw r8, r0 -/* 8014DB5C 40 80 00 14 */ bge lbl_8014DB70 -/* 8014DB60 7C 00 48 50 */ subf r0, r0, r9 -/* 8014DB64 7C 00 18 50 */ subf r0, r0, r3 -/* 8014DB68 B0 05 00 00 */ sth r0, 0(r5) -/* 8014DB6C 48 00 00 0C */ b lbl_8014DB78 -lbl_8014DB70: -/* 8014DB70 38 00 00 00 */ li r0, 0 -/* 8014DB74 B0 05 00 00 */ sth r0, 0(r5) -lbl_8014DB78: -/* 8014DB78 A8 C5 00 00 */ lha r6, 0(r5) -/* 8014DB7C 7D 08 32 14 */ add r8, r8, r6 -/* 8014DB80 7C E3 07 34 */ extsh r3, r7 -/* 8014DB84 7C 08 18 00 */ cmpw r8, r3 -/* 8014DB88 4C 80 00 20 */ bgelr -/* 8014DB8C 7C 80 07 34 */ extsh r0, r4 -/* 8014DB90 7C 03 00 00 */ cmpw r3, r0 -/* 8014DB94 40 80 00 14 */ bge lbl_8014DBA8 -/* 8014DB98 7C 03 40 50 */ subf r0, r3, r8 -/* 8014DB9C 7C 00 30 50 */ subf r0, r0, r6 -/* 8014DBA0 B0 05 00 00 */ sth r0, 0(r5) -/* 8014DBA4 4E 80 00 20 */ blr -lbl_8014DBA8: -/* 8014DBA8 38 00 00 00 */ li r0, 0 -/* 8014DBAC B0 05 00 00 */ sth r0, 0(r5) -/* 8014DBB0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/orderEvent__11daBaseNpc_cFiPc.s b/asm/d/a/d_a_npc/orderEvent__11daBaseNpc_cFiPc.s deleted file mode 100644 index e0301e9417..0000000000 --- a/asm/d/a/d_a_npc/orderEvent__11daBaseNpc_cFiPc.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_8014EFF4: -/* 8014EFF4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014EFF8 7C 08 02 A6 */ mflr r0 -/* 8014EFFC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014F000 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8014F004 7C 7F 1B 78 */ mr r31, r3 -/* 8014F008 28 05 00 00 */ cmplwi r5, 0 -/* 8014F00C 41 82 00 44 */ beq lbl_8014F050 -/* 8014F010 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014F014 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014F018 38 63 4F F8 */ addi r3, r3, 0x4ff8 -/* 8014F01C 7F E4 FB 78 */ mr r4, r31 -/* 8014F020 38 C0 00 FF */ li r6, 0xff -/* 8014F024 4B EF 87 35 */ bl getEventIdx__16dEvent_manager_cFP10fopAc_ac_cPCcUc -/* 8014F028 B0 7F 08 9A */ sth r3, 0x89a(r31) -/* 8014F02C 7F E3 FB 78 */ mr r3, r31 -/* 8014F030 A8 9F 08 9A */ lha r4, 0x89a(r31) -/* 8014F034 38 A0 00 FF */ li r5, 0xff -/* 8014F038 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */ -/* 8014F03C 38 C6 FF FF */ addi r6, r6, 0xFFFF /* 0x0000FFFF@l */ -/* 8014F040 38 E0 00 00 */ li r7, 0 -/* 8014F044 39 00 00 01 */ li r8, 1 -/* 8014F048 4B EC C6 35 */ bl fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs -/* 8014F04C 48 00 00 3C */ b lbl_8014F088 -lbl_8014F050: -/* 8014F050 80 1F 08 48 */ lwz r0, 0x848(r31) -/* 8014F054 2C 00 00 00 */ cmpwi r0, 0 -/* 8014F058 41 80 00 30 */ blt lbl_8014F088 -/* 8014F05C 80 1F 05 5C */ lwz r0, 0x55c(r31) -/* 8014F060 28 00 00 0A */ cmplwi r0, 0xa -/* 8014F064 40 82 00 24 */ bne lbl_8014F088 -/* 8014F068 A0 1F 00 FA */ lhz r0, 0xfa(r31) -/* 8014F06C 60 00 00 01 */ ori r0, r0, 1 -/* 8014F070 B0 1F 00 FA */ sth r0, 0xfa(r31) -/* 8014F074 2C 04 00 00 */ cmpwi r4, 0 -/* 8014F078 41 82 00 10 */ beq lbl_8014F088 -/* 8014F07C 38 80 00 00 */ li r4, 0 -/* 8014F080 38 A0 00 00 */ li r5, 0 -/* 8014F084 4B EC C1 19 */ bl fopAcM_orderSpeakEvent__FP10fopAc_ac_cUsUs -lbl_8014F088: -/* 8014F088 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8014F08C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014F090 7C 08 03 A6 */ mtlr r0 -/* 8014F094 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014F098 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/remove__18daNpcF_ActorMngr_cFv.s b/asm/d/a/d_a_npc/remove__18daNpcF_ActorMngr_cFv.s deleted file mode 100644 index 49c64dc578..0000000000 --- a/asm/d/a/d_a_npc/remove__18daNpcF_ActorMngr_cFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_801506E0: -/* 801506E0 38 00 FF FF */ li r0, -1 -/* 801506E4 90 03 00 00 */ stw r0, 0(r3) -/* 801506E8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/reverseDir__16daBaseNpc_path_cFv.s b/asm/d/a/d_a_npc/reverseDir__16daBaseNpc_path_cFv.s deleted file mode 100644 index 52b65f5549..0000000000 --- a/asm/d/a/d_a_npc/reverseDir__16daBaseNpc_path_cFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8014DA48: -/* 8014DA48 88 03 0A 12 */ lbz r0, 0xa12(r3) -/* 8014DA4C 7C 00 07 75 */ extsb. r0, r0 -/* 8014DA50 38 00 00 01 */ li r0, 1 -/* 8014DA54 40 81 00 08 */ ble lbl_8014DA5C -/* 8014DA58 38 00 FF FF */ li r0, -1 -lbl_8014DA5C: -/* 8014DA5C 98 03 0A 12 */ stb r0, 0xa12(r3) -/* 8014DA60 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/reverse__13daNpcF_Path_cFv.s b/asm/d/a/d_a_npc/reverse__13daNpcF_Path_cFv.s deleted file mode 100644 index 6a24d437db..0000000000 --- a/asm/d/a/d_a_npc/reverse__13daNpcF_Path_cFv.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80150BBC: -/* 80150BBC 88 03 00 02 */ lbz r0, 2(r3) -/* 80150BC0 28 00 00 01 */ cmplwi r0, 1 -/* 80150BC4 40 82 00 10 */ bne lbl_80150BD4 -/* 80150BC8 38 00 00 00 */ li r0, 0 -/* 80150BCC 98 03 00 02 */ stb r0, 2(r3) -/* 80150BD0 4E 80 00 20 */ blr -lbl_80150BD4: -/* 80150BD4 38 00 00 01 */ li r0, 1 -/* 80150BD8 98 03 00 02 */ stb r0, 2(r3) -/* 80150BDC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/reverse__13daNpcT_Path_cFv.s b/asm/d/a/d_a_npc/reverse__13daNpcT_Path_cFv.s deleted file mode 100644 index b77e19f753..0000000000 --- a/asm/d/a/d_a_npc/reverse__13daNpcT_Path_cFv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80145DA0: -/* 80145DA0 88 03 00 20 */ lbz r0, 0x20(r3) -/* 80145DA4 28 00 00 01 */ cmplwi r0, 1 -/* 80145DA8 40 82 00 18 */ bne lbl_80145DC0 -/* 80145DAC 38 00 00 00 */ li r0, 0 -/* 80145DB0 98 03 00 20 */ stb r0, 0x20(r3) -/* 80145DB4 38 00 00 01 */ li r0, 1 -/* 80145DB8 B0 03 00 1E */ sth r0, 0x1e(r3) -/* 80145DBC 4E 80 00 20 */ blr -lbl_80145DC0: -/* 80145DC0 38 00 00 01 */ li r0, 1 -/* 80145DC4 98 03 00 20 */ stb r0, 0x20(r3) -/* 80145DC8 B0 03 00 1E */ sth r0, 0x1e(r3) -/* 80145DCC 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/setAttnPos__18daBaseNpc_lookat_cFP4cXyz.s b/asm/d/a/d_a_npc/setAttnPos__18daBaseNpc_lookat_cFP4cXyz.s deleted file mode 100644 index 279ae843d3..0000000000 --- a/asm/d/a/d_a_npc/setAttnPos__18daBaseNpc_lookat_cFP4cXyz.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8014E6A0: -/* 8014E6A0 90 83 00 98 */ stw r4, 0x98(r3) -/* 8014E6A4 38 60 00 01 */ li r3, 1 -/* 8014E6A8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/setBckAnm__11daBaseNpc_cFP15J3DAnmTransformfiiib.s b/asm/d/a/d_a_npc/setBckAnm__11daBaseNpc_cFP15J3DAnmTransformfiiib.s deleted file mode 100644 index d5371b3289..0000000000 --- a/asm/d/a/d_a_npc/setBckAnm__11daBaseNpc_cFP15J3DAnmTransformfiiib.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_8014EEE4: -/* 8014EEE4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014EEE8 7C 08 02 A6 */ mflr r0 -/* 8014EEEC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014EEF0 7C AB 2B 78 */ mr r11, r5 -/* 8014EEF4 7C CA 33 78 */ mr r10, r6 -/* 8014EEF8 7C E0 3B 78 */ mr r0, r7 -/* 8014EEFC 7D 09 43 78 */ mr r9, r8 -/* 8014EF00 38 A0 00 01 */ li r5, 1 -/* 8014EF04 7D 66 5B 78 */ mr r6, r11 -/* 8014EF08 7D 47 07 34 */ extsh r7, r10 -/* 8014EF0C 7C 08 07 34 */ extsh r8, r0 -/* 8014EF10 38 63 07 EC */ addi r3, r3, 0x7ec -/* 8014EF14 4B EB E8 C9 */ bl init__13mDoExt_bckAnmFP15J3DAnmTransformiifssb -/* 8014EF18 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014EF1C 7C 08 03 A6 */ mtlr r0 -/* 8014EF20 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014EF24 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/setBtpAnm__11daBaseNpc_cFP16J3DAnmTexPatternP12J3DModelDatafi.s b/asm/d/a/d_a_npc/setBtpAnm__11daBaseNpc_cFP16J3DAnmTexPatternP12J3DModelDatafi.s deleted file mode 100644 index 2c855bfedf..0000000000 --- a/asm/d/a/d_a_npc/setBtpAnm__11daBaseNpc_cFP16J3DAnmTexPatternP12J3DModelDatafi.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_8014EF64: -/* 8014EF64 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014EF68 7C 08 02 A6 */ mflr r0 -/* 8014EF6C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014EF70 7C 80 23 78 */ mr r0, r4 -/* 8014EF74 7C C7 33 78 */ mr r7, r6 -/* 8014EF78 38 85 00 58 */ addi r4, r5, 0x58 -/* 8014EF7C 7C 05 03 78 */ mr r5, r0 -/* 8014EF80 38 C0 00 01 */ li r6, 1 -/* 8014EF84 39 00 00 00 */ li r8, 0 -/* 8014EF88 39 20 FF FF */ li r9, -1 -/* 8014EF8C 38 63 08 08 */ addi r3, r3, 0x808 -/* 8014EF90 4B EB E5 BD */ bl init__13mDoExt_btpAnmFP16J3DMaterialTableP16J3DAnmTexPatterniifss -/* 8014EF94 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014EF98 7C 08 03 A6 */ mtlr r0 -/* 8014EF9C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014EFA0 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/setEnvTevColor__11daBaseNpc_cFv.s b/asm/d/a/d_a_npc/setEnvTevColor__11daBaseNpc_cFv.s deleted file mode 100644 index 523d1d1dfd..0000000000 --- a/asm/d/a/d_a_npc/setEnvTevColor__11daBaseNpc_cFv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_8014F0A0: -/* 8014F0A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014F0A4 7C 08 02 A6 */ mflr r0 -/* 8014F0A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014F0AC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8014F0B0 93 C1 00 08 */ stw r30, 8(r1) -/* 8014F0B4 7C 7E 1B 78 */ mr r30, r3 -/* 8014F0B8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014F0BC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014F0C0 3B E3 0F 38 */ addi r31, r3, 0xf38 -/* 8014F0C4 7F E3 FB 78 */ mr r3, r31 -/* 8014F0C8 38 9E 09 E8 */ addi r4, r30, 0x9e8 -/* 8014F0CC 4B F2 5B 1D */ bl GetPolyColor__4dBgSFRC13cBgS_PolyInfo -/* 8014F0D0 98 7E 04 8D */ stb r3, 0x48d(r30) -/* 8014F0D4 7F E3 FB 78 */ mr r3, r31 -/* 8014F0D8 38 9E 09 E8 */ addi r4, r30, 0x9e8 -/* 8014F0DC 4B F2 60 25 */ bl GetRoomId__4dBgSFRC13cBgS_PolyInfo -/* 8014F0E0 98 7E 04 8C */ stb r3, 0x48c(r30) -/* 8014F0E4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8014F0E8 83 C1 00 08 */ lwz r30, 8(r1) -/* 8014F0EC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014F0F0 7C 08 03 A6 */ mtlr r0 -/* 8014F0F4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014F0F8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/setJntPos__18daBaseNpc_lookat_cF4cXyzi.s b/asm/d/a/d_a_npc/setJntPos__18daBaseNpc_lookat_cF4cXyzi.s deleted file mode 100644 index 0bda9ba38d..0000000000 --- a/asm/d/a/d_a_npc/setJntPos__18daBaseNpc_lookat_cF4cXyzi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8014E67C: -/* 8014E67C C0 04 00 00 */ lfs f0, 0(r4) -/* 8014E680 1C 05 00 0C */ mulli r0, r5, 0xc -/* 8014E684 7C 63 02 14 */ add r3, r3, r0 -/* 8014E688 D0 03 00 34 */ stfs f0, 0x34(r3) -/* 8014E68C C0 04 00 04 */ lfs f0, 4(r4) -/* 8014E690 D0 03 00 38 */ stfs f0, 0x38(r3) -/* 8014E694 C0 04 00 08 */ lfs f0, 8(r4) -/* 8014E698 D0 03 00 3C */ stfs f0, 0x3c(r3) -/* 8014E69C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/setMaxJntLmt__18daBaseNpc_lookat_cF5csXyzi.s b/asm/d/a/d_a_npc/setMaxJntLmt__18daBaseNpc_lookat_cF5csXyzi.s deleted file mode 100644 index 32fb389fc5..0000000000 --- a/asm/d/a/d_a_npc/setMaxJntLmt__18daBaseNpc_lookat_cF5csXyzi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8014E634: -/* 8014E634 A8 04 00 00 */ lha r0, 0(r4) -/* 8014E638 1C A5 00 06 */ mulli r5, r5, 6 -/* 8014E63C 7C 63 2A 14 */ add r3, r3, r5 -/* 8014E640 B0 03 00 04 */ sth r0, 4(r3) -/* 8014E644 A8 04 00 02 */ lha r0, 2(r4) -/* 8014E648 B0 03 00 06 */ sth r0, 6(r3) -/* 8014E64C A8 04 00 04 */ lha r0, 4(r4) -/* 8014E650 B0 03 00 08 */ sth r0, 8(r3) -/* 8014E654 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/setMinJntLmt__18daBaseNpc_lookat_cF5csXyzi.s b/asm/d/a/d_a_npc/setMinJntLmt__18daBaseNpc_lookat_cF5csXyzi.s deleted file mode 100644 index 20fd31a1a0..0000000000 --- a/asm/d/a/d_a_npc/setMinJntLmt__18daBaseNpc_lookat_cF5csXyzi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8014E658: -/* 8014E658 A8 04 00 00 */ lha r0, 0(r4) -/* 8014E65C 1C A5 00 06 */ mulli r5, r5, 6 -/* 8014E660 7C 63 2A 14 */ add r3, r3, r5 -/* 8014E664 B0 03 00 1C */ sth r0, 0x1c(r3) -/* 8014E668 A8 04 00 02 */ lha r0, 2(r4) -/* 8014E66C B0 03 00 1E */ sth r0, 0x1e(r3) -/* 8014E670 A8 04 00 04 */ lha r0, 4(r4) -/* 8014E674 B0 03 00 20 */ sth r0, 0x20(r3) -/* 8014E678 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/setMtx__11daBaseNpc_cFi.s b/asm/d/a/d_a_npc/setMtx__11daBaseNpc_cFi.s deleted file mode 100644 index 9b9de4bdd9..0000000000 --- a/asm/d/a/d_a_npc/setMtx__11daBaseNpc_cFi.s +++ /dev/null @@ -1,77 +0,0 @@ -lbl_8014F390: -/* 8014F390 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8014F394 7C 08 02 A6 */ mflr r0 -/* 8014F398 90 01 00 24 */ stw r0, 0x24(r1) -/* 8014F39C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8014F3A0 48 21 2E 39 */ bl _savegpr_28 -/* 8014F3A4 7C 7F 1B 78 */ mr r31, r3 -/* 8014F3A8 7C 9C 23 78 */ mr r28, r4 -/* 8014F3AC 80 63 07 54 */ lwz r3, 0x754(r3) -/* 8014F3B0 83 C3 00 04 */ lwz r30, 4(r3) -/* 8014F3B4 83 BE 00 04 */ lwz r29, 4(r30) -/* 8014F3B8 38 7F 04 D0 */ addi r3, r31, 0x4d0 -/* 8014F3BC 4B EB D9 A9 */ bl transS__14mDoMtx_stack_cFRC4cXyz -/* 8014F3C0 38 7F 09 1A */ addi r3, r31, 0x91a -/* 8014F3C4 4B EB DB 81 */ bl ZXYrotM__14mDoMtx_stack_cFRC5csXyz -/* 8014F3C8 38 7F 04 EC */ addi r3, r31, 0x4ec -/* 8014F3CC 4B EB DA A5 */ bl scaleM__14mDoMtx_stack_cFRC4cXyz -/* 8014F3D0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8014F3D4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8014F3D8 38 9E 00 24 */ addi r4, r30, 0x24 -/* 8014F3DC 48 1F 70 D5 */ bl PSMTXCopy -/* 8014F3E0 2C 1C 00 00 */ cmpwi r28, 0 -/* 8014F3E4 41 82 00 0C */ beq lbl_8014F3F0 -/* 8014F3E8 93 FE 00 14 */ stw r31, 0x14(r30) -/* 8014F3EC 48 00 00 0C */ b lbl_8014F3F8 -lbl_8014F3F0: -/* 8014F3F0 38 00 00 00 */ li r0, 0 -/* 8014F3F4 90 1E 00 14 */ stw r0, 0x14(r30) -lbl_8014F3F8: -/* 8014F3F8 A0 1F 08 40 */ lhz r0, 0x840(r31) -/* 8014F3FC 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 8014F400 41 82 00 80 */ beq lbl_8014F480 -/* 8014F404 80 1F 08 3C */ lwz r0, 0x83c(r31) -/* 8014F408 28 00 00 00 */ cmplwi r0, 0 -/* 8014F40C 41 82 00 74 */ beq lbl_8014F480 -/* 8014F410 3B C0 00 00 */ li r30, 0 -/* 8014F414 48 00 00 18 */ b lbl_8014F42C -lbl_8014F418: -/* 8014F418 38 7F 07 EC */ addi r3, r31, 0x7ec -/* 8014F41C 7F A4 EB 78 */ mr r4, r29 -/* 8014F420 C0 3F 07 FC */ lfs f1, 0x7fc(r31) -/* 8014F424 4B EB E5 C5 */ bl entryJoint__13mDoExt_bckAnmFP12J3DModelDataUsf -/* 8014F428 3B DE 00 01 */ addi r30, r30, 1 -lbl_8014F42C: -/* 8014F42C 80 7F 08 3C */ lwz r3, 0x83c(r31) -/* 8014F430 57 C0 0B FC */ rlwinm r0, r30, 1, 0xf, 0x1e -/* 8014F434 7C A3 02 2E */ lhzx r5, r3, r0 -/* 8014F438 28 05 FF FF */ cmplwi r5, 0xffff -/* 8014F43C 40 82 FF DC */ bne lbl_8014F418 -/* 8014F440 80 7F 07 54 */ lwz r3, 0x754(r31) -/* 8014F444 4B EC 1D A9 */ bl modelCalc__16mDoExt_McaMorfSOFv -/* 8014F448 38 A0 00 00 */ li r5, 0 -/* 8014F44C 38 80 00 00 */ li r4, 0 -/* 8014F450 48 00 00 18 */ b lbl_8014F468 -lbl_8014F454: -/* 8014F454 80 7D 00 28 */ lwz r3, 0x28(r29) -/* 8014F458 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d -/* 8014F45C 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8014F460 90 83 00 54 */ stw r4, 0x54(r3) -/* 8014F464 38 A5 00 01 */ addi r5, r5, 1 -lbl_8014F468: -/* 8014F468 80 7F 08 3C */ lwz r3, 0x83c(r31) -/* 8014F46C 54 A0 0B FC */ rlwinm r0, r5, 1, 0xf, 0x1e -/* 8014F470 7C 03 02 2E */ lhzx r0, r3, r0 -/* 8014F474 28 00 FF FF */ cmplwi r0, 0xffff -/* 8014F478 40 82 FF DC */ bne lbl_8014F454 -/* 8014F47C 48 00 00 0C */ b lbl_8014F488 -lbl_8014F480: -/* 8014F480 80 7F 07 54 */ lwz r3, 0x754(r31) -/* 8014F484 4B EC 1D 69 */ bl modelCalc__16mDoExt_McaMorfSOFv -lbl_8014F488: -/* 8014F488 39 61 00 20 */ addi r11, r1, 0x20 -/* 8014F48C 48 21 2D 99 */ bl _restgpr_28 -/* 8014F490 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8014F494 7C 08 03 A6 */ mtlr r0 -/* 8014F498 38 21 00 20 */ addi r1, r1, 0x20 -/* 8014F49C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/setNextPathInfo__13daNpcT_Path_cFScUc.s b/asm/d/a/d_a_npc/setNextPathInfo__13daNpcT_Path_cFScUc.s deleted file mode 100644 index 25e29e5b70..0000000000 --- a/asm/d/a/d_a_npc/setNextPathInfo__13daNpcT_Path_cFScUc.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_80145D2C: -/* 80145D2C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80145D30 7C 08 02 A6 */ mflr r0 -/* 80145D34 90 01 00 14 */ stw r0, 0x14(r1) -/* 80145D38 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80145D3C 7C 7F 1B 78 */ mr r31, r3 -/* 80145D40 38 00 00 00 */ li r0, 0 -/* 80145D44 B0 03 00 1C */ sth r0, 0x1c(r3) -/* 80145D48 98 A3 00 20 */ stb r5, 0x20(r3) -/* 80145D4C 80 63 00 00 */ lwz r3, 0(r3) -/* 80145D50 A0 63 00 02 */ lhz r3, 2(r3) -/* 80145D54 28 03 FF FF */ cmplwi r3, 0xffff -/* 80145D58 41 82 00 30 */ beq lbl_80145D88 -/* 80145D5C 7C 84 07 74 */ extsb r4, r4 -/* 80145D60 4B F0 BA 8D */ bl dPath_GetRoomPath__Fii -/* 80145D64 90 7F 00 00 */ stw r3, 0(r31) -/* 80145D68 80 7F 00 00 */ lwz r3, 0(r31) -/* 80145D6C 28 03 00 00 */ cmplwi r3, 0 -/* 80145D70 40 82 00 0C */ bne lbl_80145D7C -/* 80145D74 38 60 00 00 */ li r3, 0 -/* 80145D78 48 00 00 14 */ b lbl_80145D8C -lbl_80145D7C: -/* 80145D7C 88 03 00 05 */ lbz r0, 5(r3) -/* 80145D80 54 00 07 FE */ clrlwi r0, r0, 0x1f -/* 80145D84 98 1F 00 21 */ stb r0, 0x21(r31) -lbl_80145D88: -/* 80145D88 38 60 00 01 */ li r3, 1 -lbl_80145D8C: -/* 80145D8C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80145D90 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80145D94 7C 08 03 A6 */ mtlr r0 -/* 80145D98 38 21 00 10 */ addi r1, r1, 0x10 -/* 80145D9C 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/setParam__19daNpcT_DmgStagger_cFP10fopAc_ac_cP10fopAc_ac_cs.s b/asm/d/a/d_a_npc/setParam__19daNpcT_DmgStagger_cFP10fopAc_ac_cP10fopAc_ac_cs.s deleted file mode 100644 index 2e5d6b7856..0000000000 --- a/asm/d/a/d_a_npc/setParam__19daNpcT_DmgStagger_cFP10fopAc_ac_cP10fopAc_ac_cs.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_80147DCC: -/* 80147DCC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80147DD0 7C 08 02 A6 */ mflr r0 -/* 80147DD4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80147DD8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80147DDC 93 C1 00 08 */ stw r30, 8(r1) -/* 80147DE0 7C 7E 1B 78 */ mr r30, r3 -/* 80147DE4 7C DF 33 78 */ mr r31, r6 -/* 80147DE8 28 05 00 00 */ cmplwi r5, 0 -/* 80147DEC 41 82 00 38 */ beq lbl_80147E24 -/* 80147DF0 28 04 00 00 */ cmplwi r4, 0 -/* 80147DF4 41 82 00 30 */ beq lbl_80147E24 -/* 80147DF8 C0 02 9A 30 */ lfs f0, lit_5422(r2) -/* 80147DFC D0 1E 00 0C */ stfs f0, 0xc(r30) -/* 80147E00 C0 02 9A 34 */ lfs f0, lit_5423(r2) -/* 80147E04 D0 1E 00 10 */ stfs f0, 0x10(r30) -/* 80147E08 7C 83 23 78 */ mr r3, r4 -/* 80147E0C 7C A4 2B 78 */ mr r4, r5 -/* 80147E10 4B ED 29 01 */ bl fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c -/* 80147E14 7C 1F 18 50 */ subf r0, r31, r3 -/* 80147E18 B0 1E 00 16 */ sth r0, 0x16(r30) -/* 80147E1C 38 00 40 00 */ li r0, 0x4000 -/* 80147E20 B0 1E 00 14 */ sth r0, 0x14(r30) -lbl_80147E24: -/* 80147E24 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80147E28 83 C1 00 08 */ lwz r30, 8(r1) -/* 80147E2C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80147E30 7C 08 03 A6 */ mtlr r0 -/* 80147E34 38 21 00 10 */ addi r1, r1, 0x10 -/* 80147E38 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_npc/setRoomNo__11daBaseNpc_cFv.s b/asm/d/a/d_a_npc/setRoomNo__11daBaseNpc_cFv.s deleted file mode 100644 index 6d57796432..0000000000 --- a/asm/d/a/d_a_npc/setRoomNo__11daBaseNpc_cFv.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_8014F0FC: -/* 8014F0FC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8014F100 7C 08 02 A6 */ mflr r0 -/* 8014F104 90 01 00 14 */ stw r0, 0x14(r1) -/* 8014F108 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8014F10C 7C 7F 1B 78 */ mr r31, r3 -/* 8014F110 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8014F114 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8014F118 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 8014F11C 38 9F 09 E8 */ addi r4, r31, 0x9e8 -/* 8014F120 4B F2 5F E1 */ bl GetRoomId__4dBgSFRC13cBgS_PolyInfo -/* 8014F124 98 7F 04 E2 */ stb r3, 0x4e2(r31) -/* 8014F128 98 7F 08 BE */ stb r3, 0x8be(r31) -/* 8014F12C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8014F130 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8014F134 7C 08 03 A6 */ mtlr r0 -/* 8014F138 38 21 00 10 */ addi r1, r1, 0x10 -/* 8014F13C 4E 80 00 20 */ blr diff --git a/docs/Contributing.md b/docs/Contributing.md index 27626c9187..294dba36fa 100644 --- a/docs/Contributing.md +++ b/docs/Contributing.md @@ -4,17 +4,17 @@ Ghidra Setup ----- 1. Install [Java 11 64-bit Runtime and Development Kit](https://www.oracle.com/java/technologies/javase/jdk11-archive-downloads.html). 2. Download Ghidra from [here](https://github.com/NationalSecurityAgency/ghidra/releases). -3. Request an account from Pheenoh#0001 on Discord (either ping him in one of the [Discord](https://discord.gg/Nshw5pHS4h) channels or DM directly). +3. Open a pull request against [this repo](https://github.com/zsrtp/tp-ghidra-server), adding your desired username and permissions level into users.yaml 4. Login using the following server info: ``` Server: ghidra.tpgz.io Port: 13100 Username: -Password: +Password: changeme ``` -After logging in you will see a list of all the Twilight Princess DOLs for each version. +You will be prompted to change your password at login. After logging in, you will see a list of all the Twilight Princess DOLs for each version. ![](./ghidra.png) diff --git a/include/JSystem/J3DGraphAnimator/J3DAnimation.h b/include/JSystem/J3DGraphAnimator/J3DAnimation.h index 8fcde1731e..a3c6b90415 100644 --- a/include/JSystem/J3DGraphAnimator/J3DAnimation.h +++ b/include/JSystem/J3DGraphAnimator/J3DAnimation.h @@ -585,6 +585,7 @@ public: f32 getFrame() const { return mFrame; } s16 getEnd() const { return mEnd; } u8 getAttribute() const { return mAttribute; } + u8 getState() const { return mState; } void setAttribute(u8 attr) { mAttribute = attr; } void setEnd(s16 end) { mEnd = end; } void setRate(f32 rate) { mRate = rate; } diff --git a/include/SSystem/SComponent/c_m3d.h b/include/SSystem/SComponent/c_m3d.h index f024fd44df..931f31c4d5 100644 --- a/include/SSystem/SComponent/c_m3d.h +++ b/include/SSystem/SComponent/c_m3d.h @@ -87,5 +87,9 @@ void cM3d_CrawVec(const Vec&, const Vec&, Vec*); inline bool cM3d_IsZero(f32 f) { return fabsf(f) < G_CM3D_F_ABS_MIN; } +// this is the inline cM3d_IsZero but inverted. Sometimes this will get a match where the regular cM3d_IsZero inline won't +inline bool cM3d_IsZero_inverted(f32 param_0) { + return !(fabsf(param_0) < G_CM3D_F_ABS_MIN); +} #endif \ No newline at end of file diff --git a/include/d/a/d_a_npc.h b/include/d/a/d_a_npc.h index 082622f526..67c63d578b 100644 --- a/include/d/a/d_a_npc.h +++ b/include/d/a/d_a_npc.h @@ -2,9 +2,41 @@ #define D_A_D_A_NPC_H #include "d/com/d_com_inf_game.h" +#include "d/d_path.h" +#include "d/msg/d_msg_object.h" #include "dolphin/types.h" #include "global.h" +struct dPnt {}; + +class daNpcT_ActorMngr_c { +private: + /* 0x0 */ u32 mActorID; + +public: + /* 801456D4 */ void initialize(); + /* 801456E0 */ void entry(fopAc_ac_c*); + /* 801456FC */ void remove(); + /* 80145708 */ fopAc_ac_c* getActorP(); + + /* 8014D108 */ virtual ~daNpcT_ActorMngr_c(); +}; + +class daNpcT_MatAnm_c : public J3DMaterialAnm { +private: + /* 0x0F4 */ mutable f32 field_0xF4; + /* 0x0F8 */ mutable f32 field_0xF8; + /* 0x0FC */ f32 mTranslationX; + /* 0x100 */ f32 mTranslationY; + /* 0x104 */u8 field_0x104; + /* 0x105 */u8 field_0x105; + +public: + /* 80145764 */ void initialize(); + /* 80145788 */ virtual void calc(J3DMaterial*) const; + /* 8014D24C */ ~daNpcT_MatAnm_c(); +}; + class daNpcT_MotionSeqMngr_c { public: class sequenceStepData_c { @@ -34,19 +66,6 @@ public: /* 8014D0C0 */ virtual ~daNpcT_MotionSeqMngr_c(); }; -class daNpcT_ActorMngr_c { -private: - /* 0x0 */ u32 mActorID; - -public: - /* 801456D4 */ void initialize(); - /* 801456E0 */ void entry(fopAc_ac_c*); - /* 801456FC */ void remove(); - /* 80145708 */ fopAc_ac_c* getActorP(); - - /* 8014D108 */ virtual ~daNpcT_ActorMngr_c(); -}; - class daNpcT_JntAnm_c { private: /* 0x000 */ daNpcT_ActorMngr_c mActrMngr; @@ -95,7 +114,8 @@ public: private: /* 0x00 */ csXyz field_0x0[2]; - /* 0x0C */ f32 field_0xc[2]; + /* 0x0C */ f32 field_0xc; + /* 0x0C */ f32 field_0x10; /* 0x14 */ s16 mStagger; /* 0x16 */ s16 field_0x16; /* 0x18 */ u8 mRebirth; @@ -111,6 +131,59 @@ struct daNpcT_motionAnmData_c { u8 data[8]; }; +class daNpcT_Hermite_c { +public: + /* 8014CBAC */ ~daNpcT_Hermite_c(); + + /* 0x00 */ f32 field_0x00; + /* 0x04 */ cXyz mPosition; + /* 0x10 */ f32 field_0x10; +}; + +class daNpcT_Path_c { +private: + /* 0x00 */ dPath* mpRoomPath; + /* 0x04 */ cXyz mPosition; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ u16 mIdx; + /* 0x1E */ u16 field_0x1E; + /* 0x20 */ u8 mDirection; + /* 0x21 */ u8 mIsClosed; + +public: + /* 80145B7C */ void hermite(cXyz&, cXyz&, cXyz&, cXyz&, daNpcT_Hermite_c&, cXyz&); + /* 80145C40 */ void initialize(); + /* 80145C74 */ int setPathInfo(u8, s8, u8); + /* 80145D2C */ int setNextPathInfo(s8, u8); + /* 80145DA0 */ void reverse(); + /* 80145DD0 */ int setNextIdx(int); + /* 80145E38 */ int getDstPos(cXyz, cXyz*, int); + /* 80145FB4 */ int getDstPosH(cXyz, cXyz*, int, int); + /* 80146188 */ int chkPassed1(cXyz, int); + /* 801464D8 */ int chkPassed2(cXyz, cXyz*, int, int); + + cXyz* getPntPos(u16 i_idx) { + u16 tmpidx = i_idx; + + dStage_dPnt_c* tmppnt = &mpRoomPath->m_points[tmpidx]; + return &tmppnt->m_position; + } + + int chkClose() { + int roomPath = dPath_ChkClose(mpRoomPath); + return roomPath; + } + + u16& getNumPnts() { + dPath* path = mpRoomPath; + return path->m_num; + } + + u16& getIdx() { return mIdx; } +}; + class mDoExt_McaMorfSO; class daNpcT_c : public fopAc_ac_c { @@ -162,7 +235,7 @@ public: /* 0xD90 */ u32 field_0xd90; /* 0xD94 */ u32 field_0xd94; /* 0xD98 */ u32 field_0xd98; - /* 0xD9C */ u32 field_0xd9c; + /* 0xD9C */ profile_method_class* mSubMtd; /* 0xDA0 */ u8 field_0xda0[8]; /* 0xDA8 */ u32 field_0xda8; /* 0xDAC */ int field_0xdac; @@ -174,9 +247,9 @@ public: /* 0xDC4 */ u8 field_0xdc4[4]; /* 0xDC8 */ s16 field_0xdc8; /* 0xDCA */ s16 field_0xdca; - /* 0xDCC */ u8 field_0xdcc[8]; + /* 0xDCC */ u8 field_0xdcc[10]; /* 0xDD4 */ s16 field_0xdd4; - /* 0xDD8 */ s16 field_0xdd8; + /* 0xDD8 */ s16 mStepNo; /* 0xDDA */ s16 field_0xdda; /* 0xDDC */ f32 field_0xddc; /* 0xDE0 */ f32 field_0xde0; @@ -235,13 +308,13 @@ public: /* 8014886C */ int draw(int, int, f32, _GXColorS10*, f32, int, int, int); /* 80148C70 */ void setEnvTevColor(); /* 80148CCC */ void setRoomNo(); - /* 80148D10 */ void checkEndAnm(f32); + /* 80148D10 */ int checkEndAnm(f32); /* 80148DD0 */ void checkEndAnm(J3DFrameCtrl*, f32); /* 80148E4C */ void playAllAnm(); /* 80149190 */ void setMtx(); /* 8014924C */ void ctrlFaceMotion(); /* 80149300 */ void ctrlMotion(); - /* 801493B8 */ void ctrlMsgAnm(int*, int*, fopAc_ac_c*, int); + /* 801493B8 */ int ctrlMsgAnm(int*, int*, fopAc_ac_c*, int); /* 8014A224 */ void evtChange(); /* 8014A388 */ void setFaceMotionAnm(int, bool); /* 8014A908 */ void setPos(cXyz); @@ -261,11 +334,11 @@ public: /* 8014B648 */ void step(s16, int, int, int, int); /* 8014B808 */ void calcSpeedAndAngle(cXyz, int, s16, s16); /* 8014BB00 */ void getActorDistance(fopAc_ac_c*, int, int); - /* 8014BBF0 */ void initTalk(int, fopAc_ac_c**); + /* 8014BBF0 */ int initTalk(int, fopAc_ac_c**); /* 8014BC78 */ void talkProc(int*, int, fopAc_ac_c**, int); /* 8014BE2C */ void getNearestActorP(s16); /* 8014BEE4 */ void getEvtAreaTagP(int, int); - /* 8014BFB0 */ void getShopItemTagP(); + /* 8014BFB0 */ u32 getShopItemTagP(); /* 8014C030 */ void setHitodamaPrtcl(); /* 8014CD20 */ virtual ~daNpcT_c(); @@ -316,7 +389,13 @@ public: /* 8014CCE8 */ virtual void changeBtk(int*, int*); /* 8014A628 */ virtual void setMotionAnm(int, f32, int); - bool checkHide() { return !field_0xe25 && (!dComIfGs_wolfeye_effect_check() && field_0xa89); } + bool checkHide() { + return field_0xe25 || (!dComIfGs_wolfeye_effect_check() && field_0xa89); + } + + s16 checkStep() { + return mStepNo == 1; + } static u8 const mCcDObjData[48]; static u8 mCcDCyl[68]; @@ -337,7 +416,7 @@ public: /* 801506D8 */ void entry(unsigned int); /* 801506BC */ void entry(fopAc_ac_c*); /* 801506E0 */ void remove(); - /* 801506EC */ void getActorP(); + /* 801506EC */ fopAc_ac_c* getActorP(); /* 80155E40 */ virtual ~daNpcF_ActorMngr_c(); }; @@ -431,7 +510,7 @@ private: /* 0x9F4 */ u8 field_0x9f4; /* 0x9F5 */ u8 field_0x9f5; /* 0x9F6 */ u8 field_0x9f6; - /* 0x9F8 */ dMsgFlow_c field_0x9f8; + /* 0x9F8 */ dMsgFlow_c mFlow; /* 0xA44 */ cBgS_GndChk field_0xa44; /* 0xA80 */ dBgS_GndChk field_0xa80; /* 0xAD4 */ dBgS_LinChk field_0xad4; @@ -443,7 +522,7 @@ public: /* 801522AC */ void draw(int, int, f32, _GXColorS10*, int); /* 80152614 */ void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*); /* 80152654 */ void srchAttnActor1(void*, void*); - /* 801526E8 */ void srchActor(void*, void*); + /* 801526E8 */ void* srchActor(void*, void*); /* 801528C8 */ void initialize(); /* 80152B2C */ void getTrnsfrmKeyAnmP(char*, int); @@ -471,19 +550,19 @@ public: /* 801539F0 */ void chkActorInSight(fopAc_ac_c*, f32); /* 80153A78 */ void chkActorInArea(fopAc_ac_c*, cXyz, cXyz, s16); /* 80153BDC */ void chkActorInAttnArea(fopAc_ac_c*, fopAc_ac_c*, int); - /* 80153D1C */ void initTalk(int, fopAc_ac_c**); + /* 80153D1C */ int initTalk(int, fopAc_ac_c**); /* 80153D84 */ void talkProc(int*, int, fopAc_ac_c**); /* 80153EF4 */ void turn(s16, f32, int); /* 801540A4 */ void step(s16, int, int, int); /* 80154250 */ void setAngle(s16); /* 80154278 */ void getDistTableIdx(int, int); - /* 801542A0 */ void getEvtAreaTagP(int, int); + /* 801542A0 */ int getEvtAreaTagP(int, int); /* 8015436C */ void getAttnActorP(int, void* (*)(void*, void*), f32, f32, f32, f32, s16, int, int); /* 80154730 */ void chkActorInSight2(fopAc_ac_c*, f32, s16); - /* 80154834 */ void chkPointInArea(cXyz, cXyz, f32, f32, f32, s16); - /* 801548F4 */ void chkPointInArea(cXyz, cXyz, cXyz, s16); - /* 8015496C */ void getAttentionPos(fopAc_ac_c*); + /* 80154834 */ bool chkPointInArea(cXyz, cXyz, f32, f32, f32, s16); + /* 801548F4 */ bool chkPointInArea(cXyz, cXyz, cXyz, s16); + /* 8015496C */ cXyz getAttentionPos(fopAc_ac_c*); /* 801549E0 */ void chkFindPlayer2(int, s16); /* 80154BD8 */ void setHitodamaPrtcl(); @@ -508,13 +587,281 @@ public: static u8 mCcDCyl[68]; static u8 mCcDSph[64]; static u8 mFindActorPList[400]; - static u8 mFindCount[4]; - static u8 mSrchActorName[2 + 2 /* padding */]; + static s32 mFindCount; + static s16 mSrchActorName; }; STATIC_ASSERT(sizeof(daNpcF_c) == 0xB48); -void daNpcF_getPlayerInfoFromPlayerList(int param_0, int param_1, cXyz& param_2, +int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2, csXyz& param_3); +struct daBaseNpc_matAnm_c { + /* 8014D884 */ void calc(J3DMaterial*) const; + /* 80150444 */ ~daBaseNpc_matAnm_c(); +}; + +class daBaseNpc_acMngr_c { +private: + /* 0x00 */ u8 field_0x00[4]; + /* 0x04 */ u32 mActorId; +public: + /* 8014D804 */ daBaseNpc_acMngr_c(); + /* 8014D81C */ void entry(fopAc_ac_c*); + /* 8014D838 */ fopAc_ac_c* getActor(); + /* 80150524 */ ~daBaseNpc_acMngr_c(); +}; + +class daBaseNpc_path_c { +private: + /* 0x000 */ f32 field_0x0; + /* 0x004 */ dPath* mpRoomPath; + /* 0x008 */ f32 field_0x8; + /* 0x00C */ dPath* field_0xc; + /* 0x010 */ u8 field_0x10[2558]; + /* 0xA0E */ u16 field_0xa0e; + /* 0xA10 */ u16 mIdx; + /* 0xA12 */ s8 mDirection; + /* 0xA13 */ u8 field_0xa13[17]; + +public: + /* 8014D998 */ daBaseNpc_path_c(); + /* 8014D9A8 */ BOOL isPath(); + /* 8014D9BC */ int setPathInfo(u8, s8, s8); + /* 8014DA48 */ void reverseDir(); + /* 8014DA64 */ void chkPnt(cXyz); + /* 8014DAC4 */ void setNextPnt(); + /* 8014DB04 */ u16 getIdx(); + /* 8014DB0C */ void setIdx(u16); + /* 8014DB14 */ void getPntPos(u16); + /* 801503FC */ ~daBaseNpc_path_c(); + + +}; + +class daBaseNpc_lookat_c { +private: + /* 0x00 */ int field_0x00; + /* 0x04 */ csXyz mMaxJntLmt[2]; + /* 0x10 */ u8 field_0x0A[12]; + /* 0x1C */ csXyz mMinJntLmt[2]; + /* 0x28 */ u8 field_0x28[12]; + /* 0x34 */ cXyz mJntPos[3]; + /* 0x4C */ u8 field_0x4C[24]; + /* 0x64 */ csXyz mUnk[2]; + /* 0x70 */ u8 field_0x70[12]; + /* 0x7C */ csXyz mUnk2[2]; + /* 0x88 */ u8 field_0x88[4]; + /* 0x8C */ cXyz* mpAttnPos; + +public: + /* 8014DB40 */ void limitter(s16, s16*, s16, s16); + /* 8014DBB4 */ void calc(fopAc_ac_c*, f32 (*)[4], s16); + /* 8014E634 */ void setMaxJntLmt(csXyz, int); + /* 8014E658 */ void setMinJntLmt(csXyz, int); + /* 8014E67C */ void setJntPos(cXyz, int); + /* 8014E6A0 */ int setAttnPos(cXyz*); + /* 8014E6AC */ void getRot(int); + /* 801502EC */ ~daBaseNpc_lookat_c(); +}; + +class daBaseNpc_c : public fopAc_ac_c { +private: + /* 0x568 */ void* vtable; + /* 0x56C */ dBgS_Acch field_0x56c; + /* 0x744 */ u8 field_0x744[16]; + /* 0x754 */ mDoExt_McaMorfSO* mMcaMorfAnm[2]; + /* 0x758 */ Z2Creature mCreature; + /* 0x7EC */ mDoExt_bckAnm mBckAnm; + /* 0x808 */ mDoExt_btpAnm mBtpAnm; + /* 0x820 */ u8 tmp2[28]; + /* 0x83c */ u16* field_0x83c; + /* 0x840 */ u16 field_0x840; + /* 0x842 */ u8 field_0x842[6]; + /* 0x848 */ s32 mUnk; + /* 0x84C */ dMsgFlow_c mMsg; + /* 0x898 */ u8 field_0x898[2]; + /* 0x89A */ s16 mEvtIdx; + /* 0x89C */ u8 field_0x89C[34]; + /* 0x8BE */ u8 mRoomId; + /* 0x8C0 */ u8 field_0x8C0[90]; + /* 0x91A */ csXyz field_0x91a; + /* 0x920 */ csXyz field_0xd7e; + /* 0x926 */ csXyz field_0xd84; + /* 0x92C */ csXyz field_0xd8a; + /* 0x932 */ csXyz field_0x932; + /* 0x938 */ u8 field_0x938[4]; + /* 0x93C */ csXyz field_0x93c; + /* 0x940 */ u8 field_0x940[18]; + /* 0x954 */ cXyz field_0x954; + /* 0x960 */ u8 field_0x960[36]; + /* 0x984 */ csXyz field_0x984; + /* 0x98A */ u8 field_0x98A[18]; + /* 0x99C */ csXyz field_0x99c; + /* 0x9A2 */ u8 field_0x9a2[70]; + /* 0x9E8 */ const cBgS_PolyInfo mBgSPolyInfo; + /* 0x9F9 */ u8 field_0x9f9[27]; + +public: + /* 8014E6C8 */ daBaseNpc_c(); + /* 8014E89C */ ~daBaseNpc_c(); + /* 8014EAD0 */ void execute(); + /* 8014EC50 */ void draw(f32); + /* 8014EE3C */ bool getResName(); + /* 8014EE44 */ J3DAnmTransform* getTrnsfrmKeyAnmP(char*, int); + /* 8014EE80 */ void setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int); + /* 8014EEE4 */ void setBckAnm(J3DAnmTransform*, f32, int, int, int, bool); + /* 8014EF28 */ J3DAnmTransform* getTexPtrnAnmP(char*, int); + /* 8014EF64 */ void setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int); + /* 8014EFA4 */ void attnSttsOn(int, int); + /* 8014EFF0 */ void setParam(); + /* 8014EFF4 */ void orderEvent(int, char*); + /* 8014F09C */ void mainProc(); + /* 8014F0A0 */ void setEnvTevColor(); + /* 8014F0FC */ void setRoomNo(); + /* 8014F140 */ bool btkCtrl(); + /* 8014F148 */ int checkEndAnm(f32); + /* 8014F1C8 */ int checkEndAnm(J3DFrameCtrl*); + /* 8014F228 */ void allAnmPlay(); + /* 8014F38C */ void adjustShapeAngle(); + /* 8014F390 */ void setMtx(int); + /* 8014F4A0 */ void setCollisions(); + /* 8014F4A4 */ void setAttnPos(); + /* 8014F4A8 */ void drawOtherMdls(); + /* 8014F4AC */ bool dbgDraw(); + + void setVtable(void* table) { vtable = table;} + + static u8 const mCcDObj[48]; + static u8 mCcDCyl[68]; + static u8 mCcDSph[64]; +}; + +class daBaseNpc_moveBgActor_c : public daBaseNpc_c { +private: + /* 0xA14 */ u32 field_0xa14; + + +public: + /* 8014F4B4 */ daBaseNpc_moveBgActor_c(); + /* 8014F518 */ void MoveBGCreateHeap(); + /* 8014F60C */ void + MoveBGCreate(char const*, int, + void (*)(dBgW*, void*, cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*), u32); + /* 8014F6FC */ void MoveBGDelete(); + /* 8014F770 */ void MoveBGExecute(); + /* 801503BC */ bool CreateHeap(); + /* 801503C4 */ bool Create(); + /* 801503CC */ bool Delete(); + /* 801503D4 */ bool Execute(f32 (**)[3][4]); + /* 801503DC */ bool Draw(); + /* 801503E4 */ bool IsDelete(); + /* 801503EC */ bool ToFore(); + /* 801503F4 */ bool ToBack(); + /* 80155FB0 */ ~daBaseNpc_moveBgActor_c(); + + static u8 m_name[4]; + static u8 m_dzb_id[4]; + static u8 m_set_func[4]; +}; + +class daNpcF_MatAnm_c { +private: + /* 0x000 */ J3DMaterialAnm mMaterialAnm; + /* 0x0F4 */ mutable f32 field_0xF4; + /* 0x0F8 */ mutable f32 field_0xF8; + /* 0x0FC */ f32 mTranslationX; + /* 0x100 */ f32 mTranslationY; + /* 0x104 */ u8 field_0x104; + /* 0x105 */ u8 field_0x105; + +public: + /* 80150738 */ void initialize(); + /* 8015075C */ void calc(J3DMaterial*) const; + /* 80155ED0 */ ~daNpcF_MatAnm_c(); +}; + +class daNpcF_SPCurve_c { +private: + /* 0x00 */ u16 mNurbs; + /* 0x02 */ u16 field_0x02; + /* 0x04 */ u8 field_0x04; + /* 0x05 */ bool mIsClosed; + // /* 0x08 */ dPnt mPoints[96]; + + +public: + /* 80150870 */ void initialize(dPath*, int); +}; + +class daNpcF_Path_c { +private: + /* 0x00 */ u16 mIdx; + /* 0x02 */ u8 field_0x02; + /* 0x03 */ u8 mIsClosed; + /* 0x04 */ dPath* mpRoomPath; + /* 0x08 */ f32 field_0x08; + /* 0x0C */ f32 field_0x0C; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ cXyz mPosition; + /* 0x20 */ daNpcF_SPCurve_c mSPCurve; + +public: + /* 80150900 */ void initialize(); + /* 8015095C */ int setPathInfo(u8, s8, u8); + /* 80150A24 */ int chkPassed(cXyz); + /* 80150A7C */ void chkPassedDst(cXyz); + /* 80150BBC */ void reverse(); + /* 80150BE0 */ int setNextIdx(); + /* 80150C18 */ u16 getNextIdx(); + /* 80150C60 */ u16 getBeforeIdx(); + /* 80150CA8 */ void getBeforePos(cXyz&); + /* 80150D44 */ void getNextPos(cXyz&); + /* 80150DE0 */ int getDstPos(cXyz, cXyz&); + /* 80150EB4 */ void setNextIdxDst(cXyz); + + u16& getIdx() { return mIdx; }; + cXyz* getPntPos(); // finish +}; + +class daNpcF_MoveBgActor_c { +private: + +public: + /* 80155B54 */ ~daNpcF_MoveBgActor_c(); + /* 80155E88 */ bool CreateHeap(); + /* 80155E90 */ bool Create(); + /* 80155E98 */ bool Delete(); + /* 80155EA0 */ bool Execute(f32 (**)[3][4]); + /* 80155EA8 */ bool Draw(); + /* 80155EB0 */ bool IsDelete(); + /* 80155EB8 */ bool ToFore(); + /* 80155EC0 */ bool ToBack(); +}; + +class daNpcF_Lookat_c { +private: + /* 0x00 */ cXyz field_0x00[4]; + /* 0x30 */ int field_0x30; + /* 0x34 */ csXyz field_0x34[4]; + /* 0x4C */ csXyz field_0x4c[4]; + /* 0x64 */ csXyz field_0x64[4]; + /* 0x7C */ csXyz mRotAngle[4]; + /* 0x94 */ u8 field_0x94[4]; + /* 0x98 */ void* vtable; + +public: + /* 80151038 */ void initialize(); + /* 801510B8 */ void setParam(f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, s16, + cXyz*); + /* 80151350 */ void calc(fopAc_ac_c*, f32 (*)[4], csXyz**, int, int, int); + /* 801515D4 */ void adjustMoveDisAngle(s16&, s16, s16, s16); + /* 80151648 */ void initCalc(fopAc_ac_c*, f32 (*)[4], cXyz*, csXyz*, f32*, cXyz&, int); + /* 80151A54 */ void update(cXyz*, csXyz*, f32*); + /* 80151B68 */ void calcMoveDisAngle(int, cXyz*, csXyz*, cXyz, int, int); + /* 80151F54 */ void setRotAngle(); + /* 80151FE0 */ void clrRotAngle(); +}; + + #endif /* D_A_D_A_NPC_H */ diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 97ee69ced6..62198346e2 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -433,7 +433,7 @@ public: static BOOL checkDungeonWarpItem(int); static BOOL checkMasterSwordEquip(); static BOOL checkWoodShieldEquip(); - f32 getAttentionOffsetY(); + static f32 getAttentionOffsetY(); s16 checkNowWolfEyeUp(); static void forceRestartRoom(int, u32, int); static void setFmChainPos(fopAc_ac_c*, cXyz*, int); diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 7123ba9069..5905e1f4be 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -162,6 +162,8 @@ public: u8 getCStickStatusForce() { return mCStickStatusForce; } u8 getCStickSetFlagForce() { return mCStickSetFlagForce; } u8 getCStickDirectionForce() { return mCStickDirectionForce; } + u8 getFaceAnimeID() { return mFaceAnimeID; } + u8 getBaseAnimeID() { return mBaseAnimeID; } bool isCStickSetFlag(u8 flag) { return mCStickSetFlag & flag; } bool isDoSetFlag(u8 flag) { return flag & mDoSetFlag; } bool isASetFlag(u8 flag) { return flag & mASetFlag; } @@ -2251,6 +2253,14 @@ inline int dComIfGp_getMessageCountNumber() { return g_dComIfG_gameInfo.play.getMessageCountNumber(); } +inline u8 dComIfGp_getMesgFaceAnimeAttrInfo() { + return g_dComIfG_gameInfo.play.getFaceAnimeID(); +} + +inline u8 dComIfGp_getMesgAnimeAttrInfo() { + return g_dComIfG_gameInfo.play.getBaseAnimeID(); +} + inline void dComIfGp_setCameraParamFileName(int i, char* name) { g_dComIfG_gameInfo.play.setCameraParamFileName(i, name); } diff --git a/include/d/d_attention.h b/include/d/d_attention.h index 75dc8aa5d3..ccf6630703 100644 --- a/include/d/d_attention.h +++ b/include/d/d_attention.h @@ -211,6 +211,8 @@ public: BOOL chkFlag(u32 flag) { return mFlags & flag; } void setFlag(u32 flag) { mFlags |= flag; } void clrFlag(u32 flag) { mFlags &= ~flag; } + int GetActionCount() { return mActionCount; } + int GetLockonCount() { return mLockonCount; } bool Lockon() { return LockonTruth() || chkFlag(0x20000000); } // only matches with -O2? static type_tbl_entry loc_type_tbl[3]; diff --git a/include/d/d_path.h b/include/d/d_path.h index 6e4187ba36..e3c17df3b9 100644 --- a/include/d/d_path.h +++ b/include/d/d_path.h @@ -2,6 +2,7 @@ #define D_D_PATH_H #include "dolphin/types.h" +#include "d/d_stage.h" class dStage_dPnt_c; @@ -14,6 +15,8 @@ struct dPath { /* 0x8 */ dStage_dPnt_c* m_points; }; +inline int dPath_ChkClose(dPath* i_path) { return (i_path->m_closed & 1); } + dPath* dPath_GetRoomPath(int path_index, int room_no); #endif /* D_D_PATH_H */ diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 54cfaa0847..4778e1932d 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -255,7 +255,7 @@ public: // PPNT struct dStage_dPnt_c { /* 0x0 */ int field_0x0; - /* 0xC */ cXyz m_position; + /* 0x4 */ cXyz m_position; }; // Size: 0x10 struct dStage_FloorInfo_c { diff --git a/include/d/msg/d_msg_object.h b/include/d/msg/d_msg_object.h index b42daaa3bb..fedaa1cef2 100644 --- a/include/d/msg/d_msg_object.h +++ b/include/d/msg/d_msg_object.h @@ -133,7 +133,7 @@ public: /* 80238320 */ static void onMsgSend(); /* 8023834C */ void offMsgSend(); /* 80238378 */ void isMsgSend(); - /* 802383A4 */ void isMouthCheck(); + /* 802383A4 */ bool isMouthCheck(); /* 802383D0 */ static u32 getMessageID(); /* 802383E4 */ void getSmellTypeMessageID(); /* 80238410 */ static void setSmellType(u8); diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 86ae2b644d..04c14d9a6b 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -116,6 +116,10 @@ inline s16 fopAcM_GetName(void* pActor) { return fpcM_GetName(pActor); } +inline MtxP fopAcM_GetMtx(const fopAc_ac_c* pActor) { + return pActor->mCullMtx; +} + inline u32 fopAcM_checkStatus(fopAc_ac_c* pActor, u32 status) { return pActor->mStatus & status; } diff --git a/include/f_pc/f_pc_executor.h b/include/f_pc/f_pc_executor.h index eaf0a22751..3a0390d7e1 100644 --- a/include/f_pc/f_pc_executor.h +++ b/include/f_pc/f_pc_executor.h @@ -16,6 +16,10 @@ s32 fpcEx_Execute(base_process_class* pProc); s32 fpcEx_ToExecuteQ(base_process_class* pProc); void fpcEx_Handler(fpcLnIt_QueueFunc pFunc); +// inline base_process_class* fpcM_Search(fpcLyIt_JudgeFunc pFunc, void* pUserData) { +// return fpcEx_Search(pFunc, pUserData); +// } + extern "C" { void fpcEx_IsExist__FUi(void); } diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index 2cf1ce8edc..5e65b58120 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -131,6 +131,10 @@ public: void entry(J3DModelData* i_modelData) { entry(i_modelData, getFrame()); } J3DAnmTransform* getBckAnm() { return mAnm; } + void removeJoint (J3DModelData* i_modelData, u16 i_idx) { + J3DJoint* mpJnt = i_modelData->getJointNodePointer(i_idx); + mpJnt->setMtxCalc(0); + } private: /* 0x14 */ J3DAnmTransform* mAnm; @@ -241,9 +245,10 @@ public: void setPlaySpeed(f32 speed) { mFrameCtrl.setRate(speed); } void setFrame(f32 frame) { mFrameCtrl.setFrame((s16)frame); } - f32 getPlaySpeed() { return mFrameCtrl.getRate(); } f32 getFrame() { return mFrameCtrl.getFrame(); } + u8 getPlayMode() { return mFrameCtrl.getAttribute(); } + bool isLoop() { return mFrameCtrl.checkState(2); } f32 getEndFrame() { return mFrameCtrl.getEnd(); } bool isStop() { diff --git a/include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h b/include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h index e752b8586a..691283f45a 100644 --- a/include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h +++ b/include/rel/d/a/e/d_a_e_wb/d_a_e_wb.h @@ -154,4 +154,4 @@ private: /* 0x17E8 */ f32 mSpeedRate; }; -#endif /* D_A_E_WB_H */ +#endif /* D_A_E_WB_H */ \ No newline at end of file diff --git a/include/rel/d/a/e/d_a_e_yc/d_a_e_yc.h b/include/rel/d/a/e/d_a_e_yc/d_a_e_yc.h index 78d5363285..b8f6238b92 100644 --- a/include/rel/d/a/e/d_a_e_yc/d_a_e_yc.h +++ b/include/rel/d/a/e/d_a_e_yc/d_a_e_yc.h @@ -2,9 +2,9 @@ #define D_A_E_YC_H #include "dolphin/types.h" -#include "f_op/f_op_actor.h" -#include "Z2AudioLib/Z2Creature.h" -#include "d/com/d_com_inf_game.h" +// #include "f_op/f_op_actor.h" +// #include "Z2AudioLib/Z2Creature.h" +// #include "d/com/d_com_inf_game.h" // #include "d/bg/d_bg_s_acch.h" // #include "d/cc/d_cc_d.h" @@ -75,10 +75,10 @@ // static u8 now[48]; // }; -struct daE_YC_HIO_c { - /* 807EFECC */ daE_YC_HIO_c(); - /* 807F27BC */ ~daE_YC_HIO_c(); -}; +// struct daE_YC_HIO_c { +// /* 807EFECC */ daE_YC_HIO_c(); +// /* 807F27BC */ ~daE_YC_HIO_c(); +// }; // struct dVibration_c { // /* 8006FA24 */ void StartShock(int, int, cXyz); @@ -100,42 +100,42 @@ struct daE_YC_HIO_c { // cXyz const*, f32); // }; -class e_yc_class : public fopAc_ac_c { -public: - /* 0x568 */ u8 field_0x568[80]; - /* 0x5B8 */ int field_0x5B8; - /* 0x5BC */ Z2CreatureEnemy mEnemy; - /* 0x660 */ int mAnm; - /* 0x664 */ int field_0x664; - /* 0x668 */ u8 field_0x668[6]; - /* 0x66E */ s16 mCurrentAction; - /* 0x670 */ s16 field_0x670; - /* 0x672 */ u8 field_0x672[2]; - /* 0x674 */ f32 field_0x674; - /* 0x678 */ f32 field_0x678; - /* 0x67C */ f32 field_0x67C; - /* 0x680 */ s16 field_0x680; - /* 0x682 */ u8 field_0x682[2]; - /* 0x684 */ f32 field_0x684; - /* 0x688 */ u32 field_0x688; - /* 0x68C */ u8 field_0x68C[4]; - /* 0x690 */ f32 field_0x690; - /* 0x694 */ u8 field_0x694[28]; - /* 0x69C */ f32 field_0x69C; - /* 0x6A0 */ s16 field_0x6A0; - /* 0x6A2 */ s16 field_0x6A2; - /* 0x6A4 */ s16 field_0x6A4; - /* 0x6A6 */ s16 field_0x6A6; - /* 0x6A8 */ s16 field_0x6A8; - /* 0x6AA */ s16 field_0x6AA; - /* 0x6AC */ void* field_0x6AC; - /* 0x6B0 */ u8 field_0x6B0[72]; - /* 0x6F4 */ dBgS_Acch mBgS_Acch; - /* 0x8CC */ u8 field_0x8CC[28]; - /* 0x8E8 */ dCcD_GStts mCcD_GStts; - /* 0x908 */ dCcD_GObjInf mCcD_GObjInf; - /* 0xA0C */ u8 field_0xA0C[364]; - /* 0xB78 */ cCcD_Obj* mpTgHitObj; -}; +// class e_yc_class : public fopAc_ac_c { +// public: +// /* 0x568 */ u8 field_0x568[80]; +// /* 0x5B8 */ int field_0x5B8; +// /* 0x5BC */ Z2CreatureEnemy mEnemy; +// /* 0x660 */ int mAnm; +// /* 0x664 */ int field_0x664; +// /* 0x668 */ u8 field_0x668[6]; +// /* 0x66E */ s16 mCurrentAction; +// /* 0x670 */ s16 field_0x670; +// /* 0x672 */ u8 field_0x672[2]; +// /* 0x674 */ f32 field_0x674; +// /* 0x678 */ f32 field_0x678; +// /* 0x67C */ f32 field_0x67C; +// /* 0x680 */ s16 field_0x680; +// /* 0x682 */ u8 field_0x682[2]; +// /* 0x684 */ f32 field_0x684; +// /* 0x688 */ u32 field_0x688; +// /* 0x68C */ u8 field_0x68C[4]; +// /* 0x690 */ f32 field_0x690; +// /* 0x694 */ u8 field_0x694[28]; +// /* 0x69C */ f32 field_0x69C; +// /* 0x6A0 */ s16 field_0x6A0; +// /* 0x6A2 */ s16 field_0x6A2; +// /* 0x6A4 */ s16 field_0x6A4; +// /* 0x6A6 */ s16 field_0x6A6; +// /* 0x6A8 */ s16 field_0x6A8; +// /* 0x6AA */ s16 field_0x6AA; +// /* 0x6AC */ void* field_0x6AC; +// /* 0x6B0 */ u8 field_0x6B0[72]; +// /* 0x6F4 */ dBgS_Acch mBgS_Acch; +// /* 0x8CC */ u8 field_0x8CC[28]; +// /* 0x8E8 */ dCcD_GStts mCcD_GStts; +// /* 0x908 */ dCcD_GObjInf mCcD_GObjInf; +// /* 0xA0C */ u8 field_0xA0C[364]; +// /* 0xB78 */ cCcD_Obj* mpTgHitObj; +// }; #endif /* D_A_E_YC_H */ diff --git a/rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp b/rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp index fc951ee7e7..555b3033c1 100644 --- a/rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp +++ b/rel/d/a/e/d_a_e_wb/d_a_e_wb.cpp @@ -5180,4 +5180,4 @@ static u8 data_807E3900[4]; static u8 data_807E3904[4]; #pragma pop -/* 807E2F0C-807E2F0C 000580 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 807E2F0C-807E2F0C 000580 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file diff --git a/rel/d/a/e/d_a_e_yc/d_a_e_yc.cpp b/rel/d/a/e/d_a_e_yc/d_a_e_yc.cpp index 0b15fa0ef4..5d8c7bb4e2 100644 --- a/rel/d/a/e/d_a_e_yc/d_a_e_yc.cpp +++ b/rel/d/a/e/d_a_e_yc/d_a_e_yc.cpp @@ -920,4 +920,4 @@ static asm void func_807F2848() { } #pragma pop -/* 807F294C-807F294C 0000E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 807F294C-807F294C 0000E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ \ No newline at end of file diff --git a/src/d/a/d_a_npc.cpp b/src/d/a/d_a_npc.cpp index e585ffa84c..723d4d7c9e 100644 --- a/src/d/a/d_a_npc.cpp +++ b/src/d/a/d_a_npc.cpp @@ -4,191 +4,14 @@ // #include "d/a/d_a_npc.h" +#include "d/a/d_a_player.h" #include "d/d_procname.h" #include "dol2asm.h" #include "dolphin/types.h" #include "m_Do/m_Do_mtx.h" #include "rel/d/a/npc/d_a_npc_tk/d_a_npc_tk.h" - -// -// Types: -// - -struct daNpcT_Hermite_c { - /* 8014CBAC */ ~daNpcT_Hermite_c(); -}; - -struct daNpcT_Path_c { - /* 80145B7C */ void hermite(cXyz&, cXyz&, cXyz&, cXyz&, daNpcT_Hermite_c&, cXyz&); - /* 80145C40 */ void initialize(); - /* 80145C74 */ void setPathInfo(u8, s8, u8); - /* 80145D2C */ void setNextPathInfo(s8, u8); - /* 80145DA0 */ void reverse(); - /* 80145DD0 */ void setNextIdx(int); - /* 80145E38 */ void getDstPos(cXyz, cXyz*, int); - /* 80145FB4 */ void getDstPosH(cXyz, cXyz*, int, int); - /* 80146188 */ void chkPassed1(cXyz, int); - /* 801464D8 */ void chkPassed2(cXyz, cXyz*, int, int); -}; - -struct daNpcT_MatAnm_c { - /* 80145764 */ void initialize(); - /* 80145788 */ void calc(J3DMaterial*) const; - /* 8014D24C */ ~daNpcT_MatAnm_c(); -}; - -struct dPath {}; - -struct daNpcF_SPCurve_c { - /* 80150870 */ void initialize(dPath*, int); -}; - -struct daNpcF_Path_c { - /* 80150900 */ void initialize(); - /* 8015095C */ void setPathInfo(u8, s8, u8); - /* 80150A24 */ void chkPassed(cXyz); - /* 80150A7C */ void chkPassedDst(cXyz); - /* 80150BBC */ void reverse(); - /* 80150BE0 */ void setNextIdx(); - /* 80150C18 */ void getNextIdx(); - /* 80150C60 */ void getBeforeIdx(); - /* 80150CA8 */ void getBeforePos(cXyz&); - /* 80150D44 */ void getNextPos(cXyz&); - /* 80150DE0 */ void getDstPos(cXyz, cXyz&); - /* 80150EB4 */ void setNextIdxDst(cXyz); -}; - -struct daNpcF_MoveBgActor_c { - /* 80155B54 */ ~daNpcF_MoveBgActor_c(); - /* 80155E88 */ bool CreateHeap(); - /* 80155E90 */ bool Create(); - /* 80155E98 */ bool Delete(); - /* 80155EA0 */ bool Execute(f32 (**)[3][4]); - /* 80155EA8 */ bool Draw(); - /* 80155EB0 */ bool IsDelete(); - /* 80155EB8 */ bool ToFore(); - /* 80155EC0 */ bool ToBack(); -}; - -struct daNpcF_MatAnm_c { - /* 80150738 */ void initialize(); - /* 8015075C */ void calc(J3DMaterial*) const; - /* 80155ED0 */ ~daNpcF_MatAnm_c(); -}; - -struct daNpcF_Lookat_c { - /* 80151038 */ void initialize(); - /* 801510B8 */ void setParam(f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, s16, - cXyz*); - /* 80151350 */ void calc(fopAc_ac_c*, f32 (*)[4], csXyz**, int, int, int); - /* 801515D4 */ void adjustMoveDisAngle(s16&, s16, s16, s16); - /* 80151648 */ void initCalc(fopAc_ac_c*, f32 (*)[4], cXyz*, csXyz*, f32*, cXyz&, int); - /* 80151A54 */ void update(cXyz*, csXyz*, f32*); - /* 80151B68 */ void calcMoveDisAngle(int, cXyz*, csXyz*, cXyz, int, int); - /* 80151F54 */ void setRotAngle(); - /* 80151FE0 */ void clrRotAngle(); -}; - -struct daBaseNpc_path_c { - /* 8014D998 */ daBaseNpc_path_c(); - /* 8014D9A8 */ void isPath(); - /* 8014D9BC */ void setPathInfo(u8, s8, s8); - /* 8014DA48 */ void reverseDir(); - /* 8014DA64 */ void chkPnt(cXyz); - /* 8014DAC4 */ void setNextPnt(); - /* 8014DB04 */ void getIdx(); - /* 8014DB0C */ void setIdx(u16); - /* 8014DB14 */ void getPntPos(u16); - /* 801503FC */ ~daBaseNpc_path_c(); -}; - -struct daBaseNpc_moveBgActor_c { - /* 8014F4B4 */ daBaseNpc_moveBgActor_c(); - /* 8014F518 */ void MoveBGCreateHeap(); - /* 8014F60C */ void - MoveBGCreate(char const*, int, - void (*)(dBgW*, void*, cBgS_PolyInfo const&, bool, cXyz*, csXyz*, csXyz*), u32); - /* 8014F6FC */ void MoveBGDelete(); - /* 8014F770 */ void MoveBGExecute(); - /* 801503BC */ bool CreateHeap(); - /* 801503C4 */ bool Create(); - /* 801503CC */ bool Delete(); - /* 801503D4 */ bool Execute(f32 (**)[3][4]); - /* 801503DC */ bool Draw(); - /* 801503E4 */ bool IsDelete(); - /* 801503EC */ bool ToFore(); - /* 801503F4 */ bool ToBack(); - /* 80155FB0 */ ~daBaseNpc_moveBgActor_c(); - - static u8 m_name[4]; - static u8 m_dzb_id[4]; - static u8 m_set_func[4]; -}; - -struct daBaseNpc_matAnm_c { - /* 8014D884 */ void calc(J3DMaterial*) const; - /* 80150444 */ ~daBaseNpc_matAnm_c(); -}; - -struct daBaseNpc_lookat_c { - /* 8014DB40 */ void limitter(s16, s16*, s16, s16); - /* 8014DBB4 */ void calc(fopAc_ac_c*, f32 (*)[4], s16); - /* 8014E634 */ void setMaxJntLmt(csXyz, int); - /* 8014E658 */ void setMinJntLmt(csXyz, int); - /* 8014E67C */ void setJntPos(cXyz, int); - /* 8014E6A0 */ void setAttnPos(cXyz*); - /* 8014E6AC */ void getRot(int); - /* 801502EC */ ~daBaseNpc_lookat_c(); -}; - -struct daBaseNpc_c { - /* 8014E6C8 */ daBaseNpc_c(); - /* 8014E89C */ ~daBaseNpc_c(); - /* 8014EAD0 */ void execute(); - /* 8014EC50 */ void draw(f32); - /* 8014EE3C */ bool getResName(); - /* 8014EE44 */ void getTrnsfrmKeyAnmP(char*, int); - /* 8014EE80 */ void setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int); - /* 8014EEE4 */ void setBckAnm(J3DAnmTransform*, f32, int, int, int, bool); - /* 8014EF28 */ void getTexPtrnAnmP(char*, int); - /* 8014EF64 */ void setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int); - /* 8014EFA4 */ void attnSttsOn(int, int); - /* 8014EFF0 */ void setParam(); - /* 8014EFF4 */ void orderEvent(int, char*); - /* 8014F09C */ void mainProc(); - /* 8014F0A0 */ void setEnvTevColor(); - /* 8014F0FC */ void setRoomNo(); - /* 8014F140 */ bool btkCtrl(); - /* 8014F148 */ void checkEndAnm(f32); - /* 8014F1C8 */ void checkEndAnm(J3DFrameCtrl*); - /* 8014F228 */ void allAnmPlay(); - /* 8014F38C */ void adjustShapeAngle(); - /* 8014F390 */ void setMtx(int); - /* 8014F4A0 */ void setCollisions(); - /* 8014F4A4 */ void setAttnPos(); - /* 8014F4A8 */ void drawOtherMdls(); - /* 8014F4AC */ bool dbgDraw(); - - static u8 const mCcDObj[48]; - static u8 mCcDCyl[68]; - static u8 mCcDSph[64]; -}; - -struct daBaseNpc_acMngr_c { - /* 8014D804 */ daBaseNpc_acMngr_c(); - /* 8014D81C */ void entry(fopAc_ac_c*); - /* 8014D838 */ void getActor(); - /* 80150524 */ ~daBaseNpc_acMngr_c(); -}; - -struct dPnt {}; - -struct dMsgObject_c { - /* 8023819C */ void getActor(); - /* 802382C8 */ void offMsgSendControl(); - /* 802382F4 */ void isMsgSendControl(); - /* 802383A4 */ void isMouthCheck(); -}; +#include "SSystem/SComponent/c_math.h" +#include "m_Do/m_Do_lib.h" // // Forward References: @@ -819,14 +642,16 @@ SECTION_SDATA2 static u8 lit_4116[4] = { /* 80145764-80145788 1400A4 0024+00 0/0 0/0 103/103 .text initialize__15daNpcT_MatAnm_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_MatAnm_c::initialize() { - nofralloc -#include "asm/d/a/d_a_npc/initialize__15daNpcT_MatAnm_cFv.s" +void daNpcT_MatAnm_c::initialize() { + f32 value = FLOAT_LABEL(lit_4116); + + field_0xF4 = value; + field_0xF8 = value; + mTranslationX = value; + mTranslationY = value; + field_0x104 = 0; + field_0x105 = 0; } -#pragma pop /* ############################################################################################## */ /* 804533DC-804533E0 0019DC 0004+00 25/25 0/0 0/0 .sdata2 @4140 */ @@ -836,6 +661,35 @@ SECTION_SDATA2 static f32 lit_4140 = 1.0f; SECTION_SDATA2 static f64 lit_4142 = 4503601774854144.0 /* cast s32 to float */; /* 80145788-80145898 1400C8 0110+00 1/0 0/0 0/0 .text calc__15daNpcT_MatAnm_cCFP11J3DMaterial */ +#ifdef NONMATCHING +// 1 instruction in wrong place + float literals +void daNpcT_MatAnm_c::calc(J3DMaterial* param_0) const { + J3DMaterialAnm::calc(param_0); + + for (u32 i = 0; i < 8; i++) { + if (getTexMtxAnm(i).getAnmFlag()) { + J3DTexMtxInfo* curr_mtx_info = ¶m_0->getTexGenBlock()->getTexMtx(i)->getTexMtxInfo(); + + if (field_0x104 != 0) { + curr_mtx_info->mSRT.mTranslationX = mTranslationX; + curr_mtx_info->mSRT.mTranslationY = mTranslationY; + } + + if (field_0x105 != 0) { + f32 tmp8 = 1.0f / (field_0x105 + 1); + f32 tmp9 = (1.0f - tmp8); + + curr_mtx_info->mSRT.mTranslationX = field_0xF4 * tmp9 + curr_mtx_info->mSRT.mTranslationX * tmp8; + curr_mtx_info->mSRT.mTranslationY = field_0xF8 * tmp9 + curr_mtx_info->mSRT.mTranslationY * tmp8; + + } + + field_0xF4 = curr_mtx_info->mSRT.mTranslationX; + field_0xF8 = curr_mtx_info->mSRT.mTranslationY; + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -844,6 +698,7 @@ asm void daNpcT_MatAnm_c::calc(J3DMaterial* param_0) const { #include "asm/d/a/d_a_npc/calc__15daNpcT_MatAnm_cCFP11J3DMaterial.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804533E8-804533EC 0019E8 0004+00 13/13 0/0 0/0 .sdata2 @4148 */ @@ -883,7 +738,7 @@ int daNpcT_MotionSeqMngr_c::play(u16 param_0, int* param_1, f32* param_2) { *param_1 = (&mpSeqData[mNo * field_0x4])[mStepNo].field_0x0; *param_2 = (&mpSeqData[mNo * field_0x4])[mStepNo].field_0x2; - if (field_0x14 == -1 && -1.0f < field_0x18) { + if (field_0x14 == -1 && FLOAT_LABEL(lit_4148) < field_0x18) { *param_2 = field_0x18; } ret = 1; @@ -913,127 +768,265 @@ s32 daNpcT_MotionSeqMngr_c::checkEndSequence() { } /* 80145A38-80145A78 140378 0040+00 2/2 0/0 0/0 .text daNpcT_addIdx__FiiRUsi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daNpcT_addIdx(int param_0, int param_1, u16& param_2, int param_3) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcT_addIdx__FiiRUsi.s" +static int daNpcT_addIdx(int param_0, int param_1, u16& param_2, int param_3) { + int tmp = 0; + int tmp2 = param_2; + tmp2 += param_0; + + if (param_1 <= tmp2) { + if (param_3) { + int tmp3 = tmp2 / param_1; + tmp2 -= (tmp3 * param_1); + } else { + tmp2 = param_1 + -1; + tmp = 1; + } + } + + param_2 = tmp2; + return tmp; } -#pragma pop /* 80145A78-80145AC4 1403B8 004C+00 2/2 0/0 0/0 .text daNpcT_subIdx__FiiRUsi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daNpcT_subIdx(int param_0, int param_1, u16& param_2, int param_3) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcT_subIdx__FiiRUsi.s" +static int daNpcT_subIdx(int param_0, int param_1, u16& param_2, int param_3) { + int tmp = 0; + int tmp2 = param_2; + tmp2 -= param_0; + + if (0 > tmp2) { + if (param_3) { + int tmp3 = tmp2 / param_1; + int tmp4 = tmp2 - tmp3 * param_1; + param_0 = param_1 + tmp4; + + int tmp5 = param_0 / param_1; + tmp2 = param_0 - (tmp5 * param_1); + + } else { + tmp2 = 0; + tmp = 1; + } + } + + param_2 = tmp2; + return tmp; } -#pragma pop /* 80145AC4-80145B20 140404 005C+00 5/5 0/0 0/0 .text daNpcT_incIdx__FiRUsii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daNpcT_incIdx(int param_0, u16& param_1, int param_2, int param_3) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcT_incIdx__FiRUsii.s" +static void daNpcT_incIdx(int param_0, u16& param_1, int param_2, int param_3) { + param_3 ? daNpcT_subIdx(1,param_0,param_1,param_2) : daNpcT_addIdx(1,param_0,param_1,param_2); } -#pragma pop /* 80145B20-80145B7C 140460 005C+00 3/3 0/0 0/0 .text daNpcT_decIdx__FiRUsii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daNpcT_decIdx(int param_0, u16& param_1, int param_2, int param_3) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcT_decIdx__FiRUsii.s" +static void daNpcT_decIdx(int param_0, u16& param_1, int param_2, int param_3) { + param_3 ? daNpcT_addIdx(1,param_0,param_1,param_2) : daNpcT_subIdx(1,param_0,param_1,param_2); } -#pragma pop /* 80145B7C-80145C40 1404BC 00C4+00 1/1 0/0 0/0 .text * hermite__13daNpcT_Path_cFR4cXyzR4cXyzR4cXyzR4cXyzR16daNpcT_Hermite_cR4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_Path_c::hermite(cXyz& param_0, cXyz& param_1, cXyz& param_2, cXyz& param_3, +void daNpcT_Path_c::hermite(cXyz& param_0, cXyz& param_1, cXyz& param_2, cXyz& param_3, daNpcT_Hermite_c& param_4, cXyz& param_5) { - nofralloc -#include "asm/d/a/d_a_npc/hermite__13daNpcT_Path_cFR4cXyzR4cXyzR4cXyzR4cXyzR16daNpcT_Hermite_cR4cXyz.s" + param_5.x = param_0.x * param_4.mPosition.x + + param_2.x * param_4.mPosition.y + + param_1.x * param_4.mPosition.z + + param_3.x * param_4.field_0x10; + + param_5.y = param_0.y * param_4.mPosition.x + + param_2.y * param_4.mPosition.y + + param_1.y * param_4.mPosition.z + + param_3.y * param_4.field_0x10; + + + param_5.z = param_0.z * param_4.mPosition.x + + param_2.z * param_4.mPosition.y + + param_1.z * param_4.mPosition.z + + param_3.z * param_4.field_0x10; } -#pragma pop + /* 80145C40-80145C74 140580 0034+00 0/0 0/0 44/44 .text initialize__13daNpcT_Path_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_Path_c::initialize() { - nofralloc -#include "asm/d/a/d_a_npc/initialize__13daNpcT_Path_cFv.s" +void daNpcT_Path_c::initialize() { + mpRoomPath = 0; + + f32 value = FLOAT_LABEL(lit_4116); + mPosition.x = value; + mPosition.y = value; + mPosition.z = value; + field_0x10 = value; + field_0x14 = value; + field_0x18 = value; + + mIdx = 0; + mDirection = 0; + mIsClosed = 0; } -#pragma pop /* 80145C74-80145D2C 1405B4 00B8+00 0/0 0/0 18/18 .text setPathInfo__13daNpcT_Path_cFUcScUc */ +#ifdef NONMATCHING +// something wrong with the getPntPos inline +int daNpcT_Path_c::setPathInfo(u8 i_pathIdx, s8 i_roomNo, u8 i_direction) { + mpRoomPath = 0; + mIdx = 0; + mDirection = i_direction; + + if (i_pathIdx != 0xFF) { + mpRoomPath = dPath_GetRoomPath(i_pathIdx,i_roomNo); + if (!mpRoomPath) { + return 0; + } + + mIsClosed = mpRoomPath->m_closed & 1; + int tmpidx = getIdx(); + mPosition = *getPntPos(tmpidx); + } + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcT_Path_c::setPathInfo(u8 param_0, s8 param_1, u8 param_2) { +asm int daNpcT_Path_c::setPathInfo(u8 param_0, s8 param_1, u8 param_2) { nofralloc #include "asm/d/a/d_a_npc/setPathInfo__13daNpcT_Path_cFUcScUc.s" } #pragma pop +#endif /* 80145D2C-80145DA0 14066C 0074+00 0/0 0/0 1/1 .text setNextPathInfo__13daNpcT_Path_cFScUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_Path_c::setNextPathInfo(s8 param_0, u8 param_1) { - nofralloc -#include "asm/d/a/d_a_npc/setNextPathInfo__13daNpcT_Path_cFScUc.s" +int daNpcT_Path_c::setNextPathInfo(s8 param_0, u8 i_direction) { + mIdx = 0; + mDirection = i_direction; + u16 next_id = mpRoomPath->m_nextID; + + if (next_id != 0xFFFF) { + mpRoomPath = dPath_GetRoomPath(next_id,param_0); + if (!mpRoomPath) { + return 0; + } + + mIsClosed = mpRoomPath->m_closed & 1; + } + return 1; } -#pragma pop /* 80145DA0-80145DD0 1406E0 0030+00 0/0 0/0 1/1 .text reverse__13daNpcT_Path_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_Path_c::reverse() { - nofralloc -#include "asm/d/a/d_a_npc/reverse__13daNpcT_Path_cFv.s" +void daNpcT_Path_c::reverse() { + if (mDirection == 1) { + mDirection = 0; + field_0x1E = 1; + return; + } + mDirection = 1; + field_0x1E = 1; + } -#pragma pop /* 80145DD0-80145E38 140710 0068+00 2/2 0/0 8/8 .text setNextIdx__13daNpcT_Path_cFi */ +#ifdef NONMATCHING +// getNumPnts inline appears to be wrong +int daNpcT_Path_c::setNextIdx(int param_0) { + u16 numPnts = getNumPnts(); + + if (chkClose() != 0 && numPnts == param_0) { + daNpcT_incIdx(param_0,mIdx,1,mDirection); + return; + } + + daNpcT_incIdx(param_0,mIdx,0,mDirection); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcT_Path_c::setNextIdx(int param_0) { +asm int daNpcT_Path_c::setNextIdx(int param_0) { nofralloc #include "asm/d/a/d_a_npc/setNextIdx__13daNpcT_Path_cFi.s" } #pragma pop +#endif /* 80145E38-80145FB4 140778 017C+00 0/0 0/0 1/1 .text getDstPos__13daNpcT_Path_cF4cXyzP4cXyzi */ +#ifdef NONMATCHING +int daNpcT_Path_c::getDstPos(cXyz param_0, cXyz* param_1, int i_idx) { + cXyz* curr_room_pos = &mpRoomPath->m_points[mIdx].m_position; + + if (i_idx == mIdx) { + mIdx--; + + param_1 = curr_room_pos; + + } else { + do { + int ret = chkPassed1(param_0,i_idx); + + if (ret == 0) { + param_1 = curr_room_pos; + break; + } + + field_0x1E = 1; + + } while (setNextIdx(i_idx) == 0); + + mIdx = i_idx; + mIdx--; + + param_1 = curr_room_pos; + } + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcT_Path_c::getDstPos(cXyz param_0, cXyz* param_1, int param_2) { +asm int daNpcT_Path_c::getDstPos(cXyz param_0, cXyz* param_1, int param_2) { nofralloc #include "asm/d/a/d_a_npc/getDstPos__13daNpcT_Path_cF4cXyzP4cXyzi.s" } #pragma pop +#endif /* 80145FB4-80146188 1408F4 01D4+00 0/0 0/0 10/10 .text getDstPosH__13daNpcT_Path_cF4cXyzP4cXyzii */ +#ifdef NONMATCHING +int daNpcT_Path_c::getDstPosH(cXyz param_0, cXyz* param_1, int param_2, int param_3) { + cXyz* curr_room_pos = &mpRoomPath->m_points[mIdx].m_position; + + if (i_idx == mIdx) { + mIdx--; + + param_1 = curr_room_pos; + + } else { + do { + int ret = chkPassed1(param_0,i_idx); + + if (ret == 0) { + param_1 = curr_room_pos; + break; + } + + field_0x1E = 1; + + } while (setNextIdx(i_idx) == 0); + + mIdx = i_idx; + mIdx--; + + param_1 = curr_room_pos; + } + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcT_Path_c::getDstPosH(cXyz param_0, cXyz* param_1, int param_2, int param_3) { +asm int daNpcT_Path_c::getDstPosH(cXyz param_0, cXyz* param_1, int param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/getDstPosH__13daNpcT_Path_cF4cXyzP4cXyzii.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804533EC-804533F0 0019EC 0004+00 1/1 0/0 0/0 .sdata2 @4513 */ @@ -1041,14 +1034,99 @@ SECTION_SDATA2 static f32 lit_4513 = 100.0f; /* 80146188-801464D8 140AC8 0350+00 2/2 0/0 2/2 .text chkPassed1__13daNpcT_Path_cF4cXyzi */ +#ifdef NONMATCHING +int daNpcT_Path_c::chkPassed1(cXyz param_0, int param_1) { + u16 idx = mIdx; + u16 tmpIdx1 = idx; + u16 tmpIdx2 = idx; + + u8 tmp; + + cXyz l_pos1; + cXyz l_pos2; + cXyz l_pos3; + cXyz l_pos4; + cXyz l_pos5; + cXyz l_pos6; + cXyz l_pos7; + + f32 l_float1; + f32 l_float2; + f32 l_float3; + f32 l_float4; + f32 l_float5; + f32 l_float6; + + Vec l_vec; + + + if ((mpRoomPath->m_closed & 1) == 0 || param_1 == mpRoomPath->m_num) { + tmp = mDirection == 1; + daNpcT_decIdx(param_1,tmpIdx2,1,tmp); + + tmp = mDirection == 1; + daNpcT_incIdx(param_1,tmpIdx1,0,tmp); + } else { + tmp = mDirection == 1; + daNpcT_decIdx(tmp,tmpIdx1,0,tmp); + + tmp = mDirection == 1; + daNpcT_incIdx(mpRoomPath->m_num,tmpIdx2,1,tmp); + } + + tmp = tmpIdx2; + + l_pos5 = mpRoomPath->m_points[idx].m_position; + l_pos6 = mpRoomPath->m_points[mIdx].m_position; + l_pos7 = mpRoomPath->m_points[mIdx].m_position; + + l_pos1 = l_pos7; + l_pos2 = l_pos6; + l_pos3 = l_pos5; + + + if (tmp == mIdx) { + l_vec.x = 0.0f; + l_vec.y = 0.0f; + l_vec.z = 100.0f; + + s16 angle = cLib_targetAngleY(&l_pos1,&l_pos2); + mDoMtx_YrotS((MtxP)&mDoMtx_stack_c::now,angle); + PSMTXMultVec((MtxP)&mDoMtx_stack_c::now,&l_vec,&l_vec); + l_pos4 = (cXyz)l_vec + l_pos2; + l_pos3 = l_pos4; + } + + if (mIdx == tmpIdx1) { + l_vec.x = 0.0f; + l_vec.y = 0.0f; + l_vec.z = 100.0f; + + s16 angle = cLib_targetAngleY(&l_pos3,&l_pos2); + mDoMtx_YrotS((MtxP)&mDoMtx_stack_c::now,angle); + PSMTXMultVec((MtxP)&mDoMtx_stack_c::now,&l_vec,&l_vec); + l_pos5 = (cXyz)l_vec + l_pos2; + l_pos1 = l_pos5; + } + + if (cM3d_Len2dSqPntAndSegLine(param_0.x,param_0.z,l_pos3.x,l_pos3.z,l_pos1.x,l_pos1.z,&l_float1,&l_float2,&l_float3) + && cM3d_Len2dSqPntAndSegLine(l_pos2.x,l_pos2.z,l_pos3.x,l_pos3.z,l_pos1.x,l_pos1.z,&l_float4,&l_float5,&l_float6)) { + if (0x4000 < abs(cM_atan2s(l_pos1.x - l_pos3.x, l_pos1.z - l_pos3.z) - cM_atan2s(l_float4 - l_float1, l_float5 - l_float2))) { + return 1; + } + } + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcT_Path_c::chkPassed1(cXyz param_0, int param_1) { +asm int daNpcT_Path_c::chkPassed1(cXyz param_0, int param_1) { nofralloc #include "asm/d/a/d_a_npc/chkPassed1__13daNpcT_Path_cF4cXyzi.s" } #pragma pop +#endif /* ############################################################################################## */ /* 803B36A8-803B36B4 0107C8 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ @@ -1406,7 +1484,7 @@ SECTION_SDATA2 static f64 lit_4677 = 4503599627370496.0 /* cast u32 to float */; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcT_Path_c::chkPassed2(cXyz param_0, cXyz* param_1, int param_2, int param_3) { +asm int daNpcT_Path_c::chkPassed2(cXyz param_0, cXyz* param_1, int param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/chkPassed2__13daNpcT_Path_cF4cXyzP4cXyzii.s" } @@ -1501,14 +1579,14 @@ SECTION_SDATA2 static f32 lit_5423 = 7281.0f; /* 80147DCC-80147E3C 14270C 0070+00 0/0 0/0 28/28 .text * setParam__19daNpcT_DmgStagger_cFP10fopAc_ac_cP10fopAc_ac_cs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_DmgStagger_c::setParam(fopAc_ac_c* param_0, fopAc_ac_c* param_1, s16 param_2) { - nofralloc -#include "asm/d/a/d_a_npc/setParam__19daNpcT_DmgStagger_cFP10fopAc_ac_cP10fopAc_ac_cs.s" +void daNpcT_DmgStagger_c::setParam(fopAc_ac_c* i_actor1, fopAc_ac_c* i_actor2, s16 i_angle) { + if (i_actor2 && i_actor1) { + field_0xc = FLOAT_LABEL(lit_5422); + field_0x10 = FLOAT_LABEL(lit_5423); + field_0x16 = fopAcM_searchActorAngleY(i_actor1,i_actor2) - i_angle; + mStagger = 0x4000; + } } -#pragma pop /* ############################################################################################## */ /* 80453438-8045343C 001A38 0004+00 1/1 0/0 0/0 .sdata2 @5459 */ @@ -1690,8 +1768,6 @@ void daNpcT_c::deleteRes(s8 const* resNoList, char const** resNameList) { SECTION_SDATA2 static f32 lit_5667 = -1000000000.0f; /* 8014852C-8014886C 142E6C 0340+00 0/0 0/0 59/59 .text execute__8daNpcT_cFv */ -// matches with literals -#ifdef NONMATCHING int daNpcT_c::execute() { setParam(); if (!evtProc()) { @@ -1704,7 +1780,7 @@ int daNpcT_c::execute() { field_0x930 = field_0x68c.m_gnd; field_0xdca = fopAcM_getPolygonAngle(field_0x930, current.angle.y); field_0xdf4 = field_0x68c.GetGroundH(); - if (field_0xdf4 != -1000000000.0f) { + if (FLOAT_LABEL(lit_5667) != field_0xdf4) { field_0xda8 = dKy_pol_sound_get(&field_0x68c.m_gnd); field_0xe24 = dComIfGp_getReverb(field_0x864.GetRoomId()); @@ -1714,7 +1790,7 @@ int daNpcT_c::execute() { } afterMoved(); - if (field_0xdf4 != -1000000000.0f) { + if (FLOAT_LABEL(lit_5667) != field_0xdf4) { setEnvTevColor(); setRoomNo(); } @@ -1733,12 +1809,12 @@ int daNpcT_c::execute() { ctrlSubFaceMotion(0); ctrlMotion(); setAttnPos(); - cLib_chaseF(&field_0xdfc, 0.0f, 1.0f); + cLib_chaseF(&field_0xdfc, FLOAT_LABEL(lit_4116), FLOAT_LABEL(lit_4140)); twilight(); setCollision(); if (!field_0xe2c) { - if ((field_0xe33 && dComIfGp_getEvent().i_isOrderOK()) || !i_dComIfGp_event_runCheck()) { + if ((field_0xe33 && i_dComIfGp_getEvent().i_isOrderOK()) || !i_dComIfGp_event_runCheck()) { evtOrder(); } } @@ -1747,23 +1823,13 @@ int daNpcT_c::execute() { decTmr(); return 1; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int daNpcT_c::execute() { - nofralloc -#include "asm/d/a/d_a_npc/execute__8daNpcT_cFv.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 80453444-80453448 001A44 0004+00 3/3 0/0 0/0 .sdata2 @5794 */ SECTION_SDATA2 static f32 lit_5794 = 20.0f; /* 8014886C-80148C70 1431AC 0404+00 0/0 0/0 58/58 .text draw__8daNpcT_cFiifP11_GXColorS10fiii */ -// close. literals + few wrong areas +// regalloc + literals #ifdef NONMATCHING int daNpcT_c::draw(int param_0, int param_1, f32 param_2, GXColorS10* color, f32 param_4, int param_5, int param_6, int param_7) { @@ -1787,13 +1853,14 @@ int daNpcT_c::draw(int param_0, int param_1, f32 param_2, GXColorS10* color, f32 mTevStr.mFogColor.a = color->a; } - if (field_0xdb8 != 0 && mTimer != 0) { + if (field_0xdb8 && mTimer) { f32 r = (f32)field_0xdb8 / (f32)mTimer; - if (!cM3d_IsZero(r)) { + + if (cM3d_IsZero_inverted(r)) { mTevStr.mFogColor.r = r * 20.0f; } } else if (param_0 != 0) { - mTevStr.field_0x35a = 20; + mTevStr.mFogColor.g = 20; } if (field_0xd98 & 0x800) { @@ -1820,13 +1887,13 @@ int daNpcT_c::draw(int param_0, int param_1, f32 param_2, GXColorS10* color, f32 drawGhost(); } else if (field_0xa89 != 0) { g_env_light.settingTevStruct(4, ¤t.pos, &mTevStr); - g_env_light.setLightTevColorType_MAJI(modelData, &mTevStr); + g_env_light.setLightTevColorType_MAJI(model->getModelData(), &mTevStr); dComIfGd_setListDark(); mMcaMorfAnm[0]->entryDL(); dComIfGd_setList(); } else { g_env_light.settingTevStruct(0, ¤t.pos, &mTevStr); - g_env_light.setLightTevColorType_MAJI(modelData, &mTevStr); + g_env_light.setLightTevColorType_MAJI(model->getModelData(), &mTevStr); mMcaMorfAnm[0]->entryDL(); } @@ -1887,14 +1954,47 @@ void daNpcT_c::setRoomNo() { } /* 80148D10-80148DD0 143650 00C0+00 1/1 0/0 0/0 .text checkEndAnm__8daNpcT_cFf */ +#ifdef NONMATCHING +int daNpcT_c::checkEndAnm(f32 param_0) { + bool ret; + u8 play_mode = mMcaMorfAnm[0]->getPlayMode(); + int tmp = 2; + + if (play_mode == tmp || play_mode < tmp) { + tmp = 0; + if (play_mode < tmp) { + ret = 0; + } else { + return mMcaMorfAnm[0]->isLoop(); + } + } + + if (ret == 0 && cM3d_IsZero_inverted(mMcaMorfAnm[0]->getPlaySpeed())) { + if (cM3d_IsZero_inverted(param_0)) { + play_mode = 1; + } + } + + if (!mMcaMorfAnm[0]->mFrameCtrl.checkState(1) && mMcaMorfAnm[0]->mFrameCtrl.getRate() != 0.0f) { + ret = 1; + } + + if (play_mode = 1 && cM3d_IsZero_inverted(param_0)) { + ret = 1; + } + + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcT_c::checkEndAnm(f32 param_0) { +asm int daNpcT_c::checkEndAnm(f32 param_0) { nofralloc #include "asm/d/a/d_a_npc/checkEndAnm__8daNpcT_cFf.s" } #pragma pop +#endif /* 80148DD0-80148E4C 143710 007C+00 1/1 0/0 0/0 .text checkEndAnm__8daNpcT_cFP12J3DFrameCtrlf */ #pragma push @@ -1951,16 +2051,68 @@ void daNpcT_c::setMtx() { } /* 8014924C-80149300 143B8C 00B4+00 1/1 0/0 0/0 .text ctrlFaceMotion__8daNpcT_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_c::ctrlFaceMotion() { - nofralloc -#include "asm/d/a/d_a_npc/ctrlFaceMotion__8daNpcT_cFv.s" +void daNpcT_c::ctrlFaceMotion() { + int l_int; + f32 l_float; + + if (field_0xb50.play(field_0xe20,&l_int,&l_float)) { + setFaceMotionAnm(l_int,true); + + if (l_float < FLOAT_LABEL(lit_4116)) { + mMcaMorfAnm[0]->setMorf(field_0xa80); + field_0xdfc = field_0xa80; + + if (mMcaMorfAnm[1]) { + mMcaMorfAnm[1]->setMorf(field_0xa80); + } + } else { + mMcaMorfAnm[0]->setMorf(l_float); + field_0xdfc = l_float; + + if (mMcaMorfAnm[1]) { + mMcaMorfAnm[1]->setMorf(l_float); + } + } + } } -#pragma pop /* 80149300-801493B8 143C40 00B8+00 1/1 0/0 0/0 .text ctrlMotion__8daNpcT_cFv */ +#ifdef NONMATCHING +// 1 instruction in the wrong place + 1 register wrong +void daNpcT_c::ctrlMotion() { + int l_int; + int l_int2; + f32 l_float; + + if (field_0xb74.play(field_0xe1e,&l_int,&l_float)) { + l_int2 = 0; + + if (l_float < FLOAT_LABEL(lit_4148)) { + l_int2 = 1; + } + + int l_int3 = l_int; + + if (l_float < FLOAT_LABEL(lit_4116)) { + setMotionAnm(l_int3,field_0xa84,l_int2); + } + + f32 tmp = FLOAT_LABEL(lit_4116); + field_0xdfc = tmp; + + if (field_0xa88) { + mMcaMorfAnm[0]->setMorf(tmp); + + f32 tmp2 = FLOAT_LABEL(lit_4116); + field_0xdfc = tmp2; + + if (mMcaMorfAnm[1]) { + mMcaMorfAnm[1]->setMorf(tmp2); + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1969,16 +2121,73 @@ asm void daNpcT_c::ctrlMotion() { #include "asm/d/a/d_a_npc/ctrlMotion__8daNpcT_cFv.s" } #pragma pop +#endif /* 801493B8-8014951C 143CF8 0164+00 1/1 0/0 2/2 .text ctrlMsgAnm__8daNpcT_cFPiPiP10fopAc_ac_ci */ +#ifdef NONMATCHING +// few extra mr instructions + regalloc nightmare +int daNpcT_c::ctrlMsgAnm(int* param_0, int* param_1, fopAc_ac_c* param_2, int param_3) { + int* tmp0 = param_0; + int* tmp1 = param_1; + fopAc_ac_c* tmp2 = param_2; + int tmp3 = param_3; + + *param_0 = -1; + *param_1 = -1; + + if (tmp3 != 0 || mEvtInfo.checkCommandTalk() || field_0xdac != -1) { + fopAc_ac_c* talk_partner = (fopAc_ac_c*)dComIfGp_event_getTalkPartner(); + dMsgObject_c* talk_partner_conv = (dMsgObject_c*)talk_partner; + + if (tmp2 == talk_partner) { + u16 actor_command = talk_partner_conv->getActor()->mEvtInfo.mCommand; + + if (actor_command == 2 || actor_command == 3) { + mSubMtd = (profile_method_class*)-1; + } else if (actor_command == 6) { + if (talk_partner->mSubMtd != mSubMtd) { + *tmp0 = dComIfGp_getMesgFaceAnimeAttrInfo(); + *tmp1 = dComIfGp_getMesgAnimeAttrInfo(); + mSubMtd = talk_partner->mSubMtd; + } + + if (talk_partner_conv->isMouthCheck()) { + field_0xd98 &= ~0x4000; + } else { + field_0xd98 |= 0x4000; + } + + field_0xdb4 = 0x14; + } else { + if (field_0xd98 & 0x4000) { + field_0xd98 &= ~0x4000; + } + mSubMtd = (profile_method_class*)-1; + } + } else { + mSubMtd = (profile_method_class*)-1; + if (field_0xdb4) { + field_0xdb4 = 1; + } + } + + if (tmp3 == 0) { + cLib_calcTimer(&field_0xdb4); + } + + return field_0xdb4; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcT_c::ctrlMsgAnm(int* param_0, int* param_1, fopAc_ac_c* param_2, int param_3) { +asm int daNpcT_c::ctrlMsgAnm(int* param_0, int* param_1, fopAc_ac_c* param_2, int param_3) { nofralloc #include "asm/d/a/d_a_npc/ctrlMsgAnm__8daNpcT_cFPiPiP10fopAc_ac_ci.s" } #pragma pop +#endif /* 8014951C-8014997C 143E5C 0460+00 1/0 1/0 59/0 .text ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel */ @@ -2333,14 +2542,18 @@ asm void daNpcT_c::getActorDistance(fopAc_ac_c* param_0, int param_1, int param_ #pragma pop /* 8014BBF0-8014BC78 146530 0088+00 0/0 1/1 180/180 .text initTalk__8daNpcT_cFiPP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_c::initTalk(int param_0, fopAc_ac_c** param_1) { - nofralloc -#include "asm/d/a/d_a_npc/initTalk__8daNpcT_cFiPP10fopAc_ac_c.s" +int daNpcT_c::initTalk(int param_0, fopAc_ac_c** param_1) { + mFlow.init(this,param_0,0,param_1); + field_0xdc8 = fopAcM_searchPlayerAngleY(this); + if (checkStep()) { + mStepNo = 0; + } + + f32 tmp = FLOAT_LABEL(lit_4116); + mSpeedF = tmp; + mSpeed.set(tmp,tmp,tmp); + return 1; } -#pragma pop /* 8014BC78-8014BE2C 1465B8 01B4+00 0/0 0/0 169/169 .text talkProc__8daNpcT_cFPiiPP10fopAc_ac_ci */ @@ -2378,14 +2591,42 @@ asm void daNpcT_c::getEvtAreaTagP(int param_0, int param_1) { #pragma pop /* 8014BFB0-8014C030 1468F0 0080+00 0/0 0/0 5/5 .text getShopItemTagP__8daNpcT_cFv */ +#ifdef NONMATCHING +// few instructions off + regalloc +u32 daNpcT_c::getShopItemTagP() { + mFindCount = 0; + mSrchName = 0x127; + fpcM_Search((fopAcIt_JudgeFunc)srchActor,(void*)this); + + int i = 0; + + for (;;) { + + if (0 >= mFindCount) { + break; + } + + u16 param = fopAcM_GetParam(mFindActorPtrs[i]); + + if (param == 0xf0000000) { + return param; + } + + i++; + } + + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcT_c::getShopItemTagP() { +asm u32 daNpcT_c::getShopItemTagP() { nofralloc #include "asm/d/a/d_a_npc/getShopItemTagP__8daNpcT_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80453480-80453484 001A80 0004+00 1/1 0/0 0/0 .sdata2 id$7388 */ @@ -2418,6 +2659,49 @@ SECTION_SDATA2 static f32 lit_7551 = 448.0f; /* 8014C200-8014C384 146B40 0184+00 0/0 0/0 2/2 .text * daNpcT_chkActorInScreen__FP10fopAc_ac_cfffffffi */ +#ifdef NONMATCHING +bool daNpcT_chkActorInScreen(fopAc_ac_c* i_ActorP, f32 param_1, f32 param_2, f32 param_3, + f32 param_4, f32 param_5, f32 param_6, f32 param_7, int param_8) { + bool ret = false; + cXyz pos_array[4]; + cXyz pos1; + cXyz pos2; + cXyz pos3; + cXyz pos4; + + if (fopAcM_GetMtx(i_ActorP)) { + ret = false; + } else { + pos_array[0].set(param_1,param_4,param_2); + pos_array[1].set(param_3,param_4,param_2); + pos_array[2].set(param_1,param_4,param_6); + pos_array[3].set(param_3,param_4,param_5); + + pos1.set(param_1,param_2,param_3); + pos2.set(param_3,param_1,param_2); + pos3.set(param_1,param_2,param_6); + pos4.set(param_3,param_1,param_6); + + mDoMtx_stack_c::copy(fopAcM_GetMtx(i_ActorP)); + mDoMtx_stack_c::transM(FLOAT_LABEL(lit_4116),param_6,FLOAT_LABEL(lit_4116)); + PSMTXMultVec((MtxP)&mDoMtx_stack_c::now,&pos_array[0],&pos_array[0]); + + if (param_8) { + for (int i = 0; i < 8; i++) { + mDoLib_project(&pos_array[i],&pos4); + if (true) { + ret = false; + } + } + ret = true; + } else { + ret = false; + } + } + + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2427,8 +2711,36 @@ asm void daNpcT_chkActorInScreen(fopAc_ac_c* param_0, f32 param_1, f32 param_2, #include "asm/d/a/d_a_npc/daNpcT_chkActorInScreen__FP10fopAc_ac_cfffffffi.s" } #pragma pop +#endif /* 8014C384-8014C500 146CC4 017C+00 1/1 0/0 3/3 .text daNpcT_chkPointInArea__F4cXyz4cXyz4cXyzsi */ +#ifdef NONMATCHING +bool daNpcT_chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3, int param_4) { + bool ret; + cXyz l_pos; + + mDoMtx_stack_c::YrotS(-param_3); + mDoMtx_stack_c::transM(-param_1.x,-param_1.y,-param_1.z); + mDoMtx_stack_c::multVec(¶m_0,&l_pos); + + f32 l_float1 = fabsf(param_2.x); + f32 l_float2 = fabsf(param_2.z); + f32 l_float3 = fabsf(l_pos.x); + f32 l_float4 = fabsf(l_pos.z); + + + l_pos = param_0 - param_1; + if (param_4 != 0 || (FLOAT_LABEL(lit_4116) <= l_pos.y && l_pos.y > param_2.y)) { + ret = false; + } else { + f32 tmp1 = (l_float3 * l_float3) / (l_float1 * l_float1); + f32 tmp2 = (l_float4 * l_float4) / (l_float2 * l_float2); + tmp1 + tmp2 <= FLOAT_LABEL(lit_4140) ? ret = true : ret = false; + } + + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2437,6 +2749,7 @@ asm void daNpcT_chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 par #include "asm/d/a/d_a_npc/daNpcT_chkPointInArea__F4cXyz4cXyz4cXyzsi.s" } #pragma pop +#endif /* 8014C500-8014C5E0 146E40 00E0+00 0/0 0/0 29/29 .text * daNpcT_getPlayerInfoFromPlayerList__FiiP4cXyzP5csXyz */ @@ -2451,14 +2764,30 @@ asm void daNpcT_getPlayerInfoFromPlayerList(int param_0, int param_1, cXyz* para #pragma pop /* 8014C5E0-8014C700 146F20 0120+00 0/0 0/0 5/5 .text daNpcT_chkDoBtnIsSpeak__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_chkDoBtnIsSpeak(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcT_chkDoBtnIsSpeak__FP10fopAc_ac_c.s" +bool daNpcT_chkDoBtnIsSpeak(fopAc_ac_c* i_ActorP) { + bool ret = 0; + + if (i_dComIfGp_getDoStatus() == 0x1c) { + if (daPy_getPlayerActorClass()->checkPriActorOwn(i_ActorP)) { + for (int i = 0; i < dComIfGp_getAttention().GetActionCount(); i++) { + if (dComIfGp_getAttention().ActionTarget(i) == i_ActorP && + dComIfGp_getAttention().getActionBtnB() && + dComIfGp_getAttention().getActionBtnB()->mType == 3) { + ret = 1; + }; + } + + for (int i = 0; i < dComIfGp_getAttention().GetLockonCount(); i++) { + if (dComIfGp_getAttention().LockonTarget(i) == i_ActorP && + dComIfGp_getAttention().getActionBtnB() && + dComIfGp_getAttention().getActionBtnB()->mType == 1) { + ret = 1; + }; + } + } + } + return ret; } -#pragma pop /* 8014C700-8014CA18 147040 0318+00 0/0 0/0 2/2 .text * daNpcT_judgeRace__FP5dPathPP10fopAc_ac_cP16daNpcT_pntData_ciPi */ @@ -2473,74 +2802,39 @@ asm void daNpcT_judgeRace(dPath* param_0, fopAc_ac_c** param_1, daNpcT_pntData_c #pragma pop /* 8014CA18-8014CA2C 147358 0014+00 0/0 0/0 61/61 .text daNpcT_getDistTableIdx__Fii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_getDistTableIdx(int param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcT_getDistTableIdx__Fii.s" +u8 daNpcT_getDistTableIdx(int param_0, int param_1) { + return param_0 + param_1 * 0x14 + 0x5e; } -#pragma pop /* 8014CA2C-8014CA6C 14736C 0040+00 0/0 0/0 25/25 .text daNpcT_onEvtBit__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_onEvtBit(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcT_onEvtBit__FUl.s" +void daNpcT_onEvtBit(u32 i_idx) { + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[i_idx]); } -#pragma pop /* 8014CA6C-8014CAAC 1473AC 0040+00 0/0 0/0 1/1 .text daNpcT_offEvtBit__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_offEvtBit(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcT_offEvtBit__FUl.s" +void daNpcT_offEvtBit(u32 i_idx) { + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[i_idx]); } -#pragma pop /* 8014CAAC-8014CAEC 1473EC 0040+00 0/0 0/0 155/155 .text daNpcT_chkEvtBit__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_chkEvtBit(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcT_chkEvtBit__FUl.s" +void daNpcT_chkEvtBit(u32 i_idx) { + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_idx]); } -#pragma pop /* 8014CAEC-8014CB2C 14742C 0040+00 0/0 0/0 26/26 .text daNpcT_onTmpBit__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_onTmpBit(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcT_onTmpBit__FUl.s" +void daNpcT_onTmpBit(u32 i_idx) { + dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_idx]); } -#pragma pop /* 8014CB2C-8014CB6C 14746C 0040+00 0/0 0/0 78/78 .text daNpcT_offTmpBit__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_offTmpBit(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcT_offTmpBit__FUl.s" +void daNpcT_offTmpBit(u32 i_idx) { + dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_idx]); } -#pragma pop /* 8014CB6C-8014CBAC 1474AC 0040+00 0/0 0/0 38/38 .text daNpcT_chkTmpBit__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcT_chkTmpBit(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcT_chkTmpBit__FUl.s" +void daNpcT_chkTmpBit(u32 i_idx) { + dComIfGs_isTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_idx]); } -#pragma pop /* 8014CBAC-8014CBF4 1474EC 0048+00 1/0 0/0 0/0 .text __dt__16daNpcT_Hermite_cFv */ #pragma push @@ -2870,6 +3164,28 @@ REGISTER_CTORS(0x8014D3D8, __sinit_d_a_npc_cpp); #pragma pop /* 8014D538-8014D584 147E78 004C+00 2/2 0/0 0/0 .text daBaseNpc_addIdx__FiiPUsi */ +#ifdef NONMATCHING +static int daBaseNpc_addIdx(int param_0, int param_1, u16* param_2, int param_3) { + int tmp; + int ret; + + ret = 0; + tmp = *param_2 - param_0; + + if (0 >= tmp) { + if (param_3 != 0) { + tmp += param_1 * (tmp / param_1 + 1); + } + else { + tmp = 0; + ret = 1; + } + } + + *param_2 = (u16)tmp; + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2878,8 +3194,31 @@ static asm void daBaseNpc_addIdx(int param_0, int param_1, u16* param_2, int par #include "asm/d/a/d_a_npc/daBaseNpc_addIdx__FiiPUsi.s" } #pragma pop +#endif /* 8014D584-8014D5C4 147EC4 0040+00 2/2 0/0 0/0 .text daBaseNpc_subIdx__FiiPUsi */ +#ifdef NONMATCHING +static int daBaseNpc_subIdx(int param_0, int param_1, u16* param_2, int param_3) { + int tmp; + int ret; + + ret = 0; + tmp = *param_2 - param_0; + + if (0 >= tmp) { + if (param_3 != 0) { + tmp += param_1 * (tmp / param_1 + 1); + } + else { + tmp = 0; + ret = 1; + } + } + + *param_2 = (u16)tmp; + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2888,26 +3227,25 @@ static asm void daBaseNpc_subIdx(int param_0, int param_1, u16* param_2, int par #include "asm/d/a/d_a_npc/daBaseNpc_subIdx__FiiPUsi.s" } #pragma pop +#endif /* 8014D5C4-8014D620 147F04 005C+00 2/2 0/0 0/0 .text daBaseNpc_incIdx__FiPUsii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daBaseNpc_incIdx(int param_0, u16* param_1, int param_2, int param_3) { - nofralloc -#include "asm/d/a/d_a_npc/daBaseNpc_incIdx__FiPUsii.s" +static void daBaseNpc_incIdx(int i_pathNo, u16* i_pathIdx, int i_pathClosed, int i_pathDirection) { + if (i_pathDirection < 0) { + daBaseNpc_subIdx(1,i_pathNo,i_pathIdx,i_pathClosed); + } else { + daBaseNpc_addIdx(1,i_pathNo,i_pathIdx,i_pathClosed);; + } } -#pragma pop /* 8014D620-8014D67C 147F60 005C+00 1/1 0/0 0/0 .text daBaseNpc_decIdx__FiPUsii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daBaseNpc_decIdx(int param_0, u16* param_1, int param_2, int param_3) { - nofralloc -#include "asm/d/a/d_a_npc/daBaseNpc_decIdx__FiPUsii.s" +static void daBaseNpc_decIdx(int i_pathNo, u16* i_pathIdx, int i_pathClosed, int i_pathDirection) { + if (i_pathDirection < 0) { + daBaseNpc_addIdx(1,i_pathNo,i_pathIdx,i_pathClosed); + } else { + daBaseNpc_subIdx(1,i_pathNo,i_pathIdx,i_pathClosed);; + } } -#pragma pop /* 8014D67C-8014D804 147FBC 0188+00 1/1 0/0 0/0 .text daNpcBase_BBasis__FiiiPi */ #pragma push @@ -2930,6 +3268,11 @@ asm daBaseNpc_acMngr_c::daBaseNpc_acMngr_c() { #pragma pop /* 8014D81C-8014D838 14815C 001C+00 0/0 0/0 9/9 .text entry__18daBaseNpc_acMngr_cFP10fopAc_ac_c */ +#ifndef NONMATCHING +void daBaseNpc_acMngr_c::entry(fopAc_ac_c* i_ActorP) { + mActorId = fopAcM_GetID(i_ActorP); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2938,16 +3281,31 @@ asm void daBaseNpc_acMngr_c::entry(fopAc_ac_c* param_0) { #include "asm/d/a/d_a_npc/entry__18daBaseNpc_acMngr_cFP10fopAc_ac_c.s" } #pragma pop +#endif /* 8014D838-8014D884 148178 004C+00 0/0 0/0 6/6 .text getActor__18daBaseNpc_acMngr_cFv */ +#ifdef NONMATCHING +// finish +fopAc_ac_c* daBaseNpc_acMngr_c::getActor() { + fopAc_ac_c* ret[4]; + ret[0] = 0; + u32 searched_actor_id = fopAcM_SearchByID(mActorId,ret); + if (!searched_actor_id || ret[0]) { + ret[0] = 0; + } + + return ret[0]; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daBaseNpc_acMngr_c::getActor() { +asm fopAc_ac_c* daBaseNpc_acMngr_c::getActor() { nofralloc #include "asm/d/a/d_a_npc/getActor__18daBaseNpc_acMngr_cFv.s" } #pragma pop +#endif /* 8014D884-8014D998 1481C4 0114+00 1/0 0/0 0/0 .text calc__18daBaseNpc_matAnm_cCFP11J3DMaterial */ @@ -2971,36 +3329,60 @@ asm daBaseNpc_path_c::daBaseNpc_path_c() { #pragma pop /* 8014D9A8-8014D9BC 1482E8 0014+00 1/1 0/0 4/4 .text isPath__16daBaseNpc_path_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_path_c::isPath() { - nofralloc -#include "asm/d/a/d_a_npc/isPath__16daBaseNpc_path_cFv.s" +BOOL daBaseNpc_path_c::isPath() { + return mpRoomPath != 0; } -#pragma pop /* 8014D9BC-8014DA48 1482FC 008C+00 0/0 0/0 1/1 .text setPathInfo__16daBaseNpc_path_cFUcScSc */ +#ifdef NONMATCHING + +typedef dStage_dPnt_c dPnt; +static asm int daBaseNpc_putNurbs(dPnt* param_0, int param_1, int param_2, dPnt* param_3, + int param_4); + +int daBaseNpc_path_c::setPathInfo(u8 i_pathIdx, s8 i_roomNo, s8 i_direction) { + dPath* room_path; + + mRoomPath = 0; + mIdx = 0; + mDirection = i_direction; + + if (i_pathIdx != 0xFF) { + mRoomPath = dPath_GetRoomPath(i_pathIdx,i_roomNo); + room_path = mRoomPath; + if (!room_path) { + return 0; + } + + field_0xa0e = daBaseNpc_putNurbs(room_path->m_points,room_path->m_num,0xA0,field_0xc,room_path->m_closed & 1); + } + return isPath(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daBaseNpc_path_c::setPathInfo(u8 param_0, s8 param_1, s8 param_2) { +asm int daBaseNpc_path_c::setPathInfo(u8 param_0, s8 param_1, s8 param_2) { nofralloc #include "asm/d/a/d_a_npc/setPathInfo__16daBaseNpc_path_cFUcScSc.s" } #pragma pop +#endif /* 8014DA48-8014DA64 148388 001C+00 0/0 0/0 1/1 .text reverseDir__16daBaseNpc_path_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_path_c::reverseDir() { - nofralloc -#include "asm/d/a/d_a_npc/reverseDir__16daBaseNpc_path_cFv.s" +void daBaseNpc_path_c::reverseDir() { + s8 tmp_direction; + mDirection > 0 ? tmp_direction = -1 : tmp_direction = 1; + mDirection = tmp_direction; } -#pragma pop /* 8014DA64-8014DAC4 1483A4 0060+00 0/0 0/0 3/3 .text chkPnt__16daBaseNpc_path_cF4cXyz */ +#ifdef NONMATCHING +void daBaseNpc_path_c::chkPnt(cXyz i_pos) { + int curr_path = mRoomPath; + daBaseNpc_chkPnt(i_pos,(dPnt*)curr_path,mIdx,curr_path,(curr_path+5)&1,(int)mDirection); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3009,8 +3391,22 @@ asm void daBaseNpc_path_c::chkPnt(cXyz param_0) { #include "asm/d/a/d_a_npc/chkPnt__16daBaseNpc_path_cF4cXyz.s" } #pragma pop +#endif /* 8014DAC4-8014DB04 148404 0040+00 0/0 0/0 3/3 .text setNextPnt__16daBaseNpc_path_cFv */ +#ifdef NONMATCHING +// some instructions switched around +void daBaseNpc_path_c::setNextPnt() { + + u16 arg1 = mpRoomPath->m_num; + u16* arg2 = &mIdx; + u8 arg3 = mpRoomPath->m_closed & 1; + s8 arg4 = mDirection; + + + daBaseNpc_incIdx(arg1,arg2,arg3,arg4); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3019,23 +3415,29 @@ asm void daBaseNpc_path_c::setNextPnt() { #include "asm/d/a/d_a_npc/setNextPnt__16daBaseNpc_path_cFv.s" } #pragma pop +#endif /* 8014DB04-8014DB0C 148444 0008+00 0/0 0/0 3/3 .text getIdx__16daBaseNpc_path_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_path_c::getIdx() { - nofralloc -#include "asm/d/a/d_a_npc/getIdx__16daBaseNpc_path_cFv.s" +u16 daBaseNpc_path_c::getIdx() { + return mIdx; } -#pragma pop /* 8014DB0C-8014DB14 -00001 0008+00 0/0 0/0 0/0 .text setIdx__16daBaseNpc_path_cFUs */ -void daBaseNpc_path_c::setIdx(u16 param_0) { - *(u16*)(((u8*)this) + 2576) /* this->field_0xa10 */ = (u16)(param_0); +void daBaseNpc_path_c::setIdx(u16 i_idx) { + mIdx = i_idx; } /* 8014DB14-8014DB40 148454 002C+00 0/0 0/0 4/4 .text getPntPos__16daBaseNpc_path_cFUs */ +#ifdef NONMATCHING +void daBaseNpc_path_c::getPntPos(u16 param_0) { + dStage_dPnt_c* pnt = mpRoomPath->m_points; // get the points on the path + dStage_dPnt_c pnt2 = pnt[param_0*16]; // probably a cast (& 0xFFFF0); + + field_0x0 = pnt2.m_position.x; + mpRoomPath = 0; + field_0x8 = pnt2.m_position.z; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3044,16 +3446,36 @@ asm void daBaseNpc_path_c::getPntPos(u16 param_0) { #include "asm/d/a/d_a_npc/getPntPos__16daBaseNpc_path_cFUs.s" } #pragma pop +#endif /* 8014DB40-8014DBB4 148480 0074+00 1/1 0/0 0/0 .text limitter__18daBaseNpc_lookat_cFsPsss */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_lookat_c::limitter(s16 param_0, s16* param_1, s16 param_2, s16 param_3) { - nofralloc -#include "asm/d/a/d_a_npc/limitter__18daBaseNpc_lookat_cFsPsss.s" +void daBaseNpc_lookat_c::limitter(s16 param_1, s16* param_2, s16 param_3, s16 param_4) { + int tmp = param_1; + int tmp2 = tmp + *param_2; + + + if (param_3 < tmp2) { + if (tmp < param_3) { + *param_2 -= tmp2 - param_3; + } + else { + *param_2 = 0; + } + } + + tmp += *param_2; + + if (tmp >= (s16)param_4) { + return; + } + + if (param_4 < param_1) { + *param_2 -= (int)(tmp - param_4); + return; + } + + *param_2 = 0; } -#pragma pop /* ############################################################################################## */ /* 80453490-80453494 001A90 0004+00 2/2 0/0 0/0 .sdata2 @8404 */ @@ -3074,48 +3496,53 @@ asm void daBaseNpc_lookat_c::calc(fopAc_ac_c* param_0, f32 (*param_1)[4], s16 pa #pragma pop /* 8014E634-8014E658 148F74 0024+00 0/0 0/0 1/1 .text setMaxJntLmt__18daBaseNpc_lookat_cF5csXyzi - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_lookat_c::setMaxJntLmt(csXyz param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_npc/setMaxJntLmt__18daBaseNpc_lookat_cF5csXyzi.s" + */ +void daBaseNpc_lookat_c::setMaxJntLmt(csXyz i_pos, int i_modifier) { + mMaxJntLmt[i_modifier].x = i_pos.x; + mMaxJntLmt[i_modifier].y = i_pos.y; + mMaxJntLmt[i_modifier].z = i_pos.z; } -#pragma pop /* 8014E658-8014E67C 148F98 0024+00 0/0 0/0 1/1 .text setMinJntLmt__18daBaseNpc_lookat_cF5csXyzi - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_lookat_c::setMinJntLmt(csXyz param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_npc/setMinJntLmt__18daBaseNpc_lookat_cF5csXyzi.s" +*/ +void daBaseNpc_lookat_c::setMinJntLmt(csXyz i_pos, int i_modifier) { + mMinJntLmt[i_modifier].x = i_pos.x; + mMinJntLmt[i_modifier].y = i_pos.y; + mMinJntLmt[i_modifier].z = i_pos.z; } -#pragma pop /* 8014E67C-8014E6A0 148FBC 0024+00 0/0 0/0 1/1 .text setJntPos__18daBaseNpc_lookat_cF4cXyzi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_lookat_c::setJntPos(cXyz param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_npc/setJntPos__18daBaseNpc_lookat_cF4cXyzi.s" +void daBaseNpc_lookat_c::setJntPos(cXyz i_pos, int i_modifier) { + mJntPos[i_modifier].x = i_pos.x; + mJntPos[i_modifier].y = i_pos.y; + mJntPos[i_modifier].z = i_pos.z; } -#pragma pop /* 8014E6A0-8014E6AC 148FE0 000C+00 0/0 0/0 1/1 .text setAttnPos__18daBaseNpc_lookat_cFP4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_lookat_c::setAttnPos(cXyz* param_0) { - nofralloc -#include "asm/d/a/d_a_npc/setAttnPos__18daBaseNpc_lookat_cFP4cXyz.s" +int daBaseNpc_lookat_c::setAttnPos(cXyz* i_pos) { + mpAttnPos = i_pos; + return 1; } -#pragma pop /* 8014E6AC-8014E6C8 148FEC 001C+00 0/0 0/0 1/1 .text getRot__18daBaseNpc_lookat_cFi */ +#ifdef NONMATCHING + +// 2 instructions off + +struct someType { + u8 unk[0x7c]; + int someMember; + u16 someMember2; +}; + +void daBaseNpc_lookat_c::getRot(int param_0) { + someType* tmp = (someType*)(this + param_0); + + field_0x00 = tmp->someMember; + mMaxJntLmt[0].x = tmp->someMember2; + +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3124,6 +3551,7 @@ asm void daBaseNpc_lookat_c::getRot(int param_0) { #include "asm/d/a/d_a_npc/getRot__18daBaseNpc_lookat_cFi.s" } #pragma pop +#endif /* 8014E6C8-8014E89C 149008 01D4+00 1/1 0/0 0/0 .text __ct__11daBaseNpc_cFv */ #pragma push @@ -3171,14 +3599,9 @@ bool daBaseNpc_c::getResName() { } /* 8014EE44-8014EE80 149784 003C+00 0/0 0/0 2/2 .text getTrnsfrmKeyAnmP__11daBaseNpc_cFPci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_c::getTrnsfrmKeyAnmP(char* param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_npc/getTrnsfrmKeyAnmP__11daBaseNpc_cFPci.s" +J3DAnmTransform* daBaseNpc_c::getTrnsfrmKeyAnmP(char* param_0, int param_1) { + return (J3DAnmTransform*)dComIfG_getObjectRes(param_0,param_1); } -#pragma pop /* 8014EE80-8014EEE4 1497C0 0064+00 0/0 0/0 1/1 .text * setMcaMorfAnm__11daBaseNpc_cFP18J3DAnmTransformKeyffiii */ @@ -3194,48 +3617,43 @@ asm void daBaseNpc_c::setMcaMorfAnm(J3DAnmTransformKey* param_0, f32 param_1, f3 /* 8014EEE4-8014EF28 149824 0044+00 0/0 0/0 1/1 .text * setBckAnm__11daBaseNpc_cFP15J3DAnmTransformfiiib */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_c::setBckAnm(J3DAnmTransform* param_0, f32 param_1, int param_2, int param_3, +void daBaseNpc_c::setBckAnm(J3DAnmTransform* param_0, f32 param_1, int param_2, int param_3, int param_4, bool param_5) { - nofralloc -#include "asm/d/a/d_a_npc/setBckAnm__11daBaseNpc_cFP15J3DAnmTransformfiiib.s" + mBckAnm.init(param_0,1,param_2,param_1,param_3,param_4,param_5); } -#pragma pop /* 8014EF28-8014EF64 149868 003C+00 0/0 0/0 1/1 .text getTexPtrnAnmP__11daBaseNpc_cFPci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_c::getTexPtrnAnmP(char* param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_npc/getTexPtrnAnmP__11daBaseNpc_cFPci.s" +J3DAnmTransform* daBaseNpc_c::getTexPtrnAnmP(char* param_0, int param_1) { + return (J3DAnmTransform*)dComIfG_getObjectRes(param_0,param_1); } -#pragma pop /* 8014EF64-8014EFA4 1498A4 0040+00 0/0 0/0 1/1 .text * setBtpAnm__11daBaseNpc_cFP16J3DAnmTexPatternP12J3DModelDatafi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_c::setBtpAnm(J3DAnmTexPattern* param_0, J3DModelData* param_1, f32 param_2, - int param_3) { - nofralloc -#include "asm/d/a/d_a_npc/setBtpAnm__11daBaseNpc_cFP16J3DAnmTexPatternP12J3DModelDatafi.s" + void daBaseNpc_c::setBtpAnm(J3DAnmTexPattern* param_0, J3DModelData* param_1, f32 param_2, + int param_3) { + mBtpAnm.init(¶m_1->getMaterialTable(), param_0, 1, param_3, param_2, 0, -1); } -#pragma pop /* 8014EFA4-8014EFF0 1498E4 004C+00 2/0 0/0 2/0 .text attnSttsOn__11daBaseNpc_cFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_c::attnSttsOn(int param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_npc/attnSttsOn__11daBaseNpc_cFii.s" +void daBaseNpc_c::attnSttsOn(int param_0, int param_1) { + u32 tmp; + + if (dComIfGp_getLinkPlayer()->i_checkWolf()) { + if (param_1 != 0) { + tmp = 10; + } + else { + tmp = 1; + } + } else if (param_0 != 0) { + tmp = 10; + } else { + tmp = 1; + } + + mAttentionInfo.mFlags = tmp; } -#pragma pop /* 8014EFF0-8014EFF4 149930 0004+00 2/0 0/0 1/0 .text setParam__11daBaseNpc_cFv */ void daBaseNpc_c::setParam() { @@ -3243,39 +3661,33 @@ void daBaseNpc_c::setParam() { } /* 8014EFF4-8014F09C 149934 00A8+00 0/0 0/0 1/1 .text orderEvent__11daBaseNpc_cFiPc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_c::orderEvent(int param_0, char* param_1) { - nofralloc -#include "asm/d/a/d_a_npc/orderEvent__11daBaseNpc_cFiPc.s" +void daBaseNpc_c::orderEvent(int param_0, char* i_evtName) { + if (i_evtName) { + mEvtIdx = i_dComIfGp_getEventManager().getEventIdx(this,i_evtName,-1); + fopAcM_orderOtherEventId(this, mEvtIdx, -1, -1, 0, 1); + } else { + if ((mUnk >= 0 && mAttentionInfo.mFlags == 10) && (mEvtInfo.mCondition |= 1,param_0 != 0)) { + fopAcM_orderSpeakEvent(this,0,0); + } + } } -#pragma pop - /* 8014F09C-8014F0A0 1499DC 0004+00 2/0 0/0 1/0 .text mainProc__11daBaseNpc_cFv */ void daBaseNpc_c::mainProc() { /* empty function */ } /* 8014F0A0-8014F0FC 1499E0 005C+00 1/1 0/0 2/2 .text setEnvTevColor__11daBaseNpc_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_c::setEnvTevColor() { - nofralloc -#include "asm/d/a/d_a_npc/setEnvTevColor__11daBaseNpc_cFv.s" +void daBaseNpc_c::setEnvTevColor() { + mTevStr.mEnvrIdxOverride = dComIfG_Bgsp().GetPolyColor(mBgSPolyInfo); + mTevStr.mRoomNo = dComIfG_Bgsp().GetRoomId(mBgSPolyInfo); } -#pragma pop /* 8014F0FC-8014F140 149A3C 0044+00 1/1 0/0 2/2 .text setRoomNo__11daBaseNpc_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_c::setRoomNo() { - nofralloc -#include "asm/d/a/d_a_npc/setRoomNo__11daBaseNpc_cFv.s" +void daBaseNpc_c::setRoomNo() { + s32 room_id = dComIfG_Bgsp().GetRoomId(mBgSPolyInfo); + current.mRoomNo = room_id; + mRoomId = room_id; } -#pragma pop /* 8014F140-8014F148 149A80 0008+00 2/0 0/0 2/0 .text btkCtrl__11daBaseNpc_cFv */ bool daBaseNpc_c::btkCtrl() { @@ -3283,25 +3695,68 @@ bool daBaseNpc_c::btkCtrl() { } /* 8014F148-8014F1C8 149A88 0080+00 1/1 0/0 0/0 .text checkEndAnm__11daBaseNpc_cFf */ +#ifdef NONMATCHING +int daBaseNpc_c::checkEndAnm(f32 param_0) { + u32 state; + u8 play_mode = mpMorf->getPlayMode(); + + if (play_mode != 2) { + state = mpMorf->isLoop(); + } else if (play_mode < 2) { + state = 0; + + if (!mpMorf->isStop() && param_0 != mpMorf->getPlaySpeed()) { + state = 1; + } + + } else { + state = 0; + } + + return state; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daBaseNpc_c::checkEndAnm(f32 param_0) { +asm int daBaseNpc_c::checkEndAnm(f32 param_0) { nofralloc #include "asm/d/a/d_a_npc/checkEndAnm__11daBaseNpc_cFf.s" } #pragma pop +#endif /* 8014F1C8-8014F228 149B08 0060+00 1/1 0/0 0/0 .text checkEndAnm__11daBaseNpc_cFP12J3DFrameCtrl */ +#ifdef NONMATCHING +int daBaseNpc_c::checkEndAnm(J3DFrameCtrl* param_0) { + int tmp; + int tmp_attr = param_0->getAttribute(); + + if (tmp_attr == 2) { + tmp_attr = param_0->checkState(2); + } else if (2 > tmp_attr) { + tmp = 1; + if (((param_0->checkState(1) == 0) && (param_0->getRate() != 0.0f))) { + tmp = 0; + } + } else { + tmp = 0; + } + + return tmp; + +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daBaseNpc_c::checkEndAnm(J3DFrameCtrl* param_0) { +asm int daBaseNpc_c::checkEndAnm(J3DFrameCtrl* param_0) { nofralloc #include "asm/d/a/d_a_npc/checkEndAnm__11daBaseNpc_cFP12J3DFrameCtrl.s" } #pragma pop +#endif /* 8014F228-8014F38C 149B68 0164+00 2/0 0/0 2/0 .text allAnmPlay__11daBaseNpc_cFv */ #pragma push @@ -3320,14 +3775,43 @@ void daBaseNpc_c::adjustShapeAngle() { } /* 8014F390-8014F4A0 149CD0 0110+00 2/0 0/0 1/0 .text setMtx__11daBaseNpc_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daBaseNpc_c::setMtx(int param_0) { - nofralloc -#include "asm/d/a/d_a_npc/setMtx__11daBaseNpc_cFi.s" +void daBaseNpc_c::setMtx(int param_0) { + J3DModel* model = mMcaMorfAnm[0]->getModel();; + J3DModelData* modelData = model->getModelData(); + + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(field_0x91a); + mDoMtx_stack_c::scaleM(mScale); + + model->i_setBaseTRMtx(mDoMtx_stack_c::get()); + + if (param_0) { + model->setUserArea((u32)this); + } else { + model->setUserArea(0); + } + + if ((field_0x840 & 0x10) && field_0x83c) { + u16 tmp = 0; + + while (field_0x83c[tmp] != 0xffff) { + mBckAnm.entryJoint(modelData,field_0x83c[tmp],mBckAnm.getFrame()); + tmp++; + } + + mMcaMorfAnm[0]->modelCalc(); + + u16 tmp2 = 0; + + while (field_0x83c[tmp2] != 0xffff) { + mBckAnm.removeJoint(modelData,field_0x83c[tmp2]); + tmp2++; + } + + } else { + mMcaMorfAnm[0]->modelCalc(); + } } -#pragma pop /* 8014F4A0-8014F4A4 149DE0 0004+00 2/0 0/0 1/0 .text setCollisions__11daBaseNpc_cFv */ void daBaseNpc_c::setCollisions() { @@ -3351,24 +3835,15 @@ bool daBaseNpc_c::dbgDraw() { /* 8014F4B4-8014F4F8 149DF4 0044+00 0/0 0/0 1/1 .text __ct__23daBaseNpc_moveBgActor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daBaseNpc_moveBgActor_c::daBaseNpc_moveBgActor_c() { - nofralloc -#include "asm/d/a/d_a_npc/__ct__23daBaseNpc_moveBgActor_cFv.s" +// this probably has a more correct solution +daBaseNpc_moveBgActor_c::daBaseNpc_moveBgActor_c() { + setVtable(&__vt__23daBaseNpc_moveBgActor_c); + field_0xa14 = 0; } -#pragma pop - /* 8014F4F8-8014F518 149E38 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void CheckCreateHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_npc/CheckCreateHeap__FP10fopAc_ac_c.s" +static void CheckCreateHeap(fopAc_ac_c* i_bgActor) { + ((daBaseNpc_moveBgActor_c*)i_bgActor)->MoveBGCreateHeap(); } -#pragma pop /* ############################################################################################## */ /* 80450FE0-80450FE4 0004E0 0004+00 2/2 0/0 0/0 .sbss m_name__23daBaseNpc_moveBgActor_c @@ -3446,7 +3921,7 @@ static asm void daBaseNpc_PntVsLineSegmentLengthSquare2D(f32 param_0, f32 param_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void daBaseNpc_putNurbs(dPnt* param_0, int param_1, int param_2, dPnt* param_3, +static asm int daBaseNpc_putNurbs(dPnt* param_0, int param_1, int param_2, dPnt* param_3, int param_4) { nofralloc #include "asm/d/a/d_a_npc/daBaseNpc_putNurbs__FP4dPntiiP4dPnti.s" @@ -3562,103 +4037,146 @@ asm daBaseNpc_acMngr_c::~daBaseNpc_acMngr_c() { #pragma pop /* 8015056C-801505AC 14AEAC 0040+00 2/2 0/0 0/0 .text daNpcF_addIdx__FiiRUsi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daNpcF_addIdx(int param_0, int param_1, u16& param_2, int param_3) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_addIdx__FiiRUsi.s" +// may be able to simplify this more +static int daNpcF_addIdx(int param_0, int param_1, u16& param_2, int param_3) { + int tmp = 0; + int tmp2 = param_2; + tmp2 += param_0; + + if (param_1 <= tmp2) { + if (param_3) { + int tmp3 = tmp2 / param_1; + tmp2 -= (tmp3 * param_1); + } else { + tmp2 = param_1 + -1; + tmp = 1; + } + } + + param_2 = tmp2; + return tmp; } -#pragma pop + + + /* 801505AC-801505F8 14AEEC 004C+00 2/2 0/0 0/0 .text daNpcF_subIdx__FiiRUsi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daNpcF_subIdx(int param_0, int param_1, u16& param_2, int param_3) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_subIdx__FiiRUsi.s" +// may be able to simplify this more +static int daNpcF_subIdx(int param_0, int param_1, u16& param_2, int param_3) { + int tmp = 0; + int tmp2 = param_2; + tmp2 -= param_0; + + if (0 > tmp2) { + if (param_3) { + int tmp3 = tmp2 / param_1; + int tmp4 = tmp2 - tmp3 * param_1; + param_0 = param_1 + tmp4; + + int tmp5 = param_0 / param_1; + tmp2 = param_0 - (tmp5 * param_1); + + } else { + tmp2 = 0; + tmp = 1; + } + } + + param_2 = tmp2; + return tmp; } -#pragma pop /* 801505F8-80150654 14AF38 005C+00 4/4 0/0 0/0 .text daNpcF_incIdx__FiRUsii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daNpcF_incIdx(int param_0, u16& param_1, int param_2, int param_3) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_incIdx__FiRUsii.s" +static void daNpcF_incIdx(int param_0, u16& param_1, int param_2, int param_3) { + param_3 ? daNpcF_subIdx(1,param_0,param_1,param_2) : daNpcF_addIdx(1,param_0,param_1,param_2); } -#pragma pop /* 80150654-801506B0 14AF94 005C+00 3/3 0/0 0/0 .text daNpcF_decIdx__FiRUsii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daNpcF_decIdx(int param_0, u16& param_1, int param_2, int param_3) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_decIdx__FiRUsii.s" +static void daNpcF_decIdx(int param_0, u16& param_1, int param_2, int param_3) { + param_3 ? daNpcF_addIdx(1,param_0,param_1,param_2) : daNpcF_subIdx(1,param_0,param_1,param_2); } -#pragma pop /* 801506B0-801506BC 14AFF0 000C+00 0/0 0/0 130/130 .text initialize__18daNpcF_ActorMngr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_ActorMngr_c::initialize() { - nofralloc -#include "asm/d/a/d_a_npc/initialize__18daNpcF_ActorMngr_cFv.s" +void daNpcF_ActorMngr_c::initialize() { + mActorID = -1; } -#pragma pop /* 801506BC-801506D8 14AFFC 001C+00 1/1 0/0 130/130 .text * entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_ActorMngr_c::entry(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_npc/entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c.s" +void daNpcF_ActorMngr_c::entry(fopAc_ac_c* i_actor) { + u32 actor_id; + + i_actor ? actor_id = i_actor->mBase.mBsPcId : actor_id = -1; + mActorID = actor_id; } -#pragma pop /* 801506D8-801506E0 -00001 0008+00 0/0 0/0 0/0 .text entry__18daNpcF_ActorMngr_cFUi */ -void daNpcF_ActorMngr_c::entry(unsigned int param_0) { - *(u32*)this = (u32)(param_0); +void daNpcF_ActorMngr_c::entry(unsigned int i_actorID) { + mActorID = i_actorID; } /* 801506E0-801506EC 14B020 000C+00 2/2 0/0 55/55 .text remove__18daNpcF_ActorMngr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_ActorMngr_c::remove() { - nofralloc -#include "asm/d/a/d_a_npc/remove__18daNpcF_ActorMngr_cFv.s" +void daNpcF_ActorMngr_c::remove() { + mActorID = -1; } -#pragma pop /* 801506EC-80150738 14B02C 004C+00 1/1 0/0 135/135 .text getActorP__18daNpcF_ActorMngr_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_ActorMngr_c::getActorP() { - nofralloc -#include "asm/d/a/d_a_npc/getActorP__18daNpcF_ActorMngr_cFv.s" +fopAc_ac_c* daNpcF_ActorMngr_c::getActorP() { + fopAc_ac_c* actor = NULL; + + if (fopAcM_SearchByID(mActorID, &actor) == 1 && actor != NULL) { + return actor; + } + + return NULL; } -#pragma pop /* 80150738-8015075C 14B078 0024+00 0/0 0/0 48/48 .text initialize__15daNpcF_MatAnm_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_MatAnm_c::initialize() { - nofralloc -#include "asm/d/a/d_a_npc/initialize__15daNpcF_MatAnm_cFv.s" +void daNpcF_MatAnm_c::initialize() { + f32 value = FLOAT_LABEL(lit_4116); + + field_0xF4 = value; + field_0xF8 = value; + mTranslationX = value; + mTranslationY = value; + field_0x104 = 0; + field_0x105 = 0; } -#pragma pop /* 8015075C-80150870 14B09C 0114+00 1/0 0/0 0/0 .text calc__15daNpcF_MatAnm_cCFP11J3DMaterial */ +#ifdef NONMATCHING +// matches if you make daNpcF_MatAnm_c inherit J3DMaterialAnm +// But doing so causes the dol overall to not match +// something obvious here i'm missing +void daNpcF_MatAnm_c::calc(J3DMaterial* param_0) const { + J3DMaterialAnm::calc(param_0); + + for (u32 i = 0; i < 8; i++) { + if (J3DMaterialAnm::getTexMtxAnm(i).getAnmFlag()) { + J3DTexMtxInfo* curr_mtx_info = ¶m_0->getTexGenBlock()->getTexMtx(i)->getTexMtxInfo(); + + if (field_0x105 != 0) { + f32 tmp8 = 1.0f / (field_0x105 + 1); + f32 tmp9 = (1.0f - tmp8); + f32 tmp10 = field_0xF4 * (1.0f - tmp8); + + curr_mtx_info->mSRT.mTranslationX = tmp10 + curr_mtx_info->mSRT.mTranslationX * tmp8; + curr_mtx_info->mSRT.mTranslationY = field_0xF8 * tmp9 + curr_mtx_info->mSRT.mTranslationY * tmp8; + + } else { + if (field_0x104 != 0) { + curr_mtx_info->mSRT.mTranslationX = mTranslationX; + curr_mtx_info->mSRT.mTranslationY = mTranslationY; + } + } + + field_0xF4 = curr_mtx_info->mSRT.mTranslationX; + field_0xF8 = curr_mtx_info->mSRT.mTranslationY; + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3667,8 +4185,31 @@ asm void daNpcF_MatAnm_c::calc(J3DMaterial* param_0) const { #include "asm/d/a/d_a_npc/calc__15daNpcF_MatAnm_cCFP11J3DMaterial.s" } #pragma pop +#endif /* 80150870-80150900 14B1B0 0090+00 2/2 0/0 8/8 .text initialize__16daNpcF_SPCurve_cFP5dPathi */ +#ifdef NONMATCHING +static u16 daNpcF_putNurbs(dPnt* param_0, int param_1, int param_2, dPnt* param_3, int param_4); + +void daNpcF_SPCurve_c::initialize(dPath* i_path, int param_1) { + mNurbs = 0; + field_0x02 = 0; + field_0x04 = param_1; + mIsClosed = 0; + f32 lit = 1.0f; // correct to lit_4116 later + + for (int i = 0; i < 96; i++) { + mPoints[i].m_position.x = lit; + mPoints[i].m_position.y = lit; + mPoints[i].m_position.z = lit; + } + + if (i_path) { + mIsClosed = i_path->m_closed & 1; + mNurbs = daNpcF_putNurbs(i_path->m_points,i_path->m_num, 0x60, mPoints,mIsClosed); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3677,36 +4218,72 @@ asm void daNpcF_SPCurve_c::initialize(dPath* param_0, int param_1) { #include "asm/d/a/d_a_npc/initialize__16daNpcF_SPCurve_cFP5dPathi.s" } #pragma pop +#endif /* 80150900-8015095C 14B240 005C+00 0/0 0/0 20/20 .text initialize__13daNpcF_Path_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_Path_c::initialize() { - nofralloc -#include "asm/d/a/d_a_npc/initialize__13daNpcF_Path_cFv.s" +void daNpcF_Path_c::initialize() { + mIdx = 0; + field_0x02 = 0; + mIsClosed = 0; + mpRoomPath = 0; + + mSPCurve.initialize(0,0); + + f32 value = FLOAT_LABEL(lit_4116); + field_0x08 = value; + field_0x0C = value; + field_0x10 = value; } -#pragma pop /* 8015095C-80150A24 14B29C 00C8+00 0/0 0/0 12/12 .text setPathInfo__13daNpcF_Path_cFUcScUc */ +#ifdef NONMATCHING +// bunch of regalloc issues. There is an inline function at the end that needs to be defined +int daNpcF_Path_c::setPathInfo(u8 param_0, s8 param_1, u8 param_2) { + mpRoomPath = 0; + field_0x00 = 0; + field_0x02 = param_2; + dStage_dPnt_c point; + + if (param_0 != 0xFF) { + mpRoomPath = dPath_GetRoomPath(param_0,param_1); + if (!mpRoomPath) { + return 0; + } + mSPCurve.initialize(mpRoomPath,field_0x02); + mIsClosed = mpRoomPath->m_closed & 1; + + int idx = field_0x00; + point = mpRoomPath->m_points[idx]; + + f32 x = point.m_position.x; + f32 y = point.m_position.y; + f32 z = point.m_position.z; + + mPosition.x = x; + mPosition.y = y; + mPosition.z = z; + } + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcF_Path_c::setPathInfo(u8 param_0, s8 param_1, u8 param_2) { +asm int daNpcF_Path_c::setPathInfo(u8 param_0, s8 param_1, u8 param_2) { nofralloc #include "asm/d/a/d_a_npc/setPathInfo__13daNpcF_Path_cFUcScUc.s" } #pragma pop +#endif /* 80150A24-80150A7C 14B364 0058+00 1/1 0/0 1/1 .text chkPassed__13daNpcF_Path_cF4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_Path_c::chkPassed(cXyz param_0) { - nofralloc -#include "asm/d/a/d_a_npc/chkPassed__13daNpcF_Path_cF4cXyz.s" +// forward decleration +int daNpcF_chkPassed(cXyz param_0, dPnt* param_1, u16 param_2, u16 param_3, int param_4, + int param_5); + +int daNpcF_Path_c::chkPassed(cXyz param_0) { + return daNpcF_chkPassed(param_0, (dPnt*)mpRoomPath->m_points,mIdx,mpRoomPath->m_num,(int)mIsClosed,(int)field_0x02); } -#pragma pop /* 80150A7C-80150BBC 14B3BC 0140+00 0/0 0/0 4/4 .text chkPassedDst__13daNpcF_Path_cF4cXyz */ @@ -3720,46 +4297,98 @@ asm void daNpcF_Path_c::chkPassedDst(cXyz param_0) { #pragma pop /* 80150BBC-80150BE0 14B4FC 0024+00 0/0 0/0 8/8 .text reverse__13daNpcF_Path_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_Path_c::reverse() { - nofralloc -#include "asm/d/a/d_a_npc/reverse__13daNpcF_Path_cFv.s" +void daNpcF_Path_c::reverse() { + if (field_0x02 == 1) { + field_0x02 = 0; + return; + } + field_0x02 = 1; + return; } -#pragma pop /* 80150BE0-80150C18 14B520 0038+00 2/2 0/0 6/6 .text setNextIdx__13daNpcF_Path_cFv */ +#ifdef NONMATCHING +// 1 instruction off, params being loaded out of order? +void daNpcF_Path_c::setNextIdx() { + int a = mpRoomPath->m_num; + int c = mpRoomPath->m_closed & 1; + u16& b = field_0x00; + u8 d = field_0x02; + + daNpcF_incIdx(a,b,c,d); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcF_Path_c::setNextIdx() { +asm int daNpcF_Path_c::setNextIdx() { nofralloc #include "asm/d/a/d_a_npc/setNextIdx__13daNpcF_Path_cFv.s" } #pragma pop +#endif /* 80150C18-80150C60 14B558 0048+00 0/0 0/0 9/9 .text getNextIdx__13daNpcF_Path_cFv */ +#ifdef NONMATCHING +// same problem as above +u16 daNpcF_Path_c::getNextIdx() { + u16 ret = mIdx; + + daNpcF_incIdx(mpRoomPath->m_num,ret,mpRoomPath->m_closed & 1, field_0x02); + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcF_Path_c::getNextIdx() { +asm u16 daNpcF_Path_c::getNextIdx() { nofralloc #include "asm/d/a/d_a_npc/getNextIdx__13daNpcF_Path_cFv.s" } #pragma pop +#endif /* 80150C60-80150CA8 14B5A0 0048+00 0/0 0/0 3/3 .text getBeforeIdx__13daNpcF_Path_cFv */ +#ifdef NONMATCHING +// same problem as above +u16 daNpcF_Path_c::getBeforeIdx() { + u16 ret = mIdx; + + daNpcF_decIdx(mpRoomPath->m_num,ret,mpRoomPath->m_closed & 1, field_0x02); + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcF_Path_c::getBeforeIdx() { +asm u16 daNpcF_Path_c::getBeforeIdx() { nofralloc #include "asm/d/a/d_a_npc/getBeforeIdx__13daNpcF_Path_cFv.s" } #pragma pop +#endif /* 80150CA8-80150D44 14B5E8 009C+00 0/0 0/0 1/1 .text getBeforePos__13daNpcF_Path_cFR4cXyz */ +#ifdef NONMATCHING +// many regalloc issues +void daNpcF_Path_c::getBeforePos(cXyz& param_0) { + u16 ret = mIdx; + dStage_dPnt_c* points; + + daNpcF_decIdx(mpRoomPath->m_num,ret,mpRoomPath->m_closed & 1, field_0x02); + + int idx = mIdx; + points = mpRoomPath->m_points; + + f32 x = points[mIdx].m_position.x; + f32 y = points[mIdx].m_position.y; + f32 z = points[mIdx].m_position.z; + + mPosition.x = x; + mPosition.y = y; + mPosition.z = z; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3768,9 +4397,30 @@ asm void daNpcF_Path_c::getBeforePos(cXyz& param_0) { #include "asm/d/a/d_a_npc/getBeforePos__13daNpcF_Path_cFR4cXyz.s" } #pragma pop +#endif /* 80150D44-80150DE0 14B684 009C+00 0/0 0/0 1/1 .text getNextPos__13daNpcF_Path_cFR4cXyz */ +// many regalloc issues +#ifdef NONMATCHING +void daNpcF_Path_c::getNextPos(cXyz& param_0) { + u16 ret = mIdx; + dStage_dPnt_c* points; + + daNpcF_incIdx(mpRoomPath->m_num,ret,mpRoomPath->m_closed & 1, field_0x02); + + int idx = mIdx; + points = mpRoomPath->m_points; + + f32 x = points[mIdx].m_position.x; + f32 y = points[mIdx].m_position.y; + f32 z = points[mIdx].m_position.z; + + mPosition.x = x; + mPosition.y = y; + mPosition.z = z; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3779,16 +4429,48 @@ asm void daNpcF_Path_c::getNextPos(cXyz& param_0) { #include "asm/d/a/d_a_npc/getNextPos__13daNpcF_Path_cFR4cXyz.s" } #pragma pop +#endif /* 80150DE0-80150EB4 14B720 00D4+00 0/0 0/0 16/16 .text getDstPos__13daNpcF_Path_cF4cXyzR4cXyz */ +#ifdef NONMATCHING +int daNpcF_Path_c::getDstPos(cXyz i_pos1, cXyz& i_pos2) { + int ret = 0; + + while (true) { + int curr_index = getIdx(); + cXyz* curr_room_pos = &mpRoomPath->m_points[curr_index].m_position; + + i_pos2.x = curr_room_pos->x; + i_pos2.y = curr_room_pos->y; + i_pos2.z = curr_room_pos->x; + + cXyz local_pos; + local_pos.x = i_pos1.x; + local_pos.y = i_pos1.y; + local_pos.z = i_pos1.z; + + if (!chkPassed(local_pos)) { break; }; + + if (setNextIdx()) { + ret = 1; + } + + if (ret != 0) { + return ret; + } + } + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcF_Path_c::getDstPos(cXyz param_0, cXyz& param_1) { +asm int daNpcF_Path_c::getDstPos(cXyz param_0, cXyz& param_1) { nofralloc #include "asm/d/a/d_a_npc/getDstPos__13daNpcF_Path_cF4cXyzR4cXyz.s" } #pragma pop +#endif /* 80150EB4-80151038 14B7F4 0184+00 0/0 0/0 2/2 .text setNextIdxDst__13daNpcF_Path_cF4cXyz */ #pragma push @@ -3816,7 +4498,7 @@ asm void daNpcF_Lookat_c::initialize() { static u8 lit_9946[12]; /* 804257DC-804257E8 0524FC 000C+00 1/1 0/0 0/0 .bss vec$9945 */ -static u8 vec[12]; +static Vec vec; /* 80450FEC-80450FF0 0004EC 0004+00 1/1 0/0 0/0 .sbss None */ static u8 data_80450FEC[4]; @@ -3826,6 +4508,38 @@ SECTION_SDATA2 static f32 lit_9971 = 32.0f; /* 801510B8-80151350 14B9F8 0298+00 0/0 0/0 34/34 .text * setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz */ +#ifdef NONMATCHING +void daNpcF_Lookat_c::setParam(f32 param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, + f32 param_5, f32 param_6, f32 param_7, f32 param_8, f32 param_9, + f32 param_10, f32 param_11, s16 param_12, cXyz* param_13) { + f32 l_float0 = param_0; + f32 l_float1 = param_1; + f32 l_float2 = param_2; + f32 l_float3 = param_3; + u32 tmp = 0; + + if (!data_80450FEC) { + f32 value = FLOAT_LABEL(lit_9971); + + // vec.set(0.0f,0.0f,value); + FLOAT_LABEL(data_80450FEC) = 1.0f; + } + + field_0x00[0] = *param_13; + field_0x4c[0].set((cM_deg2s(-param_1) - 0x4000),cM_deg2s(param_2),0); + field_0x64[0].set((cM_deg2s(-param_0) - 0x4000),cM_deg2s(param_3),0); + + field_0x00[1].set(param_12,param_12,param_12); + field_0x4c[1].set(cM_deg2s(-0x4000),param_8,param_8); + field_0x64[1].set(-0x4000,param_8,param_8); + + field_0x00[2].set(param_9,param_9,param_9); + field_0x4c[2].set(-0x4000,param_11,param_11); + field_0x64[2].set(-0x4000,param_11,param_11); + + +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3836,9 +4550,52 @@ asm void daNpcF_Lookat_c::setParam(f32 param_0, f32 param_1, f32 param_2, f32 pa #include "asm/d/a/d_a_npc/setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz.s" } #pragma pop +#endif /* 80151350-801515D4 14BC90 0284+00 0/0 0/0 34/34 .text * calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii */ +#ifdef NONMATCHING +void daNpcF_Lookat_c::calc(fopAc_ac_c* param_0, f32 (*param_1)[4], csXyz** param_2, int param_3, + int param_4, int param_5) { + int tmp = 0; + int tmp2; + + if (field_0x30) { + initCalc(param_0,param_1,(cXyz*)param_2,*param_2,*param_1,(cXyz&)param_2,param_5); + + for (int i = 2; i >= -1; i--) { + update((cXyz*)param_2,*param_2,(float*)param_4); + if (0 <= i) { + calcMoveDisAngle(i,(cXyz*)param_2,*param_2,(cXyz&)param_2,param_4,param_5); + } + } + setRotAngle(); + + } else { + clrRotAngle(); + } + + tmp2 = 1; + + for (int i = 2; i >= -1; i-- ) { + if (param_3) { + cLib_addCalc2((float*)param_2,(float)field_0x7c[0].y,0.25f,(0x800/ (float)tmp2)); + cLib_addCalc2((float*)param_2,(float)field_0x7c[0].y,0.25f,(0x800/ (float)tmp2)); + + if (0 < param_4 && (field_0x7c[0].y - param_2[i]->y) > 0.0f) { + param_2[i]->y = field_0x7c[0].y; + } + + if (0 < param_4 && (field_0x7c[0].y - param_2[i]->y) > 0.0f) { + param_2[i]->y = field_0x7c[0].y; + } + + } else { + param_2[8] = field_0x7c; + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3848,9 +4605,39 @@ asm void daNpcF_Lookat_c::calc(fopAc_ac_c* param_0, f32 (*param_1)[4], csXyz** p #include "asm/d/a/d_a_npc/calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii.s" } #pragma pop +#endif /* 801515D4-80151648 14BF14 0074+00 1/1 0/0 0/0 .text adjustMoveDisAngle__15daNpcF_Lookat_cFRssss */ +#ifdef NONMATCHING +// regalloc +void daNpcF_Lookat_c::adjustMoveDisAngle(s16& param_0, s16 param_1, s16 param_2, s16 param_3) { + int tmp2 = param_1; + int tmp = tmp2 + param_0; + + + if (param_3 < tmp) { + if (tmp2 < param_3) { + param_0 -= (tmp - param_3); + } else { + param_0 = 0; + } + } + + tmp2 += param_0; + + if (tmp2 >= param_2) { + return; + } + + if (param_2 < param_1) { + param_0 -= (tmp2 - param_2); + return; + } + + param_0 = 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -3859,6 +4646,7 @@ asm void daNpcF_Lookat_c::adjustMoveDisAngle(s16& param_0, s16 param_1, s16 para #include "asm/d/a/d_a_npc/adjustMoveDisAngle__15daNpcF_Lookat_cFRssss.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8045349C-804534A0 001A9C 0004+00 1/1 0/0 0/0 .sdata2 @10253 */ @@ -3955,7 +4743,7 @@ asm void daNpcF_c::tgHitCallBack(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, fop u8 daNpcF_c::mFindActorPList[400]; /* 80450FF0-80450FF4 0004F0 0004+00 4/4 0/0 0/0 .sbss mFindCount__8daNpcF_c */ -u8 daNpcF_c::mFindCount[4]; +s32 daNpcF_c::mFindCount; /* 80152654-801526E8 14CF94 0094+00 0/0 0/0 12/12 .text srchAttnActor1__8daNpcF_cFPvPv */ #pragma push @@ -3969,13 +4757,13 @@ asm void daNpcF_c::srchAttnActor1(void* param_0, void* param_1) { /* ############################################################################################## */ /* 80450FF4-80450FF8 0004F4 0002+02 2/2 0/0 0/0 .sbss mSrchActorName__8daNpcF_c */ -u8 daNpcF_c::mSrchActorName[2 + 2 /* padding */]; +s16 daNpcF_c::mSrchActorName; /* 801526E8-8015276C 14D028 0084+00 1/1 0/0 0/0 .text srchActor__8daNpcF_cFPvPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcF_c::srchActor(void* param_0, void* param_1) { +asm void* daNpcF_c::srchActor(void* param_0, void* param_1) { nofralloc #include "asm/d/a/d_a_npc/srchActor__8daNpcF_cFPvPv.s" } @@ -4299,14 +5087,15 @@ asm void daNpcF_c::chkActorInAttnArea(fopAc_ac_c* param_0, fopAc_ac_c* param_1, #pragma pop /* 80153D1C-80153D84 14E65C 0068+00 0/0 0/0 118/118 .text initTalk__8daNpcF_cFiPP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_c::initTalk(int param_0, fopAc_ac_c** param_1) { - nofralloc -#include "asm/d/a/d_a_npc/initTalk__8daNpcF_cFiPP10fopAc_ac_c.s" +int daNpcF_c::initTalk(int param_0, fopAc_ac_c** param_1) { + mFlow.init(this,param_0,0,param_1); + f32 tmp = FLOAT_LABEL(lit_4116); + mSpeedF = tmp; + mSpeed.set(tmp,tmp,tmp); + field_0x9e9 = 0; + field_0x9ec = 0; + return 1; } -#pragma pop /* 80153D84-80153EF4 14E6C4 0170+00 0/0 0/0 119/119 .text talkProc__8daNpcF_cFPiiPP10fopAc_ac_c */ #pragma push @@ -4349,24 +5138,37 @@ asm void daNpcF_c::setAngle(s16 param_0) { #pragma pop /* 80154278-801542A0 14EBB8 0028+00 0/0 0/0 36/36 .text getDistTableIdx__8daNpcF_cFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_c::getDistTableIdx(int param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_npc/getDistTableIdx__8daNpcF_cFii.s" +u8 daNpcF_getDistTableIdx(int param_0, int param_1); //fwd dec to get a match + +void daNpcF_c::getDistTableIdx(int param_0, int param_1) { + daNpcF_getDistTableIdx(param_0,param_1); } -#pragma pop /* 801542A0-8015436C 14EBE0 00CC+00 0/0 0/0 6/6 .text getEvtAreaTagP__8daNpcF_cFii */ +#ifdef NONMATCHING +int daNpcF_c::getEvtAreaTagP(int param_0, int param_1) { + mFindCount = 0; + mSrchActorName = PROC_TAG_EVTAREA; + fpcM_Search((fpcLyIt_JudgeFunc)this->srchActor,(void*)this); + + for (int i = 0; mFindCount >= 0; mFindCount--) { + if (param_0 == mFindActorPList[i] && param_1 == mFindActorPList[i]) { + return mFindActorPList[i]; + } + } + + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcF_c::getEvtAreaTagP(int param_0, int param_1) { +asm int daNpcF_c::getEvtAreaTagP(int param_0, int param_1) { nofralloc #include "asm/d/a/d_a_npc/getEvtAreaTagP__8daNpcF_cFii.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804534B0-804534B4 001AB0 0004+00 1/1 0/0 0/0 .sdata2 @11605 */ @@ -4397,36 +5199,61 @@ asm void daNpcF_c::chkActorInSight2(fopAc_ac_c* param_0, f32 param_1, s16 param_ #pragma pop /* 80154834-801548F4 14F174 00C0+00 2/2 0/0 0/0 .text chkPointInArea__8daNpcF_cF4cXyz4cXyzfffs */ +#ifdef NONMATCHING +bool daNpcF_c::chkPointInArea(cXyz param_0, cXyz param_1, f32 param_2, f32 param_3, f32 param_4, + s16 param_5) { + cXyz tmp_pos1; + cXyz tmp_pos2; + cXyz tmp_pos3; + + f32 tmp_float1 = param_3; + + if (param_3 < param_4) { + tmp_float1 = param_4; + param_4 = param_3; + } + + f32 result1 = fabsf(tmp_float1 - param_4); + f32 result = FLOAT_LABEL(lit_11253) * result1; + tmp_pos1.set(param_2,result,param_2); + + f32 result2 = param_1.y + param_4 + tmp_pos1.y; + tmp_pos2.set(param_1.x,result2,param_1.z); + + tmp_pos3 = param_0; + + return chkPointInArea(tmp_pos3,tmp_pos2,tmp_pos1,param_5); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcF_c::chkPointInArea(cXyz param_0, cXyz param_1, f32 param_2, f32 param_3, f32 param_4, +asm bool daNpcF_c::chkPointInArea(cXyz param_0, cXyz param_1, f32 param_2, f32 param_3, f32 param_4, s16 param_5) { nofralloc #include "asm/d/a/d_a_npc/chkPointInArea__8daNpcF_cF4cXyz4cXyzfffs.s" } #pragma pop +#endif /* 801548F4-8015496C 14F234 0078+00 1/1 0/0 0/0 .text chkPointInArea__8daNpcF_cF4cXyz4cXyz4cXyzs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_c::chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3) { - nofralloc -#include "asm/d/a/d_a_npc/chkPointInArea__8daNpcF_cF4cXyz4cXyz4cXyzs.s" +bool daNpcF_chkPointInArea(cXyz,cXyz,cXyz,s16); // fwd reference + +bool daNpcF_c::chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3) { + return daNpcF_chkPointInArea(param_0,param_1,param_2,param_3); } -#pragma pop /* 8015496C-801549E0 14F2AC 0074+00 3/3 0/0 0/0 .text getAttentionPos__8daNpcF_cFP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_c::getAttentionPos(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_npc/getAttentionPos__8daNpcF_cFP10fopAc_ac_c.s" +cXyz daNpcF_c::getAttentionPos(fopAc_ac_c* i_ActorP) { + cXyz pos = i_ActorP->mAttentionInfo.mPosition; + + if (fopAcM_GetName(i_ActorP) == PROC_ALINK) { + pos.y -= daPy_py_c::getAttentionOffsetY(); + } + + return pos; } -#pragma pop /* 801549E0-80154BD8 14F320 01F8+00 0/0 0/0 18/18 .text chkFindPlayer2__8daNpcF_cFis */ #pragma push @@ -4459,16 +5286,37 @@ asm void daNpcF_c::setHitodamaPrtcl() { /* 80154DA8-80154E54 14F6E8 00AC+00 1/1 0/0 1/1 .text * daNpcF_pntVsLineSegmentLengthSquare2D__FffffffPfPfPf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_pntVsLineSegmentLengthSquare2D(f32 param_0, f32 param_1, f32 param_2, f32 param_3, +int daNpcF_pntVsLineSegmentLengthSquare2D(f32 param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, f32* param_6, f32* param_7, f32* param_8) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_pntVsLineSegmentLengthSquare2D__FffffffPfPfPf.s" + f32 l_float3; + f32 l_float1; + f32 l_float2; + + int ret; + + ret = 0; + l_float1 = (param_4 - param_2); + l_float2 = (param_5 - param_3); + l_float3 = (l_float1 * l_float1) + (l_float2 * l_float2); + + if (FLOAT_LABEL(lit_4116) == l_float3) { + *param_8 = FLOAT_LABEL(lit_4116); + return 0; + } + + l_float3 = (l_float1 * (param_0 - param_2) + l_float2 * (param_1 - param_3)) / l_float3; + + if (FLOAT_LABEL(lit_4116) <= l_float3 && l_float3 <= FLOAT_LABEL(lit_4140)) { + ret = 1; + } + + *param_6 = (param_2 + (l_float1 * l_float3)); + *param_7 = (param_3 + (l_float2 * l_float3)); + l_float1 = (*param_6 - param_0); + *param_8 = (l_float1 * l_float1) + ((*param_7 - param_1) * (*param_6 - param_1)); + return ret; } -#pragma pop /* 80154E54-80154E5C 14F794 0008+00 1/1 0/0 0/0 .text daNpcF_putNurbs__FP4dPntiiP4dPnti */ @@ -4480,7 +5328,7 @@ static bool daNpcF_putNurbs(dPnt* param_0, int param_1, int param_2, dPnt* param #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcF_chkPassed(cXyz param_0, dPnt* param_1, u16 param_2, u16 param_3, int param_4, +asm int daNpcF_chkPassed(cXyz param_0, dPnt* param_1, u16 param_2, u16 param_3, int param_4, int param_5) { nofralloc #include "asm/d/a/d_a_npc/daNpcF_chkPassed__F4cXyzP4dPntUsUsii.s" @@ -4488,6 +5336,25 @@ asm void daNpcF_chkPassed(cXyz param_0, dPnt* param_1, u16 param_2, u16 param_3, #pragma pop /* 8015556C-80155634 14FEAC 00C8+00 1/1 0/0 8/8 .text daNpcF_getGroundAngle__FP13cBgS_PolyInfos */ +#ifdef NONMATCHING +int daNpcF_getGroundAngle(cBgS_PolyInfo* param_0, s16 param_1) { + cM3dGPla tmp; + f32 l_float; + int ret; + + if (dComIfG_Bgsp().ChkPolySafe(*param_0)) { + if (dComIfG_Bgsp().GetTriPla(*param_0,&tmp) && !cBgW_CheckBGround(l_float)) { + ret = fopAcM_getPolygonAngle(&tmp,(int)param_1); + } else { + ret = 0; + } + } else { + ret = 0; + } + + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -4496,108 +5363,146 @@ asm void daNpcF_getGroundAngle(cBgS_PolyInfo* param_0, s16 param_1) { #include "asm/d/a/d_a_npc/daNpcF_getGroundAngle__FP13cBgS_PolyInfos.s" } #pragma pop +#endif /* 80155634-80155674 14FF74 0040+00 0/0 0/0 69/69 .text daNpcF_chkEvtBit__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_chkEvtBit(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_chkEvtBit__FUl.s" +void daNpcF_chkEvtBit(u32 i_idx) { + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_idx]); } -#pragma pop /* 80155674-801556B4 14FFB4 0040+00 0/0 0/0 13/13 .text daNpcF_onEvtBit__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_onEvtBit(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_onEvtBit__FUl.s" +void daNpcF_onEvtBit(u32 i_idx) { + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[i_idx]); } -#pragma pop /* 801556B4-801556F4 14FFF4 0040+00 0/0 0/0 6/6 .text daNpcF_chkTmpBit__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_chkTmpBit(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_chkTmpBit__FUl.s" +void daNpcF_chkTmpBit(u32 i_idx) { + dComIfGs_isTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_idx]); } -#pragma pop /* 801556F4-80155734 150034 0040+00 0/0 0/0 6/6 .text daNpcF_onTmpBit__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_onTmpBit(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_onTmpBit__FUl.s" +void daNpcF_onTmpBit(u32 i_idx) { + dComIfGs_onTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_idx]); } -#pragma pop /* 80155734-80155774 150074 0040+00 1/1 0/0 36/36 .text daNpcF_offTmpBit__FUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_offTmpBit(u32 param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_offTmpBit__FUl.s" +void daNpcF_offTmpBit(u32 i_idx) { + dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_idx]); } -#pragma pop /* 80155774-80155854 1500B4 00E0+00 0/0 2/2 5/5 .text * daNpcF_getPlayerInfoFromPlayerList__FiiR4cXyzR5csXyz */ +#ifdef NONMATCHING +int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2, csXyz& param_3) { + int i = 0; + + dStage_roomStatus_c* roomP = dComIfGp_roomControl_getStatusRoomDt(i_roomNo); + stage_actor_data_class* entries = roomP->mRoomDt.getPlayer()->mEntries; + + while (true) { + if (param_0 == entries->mEnemyNo) { + break; + } + } + + param_2 = entries->mSpawnPos; + param_3 = entries->mAngle; + + i++; + + if (roomP->mRoomDt.getPlayerNum() >= i) { + return 0; + } + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daNpcF_getPlayerInfoFromPlayerList(int param_0, int param_1, cXyz& param_2, +asm int daNpcF_getPlayerInfoFromPlayerList(int param_0, int param_1, cXyz& param_2, csXyz& param_3) { nofralloc #include "asm/d/a/d_a_npc/daNpcF_getPlayerInfoFromPlayerList__FiiR4cXyzR5csXyz.s" } #pragma pop +#endif /* 80155854-80155968 150194 0114+00 0/0 0/0 1/1 .text daNpcF_chkDoBtnEqSpeak__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_chkDoBtnEqSpeak(fopAc_ac_c* param_0) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_chkDoBtnEqSpeak__FP10fopAc_ac_c.s" +bool daNpcF_chkDoBtnEqSpeak(fopAc_ac_c* i_ActorP) { + bool ret = 0; + + if (daPy_getPlayerActorClass()->checkPriActorOwn(i_ActorP)) { + for (int i = 0; i < dComIfGp_getAttention().GetActionCount(); i++) { + if (dComIfGp_getAttention().ActionTarget(i) == i_ActorP && + dComIfGp_getAttention().getActionBtnB() && + dComIfGp_getAttention().getActionBtnB()->mType == 3) { + ret = 1; + }; + } + + for (int i = 0; i < dComIfGp_getAttention().GetLockonCount(); i++) { + if (dComIfGp_getAttention().LockonTarget(i) == i_ActorP && + dComIfGp_getAttention().getActionBtnB() && + dComIfGp_getAttention().getActionBtnB()->mType == 1) { + ret = 1; + }; + } + } + return ret; } -#pragma pop /* 80155968-80155AD4 1502A8 016C+00 1/1 0/0 2/2 .text daNpcF_chkPointInArea__F4cXyz4cXyz4cXyzs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_chkPointInArea__F4cXyz4cXyz4cXyzs.s" +bool daNpcF_chkPointInArea(cXyz param_0, cXyz param_1, cXyz param_2, s16 param_3) { + bool ret = 0; + Vec l_vec; + f32 l_float1; + f32 l_float2; + f32 l_float3; + f32 l_float4; + cXyz l_pos; + + mDoMtx_YrotS((MtxP)&mDoMtx_stack_c::now,-param_3); + mDoMtx_stack_c::transM(-param_1.x,-param_1.y,-param_1.z); + PSMTXMultVec((MtxP)&mDoMtx_stack_c::now,(Vec*)¶m_0,&l_vec); + + l_float1 = fabsf(param_2.x); + l_float2 = fabsf(param_2.z); + l_float3 = fabsf(l_vec.x); + l_float4 = fabsf(l_vec.z); + + l_pos = param_1 - param_0; + + if (l_pos.y <= -param_2.y || param_2.y <= l_pos.y) { + ret = 0; + } else { + f32 tmp_float1 = (l_float3 * l_float3) / (l_float1 * l_float1); + f32 tmp_float2 = (l_float4 * l_float4) / (l_float2 * l_float2); + f32 tmp_float3 = tmp_float1 + tmp_float2; + ret = tmp_float3 <= FLOAT_LABEL(lit_4140); + } + + return ret; } -#pragma pop /* 80155AD4-80155AE8 150414 0014+00 1/1 0/0 1/1 .text daNpcF_getDistTableIdx__Fii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_getDistTableIdx(int param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_getDistTableIdx__Fii.s" +u8 daNpcF_getDistTableIdx(int param_0, int param_1) { + return param_0 + param_1 * 0x14 + 0x5e; } -#pragma pop /* 80155AE8-80155B54 150428 006C+00 0/0 0/0 6/6 .text daNpcF_clearMessageTmpBit__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daNpcF_clearMessageTmpBit() { - nofralloc -#include "asm/d/a/d_a_npc/daNpcF_clearMessageTmpBit__Fv.s" +void daNpcF_clearMessageTmpBit() { + daNpcF_offTmpBit(0xb); + daNpcF_offTmpBit(0xc); + daNpcF_offTmpBit(0xd); + daNpcF_offTmpBit(0xe); + daNpcF_offTmpBit(0xf); + daNpcF_offTmpBit(0x33); + daNpcF_offTmpBit(0x34); + daNpcF_offTmpBit(0x35); + daNpcF_offTmpBit(0x36); + daNpcF_offTmpBit(0x37); } -#pragma pop /* 80155B54-80155BB4 150494 0060+00 1/0 0/0 0/0 .text __dt__20daNpcF_MoveBgActor_cFv */ #pragma push diff --git a/src/d/msg/d_msg_object.cpp b/src/d/msg/d_msg_object.cpp index d44099f41d..246bad975f 100644 --- a/src/d/msg/d_msg_object.cpp +++ b/src/d/msg/d_msg_object.cpp @@ -1836,7 +1836,7 @@ asm void dMsgObject_c::isMsgSend() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgObject_c::isMouthCheck() { +asm bool dMsgObject_c::isMouthCheck() { nofralloc #include "asm/d/msg/d_msg_object/isMouthCheck__12dMsgObject_cFv.s" } diff --git a/tools/tp.py b/tools/tp.py index 4ee938b0c6..e679b95de9 100644 --- a/tools/tp.py +++ b/tools/tp.py @@ -751,12 +751,16 @@ def remove_unused_asm_cmd(check: bool): def remove_unused_asm(check: bool): unused_files, error_files = find_unused_asm_files(False, use_progress_bar=not check) - if not check: - for unused_file in unused_files: + for unused_file in unused_files: + if not check: unused_file.unlink() - CONSOLE.print(f"removed '{unused_file}'") + CONSOLE.print(f"removed '{unused_file}'") - text = Text(" OK") + text = Text(" OK") + text.stylize("bold green") + CONSOLE.print(text) + if check: + text = Text(" NOTE: The was just a check run. No files were actually removed.") text.stylize("bold green") CONSOLE.print(text) @@ -867,14 +871,19 @@ def find_all_asm_files() -> Tuple[Set[Path], Set[Path]]: if path.is_dir(): recursive(path) else: - if path.suffix == ".s": + if path.suffix == ".s" or path.suffix == ".inc": files.add(path) else: errors.add(path) + # Check for all .s files in ./asm/ root = Path("./asm/") assert root.exists() + recursive(root) + # check for .inc files in all directories + root = Path("./") + assert root.exists() recursive(root) LOG.debug( @@ -942,7 +951,7 @@ def find_all_files() -> Set[Path]: if path.is_dir(): recursive(path) else: - if path.suffix == ".cpp" or path.suffix == ".c": + if path.suffix == ".cpp" or path.suffix == ".c" or path.suffix == ".inc": files.add(path) src_root = Path("./src/") @@ -960,7 +969,7 @@ def find_all_files() -> Set[Path]: return files -def find_includes(lines: List[str], non_matching: bool, ext: str = ".s") -> Set[Path]: +def find_includes(lines: List[str], non_matching: bool, ext: Tuple[str, str] = (".s",".inc")) -> Set[Path]: includes = set() for line in lines: key = '#include "' @@ -975,6 +984,8 @@ def find_includes(lines: List[str], non_matching: bool, ext: str = ".s") -> Set[ include_path = line[start:end] if include_path.endswith(ext): + if include_path.endswith(".inc"): + include_path = "src/"+include_path includes.add(Path(include_path)) return includes @@ -1002,7 +1013,7 @@ def find_used_asm_files(non_matching: bool, use_progress_bar: bool = True) -> Se includes.update(find_includes(file.readlines(), non_matching)) # TODO: NON_MATCHING - LOG.debug(f"find_used_asm_files: found {len(includes)} included .s files") + LOG.debug(f"find_used_asm_files: found {len(includes)} included .s or .inc files") return includes