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 20fb28d1d2e..00000000000 --- 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 b613f716401..00000000000 --- 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 60dbd6abd38..00000000000 --- 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 8c0f8772f3b..00000000000 --- 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 e5d729d600f..00000000000 --- 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 e498e45eed4..00000000000 --- 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 d36f76f9faf..00000000000 --- 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 d04e106cc27..00000000000 --- 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 0b306224eca..00000000000 --- 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 e72ba797e16..00000000000 --- 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 c88bbbd1b5b..00000000000 --- 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 d8603889166..00000000000 --- 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 62ade9d253c..00000000000 --- 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 bf3793d6624..00000000000 --- 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 9442e6d9a24..00000000000 --- 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 6498256d088..00000000000 --- 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 e80c5e1bd1b..00000000000 --- 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 a827e14f558..00000000000 --- 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 4dd4f638694..00000000000 --- 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 48dbb8754e6..00000000000 --- 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 6d90aa351cc..00000000000 --- 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 aabce5c73f1..00000000000 --- 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 2cfe7c48f9d..00000000000 --- 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 eea553465c6..00000000000 --- 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 7cb5abb9398..9483c7c6f05 100644 --- a/include/d/a/d_a_npc.h +++ b/include/d/a/d_a_npc.h @@ -658,7 +658,7 @@ class daNpcF_c : public fopAc_ac_c { /* 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 @@ class daNpcF_c : public fopAc_ac_c { /* 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 63a80693dc9..28ef8e6531c 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 75d4b8a22bb..7b05495a829 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 @@ class daNpc_yamiD_c : public fopAc_ac_c { /* 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 22f8532b5f7..0126dbbebea 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 @@ class daNpc_yamiS_c : public fopAc_ac_c { /* 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 2b26fefc419..d42974cdb69 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 @@ class daNpc_yamiT_c : public fopAc_ac_c { /* 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 1aa13379eae..67296d7bdcb 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(¤t.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, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(morfModel, &tevStr); + dComIfGd_setListDark(); + mpMorf->entryDL(); + dComIfGd_setList(); + } else { + g_env_light.settingTevStruct(2, ¤t.pos, &tevStr); + g_env_light.setLightTevColorType_MAJI(morfModel, &tevStr); + mpMorf->entryDL(); + } + dDlst_shadowControl_c::getSimpleTex(); + mShadowKey = dComIfGd_setShadow( + mShadowKey, 1, morfModel, ¤t.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(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(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(param_1)->prm_chk_type_lightball()) { + return NULL; + } + if (static_cast(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(param_1)->prm_chk_type_lightball()) { + return NULL; + } + if (static_cast(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(mYamiActor)->vanish_off(); + static_cast(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(mYamiActor)->vanish_off(); + static_cast(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(mYamiActor)->vanish_off(); + static_cast(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(mYamiActor)->vanish_off(); + static_cast(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(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(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(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(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 36388f074bd..79835dc7409 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++) {