summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-09-26 01:28:26 +0300
committerGitHub <noreply@github.com>2024-09-25 15:28:26 -0700
commit09dfa0a2bc9862aef088c8b572b71674b7f0cbd3 (patch)
tree992d5bbaff6cb7f6589bdbe11912560d3eebaa02
parentf2ac35d73896f8419319a67ab464b209c2e06b9b (diff)
Work on daNpcBlueNS_c (#2199)
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/Execute__13daNpcBlueNS_cFv.s10
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Chibi__13daNpcBlueNS_cFi.s47
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Debu__13daNpcBlueNS_cFi.s47
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Noppo__13daNpcBlueNS_cFi.s47
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_STNoppo__13daNpcBlueNS_cFi.s47
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_HollyBall_G__13daNpcBlueNS_cFPvPv.s57
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_HollyBall_Y__13daNpcBlueNS_cFPvPv.s57
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_Tag__13daNpcBlueNS_cFPvPv.s37
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/appearSE__13daNpcBlueNS_cFv.s52
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/createHeapCallBack__13daNpcBlueNS_cFP10fopAc_ac_c.s9
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/ctrlJointCallBack__13daNpcBlueNS_cFP8J3DJointi.s21
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Create__FPv.s9
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Delete__FPv.s9
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Draw__FPv.s9
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Execute__FPv.s9
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/downSE__13daNpcBlueNS_cFv.s52
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/isDelete__13daNpcBlueNS_cFv.s31
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/lightsowrdSE__13daNpcBlueNS_cFv.s52
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/main__13daNpcBlueNS_cFv.s86
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setAction__13daNpcBlueNS_cFM13daNpcBlueNS_cFPCvPvi_i.s45
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setLookMode__13daNpcBlueNS_cFi.s10
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchActor__13daNpcBlueNS_cFv.s21
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchHollyBall__13daNpcBlueNS_cFv.s29
-rw-r--r--asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchTagYami__13daNpcBlueNS_cFv.s28
-rw-r--r--include/d/a/d_a_npc.h15
-rw-r--r--include/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns.h164
-rw-r--r--include/rel/d/a/npc/d_a_npc_yamid/d_a_npc_yamid.h12
-rw-r--r--include/rel/d/a/npc/d_a_npc_yamis/d_a_npc_yamis.h12
-rw-r--r--include/rel/d/a/npc/d_a_npc_yamit/d_a_npc_yamit.h12
-rw-r--r--rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns.cpp1662
-rw-r--r--src/d/a/d_a_npc.cpp8
31 files changed, 1518 insertions, 1188 deletions
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/Execute__13daNpcBlueNS_cFv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/Execute__13daNpcBlueNS_cFv.s
deleted file mode 100644
index 20fb28d1d2..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/Execute__13daNpcBlueNS_cFv.s
+++ /dev/null
@@ -1,10 +0,0 @@
-lbl_809691DC:
-/* 809691DC 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 809691E0 7C 08 02 A6 */ mflr r0
-/* 809691E4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 809691E8 48 00 00 19 */ bl _Execute__13daNpcBlueNS_cFv
-/* 809691EC 38 60 00 01 */ li r3, 1
-/* 809691F0 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 809691F4 7C 08 03 A6 */ mtlr r0
-/* 809691F8 38 21 00 10 */ addi r1, r1, 0x10
-/* 809691FC 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Chibi__13daNpcBlueNS_cFi.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Chibi__13daNpcBlueNS_cFi.s
deleted file mode 100644
index b613f71640..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Chibi__13daNpcBlueNS_cFi.s
+++ /dev/null
@@ -1,47 +0,0 @@
-lbl_8096B548:
-/* 8096B548 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8096B54C 7C 08 02 A6 */ mflr r0
-/* 8096B550 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8096B554 39 61 00 20 */ addi r11, r1, 0x20
-/* 8096B558 4B 9F 6C 85 */ bl _savegpr_29
-/* 8096B55C 7C 7D 1B 78 */ mr r29, r3
-/* 8096B560 7C 9E 23 78 */ mr r30, r4
-/* 8096B564 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 8096B568 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 8096B56C 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 8096B570 38 00 FF FF */ li r0, -1
-/* 8096B574 90 01 00 08 */ stw r0, 8(r1)
-/* 8096B578 7F E3 FB 78 */ mr r3, r31
-/* 8096B57C 3C A0 80 97 */ lis r5, d_a_npc_blue_ns__stringBase0@ha /* 0x8096CB4C@ha */
-/* 8096B580 38 A5 CB 4C */ addi r5, r5, d_a_npc_blue_ns__stringBase0@l /* 0x8096CB4C@l */
-/* 8096B584 38 A5 00 4B */ addi r5, r5, 0x4b
-/* 8096B588 38 C0 00 03 */ li r6, 3
-/* 8096B58C 4B 6D CB 61 */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 8096B590 28 03 00 00 */ cmplwi r3, 0
-/* 8096B594 41 82 00 10 */ beq lbl_8096B5A4
-/* 8096B598 80 03 00 00 */ lwz r0, 0(r3)
-/* 8096B59C 90 01 00 08 */ stw r0, 8(r1)
-/* 8096B5A0 48 00 00 0C */ b lbl_8096B5AC
-lbl_8096B5A4:
-/* 8096B5A4 38 60 00 01 */ li r3, 1
-/* 8096B5A8 48 00 00 30 */ b lbl_8096B5D8
-lbl_8096B5AC:
-/* 8096B5AC 7F E3 FB 78 */ mr r3, r31
-/* 8096B5B0 7F C4 F3 78 */ mr r4, r30
-/* 8096B5B4 4B 6D C7 99 */ bl getIsAddvance__16dEvent_manager_cFi
-/* 8096B5B8 2C 03 00 00 */ cmpwi r3, 0
-/* 8096B5BC 41 82 00 10 */ beq lbl_8096B5CC
-/* 8096B5C0 7F A3 EB 78 */ mr r3, r29
-/* 8096B5C4 38 81 00 08 */ addi r4, r1, 8
-/* 8096B5C8 48 00 00 29 */ bl _Evt_ChgYami_Chibi_CutInit__13daNpcBlueNS_cFRCi
-lbl_8096B5CC:
-/* 8096B5CC 7F A3 EB 78 */ mr r3, r29
-/* 8096B5D0 38 81 00 08 */ addi r4, r1, 8
-/* 8096B5D4 48 00 00 B5 */ bl _Evt_ChgYami_Chibi_CutMain__13daNpcBlueNS_cFRCi
-lbl_8096B5D8:
-/* 8096B5D8 39 61 00 20 */ addi r11, r1, 0x20
-/* 8096B5DC 4B 9F 6C 4D */ bl _restgpr_29
-/* 8096B5E0 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8096B5E4 7C 08 03 A6 */ mtlr r0
-/* 8096B5E8 38 21 00 20 */ addi r1, r1, 0x20
-/* 8096B5EC 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Debu__13daNpcBlueNS_cFi.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Debu__13daNpcBlueNS_cFi.s
deleted file mode 100644
index 60dbd6abd3..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Debu__13daNpcBlueNS_cFi.s
+++ /dev/null
@@ -1,47 +0,0 @@
-lbl_8096B7B8:
-/* 8096B7B8 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8096B7BC 7C 08 02 A6 */ mflr r0
-/* 8096B7C0 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8096B7C4 39 61 00 20 */ addi r11, r1, 0x20
-/* 8096B7C8 4B 9F 6A 15 */ bl _savegpr_29
-/* 8096B7CC 7C 7D 1B 78 */ mr r29, r3
-/* 8096B7D0 7C 9E 23 78 */ mr r30, r4
-/* 8096B7D4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 8096B7D8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 8096B7DC 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 8096B7E0 38 00 FF FF */ li r0, -1
-/* 8096B7E4 90 01 00 08 */ stw r0, 8(r1)
-/* 8096B7E8 7F E3 FB 78 */ mr r3, r31
-/* 8096B7EC 3C A0 80 97 */ lis r5, d_a_npc_blue_ns__stringBase0@ha /* 0x8096CB4C@ha */
-/* 8096B7F0 38 A5 CB 4C */ addi r5, r5, d_a_npc_blue_ns__stringBase0@l /* 0x8096CB4C@l */
-/* 8096B7F4 38 A5 00 4B */ addi r5, r5, 0x4b
-/* 8096B7F8 38 C0 00 03 */ li r6, 3
-/* 8096B7FC 4B 6D C8 F1 */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 8096B800 28 03 00 00 */ cmplwi r3, 0
-/* 8096B804 41 82 00 10 */ beq lbl_8096B814
-/* 8096B808 80 03 00 00 */ lwz r0, 0(r3)
-/* 8096B80C 90 01 00 08 */ stw r0, 8(r1)
-/* 8096B810 48 00 00 0C */ b lbl_8096B81C
-lbl_8096B814:
-/* 8096B814 38 60 00 01 */ li r3, 1
-/* 8096B818 48 00 00 30 */ b lbl_8096B848
-lbl_8096B81C:
-/* 8096B81C 7F E3 FB 78 */ mr r3, r31
-/* 8096B820 7F C4 F3 78 */ mr r4, r30
-/* 8096B824 4B 6D C5 29 */ bl getIsAddvance__16dEvent_manager_cFi
-/* 8096B828 2C 03 00 00 */ cmpwi r3, 0
-/* 8096B82C 41 82 00 10 */ beq lbl_8096B83C
-/* 8096B830 7F A3 EB 78 */ mr r3, r29
-/* 8096B834 38 81 00 08 */ addi r4, r1, 8
-/* 8096B838 48 00 00 29 */ bl _Evt_ChgYami_Debu_CutInit__13daNpcBlueNS_cFRCi
-lbl_8096B83C:
-/* 8096B83C 7F A3 EB 78 */ mr r3, r29
-/* 8096B840 38 81 00 08 */ addi r4, r1, 8
-/* 8096B844 48 00 00 B5 */ bl _Evt_ChgYami_Debu_CutMain__13daNpcBlueNS_cFRCi
-lbl_8096B848:
-/* 8096B848 39 61 00 20 */ addi r11, r1, 0x20
-/* 8096B84C 4B 9F 69 DD */ bl _restgpr_29
-/* 8096B850 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8096B854 7C 08 03 A6 */ mtlr r0
-/* 8096B858 38 21 00 20 */ addi r1, r1, 0x20
-/* 8096B85C 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Noppo__13daNpcBlueNS_cFi.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Noppo__13daNpcBlueNS_cFi.s
deleted file mode 100644
index 8c0f8772f3..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Noppo__13daNpcBlueNS_cFi.s
+++ /dev/null
@@ -1,47 +0,0 @@
-lbl_8096BA28:
-/* 8096BA28 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8096BA2C 7C 08 02 A6 */ mflr r0
-/* 8096BA30 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8096BA34 39 61 00 20 */ addi r11, r1, 0x20
-/* 8096BA38 4B 9F 67 A5 */ bl _savegpr_29
-/* 8096BA3C 7C 7D 1B 78 */ mr r29, r3
-/* 8096BA40 7C 9E 23 78 */ mr r30, r4
-/* 8096BA44 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 8096BA48 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 8096BA4C 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 8096BA50 38 00 FF FF */ li r0, -1
-/* 8096BA54 90 01 00 08 */ stw r0, 8(r1)
-/* 8096BA58 7F E3 FB 78 */ mr r3, r31
-/* 8096BA5C 3C A0 80 97 */ lis r5, d_a_npc_blue_ns__stringBase0@ha /* 0x8096CB4C@ha */
-/* 8096BA60 38 A5 CB 4C */ addi r5, r5, d_a_npc_blue_ns__stringBase0@l /* 0x8096CB4C@l */
-/* 8096BA64 38 A5 00 4B */ addi r5, r5, 0x4b
-/* 8096BA68 38 C0 00 03 */ li r6, 3
-/* 8096BA6C 4B 6D C6 81 */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 8096BA70 28 03 00 00 */ cmplwi r3, 0
-/* 8096BA74 41 82 00 10 */ beq lbl_8096BA84
-/* 8096BA78 80 03 00 00 */ lwz r0, 0(r3)
-/* 8096BA7C 90 01 00 08 */ stw r0, 8(r1)
-/* 8096BA80 48 00 00 0C */ b lbl_8096BA8C
-lbl_8096BA84:
-/* 8096BA84 38 60 00 01 */ li r3, 1
-/* 8096BA88 48 00 00 30 */ b lbl_8096BAB8
-lbl_8096BA8C:
-/* 8096BA8C 7F E3 FB 78 */ mr r3, r31
-/* 8096BA90 7F C4 F3 78 */ mr r4, r30
-/* 8096BA94 4B 6D C2 B9 */ bl getIsAddvance__16dEvent_manager_cFi
-/* 8096BA98 2C 03 00 00 */ cmpwi r3, 0
-/* 8096BA9C 41 82 00 10 */ beq lbl_8096BAAC
-/* 8096BAA0 7F A3 EB 78 */ mr r3, r29
-/* 8096BAA4 38 81 00 08 */ addi r4, r1, 8
-/* 8096BAA8 48 00 00 29 */ bl _Evt_ChgYami_Noppo_CutInit__13daNpcBlueNS_cFRCi
-lbl_8096BAAC:
-/* 8096BAAC 7F A3 EB 78 */ mr r3, r29
-/* 8096BAB0 38 81 00 08 */ addi r4, r1, 8
-/* 8096BAB4 48 00 00 B5 */ bl _Evt_ChgYami_Noppo_CutMain__13daNpcBlueNS_cFRCi
-lbl_8096BAB8:
-/* 8096BAB8 39 61 00 20 */ addi r11, r1, 0x20
-/* 8096BABC 4B 9F 67 6D */ bl _restgpr_29
-/* 8096BAC0 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8096BAC4 7C 08 03 A6 */ mtlr r0
-/* 8096BAC8 38 21 00 20 */ addi r1, r1, 0x20
-/* 8096BACC 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_STNoppo__13daNpcBlueNS_cFi.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_STNoppo__13daNpcBlueNS_cFi.s
deleted file mode 100644
index e5d729d600..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_STNoppo__13daNpcBlueNS_cFi.s
+++ /dev/null
@@ -1,47 +0,0 @@
-lbl_8096BC98:
-/* 8096BC98 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8096BC9C 7C 08 02 A6 */ mflr r0
-/* 8096BCA0 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8096BCA4 39 61 00 20 */ addi r11, r1, 0x20
-/* 8096BCA8 4B 9F 65 35 */ bl _savegpr_29
-/* 8096BCAC 7C 7D 1B 78 */ mr r29, r3
-/* 8096BCB0 7C 9E 23 78 */ mr r30, r4
-/* 8096BCB4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 8096BCB8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 8096BCBC 3B E3 4F F8 */ addi r31, r3, 0x4ff8
-/* 8096BCC0 38 00 FF FF */ li r0, -1
-/* 8096BCC4 90 01 00 08 */ stw r0, 8(r1)
-/* 8096BCC8 7F E3 FB 78 */ mr r3, r31
-/* 8096BCCC 3C A0 80 97 */ lis r5, d_a_npc_blue_ns__stringBase0@ha /* 0x8096CB4C@ha */
-/* 8096BCD0 38 A5 CB 4C */ addi r5, r5, d_a_npc_blue_ns__stringBase0@l /* 0x8096CB4C@l */
-/* 8096BCD4 38 A5 00 4B */ addi r5, r5, 0x4b
-/* 8096BCD8 38 C0 00 03 */ li r6, 3
-/* 8096BCDC 4B 6D C4 11 */ bl getMySubstanceP__16dEvent_manager_cFiPCci
-/* 8096BCE0 28 03 00 00 */ cmplwi r3, 0
-/* 8096BCE4 41 82 00 10 */ beq lbl_8096BCF4
-/* 8096BCE8 80 03 00 00 */ lwz r0, 0(r3)
-/* 8096BCEC 90 01 00 08 */ stw r0, 8(r1)
-/* 8096BCF0 48 00 00 0C */ b lbl_8096BCFC
-lbl_8096BCF4:
-/* 8096BCF4 38 60 00 01 */ li r3, 1
-/* 8096BCF8 48 00 00 30 */ b lbl_8096BD28
-lbl_8096BCFC:
-/* 8096BCFC 7F E3 FB 78 */ mr r3, r31
-/* 8096BD00 7F C4 F3 78 */ mr r4, r30
-/* 8096BD04 4B 6D C0 49 */ bl getIsAddvance__16dEvent_manager_cFi
-/* 8096BD08 2C 03 00 00 */ cmpwi r3, 0
-/* 8096BD0C 41 82 00 10 */ beq lbl_8096BD1C
-/* 8096BD10 7F A3 EB 78 */ mr r3, r29
-/* 8096BD14 38 81 00 08 */ addi r4, r1, 8
-/* 8096BD18 48 00 00 29 */ bl _Evt_ChgYami_STNoppo_CutInit__13daNpcBlueNS_cFRCi
-lbl_8096BD1C:
-/* 8096BD1C 7F A3 EB 78 */ mr r3, r29
-/* 8096BD20 38 81 00 08 */ addi r4, r1, 8
-/* 8096BD24 48 00 00 B5 */ bl _Evt_ChgYami_STNoppo_CutMain__13daNpcBlueNS_cFRCi
-lbl_8096BD28:
-/* 8096BD28 39 61 00 20 */ addi r11, r1, 0x20
-/* 8096BD2C 4B 9F 64 FD */ bl _restgpr_29
-/* 8096BD30 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8096BD34 7C 08 03 A6 */ mtlr r0
-/* 8096BD38 38 21 00 20 */ addi r1, r1, 0x20
-/* 8096BD3C 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_HollyBall_G__13daNpcBlueNS_cFPvPv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_HollyBall_G__13daNpcBlueNS_cFPvPv.s
deleted file mode 100644
index e498e45eed..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_HollyBall_G__13daNpcBlueNS_cFPvPv.s
+++ /dev/null
@@ -1,57 +0,0 @@
-lbl_80969E9C:
-/* 80969E9C 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80969EA0 7C 08 02 A6 */ mflr r0
-/* 80969EA4 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80969EA8 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80969EAC 7C 7F 1B 78 */ mr r31, r3
-/* 80969EB0 4B 6A EE 31 */ bl fopAc_IsActor__FPv
-/* 80969EB4 2C 03 00 00 */ cmpwi r3, 0
-/* 80969EB8 40 82 00 0C */ bne lbl_80969EC4
-/* 80969EBC 38 60 00 00 */ li r3, 0
-/* 80969EC0 48 00 00 80 */ b lbl_80969F40
-lbl_80969EC4:
-/* 80969EC4 28 1F 00 00 */ cmplwi r31, 0
-/* 80969EC8 41 82 00 0C */ beq lbl_80969ED4
-/* 80969ECC 80 7F 00 04 */ lwz r3, 4(r31)
-/* 80969ED0 48 00 00 08 */ b lbl_80969ED8
-lbl_80969ED4:
-/* 80969ED4 38 60 FF FF */ li r3, -1
-lbl_80969ED8:
-/* 80969ED8 4B 6B 82 61 */ bl fpcM_IsCreating__FUi
-/* 80969EDC 2C 03 00 00 */ cmpwi r3, 0
-/* 80969EE0 41 82 00 0C */ beq lbl_80969EEC
-/* 80969EE4 38 60 00 00 */ li r3, 0
-/* 80969EE8 48 00 00 58 */ b lbl_80969F40
-lbl_80969EEC:
-/* 80969EEC A8 1F 00 08 */ lha r0, 8(r31)
-/* 80969EF0 2C 00 02 FC */ cmpwi r0, 0x2fc
-/* 80969EF4 41 82 00 0C */ beq lbl_80969F00
-/* 80969EF8 38 60 00 00 */ li r3, 0
-/* 80969EFC 48 00 00 44 */ b lbl_80969F40
-lbl_80969F00:
-/* 80969F00 38 00 00 00 */ li r0, 0
-/* 80969F04 88 7F 0C F0 */ lbz r3, 0xcf0(r31)
-/* 80969F08 2C 03 00 08 */ cmpwi r3, 8
-/* 80969F0C 41 82 00 0C */ beq lbl_80969F18
-/* 80969F10 2C 03 00 09 */ cmpwi r3, 9
-/* 80969F14 40 82 00 08 */ bne lbl_80969F1C
-lbl_80969F18:
-/* 80969F18 38 00 00 01 */ li r0, 1
-lbl_80969F1C:
-/* 80969F1C 54 00 06 3F */ clrlwi. r0, r0, 0x18
-/* 80969F20 40 82 00 0C */ bne lbl_80969F2C
-/* 80969F24 38 60 00 00 */ li r3, 0
-/* 80969F28 48 00 00 18 */ b lbl_80969F40
-lbl_80969F2C:
-/* 80969F2C 2C 03 00 09 */ cmpwi r3, 9
-/* 80969F30 41 82 00 0C */ beq lbl_80969F3C
-/* 80969F34 38 60 00 00 */ li r3, 0
-/* 80969F38 48 00 00 08 */ b lbl_80969F40
-lbl_80969F3C:
-/* 80969F3C 7F E3 FB 78 */ mr r3, r31
-lbl_80969F40:
-/* 80969F40 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80969F44 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80969F48 7C 08 03 A6 */ mtlr r0
-/* 80969F4C 38 21 00 10 */ addi r1, r1, 0x10
-/* 80969F50 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_HollyBall_Y__13daNpcBlueNS_cFPvPv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_HollyBall_Y__13daNpcBlueNS_cFPvPv.s
deleted file mode 100644
index d36f76f9fa..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_HollyBall_Y__13daNpcBlueNS_cFPvPv.s
+++ /dev/null
@@ -1,57 +0,0 @@
-lbl_80969DE4:
-/* 80969DE4 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80969DE8 7C 08 02 A6 */ mflr r0
-/* 80969DEC 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80969DF0 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80969DF4 7C 7F 1B 78 */ mr r31, r3
-/* 80969DF8 4B 6A EE E9 */ bl fopAc_IsActor__FPv
-/* 80969DFC 2C 03 00 00 */ cmpwi r3, 0
-/* 80969E00 40 82 00 0C */ bne lbl_80969E0C
-/* 80969E04 38 60 00 00 */ li r3, 0
-/* 80969E08 48 00 00 80 */ b lbl_80969E88
-lbl_80969E0C:
-/* 80969E0C 28 1F 00 00 */ cmplwi r31, 0
-/* 80969E10 41 82 00 0C */ beq lbl_80969E1C
-/* 80969E14 80 7F 00 04 */ lwz r3, 4(r31)
-/* 80969E18 48 00 00 08 */ b lbl_80969E20
-lbl_80969E1C:
-/* 80969E1C 38 60 FF FF */ li r3, -1
-lbl_80969E20:
-/* 80969E20 4B 6B 83 19 */ bl fpcM_IsCreating__FUi
-/* 80969E24 2C 03 00 00 */ cmpwi r3, 0
-/* 80969E28 41 82 00 0C */ beq lbl_80969E34
-/* 80969E2C 38 60 00 00 */ li r3, 0
-/* 80969E30 48 00 00 58 */ b lbl_80969E88
-lbl_80969E34:
-/* 80969E34 A8 1F 00 08 */ lha r0, 8(r31)
-/* 80969E38 2C 00 02 FC */ cmpwi r0, 0x2fc
-/* 80969E3C 41 82 00 0C */ beq lbl_80969E48
-/* 80969E40 38 60 00 00 */ li r3, 0
-/* 80969E44 48 00 00 44 */ b lbl_80969E88
-lbl_80969E48:
-/* 80969E48 38 00 00 00 */ li r0, 0
-/* 80969E4C 88 7F 0C F0 */ lbz r3, 0xcf0(r31)
-/* 80969E50 2C 03 00 08 */ cmpwi r3, 8
-/* 80969E54 41 82 00 0C */ beq lbl_80969E60
-/* 80969E58 2C 03 00 09 */ cmpwi r3, 9
-/* 80969E5C 40 82 00 08 */ bne lbl_80969E64
-lbl_80969E60:
-/* 80969E60 38 00 00 01 */ li r0, 1
-lbl_80969E64:
-/* 80969E64 54 00 06 3F */ clrlwi. r0, r0, 0x18
-/* 80969E68 40 82 00 0C */ bne lbl_80969E74
-/* 80969E6C 38 60 00 00 */ li r3, 0
-/* 80969E70 48 00 00 18 */ b lbl_80969E88
-lbl_80969E74:
-/* 80969E74 2C 03 00 08 */ cmpwi r3, 8
-/* 80969E78 41 82 00 0C */ beq lbl_80969E84
-/* 80969E7C 38 60 00 00 */ li r3, 0
-/* 80969E80 48 00 00 08 */ b lbl_80969E88
-lbl_80969E84:
-/* 80969E84 7F E3 FB 78 */ mr r3, r31
-lbl_80969E88:
-/* 80969E88 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80969E8C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80969E90 7C 08 03 A6 */ mtlr r0
-/* 80969E94 38 21 00 10 */ addi r1, r1, 0x10
-/* 80969E98 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_Tag__13daNpcBlueNS_cFPvPv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_Tag__13daNpcBlueNS_cFPvPv.s
deleted file mode 100644
index d04e106cc2..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_Tag__13daNpcBlueNS_cFPvPv.s
+++ /dev/null
@@ -1,37 +0,0 @@
-lbl_80969D60:
-/* 80969D60 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80969D64 7C 08 02 A6 */ mflr r0
-/* 80969D68 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80969D6C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80969D70 93 C1 00 08 */ stw r30, 8(r1)
-/* 80969D74 7C 7E 1B 78 */ mr r30, r3
-/* 80969D78 7C 9F 23 78 */ mr r31, r4
-/* 80969D7C 4B 6A EF 65 */ bl fopAc_IsActor__FPv
-/* 80969D80 2C 03 00 00 */ cmpwi r3, 0
-/* 80969D84 40 82 00 0C */ bne lbl_80969D90
-/* 80969D88 38 60 00 00 */ li r3, 0
-/* 80969D8C 48 00 00 40 */ b lbl_80969DCC
-lbl_80969D90:
-/* 80969D90 A8 1E 00 08 */ lha r0, 8(r30)
-/* 80969D94 2C 00 00 23 */ cmpwi r0, 0x23
-/* 80969D98 40 82 00 30 */ bne lbl_80969DC8
-/* 80969D9C 88 9F 0E 11 */ lbz r4, 0xe11(r31)
-/* 80969DA0 38 60 00 03 */ li r3, 3
-/* 80969DA4 7C 04 1B D6 */ divw r0, r4, r3
-/* 80969DA8 7C 00 19 D6 */ mullw r0, r0, r3
-/* 80969DAC 7C 60 20 50 */ subf r3, r0, r4
-/* 80969DB0 80 1E 00 B0 */ lwz r0, 0xb0(r30)
-/* 80969DB4 54 00 06 3E */ clrlwi r0, r0, 0x18
-/* 80969DB8 7C 03 00 40 */ cmplw r3, r0
-/* 80969DBC 40 82 00 0C */ bne lbl_80969DC8
-/* 80969DC0 7F C3 F3 78 */ mr r3, r30
-/* 80969DC4 48 00 00 08 */ b lbl_80969DCC
-lbl_80969DC8:
-/* 80969DC8 38 60 00 00 */ li r3, 0
-lbl_80969DCC:
-/* 80969DCC 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80969DD0 83 C1 00 08 */ lwz r30, 8(r1)
-/* 80969DD4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80969DD8 7C 08 03 A6 */ mtlr r0
-/* 80969DDC 38 21 00 10 */ addi r1, r1, 0x10
-/* 80969DE0 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/appearSE__13daNpcBlueNS_cFv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/appearSE__13daNpcBlueNS_cFv.s
deleted file mode 100644
index 0b306224ec..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/appearSE__13daNpcBlueNS_cFv.s
+++ /dev/null
@@ -1,52 +0,0 @@
-lbl_8096B490:
-/* 8096B490 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8096B494 7C 08 02 A6 */ mflr r0
-/* 8096B498 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8096B49C 88 03 0E 11 */ lbz r0, 0xe11(r3)
-/* 8096B4A0 2C 00 00 01 */ cmpwi r0, 1
-/* 8096B4A4 41 82 00 48 */ beq lbl_8096B4EC
-/* 8096B4A8 40 80 00 10 */ bge lbl_8096B4B8
-/* 8096B4AC 2C 00 00 00 */ cmpwi r0, 0
-/* 8096B4B0 40 80 00 14 */ bge lbl_8096B4C4
-/* 8096B4B4 48 00 00 84 */ b lbl_8096B538
-lbl_8096B4B8:
-/* 8096B4B8 2C 00 00 06 */ cmpwi r0, 6
-/* 8096B4BC 40 80 00 7C */ bge lbl_8096B538
-/* 8096B4C0 48 00 00 54 */ b lbl_8096B514
-lbl_8096B4C4:
-/* 8096B4C4 3C 80 00 06 */ lis r4, 0x0006 /* 0x00060091@ha */
-/* 8096B4C8 38 04 00 91 */ addi r0, r4, 0x0091 /* 0x00060091@l */
-/* 8096B4CC 90 01 00 10 */ stw r0, 0x10(r1)
-/* 8096B4D0 38 81 00 10 */ addi r4, r1, 0x10
-/* 8096B4D4 38 A0 FF FF */ li r5, -1
-/* 8096B4D8 85 83 0B 48 */ lwzu r12, 0xb48(r3)
-/* 8096B4DC 81 8C 00 1C */ lwz r12, 0x1c(r12)
-/* 8096B4E0 7D 89 03 A6 */ mtctr r12
-/* 8096B4E4 4E 80 04 21 */ bctrl
-/* 8096B4E8 48 00 00 50 */ b lbl_8096B538
-lbl_8096B4EC:
-/* 8096B4EC 3C 80 00 06 */ lis r4, 0x0006 /* 0x00060092@ha */
-/* 8096B4F0 38 04 00 92 */ addi r0, r4, 0x0092 /* 0x00060092@l */
-/* 8096B4F4 90 01 00 0C */ stw r0, 0xc(r1)
-/* 8096B4F8 38 81 00 0C */ addi r4, r1, 0xc
-/* 8096B4FC 38 A0 FF FF */ li r5, -1
-/* 8096B500 85 83 0B 48 */ lwzu r12, 0xb48(r3)
-/* 8096B504 81 8C 00 1C */ lwz r12, 0x1c(r12)
-/* 8096B508 7D 89 03 A6 */ mtctr r12
-/* 8096B50C 4E 80 04 21 */ bctrl
-/* 8096B510 48 00 00 28 */ b lbl_8096B538
-lbl_8096B514:
-/* 8096B514 3C 80 00 06 */ lis r4, 0x0006 /* 0x00060093@ha */
-/* 8096B518 38 04 00 93 */ addi r0, r4, 0x0093 /* 0x00060093@l */
-/* 8096B51C 90 01 00 08 */ stw r0, 8(r1)
-/* 8096B520 38 81 00 08 */ addi r4, r1, 8
-/* 8096B524 38 A0 FF FF */ li r5, -1
-/* 8096B528 85 83 0B 48 */ lwzu r12, 0xb48(r3)
-/* 8096B52C 81 8C 00 1C */ lwz r12, 0x1c(r12)
-/* 8096B530 7D 89 03 A6 */ mtctr r12
-/* 8096B534 4E 80 04 21 */ bctrl
-lbl_8096B538:
-/* 8096B538 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8096B53C 7C 08 03 A6 */ mtlr r0
-/* 8096B540 38 21 00 20 */ addi r1, r1, 0x20
-/* 8096B544 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/createHeapCallBack__13daNpcBlueNS_cFP10fopAc_ac_c.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/createHeapCallBack__13daNpcBlueNS_cFP10fopAc_ac_c.s
deleted file mode 100644
index e72ba797e1..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/createHeapCallBack__13daNpcBlueNS_cFP10fopAc_ac_c.s
+++ /dev/null
@@ -1,9 +0,0 @@
-lbl_80969B68:
-/* 80969B68 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80969B6C 7C 08 02 A6 */ mflr r0
-/* 80969B70 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80969B74 4B FF F4 71 */ bl CreateHeap__13daNpcBlueNS_cFv
-/* 80969B78 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80969B7C 7C 08 03 A6 */ mtlr r0
-/* 80969B80 38 21 00 10 */ addi r1, r1, 0x10
-/* 80969B84 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/ctrlJointCallBack__13daNpcBlueNS_cFP8J3DJointi.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/ctrlJointCallBack__13daNpcBlueNS_cFP8J3DJointi.s
deleted file mode 100644
index c88bbbd1b5..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/ctrlJointCallBack__13daNpcBlueNS_cFP8J3DJointi.s
+++ /dev/null
@@ -1,21 +0,0 @@
-lbl_80969B88:
-/* 80969B88 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80969B8C 7C 08 02 A6 */ mflr r0
-/* 80969B90 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80969B94 7C 60 1B 78 */ mr r0, r3
-/* 80969B98 2C 04 00 00 */ cmpwi r4, 0
-/* 80969B9C 40 82 00 24 */ bne lbl_80969BC0
-/* 80969BA0 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
-/* 80969BA4 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
-/* 80969BA8 80 A3 00 38 */ lwz r5, 0x38(r3)
-/* 80969BAC 80 65 00 14 */ lwz r3, 0x14(r5)
-/* 80969BB0 28 03 00 00 */ cmplwi r3, 0
-/* 80969BB4 41 82 00 0C */ beq lbl_80969BC0
-/* 80969BB8 7C 04 03 78 */ mr r4, r0
-/* 80969BBC 4B FF FE 15 */ bl ctrlJoint__13daNpcBlueNS_cFP8J3DJointP8J3DModel
-lbl_80969BC0:
-/* 80969BC0 38 60 00 01 */ li r3, 1
-/* 80969BC4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80969BC8 7C 08 03 A6 */ mtlr r0
-/* 80969BCC 38 21 00 10 */ addi r1, r1, 0x10
-/* 80969BD0 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Create__FPv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Create__FPv.s
deleted file mode 100644
index d860388916..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Create__FPv.s
+++ /dev/null
@@ -1,9 +0,0 @@
-lbl_8096BF08:
-/* 8096BF08 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8096BF0C 7C 08 02 A6 */ mflr r0
-/* 8096BF10 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8096BF14 4B FF CE 31 */ bl Create__13daNpcBlueNS_cFv
-/* 8096BF18 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8096BF1C 7C 08 03 A6 */ mtlr r0
-/* 8096BF20 38 21 00 10 */ addi r1, r1, 0x10
-/* 8096BF24 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Delete__FPv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Delete__FPv.s
deleted file mode 100644
index 62ade9d253..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Delete__FPv.s
+++ /dev/null
@@ -1,9 +0,0 @@
-lbl_8096BF28:
-/* 8096BF28 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8096BF2C 7C 08 02 A6 */ mflr r0
-/* 8096BF30 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8096BF34 4B FF D2 75 */ bl Delete__13daNpcBlueNS_cFv
-/* 8096BF38 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8096BF3C 7C 08 03 A6 */ mtlr r0
-/* 8096BF40 38 21 00 10 */ addi r1, r1, 0x10
-/* 8096BF44 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Draw__FPv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Draw__FPv.s
deleted file mode 100644
index bf3793d662..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Draw__FPv.s
+++ /dev/null
@@ -1,9 +0,0 @@
-lbl_8096BF68:
-/* 8096BF68 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8096BF6C 7C 08 02 A6 */ mflr r0
-/* 8096BF70 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8096BF74 4B FF D8 FD */ bl Draw__13daNpcBlueNS_cFv
-/* 8096BF78 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8096BF7C 7C 08 03 A6 */ mtlr r0
-/* 8096BF80 38 21 00 10 */ addi r1, r1, 0x10
-/* 8096BF84 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Execute__FPv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Execute__FPv.s
deleted file mode 100644
index 9442e6d9a2..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Execute__FPv.s
+++ /dev/null
@@ -1,9 +0,0 @@
-lbl_8096BF48:
-/* 8096BF48 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8096BF4C 7C 08 02 A6 */ mflr r0
-/* 8096BF50 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8096BF54 4B FF D2 89 */ bl Execute__13daNpcBlueNS_cFv
-/* 8096BF58 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8096BF5C 7C 08 03 A6 */ mtlr r0
-/* 8096BF60 38 21 00 10 */ addi r1, r1, 0x10
-/* 8096BF64 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/downSE__13daNpcBlueNS_cFv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/downSE__13daNpcBlueNS_cFv.s
deleted file mode 100644
index 6498256d08..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/downSE__13daNpcBlueNS_cFv.s
+++ /dev/null
@@ -1,52 +0,0 @@
-lbl_8096B320:
-/* 8096B320 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8096B324 7C 08 02 A6 */ mflr r0
-/* 8096B328 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8096B32C 88 03 0E 11 */ lbz r0, 0xe11(r3)
-/* 8096B330 2C 00 00 01 */ cmpwi r0, 1
-/* 8096B334 41 82 00 48 */ beq lbl_8096B37C
-/* 8096B338 40 80 00 10 */ bge lbl_8096B348
-/* 8096B33C 2C 00 00 00 */ cmpwi r0, 0
-/* 8096B340 40 80 00 14 */ bge lbl_8096B354
-/* 8096B344 48 00 00 84 */ b lbl_8096B3C8
-lbl_8096B348:
-/* 8096B348 2C 00 00 06 */ cmpwi r0, 6
-/* 8096B34C 40 80 00 7C */ bge lbl_8096B3C8
-/* 8096B350 48 00 00 54 */ b lbl_8096B3A4
-lbl_8096B354:
-/* 8096B354 3C 80 00 05 */ lis r4, 0x0005 /* 0x000500CE@ha */
-/* 8096B358 38 04 00 CE */ addi r0, r4, 0x00CE /* 0x000500CE@l */
-/* 8096B35C 90 01 00 10 */ stw r0, 0x10(r1)
-/* 8096B360 38 81 00 10 */ addi r4, r1, 0x10
-/* 8096B364 38 A0 FF FF */ li r5, -1
-/* 8096B368 85 83 0B 48 */ lwzu r12, 0xb48(r3)
-/* 8096B36C 81 8C 00 1C */ lwz r12, 0x1c(r12)
-/* 8096B370 7D 89 03 A6 */ mtctr r12
-/* 8096B374 4E 80 04 21 */ bctrl
-/* 8096B378 48 00 00 50 */ b lbl_8096B3C8
-lbl_8096B37C:
-/* 8096B37C 3C 80 00 05 */ lis r4, 0x0005 /* 0x000500CF@ha */
-/* 8096B380 38 04 00 CF */ addi r0, r4, 0x00CF /* 0x000500CF@l */
-/* 8096B384 90 01 00 0C */ stw r0, 0xc(r1)
-/* 8096B388 38 81 00 0C */ addi r4, r1, 0xc
-/* 8096B38C 38 A0 FF FF */ li r5, -1
-/* 8096B390 85 83 0B 48 */ lwzu r12, 0xb48(r3)
-/* 8096B394 81 8C 00 1C */ lwz r12, 0x1c(r12)
-/* 8096B398 7D 89 03 A6 */ mtctr r12
-/* 8096B39C 4E 80 04 21 */ bctrl
-/* 8096B3A0 48 00 00 28 */ b lbl_8096B3C8
-lbl_8096B3A4:
-/* 8096B3A4 3C 80 00 05 */ lis r4, 0x0005 /* 0x000500D0@ha */
-/* 8096B3A8 38 04 00 D0 */ addi r0, r4, 0x00D0 /* 0x000500D0@l */
-/* 8096B3AC 90 01 00 08 */ stw r0, 8(r1)
-/* 8096B3B0 38 81 00 08 */ addi r4, r1, 8
-/* 8096B3B4 38 A0 FF FF */ li r5, -1
-/* 8096B3B8 85 83 0B 48 */ lwzu r12, 0xb48(r3)
-/* 8096B3BC 81 8C 00 1C */ lwz r12, 0x1c(r12)
-/* 8096B3C0 7D 89 03 A6 */ mtctr r12
-/* 8096B3C4 4E 80 04 21 */ bctrl
-lbl_8096B3C8:
-/* 8096B3C8 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8096B3CC 7C 08 03 A6 */ mtlr r0
-/* 8096B3D0 38 21 00 20 */ addi r1, r1, 0x20
-/* 8096B3D4 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/isDelete__13daNpcBlueNS_cFv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/isDelete__13daNpcBlueNS_cFv.s
deleted file mode 100644
index e80c5e1bd1..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/isDelete__13daNpcBlueNS_cFv.s
+++ /dev/null
@@ -1,31 +0,0 @@
-lbl_80969138:
-/* 80969138 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8096913C 7C 08 02 A6 */ mflr r0
-/* 80969140 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80969144 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80969148 93 C1 00 08 */ stw r30, 8(r1)
-/* 8096914C 7C 7E 1B 78 */ mr r30, r3
-/* 80969150 3B E0 00 00 */ li r31, 0
-/* 80969154 38 60 02 3A */ li r3, 0x23a
-/* 80969158 4B 7E 39 55 */ bl daNpcT_chkEvtBit__FUl
-/* 8096915C 2C 03 00 00 */ cmpwi r3, 0
-/* 80969160 40 82 00 28 */ bne lbl_80969188
-/* 80969164 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80969168 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 8096916C 80 1E 00 B0 */ lwz r0, 0xb0(r30)
-/* 80969170 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
-/* 80969174 88 1E 04 BA */ lbz r0, 0x4ba(r30)
-/* 80969178 7C 05 07 74 */ extsb r5, r0
-/* 8096917C 4B 6C C1 E5 */ bl isSwitch__10dSv_info_cCFii
-/* 80969180 2C 03 00 00 */ cmpwi r3, 0
-/* 80969184 41 82 00 08 */ beq lbl_8096918C
-lbl_80969188:
-/* 80969188 3B E0 00 01 */ li r31, 1
-lbl_8096918C:
-/* 8096918C 7F E3 FB 78 */ mr r3, r31
-/* 80969190 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80969194 83 C1 00 08 */ lwz r30, 8(r1)
-/* 80969198 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8096919C 7C 08 03 A6 */ mtlr r0
-/* 809691A0 38 21 00 10 */ addi r1, r1, 0x10
-/* 809691A4 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/lightsowrdSE__13daNpcBlueNS_cFv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/lightsowrdSE__13daNpcBlueNS_cFv.s
deleted file mode 100644
index a827e14f55..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/lightsowrdSE__13daNpcBlueNS_cFv.s
+++ /dev/null
@@ -1,52 +0,0 @@
-lbl_8096B3D8:
-/* 8096B3D8 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 8096B3DC 7C 08 02 A6 */ mflr r0
-/* 8096B3E0 90 01 00 24 */ stw r0, 0x24(r1)
-/* 8096B3E4 88 03 0E 11 */ lbz r0, 0xe11(r3)
-/* 8096B3E8 2C 00 00 01 */ cmpwi r0, 1
-/* 8096B3EC 41 82 00 48 */ beq lbl_8096B434
-/* 8096B3F0 40 80 00 10 */ bge lbl_8096B400
-/* 8096B3F4 2C 00 00 00 */ cmpwi r0, 0
-/* 8096B3F8 40 80 00 14 */ bge lbl_8096B40C
-/* 8096B3FC 48 00 00 84 */ b lbl_8096B480
-lbl_8096B400:
-/* 8096B400 2C 00 00 06 */ cmpwi r0, 6
-/* 8096B404 40 80 00 7C */ bge lbl_8096B480
-/* 8096B408 48 00 00 54 */ b lbl_8096B45C
-lbl_8096B40C:
-/* 8096B40C 3C 80 00 05 */ lis r4, 0x0005 /* 0x000500D1@ha */
-/* 8096B410 38 04 00 D1 */ addi r0, r4, 0x00D1 /* 0x000500D1@l */
-/* 8096B414 90 01 00 10 */ stw r0, 0x10(r1)
-/* 8096B418 38 81 00 10 */ addi r4, r1, 0x10
-/* 8096B41C 38 A0 FF FF */ li r5, -1
-/* 8096B420 85 83 0B 48 */ lwzu r12, 0xb48(r3)
-/* 8096B424 81 8C 00 1C */ lwz r12, 0x1c(r12)
-/* 8096B428 7D 89 03 A6 */ mtctr r12
-/* 8096B42C 4E 80 04 21 */ bctrl
-/* 8096B430 48 00 00 50 */ b lbl_8096B480
-lbl_8096B434:
-/* 8096B434 3C 80 00 05 */ lis r4, 0x0005 /* 0x000500D2@ha */
-/* 8096B438 38 04 00 D2 */ addi r0, r4, 0x00D2 /* 0x000500D2@l */
-/* 8096B43C 90 01 00 0C */ stw r0, 0xc(r1)
-/* 8096B440 38 81 00 0C */ addi r4, r1, 0xc
-/* 8096B444 38 A0 FF FF */ li r5, -1
-/* 8096B448 85 83 0B 48 */ lwzu r12, 0xb48(r3)
-/* 8096B44C 81 8C 00 1C */ lwz r12, 0x1c(r12)
-/* 8096B450 7D 89 03 A6 */ mtctr r12
-/* 8096B454 4E 80 04 21 */ bctrl
-/* 8096B458 48 00 00 28 */ b lbl_8096B480
-lbl_8096B45C:
-/* 8096B45C 3C 80 00 05 */ lis r4, 0x0005 /* 0x000500D3@ha */
-/* 8096B460 38 04 00 D3 */ addi r0, r4, 0x00D3 /* 0x000500D3@l */
-/* 8096B464 90 01 00 08 */ stw r0, 8(r1)
-/* 8096B468 38 81 00 08 */ addi r4, r1, 8
-/* 8096B46C 38 A0 FF FF */ li r5, -1
-/* 8096B470 85 83 0B 48 */ lwzu r12, 0xb48(r3)
-/* 8096B474 81 8C 00 1C */ lwz r12, 0x1c(r12)
-/* 8096B478 7D 89 03 A6 */ mtctr r12
-/* 8096B47C 4E 80 04 21 */ bctrl
-lbl_8096B480:
-/* 8096B480 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 8096B484 7C 08 03 A6 */ mtlr r0
-/* 8096B488 38 21 00 20 */ addi r1, r1, 0x20
-/* 8096B48C 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/main__13daNpcBlueNS_cFv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/main__13daNpcBlueNS_cFv.s
deleted file mode 100644
index 4dd4f63869..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/main__13daNpcBlueNS_cFv.s
+++ /dev/null
@@ -1,86 +0,0 @@
-lbl_80969F54:
-/* 80969F54 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80969F58 7C 08 02 A6 */ mflr r0
-/* 80969F5C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80969F60 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80969F64 93 C1 00 08 */ stw r30, 8(r1)
-/* 80969F68 7C 7F 1B 78 */ mr r31, r3
-/* 80969F6C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80969F70 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80969F74 38 80 00 58 */ li r4, 0x58
-/* 80969F78 88 1F 04 BA */ lbz r0, 0x4ba(r31)
-/* 80969F7C 7C 05 07 74 */ extsb r5, r0
-/* 80969F80 4B 6C B3 E1 */ bl isSwitch__10dSv_info_cCFii
-/* 80969F84 2C 03 00 00 */ cmpwi r3, 0
-/* 80969F88 41 82 00 3C */ beq lbl_80969FC4
-/* 80969F8C 7F E3 FB 78 */ mr r3, r31
-/* 80969F90 38 80 00 01 */ li r4, 1
-/* 80969F94 4B FF F5 71 */ bl create_Yamijin__13daNpcBlueNS_cFi
-/* 80969F98 90 7F 0E 00 */ stw r3, 0xe00(r31)
-/* 80969F9C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80969FA0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80969FA4 80 1F 00 B0 */ lwz r0, 0xb0(r31)
-/* 80969FA8 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
-/* 80969FAC 88 1F 04 BA */ lbz r0, 0x4ba(r31)
-/* 80969FB0 7C 05 07 74 */ extsb r5, r0
-/* 80969FB4 4B 6C B2 4D */ bl onSwitch__10dSv_info_cFii
-/* 80969FB8 7F E3 FB 78 */ mr r3, r31
-/* 80969FBC 4B 6A FC C1 */ bl fopAcM_delete__FP10fopAc_ac_c
-/* 80969FC0 48 00 00 B4 */ b lbl_8096A074
-lbl_80969FC4:
-/* 80969FC4 38 7F 0D C4 */ addi r3, r31, 0xdc4
-/* 80969FC8 4B 9F 80 51 */ bl __ptmf_test
-/* 80969FCC 2C 03 00 00 */ cmpwi r3, 0
-/* 80969FD0 41 82 00 18 */ beq lbl_80969FE8
-/* 80969FD4 7F E3 FB 78 */ mr r3, r31
-/* 80969FD8 38 80 00 00 */ li r4, 0
-/* 80969FDC 39 9F 0D C4 */ addi r12, r31, 0xdc4
-/* 80969FE0 4B 9F 80 A5 */ bl __ptmf_scall
-/* 80969FE4 60 00 00 00 */ nop
-lbl_80969FE8:
-/* 80969FE8 7F E3 FB 78 */ mr r3, r31
-/* 80969FEC 4B FF F6 05 */ bl col_check__13daNpcBlueNS_cFv
-/* 80969FF0 2C 03 00 00 */ cmpwi r3, 0
-/* 80969FF4 41 82 00 24 */ beq lbl_8096A018
-/* 80969FF8 88 1F 0E 12 */ lbz r0, 0xe12(r31)
-/* 80969FFC 7C 00 07 75 */ extsb. r0, r0
-/* 8096A000 40 82 00 6C */ bne lbl_8096A06C
-/* 8096A004 7F E3 FB 78 */ mr r3, r31
-/* 8096A008 4B FF F4 61 */ bl callEvt_changeYami__13daNpcBlueNS_cFv
-/* 8096A00C 38 00 00 01 */ li r0, 1
-/* 8096A010 98 1F 0E 12 */ stb r0, 0xe12(r31)
-/* 8096A014 48 00 00 58 */ b lbl_8096A06C
-lbl_8096A018:
-/* 8096A018 88 1F 0E 12 */ lbz r0, 0xe12(r31)
-/* 8096A01C 7C 00 07 75 */ extsb. r0, r0
-/* 8096A020 40 82 00 4C */ bne lbl_8096A06C
-/* 8096A024 3B C0 00 01 */ li r30, 1
-/* 8096A028 7F E3 FB 78 */ mr r3, r31
-/* 8096A02C 80 9F 0D F0 */ lwz r4, 0xdf0(r31)
-/* 8096A030 4B FF F6 69 */ bl holyball_check_main__13daNpcBlueNS_cFP10fopAc_ac_c
-/* 8096A034 2C 03 00 00 */ cmpwi r3, 0
-/* 8096A038 40 82 00 1C */ bne lbl_8096A054
-/* 8096A03C 7F E3 FB 78 */ mr r3, r31
-/* 8096A040 80 9F 0D F4 */ lwz r4, 0xdf4(r31)
-/* 8096A044 4B FF F6 55 */ bl holyball_check_main__13daNpcBlueNS_cFP10fopAc_ac_c
-/* 8096A048 2C 03 00 00 */ cmpwi r3, 0
-/* 8096A04C 40 82 00 08 */ bne lbl_8096A054
-/* 8096A050 3B C0 00 00 */ li r30, 0
-lbl_8096A054:
-/* 8096A054 57 C0 06 3F */ clrlwi. r0, r30, 0x18
-/* 8096A058 41 82 00 14 */ beq lbl_8096A06C
-/* 8096A05C 7F E3 FB 78 */ mr r3, r31
-/* 8096A060 4B FF F4 09 */ bl callEvt_changeYami__13daNpcBlueNS_cFv
-/* 8096A064 38 00 00 01 */ li r0, 1
-/* 8096A068 98 1F 0E 12 */ stb r0, 0xe12(r31)
-lbl_8096A06C:
-/* 8096A06C 7F E3 FB 78 */ mr r3, r31
-/* 8096A070 48 00 04 A9 */ bl playMotion__13daNpcBlueNS_cFv
-lbl_8096A074:
-/* 8096A074 38 60 00 00 */ li r3, 0
-/* 8096A078 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8096A07C 83 C1 00 08 */ lwz r30, 8(r1)
-/* 8096A080 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8096A084 7C 08 03 A6 */ mtlr r0
-/* 8096A088 38 21 00 10 */ addi r1, r1, 0x10
-/* 8096A08C 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setAction__13daNpcBlueNS_cFM13daNpcBlueNS_cFPCvPvi_i.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setAction__13daNpcBlueNS_cFM13daNpcBlueNS_cFPCvPvi_i.s
deleted file mode 100644
index 48dbb8754e..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setAction__13daNpcBlueNS_cFM13daNpcBlueNS_cFPCvPvi_i.s
+++ /dev/null
@@ -1,45 +0,0 @@
-lbl_8096A750:
-/* 8096A750 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 8096A754 7C 08 02 A6 */ mflr r0
-/* 8096A758 90 01 00 14 */ stw r0, 0x14(r1)
-/* 8096A75C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 8096A760 93 C1 00 08 */ stw r30, 8(r1)
-/* 8096A764 7C 7E 1B 78 */ mr r30, r3
-/* 8096A768 7C 9F 23 78 */ mr r31, r4
-/* 8096A76C 38 00 00 03 */ li r0, 3
-/* 8096A770 B0 03 0D C0 */ sth r0, 0xdc0(r3)
-/* 8096A774 38 7E 0D C4 */ addi r3, r30, 0xdc4
-/* 8096A778 4B 9F 78 A1 */ bl __ptmf_test
-/* 8096A77C 2C 03 00 00 */ cmpwi r3, 0
-/* 8096A780 41 82 00 18 */ beq lbl_8096A798
-/* 8096A784 7F C3 F3 78 */ mr r3, r30
-/* 8096A788 38 80 00 00 */ li r4, 0
-/* 8096A78C 39 9E 0D C4 */ addi r12, r30, 0xdc4
-/* 8096A790 4B 9F 78 F5 */ bl __ptmf_scall
-/* 8096A794 60 00 00 00 */ nop
-lbl_8096A798:
-/* 8096A798 38 00 00 00 */ li r0, 0
-/* 8096A79C B0 1E 0D C0 */ sth r0, 0xdc0(r30)
-/* 8096A7A0 80 7F 00 00 */ lwz r3, 0(r31)
-/* 8096A7A4 80 1F 00 04 */ lwz r0, 4(r31)
-/* 8096A7A8 90 7E 0D C4 */ stw r3, 0xdc4(r30)
-/* 8096A7AC 90 1E 0D C8 */ stw r0, 0xdc8(r30)
-/* 8096A7B0 80 1F 00 08 */ lwz r0, 8(r31)
-/* 8096A7B4 90 1E 0D CC */ stw r0, 0xdcc(r30)
-/* 8096A7B8 38 7E 0D C4 */ addi r3, r30, 0xdc4
-/* 8096A7BC 4B 9F 78 5D */ bl __ptmf_test
-/* 8096A7C0 2C 03 00 00 */ cmpwi r3, 0
-/* 8096A7C4 41 82 00 18 */ beq lbl_8096A7DC
-/* 8096A7C8 7F C3 F3 78 */ mr r3, r30
-/* 8096A7CC 38 80 00 00 */ li r4, 0
-/* 8096A7D0 39 9E 0D C4 */ addi r12, r30, 0xdc4
-/* 8096A7D4 4B 9F 78 B1 */ bl __ptmf_scall
-/* 8096A7D8 60 00 00 00 */ nop
-lbl_8096A7DC:
-/* 8096A7DC 38 60 00 01 */ li r3, 1
-/* 8096A7E0 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 8096A7E4 83 C1 00 08 */ lwz r30, 8(r1)
-/* 8096A7E8 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 8096A7EC 7C 08 03 A6 */ mtlr r0
-/* 8096A7F0 38 21 00 10 */ addi r1, r1, 0x10
-/* 8096A7F4 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setLookMode__13daNpcBlueNS_cFi.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setLookMode__13daNpcBlueNS_cFi.s
deleted file mode 100644
index 6d90aa351c..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setLookMode__13daNpcBlueNS_cFi.s
+++ /dev/null
@@ -1,10 +0,0 @@
-lbl_8096A7F8:
-/* 8096A7F8 2C 04 00 00 */ cmpwi r4, 0
-/* 8096A7FC 4D 80 00 20 */ bltlr
-/* 8096A800 2C 04 00 04 */ cmpwi r4, 4
-/* 8096A804 4C 80 00 20 */ bgelr
-/* 8096A808 A8 03 0D E8 */ lha r0, 0xde8(r3)
-/* 8096A80C 7C 04 00 00 */ cmpw r4, r0
-/* 8096A810 4D 82 00 20 */ beqlr
-/* 8096A814 B0 83 0D E8 */ sth r4, 0xde8(r3)
-/* 8096A818 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchActor__13daNpcBlueNS_cFv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchActor__13daNpcBlueNS_cFv.s
deleted file mode 100644
index aabce5c73f..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchActor__13daNpcBlueNS_cFv.s
+++ /dev/null
@@ -1,21 +0,0 @@
-lbl_80969C48:
-/* 80969C48 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80969C4C 7C 08 02 A6 */ mflr r0
-/* 80969C50 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80969C54 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80969C58 7C 7F 1B 78 */ mr r31, r3
-/* 80969C5C 48 00 00 35 */ bl srchHollyBall__13daNpcBlueNS_cFv
-/* 80969C60 88 1F 0E 11 */ lbz r0, 0xe11(r31)
-/* 80969C64 2C 00 00 05 */ cmpwi r0, 5
-/* 80969C68 41 82 00 0C */ beq lbl_80969C74
-/* 80969C6C 40 80 00 10 */ bge lbl_80969C7C
-/* 80969C70 48 00 00 0C */ b lbl_80969C7C
-lbl_80969C74:
-/* 80969C74 7F E3 FB 78 */ mr r3, r31
-/* 80969C78 48 00 00 81 */ bl srchTagYami__13daNpcBlueNS_cFv
-lbl_80969C7C:
-/* 80969C7C 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80969C80 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80969C84 7C 08 03 A6 */ mtlr r0
-/* 80969C88 38 21 00 10 */ addi r1, r1, 0x10
-/* 80969C8C 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchHollyBall__13daNpcBlueNS_cFv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchHollyBall__13daNpcBlueNS_cFv.s
deleted file mode 100644
index 2cfe7c48f9..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchHollyBall__13daNpcBlueNS_cFv.s
+++ /dev/null
@@ -1,29 +0,0 @@
-lbl_80969C90:
-/* 80969C90 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80969C94 7C 08 02 A6 */ mflr r0
-/* 80969C98 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80969C9C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80969CA0 7C 7F 1B 78 */ mr r31, r3
-/* 80969CA4 80 03 0D F0 */ lwz r0, 0xdf0(r3)
-/* 80969CA8 28 00 00 00 */ cmplwi r0, 0
-/* 80969CAC 40 82 00 18 */ bne lbl_80969CC4
-/* 80969CB0 3C 60 80 97 */ lis r3, _search_HollyBall_Y__13daNpcBlueNS_cFPvPv@ha /* 0x80969DE4@ha */
-/* 80969CB4 38 63 9D E4 */ addi r3, r3, _search_HollyBall_Y__13daNpcBlueNS_cFPvPv@l /* 0x80969DE4@l */
-/* 80969CB8 7F E4 FB 78 */ mr r4, r31
-/* 80969CBC 4B 6B 76 7D */ bl fpcEx_Search__FPFPvPv_PvPv
-/* 80969CC0 90 7F 0D F0 */ stw r3, 0xdf0(r31)
-lbl_80969CC4:
-/* 80969CC4 80 1F 0D F4 */ lwz r0, 0xdf4(r31)
-/* 80969CC8 28 00 00 00 */ cmplwi r0, 0
-/* 80969CCC 40 82 00 18 */ bne lbl_80969CE4
-/* 80969CD0 3C 60 80 97 */ lis r3, _search_HollyBall_G__13daNpcBlueNS_cFPvPv@ha /* 0x80969E9C@ha */
-/* 80969CD4 38 63 9E 9C */ addi r3, r3, _search_HollyBall_G__13daNpcBlueNS_cFPvPv@l /* 0x80969E9C@l */
-/* 80969CD8 7F E4 FB 78 */ mr r4, r31
-/* 80969CDC 4B 6B 76 5D */ bl fpcEx_Search__FPFPvPv_PvPv
-/* 80969CE0 90 7F 0D F4 */ stw r3, 0xdf4(r31)
-lbl_80969CE4:
-/* 80969CE4 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80969CE8 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80969CEC 7C 08 03 A6 */ mtlr r0
-/* 80969CF0 38 21 00 10 */ addi r1, r1, 0x10
-/* 80969CF4 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchTagYami__13daNpcBlueNS_cFv.s b/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchTagYami__13daNpcBlueNS_cFv.s
deleted file mode 100644
index eea553465c..0000000000
--- a/asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchTagYami__13daNpcBlueNS_cFv.s
+++ /dev/null
@@ -1,28 +0,0 @@
-lbl_80969CF8:
-/* 80969CF8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80969CFC 7C 08 02 A6 */ mflr r0
-/* 80969D00 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80969D04 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80969D08 7C 7F 1B 78 */ mr r31, r3
-/* 80969D0C 80 03 0D F8 */ lwz r0, 0xdf8(r3)
-/* 80969D10 28 00 00 00 */ cmplwi r0, 0
-/* 80969D14 40 82 00 38 */ bne lbl_80969D4C
-/* 80969D18 3C 60 80 97 */ lis r3, _search_Tag__13daNpcBlueNS_cFPvPv@ha /* 0x80969D60@ha */
-/* 80969D1C 38 63 9D 60 */ addi r3, r3, _search_Tag__13daNpcBlueNS_cFPvPv@l /* 0x80969D60@l */
-/* 80969D20 7F E4 FB 78 */ mr r4, r31
-/* 80969D24 4B 6B 76 15 */ bl fpcEx_Search__FPFPvPv_PvPv
-/* 80969D28 90 7F 0D F8 */ stw r3, 0xdf8(r31)
-/* 80969D2C 80 7F 0D F8 */ lwz r3, 0xdf8(r31)
-/* 80969D30 28 03 00 00 */ cmplwi r3, 0
-/* 80969D34 41 82 00 18 */ beq lbl_80969D4C
-/* 80969D38 80 03 05 94 */ lwz r0, 0x594(r3)
-/* 80969D3C 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
-/* 80969D40 90 03 05 94 */ stw r0, 0x594(r3)
-/* 80969D44 38 00 00 00 */ li r0, 0
-/* 80969D48 98 03 06 E0 */ stb r0, 0x6e0(r3)
-lbl_80969D4C:
-/* 80969D4C 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80969D50 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80969D54 7C 08 03 A6 */ mtlr r0
-/* 80969D58 38 21 00 10 */ addi r1, r1, 0x10
-/* 80969D5C 4E 80 00 20 */ blr
diff --git a/include/d/a/d_a_npc.h b/include/d/a/d_a_npc.h
index 7cb5abb939..9483c7c6f0 100644
--- a/include/d/a/d_a_npc.h
+++ b/include/d/a/d_a_npc.h
@@ -658,7 +658,7 @@ protected:
/* 0x992 */ s16 field_0x992;
/* 0x994 */ s16 mTurnStartAngle;
/* 0x996 */ s16 mTurnTargetAngle;
- /* 0x998 */ u16 field_0x998;
+ /* 0x998 */ s16 mGroundAngle;
/* 0x99C */ u32 mAnmFlags;
/* 0x9A0 */ u32 mShadowKey;
/* 0x9A4 */ u32 field_0x9a4;
@@ -739,6 +739,18 @@ public:
/* 5 */ LOOK_ATTN,
};
+ #ifdef DANPCF_C_CTOR_HACK
+ // dummy functions to disable inline for ctor
+ void initialize5() { initialize(); }
+ void initialize4() { initialize5(); }
+ void initialize3() { initialize4(); }
+ void initialize2() { initialize3(); }
+ void initialize1() { initialize2(); }
+ daNpcF_c() { initialize1(); }
+ #else
+ daNpcF_c() { initialize(); }
+ #endif
+
/* 80152014 */ BOOL execute();
/* 801522AC */ int draw(BOOL, BOOL, f32, _GXColorS10*, BOOL);
/* 80152614 */ static void tgHitCallBack(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*,
@@ -850,6 +862,7 @@ BOOL daNpcF_pntVsLineSegmentLengthSquare2D(f32 i_pntX, f32 i_pntZ, f32 i_startX,
f32* o_dist2);
BOOL daNpcF_chkPassed(cXyz i_pos, dPnt* i_points, u16 i_idx, u16 i_num, BOOL i_isClosed,
BOOL i_isReversed);
+BOOL daNpcF_chkDoBtnEqSpeak(fopAc_ac_c* i_ActorP);
class daNpcF_MatAnm_c : public J3DMaterialAnm {
private:
diff --git a/include/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns.h b/include/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns.h
index 63a80693dc..28ef8e6531 100644
--- a/include/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns.h
+++ b/include/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns.h
@@ -3,6 +3,11 @@
#include "d/a/d_a_npc.h"
+class daTagYami_c;
+class daNpc_yamiS_c;
+
+//#define INHERIT_NPC
+
/**
* @ingroup actors-npcs
* @class daNpcBlueNS_c
@@ -11,69 +16,143 @@
* @details
*
*/
-class daNpcBlueNS_c : public fopAc_ac_c {
+class daNpcBlueNS_c : public
+#ifdef INHERIT_NPC
+daNpcF_c
+#else
+fopAc_ac_c
+#endif
+{
public:
+ typedef int (daNpcBlueNS_c::*ActionFunc)(int);
+ typedef int (daNpcBlueNS_c::*EventSeqFunc)(int);
+
+ enum LookAtMode {
+ LOOK_AT_0,
+ LOOK_AT_1,
+ LOOK_AT_2,
+ LOOK_AT_3,
+ };
+
/* 8096896C */ daNpcBlueNS_c();
/* 80968B80 */ ~daNpcBlueNS_c();
- /* 80968D44 */ void Create();
- /* 80968FE4 */ void CreateHeap();
- /* 80969138 */ void isDelete();
- /* 809691A8 */ void Delete();
- /* 809691DC */ void Execute();
+ /* 80968D44 */ int Create();
+ /* 80968FE4 */ int CreateHeap();
+ /* 80969138 */ int isDelete();
+ /* 809691A8 */ int Delete();
+ /* 809691DC */ int Execute();
/* 80969200 */ void _Execute();
/* 80969468 */ void callEvt_changeYami();
- /* 80969504 */ void create_Yamijin(int);
- /* 809695F0 */ void col_check();
- /* 80969698 */ void holyball_check_main(fopAc_ac_c*);
- /* 80969870 */ void Draw();
- /* 809699D0 */ void ctrlJoint(J3DJoint*, J3DModel*);
- /* 80969B68 */ void createHeapCallBack(fopAc_ac_c*);
- /* 80969B88 */ void ctrlJointCallBack(J3DJoint*, int);
+ /* 80969504 */ int create_Yamijin(int);
+ /* 809695F0 */ int col_check();
+ /* 80969698 */ int holyball_check_main(fopAc_ac_c*);
+ /* 80969870 */ int Draw();
+ /* 809699D0 */ int ctrlJoint(J3DJoint*, J3DModel*);
+ /* 80969B68 */ static int createHeapCallBack(fopAc_ac_c*);
+ /* 80969B88 */ static int ctrlJointCallBack(J3DJoint*, int);
/* 80969BD4 */ void setParam();
/* 80969C48 */ void srchActor();
/* 80969C90 */ void srchHollyBall();
/* 80969CF8 */ void srchTagYami();
- /* 80969D60 */ void _search_Tag(void*, void*);
- /* 80969DE4 */ void _search_HollyBall_Y(void*, void*);
- /* 80969E9C */ void _search_HollyBall_G(void*, void*);
- /* 80969F54 */ void main();
+ /* 80969D60 */ static void* _search_Tag(void*, void*);
+ /* 80969DE4 */ static void* _search_HollyBall_Y(void*, void*);
+ /* 80969E9C */ static void* _search_HollyBall_G(void*, void*);
+ /* 80969F54 */ BOOL main();
/* 8096A090 */ void setAttnPos();
/* 8096A238 */ void setMotionAnm(int, f32);
/* 8096A308 */ void setMotion(int, f32, int);
- /* 8096A350 */ bool drawDbgInfo();
+ /* 8096A350 */ BOOL drawDbgInfo();
/* 8096A358 */ void reset();
/* 8096A518 */ void playMotion();
- /* 8096A750 */ void setAction(int (daNpcBlueNS_c::*)(int));
+ /* 8096A750 */ int setAction(ActionFunc);
/* 8096A7F8 */ void setLookMode(int);
/* 8096A81C */ void lookat();
- /* 8096A9FC */ void step(s16, int);
- /* 8096AAF0 */ void chkFindPlayer();
- /* 8096ABD4 */ void wait(int);
- /* 8096AD70 */ void down(int);
- /* 8096AE5C */ void talk(int);
- /* 8096AFC8 */ void demo(int);
+ /* 8096A9FC */ int step(s16, int);
+ /* 8096AAF0 */ int chkFindPlayer();
+ /* 8096ABD4 */ int wait(int);
+ /* 8096AD70 */ int down(int);
+ /* 8096AE5C */ int talk(int);
+ /* 8096AFC8 */ int demo(int);
/* 8096B204 */ void ChgPtclDisp();
/* 8096B320 */ void downSE();
/* 8096B3D8 */ void lightsowrdSE();
/* 8096B490 */ void appearSE();
- /* 8096B548 */ void _Evt_ChgYami_Chibi(int);
- /* 8096B5F0 */ void _Evt_ChgYami_Chibi_CutInit(int const&);
- /* 8096B688 */ void _Evt_ChgYami_Chibi_CutMain(int const&);
- /* 8096B7B8 */ void _Evt_ChgYami_Debu(int);
- /* 8096B860 */ void _Evt_ChgYami_Debu_CutInit(int const&);
- /* 8096B8F8 */ void _Evt_ChgYami_Debu_CutMain(int const&);
- /* 8096BA28 */ void _Evt_ChgYami_Noppo(int);
- /* 8096BAD0 */ void _Evt_ChgYami_Noppo_CutInit(int const&);
- /* 8096BB68 */ void _Evt_ChgYami_Noppo_CutMain(int const&);
- /* 8096BC98 */ void _Evt_ChgYami_STNoppo(int);
- /* 8096BD40 */ void _Evt_ChgYami_STNoppo_CutInit(int const&);
- /* 8096BDD8 */ void _Evt_ChgYami_STNoppo_CutMain(int const&);
+ /* 8096B548 */ int _Evt_ChgYami_Chibi(int);
+ /* 8096B5F0 */ int _Evt_ChgYami_Chibi_CutInit(int const&);
+ /* 8096B688 */ int _Evt_ChgYami_Chibi_CutMain(int const&);
+ /* 8096B7B8 */ int _Evt_ChgYami_Debu(int);
+ /* 8096B860 */ int _Evt_ChgYami_Debu_CutInit(int const&);
+ /* 8096B8F8 */ int _Evt_ChgYami_Debu_CutMain(int const&);
+ /* 8096BA28 */ int _Evt_ChgYami_Noppo(int);
+ /* 8096BAD0 */ int _Evt_ChgYami_Noppo_CutInit(int const&);
+ /* 8096BB68 */ int _Evt_ChgYami_Noppo_CutMain(int const&);
+ /* 8096BC98 */ int _Evt_ChgYami_STNoppo(int);
+ /* 8096BD40 */ int _Evt_ChgYami_STNoppo_CutInit(int const&);
+ /* 8096BDD8 */ int _Evt_ChgYami_STNoppo_CutMain(int const&);
/* 8096C8B0 */ void adjustShapeAngle();
+ u8 getType() { return fopAcM_GetParam(this); }
+ u8 getSwitchBitNo() { return fopAcM_GetParam(this) >> 8; }
+
+ int getFlowNodeNo() {
+ return ((u16)home.angle.x == 0xffff) ? -1 : (u16)home.angle.x;
+ }
+
+ int _chk_TagPrm(fopAc_ac_c *param_1) {
+ return (fopAcM_GetParam(param_1) & 0xff) == field_0xe11 % 3;
+ }
+
+ int holyball_check_yellow() {
+ return holyball_check_main(field_0xdf0);
+ }
+
+ int holyball_check_green() {
+ return holyball_check_main(field_0xdf4);
+ }
+
+ int holyball_check() {
+ return holyball_check_yellow() || holyball_check_green();
+ }
+
+ #ifdef NONMATCHING
+ static EventSeqFunc mEvtSeqList[7];
+ #else
static u8 mEvtSeqList[84];
+ #endif
private:
- /* 0x568 */ u8 field_0x568[0xe14 - 0x568];
+ #ifdef INHERIT_NPC
+ #else
+ /* 0xB48 */ u8 field_0x568[0xB48 - 0x568];
+ #endif
+ /* 0xB48 */ Z2Creature mCreature;
+ /* 0xBD8 */ u32 field_0xbd8;
+ /* 0xBDC */ daNpcF_Lookat_c mLookAt;
+ /* 0xC78 */ daNpcF_ActorMngr_c mActorMngrs[1];
+ /* 0xC80 */ u32 field_0xc80;
+ /* 0xC84 */ dCcD_Cyl mCyl;
+ /* 0xDC0 */ u16 field_0xdc0;
+ /* 0xDC4 */ ActionFunc field_0xdc4;
+ /* 0xDD0 */ request_of_phase_process_class mPhase[1];
+ /* 0xDD8 */ int field_0xdd8;
+ /* 0xDDC */ int field_0xddc;
+ /* 0xDE0 */ int field_0xde0;
+ /* 0xDE4 */ int field_0xde4;
+ /* 0xDE8 */ s16 mLookMode;
+ /* 0xDEA */ s16 field_0xdea;
+ /* 0xDEC */ u8 field_0xdec;
+ /* 0xDF0 */ fopAc_ac_c* field_0xdf0;
+ /* 0xDF4 */ fopAc_ac_c* field_0xdf4;
+ /* 0xDF8 */ daTagYami_c* field_0xdf8;
+ /* 0xDFC */ fopAc_ac_c* mYamiActor;
+ /* 0xE00 */ int field_0xe00;
+ /* 0xE04 */ int field_0xe04;
+ /* 0xE08 */ int field_0xe08;
+ /* 0xE0C */ int field_0xe0c;
+ /* 0xE10 */ s8 field_0xe10;
+ /* 0xE11 */ u8 field_0xe11;
+ /* 0xE12 */ s8 field_0xe12;
+ /* 0xE13 */ u8 field_0xe13;
};
STATIC_ASSERT(sizeof(daNpcBlueNS_c) == 0xe14);
@@ -81,8 +160,15 @@ STATIC_ASSERT(sizeof(daNpcBlueNS_c) == 0xe14);
class daNpcBlueNS_Param_c {
public:
/* 8096C8B4 */ ~daNpcBlueNS_Param_c();
+ struct Data {
+ f32 field_0x00[18];
+ s16 field_0x48[4];
+ f32 field_0x50[4];
+ s16 field_0x60[4];
+ f32 field_0x68[2];
+ };
- static u8 const m[112];
+ static Data const m;
};
diff --git a/include/rel/d/a/npc/d_a_npc_yamid/d_a_npc_yamid.h b/include/rel/d/a/npc/d_a_npc_yamid/d_a_npc_yamid.h
index 75d4b8a22b..7b05495a82 100644
--- a/include/rel/d/a/npc/d_a_npc_yamid/d_a_npc_yamid.h
+++ b/include/rel/d/a/npc/d_a_npc_yamid/d_a_npc_yamid.h
@@ -57,11 +57,21 @@ public:
/* 80B45F64 */ void checkRemoveJoint(int);
/* 80B45F74 */ void evtEndProc();
+ void vanish_off() { field_0xf81 = 0; }
+ void on_CoHit() {
+ mCyl.OnCoSetBit();
+ mCyl.OnTgSetBit();
+ }
+
static void* mCutNameList[2];
static u8 mCutList[24];
private:
- /* 0x568 */ u8 field_0x568[0xfcc - 0x568];
+ /* 0x568 */ u8 field_0x568[0xe44 - 0x568];
+ /* 0xE44 */ dCcD_Cyl mCyl;
+ /* 0xF80 */ u8 field_0xf80;
+ /* 0xF81 */ u8 field_0xf81;
+ /* 0xF82 */ u8 field_0xf82[0xfcc - 0xf82];
};
STATIC_ASSERT(sizeof(daNpc_yamiD_c) == 0xfcc);
diff --git a/include/rel/d/a/npc/d_a_npc_yamis/d_a_npc_yamis.h b/include/rel/d/a/npc/d_a_npc_yamis/d_a_npc_yamis.h
index 22f8532b5f..0126dbbebe 100644
--- a/include/rel/d/a/npc/d_a_npc_yamis/d_a_npc_yamis.h
+++ b/include/rel/d/a/npc/d_a_npc_yamis/d_a_npc_yamis.h
@@ -57,11 +57,21 @@ public:
/* 80B495C8 */ void checkRemoveJoint(int);
/* 80B495D8 */ void evtEndProc();
+ void vanish_off() { field_0xf81 = 0; }
+ void on_CoHit() {
+ mCyl.OnCoSetBit();
+ mCyl.OnTgSetBit();
+ }
+
static void* mCutNameList[2];
static u8 mCutList[24];
private:
- /* 0x568 */ u8 field_0x568[0xfcc - 0x568];
+ /* 0x568 */ u8 field_0x568[0xe44 - 0x568];
+ /* 0xE44 */ dCcD_Cyl mCyl;
+ /* 0xF80 */ u8 field_0xf80;
+ /* 0xF81 */ u8 field_0xf81;
+ /* 0xF82 */ u8 field_0xf82[0xfcc - 0xf82];
};
STATIC_ASSERT(sizeof(daNpc_yamiS_c) == 0xfcc);
diff --git a/include/rel/d/a/npc/d_a_npc_yamit/d_a_npc_yamit.h b/include/rel/d/a/npc/d_a_npc_yamit/d_a_npc_yamit.h
index 2b26fefc41..d42974cdb6 100644
--- a/include/rel/d/a/npc/d_a_npc_yamit/d_a_npc_yamit.h
+++ b/include/rel/d/a/npc/d_a_npc_yamit/d_a_npc_yamit.h
@@ -59,11 +59,21 @@ public:
/* 80B4CD18 */ void checkChangeJoint(int);
/* 80B4CD28 */ void checkRemoveJoint(int);
+ void vanish_off() { field_0xf81 = 0; }
+ void on_CoHit() {
+ mCyl.OnCoSetBit();
+ mCyl.OnTgSetBit();
+ }
+
static void* mCutNameList[2];
static u8 mCutList[24];
private:
- /* 0x568 */ u8 field_0x568[0xfcc - 0x568];
+ /* 0x568 */ u8 field_0x568[0xe44 - 0x568];
+ /* 0xE44 */ dCcD_Cyl mCyl;
+ /* 0xF80 */ u8 field_0xf80;
+ /* 0xF81 */ u8 field_0xf81;
+ /* 0xF82 */ u8 field_0xf82[0xfcc - 0xf82];
};
STATIC_ASSERT(sizeof(daNpc_yamiT_c) == 0xfcc);
diff --git a/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns.cpp b/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns.cpp
index 1aa13379ea..67296d7bdc 100644
--- a/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns.cpp
+++ b/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns.cpp
@@ -3,7 +3,14 @@
*
*/
+#define DANPCF_C_CTOR_HACK
+
#include "rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns.h"
+#include "rel/d/a/tag/d_a_tag_yami/d_a_tag_yami.h"
+#include "rel/d/a/obj/d_a_obj_carry/d_a_obj_carry.h"
+#include "rel/d/a/npc/d_a_npc_yamis/d_a_npc_yamis.h"
+#include "rel/d/a/npc/d_a_npc_yamid/d_a_npc_yamid.h"
+#include "rel/d/a/npc/d_a_npc_yamit/d_a_npc_yamit.h"
#include "d/cc/d_cc_d.h"
#include "dol2asm.h"
@@ -238,17 +245,6 @@ extern "C" void __register_global_object();
// Declarations:
//
-/* ############################################################################################## */
-/* 8096CB4C-8096CB4C 00022C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8096CB4C = "Blue_NS";
-SECTION_DEAD static char const* const stringBase_8096CB54 = "CHG_YAMI_CHIBI";
-SECTION_DEAD static char const* const stringBase_8096CB63 = "CHG_YAMI_DEBU";
-SECTION_DEAD static char const* const stringBase_8096CB71 = "CHG_YAMI_NOPPO";
-SECTION_DEAD static char const* const stringBase_8096CB80 = "CHG_YAMI_NOPPO_STOPPER";
-#pragma pop
-
/* 8096CBA0-8096CBAC 000000 000C+00 3/3 0/0 0/0 .data cNullVec__6Z2Calc */
SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -268,39 +264,50 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
#pragma pop
/* 8096CBC0-8096CC2C 000020 006C+00 1/1 0/0 0/0 .data l_bckGetParamList */
-SECTION_DATA static u8 l_bckGetParamList[108] = {
- 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C,
- 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+SECTION_DATA static int l_bckGetParamList[9][3] = {
+ {0x0B, 0x02, 0x00}, {0x0C,
+ 0x02, 0x00}, {0x0D, 0x02,
+ 0x00}, {0x08, 0x00, 0x00},
+ {0x09, 0x00, 0x00}, {0x0A,
+ 0x00, 0x00}, {0x05, 0x00,
+ 0x00}, {0x06, 0x00, 0x00},
+ {0x07, 0x00, 0x00},
};
/* 8096CC2C-8096CC30 -00001 0004+00 4/5 0/0 0/0 .data l_arcNames */
-SECTION_DATA static void* l_arcNames = (void*)&d_a_npc_blue_ns__stringBase0;
+static char* l_arcNames[1] = {"Blue_NS"};
/* 8096CC30-8096CC4C -00001 001C+00 0/1 0/0 0/0 .data l_evtNames */
#pragma push
#pragma force_active on
-SECTION_DATA static void* l_evtNames[7] = {
- (void*)NULL,
- (void*)(((char*)&d_a_npc_blue_ns__stringBase0) + 0x8),
- (void*)(((char*)&d_a_npc_blue_ns__stringBase0) + 0x17),
- (void*)(((char*)&d_a_npc_blue_ns__stringBase0) + 0x25),
- (void*)(((char*)&d_a_npc_blue_ns__stringBase0) + 0x34),
- (void*)(((char*)&d_a_npc_blue_ns__stringBase0) + 0x34),
- (void*)(((char*)&d_a_npc_blue_ns__stringBase0) + 0x34),
+static char* l_evtNames[7] = {
+ NULL,
+ "CHG_YAMI_CHIBI",
+ "CHG_YAMI_DEBU",
+ "CHG_YAMI_NOPPO",
+ "CHG_YAMI_NOPPO_STOPPER",
+ "CHG_YAMI_NOPPO_STOPPER",
+ "CHG_YAMI_NOPPO_STOPPER",
};
#pragma pop
/* 8096CC4C-8096CC50 -00001 0004+00 0/2 0/0 0/0 .data l_myName */
#pragma push
#pragma force_active on
-SECTION_DATA static void* l_myName = (void*)&d_a_npc_blue_ns__stringBase0;
+SECTION_DATA static char* l_myName = "Blue_NS";
#pragma pop
+#ifdef NONMATCHING
+daNpcBlueNS_c::EventSeqFunc daNpcBlueNS_c::mEvtSeqList[7] = {
+ &daNpcBlueNS_c::_Evt_ChgYami_Chibi,
+ &daNpcBlueNS_c::_Evt_ChgYami_Debu,
+ &daNpcBlueNS_c::_Evt_ChgYami_Noppo,
+ &daNpcBlueNS_c::_Evt_ChgYami_STNoppo,
+ &daNpcBlueNS_c::_Evt_ChgYami_STNoppo,
+ &daNpcBlueNS_c::_Evt_ChgYami_STNoppo,
+ NULL
+};
+#else
/* 8096CC50-8096CC5C -00001 000C+00 0/1 0/0 0/0 .data @3890 */
#pragma push
#pragma force_active on
@@ -373,6 +380,7 @@ SECTION_DATA u8 daNpcBlueNS_c::mEvtSeqList[84] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
#pragma pop
+#endif
/* 8096CCEC-8096CCF8 -00001 000C+00 1/1 0/0 0/0 .data @4401 */
SECTION_DATA static void* lit_4401[3] = {
@@ -568,6 +576,12 @@ SECTION_DATA extern void* __vt__15daNpcF_Lookat_c[3] = {
};
/* 8096896C-80968AF0 0000EC 0184+00 1/1 0/0 0/0 .text __ct__13daNpcBlueNS_cFv */
+// daNpcF_c constructor needs to not be inlined
+#ifdef NONMATCHING
+daNpcBlueNS_c::daNpcBlueNS_c() {
+
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -576,6 +590,7 @@ asm daNpcBlueNS_c::daNpcBlueNS_c() {
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/__ct__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* 80968AF0-80968B38 000270 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */
#pragma push
@@ -600,6 +615,17 @@ extern "C" asm void __dt__8cM3dGAabFv() {
#pragma pop
/* 80968B80-80968D44 000300 01C4+00 1/0 0/0 0/0 .text __dt__13daNpcBlueNS_cFv */
+// Matches with daNpcF_c
+#ifdef NONMATCHING
+daNpcBlueNS_c::~daNpcBlueNS_c() {
+ for (int i = 0; i < 1; i++) {
+ dComIfG_resDelete(&mPhase[i], l_arcNames[i]);
+ }
+ if (heap != NULL) {
+ mpMorf->stopZelAnime();
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -608,6 +634,7 @@ asm daNpcBlueNS_c::~daNpcBlueNS_c() {
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/__dt__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 8096C920-8096C964 000000 0044+00 8/8 0/0 0/0 .rodata l_cyl_src */
@@ -626,14 +653,13 @@ const static dCcD_SrcCyl l_cyl_src = {
};
/* 8096C964-8096C9D4 000044 0070+00 3/9 0/0 0/0 .rodata m__19daNpcBlueNS_Param_c */
-SECTION_RODATA u8 const daNpcBlueNS_Param_c::m[112] = {
- 0x42, 0x5C, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00,
- 0x43, 0x7F, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x42, 0xD2, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00,
- 0x41, 0xF0, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0xC2, 0x34, 0x00, 0x00,
- 0x3F, 0x19, 0x99, 0x9A, 0x41, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x03, 0x00, 0x06,
- 0x42, 0x70, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00,
- 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00,
+SECTION_RODATA daNpcBlueNS_Param_c::Data const daNpcBlueNS_Param_c::m = {
+ {55.0f, -3.0f, 1.0f, 2000.0f, 255.0f, 300.0f, 35.0f, 105.0f, 0.0f, 0.0f, 10.0f, -10.0f, 30.0f,
+ -10.0f, 45.0f, -45.0, 0.6f, 12.0f},
+ {2, 6, 3, 6},
+ {60.0f, 500.0f, 300.0f, -300.0f},
+ {0x3C, 0, 0, 0},
+ {0.0f, 300.0f},
};
COMPILER_STRIP_GATE(0x8096C964, &daNpcBlueNS_Param_c::m);
@@ -673,14 +699,68 @@ COMPILER_STRIP_GATE(0x8096C9E4, &lit_4269);
#pragma pop
/* 80968D44-80968FE4 0004C4 02A0+00 1/1 0/0 0/0 .text Create__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::Create() {
+// Matches with literals, daNpcF_c and daNpcF_c ctor hack
+#ifdef NONMATCHING
+int daNpcBlueNS_c::Create() {
+ fopAcM_SetupActor(this, daNpcBlueNS_c);
+ field_0xe11 = getType();
+ field_0xde4 = getFlowNodeNo();
+ int rv;
+ for (int i = 0; i < 1; i++) {
+ rv = dComIfG_resLoad(&mPhase[i], l_arcNames[i]);
+ if (rv != cPhs_COMPLEATE_e) {
+ return rv;
+ }
+ }
+ if (rv == cPhs_COMPLEATE_e) {
+ if (fopAcM_entrySolidHeap(this, createHeapCallBack, 0x1f20) == 0) {
+ return cPhs_ERROR_e;
+ }
+ if (isDelete()) {
+ return cPhs_ERROR_e;
+ }
+
+ mTwilight = dKy_darkworld_check();
+ mpMorf->getModel()->getModelData();
+ fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx());
+ fopAcM_setCullSizeFar(this, 3.0f);
+ fopAcM_setCullSizeBox(this, -120.0f, -10.0f, -120.0f, 120.0f, 220.0f, 120.0f);
+ mCreature.init(&current.pos, &eyePos, 3, 1);
+ mAcchCir.SetWall(daNpcBlueNS_Param_c::m.field_0x00[7], daNpcBlueNS_Param_c::m.field_0x00[6]);
+ mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir,
+ fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
+ mAcch.CrrPos(dComIfG_Bgsp());
+ mCcStts.Init(daNpcBlueNS_Param_c::m.field_0x00[4], 0, this);
+ mCyl.Set(l_cyl_src);
+ mCyl.SetStts(&mCcStts);
+ mCyl.SetH(daNpcBlueNS_Param_c::m.field_0x00[5]);
+ mCyl.SetR(daNpcBlueNS_Param_c::m.field_0x00[7]);
+ mGndChk = mAcch.m_gnd;
+ mGroundH = mAcch.GetGroundH();
+ field_0xe10 = 1;
+ field_0xe12 = 0;
+ field_0xdf0 = NULL;
+ field_0xdf4 = NULL;
+ field_0xdf8 = NULL;
+ mYamiActor = NULL;
+ field_0xe00 = 0xffffffff;
+ setEnvTevColor();
+ setRoomNo();
+ reset();
+ Execute();
+ }
+ return rv;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::Create() {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/Create__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 8096C9E8-8096C9EC 0000C8 0004+00 4/6 0/0 0/0 .rodata @4306 */
@@ -692,44 +772,72 @@ SECTION_RODATA static f32 const lit_4307 = -1.0f;
COMPILER_STRIP_GATE(0x8096C9EC, &lit_4307);
/* 80968FE4-80969138 000764 0154+00 1/1 0/0 0/0 .text CreateHeap__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::CreateHeap() {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::CreateHeap() {
+ J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_arcNames[0], 16);
+ JUT_ASSERT(406, 0 != mdlData_p);
+ mpMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mCreature, 0x80000,
+ 0x11000084);
+ if (mpMorf != NULL && mpMorf->getModel() == NULL) {
+ mpMorf->stopZelAnime();
+ mpMorf = NULL;
+ }
+ if (mpMorf == NULL) {
+ return 0;
+ }
+ J3DModel* pModel = mpMorf->getModel();
+ for (u16 i = 0; i < mdlData_p->getJointNum(); i++) {
+ mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack);
+ }
+ pModel->setUserArea((u32)this);
+ setMotion(0, -1.0f, 0);
+ return 1;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::CreateHeap() {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/CreateHeap__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* 80969138-809691A8 0008B8 0070+00 1/1 0/0 0/0 .text isDelete__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::isDelete() {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/isDelete__13daNpcBlueNS_cFv.s"
+int daNpcBlueNS_c::isDelete() {
+ int rv = 0;
+ if (daNpcT_chkEvtBit(0x23a) || fopAcM_isSwitch(this, getSwitchBitNo())) {
+ rv = 1;
+ }
+ return rv;
}
-#pragma pop
/* 809691A8-809691DC 000928 0034+00 1/1 0/0 0/0 .text Delete__13daNpcBlueNS_cFv */
+// Matches with daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::Delete() {
+ fopAcM_GetID(this);
+ this->~daNpcBlueNS_c();
+ return 1;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daNpcBlueNS_c::Delete() {
+asm int daNpcBlueNS_c::Delete() {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/Delete__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* 809691DC-80969200 00095C 0024+00 2/2 0/0 0/0 .text Execute__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::Execute() {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/Execute__13daNpcBlueNS_cFv.s"
+int daNpcBlueNS_c::Execute() {
+ _Execute();
+ return 1;
}
-#pragma pop
/* ############################################################################################## */
/* 8096C9F0-8096C9F4 0000D0 0004+00 0/1 0/0 0/0 .rodata @4392 */
@@ -749,6 +857,52 @@ SECTION_RODATA static u8 const lit_4393[4] = {
COMPILER_STRIP_GATE(0x8096C9F4, &lit_4393);
/* 80969200-80969468 000980 0268+00 1/1 0/0 0/0 .text _Execute__13daNpcBlueNS_cFv */
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+void daNpcBlueNS_c::_Execute() {
+ setParam();
+ if (main()) {
+ fopAcM_posMoveF(this, mCcStts.GetCCMoveP());
+ mAcch.CrrPos(dComIfG_Bgsp());
+ mGndChk = mAcch.m_gnd;
+ mGroundH = mAcch.GetGroundH();
+ }
+ if (mGroundH != -1e9f) {
+ mGroundAngle = daNpcF_getGroundAngle(&mGndChk, mCurAngle.y);
+ setEnvTevColor();
+ setRoomNo();
+ }
+ playAllAnm();
+ adjustShapeAngle();
+ setAttnPos();
+ cLib_chaseF(&mExpressionMorf, 0.0f, 1.0f);
+ setCollisions();
+ if (mTwilight) {
+ attention_info.flags |= 0x400000;
+ if (daNpcF_chkDoBtnEqSpeak(this)) {
+ dComIfGp_setDoStatusForce(0x3b, 0);
+ }
+ }
+ mOldAngle = mCurAngle;
+ mCutType = 0;
+ mOrderSpeakEvt = 0;
+ mOrderNewEvt = 0;
+ field_0x9eb = 0;
+ field_0x9ef = 0;
+ field_0x9f3 = 0;
+ for (int i = 0; i < 5; i++) {
+ if ((mAttnChangeTimer == 0 || mAttnIdx != i) &&
+ mAttnActorTimer[i] != 0) {
+ if (cLib_calcTimer(&mAttnActorTimer[i]) == 0) {
+ mAttnActor[i].remove();
+ }
+ }
+ }
+ if (mDamageTimer != 0) {
+ cLib_calcTimer(&mDamageTimer);
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -757,15 +911,26 @@ asm void daNpcBlueNS_c::_Execute() {
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Execute__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 8096C9F8-8096CA04 0000D8 000C+00 1/1 0/0 0/0 .rodata sCallEvtName$4400 */
-SECTION_RODATA static u8 const sCallEvtName[12] = {
- 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00, 0x06,
+SECTION_RODATA static u16 const sCallEvtName[6] = {
+ 1, 2, 3, 4, 5, 6,
};
COMPILER_STRIP_GATE(0x8096C9F8, &sCallEvtName);
/* 80969468-80969504 000BE8 009C+00 1/1 0/0 0/0 .text callEvt_changeYami__13daNpcBlueNS_cFv */
+#ifdef NONMATCHING
+void daNpcBlueNS_c::callEvt_changeYami() {
+ mCyl.OffCoSetBit();
+ fopAcM_onSwitch(this, getSwitchBitNo());
+ mOrderEvtNo = sCallEvtName[field_0xe11];
+ OS_REPORT("-------mOrderEvtNo = %d\n", mOrderEvtNo);
+ eventInfo.setIdx(1);
+ setAction(&daNpcBlueNS_c::wait);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -774,48 +939,87 @@ asm void daNpcBlueNS_c::callEvt_changeYami() {
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/callEvt_changeYami__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 8096CA04-8096CA0C 0000E4 0006+02 1/1 0/0 0/0 .rodata sNameYami$4420 */
-SECTION_RODATA static u8 const sNameYami[6 + 2 /* padding */] = {
- 0x02,
- 0x3F,
- 0x02,
- 0x3D,
- 0x02,
- 0x3E,
- /* padding */
- 0x00,
- 0x00,
+SECTION_RODATA static s16 const sNameYami[3] = {
+ 0x023F,
+ 0x023D,
+ 0x023E,
};
COMPILER_STRIP_GATE(0x8096CA04, &sNameYami);
/* 80969504-809695F0 000C84 00EC+00 5/5 0/0 0/0 .text create_Yamijin__13daNpcBlueNS_cFi
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::create_Yamijin(int param_0) {
+// Matches with literals
+#ifdef NONMATCHING
+int daNpcBlueNS_c::create_Yamijin(int param_1) {
+ int uVar5 = field_0xe11 / 3;
+ int uVar4 = field_0xe11 % 3;
+ if (uVar5 != 0 && uVar4 != 2) {
+ uVar5 = 0;
+ uVar4 = 2;
+ }
+ int uVar1 = getSwitchBitNo() << 16;
+ u32 parameter;
+ if (param_1 != 0) {
+ parameter = uVar5 | uVar1;
+ } else {
+ parameter = uVar5 | uVar1 | 0x10000000;
+ }
+ cXyz acStack_30(current.pos);
+ csXyz local_44(current.angle);
+ local_44.x = getFlowNodeNo();
+ cXyz cStack_3c(1.0f, 1.0f, 1.0f);
+ return fopAcM_create(
+ sNameYami[uVar4],
+ parameter, &acStack_30, fopAcM_GetRoomNo(this), &local_44, &cStack_3c, 0xffffffff);
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::create_Yamijin(int param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/create_Yamijin__13daNpcBlueNS_cFi.s"
}
#pragma pop
+#endif
/* 809695F0-80969698 000D70 00A8+00 1/1 0/0 0/0 .text col_check__13daNpcBlueNS_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+int daNpcBlueNS_c::col_check() {
+ if (mCyl.ChkTgHit()) {
+ cCcD_Obj* tgHitObj = mCyl.GetTgHitObj();
+ if (tgHitObj != NULL && tgHitObj->ChkAtType(AT_TYPE_NORMAL_SWORD)) {
+ if (mCyl.GetTgHitGObj()->GetAtMtrl() == dCcD_MTRL_LIGHT) {
+ OS_REPORT("---------------HIT LIGHTNING SWORD!!\n");
+ lightsowrdSE();
+ return 1;
+ }
+ }
+ setAction(&daNpcBlueNS_c::down);
+ }
+ return 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
-asm void daNpcBlueNS_c::col_check() {
+asm int daNpcBlueNS_c::col_check() {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/col_check__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 8096CA0C-8096CA10 0000EC 0004+00 0/1 0/0 0/0 .rodata @4524 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u32 const lit_4524 = 0x4378C198;
+SECTION_RODATA static f32 const lit_4524 = 248.75623f;
COMPILER_STRIP_GATE(0x8096CA0C, &lit_4524);
#pragma pop
@@ -829,7 +1033,7 @@ COMPILER_STRIP_GATE(0x8096CA10, &lit_4525);
/* 8096CA14-8096CA18 0000F4 0004+00 0/1 0/0 0/0 .rodata @4526 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u32 const lit_4526 = 0x45A7C1BD;
+SECTION_RODATA static f32 const lit_4526 = 5368.2173f;
COMPILER_STRIP_GATE(0x8096CA14, &lit_4526);
#pragma pop
@@ -876,14 +1080,47 @@ COMPILER_STRIP_GATE(0x8096CA34, &lit_4531);
/* 80969698-80969870 000E18 01D8+00 1/1 0/0 0/0 .text
* holyball_check_main__13daNpcBlueNS_cFP10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::holyball_check_main(fopAc_ac_c* param_0) {
+// Matches with literals
+#ifdef NONMATCHING
+int daNpcBlueNS_c::holyball_check_main(fopAc_ac_c* param_1) {
+ if (param_1 == NULL) {
+ return 0;
+ }
+ if (!fopAcM_checkCarryNow(param_1)) {
+ return 0;
+ }
+
+ f32 dVar9;
+ f32 dVar8;
+ switch(field_0xe11) {
+ case 5:
+ cXyz cStack_4c(248.75623f, 800.0f, 5368.2173f);
+ cXyz cStack_58 = *fopAcM_GetPosition_p(param_1) - cStack_4c;
+ dVar8 = cStack_58.absXZ();
+ dVar9 = 740.0f;
+ break;
+ case 3:
+ case 4:
+ dVar8 = fopAcM_searchActorDistanceXZ(this, param_1);
+ dVar9 = 1000.0f;
+ break;
+ default:
+ dVar8 = fopAcM_searchActorDistanceXZ(this, param_1);
+ dVar9 = daNpcBlueNS_Param_c::m.field_0x68[1];
+ break;
+ }
+ return dVar8 <= dVar9;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::holyball_check_main(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/holyball_check_main__13daNpcBlueNS_cFP10fopAc_ac_c.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 8096CA38-8096CA3C 000118 0004+00 0/1 0/0 0/0 .rodata @4570 */
@@ -894,14 +1131,47 @@ COMPILER_STRIP_GATE(0x8096CA38, &lit_4570);
#pragma pop
/* 80969870-809699D0 000FF0 0160+00 1/1 0/0 0/0 .text Draw__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::Draw() {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::Draw() {
+ if (field_0xe10 == 0) {
+ return 1;
+ }
+ J3DModel* morfModel = mpMorf->getModel();
+ morfModel->getModelData();
+ tevStr.mFogColor.r = 0;
+ tevStr.mFogColor.g = 0;
+ tevStr.mFogColor.b = 0;
+ tevStr.mFogColor.a = 0;
+ if (mTwilight) {
+ g_env_light.settingTevStruct(2, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(morfModel, &tevStr);
+ dComIfGd_setListDark();
+ mpMorf->entryDL();
+ dComIfGd_setList();
+ } else {
+ g_env_light.settingTevStruct(2, &current.pos, &tevStr);
+ g_env_light.setLightTevColorType_MAJI(morfModel, &tevStr);
+ mpMorf->entryDL();
+ }
+ dDlst_shadowControl_c::getSimpleTex();
+ mShadowKey = dComIfGd_setShadow(
+ mShadowKey, 1, morfModel, &current.pos,
+ daNpcBlueNS_Param_c::m.field_0x00[3], 20.0f,
+ current.pos.y, mGroundH,
+ mGndChk, &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex());
+ return 1;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::Draw() {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/Draw__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 8096CA3C-8096CA48 00011C 000C+00 1/1 0/0 0/0 .rodata @4574 */
@@ -912,38 +1182,77 @@ COMPILER_STRIP_GATE(0x8096CA3C, &lit_4574);
/* 809699D0-80969B68 001150 0198+00 1/1 0/0 0/0 .text
* ctrlJoint__13daNpcBlueNS_cFP8J3DJointP8J3DModel */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::ctrlJoint(J3DJoint* param_1, J3DModel* param_2) {
+ int jointNo = param_1->getJntNo();
+ int lit_4574[3] = {1,3,4};
+
+ if (jointNo == 0) {
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[0]);
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[1]);
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(4));
+ mDoMtx_stack_c::multVecZero(&mLookatPos[2]);
+ }
+ mDoMtx_stack_c::copy(param_2->getAnmMtx(jointNo));
+ switch(jointNo) {
+ case 1:
+ case 3:
+ case 4:
+ setLookatMtx(jointNo, lit_4574, daNpcBlueNS_Param_c::m.field_0x00[16]);
+ break;
+ }
+ param_2->setAnmMtx(jointNo, mDoMtx_stack_c::get());
+ cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
+ return 1;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/ctrlJoint__13daNpcBlueNS_cFP8J3DJointP8J3DModel.s"
}
#pragma pop
+#endif
/* 80969B68-80969B88 0012E8 0020+00 1/1 0/0 0/0 .text
* createHeapCallBack__13daNpcBlueNS_cFP10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::createHeapCallBack(fopAc_ac_c* param_0) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/createHeapCallBack__13daNpcBlueNS_cFP10fopAc_ac_c.s"
+int daNpcBlueNS_c::createHeapCallBack(fopAc_ac_c* i_this) {
+ return static_cast<daNpcBlueNS_c*>(i_this)->CreateHeap();
}
-#pragma pop
/* 80969B88-80969BD4 001308 004C+00 1/1 0/0 0/0 .text
* ctrlJointCallBack__13daNpcBlueNS_cFP8J3DJointi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/ctrlJointCallBack__13daNpcBlueNS_cFP8J3DJointi.s"
+int daNpcBlueNS_c::ctrlJointCallBack(J3DJoint* param_1, int param_2) {
+ if (param_2 == 0) {
+ J3DModel* model = j3dSys.getModel();
+ daNpcBlueNS_c* i_this = (daNpcBlueNS_c*)model->getUserArea();
+ if (i_this != NULL) {
+ i_this->ctrlJoint(param_1, model);
+ }
+ }
+ return 1;
}
-#pragma pop
/* 80969BD4-80969C48 001354 0074+00 1/0 0/0 0/0 .text setParam__13daNpcBlueNS_cFv */
+// Matches with daNpcF_c
+#ifdef NONMATCHING
+void daNpcBlueNS_c::setParam() {
+ srchActor();
+ attention_info.distances[0] = getDistTableIdx(
+ daNpcBlueNS_Param_c::m.field_0x48[2],
+ daNpcBlueNS_Param_c::m.field_0x48[3]);
+ attention_info.distances[1] = attention_info.distances[0];
+ attention_info.distances[3] = getDistTableIdx(
+ daNpcBlueNS_Param_c::m.field_0x48[0],
+ daNpcBlueNS_Param_c::m.field_0x48[1]);
+ attention_info.flags = 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -952,77 +1261,120 @@ asm void daNpcBlueNS_c::setParam() {
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setParam__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* 80969C48-80969C90 0013C8 0048+00 1/1 0/0 0/0 .text srchActor__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::srchActor() {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchActor__13daNpcBlueNS_cFv.s"
+void daNpcBlueNS_c::srchActor() {
+ srchHollyBall();
+ switch (field_0xe11) {
+ case 4:
+ break;
+ case 5:
+ srchTagYami();
+ break;
+ }
}
-#pragma pop
/* 80969C90-80969CF8 001410 0068+00 1/1 0/0 0/0 .text srchHollyBall__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::srchHollyBall() {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchHollyBall__13daNpcBlueNS_cFv.s"
+void daNpcBlueNS_c::srchHollyBall() {
+ if (field_0xdf0 == NULL) {
+ field_0xdf0 = (fopAc_ac_c*)fpcM_Search(&daNpcBlueNS_c::_search_HollyBall_Y, this);
+ }
+ if (field_0xdf4 == NULL) {
+ field_0xdf4 = (fopAc_ac_c*)fpcM_Search(&daNpcBlueNS_c::_search_HollyBall_G, this);
+ }
}
-#pragma pop
/* 80969CF8-80969D60 001478 0068+00 1/1 0/0 0/0 .text srchTagYami__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::srchTagYami() {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/srchTagYami__13daNpcBlueNS_cFv.s"
+void daNpcBlueNS_c::srchTagYami() {
+ if (field_0xdf8 == NULL) {
+ field_0xdf8 = (daTagYami_c*)fpcM_Search(_search_Tag, this);
+ if (field_0xdf8 != NULL) {
+ field_0xdf8->off_CoHit();
+ }
+ }
}
-#pragma pop
/* 80969D60-80969DE4 0014E0 0084+00 1/1 0/0 0/0 .text _search_Tag__13daNpcBlueNS_cFPvPv
*/
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_search_Tag(void* param_0, void* param_1) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_Tag__13daNpcBlueNS_cFPvPv.s"
+void* daNpcBlueNS_c::_search_Tag(void* param_1, void* param_2) {
+ if (!fopAcM_IsActor(param_1)) {
+ return NULL;
+ }
+ if (fopAcM_GetName(param_1) == PROC_TAG_YAMI &&
+ static_cast<daNpcBlueNS_c*>(param_2)->_chk_TagPrm((fopAc_ac_c*)param_1))
+ {
+ return param_1;
+ }
+
+ return NULL;
}
-#pragma pop
/* 80969DE4-80969E9C 001564 00B8+00 1/1 0/0 0/0 .text _search_HollyBall_Y__13daNpcBlueNS_cFPvPv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_search_HollyBall_Y(void* param_0, void* param_1) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_HollyBall_Y__13daNpcBlueNS_cFPvPv.s"
+void* daNpcBlueNS_c::_search_HollyBall_Y(void* param_1, void* param_2) {
+ if (!fopAcM_IsActor(param_1)) {
+ return NULL;
+ }
+ if (fpcM_IsCreating(fopAcM_GetID(param_1))) {
+ return NULL;
+ }
+ if (fopAcM_GetName(param_1) != PROC_Obj_Carry) {
+ return NULL;
+ }
+ if (!static_cast<daObjCarry_c*>(param_1)->prm_chk_type_lightball()) {
+ return NULL;
+ }
+ if (static_cast<daObjCarry_c*>(param_1)->getType() != daObjCarry_c::TYPE_BALL_S) {
+ return NULL;
+ }
+ return param_1;
}
-#pragma pop
/* 80969E9C-80969F54 00161C 00B8+00 1/1 0/0 0/0 .text _search_HollyBall_G__13daNpcBlueNS_cFPvPv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_search_HollyBall_G(void* param_0, void* param_1) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_search_HollyBall_G__13daNpcBlueNS_cFPvPv.s"
+void* daNpcBlueNS_c::_search_HollyBall_G(void* param_1, void* param_2) {
+ if (!fopAcM_IsActor(param_1)) {
+ return NULL;
+ }
+ if (fpcM_IsCreating(fopAcM_GetID(param_1))) {
+ return NULL;
+ }
+ if (fopAcM_GetName(param_1) != PROC_Obj_Carry) {
+ return NULL;
+ }
+ if (!static_cast<daObjCarry_c*>(param_1)->prm_chk_type_lightball()) {
+ return NULL;
+ }
+ if (static_cast<daObjCarry_c*>(param_1)->getType() != daObjCarry_c::TYPE_BALL_S_2) {
+ return NULL;
+ }
+ return param_1;
}
-#pragma pop
/* 80969F54-8096A090 0016D4 013C+00 1/0 0/0 0/0 .text main__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::main() {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/main__13daNpcBlueNS_cFv.s"
+BOOL daNpcBlueNS_c::main() {
+ if (fopAcM_isSwitch(this, 0x58)) {
+ field_0xe00 = create_Yamijin(1);
+ fopAcM_onSwitch(this, getSwitchBitNo());
+ fopAcM_delete(this);
+ } else {
+ if (field_0xdc4) {
+ (this->*field_0xdc4)(0);
+ }
+ if (col_check()) {
+ if (field_0xe12 == 0) {
+ callEvt_changeYami();
+ field_0xe12 = 1;
+ }
+ } else {
+ if (field_0xe12 == 0 && holyball_check()) {
+ callEvt_changeYami();
+ field_0xe12 = 1;
+ }
+ }
+ playMotion();
+ }
+ return 0;
}
-#pragma pop
/* ############################################################################################## */
/* 8096CA48-8096CA4C 000128 0004+00 0/1 0/0 0/0 .rodata @4846 */
@@ -1037,6 +1389,35 @@ SECTION_RODATA static f32 const lit_4847 = 15.0f;
COMPILER_STRIP_GATE(0x8096CA4C, &lit_4847);
/* 8096A090-8096A238 001810 01A8+00 1/0 0/0 0/0 .text setAttnPos__13daNpcBlueNS_cFv */
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+void daNpcBlueNS_c::setAttnPos() {
+ if (mLookMode == 1) {
+ for (int i = 0; i < 3; i++) {
+ mLookatAngle[i].setall(0);
+ }
+ }
+ daNpcF_c::setMtx();
+ lookat();
+ cXyz local_1c(10.0f, 15.0f, 0.0f);
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(4));
+ mDoMtx_stack_c::multVecZero(&mHeadPos);
+ mDoMtx_stack_c::multVec(&local_1c, &eyePos);
+ local_1c.x = 0.0f;
+ mDoMtx_stack_c::multVec(&local_1c, &local_1c);
+ mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &local_1c);
+ mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &local_1c);
+ attention_info.position.set(mHeadPos.x,
+ mHeadPos.y + daNpcBlueNS_Param_c::m.field_0x00[0],
+ mHeadPos.z);
+ cXyz cStack_28;
+ mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1));
+ mDoMtx_stack_c::multVecZero(&cStack_28);
+ cStack_28.y = current.pos.y;
+ mCyl.SetC(cStack_28);
+ dComIfG_Ccsp()->Set(&mCyl);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1045,8 +1426,25 @@ asm void daNpcBlueNS_c::setAttnPos() {
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setAttnPos__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* 8096A238-8096A308 0019B8 00D0+00 1/0 0/0 0/0 .text setMotionAnm__13daNpcBlueNS_cFif */
+// Matches with daNpcF_c
+#ifdef NONMATCHING
+void daNpcBlueNS_c::setMotionAnm(int param_1, f32 param_2) {
+ J3DAnmTransformKey* transfrm = getTrnsfrmKeyAnmP(
+ l_arcNames[l_bckGetParamList[param_1][2]],
+ l_bckGetParamList[param_1][0]);
+ int iVar2 = l_bckGetParamList[param_1][1];
+ mAnmFlags &= ~(ANM_PAUSE_MORF | ANM_PLAY_MORF);
+ if (transfrm != NULL &&
+ setMcaMorfAnm(transfrm, 1.0f, param_2, iVar2, 0, -1))
+ {
+ mAnmFlags |= ANM_PAUSE_MORF | ANM_PLAY_MORF;
+ mMotionLoops = 0;
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1055,8 +1453,22 @@ asm void daNpcBlueNS_c::setMotionAnm(int param_0, f32 param_1) {
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setMotionAnm__13daNpcBlueNS_cFif.s"
}
#pragma pop
+#endif
/* 8096A308-8096A350 001A88 0048+00 1/0 0/0 0/0 .text setMotion__13daNpcBlueNS_cFifi */
+// Matches with daNpcF_c
+#ifdef NONMATCHING
+void daNpcBlueNS_c::setMotion(int motion, f32 motionMorfOverride, int param_3) {
+ s16 hMotion = motion;
+ if ((param_3 != 0 || mMotion != hMotion) && motion >= 0 && motion < 9) {
+ mMotion = hMotion;
+ mMotionMorfOverride = motionMorfOverride;
+ mMotionPrevPhase = 0xffff;
+ mMotionPhase = 0;
+ field_0xdea = 0;
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1065,18 +1477,19 @@ asm void daNpcBlueNS_c::setMotion(int param_0, f32 param_1, int param_2) {
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setMotion__13daNpcBlueNS_cFifi.s"
}
#pragma pop
+#endif
/* 8096A350-8096A358 001AD0 0008+00 1/0 0/0 0/0 .text drawDbgInfo__13daNpcBlueNS_cFv */
-bool daNpcBlueNS_c::drawDbgInfo() {
- return false;
+BOOL daNpcBlueNS_c::drawDbgInfo() {
+ return FALSE;
}
/* ############################################################################################## */
/* 8096CA50-8096CA5C 000130 000C+00 0/1 0/0 0/0 .rodata sWaitAnm$4874 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const sWaitAnm[12] = {
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+SECTION_RODATA static int const sWaitAnm[3] = {
+ 1, 0, 2,
};
COMPILER_STRIP_GATE(0x8096CA50, &sWaitAnm);
#pragma pop
@@ -1084,8 +1497,8 @@ COMPILER_STRIP_GATE(0x8096CA50, &sWaitAnm);
/* 8096CA5C-8096CA68 00013C 000C+00 0/1 0/0 0/0 .rodata sDamageAnm$4875 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const sDamageAnm[12] = {
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x05,
+SECTION_RODATA static int const sDamageAnm[3] = {
+ 4, 3, 5,
};
COMPILER_STRIP_GATE(0x8096CA5C, &sDamageAnm);
#pragma pop
@@ -1093,13 +1506,48 @@ COMPILER_STRIP_GATE(0x8096CA5C, &sDamageAnm);
/* 8096CA68-8096CA74 000148 000C+00 0/1 0/0 0/0 .rodata sAppearAnm$4876 */
#pragma push
#pragma force_active on
-SECTION_RODATA static u8 const sAppearAnm[12] = {
- 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08,
+SECTION_RODATA static int const sAppearAnm[3] = {
+ 7, 6, 8,
};
COMPILER_STRIP_GATE(0x8096CA68, &sAppearAnm);
#pragma pop
/* 8096A358-8096A518 001AD8 01C0+00 1/1 0/0 0/0 .text reset__13daNpcBlueNS_cFv */
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+void daNpcBlueNS_c::reset() {
+ int uVar2 = field_0xe11 % 3;
+ if (field_0xe11 / 3 != 0) {
+ uVar2 = 2;
+ }
+ field_0xe04 = sWaitAnm[uVar2];
+ field_0xe08 = sDamageAnm[uVar2];
+ field_0xe0c = sAppearAnm[uVar2];
+ initialize();
+ mLookAt.initialize();
+ for (int i = 0; i < 1; i++) {
+ mActorMngrs[i].initialize();
+ }
+ field_0xddc = 0;
+ field_0xde0 = 0;
+ field_0xdc4 = 0;
+ mLookMode = -1;
+ field_0xdc0 = 0;
+ current.pos.set(home.pos);
+ old.pos.set(current.pos);
+ current.angle.set(0, home.angle.y, 0);
+ old.angle = current.angle;
+ shape_angle = current.angle;
+ mCurAngle = current.angle;
+ mOldAngle = mCurAngle;
+ speedF = 0;
+ speed.setall(0.0f);
+ field_0xdd8 = -1;
+ mOrderEvtNo = 0;
+ setAction(&daNpcBlueNS_c::wait);
+ mMotionMorfOverride = 0;
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1108,6 +1556,7 @@ asm void daNpcBlueNS_c::reset() {
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/reset__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 8096CA74-8096CA80 000154 000C+00 0/1 0/0 0/0 .rodata @4908 */
@@ -1300,6 +1749,36 @@ COMPILER_STRIP_GATE(0x8096CB00, &lit_4925);
#pragma pop
/* 8096A518-8096A750 001C98 0238+00 1/1 0/0 0/0 .text playMotion__13daNpcBlueNS_cFv */
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+void daNpcBlueNS_c::playMotion() {
+ daNpcF_anmPlayData dat0 = {0, 0.0f, 0};
+ daNpcF_anmPlayData* pDat0[1] = {&dat0};
+ daNpcF_anmPlayData dat1a = {1, 0.0f, 0};
+ daNpcF_anmPlayData* pDat1[1] = {&dat1a};
+ daNpcF_anmPlayData dat2a = {2, 0.0f, 0};
+ daNpcF_anmPlayData* pDat2[1] = {&dat2a};
+ daNpcF_anmPlayData dat3a = {3, 0.0f, 0};
+ daNpcF_anmPlayData* pDat3[1] = {&dat3a};
+ daNpcF_anmPlayData dat4a = {4, 0.0f, 0};
+ daNpcF_anmPlayData* pDat4[1] = {&dat4a};
+ daNpcF_anmPlayData dat5a = {5, 0.0f, 0};
+ daNpcF_anmPlayData* pDat5[1] = {&dat5a};
+ daNpcF_anmPlayData dat6a = {6, daNpcBlueNS_Param_c::m.field_0x00[17], 0};
+ daNpcF_anmPlayData* pDat6[1] = {&dat6a};
+ daNpcF_anmPlayData dat7 = {7, daNpcBlueNS_Param_c::m.field_0x00[17], 0};
+ daNpcF_anmPlayData* pDat7[1] = {&dat7};
+ daNpcF_anmPlayData dat8 = {8, daNpcBlueNS_Param_c::m.field_0x00[17], 0};
+ daNpcF_anmPlayData* pDat8[1] = {&dat8};
+ daNpcF_anmPlayData** ppDat[9] = {
+ pDat0, pDat1, pDat2, pDat3, pDat4, pDat5, pDat6, pDat7, pDat8,
+ };
+ if (mMotion >= 0 && mMotion < 9) {
+ field_0xdea = mMotionPhase;
+ playMotionAnm(ppDat);
+ }
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1308,27 +1787,29 @@ asm void daNpcBlueNS_c::playMotion() {
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/playMotion__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* 8096A750-8096A7F8 001ED0 00A8+00 7/7 0/0 0/0 .text
* setAction__13daNpcBlueNS_cFM13daNpcBlueNS_cFPCvPvi_i */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::setAction(int (daNpcBlueNS_c::*param_0)(int)) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setAction__13daNpcBlueNS_cFM13daNpcBlueNS_cFPCvPvi_i.s"
+int daNpcBlueNS_c::setAction(ActionFunc param_1) {
+ field_0xdc0 = 3;
+ if (field_0xdc4) {
+ (this->*field_0xdc4)(0);
+ }
+ field_0xdc0 = 0;
+ field_0xdc4 = param_1;
+ if (field_0xdc4) {
+ (this->*field_0xdc4)(0);
+ }
+ return 1;
}
-#pragma pop
/* 8096A7F8-8096A81C 001F78 0024+00 1/1 0/0 0/0 .text setLookMode__13daNpcBlueNS_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::setLookMode(int param_0) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/setLookMode__13daNpcBlueNS_cFi.s"
+void daNpcBlueNS_c::setLookMode(int lookMode) {
+ if (lookMode >= 0 && lookMode < 4 && lookMode != mLookMode) {
+ mLookMode = lookMode;
+ }
}
-#pragma pop
/* ############################################################################################## */
/* 8096CB04-8096CB28 0001E4 0024+00 0/0 0/0 0/0 .rodata @4926 */
@@ -1373,6 +1854,60 @@ COMPILER_STRIP_GATE(0x8096CB3C, &lit_5006);
#pragma pop
/* 8096A81C-8096A9FC 001F9C 01E0+00 1/1 0/0 0/0 .text lookat__13daNpcBlueNS_cFv */
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+void daNpcBlueNS_c::lookat() {
+ daPy_py_c* player = NULL;
+ J3DModel* morfModel = mpMorf->getModel();
+ int iVar9 = 0;
+ f32 dVar15 = daNpcBlueNS_Param_c::m.field_0x00[9];
+ f32 dVar14 = daNpcBlueNS_Param_c::m.field_0x00[8];
+ f32 dVar13 = daNpcBlueNS_Param_c::m.field_0x00[11];
+ f32 dVar12 = daNpcBlueNS_Param_c::m.field_0x00[10];
+ f32 dVar7 = daNpcBlueNS_Param_c::m.field_0x00[13];
+ f32 dVar8 = daNpcBlueNS_Param_c::m.field_0x00[12];
+ f32 dVar9 = daNpcBlueNS_Param_c::m.field_0x00[15];
+ f32 dVar10 = daNpcBlueNS_Param_c::m.field_0x00[14];
+ s16 angleDiff = mCurAngle.y - mOldAngle.y;
+ cXyz cStack_b8;
+ cXyz cStack_c4;
+ cXyz cStack_d0;
+ cStack_d0 = mLookatPos[0];
+ cStack_c4 = mLookatPos[1];
+ cStack_b8 = mLookatPos[2];
+ csXyz* local_dc[3] = {&mLookatAngle[0], &mLookatAngle[1], &mLookatAngle[2]};
+ cXyz cStack_e8;
+
+ switch (mLookMode) {
+ case LOOK_AT_0:
+ break;
+ case LOOK_AT_1:
+ iVar9 = 1;
+ break;
+ case LOOK_AT_2:
+ case LOOK_AT_3:
+ player = daPy_getPlayerActorClass();
+ if (mLookMode == LOOK_AT_3) {
+ dVar9 = -80.0f;
+ dVar10 = 80.0f;
+ }
+ break;
+ }
+
+ if (player != NULL) {
+ mLookPos = player->attention_info.position;
+ if (mLookMode != LOOK_AT_2 && mLookMode != LOOK_AT_3) {
+ mLookPos.y -= 40.0f;
+ }
+ mLookAt.setAttnPos(&mLookPos);
+ } else {
+ mLookAt.setAttnPos(NULL);
+ }
+ mLookAt.setParam(dVar15, dVar14, dVar13, dVar12, 0.0f, 0.0, 0.0f, 0.0f, dVar7, dVar8, dVar9,
+ dVar10, mCurAngle.y, &cStack_d0);
+ mLookAt.calc(this, morfModel->getBaseTRMtx(), local_dc, iVar9, angleDiff, 0);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1381,75 +1916,312 @@ asm void daNpcBlueNS_c::lookat() {
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/lookat__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* 8096A9FC-8096AAF0 00217C 00F4+00 1/1 0/0 0/0 .text step__13daNpcBlueNS_cFsi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::step(s16 param_0, int param_1) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::step(s16 param_1, int param_2) {
+ if (mTurnMode == 0) {
+ mTurnTargetAngle = param_1;
+ mTurnAmount = 0;
+ if (mCurAngle.y == mTurnTargetAngle) {
+ mTurnMode++;
+ }
+ current.angle.y = mCurAngle.y;
+ shape_angle.y = current.angle.y;
+ mTurnMode++;
+ } else if (mTurnMode == 1) {
+ if (turn(mTurnTargetAngle, 15.0f, 0)) {
+ shape_angle.y = current.angle.y;
+ mCurAngle.y = current.angle.y;
+ mOldAngle.y = current.angle.y;
+ mTurnMode++;
+ } else {
+ shape_angle.y = current.angle.y;
+ mCurAngle.y = current.angle.y;
+ }
+ }
+ return mTurnMode > 1;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::step(s16 param_0, int param_1) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/step__13daNpcBlueNS_cFsi.s"
}
#pragma pop
+#endif
/* 8096AAF0-8096ABD4 002270 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::chkFindPlayer() {
+// Matches with daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::chkFindPlayer() {
+ if (!chkActorInSight(daPy_getPlayerActorClass(),
+ daNpcBlueNS_Param_c::m.field_0x50[0])) {
+ mActorMngrs[0].remove();
+ return 0;
+ }
+ fopAc_ac_c* actor = mActorMngrs[0].getActorP();
+ bool inArea;
+ if (actor == NULL) {
+ inArea = chkPlayerInSpeakArea(this);
+ } else {
+ inArea = chkPlayerInTalkArea(this);
+ }
+ if (inArea) {
+ mActorMngrs[0].entry(daPy_getPlayerActorClass());
+ } else {
+ mActorMngrs[0].remove();
+ }
+ return inArea;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::chkFindPlayer() {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/chkFindPlayer__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* 8096ABD4-8096AD70 002354 019C+00 6/0 0/0 0/0 .text wait__13daNpcBlueNS_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::wait(int param_0) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::wait(int param_1) {
+ switch (field_0xdc0) {
+ case 0:
+ setMotion(field_0xe04, -1.0f, 0);
+ speedF = 0.0f;
+ field_0xdc0 = 2;
+ break;
+ case 2:
+ chkFindPlayer();
+ if (dComIfGp_event_runCheck()) {
+ if (eventInfo.checkCommandTalk()) {
+ if (!dComIfGp_event_chkTalkXY() ||
+ dComIfGp_evmng_ChkPresentEnd())
+ {
+ setAction(&daNpcBlueNS_c::wait);
+ }
+ } else {
+ if (dComIfGp_getEventManager().getMyStaffId(l_myName, this, 0) != -1) {
+ setAction(&daNpcBlueNS_c::demo);
+ }
+ }
+ } else {
+ if (mOrderEvtNo != 0) {
+ eventInfo.setArchiveName(l_arcNames[0]);
+ }
+ orderEvent(field_0xdec, l_evtNames[mOrderEvtNo], 0xffff, 4, 0xff, 2);
+ }
+ break;
+ case 1:
+ case 3:
+ default:
+ break;
+ }
+ return 1;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::wait(int param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/wait__13daNpcBlueNS_cFi.s"
}
#pragma pop
+#endif
/* 8096AD70-8096AE5C 0024F0 00EC+00 1/0 0/0 0/0 .text down__13daNpcBlueNS_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::down(int param_0) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::down(int param_1) {
+ switch (field_0xdc0) {
+ case 0:
+ setMotion(field_0xe08, -1.0f, 0);
+ speedF = 0.0f;
+ downSE();
+ field_0xdc0 = 2;
+ break;
+ case 2:
+ if (mpMorf->isStop()) {
+ setAction(&daNpcBlueNS_c::wait);
+ }
+ break;
+ case 1:
+ case 3:
+ default:
+ break;
+ }
+ return 1;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::down(int param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/down__13daNpcBlueNS_cFi.s"
}
#pragma pop
+#endif
/* 8096AE5C-8096AFC8 0025DC 016C+00 1/0 0/0 0/0 .text talk__13daNpcBlueNS_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::talk(int param_0) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::talk(int param_1) {
+ bool rv = false;
+ switch (field_0xdc0) {
+ case 0:
+ initTalk(field_0xde4, NULL);
+ mMsgTimer = 0;
+ field_0xdec = 0;
+ setLookMode(LOOK_AT_3);
+ field_0xdc0 = 2;
+ break;
+ case 2:
+ if (mCurAngle.y == fopAcM_searchPlayerAngleY(this)) {
+ if (talkProc(NULL, 1, NULL)) {
+ mActorMngrs[0].entry(daPy_getPlayerActorClass());
+ int local_38 = 0;
+ mFlow.getEventId(&local_38);
+ setAction(&daNpcBlueNS_c::wait);
+ rv = true;
+ }
+ } else {
+ if (step(fopAcM_searchPlayerAngleY(this), 1)) {
+ mTurnMode = 0;
+ }
+ }
+ break;
+ case 3:
+ if (!field_0x9ec) {
+ dComIfGp_event_reset();
+ }
+ break;
+ }
+ return rv;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::talk(int param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/talk__13daNpcBlueNS_cFi.s"
}
#pragma pop
+#endif
/* 8096AFC8-8096B204 002748 023C+00 1/0 0/0 0/0 .text demo__13daNpcBlueNS_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::demo(int param_0) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::demo(int param_1) {
+ switch (field_0xdc0) {
+ case 0:
+ setMotion(field_0xe04, -1.0f, 0);
+ field_0xdc0 = 2;
+ break;
+ case 2:
+ if (g_dComIfG_gameInfo.play.getEvent().mEventStatus != 0 && !eventInfo.checkCommandTalk()) {
+ dEvent_manager_c& evtMgr = dComIfGp_getEventManager();
+ int staffId = evtMgr.getMyStaffId(l_myName, this, 0);
+ if (staffId != -1) {
+ mStaffID = staffId;
+ JUT_ASSERT(2043, 0 != mEvtSeqList[mOrderEvtNo]);
+ if ((this->*mEvtSeqList[mOrderEvtNo])(staffId)) {
+ evtMgr.cutEnd(staffId);
+ }
+ }
+ if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && evtMgr.endCheck(mEventIdx))
+ {
+ switch (mOrderEvtNo) {
+ case 4:
+ dComIfGp_event_reset();
+ mOrderEvtNo = 0;
+ mEventIdx = -1;
+ eventInfo.setIdx(0);
+ fopAcM_delete(this);
+ break;
+ case 5:
+ dComIfGp_event_reset();
+ mOrderEvtNo = 0;
+ mEventIdx = -1;
+ eventInfo.setIdx(0);
+ fopAcM_delete(this);
+ break;
+ case 6:
+ dComIfGp_event_reset();
+ mOrderEvtNo = 0;
+ mEventIdx = -1;
+ eventInfo.setIdx(0);
+ fopAcM_delete(this);
+ break;
+ case 1:
+ case 2:
+ case 3:
+ dComIfGp_event_reset();
+ mOrderEvtNo = 0;
+ mEventIdx = -1;
+ eventInfo.setIdx(0);
+ fopAcM_delete(this);
+ break;
+ default:
+ dComIfGp_event_reset();
+ mOrderEvtNo = 0;
+ mEventIdx = -1;
+ eventInfo.setIdx(0);
+ setAction(&daNpcBlueNS_c::wait);
+ break;
+ }
+ }
+ }
+ break;
+ case 1:
+ case 3:
+ default:
+ break;
+ }
+ return 1;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::demo(int param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/demo__13daNpcBlueNS_cFi.s"
}
#pragma pop
+#endif
/* ############################################################################################## */
/* 8096CB40-8096CB4C 000220 000C+00 1/1 0/0 0/0 .rodata ptclOffsetY$5218 */
-SECTION_RODATA static u8 const ptclOffsetY[12] = {
- 0x00, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00,
+SECTION_RODATA static f32 const ptclOffsetY[3] = {
+ 0, 20.0f, 50.0f,
};
COMPILER_STRIP_GATE(0x8096CB40, &ptclOffsetY);
/* 8096B204-8096B320 002984 011C+00 4/4 0/0 0/0 .text ChgPtclDisp__13daNpcBlueNS_cFv */
+// Matches with literals
+#ifdef NONMATCHING
+void daNpcBlueNS_c::ChgPtclDisp() {
+ int idx = field_0xe11 % 3;
+ if (field_0xe11 / 3 != 0) {
+ idx = 2;
+ }
+ cXyz acStack_28;
+ acStack_28.set(current.pos.x, current.pos.y + ptclOffsetY[idx], current.pos.z);
+ dComIfGp_particle_set(0x8a71, &acStack_28, &tevStr, &shape_angle, NULL);
+ dComIfGp_particle_set(0x8a72, &acStack_28, &tevStr, &shape_angle, NULL);
+}
+#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1458,215 +2230,465 @@ asm void daNpcBlueNS_c::ChgPtclDisp() {
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/ChgPtclDisp__13daNpcBlueNS_cFv.s"
}
#pragma pop
+#endif
/* 8096B320-8096B3D8 002AA0 00B8+00 1/1 0/0 0/0 .text downSE__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::downSE() {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/downSE__13daNpcBlueNS_cFv.s"
+void daNpcBlueNS_c::downSE() {
+ switch (field_0xe11) {
+ case 0:
+ mCreature.startCreatureVoice(Z2SE_YAMI_CUT_S, -1);
+ break;
+ case 1:
+ mCreature.startCreatureVoice(Z2SE_YAMI_CUT_D, -1);
+ break;
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ mCreature.startCreatureVoice(Z2SE_YAMI_CUT_T, -1);
+ break;
+ }
}
-#pragma pop
/* 8096B3D8-8096B490 002B58 00B8+00 1/1 0/0 0/0 .text lightsowrdSE__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::lightsowrdSE() {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/lightsowrdSE__13daNpcBlueNS_cFv.s"
+void daNpcBlueNS_c::lightsowrdSE() {
+ switch (field_0xe11) {
+ case 0:
+ mCreature.startCreatureVoice(Z2SE_YAMI_CUT_L_SWD_S, -1);
+ break;
+ case 1:
+ mCreature.startCreatureVoice(Z2SE_YAMI_CUT_L_SWD_D, -1);
+ break;
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ mCreature.startCreatureVoice(Z2SE_YAMI_CUT_L_SWD_T, -1);
+ break;
+ }
}
-#pragma pop
/* 8096B490-8096B548 002C10 00B8+00 4/4 0/0 0/0 .text appearSE__13daNpcBlueNS_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::appearSE() {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/appearSE__13daNpcBlueNS_cFv.s"
+void daNpcBlueNS_c::appearSE() {
+ switch (field_0xe11) {
+ case 0:
+ mCreature.startCreatureVoice(Z2SE_YAMI_TRANSFORM_S, -1);
+ break;
+ case 1:
+ mCreature.startCreatureVoice(Z2SE_YAMI_TRANSFORM_D, -1);
+ break;
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ mCreature.startCreatureVoice(Z2SE_YAMI_TRANSFORM_T, -1);
+ break;
+ }
}
-#pragma pop
-
-/* ############################################################################################## */
-/* 8096CB4C-8096CB4C 00022C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_8096CB97 = "cutId";
-#pragma pop
/* 8096B548-8096B5F0 002CC8 00A8+00 1/0 0/0 0/0 .text _Evt_ChgYami_Chibi__13daNpcBlueNS_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_Evt_ChgYami_Chibi(int param_0) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Chibi__13daNpcBlueNS_cFi.s"
+int daNpcBlueNS_c::_Evt_ChgYami_Chibi(int param_1) {
+ dEvent_manager_c& evtMgr = dComIfGp_getEventManager();
+ int local_18[1];
+ *local_18 = -1;
+ int* pCut = dComIfGp_evmng_getMyIntegerP(param_1, "cutId");
+ if (pCut != NULL) {
+ *local_18 = *pCut;
+ } else {
+ OS_REPORT("---------------CUT FALSE\n");
+ return 1;
+ }
+ if (evtMgr.getIsAddvance(param_1)) {
+ _Evt_ChgYami_Chibi_CutInit(*local_18);
+ }
+ return _Evt_ChgYami_Chibi_CutMain(*local_18);
}
-#pragma pop
/* 8096B5F0-8096B688 002D70 0098+00 1/1 0/0 0/0 .text
* _Evt_ChgYami_Chibi_CutInit__13daNpcBlueNS_cFRCi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_Evt_ChgYami_Chibi_CutInit(int const& param_0) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::_Evt_ChgYami_Chibi_CutInit(int const& param_1) {
+ switch(param_1) {
+ case 10:
+ field_0xe00 = -1;
+ break;
+ case 20:
+ setMotion(field_0xe0c, -1.0f, 0);
+ appearSE();
+ break;
+ case 30:
+ field_0xe10 = 0;
+ mYamiActor = NULL;
+ break;
+ }
+ return 1;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::_Evt_ChgYami_Chibi_CutInit(int const& param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Chibi_CutInit__13daNpcBlueNS_cFRCi.s"
}
#pragma pop
+#endif
/* 8096B688-8096B7B8 002E08 0130+00 1/1 0/0 0/0 .text
* _Evt_ChgYami_Chibi_CutMain__13daNpcBlueNS_cFRCi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_Evt_ChgYami_Chibi_CutMain(int const& param_0) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::_Evt_ChgYami_Chibi_CutMain(int const& param_1) {
+ int rv = 0;
+ switch (param_1) {
+ case 10:
+ if (field_0xe00 == 0xffffffff) {
+ field_0xe00 = create_Yamijin(0);
+ if (field_0xe00 != 0xffffffff) {
+ rv = 1;
+ }
+ } else {
+ rv = 1;
+ }
+ break;
+ case 20:
+ if (mpMorf->isStop()) {
+ ChgPtclDisp();
+ rv = 1;
+ }
+ break;
+ case 30:
+ mYamiActor = fopAcM_SearchByID(field_0xe00);
+ if (mYamiActor != NULL) {
+ OS_REPORT("----%x :: FIND YAMI ACTOR!!\n", this);
+ static_cast<daNpc_yamiS_c*>(mYamiActor)->vanish_off();
+ static_cast<daNpc_yamiS_c*>(mYamiActor)->on_CoHit();
+ rv = 1;
+ }
+ break;
+ }
+ return rv;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::_Evt_ChgYami_Chibi_CutMain(int const& param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Chibi_CutMain__13daNpcBlueNS_cFRCi.s"
}
#pragma pop
+#endif
/* 8096B7B8-8096B860 002F38 00A8+00 1/0 0/0 0/0 .text _Evt_ChgYami_Debu__13daNpcBlueNS_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_Evt_ChgYami_Debu(int param_0) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Debu__13daNpcBlueNS_cFi.s"
+int daNpcBlueNS_c::_Evt_ChgYami_Debu(int param_1) {
+ dEvent_manager_c& evtMgr = dComIfGp_getEventManager();
+ int local_18[1];
+ *local_18 = -1;
+ int* pCut = dComIfGp_evmng_getMyIntegerP(param_1, "cutId");
+ if (pCut != NULL) {
+ *local_18 = *pCut;
+ } else {
+ OS_REPORT("---------------CUT FALSE\n");
+ return 1;
+ }
+ if (evtMgr.getIsAddvance(param_1)) {
+ _Evt_ChgYami_Debu_CutInit(*local_18);
+ }
+ return _Evt_ChgYami_Debu_CutMain(*local_18);
}
-#pragma pop
/* 8096B860-8096B8F8 002FE0 0098+00 1/1 0/0 0/0 .text
* _Evt_ChgYami_Debu_CutInit__13daNpcBlueNS_cFRCi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_Evt_ChgYami_Debu_CutInit(int const& param_0) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::_Evt_ChgYami_Debu_CutInit(int const& param_1) {
+ switch(param_1) {
+ case 10:
+ field_0xe00 = -1;
+ break;
+ case 20:
+ setMotion(field_0xe0c, -1.0f, 0);
+ appearSE();
+ break;
+ case 30:
+ field_0xe10 = 0;
+ mYamiActor = NULL;
+ break;
+ }
+ return 1;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::_Evt_ChgYami_Debu_CutInit(int const& param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Debu_CutInit__13daNpcBlueNS_cFRCi.s"
}
#pragma pop
+#endif
/* 8096B8F8-8096BA28 003078 0130+00 1/1 0/0 0/0 .text
* _Evt_ChgYami_Debu_CutMain__13daNpcBlueNS_cFRCi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_Evt_ChgYami_Debu_CutMain(int const& param_0) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::_Evt_ChgYami_Debu_CutMain(int const& param_1) {
+ int rv = 0;
+ switch (param_1) {
+ case 10:
+ if (field_0xe00 == 0xffffffff) {
+ field_0xe00 = create_Yamijin(0);
+ if (field_0xe00 != 0xffffffff) {
+ rv = 1;
+ }
+ } else {
+ rv = 1;
+ }
+ break;
+ case 20:
+ if (mpMorf->isStop()) {
+ ChgPtclDisp();
+ rv = 1;
+ }
+ break;
+ case 30:
+ mYamiActor = fopAcM_SearchByID(field_0xe00);
+ if (mYamiActor != NULL) {
+ OS_REPORT("----%x :: FIND YAMI ACTOR!!\n", this);
+ static_cast<daNpc_yamiD_c*>(mYamiActor)->vanish_off();
+ static_cast<daNpc_yamiD_c*>(mYamiActor)->on_CoHit();
+ rv = 1;
+ }
+ break;
+ }
+ return rv;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::_Evt_ChgYami_Debu_CutMain(int const& param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Debu_CutMain__13daNpcBlueNS_cFRCi.s"
}
#pragma pop
+#endif
/* 8096BA28-8096BAD0 0031A8 00A8+00 1/0 0/0 0/0 .text _Evt_ChgYami_Noppo__13daNpcBlueNS_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_Evt_ChgYami_Noppo(int param_0) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Noppo__13daNpcBlueNS_cFi.s"
+int daNpcBlueNS_c::_Evt_ChgYami_Noppo(int param_1) {
+ dEvent_manager_c& evtMgr = dComIfGp_getEventManager();
+ int local_18[1];
+ *local_18 = -1;
+ int* pCut = dComIfGp_evmng_getMyIntegerP(param_1, "cutId");
+ if (pCut != NULL) {
+ *local_18 = *pCut;
+ } else {
+ OS_REPORT("---------------CUT FALSE\n");
+ return 1;
+ }
+ if (evtMgr.getIsAddvance(param_1)) {
+ _Evt_ChgYami_Noppo_CutInit(*local_18);
+ }
+ return _Evt_ChgYami_Noppo_CutMain(*local_18);
}
-#pragma pop
/* 8096BAD0-8096BB68 003250 0098+00 1/1 0/0 0/0 .text
* _Evt_ChgYami_Noppo_CutInit__13daNpcBlueNS_cFRCi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_Evt_ChgYami_Noppo_CutInit(int const& param_0) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::_Evt_ChgYami_Noppo_CutInit(int const& param_1) {
+ switch(param_1) {
+ case 10:
+ field_0xe00 = -1;
+ break;
+ case 20:
+ setMotion(field_0xe0c, -1.0f, 0);
+ appearSE();
+ break;
+ case 30:
+ field_0xe10 = 0;
+ mYamiActor = NULL;
+ break;
+ }
+ return 1;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::_Evt_ChgYami_Noppo_CutInit(int const& param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Noppo_CutInit__13daNpcBlueNS_cFRCi.s"
}
#pragma pop
+#endif
/* 8096BB68-8096BC98 0032E8 0130+00 1/1 0/0 0/0 .text
* _Evt_ChgYami_Noppo_CutMain__13daNpcBlueNS_cFRCi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_Evt_ChgYami_Noppo_CutMain(int const& param_0) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::_Evt_ChgYami_Noppo_CutMain(int const& param_1) {
+ int rv = 0;
+ switch (param_1) {
+ case 10:
+ if (field_0xe00 == 0xffffffff) {
+ field_0xe00 = create_Yamijin(0);
+ if (field_0xe00 != 0xffffffff) {
+ rv = 1;
+ }
+ } else {
+ rv = 1;
+ }
+ break;
+ case 20:
+ if (mpMorf->isStop()) {
+ ChgPtclDisp();
+ rv = 1;
+ }
+ break;
+ case 30:
+ mYamiActor = fopAcM_SearchByID(field_0xe00);
+ if (mYamiActor != NULL) {
+ OS_REPORT("----%x :: FIND YAMI ACTOR!!\n", this);
+ static_cast<daNpc_yamiT_c*>(mYamiActor)->vanish_off();
+ static_cast<daNpc_yamiT_c*>(mYamiActor)->on_CoHit();
+ rv = 1;
+ }
+ break;
+ }
+ return rv;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::_Evt_ChgYami_Noppo_CutMain(int const& param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_Noppo_CutMain__13daNpcBlueNS_cFRCi.s"
}
#pragma pop
+#endif
/* 8096BC98-8096BD40 003418 00A8+00 3/0 0/0 0/0 .text _Evt_ChgYami_STNoppo__13daNpcBlueNS_cFi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_Evt_ChgYami_STNoppo(int param_0) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_STNoppo__13daNpcBlueNS_cFi.s"
+int daNpcBlueNS_c::_Evt_ChgYami_STNoppo(int param_1) {
+ dEvent_manager_c& evtMgr = dComIfGp_getEventManager();
+ int local_18[1];
+ *local_18 = -1;
+ int* pCut = dComIfGp_evmng_getMyIntegerP(param_1, "cutId");
+ if (pCut != NULL) {
+ *local_18 = *pCut;
+ } else {
+ OS_REPORT("---------------CUT FALSE\n");
+ return 1;
+ }
+ if (evtMgr.getIsAddvance(param_1)) {
+ _Evt_ChgYami_STNoppo_CutInit(*local_18);
+ }
+ return _Evt_ChgYami_STNoppo_CutMain(*local_18);
}
-#pragma pop
/* 8096BD40-8096BDD8 0034C0 0098+00 1/1 0/0 0/0 .text
* _Evt_ChgYami_STNoppo_CutInit__13daNpcBlueNS_cFRCi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_Evt_ChgYami_STNoppo_CutInit(int const& param_0) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::_Evt_ChgYami_STNoppo_CutInit(int const& param_1) {
+ switch(param_1) {
+ case 10:
+ field_0xe00 = -1;
+ break;
+ case 20:
+ setMotion(field_0xe0c, -1.0f, 0);
+ appearSE();
+ break;
+ case 30:
+ field_0xe10 = 0;
+ mYamiActor = NULL;
+ break;
+ }
+ return 1;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::_Evt_ChgYami_STNoppo_CutInit(int const& param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_STNoppo_CutInit__13daNpcBlueNS_cFRCi.s"
}
#pragma pop
+#endif
/* 8096BDD8-8096BF08 003558 0130+00 1/1 0/0 0/0 .text
* _Evt_ChgYami_STNoppo_CutMain__13daNpcBlueNS_cFRCi */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daNpcBlueNS_c::_Evt_ChgYami_STNoppo_CutMain(int const& param_0) {
+// Matches with literals and daNpcF_c
+#ifdef NONMATCHING
+int daNpcBlueNS_c::_Evt_ChgYami_STNoppo_CutMain(int const& param_1) {
+ int rv = 0;
+ switch (param_1) {
+ case 10:
+ if (field_0xe00 == 0xffffffff) {
+ field_0xe00 = create_Yamijin(0);
+ if (field_0xe00 != 0xffffffff) {
+ rv = 1;
+ }
+ } else {
+ rv = 1;
+ }
+ break;
+ case 20:
+ if (mpMorf->isStop()) {
+ ChgPtclDisp();
+ rv = 1;
+ }
+ break;
+ case 30:
+ mYamiActor = fopAcM_SearchByID(field_0xe00);
+ if (mYamiActor != NULL) {
+ OS_REPORT("----%x :: FIND YAMI ACTOR!!\n", this);
+ static_cast<daNpc_yamiT_c*>(mYamiActor)->vanish_off();
+ static_cast<daNpc_yamiT_c*>(mYamiActor)->on_CoHit();
+ rv = 1;
+ }
+ break;
+ }
+ return rv;
+}
+#else
+#pragma push
+#pragma optimization_level 0
+#pragma optimizewithasm off
+asm int daNpcBlueNS_c::_Evt_ChgYami_STNoppo_CutMain(int const& param_0) {
nofralloc
#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/_Evt_ChgYami_STNoppo_CutMain__13daNpcBlueNS_cFRCi.s"
}
#pragma pop
+#endif
/* 8096BF08-8096BF28 003688 0020+00 1/0 0/0 0/0 .text daNpcBlueNS_Create__FPv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daNpcBlueNS_Create(void* param_0) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Create__FPv.s"
+static int daNpcBlueNS_Create(void* i_this) {
+ return static_cast<daNpcBlueNS_c*>(i_this)->Create();
}
-#pragma pop
/* 8096BF28-8096BF48 0036A8 0020+00 1/0 0/0 0/0 .text daNpcBlueNS_Delete__FPv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daNpcBlueNS_Delete(void* param_0) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Delete__FPv.s"
+static int daNpcBlueNS_Delete(void* i_this) {
+ return static_cast<daNpcBlueNS_c*>(i_this)->Delete();
}
-#pragma pop
/* 8096BF48-8096BF68 0036C8 0020+00 1/0 0/0 0/0 .text daNpcBlueNS_Execute__FPv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daNpcBlueNS_Execute(void* param_0) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Execute__FPv.s"
+static int daNpcBlueNS_Execute(void* i_this) {
+ return static_cast<daNpcBlueNS_c*>(i_this)->Execute();
}
-#pragma pop
/* 8096BF68-8096BF88 0036E8 0020+00 1/0 0/0 0/0 .text daNpcBlueNS_Draw__FPv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daNpcBlueNS_Draw(void* param_0) {
- nofralloc
-#include "asm/rel/d/a/npc/d_a_npc_blue_ns/d_a_npc_blue_ns/daNpcBlueNS_Draw__FPv.s"
+static int daNpcBlueNS_Draw(void* i_this) {
+ return static_cast<daNpcBlueNS_c*>(i_this)->Draw();
}
-#pragma pop
/* 8096BF88-8096BF90 003708 0008+00 1/0 0/0 0/0 .text daNpcBlueNS_IsDelete__FPv */
-static bool daNpcBlueNS_IsDelete(void* param_0) {
- return true;
+static int daNpcBlueNS_IsDelete(void* param_0) {
+ return 1;
}
/* 8096BF90-8096BFD8 003710 0048+00 5/4 0/0 0/0 .text __dt__18daNpcF_ActorMngr_cFv */
diff --git a/src/d/a/d_a_npc.cpp b/src/d/a/d_a_npc.cpp
index 36388f074b..79835dc740 100644
--- a/src/d/a/d_a_npc.cpp
+++ b/src/d/a/d_a_npc.cpp
@@ -4614,7 +4614,7 @@ BOOL daNpcF_c::execute() {
mGndChk = mAcch.m_gnd;
mGroundH = mAcch.GetGroundH();
if (mGroundH != -1e+9f) {
- field_0x998 = daNpcF_getGroundAngle(&mGndChk, mCurAngle.y);
+ mGroundAngle = daNpcF_getGroundAngle(&mGndChk, mCurAngle.y);
setEnvTevColor();
setRoomNo();
mPolySound = dKy_pol_sound_get(&mAcch.m_gnd);
@@ -4901,7 +4901,7 @@ void daNpcF_c::initialize() {
field_0x992 = 0;
mTurnStartAngle = 0;
mTurnTargetAngle = 0;
- field_0x998 = 0;
+ mGroundAngle = 0;
mAnmFlags = 0;
mShadowKey = 0;
field_0x9a4 = -1;
@@ -6226,8 +6226,8 @@ int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2,
}
/* 80155854-80155968 150194 0114+00 0/0 0/0 1/1 .text daNpcF_chkDoBtnEqSpeak__FP10fopAc_ac_c */
-bool daNpcF_chkDoBtnEqSpeak(fopAc_ac_c* i_ActorP) {
- bool ret = 0;
+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++) {