diff --git a/Progress.md b/Progress.md index 5f7aef9154d..bad404fea82 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 26.773703% | 962928 | 3596544 +.text | 26.824641% | 964760 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 34.493338% | 1386864 | 4020672 +Total | 34.538903% | 1388696 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 34.493338% | 1386864 | 4020672 +main.dol | 34.538903% | 1388696 | 4020672 RELs | 33.578532% | 3861640 | 11500324 -Total | 33.815510% | 5248504 | 15520996 +Total | 33.827314% | 5250336 | 15520996 ## RELs diff --git a/asm/msg/scrn/d_msg_scrn_arrow/__ct__15dMsgScrnArrow_cFv.s b/asm/msg/scrn/d_msg_scrn_arrow/__ct__15dMsgScrnArrow_cFv.s deleted file mode 100644 index 1edf5db5108..00000000000 --- a/asm/msg/scrn/d_msg_scrn_arrow/__ct__15dMsgScrnArrow_cFv.s +++ /dev/null @@ -1,182 +0,0 @@ -lbl_8023B9B4: -/* 8023B9B4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8023B9B8 7C 08 02 A6 */ mflr r0 -/* 8023B9BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8023B9C0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8023B9C4 93 C1 00 08 */ stw r30, 8(r1) -/* 8023B9C8 7C 7F 1B 78 */ mr r31, r3 -/* 8023B9CC 3C 80 80 3C */ lis r4, __vt__15dMsgScrnArrow_c@ha /* 0x803C0CF8@ha */ -/* 8023B9D0 38 04 0C F8 */ addi r0, r4, __vt__15dMsgScrnArrow_c@l /* 0x803C0CF8@l */ -/* 8023B9D4 90 03 00 00 */ stw r0, 0(r3) -/* 8023B9D8 38 60 01 18 */ li r3, 0x118 -/* 8023B9DC 48 09 32 71 */ bl __nw__FUl -/* 8023B9E0 7C 60 1B 79 */ or. r0, r3, r3 -/* 8023B9E4 41 82 00 0C */ beq lbl_8023B9F0 -/* 8023B9E8 48 0B CA B1 */ bl __ct__9J2DScreenFv -/* 8023B9EC 7C 60 1B 78 */ mr r0, r3 -lbl_8023B9F0: -/* 8023B9F0 90 1F 00 04 */ stw r0, 4(r31) -/* 8023B9F4 80 7F 00 04 */ lwz r3, 4(r31) -/* 8023B9F8 3C 80 80 3A */ lis r4, msg_scrn_d_msg_scrn_arrow__stringBase0@ha /* 0x803998A0@ha */ -/* 8023B9FC 38 84 98 A0 */ addi r4, r4, msg_scrn_d_msg_scrn_arrow__stringBase0@l /* 0x803998A0@l */ -/* 8023BA00 3C A0 00 02 */ lis r5, 2 -/* 8023BA04 3C C0 80 40 */ lis r6, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8023BA08 3B C6 61 C0 */ addi r30, r6, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8023BA0C 80 DE 5C 6C */ lwz r6, 0x5c6c(r30) -/* 8023BA10 48 0B CC 39 */ bl setPriority__9J2DScreenFPCcUlP10JKRArchive -/* 8023BA14 80 7F 00 04 */ lwz r3, 4(r31) -/* 8023BA18 48 01 96 D1 */ bl dPaneClass_showNullPane__FP9J2DScreen -/* 8023BA1C 38 60 00 04 */ li r3, 4 -/* 8023BA20 64 63 00 04 */ oris r3, r3, 4 -/* 8023BA24 7C 72 E3 A6 */ mtspr 0x392, r3 -/* 8023BA28 38 60 00 05 */ li r3, 5 -/* 8023BA2C 64 63 00 05 */ oris r3, r3, 5 -/* 8023BA30 7C 73 E3 A6 */ mtspr 0x393, r3 -/* 8023BA34 38 60 00 06 */ li r3, 6 -/* 8023BA38 64 63 00 06 */ oris r3, r3, 6 -/* 8023BA3C 7C 74 E3 A6 */ mtspr 0x394, r3 -/* 8023BA40 38 60 00 07 */ li r3, 7 -/* 8023BA44 64 63 00 07 */ oris r3, r3, 7 -/* 8023BA48 7C 75 E3 A6 */ mtspr 0x395, r3 -/* 8023BA4C 3C 80 80 3A */ lis r4, msg_scrn_d_msg_scrn_arrow__stringBase0@ha /* 0x803998A0@ha */ -/* 8023BA50 38 84 98 A0 */ addi r4, r4, msg_scrn_d_msg_scrn_arrow__stringBase0@l /* 0x803998A0@l */ -/* 8023BA54 38 64 00 1B */ addi r3, r4, 0x1b -/* 8023BA58 80 9E 5C 6C */ lwz r4, 0x5c6c(r30) -/* 8023BA5C 48 09 88 15 */ bl getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader -/* 8023BA60 48 0C D0 0D */ bl load__20J2DAnmLoaderDataBaseFPCv -/* 8023BA64 90 7F 00 08 */ stw r3, 8(r31) -/* 8023BA68 C0 02 B1 98 */ lfs f0, lit_3662(r2) -/* 8023BA6C D0 1F 00 1C */ stfs f0, 0x1c(r31) -/* 8023BA70 3C 80 80 3A */ lis r4, msg_scrn_d_msg_scrn_arrow__stringBase0@ha /* 0x803998A0@ha */ -/* 8023BA74 38 84 98 A0 */ addi r4, r4, msg_scrn_d_msg_scrn_arrow__stringBase0@l /* 0x803998A0@l */ -/* 8023BA78 38 64 00 36 */ addi r3, r4, 0x36 -/* 8023BA7C 80 9E 5C 6C */ lwz r4, 0x5c6c(r30) -/* 8023BA80 48 09 87 F1 */ bl getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader -/* 8023BA84 48 0C CF E9 */ bl load__20J2DAnmLoaderDataBaseFPCv -/* 8023BA88 90 7F 00 0C */ stw r3, 0xc(r31) -/* 8023BA8C 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8023BA90 80 9F 00 04 */ lwz r4, 4(r31) -/* 8023BA94 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BA98 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 8023BA9C 7D 89 03 A6 */ mtctr r12 -/* 8023BAA0 4E 80 04 21 */ bctrl -/* 8023BAA4 C0 02 B1 98 */ lfs f0, lit_3662(r2) -/* 8023BAA8 D0 1F 00 20 */ stfs f0, 0x20(r31) -/* 8023BAAC 38 60 00 6C */ li r3, 0x6c -/* 8023BAB0 48 09 31 9D */ bl __nw__FUl -/* 8023BAB4 7C 60 1B 79 */ or. r0, r3, r3 -/* 8023BAB8 41 82 00 28 */ beq lbl_8023BAE0 -/* 8023BABC 80 9F 00 04 */ lwz r4, 4(r31) -/* 8023BAC0 3C A0 79 61 */ lis r5, 0x7961 /* 0x79615F6E@ha */ -/* 8023BAC4 38 C5 5F 6E */ addi r6, r5, 0x5F6E /* 0x79615F6E@l */ -/* 8023BAC8 3C A0 73 65 */ lis r5, 0x7365 /* 0x7365745F@ha */ -/* 8023BACC 38 A5 74 5F */ addi r5, r5, 0x745F /* 0x7365745F@l */ -/* 8023BAD0 38 E0 00 00 */ li r7, 0 -/* 8023BAD4 39 00 00 00 */ li r8, 0 -/* 8023BAD8 48 01 7E AD */ bl __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap -/* 8023BADC 7C 60 1B 78 */ mr r0, r3 -lbl_8023BAE0: -/* 8023BAE0 90 1F 00 10 */ stw r0, 0x10(r31) -/* 8023BAE4 38 60 00 6C */ li r3, 0x6c -/* 8023BAE8 48 09 31 65 */ bl __nw__FUl -/* 8023BAEC 7C 60 1B 79 */ or. r0, r3, r3 -/* 8023BAF0 41 82 00 28 */ beq lbl_8023BB18 -/* 8023BAF4 80 9F 00 04 */ lwz r4, 4(r31) -/* 8023BAF8 3C A0 6E 65 */ lis r5, 0x6E65 /* 0x6E657874@ha */ -/* 8023BAFC 38 C5 78 74 */ addi r6, r5, 0x7874 /* 0x6E657874@l */ -/* 8023BB00 3C A0 00 79 */ lis r5, 0x0079 /* 0x0079615F@ha */ -/* 8023BB04 38 A5 61 5F */ addi r5, r5, 0x615F /* 0x0079615F@l */ -/* 8023BB08 38 E0 00 00 */ li r7, 0 -/* 8023BB0C 39 00 00 00 */ li r8, 0 -/* 8023BB10 48 01 7E 75 */ bl __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap -/* 8023BB14 7C 60 1B 78 */ mr r0, r3 -lbl_8023BB18: -/* 8023BB18 90 1F 00 14 */ stw r0, 0x14(r31) -/* 8023BB1C 80 7F 00 14 */ lwz r3, 0x14(r31) -/* 8023BB20 48 01 9A E9 */ bl hide__13CPaneMgrAlphaFv -/* 8023BB24 80 9F 00 14 */ lwz r4, 0x14(r31) -/* 8023BB28 80 64 00 04 */ lwz r3, 4(r4) -/* 8023BB2C 80 9F 00 08 */ lwz r4, 8(r31) -/* 8023BB30 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BB34 81 8C 00 60 */ lwz r12, 0x60(r12) -/* 8023BB38 7D 89 03 A6 */ mtctr r12 -/* 8023BB3C 4E 80 04 21 */ bctrl -/* 8023BB40 80 7F 00 04 */ lwz r3, 4(r31) -/* 8023BB44 3C 80 6E 65 */ lis r4, 0x6E65 /* 0x6E657874@ha */ -/* 8023BB48 38 C4 78 74 */ addi r6, r4, 0x7874 /* 0x6E657874@l */ -/* 8023BB4C 3C 80 00 79 */ lis r4, 0x0079 /* 0x0079616A@ha */ -/* 8023BB50 38 A4 61 6A */ addi r5, r4, 0x616A /* 0x0079616A@l */ -/* 8023BB54 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BB58 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 8023BB5C 7D 89 03 A6 */ mtctr r12 -/* 8023BB60 4E 80 04 21 */ bctrl -/* 8023BB64 80 9F 00 0C */ lwz r4, 0xc(r31) -/* 8023BB68 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BB6C 81 8C 00 64 */ lwz r12, 0x64(r12) -/* 8023BB70 7D 89 03 A6 */ mtctr r12 -/* 8023BB74 4E 80 04 21 */ bctrl -/* 8023BB78 80 7F 00 04 */ lwz r3, 4(r31) -/* 8023BB7C 3C 80 6E 65 */ lis r4, 0x6E65 /* 0x6E65786C@ha */ -/* 8023BB80 38 C4 78 6C */ addi r6, r4, 0x786C /* 0x6E65786C@l */ -/* 8023BB84 3C 80 79 61 */ lis r4, 0x7961 /* 0x79616A69@ha */ -/* 8023BB88 38 A4 6A 69 */ addi r5, r4, 0x6A69 /* 0x79616A69@l */ -/* 8023BB8C 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BB90 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 8023BB94 7D 89 03 A6 */ mtctr r12 -/* 8023BB98 4E 80 04 21 */ bctrl -/* 8023BB9C 80 9F 00 0C */ lwz r4, 0xc(r31) -/* 8023BBA0 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BBA4 81 8C 00 64 */ lwz r12, 0x64(r12) -/* 8023BBA8 7D 89 03 A6 */ mtctr r12 -/* 8023BBAC 4E 80 04 21 */ bctrl -/* 8023BBB0 38 60 00 6C */ li r3, 0x6c -/* 8023BBB4 48 09 30 99 */ bl __nw__FUl -/* 8023BBB8 7C 60 1B 79 */ or. r0, r3, r3 -/* 8023BBBC 41 82 00 24 */ beq lbl_8023BBE0 -/* 8023BBC0 80 9F 00 04 */ lwz r4, 4(r31) -/* 8023BBC4 3C A0 5F 65 */ lis r5, 0x5F65 /* 0x5F656E64@ha */ -/* 8023BBC8 38 C5 6E 64 */ addi r6, r5, 0x6E64 /* 0x5F656E64@l */ -/* 8023BBCC 38 A0 79 61 */ li r5, 0x7961 -/* 8023BBD0 38 E0 00 00 */ li r7, 0 -/* 8023BBD4 39 00 00 00 */ li r8, 0 -/* 8023BBD8 48 01 7D AD */ bl __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap -/* 8023BBDC 7C 60 1B 78 */ mr r0, r3 -lbl_8023BBE0: -/* 8023BBE0 90 1F 00 18 */ stw r0, 0x18(r31) -/* 8023BBE4 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8023BBE8 48 01 9A 21 */ bl hide__13CPaneMgrAlphaFv -/* 8023BBEC 80 7F 00 04 */ lwz r3, 4(r31) -/* 8023BBF0 3C 80 5F 65 */ lis r4, 0x5F65 /* 0x5F656E64@ha */ -/* 8023BBF4 38 C4 6E 64 */ addi r6, r4, 0x6E64 /* 0x5F656E64@l */ -/* 8023BBF8 3C 80 00 79 */ lis r4, 0x0079 /* 0x0079616A@ha */ -/* 8023BBFC 38 A4 61 6A */ addi r5, r4, 0x616A /* 0x0079616A@l */ -/* 8023BC00 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BC04 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 8023BC08 7D 89 03 A6 */ mtctr r12 -/* 8023BC0C 4E 80 04 21 */ bctrl -/* 8023BC10 80 9F 00 0C */ lwz r4, 0xc(r31) -/* 8023BC14 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BC18 81 8C 00 64 */ lwz r12, 0x64(r12) -/* 8023BC1C 7D 89 03 A6 */ mtctr r12 -/* 8023BC20 4E 80 04 21 */ bctrl -/* 8023BC24 80 7F 00 04 */ lwz r3, 4(r31) -/* 8023BC28 3C 80 65 6E */ lis r4, 0x656E /* 0x656E646C@ha */ -/* 8023BC2C 38 C4 64 6C */ addi r6, r4, 0x646C /* 0x656E646C@l */ -/* 8023BC30 3C 80 79 61 */ lis r4, 0x7961 /* 0x79616A69@ha */ -/* 8023BC34 38 A4 6A 69 */ addi r5, r4, 0x6A69 /* 0x79616A69@l */ -/* 8023BC38 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BC3C 81 8C 00 3C */ lwz r12, 0x3c(r12) -/* 8023BC40 7D 89 03 A6 */ mtctr r12 -/* 8023BC44 4E 80 04 21 */ bctrl -/* 8023BC48 80 9F 00 0C */ lwz r4, 0xc(r31) -/* 8023BC4C 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BC50 81 8C 00 64 */ lwz r12, 0x64(r12) -/* 8023BC54 7D 89 03 A6 */ mtctr r12 -/* 8023BC58 4E 80 04 21 */ bctrl -/* 8023BC5C 7F E3 FB 78 */ mr r3, r31 -/* 8023BC60 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8023BC64 83 C1 00 08 */ lwz r30, 8(r1) -/* 8023BC68 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8023BC6C 7C 08 03 A6 */ mtlr r0 -/* 8023BC70 38 21 00 10 */ addi r1, r1, 0x10 -/* 8023BC74 4E 80 00 20 */ blr diff --git a/asm/msg/scrn/d_msg_scrn_arrow/__dt__15dMsgScrnArrow_cFv.s b/asm/msg/scrn/d_msg_scrn_arrow/__dt__15dMsgScrnArrow_cFv.s deleted file mode 100644 index c0521add439..00000000000 --- a/asm/msg/scrn/d_msg_scrn_arrow/__dt__15dMsgScrnArrow_cFv.s +++ /dev/null @@ -1,90 +0,0 @@ -lbl_8023BC78: -/* 8023BC78 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8023BC7C 7C 08 02 A6 */ mflr r0 -/* 8023BC80 90 01 00 14 */ stw r0, 0x14(r1) -/* 8023BC84 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8023BC88 93 C1 00 08 */ stw r30, 8(r1) -/* 8023BC8C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8023BC90 7C 9F 23 78 */ mr r31, r4 -/* 8023BC94 41 82 01 10 */ beq lbl_8023BDA4 -/* 8023BC98 3C 60 80 3C */ lis r3, __vt__15dMsgScrnArrow_c@ha /* 0x803C0CF8@ha */ -/* 8023BC9C 38 03 0C F8 */ addi r0, r3, __vt__15dMsgScrnArrow_c@l /* 0x803C0CF8@l */ -/* 8023BCA0 90 1E 00 00 */ stw r0, 0(r30) -/* 8023BCA4 80 7E 00 04 */ lwz r3, 4(r30) -/* 8023BCA8 28 03 00 00 */ cmplwi r3, 0 -/* 8023BCAC 41 82 00 18 */ beq lbl_8023BCC4 -/* 8023BCB0 38 80 00 01 */ li r4, 1 -/* 8023BCB4 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BCB8 81 8C 00 08 */ lwz r12, 8(r12) -/* 8023BCBC 7D 89 03 A6 */ mtctr r12 -/* 8023BCC0 4E 80 04 21 */ bctrl -lbl_8023BCC4: -/* 8023BCC4 38 00 00 00 */ li r0, 0 -/* 8023BCC8 90 1E 00 04 */ stw r0, 4(r30) -/* 8023BCCC 80 7E 00 08 */ lwz r3, 8(r30) -/* 8023BCD0 28 03 00 00 */ cmplwi r3, 0 -/* 8023BCD4 41 82 00 18 */ beq lbl_8023BCEC -/* 8023BCD8 38 80 00 01 */ li r4, 1 -/* 8023BCDC 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BCE0 81 8C 00 08 */ lwz r12, 8(r12) -/* 8023BCE4 7D 89 03 A6 */ mtctr r12 -/* 8023BCE8 4E 80 04 21 */ bctrl -lbl_8023BCEC: -/* 8023BCEC 38 00 00 00 */ li r0, 0 -/* 8023BCF0 90 1E 00 08 */ stw r0, 8(r30) -/* 8023BCF4 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 8023BCF8 28 03 00 00 */ cmplwi r3, 0 -/* 8023BCFC 41 82 00 18 */ beq lbl_8023BD14 -/* 8023BD00 38 80 00 01 */ li r4, 1 -/* 8023BD04 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BD08 81 8C 00 08 */ lwz r12, 8(r12) -/* 8023BD0C 7D 89 03 A6 */ mtctr r12 -/* 8023BD10 4E 80 04 21 */ bctrl -lbl_8023BD14: -/* 8023BD14 38 00 00 00 */ li r0, 0 -/* 8023BD18 90 1E 00 0C */ stw r0, 0xc(r30) -/* 8023BD1C 80 7E 00 10 */ lwz r3, 0x10(r30) -/* 8023BD20 28 03 00 00 */ cmplwi r3, 0 -/* 8023BD24 41 82 00 18 */ beq lbl_8023BD3C -/* 8023BD28 38 80 00 01 */ li r4, 1 -/* 8023BD2C 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BD30 81 8C 00 08 */ lwz r12, 8(r12) -/* 8023BD34 7D 89 03 A6 */ mtctr r12 -/* 8023BD38 4E 80 04 21 */ bctrl -lbl_8023BD3C: -/* 8023BD3C 38 00 00 00 */ li r0, 0 -/* 8023BD40 90 1E 00 10 */ stw r0, 0x10(r30) -/* 8023BD44 80 7E 00 14 */ lwz r3, 0x14(r30) -/* 8023BD48 28 03 00 00 */ cmplwi r3, 0 -/* 8023BD4C 41 82 00 18 */ beq lbl_8023BD64 -/* 8023BD50 38 80 00 01 */ li r4, 1 -/* 8023BD54 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BD58 81 8C 00 08 */ lwz r12, 8(r12) -/* 8023BD5C 7D 89 03 A6 */ mtctr r12 -/* 8023BD60 4E 80 04 21 */ bctrl -lbl_8023BD64: -/* 8023BD64 38 00 00 00 */ li r0, 0 -/* 8023BD68 90 1E 00 14 */ stw r0, 0x14(r30) -/* 8023BD6C 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 8023BD70 28 03 00 00 */ cmplwi r3, 0 -/* 8023BD74 41 82 00 18 */ beq lbl_8023BD8C -/* 8023BD78 38 80 00 01 */ li r4, 1 -/* 8023BD7C 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BD80 81 8C 00 08 */ lwz r12, 8(r12) -/* 8023BD84 7D 89 03 A6 */ mtctr r12 -/* 8023BD88 4E 80 04 21 */ bctrl -lbl_8023BD8C: -/* 8023BD8C 38 00 00 00 */ li r0, 0 -/* 8023BD90 90 1E 00 18 */ stw r0, 0x18(r30) -/* 8023BD94 7F E0 07 35 */ extsh. r0, r31 -/* 8023BD98 40 81 00 0C */ ble lbl_8023BDA4 -/* 8023BD9C 7F C3 F3 78 */ mr r3, r30 -/* 8023BDA0 48 09 2F 9D */ bl __dl__FPv -lbl_8023BDA4: -/* 8023BDA4 7F C3 F3 78 */ mr r3, r30 -/* 8023BDA8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8023BDAC 83 C1 00 08 */ lwz r30, 8(r1) -/* 8023BDB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8023BDB4 7C 08 03 A6 */ mtlr r0 -/* 8023BDB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8023BDBC 4E 80 00 20 */ blr diff --git a/asm/msg/scrn/d_msg_scrn_arrow/arwAnimeInit__15dMsgScrnArrow_cFv.s b/asm/msg/scrn/d_msg_scrn_arrow/arwAnimeInit__15dMsgScrnArrow_cFv.s deleted file mode 100644 index 5972ed833ec..00000000000 --- a/asm/msg/scrn/d_msg_scrn_arrow/arwAnimeInit__15dMsgScrnArrow_cFv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_8023BE34: -/* 8023BE34 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8023BE38 7C 08 02 A6 */ mflr r0 -/* 8023BE3C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8023BE40 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8023BE44 7C 7F 1B 78 */ mr r31, r3 -/* 8023BE48 80 63 00 14 */ lwz r3, 0x14(r3) -/* 8023BE4C 48 01 97 BD */ bl hide__13CPaneMgrAlphaFv -/* 8023BE50 C0 22 B1 98 */ lfs f1, lit_3662(r2) -/* 8023BE54 D0 3F 00 1C */ stfs f1, 0x1c(r31) -/* 8023BE58 C0 1F 00 1C */ lfs f0, 0x1c(r31) -/* 8023BE5C 80 7F 00 08 */ lwz r3, 8(r31) -/* 8023BE60 D0 03 00 08 */ stfs f0, 8(r3) -/* 8023BE64 D0 3F 00 20 */ stfs f1, 0x20(r31) -/* 8023BE68 C0 1F 00 20 */ lfs f0, 0x20(r31) -/* 8023BE6C 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8023BE70 D0 03 00 08 */ stfs f0, 8(r3) -/* 8023BE74 80 7F 00 04 */ lwz r3, 4(r31) -/* 8023BE78 48 0B D8 19 */ bl animation__9J2DScreenFv -/* 8023BE7C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8023BE80 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8023BE84 7C 08 03 A6 */ mtlr r0 -/* 8023BE88 38 21 00 10 */ addi r1, r1, 0x10 -/* 8023BE8C 4E 80 00 20 */ blr diff --git a/asm/msg/scrn/d_msg_scrn_arrow/arwAnimeMove__15dMsgScrnArrow_cFv.s b/asm/msg/scrn/d_msg_scrn_arrow/arwAnimeMove__15dMsgScrnArrow_cFv.s deleted file mode 100644 index 7c5dd8dff69..00000000000 --- a/asm/msg/scrn/d_msg_scrn_arrow/arwAnimeMove__15dMsgScrnArrow_cFv.s +++ /dev/null @@ -1,82 +0,0 @@ -lbl_8023BE90: -/* 8023BE90 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8023BE94 7C 08 02 A6 */ mflr r0 -/* 8023BE98 90 01 00 24 */ stw r0, 0x24(r1) -/* 8023BE9C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8023BEA0 7C 7F 1B 78 */ mr r31, r3 -/* 8023BEA4 80 63 00 14 */ lwz r3, 0x14(r3) -/* 8023BEA8 48 01 97 A5 */ bl isVisible__13CPaneMgrAlphaFv -/* 8023BEAC 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8023BEB0 40 82 00 0C */ bne lbl_8023BEBC -/* 8023BEB4 80 7F 00 14 */ lwz r3, 0x14(r31) -/* 8023BEB8 48 01 97 11 */ bl show__13CPaneMgrAlphaFv -lbl_8023BEBC: -/* 8023BEBC 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8023BEC0 48 01 97 8D */ bl isVisible__13CPaneMgrAlphaFv -/* 8023BEC4 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8023BEC8 28 00 00 01 */ cmplwi r0, 1 -/* 8023BECC 40 82 00 0C */ bne lbl_8023BED8 -/* 8023BED0 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8023BED4 48 01 97 35 */ bl hide__13CPaneMgrAlphaFv -lbl_8023BED8: -/* 8023BED8 C0 3F 00 1C */ lfs f1, 0x1c(r31) -/* 8023BEDC C0 02 B1 9C */ lfs f0, lit_3761(r2) -/* 8023BEE0 EC 01 00 2A */ fadds f0, f1, f0 -/* 8023BEE4 D0 1F 00 1C */ stfs f0, 0x1c(r31) -/* 8023BEE8 80 7F 00 08 */ lwz r3, 8(r31) -/* 8023BEEC A8 03 00 06 */ lha r0, 6(r3) -/* 8023BEF0 C0 5F 00 1C */ lfs f2, 0x1c(r31) -/* 8023BEF4 C8 22 B1 A0 */ lfd f1, lit_3763(r2) -/* 8023BEF8 6C 03 80 00 */ xoris r3, r0, 0x8000 -/* 8023BEFC 90 61 00 0C */ stw r3, 0xc(r1) -/* 8023BF00 3C 00 43 30 */ lis r0, 0x4330 -/* 8023BF04 90 01 00 08 */ stw r0, 8(r1) -/* 8023BF08 C8 01 00 08 */ lfd f0, 8(r1) -/* 8023BF0C EC 00 08 28 */ fsubs f0, f0, f1 -/* 8023BF10 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 8023BF14 4C 41 13 82 */ cror 2, 1, 2 -/* 8023BF18 40 82 00 1C */ bne lbl_8023BF34 -/* 8023BF1C 90 61 00 0C */ stw r3, 0xc(r1) -/* 8023BF20 90 01 00 08 */ stw r0, 8(r1) -/* 8023BF24 C8 01 00 08 */ lfd f0, 8(r1) -/* 8023BF28 EC 00 08 28 */ fsubs f0, f0, f1 -/* 8023BF2C EC 02 00 28 */ fsubs f0, f2, f0 -/* 8023BF30 D0 1F 00 1C */ stfs f0, 0x1c(r31) -lbl_8023BF34: -/* 8023BF34 C0 1F 00 1C */ lfs f0, 0x1c(r31) -/* 8023BF38 80 7F 00 08 */ lwz r3, 8(r31) -/* 8023BF3C D0 03 00 08 */ stfs f0, 8(r3) -/* 8023BF40 C0 3F 00 20 */ lfs f1, 0x20(r31) -/* 8023BF44 C0 02 B1 9C */ lfs f0, lit_3761(r2) -/* 8023BF48 EC 01 00 2A */ fadds f0, f1, f0 -/* 8023BF4C D0 1F 00 20 */ stfs f0, 0x20(r31) -/* 8023BF50 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8023BF54 A8 03 00 06 */ lha r0, 6(r3) -/* 8023BF58 C0 5F 00 20 */ lfs f2, 0x20(r31) -/* 8023BF5C C8 22 B1 A0 */ lfd f1, lit_3763(r2) -/* 8023BF60 6C 03 80 00 */ xoris r3, r0, 0x8000 -/* 8023BF64 90 61 00 0C */ stw r3, 0xc(r1) -/* 8023BF68 3C 00 43 30 */ lis r0, 0x4330 -/* 8023BF6C 90 01 00 08 */ stw r0, 8(r1) -/* 8023BF70 C8 01 00 08 */ lfd f0, 8(r1) -/* 8023BF74 EC 00 08 28 */ fsubs f0, f0, f1 -/* 8023BF78 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 8023BF7C 4C 41 13 82 */ cror 2, 1, 2 -/* 8023BF80 40 82 00 1C */ bne lbl_8023BF9C -/* 8023BF84 90 61 00 0C */ stw r3, 0xc(r1) -/* 8023BF88 90 01 00 08 */ stw r0, 8(r1) -/* 8023BF8C C8 01 00 08 */ lfd f0, 8(r1) -/* 8023BF90 EC 00 08 28 */ fsubs f0, f0, f1 -/* 8023BF94 EC 02 00 28 */ fsubs f0, f2, f0 -/* 8023BF98 D0 1F 00 20 */ stfs f0, 0x20(r31) -lbl_8023BF9C: -/* 8023BF9C C0 1F 00 20 */ lfs f0, 0x20(r31) -/* 8023BFA0 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8023BFA4 D0 03 00 08 */ stfs f0, 8(r3) -/* 8023BFA8 80 7F 00 04 */ lwz r3, 4(r31) -/* 8023BFAC 48 0B D6 E5 */ bl animation__9J2DScreenFv -/* 8023BFB0 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8023BFB4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8023BFB8 7C 08 03 A6 */ mtlr r0 -/* 8023BFBC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8023BFC0 4E 80 00 20 */ blr diff --git a/asm/msg/scrn/d_msg_scrn_arrow/dotAnimeInit__15dMsgScrnArrow_cFv.s b/asm/msg/scrn/d_msg_scrn_arrow/dotAnimeInit__15dMsgScrnArrow_cFv.s deleted file mode 100644 index 963e3a2062b..00000000000 --- a/asm/msg/scrn/d_msg_scrn_arrow/dotAnimeInit__15dMsgScrnArrow_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8023BFC4: -/* 8023BFC4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8023BFC8 7C 08 02 A6 */ mflr r0 -/* 8023BFCC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8023BFD0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8023BFD4 7C 7F 1B 78 */ mr r31, r3 -/* 8023BFD8 80 63 00 18 */ lwz r3, 0x18(r3) -/* 8023BFDC 48 01 96 2D */ bl hide__13CPaneMgrAlphaFv -/* 8023BFE0 C0 02 B1 98 */ lfs f0, lit_3662(r2) -/* 8023BFE4 D0 1F 00 20 */ stfs f0, 0x20(r31) -/* 8023BFE8 C0 1F 00 20 */ lfs f0, 0x20(r31) -/* 8023BFEC 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8023BFF0 D0 03 00 08 */ stfs f0, 8(r3) -/* 8023BFF4 80 7F 00 04 */ lwz r3, 4(r31) -/* 8023BFF8 48 0B D6 99 */ bl animation__9J2DScreenFv -/* 8023BFFC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8023C000 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8023C004 7C 08 03 A6 */ mtlr r0 -/* 8023C008 38 21 00 10 */ addi r1, r1, 0x10 -/* 8023C00C 4E 80 00 20 */ blr diff --git a/asm/msg/scrn/d_msg_scrn_arrow/dotAnimeMove__15dMsgScrnArrow_cFv.s b/asm/msg/scrn/d_msg_scrn_arrow/dotAnimeMove__15dMsgScrnArrow_cFv.s deleted file mode 100644 index 88a08a1a3fa..00000000000 --- a/asm/msg/scrn/d_msg_scrn_arrow/dotAnimeMove__15dMsgScrnArrow_cFv.s +++ /dev/null @@ -1,55 +0,0 @@ -lbl_8023C010: -/* 8023C010 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8023C014 7C 08 02 A6 */ mflr r0 -/* 8023C018 90 01 00 24 */ stw r0, 0x24(r1) -/* 8023C01C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8023C020 7C 7F 1B 78 */ mr r31, r3 -/* 8023C024 80 63 00 14 */ lwz r3, 0x14(r3) -/* 8023C028 48 01 96 25 */ bl isVisible__13CPaneMgrAlphaFv -/* 8023C02C 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8023C030 28 00 00 01 */ cmplwi r0, 1 -/* 8023C034 40 82 00 0C */ bne lbl_8023C040 -/* 8023C038 80 7F 00 14 */ lwz r3, 0x14(r31) -/* 8023C03C 48 01 95 CD */ bl hide__13CPaneMgrAlphaFv -lbl_8023C040: -/* 8023C040 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8023C044 48 01 96 09 */ bl isVisible__13CPaneMgrAlphaFv -/* 8023C048 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8023C04C 40 82 00 0C */ bne lbl_8023C058 -/* 8023C050 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8023C054 48 01 95 75 */ bl show__13CPaneMgrAlphaFv -lbl_8023C058: -/* 8023C058 C0 3F 00 20 */ lfs f1, 0x20(r31) -/* 8023C05C C0 02 B1 9C */ lfs f0, lit_3761(r2) -/* 8023C060 EC 01 00 2A */ fadds f0, f1, f0 -/* 8023C064 D0 1F 00 20 */ stfs f0, 0x20(r31) -/* 8023C068 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8023C06C A8 03 00 06 */ lha r0, 6(r3) -/* 8023C070 C0 5F 00 20 */ lfs f2, 0x20(r31) -/* 8023C074 C8 22 B1 A0 */ lfd f1, lit_3763(r2) -/* 8023C078 6C 03 80 00 */ xoris r3, r0, 0x8000 -/* 8023C07C 90 61 00 0C */ stw r3, 0xc(r1) -/* 8023C080 3C 00 43 30 */ lis r0, 0x4330 -/* 8023C084 90 01 00 08 */ stw r0, 8(r1) -/* 8023C088 C8 01 00 08 */ lfd f0, 8(r1) -/* 8023C08C EC 00 08 28 */ fsubs f0, f0, f1 -/* 8023C090 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 8023C094 4C 41 13 82 */ cror 2, 1, 2 -/* 8023C098 40 82 00 1C */ bne lbl_8023C0B4 -/* 8023C09C 90 61 00 0C */ stw r3, 0xc(r1) -/* 8023C0A0 90 01 00 08 */ stw r0, 8(r1) -/* 8023C0A4 C8 01 00 08 */ lfd f0, 8(r1) -/* 8023C0A8 EC 00 08 28 */ fsubs f0, f0, f1 -/* 8023C0AC EC 02 00 28 */ fsubs f0, f2, f0 -/* 8023C0B0 D0 1F 00 20 */ stfs f0, 0x20(r31) -lbl_8023C0B4: -/* 8023C0B4 C0 1F 00 20 */ lfs f0, 0x20(r31) -/* 8023C0B8 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8023C0BC D0 03 00 08 */ stfs f0, 8(r3) -/* 8023C0C0 80 7F 00 04 */ lwz r3, 4(r31) -/* 8023C0C4 48 0B D5 CD */ bl animation__9J2DScreenFv -/* 8023C0C8 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8023C0CC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8023C0D0 7C 08 03 A6 */ mtlr r0 -/* 8023C0D4 38 21 00 20 */ addi r1, r1, 0x20 -/* 8023C0D8 4E 80 00 20 */ blr diff --git a/asm/msg/scrn/d_msg_scrn_arrow/draw__15dMsgScrnArrow_cFv.s b/asm/msg/scrn/d_msg_scrn_arrow/draw__15dMsgScrnArrow_cFv.s deleted file mode 100644 index 501cfe6dd3c..00000000000 --- a/asm/msg/scrn/d_msg_scrn_arrow/draw__15dMsgScrnArrow_cFv.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_8023BDC0: -/* 8023BDC0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8023BDC4 7C 08 02 A6 */ mflr r0 -/* 8023BDC8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8023BDCC 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8023BDD0 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8023BDD4 80 84 5F 50 */ lwz r4, 0x5f50(r4) -/* 8023BDD8 80 63 00 04 */ lwz r3, 4(r3) -/* 8023BDDC C0 22 B1 98 */ lfs f1, lit_3662(r2) -/* 8023BDE0 FC 40 08 90 */ fmr f2, f1 -/* 8023BDE4 48 0B D0 F1 */ bl draw__9J2DScreenFffPC14J2DGrafContext -/* 8023BDE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8023BDEC 7C 08 03 A6 */ mtlr r0 -/* 8023BDF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8023BDF4 4E 80 00 20 */ blr diff --git a/asm/msg/scrn/d_msg_scrn_arrow/setPos__15dMsgScrnArrow_cFff.s b/asm/msg/scrn/d_msg_scrn_arrow/setPos__15dMsgScrnArrow_cFff.s deleted file mode 100644 index 96666ac419f..00000000000 --- a/asm/msg/scrn/d_msg_scrn_arrow/setPos__15dMsgScrnArrow_cFff.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8023BDF8: -/* 8023BDF8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8023BDFC 7C 08 02 A6 */ mflr r0 -/* 8023BE00 90 01 00 14 */ stw r0, 0x14(r1) -/* 8023BE04 80 63 00 10 */ lwz r3, 0x10(r3) -/* 8023BE08 80 63 00 04 */ lwz r3, 4(r3) -/* 8023BE0C D0 23 00 D4 */ stfs f1, 0xd4(r3) -/* 8023BE10 D0 43 00 D8 */ stfs f2, 0xd8(r3) -/* 8023BE14 81 83 00 00 */ lwz r12, 0(r3) -/* 8023BE18 81 8C 00 2C */ lwz r12, 0x2c(r12) -/* 8023BE1C 7D 89 03 A6 */ mtctr r12 -/* 8023BE20 4E 80 04 21 */ bctrl -/* 8023BE24 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8023BE28 7C 08 03 A6 */ mtlr r0 -/* 8023BE2C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8023BE30 4E 80 00 20 */ blr diff --git a/include/msg/scrn/d_msg_scrn_arrow.h b/include/msg/scrn/d_msg_scrn_arrow.h index 2a86e86402c..ec521936aae 100644 --- a/include/msg/scrn/d_msg_scrn_arrow.h +++ b/include/msg/scrn/d_msg_scrn_arrow.h @@ -3,4 +3,31 @@ #include "dolphin/types.h" +class J2DScreen; +class J2DAnmTransform; +class J2DAnmColor; +class J2DScreen; +class CPaneMgr; + +class dMsgScrnArrow_c { +public: + /* 8023B9B4 */ dMsgScrnArrow_c(); + /* 8023BC78 */ virtual ~dMsgScrnArrow_c(); + /* 8023BDC0 */ void draw(); + /* 8023BDF8 */ void setPos(f32, f32); + /* 8023BE34 */ void arwAnimeInit(); + /* 8023BE90 */ void arwAnimeMove(); + /* 8023BFC4 */ void dotAnimeInit(); + /* 8023C010 */ void dotAnimeMove(); + + /* 0x04 */ J2DScreen* mScreen; + /* 0x08 */ J2DAnmTransform* mAnmBck; + /* 0x0C */ J2DAnmColor* mAnmBpk; + /* 0x10 */ CPaneMgr* mPaneMgr0; + /* 0x14 */ CPaneMgr* mPaneMgr1; + /* 0x18 */ CPaneMgr* mPaneMgr2; + /* 0x1C */ f32 mBckFrame; + /* 0x20 */ f32 mBpkFrame; +}; + #endif /* MSG_SCRN_D_MSG_SCRN_ARROW_H */ diff --git a/src/msg/scrn/d_msg_scrn_arrow.cpp b/src/msg/scrn/d_msg_scrn_arrow.cpp index 4634e35c7c4..7995a3beed5 100644 --- a/src/msg/scrn/d_msg_scrn_arrow.cpp +++ b/src/msg/scrn/d_msg_scrn_arrow.cpp @@ -1,212 +1,129 @@ -// -// Generated By: dol2asm // Translation Unit: msg/scrn/d_msg_scrn_arrow -// #include "msg/scrn/d_msg_scrn_arrow.h" -#include "dol2asm.h" +#include "JSystem/J2DGraph/J2DAnmLoader.h" +#include "JSystem/J2DGraph/J2DGrafContext.h" +#include "JSystem/J2DGraph/J2DScreen.h" +#include "JSystem/JKernel/JKRExpHeap.h" +#include "d/com/d_com_inf_game.h" +#include "d/pane/d_pane_class.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" -// -// Types: -// +/* 8023B9B4-8023BC78 2362F4 02C4+00 0/0 4/4 0/0 .text __ct__15dMsgScrnArrow_cFv */ +dMsgScrnArrow_c::dMsgScrnArrow_c() { + mScreen = new J2DScreen(); + mScreen->setPriority("zelda_window_yajirushi.blo", 0x20000, dComIfGp_getMsgArchive(0)); + dPaneClass_showNullPane(mScreen); + i_OSInitFastCast(); -struct dMsgScrnArrow_c { - /* 8023B9B4 */ dMsgScrnArrow_c(); - /* 8023BC78 */ ~dMsgScrnArrow_c(); - /* 8023BDC0 */ void draw(); - /* 8023BDF8 */ void setPos(f32, f32); - /* 8023BE34 */ void arwAnimeInit(); - /* 8023BE90 */ void arwAnimeMove(); - /* 8023BFC4 */ void dotAnimeInit(); - /* 8023C010 */ void dotAnimeMove(); -}; + mAnmBck = (J2DAnmTransform*)J2DAnmLoaderDataBase::load( + JKRFileLoader::getGlbResource("zelda_window_yajirushi.bck", dComIfGp_getMsgArchive(0))); + mBckFrame = 0.0f; -struct JKRFileLoader { - /* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*); -}; + mAnmBpk = (J2DAnmColor*)J2DAnmLoaderDataBase::load( + JKRFileLoader::getGlbResource("zelda_window_yajirushi.bpk", dComIfGp_getMsgArchive(0))); + mAnmBpk->searchUpdateMaterialID(mScreen); + mBpkFrame = 0.0f; -struct JKRExpHeap {}; + mPaneMgr0 = new CPaneMgr(mScreen, 'set_ya_n', 0, NULL); + mPaneMgr1 = new CPaneMgr(mScreen, '\0ya_next', 0, NULL); + mPaneMgr1->hide(); + mPaneMgr1->mPane->setAnimation(mAnmBck); + mScreen->search('\0yajnext')->setAnimation(mAnmBpk); + mScreen->search('yajinexl')->setAnimation(mAnmBpk); -struct JKRArchive {}; - -struct J2DGrafContext {}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); - /* 802F9690 */ void animation(); -}; - -struct J2DAnmLoaderDataBase { - /* 80308A6C */ void load(void const*); -}; - -struct CPaneMgrAlpha { - /* 802555C8 */ void show(); - /* 80255608 */ void hide(); - /* 8025564C */ void isVisible(); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); -}; - -// -// Forward References: -// - -extern "C" void __ct__15dMsgScrnArrow_cFv(); -extern "C" void __dt__15dMsgScrnArrow_cFv(); -extern "C" void draw__15dMsgScrnArrow_cFv(); -extern "C" void setPos__15dMsgScrnArrow_cFff(); -extern "C" void arwAnimeInit__15dMsgScrnArrow_cFv(); -extern "C" void arwAnimeMove__15dMsgScrnArrow_cFv(); -extern "C" void dotAnimeInit__15dMsgScrnArrow_cFv(); -extern "C" void dotAnimeMove__15dMsgScrnArrow_cFv(); -extern "C" extern char const* const msg_scrn_d_msg_scrn_arrow__stringBase0; - -// -// External References: -// - -extern "C" void __ct__8CPaneMgrFP9J2DScreenUxUcP10JKRExpHeap(); -extern "C" void dPaneClass_showNullPane__FP9J2DScreen(); -extern "C" void show__13CPaneMgrAlphaFv(); -extern "C" void hide__13CPaneMgrAlphaFv(); -extern "C" void isVisible__13CPaneMgrAlphaFv(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader(); -extern "C" void __ct__9J2DScreenFv(); -extern "C" void setPriority__9J2DScreenFPCcUlP10JKRArchive(); -extern "C" void draw__9J2DScreenFffPC14J2DGrafContext(); -extern "C" void animation__9J2DScreenFv(); -extern "C" void load__20J2DAnmLoaderDataBaseFPCv(); -extern "C" extern u8 g_dComIfG_gameInfo[122384]; - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803998A0-803998A0 025F00 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_803998A0 = "zelda_window_yajirushi.blo"; -SECTION_DEAD static char const* const stringBase_803998BB = "zelda_window_yajirushi.bck"; -SECTION_DEAD static char const* const stringBase_803998D6 = "zelda_window_yajirushi.bpk"; -/* @stringBase0 padding */ -SECTION_DEAD static char const* const pad_803998F1 = "\0\0\0\0\0\0"; -#pragma pop - -/* 803C0CF8-803C0D08 01DE18 000C+04 2/2 0/0 0/0 .data __vt__15dMsgScrnArrow_c */ -SECTION_DATA extern void* __vt__15dMsgScrnArrow_c[3 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15dMsgScrnArrow_cFv, - /* padding */ - NULL, -}; - -/* 80454B98-80454B9C 003198 0004+00 4/4 0/0 0/0 .sdata2 @3662 */ -SECTION_SDATA2 static u8 lit_3662[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 8023B9B4-8023BC78 2362F4 02C4+00 0/0 4/4 0/0 .text __ct__15dMsgScrnArrow_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMsgScrnArrow_c::dMsgScrnArrow_c() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/__ct__15dMsgScrnArrow_cFv.s" + mPaneMgr2 = new CPaneMgr(mScreen, 'ya_end', 0, NULL); + mPaneMgr2->hide(); + mScreen->search('\0yaj_end')->setAnimation(mAnmBpk); + mScreen->search('yajiendl')->setAnimation(mAnmBpk); } -#pragma pop -/* 8023BC78-8023BDC0 2365B8 0148+00 1/0 0/0 0/0 .text __dt__15dMsgScrnArrow_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMsgScrnArrow_c::~dMsgScrnArrow_c() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/__dt__15dMsgScrnArrow_cFv.s" +/* 8023BC78-8023BDC0 2365B8 0148+00 1/0 0/0 0/0 .text __dt__15dMsgScrnArrow_cFv */ +dMsgScrnArrow_c::~dMsgScrnArrow_c() { + delete mScreen; + mScreen = NULL; + + delete mAnmBck; + mAnmBck = NULL; + + delete mAnmBpk; + mAnmBpk = NULL; + + delete mPaneMgr0; + mPaneMgr0 = NULL; + + delete mPaneMgr1; + mPaneMgr1 = NULL; + + delete mPaneMgr2; + mPaneMgr2 = NULL; } -#pragma pop -/* 8023BDC0-8023BDF8 236700 0038+00 0/0 5/5 0/0 .text draw__15dMsgScrnArrow_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnArrow_c::draw() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/draw__15dMsgScrnArrow_cFv.s" +/* 8023BDC0-8023BDF8 236700 0038+00 0/0 5/5 0/0 .text draw__15dMsgScrnArrow_cFv */ +void dMsgScrnArrow_c::draw() { + J2DGrafContext* ctx = dComIfGp_getCurrentGrafPort(); + mScreen->draw(0.0f, 0.0f, ctx); } -#pragma pop -/* 8023BDF8-8023BE34 236738 003C+00 0/0 5/5 0/0 .text setPos__15dMsgScrnArrow_cFff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnArrow_c::setPos(f32 param_0, f32 param_1) { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/setPos__15dMsgScrnArrow_cFff.s" +/* 8023BDF8-8023BE34 236738 003C+00 0/0 5/5 0/0 .text setPos__15dMsgScrnArrow_cFff */ +void dMsgScrnArrow_c::setPos(f32 x, f32 y) { + mPaneMgr0->translate(x, y); } -#pragma pop -/* 8023BE34-8023BE90 236774 005C+00 0/0 9/9 0/0 .text arwAnimeInit__15dMsgScrnArrow_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnArrow_c::arwAnimeInit() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/arwAnimeInit__15dMsgScrnArrow_cFv.s" +/* 8023BE34-8023BE90 236774 005C+00 0/0 9/9 0/0 .text arwAnimeInit__15dMsgScrnArrow_cFv */ +void dMsgScrnArrow_c::arwAnimeInit() { + mPaneMgr1->hide(); + mBckFrame = 0.0f; + mAnmBck->setFrame(mBckFrame); + mBpkFrame = 0.0f; + mAnmBpk->setFrame(mBpkFrame); + mScreen->animation(); } -#pragma pop -/* ############################################################################################## */ -/* 80454B9C-80454BA0 00319C 0004+00 2/2 0/0 0/0 .sdata2 @3761 */ -SECTION_SDATA2 static f32 lit_3761 = 1.0f; - -/* 80454BA0-80454BA8 0031A0 0008+00 2/2 0/0 0/0 .sdata2 @3763 */ -SECTION_SDATA2 static f64 lit_3763 = 4503601774854144.0 /* cast s32 to float */; - -/* 8023BE90-8023BFC4 2367D0 0134+00 0/0 4/4 0/0 .text arwAnimeMove__15dMsgScrnArrow_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnArrow_c::arwAnimeMove() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/arwAnimeMove__15dMsgScrnArrow_cFv.s" +/* 8023BE90-8023BFC4 2367D0 0134+00 0/0 4/4 0/0 .text arwAnimeMove__15dMsgScrnArrow_cFv */ +void dMsgScrnArrow_c::arwAnimeMove() { + if (!mPaneMgr1->isVisible()) { + mPaneMgr1->show(); + } + if (mPaneMgr2->isVisible() == true) { + mPaneMgr2->hide(); + } + mBckFrame += 1.0f; + if (mBckFrame >= (f32)mAnmBck->getFrameMax()) { + mBckFrame -= (f32)mAnmBck->getFrameMax(); + } + mAnmBck->setFrame(mBckFrame); + mBpkFrame += 1.0f; + if (mBpkFrame >= (f32)mAnmBpk->getFrameMax()) { + mBpkFrame -= (f32)mAnmBpk->getFrameMax(); + } + mAnmBpk->setFrame(mBpkFrame); + mScreen->animation(); } -#pragma pop -/* 8023BFC4-8023C010 236904 004C+00 0/0 3/3 0/0 .text dotAnimeInit__15dMsgScrnArrow_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnArrow_c::dotAnimeInit() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/dotAnimeInit__15dMsgScrnArrow_cFv.s" +/* 8023BFC4-8023C010 236904 004C+00 0/0 3/3 0/0 .text dotAnimeInit__15dMsgScrnArrow_cFv */ +void dMsgScrnArrow_c::dotAnimeInit() { + mPaneMgr2->hide(); + mBpkFrame = 0.0f; + mAnmBpk->setFrame(mBpkFrame); + mScreen->animation(); } -#pragma pop -/* 8023C010-8023C0DC 236950 00CC+00 0/0 3/3 0/0 .text dotAnimeMove__15dMsgScrnArrow_cFv - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgScrnArrow_c::dotAnimeMove() { - nofralloc -#include "asm/msg/scrn/d_msg_scrn_arrow/dotAnimeMove__15dMsgScrnArrow_cFv.s" +/* 8023C010-8023C0DC 236950 00CC+00 0/0 3/3 0/0 .text dotAnimeMove__15dMsgScrnArrow_cFv */ +void dMsgScrnArrow_c::dotAnimeMove() { + if (mPaneMgr1->isVisible() == true) { + mPaneMgr1->hide(); + } + if (!mPaneMgr2->isVisible()) { + mPaneMgr2->show(); + } + mBpkFrame += 1.0f; + if (mBpkFrame >= (f32)mAnmBpk->getFrameMax()) { + mBpkFrame -= (f32)mAnmBpk->getFrameMax(); + } + mAnmBpk->setFrame(mBpkFrame); + mScreen->animation(); } -#pragma pop /* 803998A0-803998A0 025F00 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */