diff --git a/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/__dt__11daTagMmsg_cFv.s b/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/__dt__11daTagMmsg_cFv.s deleted file mode 100644 index efc3d7c602f..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/__dt__11daTagMmsg_cFv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_80D5BAB4: -/* 80D5BAB4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5BAB8 7C 08 02 A6 */ mflr r0 -/* 80D5BABC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5BAC0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D5BAC4 93 C1 00 08 */ stw r30, 8(r1) -/* 80D5BAC8 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80D5BACC 7C 9F 23 78 */ mr r31, r4 -/* 80D5BAD0 41 82 00 1C */ beq lbl_80D5BAEC -/* 80D5BAD4 38 80 00 00 */ li r4, 0 -/* 80D5BAD8 4B 2B D1 B5 */ bl __dt__10fopAc_ac_cFv -/* 80D5BADC 7F E0 07 35 */ extsh. r0, r31 -/* 80D5BAE0 40 81 00 0C */ ble lbl_80D5BAEC -/* 80D5BAE4 7F C3 F3 78 */ mr r3, r30 -/* 80D5BAE8 4B 57 32 55 */ bl __dl__FPv -lbl_80D5BAEC: -/* 80D5BAEC 7F C3 F3 78 */ mr r3, r30 -/* 80D5BAF0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D5BAF4 83 C1 00 08 */ lwz r30, 8(r1) -/* 80D5BAF8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5BAFC 7C 08 03 A6 */ mtlr r0 -/* 80D5BB00 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5BB04 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/create__11daTagMmsg_cFv.s b/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/create__11daTagMmsg_cFv.s deleted file mode 100644 index 032199d239b..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/create__11daTagMmsg_cFv.s +++ /dev/null @@ -1,100 +0,0 @@ -lbl_80D5B918: -/* 80D5B918 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80D5B91C 7C 08 02 A6 */ mflr r0 -/* 80D5B920 90 01 00 24 */ stw r0, 0x24(r1) -/* 80D5B924 39 61 00 20 */ addi r11, r1, 0x20 -/* 80D5B928 4B 60 68 B5 */ bl _savegpr_29 -/* 80D5B92C 7C 7F 1B 78 */ mr r31, r3 -/* 80D5B930 3C 80 80 D6 */ lis r4, lit_3702@ha /* 0x80D5BD38@ha */ -/* 80D5B934 3B C4 BD 38 */ addi r30, r4, lit_3702@l /* 0x80D5BD38@l */ -/* 80D5B938 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 80D5B93C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80D5B940 40 82 00 1C */ bne lbl_80D5B95C -/* 80D5B944 28 1F 00 00 */ cmplwi r31, 0 -/* 80D5B948 41 82 00 08 */ beq lbl_80D5B950 -/* 80D5B94C 4B 2B D2 19 */ bl __ct__10fopAc_ac_cFv -lbl_80D5B950: -/* 80D5B950 80 1F 04 A0 */ lwz r0, 0x4a0(r31) -/* 80D5B954 60 00 00 08 */ ori r0, r0, 8 -/* 80D5B958 90 1F 04 A0 */ stw r0, 0x4a0(r31) -lbl_80D5B95C: -/* 80D5B95C 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80D5B960 54 00 05 BE */ clrlwi r0, r0, 0x16 -/* 80D5B964 B0 1F 05 70 */ sth r0, 0x570(r31) -/* 80D5B968 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80D5B96C 54 00 B5 BE */ rlwinm r0, r0, 0x16, 0x16, 0x1f -/* 80D5B970 B0 1F 05 72 */ sth r0, 0x572(r31) -/* 80D5B974 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80D5B978 54 00 1F FE */ rlwinm r0, r0, 3, 0x1f, 0x1f -/* 80D5B97C 98 1F 05 6B */ stb r0, 0x56b(r31) -/* 80D5B980 A8 1F 04 E4 */ lha r0, 0x4e4(r31) -/* 80D5B984 98 1F 05 68 */ stb r0, 0x568(r31) -/* 80D5B988 A8 1F 04 E4 */ lha r0, 0x4e4(r31) -/* 80D5B98C 54 00 C6 3E */ rlwinm r0, r0, 0x18, 0x18, 0x1f -/* 80D5B990 98 1F 05 69 */ stb r0, 0x569(r31) -/* 80D5B994 80 1F 00 B0 */ lwz r0, 0xb0(r31) -/* 80D5B998 54 00 17 FF */ rlwinm. r0, r0, 2, 0x1f, 0x1f -/* 80D5B99C 41 82 00 20 */ beq lbl_80D5B9BC -/* 80D5B9A0 C0 1F 04 EC */ lfs f0, 0x4ec(r31) -/* 80D5B9A4 C0 3E 00 00 */ lfs f1, 0(r30) -/* 80D5B9A8 EC 00 00 72 */ fmuls f0, f0, f1 -/* 80D5B9AC D0 1F 04 EC */ stfs f0, 0x4ec(r31) -/* 80D5B9B0 C0 1F 04 F0 */ lfs f0, 0x4f0(r31) -/* 80D5B9B4 EC 00 00 72 */ fmuls f0, f0, f1 -/* 80D5B9B8 D0 1F 04 F0 */ stfs f0, 0x4f0(r31) -lbl_80D5B9BC: -/* 80D5B9BC C0 3F 04 EC */ lfs f1, 0x4ec(r31) -/* 80D5B9C0 C0 1E 00 04 */ lfs f0, 4(r30) -/* 80D5B9C4 EC 00 00 72 */ fmuls f0, f0, f1 -/* 80D5B9C8 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80D5B9CC D0 1F 05 74 */ stfs f0, 0x574(r31) -/* 80D5B9D0 C0 5F 04 D4 */ lfs f2, 0x4d4(r31) -/* 80D5B9D4 C0 3E 00 08 */ lfs f1, 8(r30) -/* 80D5B9D8 C0 1F 04 F0 */ lfs f0, 0x4f0(r31) -/* 80D5B9DC EC 01 00 32 */ fmuls f0, f1, f0 -/* 80D5B9E0 EC 02 00 2A */ fadds f0, f2, f0 -/* 80D5B9E4 D0 1F 05 78 */ stfs f0, 0x578(r31) -/* 80D5B9E8 A8 1F 04 E6 */ lha r0, 0x4e6(r31) -/* 80D5B9EC 98 1F 05 6A */ stb r0, 0x56a(r31) -/* 80D5B9F0 8B DF 05 6A */ lbz r30, 0x56a(r31) -/* 80D5B9F4 28 1E 00 FF */ cmplwi r30, 0xff -/* 80D5B9F8 41 82 00 68 */ beq lbl_80D5BA60 -/* 80D5B9FC 88 1F 04 E2 */ lbz r0, 0x4e2(r31) -/* 80D5BA00 7C 1D 07 74 */ extsb r29, r0 -/* 80D5BA04 7F A3 EB 78 */ mr r3, r29 -/* 80D5BA08 4B 2D 18 55 */ bl dComIfGp_getRoomCamera__Fi -/* 80D5BA0C 80 63 00 04 */ lwz r3, 4(r3) -/* 80D5BA10 1C 1E 00 18 */ mulli r0, r30, 0x18 -/* 80D5BA14 7C 63 02 14 */ add r3, r3, r0 -/* 80D5BA18 88 03 00 10 */ lbz r0, 0x10(r3) -/* 80D5BA1C 1F C0 00 14 */ mulli r30, r0, 0x14 -/* 80D5BA20 7F A3 EB 78 */ mr r3, r29 -/* 80D5BA24 4B 2D 18 89 */ bl dComIfGp_getRoomArrow__Fi -/* 80D5BA28 80 03 00 04 */ lwz r0, 4(r3) -/* 80D5BA2C 7C 60 F2 14 */ add r3, r0, r30 -/* 80D5BA30 C0 43 00 08 */ lfs f2, 8(r3) -/* 80D5BA34 C0 23 00 04 */ lfs f1, 4(r3) -/* 80D5BA38 C0 03 00 00 */ lfs f0, 0(r3) -/* 80D5BA3C D0 1F 05 38 */ stfs f0, 0x538(r31) -/* 80D5BA40 D0 3F 05 3C */ stfs f1, 0x53c(r31) -/* 80D5BA44 D0 5F 05 40 */ stfs f2, 0x540(r31) -/* 80D5BA48 C0 1F 05 38 */ lfs f0, 0x538(r31) -/* 80D5BA4C D0 1F 05 50 */ stfs f0, 0x550(r31) -/* 80D5BA50 C0 1F 05 3C */ lfs f0, 0x53c(r31) -/* 80D5BA54 D0 1F 05 54 */ stfs f0, 0x554(r31) -/* 80D5BA58 C0 1F 05 40 */ lfs f0, 0x540(r31) -/* 80D5BA5C D0 1F 05 58 */ stfs f0, 0x558(r31) -lbl_80D5BA60: -/* 80D5BA60 7F E3 FB 78 */ mr r3, r31 -/* 80D5BA64 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5BA68 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5BA6C 80 84 5D AC */ lwz r4, 0x5dac(r4) -/* 80D5BA70 4B 2B EC A1 */ bl fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c -/* 80D5BA74 B0 7F 04 E6 */ sth r3, 0x4e6(r31) -/* 80D5BA78 38 60 00 04 */ li r3, 4 -/* 80D5BA7C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80D5BA80 4B 60 67 A9 */ bl _restgpr_29 -/* 80D5BA84 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80D5BA88 7C 08 03 A6 */ mtlr r0 -/* 80D5BA8C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80D5BA90 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/daTagMmsg_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/daTagMmsg_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 695b4022943..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/daTagMmsg_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D5BA94: -/* 80D5BA94 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5BA98 7C 08 02 A6 */ mflr r0 -/* 80D5BA9C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5BAA0 4B FF FE 79 */ bl create__11daTagMmsg_cFv -/* 80D5BAA4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5BAA8 7C 08 03 A6 */ mtlr r0 -/* 80D5BAAC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5BAB0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/daTagMmsg_Delete__FP11daTagMmsg_c.s b/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/daTagMmsg_Delete__FP11daTagMmsg_c.s deleted file mode 100644 index 925bcf55a0d..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/daTagMmsg_Delete__FP11daTagMmsg_c.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80D5BB08: -/* 80D5BB08 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5BB0C 7C 08 02 A6 */ mflr r0 -/* 80D5BB10 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5BB14 38 80 FF FF */ li r4, -1 -/* 80D5BB18 4B FF FF 9D */ bl __dt__11daTagMmsg_cFv -/* 80D5BB1C 38 60 00 01 */ li r3, 1 -/* 80D5BB20 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5BB24 7C 08 03 A6 */ mtlr r0 -/* 80D5BB28 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5BB2C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/daTagMmsg_Execute__FP11daTagMmsg_c.s b/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/daTagMmsg_Execute__FP11daTagMmsg_c.s deleted file mode 100644 index 80ff6071de6..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/daTagMmsg_Execute__FP11daTagMmsg_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80D5BD08: -/* 80D5BD08 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5BD0C 7C 08 02 A6 */ mflr r0 -/* 80D5BD10 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5BD14 4B FF FE 1D */ bl execute__11daTagMmsg_cFv -/* 80D5BD18 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5BD1C 7C 08 03 A6 */ mtlr r0 -/* 80D5BD20 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5BD24 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/execute__11daTagMmsg_cFv.s b/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/execute__11daTagMmsg_cFv.s deleted file mode 100644 index f89deba57f1..00000000000 --- a/asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/execute__11daTagMmsg_cFv.s +++ /dev/null @@ -1,127 +0,0 @@ -lbl_80D5BB30: -/* 80D5BB30 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80D5BB34 7C 08 02 A6 */ mflr r0 -/* 80D5BB38 90 01 00 14 */ stw r0, 0x14(r1) -/* 80D5BB3C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80D5BB40 93 C1 00 08 */ stw r30, 8(r1) -/* 80D5BB44 7C 7F 1B 78 */ mr r31, r3 -/* 80D5BB48 3C 60 80 45 */ lis r3, m_midnaActor__9daPy_py_c@ha /* 0x80451018@ha */ -/* 80D5BB4C 80 03 10 18 */ lwz r0, m_midnaActor__9daPy_py_c@l(r3) /* 0x80451018@l */ -/* 80D5BB50 28 00 00 00 */ cmplwi r0, 0 -/* 80D5BB54 40 82 00 0C */ bne lbl_80D5BB60 -/* 80D5BB58 38 60 00 01 */ li r3, 1 -/* 80D5BB5C 48 00 01 94 */ b lbl_80D5BCF0 -lbl_80D5BB60: -/* 80D5BB60 A0 1F 05 72 */ lhz r0, 0x572(r31) -/* 80D5BB64 28 00 03 FF */ cmplwi r0, 0x3ff -/* 80D5BB68 41 82 00 34 */ beq lbl_80D5BB9C -/* 80D5BB6C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5BB70 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5BB74 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 80D5BB78 54 00 0B FC */ rlwinm r0, r0, 1, 0xf, 0x1e -/* 80D5BB7C 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 80D5BB80 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 80D5BB84 7C 84 02 2E */ lhzx r4, r4, r0 -/* 80D5BB88 4B 2D 8E 35 */ bl isEventBit__11dSv_event_cCFUs -/* 80D5BB8C 2C 03 00 00 */ cmpwi r3, 0 -/* 80D5BB90 41 82 00 0C */ beq lbl_80D5BB9C -/* 80D5BB94 38 60 00 01 */ li r3, 1 -/* 80D5BB98 48 00 01 58 */ b lbl_80D5BCF0 -lbl_80D5BB9C: -/* 80D5BB9C 88 9F 05 69 */ lbz r4, 0x569(r31) -/* 80D5BBA0 28 04 00 FF */ cmplwi r4, 0xff -/* 80D5BBA4 41 82 00 30 */ beq lbl_80D5BBD4 -/* 80D5BBA8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5BBAC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5BBB0 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 80D5BBB4 7C 05 07 74 */ extsb r5, r0 -/* 80D5BBB8 4B 2D 97 A9 */ bl isSwitch__10dSv_info_cCFii -/* 80D5BBBC 2C 03 00 00 */ cmpwi r3, 0 -/* 80D5BBC0 41 82 00 14 */ beq lbl_80D5BBD4 -/* 80D5BBC4 7F E3 FB 78 */ mr r3, r31 -/* 80D5BBC8 4B 2B E0 B5 */ bl fopAcM_delete__FP10fopAc_ac_c -/* 80D5BBCC 38 60 00 01 */ li r3, 1 -/* 80D5BBD0 48 00 01 20 */ b lbl_80D5BCF0 -lbl_80D5BBD4: -/* 80D5BBD4 88 1F 05 6C */ lbz r0, 0x56c(r31) -/* 80D5BBD8 28 00 00 00 */ cmplwi r0, 0 -/* 80D5BBDC 41 82 00 4C */ beq lbl_80D5BC28 -/* 80D5BBE0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5BBE4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5BBE8 88 03 4F AD */ lbz r0, 0x4fad(r3) -/* 80D5BBEC 28 00 00 00 */ cmplwi r0, 0 -/* 80D5BBF0 40 82 00 38 */ bne lbl_80D5BC28 -/* 80D5BBF4 88 1F 05 6B */ lbz r0, 0x56b(r31) -/* 80D5BBF8 28 00 00 00 */ cmplwi r0, 0 -/* 80D5BBFC 41 82 00 2C */ beq lbl_80D5BC28 -/* 80D5BC00 88 9F 05 69 */ lbz r4, 0x569(r31) -/* 80D5BC04 28 04 00 FF */ cmplwi r4, 0xff -/* 80D5BC08 41 82 00 20 */ beq lbl_80D5BC28 -/* 80D5BC0C 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 80D5BC10 7C 05 07 74 */ extsb r5, r0 -/* 80D5BC14 4B 2D 95 ED */ bl onSwitch__10dSv_info_cFii -/* 80D5BC18 7F E3 FB 78 */ mr r3, r31 -/* 80D5BC1C 4B 2B E0 61 */ bl fopAcM_delete__FP10fopAc_ac_c -/* 80D5BC20 38 60 00 01 */ li r3, 1 -/* 80D5BC24 48 00 00 CC */ b lbl_80D5BCF0 -lbl_80D5BC28: -/* 80D5BC28 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5BC2C 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5BC30 83 C4 5D B4 */ lwz r30, 0x5db4(r4) -/* 80D5BC34 C0 1F 04 D4 */ lfs f0, 0x4d4(r31) -/* 80D5BC38 C0 3E 04 D4 */ lfs f1, 0x4d4(r30) -/* 80D5BC3C FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80D5BC40 4C 40 13 82 */ cror 2, 0, 2 -/* 80D5BC44 40 82 00 A8 */ bne lbl_80D5BCEC -/* 80D5BC48 C0 1F 05 78 */ lfs f0, 0x578(r31) -/* 80D5BC4C FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80D5BC50 4C 41 13 82 */ cror 2, 1, 2 -/* 80D5BC54 40 82 00 98 */ bne lbl_80D5BCEC -/* 80D5BC58 7F E3 FB 78 */ mr r3, r31 -/* 80D5BC5C 80 84 5D AC */ lwz r4, 0x5dac(r4) -/* 80D5BC60 4B 2B EE 35 */ bl fopAcM_searchActorDistanceXZ2__FPC10fopAc_ac_cPC10fopAc_ac_c -/* 80D5BC64 C0 1F 05 74 */ lfs f0, 0x574(r31) -/* 80D5BC68 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80D5BC6C 40 80 00 80 */ bge lbl_80D5BCEC -/* 80D5BC70 A0 1F 05 70 */ lhz r0, 0x570(r31) -/* 80D5BC74 28 00 03 FF */ cmplwi r0, 0x3ff -/* 80D5BC78 41 82 00 2C */ beq lbl_80D5BCA4 -/* 80D5BC7C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5BC80 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5BC84 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 80D5BC88 54 00 0B FC */ rlwinm r0, r0, 1, 0xf, 0x1e -/* 80D5BC8C 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 80D5BC90 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 80D5BC94 7C 84 02 2E */ lhzx r4, r4, r0 -/* 80D5BC98 4B 2D 8D 25 */ bl isEventBit__11dSv_event_cCFUs -/* 80D5BC9C 2C 03 00 00 */ cmpwi r3, 0 -/* 80D5BCA0 41 82 00 4C */ beq lbl_80D5BCEC -lbl_80D5BCA4: -/* 80D5BCA4 88 9F 05 68 */ lbz r4, 0x568(r31) -/* 80D5BCA8 28 04 00 FF */ cmplwi r4, 0xff -/* 80D5BCAC 41 82 00 20 */ beq lbl_80D5BCCC -/* 80D5BCB0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80D5BCB4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80D5BCB8 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 80D5BCBC 7C 05 07 74 */ extsb r5, r0 -/* 80D5BCC0 4B 2D 96 A1 */ bl isSwitch__10dSv_info_cCFii -/* 80D5BCC4 2C 03 00 00 */ cmpwi r3, 0 -/* 80D5BCC8 41 82 00 24 */ beq lbl_80D5BCEC -lbl_80D5BCCC: -/* 80D5BCCC 7F C3 F3 78 */ mr r3, r30 -/* 80D5BCD0 7F E4 FB 78 */ mr r4, r31 -/* 80D5BCD4 A8 1F 04 E8 */ lha r0, 0x4e8(r31) -/* 80D5BCD8 54 05 04 3E */ clrlwi r5, r0, 0x10 -/* 80D5BCDC 81 9E 06 28 */ lwz r12, 0x628(r30) -/* 80D5BCE0 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 80D5BCE4 7D 89 03 A6 */ mtctr r12 -/* 80D5BCE8 4E 80 04 21 */ bctrl -lbl_80D5BCEC: -/* 80D5BCEC 38 60 00 01 */ li r3, 1 -lbl_80D5BCF0: -/* 80D5BCF0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80D5BCF4 83 C1 00 08 */ lwz r30, 8(r1) -/* 80D5BCF8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80D5BCFC 7C 08 03 A6 */ mtlr r0 -/* 80D5BD00 38 21 00 10 */ addi r1, r1, 0x10 -/* 80D5BD04 4E 80 00 20 */ blr diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 93c13630630..2f74001e9df 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -2681,6 +2681,8 @@ inline u32 dComIfGp_particle_setPolyColor(u32 param_0, u16 param_1, cBgS_PolyInf int dComIfGd_setSimpleShadow(cXyz* pos, f32 param_1, f32 param_2, cBgS_PolyInfo& param_3, s16 angle, f32 param_5, _GXTexObj* tex); +stage_camera_class* dComIfGp_getRoomCamera(int i_roomNo); +stage_arrow_class* dComIfGp_getRoomArrow(int i_roomNo); int dComIfGd_setShadow(u32 param_0, s8 param_1, J3DModel* param_2, cXyz* param_3, f32 param_4, f32 param_5, f32 param_6, f32 param_7, cBgS_PolyInfo& param_8, dKy_tevstr_c* param_9, s16 param_10, f32 param_11, _GXTexObj* param_12); diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 4778e1932d5..be7e187b07a 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -151,9 +151,14 @@ struct stage_camera_class { /* 0x4 */ stage_camera2_data_class* field_0x4; }; -struct stage_arrow_class { +struct stage_arrow_data_class { /* 0x00 */ cXyz mPosition; /* 0x0C */ csXyz mAngle; +}; + +struct stage_arrow_class { + /* 0x00 */ int mNum; + /* 0x04 */ stage_arrow_data_class* mEntries; }; // Size: 0x14 class stage_actor_data_class { diff --git a/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h b/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h index 2a8b0fc4d0a..675ce7214c6 100644 --- a/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h +++ b/include/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h @@ -3,14 +3,15 @@ #include "d/a/d_a_player.h" #include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" class daTagMmsg_c : public fopAc_ac_c { public: daTagMmsg_c() {} - /* 80D5B918 */ void create(); + /* 80D5B918 */ int create(); /* 80D5BAB4 */ ~daTagMmsg_c(); - /* 80D5BB30 */ void execute(); + /* 80D5BB30 */ int execute(); void onUseFlg() { mUseFlg = true; } bool checkNoAttention() { return mAttention == 0xFF; } diff --git a/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.cpp b/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.cpp index 21a626ebf7e..0a8dfc86085 100644 --- a/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.cpp +++ b/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.cpp @@ -4,153 +4,145 @@ // #include "rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Forward References: -// - -extern "C" void create__11daTagMmsg_cFv(); -extern "C" static void daTagMmsg_Create__FP10fopAc_ac_c(); -extern "C" void __dt__11daTagMmsg_cFv(); -extern "C" static void daTagMmsg_Delete__FP11daTagMmsg_c(); -extern "C" void execute__11daTagMmsg_cFv(); -extern "C" static void daTagMmsg_Execute__FP11daTagMmsg_c(); -extern "C" static bool daTagMmsg_Draw__FP11daTagMmsg_c(); -extern "C" extern void* g_profile_Tag_Mmsg[12]; - // // External References: // -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ2__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void dComIfGp_getRoomCamera__Fi(); -extern "C" void dComIfGp_getRoomArrow__Fi(); -extern "C" void isEventBit__11dSv_event_cCFUs(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_29(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" u8 m_midnaActor__9daPy_py_c[4]; - -// -// Declarations: -// +extern "C" extern leafdraw_method_class g_fopAc_Method; /* ############################################################################################## */ -/* 80D5BD38-80D5BD3C 000000 0004+00 1/1 0/0 0/0 .rodata @3702 */ -SECTION_RODATA static f32 const lit_3702 = 10.0f; -COMPILER_STRIP_GATE(0x80D5BD38, &lit_3702); - -/* 80D5BD3C-80D5BD40 000004 0004+00 0/1 0/0 0/0 .rodata @3703 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3703 = 10000.0f; -COMPILER_STRIP_GATE(0x80D5BD3C, &lit_3703); -#pragma pop - -/* 80D5BD40-80D5BD44 000008 0004+00 0/1 0/0 0/0 .rodata @3704 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3704 = 100.0f; -COMPILER_STRIP_GATE(0x80D5BD40, &lit_3704); -#pragma pop - /* 80D5B918-80D5BA94 000078 017C+00 1/1 0/0 0/0 .text create__11daTagMmsg_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagMmsg_c::create() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/create__11daTagMmsg_cFv.s" +int daTagMmsg_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daTagMmsg_c(); + fopAcM_OnCondition(this, 8); + } + + this->field_0x570 = fpcM_GetParam(this) & 0x3FF; + this->field_0x572 = (fpcM_GetParam(this) >> 10) & 0x3FF; + this->field_0x56b = (fpcM_GetParam(this) >> 29) & 1; + this->field_0x568 = this->shape_angle.x; + this->field_0x569 = (this->shape_angle.x >> 8) & 0xFF; + + if ((fpcM_GetParam(this) >> 30) & 1) { + this->mScale.x *= 10.0f; + this->mScale.y *= 10.0f; + } + + this->field_0x574 = this->mScale.x * (10000.0f * this->mScale.x); + this->field_0x578 = this->current.pos.y + this->mScale.y * 100.0f; + this->mAttention = this->shape_angle.y; + + if (!checkNoAttention()) { + s32 roomNo = fopAcM_GetRoomNo(this); + cXyz* tmp = + &dComIfGp_getRoomArrow(roomNo) + ->mEntries[dComIfGp_getRoomCamera(roomNo)->field_0x4[this->mAttention].field_0x10] + .mPosition; + this->mEyePos.set(tmp->x, tmp->y, tmp->z); + this->mAttentionInfo.mPosition = this->mEyePos; + } + + this->shape_angle.y = fopAcM_searchPlayerAngleY(this); + return 4; } -#pragma pop /* 80D5BA94-80D5BAB4 0001F4 0020+00 1/0 0/0 0/0 .text daTagMmsg_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagMmsg_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/daTagMmsg_Create__FP10fopAc_ac_c.s" +static int daTagMmsg_Create(fopAc_ac_c* tag) { + return static_cast(tag)->create(); } -#pragma pop /* 80D5BAB4-80D5BB08 000214 0054+00 1/1 0/0 0/0 .text __dt__11daTagMmsg_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm daTagMmsg_c::~daTagMmsg_c() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/__dt__11daTagMmsg_cFv.s" -} -#pragma pop +daTagMmsg_c::~daTagMmsg_c() {} /* 80D5BB08-80D5BB30 000268 0028+00 1/0 0/0 0/0 .text daTagMmsg_Delete__FP11daTagMmsg_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagMmsg_Delete(daTagMmsg_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/daTagMmsg_Delete__FP11daTagMmsg_c.s" +static int daTagMmsg_Delete(daTagMmsg_c* tag) { + tag->~daTagMmsg_c(); + return 1; } -#pragma pop /* 80D5BB30-80D5BD08 000290 01D8+00 1/1 0/0 0/0 .text execute__11daTagMmsg_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daTagMmsg_c::execute() { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/execute__11daTagMmsg_cFv.s" +int daTagMmsg_c::execute() { + if (daPy_py_c::getMidnaActor() == NULL) { + return 1; + } + + if (this->field_0x572 != 0x3FF && + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[this->field_0x572])) { + return 1; + } + + if (this->field_0x569 != 0xFF && + dComIfGs_isSwitch(this->field_0x569, fopAcM_GetHomeRoomNo(this))) { + fopAcM_delete(this); + return 1; + } + + if (this->mUseFlg && !i_dComIfGp_event_runCheck() && this->field_0x56b && + this->field_0x569 != 0xFF) { + dComIfGs_onSwitch(this->field_0x569, fopAcM_GetHomeRoomNo(this)); + fopAcM_delete(this); + return 1; + } + + daPy_py_c* player = daPy_getLinkPlayerActorClass(); + if ((this->current.pos.y <= player->current.pos.y) && + (this->field_0x578 >= player->current.pos.y) && + (fopAcM_searchPlayerDistanceXZ2(this) < this->field_0x574) && + (this->field_0x570 == 0x3FF || + i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[this->field_0x570])) && + (this->field_0x568 == 0xFF || + dComIfGs_isSwitch(this->field_0x568, fopAcM_GetHomeRoomNo(this)))) { + player->setMidnaMsgNum(this, this->shape_angle.z); + } + + return 1; } -#pragma pop /* 80D5BD08-80D5BD28 000468 0020+00 1/0 0/0 0/0 .text daTagMmsg_Execute__FP11daTagMmsg_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daTagMmsg_Execute(daTagMmsg_c* param_0) { - nofralloc -#include "asm/rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg/daTagMmsg_Execute__FP11daTagMmsg_c.s" +static int daTagMmsg_Execute(daTagMmsg_c* tag) { + return tag->execute(); } -#pragma pop /* 80D5BD28-80D5BD30 000488 0008+00 1/0 0/0 0/0 .text daTagMmsg_Draw__FP11daTagMmsg_c */ -static bool daTagMmsg_Draw(daTagMmsg_c* param_0) { +static bool daTagMmsg_Draw(daTagMmsg_c* tag) { return true; } /* ############################################################################################## */ /* 80D5BD44-80D5BD64 -00001 0020+00 1/0 0/0 0/0 .data l_daTagMmsg_Method */ -SECTION_DATA static void* l_daTagMmsg_Method[8] = { - (void*)daTagMmsg_Create__FP10fopAc_ac_c, - (void*)daTagMmsg_Delete__FP11daTagMmsg_c, - (void*)daTagMmsg_Execute__FP11daTagMmsg_c, - (void*)NULL, - (void*)daTagMmsg_Draw__FP11daTagMmsg_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, +// This is probably of type leafdraw_method_class, but I can't get the data to have the right +// padding without these extra NULLs. +static void* l_daTagMmsg_Method[8] = { + daTagMmsg_Create, daTagMmsg_Delete, daTagMmsg_Execute, NULL, daTagMmsg_Draw, NULL, NULL, NULL, }; /* 80D5BD64-80D5BD94 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_Mmsg */ -SECTION_DATA extern void* g_profile_Tag_Mmsg[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x02C20000, (void*)&g_fpcLf_Method, - (void*)0x0000057C, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x00FF0000, (void*)&l_daTagMmsg_Method, - (void*)0x00044000, (void*)0x030E0000, -}; +extern actor_process_profile_definition g_profile_Tag_Mmsg = { + -3, // mLayerID + 7, // mListID + 0xFFFD, // mListPrio + PROC_Tag_Mmsg, // mProcName + 0, // unkA + &g_fpcLf_Method.mBase, // mSubMtd + sizeof(daTagMmsg_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method, // mSubMtd + 0x00FF, // mPriority + 0, // unk22[0] + 0, // unk22[1] + (leafdraw_method_class*)&l_daTagMmsg_Method, // mSubMtd + 0x00044000, // mStatus + 0x03, // mActorType + 0x0E, // mCullType + 0, // field_0x2e[0] + 0 // field_0x2e[1] +}; \ No newline at end of file