diff --git a/asm/d/msg/d_msg_string_base/__ct__16dMsgStringBase_cFv.s b/asm/d/msg/d_msg_string_base/__ct__16dMsgStringBase_cFv.s deleted file mode 100644 index 01bc1f7cca3..00000000000 --- a/asm/d/msg/d_msg_string_base/__ct__16dMsgStringBase_cFv.s +++ /dev/null @@ -1,102 +0,0 @@ -lbl_802493B4: -/* 802493B4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802493B8 7C 08 02 A6 */ mflr r0 -/* 802493BC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802493C0 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802493C4 7C 7F 1B 78 */ mr r31, r3 -/* 802493C8 3C 80 80 3C */ lis r4, __vt__16dMsgStringBase_c@ha /* 0x803C1478@ha */ -/* 802493CC 38 04 14 78 */ addi r0, r4, __vt__16dMsgStringBase_c@l /* 0x803C1478@l */ -/* 802493D0 90 03 00 00 */ stw r0, 0(r3) -/* 802493D4 38 00 00 00 */ li r0, 0 -/* 802493D8 B0 03 00 20 */ sth r0, 0x20(r3) -/* 802493DC 48 00 03 25 */ bl getResource__16dMsgStringBase_cFv -/* 802493E0 38 60 00 20 */ li r3, 0x20 -/* 802493E4 48 08 58 69 */ bl __nw__FUl -/* 802493E8 7C 60 1B 79 */ or. r0, r3, r3 -/* 802493EC 41 82 00 0C */ beq lbl_802493F8 -/* 802493F0 48 05 FC 7D */ bl __ct__Q28JMessage18TResourceContainerFv -/* 802493F4 7C 60 1B 78 */ mr r0, r3 -lbl_802493F8: -/* 802493F8 90 1F 00 04 */ stw r0, 4(r31) -/* 802493FC 38 60 00 38 */ li r3, 0x38 -/* 80249400 48 08 58 4D */ bl __nw__FUl -/* 80249404 7C 60 1B 79 */ or. r0, r3, r3 -/* 80249408 41 82 00 0C */ beq lbl_80249414 -/* 8024940C 4B FE 67 51 */ bl __ct__24jmessage_string_tControlFv -/* 80249410 7C 60 1B 78 */ mr r0, r3 -lbl_80249414: -/* 80249414 90 1F 00 08 */ stw r0, 8(r31) -/* 80249418 38 60 00 88 */ li r3, 0x88 -/* 8024941C 48 08 58 31 */ bl __nw__FUl -/* 80249420 7C 60 1B 79 */ or. r0, r3, r3 -/* 80249424 41 82 00 0C */ beq lbl_80249430 -/* 80249428 4B FE 64 99 */ bl __ct__26jmessage_string_tReferenceFv -/* 8024942C 7C 60 1B 78 */ mr r0, r3 -lbl_80249430: -/* 80249430 90 1F 00 0C */ stw r0, 0xc(r31) -/* 80249434 38 60 00 8C */ li r3, 0x8c -/* 80249438 48 08 58 15 */ bl __nw__FUl -/* 8024943C 7C 60 1B 79 */ or. r0, r3, r3 -/* 80249440 41 82 00 14 */ beq lbl_80249454 -/* 80249444 80 9F 00 0C */ lwz r4, 0xc(r31) -/* 80249448 80 BF 00 08 */ lwz r5, 8(r31) -/* 8024944C 4B FE 75 BD */ bl __ct__34jmessage_string_tSequenceProcessorFPC26jmessage_string_tReferenceP24jmessage_string_tControl -/* 80249450 7C 60 1B 78 */ mr r0, r3 -lbl_80249454: -/* 80249454 90 1F 00 10 */ stw r0, 0x10(r31) -/* 80249458 38 60 05 58 */ li r3, 0x558 -/* 8024945C 48 08 57 F1 */ bl __nw__FUl -/* 80249460 7C 60 1B 79 */ or. r0, r3, r3 -/* 80249464 41 82 00 10 */ beq lbl_80249474 -/* 80249468 80 9F 00 0C */ lwz r4, 0xc(r31) -/* 8024946C 4B FE 77 5D */ bl __ct__35jmessage_string_tRenderingProcessorFPC26jmessage_string_tReference -/* 80249470 7C 60 1B 78 */ mr r0, r3 -lbl_80249474: -/* 80249474 90 1F 00 14 */ stw r0, 0x14(r31) -/* 80249478 38 60 00 0C */ li r3, 0xc -/* 8024947C 48 08 57 D1 */ bl __nw__FUl -/* 80249480 7C 60 1B 79 */ or. r0, r3, r3 -/* 80249484 41 82 00 10 */ beq lbl_80249494 -/* 80249488 80 9F 00 04 */ lwz r4, 4(r31) -/* 8024948C 48 05 FC A5 */ bl __ct__Q28JMessage6TParseFPQ28JMessage18TResourceContainer -/* 80249490 7C 60 1B 78 */ mr r0, r3 -lbl_80249494: -/* 80249494 90 1F 00 18 */ stw r0, 0x18(r31) -/* 80249498 80 1F 00 04 */ lwz r0, 4(r31) -/* 8024949C 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 802494A0 90 03 00 04 */ stw r0, 4(r3) -/* 802494A4 80 1F 00 10 */ lwz r0, 0x10(r31) -/* 802494A8 80 7F 00 08 */ lwz r3, 8(r31) -/* 802494AC 90 03 00 04 */ stw r0, 4(r3) -/* 802494B0 80 1F 00 14 */ lwz r0, 0x14(r31) -/* 802494B4 80 7F 00 08 */ lwz r3, 8(r31) -/* 802494B8 90 03 00 08 */ stw r0, 8(r3) -/* 802494BC 80 1F 00 1C */ lwz r0, 0x1c(r31) -/* 802494C0 90 01 00 08 */ stw r0, 8(r1) -/* 802494C4 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 802494C8 38 81 00 08 */ addi r4, r1, 8 -/* 802494CC 38 A0 00 00 */ li r5, 0 -/* 802494D0 48 09 34 41 */ bl parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl -/* 802494D4 80 7F 00 08 */ lwz r3, 8(r31) -/* 802494D8 48 05 E0 FD */ bl reset__Q28JMessage8TControlFv -/* 802494DC 80 7F 00 08 */ lwz r3, 8(r31) -/* 802494E0 80 83 00 04 */ lwz r4, 4(r3) -/* 802494E4 28 04 00 00 */ cmplwi r4, 0 -/* 802494E8 41 82 00 0C */ beq lbl_802494F4 -/* 802494EC 38 00 00 00 */ li r0, 0 -/* 802494F0 90 04 00 08 */ stw r0, 8(r4) -lbl_802494F4: -/* 802494F4 80 83 00 08 */ lwz r4, 8(r3) -/* 802494F8 28 04 00 00 */ cmplwi r4, 0 -/* 802494FC 41 82 00 0C */ beq lbl_80249508 -/* 80249500 38 00 00 00 */ li r0, 0 -/* 80249504 90 04 00 08 */ stw r0, 8(r4) -lbl_80249508: -/* 80249508 38 00 00 00 */ li r0, 0 -/* 8024950C 90 03 00 10 */ stw r0, 0x10(r3) -/* 80249510 7F E3 FB 78 */ mr r3, r31 -/* 80249514 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80249518 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8024951C 7C 08 03 A6 */ mtlr r0 -/* 80249520 38 21 00 20 */ addi r1, r1, 0x20 -/* 80249524 4E 80 00 20 */ blr diff --git a/asm/d/msg/d_msg_string_base/func_802498D8.s b/asm/d/msg/d_msg_string_base/func_802498D8.s deleted file mode 100644 index 75de2b75ee2..00000000000 --- a/asm/d/msg/d_msg_string_base/func_802498D8.s +++ /dev/null @@ -1,97 +0,0 @@ -lbl_802498D8: -/* 802498D8 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 802498DC 7C 08 02 A6 */ mflr r0 -/* 802498E0 90 01 00 44 */ stw r0, 0x44(r1) -/* 802498E4 39 61 00 40 */ addi r11, r1, 0x40 -/* 802498E8 48 11 88 DD */ bl _savegpr_23 -/* 802498EC 7C 78 1B 78 */ mr r24, r3 -/* 802498F0 7C 99 23 78 */ mr r25, r4 -/* 802498F4 7C BA 2B 78 */ mr r26, r5 -/* 802498F8 7C DB 33 78 */ mr r27, r6 -/* 802498FC 7C FC 3B 78 */ mr r28, r7 -/* 80249900 7D 1D 43 78 */ mr r29, r8 -/* 80249904 7D 3E 4B 78 */ mr r30, r9 -/* 80249908 7D 5F 53 78 */ mr r31, r10 -/* 8024990C 8A E1 00 4B */ lbz r23, 0x4b(r1) -/* 80249910 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 80249914 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */ -/* 80249918 80 83 00 10 */ lwz r4, 0x10(r3) -/* 8024991C 28 04 00 00 */ cmplwi r4, 0 -/* 80249920 41 82 00 64 */ beq lbl_80249984 -/* 80249924 28 19 13 88 */ cmplwi r25, 0x1388 -/* 80249928 40 81 00 34 */ ble lbl_8024995C -/* 8024992C 80 18 00 1C */ lwz r0, 0x1c(r24) -/* 80249930 80 63 00 14 */ lwz r3, 0x14(r3) -/* 80249934 7C 00 18 40 */ cmplw r0, r3 -/* 80249938 41 82 00 4C */ beq lbl_80249984 -/* 8024993C 90 78 00 1C */ stw r3, 0x1c(r24) -/* 80249940 80 18 00 1C */ lwz r0, 0x1c(r24) -/* 80249944 90 01 00 0C */ stw r0, 0xc(r1) -/* 80249948 80 78 00 18 */ lwz r3, 0x18(r24) -/* 8024994C 38 81 00 0C */ addi r4, r1, 0xc -/* 80249950 38 A0 00 80 */ li r5, 0x80 -/* 80249954 48 09 2F BD */ bl parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl -/* 80249958 48 00 00 2C */ b lbl_80249984 -lbl_8024995C: -/* 8024995C 80 18 00 1C */ lwz r0, 0x1c(r24) -/* 80249960 7C 00 20 40 */ cmplw r0, r4 -/* 80249964 41 82 00 20 */ beq lbl_80249984 -/* 80249968 90 98 00 1C */ stw r4, 0x1c(r24) -/* 8024996C 80 18 00 1C */ lwz r0, 0x1c(r24) -/* 80249970 90 01 00 08 */ stw r0, 8(r1) -/* 80249974 80 78 00 18 */ lwz r3, 0x18(r24) -/* 80249978 38 81 00 08 */ addi r4, r1, 8 -/* 8024997C 38 A0 00 80 */ li r5, 0x80 -/* 80249980 48 09 2F 91 */ bl parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl -lbl_80249984: -/* 80249984 80 78 00 0C */ lwz r3, 0xc(r24) -/* 80249988 7F 84 E3 78 */ mr r4, r28 -/* 8024998C 7F A5 EB 78 */ mr r5, r29 -/* 80249990 7F C6 F3 78 */ mr r6, r30 -/* 80249994 7F E7 FB 78 */ mr r7, r31 -/* 80249998 7E E8 BB 78 */ mr r8, r23 -/* 8024999C 4B FE 60 11 */ bl init__26jmessage_string_tReferenceFP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc -/* 802499A0 80 78 00 0C */ lwz r3, 0xc(r24) -/* 802499A4 9B 43 00 83 */ stb r26, 0x83(r3) -/* 802499A8 80 78 00 0C */ lwz r3, 0xc(r24) -/* 802499AC 9B 63 00 82 */ stb r27, 0x82(r3) -/* 802499B0 80 7C 01 08 */ lwz r3, 0x108(r28) -/* 802499B4 90 61 00 10 */ stw r3, 0x10(r1) -/* 802499B8 80 1C 01 04 */ lwz r0, 0x104(r28) -/* 802499BC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802499C0 80 98 00 0C */ lwz r4, 0xc(r24) -/* 802499C4 90 04 00 78 */ stw r0, 0x78(r4) -/* 802499C8 90 64 00 7C */ stw r3, 0x7c(r4) -/* 802499CC 80 78 00 08 */ lwz r3, 8(r24) -/* 802499D0 7F 24 CB 78 */ mr r4, r25 -/* 802499D4 38 A0 00 00 */ li r5, 0 -/* 802499D8 38 C0 00 00 */ li r6, 0 -/* 802499DC 48 05 DF 19 */ bl setMessageID__Q28JMessage8TControlFUlUlPb -/* 802499E0 80 78 00 08 */ lwz r3, 8(r24) -/* 802499E4 48 05 DC 51 */ bl update__Q28JMessage8TControlFv -/* 802499E8 80 78 00 08 */ lwz r3, 8(r24) -/* 802499EC 48 05 DC D1 */ bl render__Q28JMessage8TControlFv -/* 802499F0 80 78 00 08 */ lwz r3, 8(r24) -/* 802499F4 48 05 DB E1 */ bl reset__Q28JMessage8TControlFv -/* 802499F8 80 78 00 08 */ lwz r3, 8(r24) -/* 802499FC 80 83 00 04 */ lwz r4, 4(r3) -/* 80249A00 28 04 00 00 */ cmplwi r4, 0 -/* 80249A04 41 82 00 0C */ beq lbl_80249A10 -/* 80249A08 38 00 00 00 */ li r0, 0 -/* 80249A0C 90 04 00 08 */ stw r0, 8(r4) -lbl_80249A10: -/* 80249A10 80 83 00 08 */ lwz r4, 8(r3) -/* 80249A14 28 04 00 00 */ cmplwi r4, 0 -/* 80249A18 41 82 00 0C */ beq lbl_80249A24 -/* 80249A1C 38 00 00 00 */ li r0, 0 -/* 80249A20 90 04 00 08 */ stw r0, 8(r4) -lbl_80249A24: -/* 80249A24 38 00 00 00 */ li r0, 0 -/* 80249A28 90 03 00 10 */ stw r0, 0x10(r3) -/* 80249A2C C0 22 B3 70 */ lfs f1, lit_4046(r2) -/* 80249A30 39 61 00 40 */ addi r11, r1, 0x40 -/* 80249A34 48 11 87 DD */ bl _restgpr_23 -/* 80249A38 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80249A3C 7C 08 03 A6 */ mtlr r0 -/* 80249A40 38 21 00 40 */ addi r1, r1, 0x40 -/* 80249A44 4E 80 00 20 */ blr diff --git a/asm/d/msg/d_msg_string_base/getMessageLocal__16dMsgStringBase_cFUlPc.s b/asm/d/msg/d_msg_string_base/getMessageLocal__16dMsgStringBase_cFUlPc.s deleted file mode 100644 index b6525a69c4f..00000000000 --- a/asm/d/msg/d_msg_string_base/getMessageLocal__16dMsgStringBase_cFUlPc.s +++ /dev/null @@ -1,84 +0,0 @@ -lbl_80249A70: -/* 80249A70 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80249A74 7C 08 02 A6 */ mflr r0 -/* 80249A78 90 01 00 24 */ stw r0, 0x24(r1) -/* 80249A7C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80249A80 48 11 87 5D */ bl _savegpr_29 -/* 80249A84 7C 7D 1B 78 */ mr r29, r3 -/* 80249A88 7C 9E 23 78 */ mr r30, r4 -/* 80249A8C 7C BF 2B 78 */ mr r31, r5 -/* 80249A90 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 80249A94 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */ -/* 80249A98 80 83 00 10 */ lwz r4, 0x10(r3) -/* 80249A9C 28 04 00 00 */ cmplwi r4, 0 -/* 80249AA0 41 82 00 64 */ beq lbl_80249B04 -/* 80249AA4 28 1E 13 88 */ cmplwi r30, 0x1388 -/* 80249AA8 40 81 00 34 */ ble lbl_80249ADC -/* 80249AAC 80 1D 00 1C */ lwz r0, 0x1c(r29) -/* 80249AB0 80 63 00 14 */ lwz r3, 0x14(r3) -/* 80249AB4 7C 00 18 40 */ cmplw r0, r3 -/* 80249AB8 41 82 00 4C */ beq lbl_80249B04 -/* 80249ABC 90 7D 00 1C */ stw r3, 0x1c(r29) -/* 80249AC0 80 1D 00 1C */ lwz r0, 0x1c(r29) -/* 80249AC4 90 01 00 0C */ stw r0, 0xc(r1) -/* 80249AC8 80 7D 00 18 */ lwz r3, 0x18(r29) -/* 80249ACC 38 81 00 0C */ addi r4, r1, 0xc -/* 80249AD0 38 A0 00 80 */ li r5, 0x80 -/* 80249AD4 48 09 2E 3D */ bl parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl -/* 80249AD8 48 00 00 2C */ b lbl_80249B04 -lbl_80249ADC: -/* 80249ADC 80 1D 00 1C */ lwz r0, 0x1c(r29) -/* 80249AE0 7C 00 20 40 */ cmplw r0, r4 -/* 80249AE4 41 82 00 20 */ beq lbl_80249B04 -/* 80249AE8 90 9D 00 1C */ stw r4, 0x1c(r29) -/* 80249AEC 80 1D 00 1C */ lwz r0, 0x1c(r29) -/* 80249AF0 90 01 00 08 */ stw r0, 8(r1) -/* 80249AF4 80 7D 00 18 */ lwz r3, 0x18(r29) -/* 80249AF8 38 81 00 08 */ addi r4, r1, 8 -/* 80249AFC 38 A0 00 80 */ li r5, 0x80 -/* 80249B00 48 09 2E 11 */ bl parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl -lbl_80249B04: -/* 80249B04 80 7D 00 0C */ lwz r3, 0xc(r29) -/* 80249B08 38 80 00 00 */ li r4, 0 -/* 80249B0C 38 A0 00 00 */ li r5, 0 -/* 80249B10 38 C0 00 00 */ li r6, 0 -/* 80249B14 38 E0 00 00 */ li r7, 0 -/* 80249B18 39 00 00 00 */ li r8, 0 -/* 80249B1C 4B FE 5E 91 */ bl init__26jmessage_string_tReferenceFP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc -/* 80249B20 80 7D 00 08 */ lwz r3, 8(r29) -/* 80249B24 7F C4 F3 78 */ mr r4, r30 -/* 80249B28 38 A0 00 00 */ li r5, 0 -/* 80249B2C 38 C0 00 00 */ li r6, 0 -/* 80249B30 48 05 DD C5 */ bl setMessageID__Q28JMessage8TControlFUlUlPb -/* 80249B34 80 7D 00 08 */ lwz r3, 8(r29) -/* 80249B38 48 05 DA FD */ bl update__Q28JMessage8TControlFv -/* 80249B3C 80 7D 00 08 */ lwz r3, 8(r29) -/* 80249B40 48 05 DB 7D */ bl render__Q28JMessage8TControlFv -/* 80249B44 80 7D 00 08 */ lwz r3, 8(r29) -/* 80249B48 48 05 DA 8D */ bl reset__Q28JMessage8TControlFv -/* 80249B4C 80 7D 00 08 */ lwz r3, 8(r29) -/* 80249B50 80 83 00 04 */ lwz r4, 4(r3) -/* 80249B54 28 04 00 00 */ cmplwi r4, 0 -/* 80249B58 41 82 00 0C */ beq lbl_80249B64 -/* 80249B5C 38 00 00 00 */ li r0, 0 -/* 80249B60 90 04 00 08 */ stw r0, 8(r4) -lbl_80249B64: -/* 80249B64 80 83 00 08 */ lwz r4, 8(r3) -/* 80249B68 28 04 00 00 */ cmplwi r4, 0 -/* 80249B6C 41 82 00 0C */ beq lbl_80249B78 -/* 80249B70 38 00 00 00 */ li r0, 0 -/* 80249B74 90 04 00 08 */ stw r0, 8(r4) -lbl_80249B78: -/* 80249B78 38 00 00 00 */ li r0, 0 -/* 80249B7C 90 03 00 10 */ stw r0, 0x10(r3) -/* 80249B80 80 7D 00 14 */ lwz r3, 0x14(r29) -/* 80249B84 38 83 00 54 */ addi r4, r3, 0x54 -/* 80249B88 7F E3 FB 78 */ mr r3, r31 -/* 80249B8C 48 11 EF A1 */ bl strcpy -/* 80249B90 C0 22 B3 70 */ lfs f1, lit_4046(r2) -/* 80249B94 39 61 00 20 */ addi r11, r1, 0x20 -/* 80249B98 48 11 86 91 */ bl _restgpr_29 -/* 80249B9C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80249BA0 7C 08 03 A6 */ mtlr r0 -/* 80249BA4 38 21 00 20 */ addi r1, r1, 0x20 -/* 80249BA8 4E 80 00 20 */ blr diff --git a/asm/d/msg/d_msg_string_base/getMessage__16dMsgStringBase_cFUlPc.s b/asm/d/msg/d_msg_string_base/getMessage__16dMsgStringBase_cFUlPc.s deleted file mode 100644 index 35552843da8..00000000000 --- a/asm/d/msg/d_msg_string_base/getMessage__16dMsgStringBase_cFUlPc.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80249BF8: -/* 80249BF8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80249BFC 7C 08 02 A6 */ mflr r0 -/* 80249C00 90 01 00 14 */ stw r0, 0x14(r1) -/* 80249C04 4B FF FE 6D */ bl getMessageLocal__16dMsgStringBase_cFUlPc -/* 80249C08 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80249C0C 7C 08 03 A6 */ mtlr r0 -/* 80249C10 38 21 00 10 */ addi r1, r1, 0x10 -/* 80249C14 4E 80 00 20 */ blr diff --git a/asm/d/msg/d_msg_string_base/getPageMax__16dMsgStringBase_cFi.s b/asm/d/msg/d_msg_string_base/getPageMax__16dMsgStringBase_cFi.s deleted file mode 100644 index 2f78a10372e..00000000000 --- a/asm/d/msg/d_msg_string_base/getPageMax__16dMsgStringBase_cFi.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80249A48: -/* 80249A48 80 63 00 0C */ lwz r3, 0xc(r3) -/* 80249A4C A8 A3 00 80 */ lha r5, 0x80(r3) -/* 80249A50 7C 05 23 D6 */ divw r0, r5, r4 -/* 80249A54 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 80249A58 7C 00 21 D6 */ mullw r0, r0, r4 -/* 80249A5C 7C 00 28 51 */ subf. r0, r0, r5 -/* 80249A60 4D 82 00 20 */ beqlr -/* 80249A64 38 03 00 01 */ addi r0, r3, 1 -/* 80249A68 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 80249A6C 4E 80 00 20 */ blr diff --git a/asm/d/msg/d_msg_string_base/getResource__16dMsgStringBase_cFv.s b/asm/d/msg/d_msg_string_base/getResource__16dMsgStringBase_cFv.s deleted file mode 100644 index d269bc36889..00000000000 --- a/asm/d/msg/d_msg_string_base/getResource__16dMsgStringBase_cFv.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_80249700: -/* 80249700 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80249704 7C 08 02 A6 */ mflr r0 -/* 80249708 90 01 00 14 */ stw r0, 0x14(r1) -/* 8024970C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80249710 7C 7F 1B 78 */ mr r31, r3 -/* 80249714 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 80249718 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */ -/* 8024971C 80 03 00 10 */ lwz r0, 0x10(r3) -/* 80249720 90 1F 00 1C */ stw r0, 0x1c(r31) -/* 80249724 80 1F 00 1C */ lwz r0, 0x1c(r31) -/* 80249728 28 00 00 00 */ cmplwi r0, 0 -/* 8024972C 40 82 00 28 */ bne lbl_80249754 -/* 80249730 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80249734 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80249738 80 A3 5C F4 */ lwz r5, 0x5cf4(r3) -/* 8024973C 3C 60 52 4F */ lis r3, 0x524F /* 0x524F4F54@ha */ -/* 80249740 38 63 4F 54 */ addi r3, r3, 0x4F54 /* 0x524F4F54@l */ -/* 80249744 3C 80 80 3A */ lis r4, d_msg_d_msg_string_base__stringBase0@ha /* 0x80399C98@ha */ -/* 80249748 38 84 9C 98 */ addi r4, r4, d_msg_d_msg_string_base__stringBase0@l /* 0x80399C98@l */ -/* 8024974C 48 08 C3 ED */ bl getGlbResource__10JKRArchiveFUlPCcP10JKRArchive -/* 80249750 90 7F 00 1C */ stw r3, 0x1c(r31) -lbl_80249754: -/* 80249754 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80249758 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8024975C 7C 08 03 A6 */ mtlr r0 -/* 80249760 38 21 00 10 */ addi r1, r1, 0x10 -/* 80249764 4E 80 00 20 */ blr diff --git a/asm/d/msg/d_msg_string_base/getStringLocal__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s b/asm/d/msg/d_msg_string_base/getStringLocal__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s deleted file mode 100644 index 27530016a71..00000000000 --- a/asm/d/msg/d_msg_string_base/getStringLocal__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s +++ /dev/null @@ -1,97 +0,0 @@ -lbl_80249768: -/* 80249768 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8024976C 7C 08 02 A6 */ mflr r0 -/* 80249770 90 01 00 44 */ stw r0, 0x44(r1) -/* 80249774 DB E1 00 38 */ stfd f31, 0x38(r1) -/* 80249778 39 61 00 38 */ addi r11, r1, 0x38 -/* 8024977C 48 11 8A 51 */ bl _savegpr_25 -/* 80249780 7C 7E 1B 78 */ mr r30, r3 -/* 80249784 7C 9F 23 78 */ mr r31, r4 -/* 80249788 7C B9 2B 78 */ mr r25, r5 -/* 8024978C 7C DA 33 78 */ mr r26, r6 -/* 80249790 7C FB 3B 78 */ mr r27, r7 -/* 80249794 7D 1C 43 78 */ mr r28, r8 -/* 80249798 7D 3D 4B 78 */ mr r29, r9 -/* 8024979C 3C 60 80 43 */ lis r3, g_meter2_info@ha /* 0x80430188@ha */ -/* 802497A0 38 63 01 88 */ addi r3, r3, g_meter2_info@l /* 0x80430188@l */ -/* 802497A4 80 83 00 10 */ lwz r4, 0x10(r3) -/* 802497A8 28 04 00 00 */ cmplwi r4, 0 -/* 802497AC 41 82 00 64 */ beq lbl_80249810 -/* 802497B0 28 1F 13 88 */ cmplwi r31, 0x1388 -/* 802497B4 40 81 00 34 */ ble lbl_802497E8 -/* 802497B8 80 1E 00 1C */ lwz r0, 0x1c(r30) -/* 802497BC 80 63 00 14 */ lwz r3, 0x14(r3) -/* 802497C0 7C 00 18 40 */ cmplw r0, r3 -/* 802497C4 41 82 00 4C */ beq lbl_80249810 -/* 802497C8 90 7E 00 1C */ stw r3, 0x1c(r30) -/* 802497CC 80 1E 00 1C */ lwz r0, 0x1c(r30) -/* 802497D0 90 01 00 0C */ stw r0, 0xc(r1) -/* 802497D4 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 802497D8 38 81 00 0C */ addi r4, r1, 0xc -/* 802497DC 38 A0 00 80 */ li r5, 0x80 -/* 802497E0 48 09 31 31 */ bl parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl -/* 802497E4 48 00 00 2C */ b lbl_80249810 -lbl_802497E8: -/* 802497E8 80 1E 00 1C */ lwz r0, 0x1c(r30) -/* 802497EC 7C 00 20 40 */ cmplw r0, r4 -/* 802497F0 41 82 00 20 */ beq lbl_80249810 -/* 802497F4 90 9E 00 1C */ stw r4, 0x1c(r30) -/* 802497F8 80 1E 00 1C */ lwz r0, 0x1c(r30) -/* 802497FC 90 01 00 08 */ stw r0, 8(r1) -/* 80249800 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 80249804 38 81 00 08 */ addi r4, r1, 8 -/* 80249808 38 A0 00 80 */ li r5, 0x80 -/* 8024980C 48 09 31 05 */ bl parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl -lbl_80249810: -/* 80249810 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 80249814 7F 24 CB 78 */ mr r4, r25 -/* 80249818 7F 45 D3 78 */ mr r5, r26 -/* 8024981C 7F 66 DB 78 */ mr r6, r27 -/* 80249820 7F 87 E3 78 */ mr r7, r28 -/* 80249824 7F A8 EB 78 */ mr r8, r29 -/* 80249828 4B FE 61 85 */ bl init__26jmessage_string_tReferenceFP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc -/* 8024982C 80 79 01 08 */ lwz r3, 0x108(r25) -/* 80249830 90 61 00 10 */ stw r3, 0x10(r1) -/* 80249834 80 19 01 04 */ lwz r0, 0x104(r25) -/* 80249838 90 01 00 14 */ stw r0, 0x14(r1) -/* 8024983C 80 9E 00 0C */ lwz r4, 0xc(r30) -/* 80249840 90 04 00 78 */ stw r0, 0x78(r4) -/* 80249844 90 64 00 7C */ stw r3, 0x7c(r4) -/* 80249848 80 7E 00 08 */ lwz r3, 8(r30) -/* 8024984C 7F E4 FB 78 */ mr r4, r31 -/* 80249850 38 A0 00 00 */ li r5, 0 -/* 80249854 38 C0 00 00 */ li r6, 0 -/* 80249858 48 05 E0 9D */ bl setMessageID__Q28JMessage8TControlFUlUlPb -/* 8024985C 80 7E 00 08 */ lwz r3, 8(r30) -/* 80249860 48 05 DD D5 */ bl update__Q28JMessage8TControlFv -/* 80249864 80 7E 00 08 */ lwz r3, 8(r30) -/* 80249868 48 05 DE 55 */ bl render__Q28JMessage8TControlFv -/* 8024986C 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 80249870 38 80 00 00 */ li r4, 0 -/* 80249874 4B FE 61 C5 */ bl getLineLength__26jmessage_string_tReferenceFi -/* 80249878 FF E0 08 90 */ fmr f31, f1 -/* 8024987C 80 7E 00 08 */ lwz r3, 8(r30) -/* 80249880 48 05 DD 55 */ bl reset__Q28JMessage8TControlFv -/* 80249884 80 7E 00 08 */ lwz r3, 8(r30) -/* 80249888 80 83 00 04 */ lwz r4, 4(r3) -/* 8024988C 28 04 00 00 */ cmplwi r4, 0 -/* 80249890 41 82 00 0C */ beq lbl_8024989C -/* 80249894 38 00 00 00 */ li r0, 0 -/* 80249898 90 04 00 08 */ stw r0, 8(r4) -lbl_8024989C: -/* 8024989C 80 83 00 08 */ lwz r4, 8(r3) -/* 802498A0 28 04 00 00 */ cmplwi r4, 0 -/* 802498A4 41 82 00 0C */ beq lbl_802498B0 -/* 802498A8 38 00 00 00 */ li r0, 0 -/* 802498AC 90 04 00 08 */ stw r0, 8(r4) -lbl_802498B0: -/* 802498B0 38 00 00 00 */ li r0, 0 -/* 802498B4 90 03 00 10 */ stw r0, 0x10(r3) -/* 802498B8 FC 20 F8 90 */ fmr f1, f31 -/* 802498BC CB E1 00 38 */ lfd f31, 0x38(r1) -/* 802498C0 39 61 00 38 */ addi r11, r1, 0x38 -/* 802498C4 48 11 89 55 */ bl _restgpr_25 -/* 802498C8 80 01 00 44 */ lwz r0, 0x44(r1) -/* 802498CC 7C 08 03 A6 */ mtlr r0 -/* 802498D0 38 21 00 40 */ addi r1, r1, 0x40 -/* 802498D4 4E 80 00 20 */ blr diff --git a/asm/d/msg/d_msg_string_base/getStringPage__16dMsgStringBase_cFUlUcUcP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s b/asm/d/msg/d_msg_string_base/getStringPage__16dMsgStringBase_cFUlUcUcP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s deleted file mode 100644 index b2e0f013138..00000000000 --- a/asm/d/msg/d_msg_string_base/getStringPage__16dMsgStringBase_cFUlUcUcP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80249BD0: -/* 80249BD0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80249BD4 7C 08 02 A6 */ mflr r0 -/* 80249BD8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80249BDC 88 01 00 1B */ lbz r0, 0x1b(r1) -/* 80249BE0 90 01 00 08 */ stw r0, 8(r1) -/* 80249BE4 4B FF FC F5 */ bl getStringPageLocal__16dMsgStringBase_cFUlUcUcP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc -/* 80249BE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80249BEC 7C 08 03 A6 */ mtlr r0 -/* 80249BF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80249BF4 4E 80 00 20 */ blr diff --git a/asm/d/msg/d_msg_string_base/getString__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s b/asm/d/msg/d_msg_string_base/getString__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s deleted file mode 100644 index 9f52106bed8..00000000000 --- a/asm/d/msg/d_msg_string_base/getString__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80249BB0: -/* 80249BB0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80249BB4 7C 08 02 A6 */ mflr r0 -/* 80249BB8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80249BBC 4B FF FB AD */ bl getStringLocal__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc -/* 80249BC0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80249BC4 7C 08 03 A6 */ mtlr r0 -/* 80249BC8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80249BCC 4E 80 00 20 */ blr diff --git a/include/JSystem/J2DGraph/J2DTextBox.h b/include/JSystem/J2DGraph/J2DTextBox.h index 057809adb90..979c9039c1d 100644 --- a/include/JSystem/J2DGraph/J2DTextBox.h +++ b/include/JSystem/J2DGraph/J2DTextBox.h @@ -123,6 +123,9 @@ public: return (J2DTextBoxHBinding)((mFlags >> 2) & 3); } + JUtility::TColor getCharColor() { return mCharColor; } + JUtility::TColor getGradColor() { return mGradientColor; } + // private: /* 0x0100 */ JUTFont* mFont; /* 0x0104 */ JUtility::TColor mCharColor; diff --git a/include/JSystem/JGadget/linklist.h b/include/JSystem/JGadget/linklist.h index 932f0f27054..e7552610d1e 100644 --- a/include/JSystem/JGadget/linklist.h +++ b/include/JSystem/JGadget/linklist.h @@ -2,6 +2,7 @@ #define LINKLIST_H #include "dolphin/types.h" +#include "JSystem/JUtility/JUTAssert.h" namespace JGadget { struct TLinkListNode { @@ -24,6 +25,7 @@ struct TNodeLinkList { node = node->getNext(); return *this; } + TLinkListNode* operator->() { return node; } TLinkListNode* node; }; @@ -55,8 +57,13 @@ struct TNodeLinkList { } iterator begin() { - iterator iter(ocObject_.mNext); - return iter; + return iterator(ocObject_.getNext()); + } + + u32 size() { return count; } + bool empty() { return size() == 0; } + iterator pop_front() { + return erase(begin()); } /* 802DCA1C */ ~TNodeLinkList(); @@ -78,6 +85,12 @@ struct TLinkList : public TNodeLinkList { struct iterator : TNodeLinkList::iterator { iterator(TNodeLinkList::iterator iter) : TNodeLinkList::iterator(iter) {} + T& operator*() { return *operator->(); } + T* operator->() { + TLinkListNode* node = TNodeLinkList::iterator::operator->(); + JUT_ASSERT(541, node != 0); + return Element_toValue(node); + } }; struct const_iterator : TNodeLinkList::const_iterator { @@ -86,7 +99,7 @@ struct TLinkList : public TNodeLinkList { const T* operator->() const { return Element_toValue(TNodeLinkList::const_iterator::operator->()); } - const T& operator*() const { return *operator->();} + const T& operator*() const { return *operator->(); } const_iterator& operator++() { TNodeLinkList::const_iterator::operator++(); return *this; @@ -117,9 +130,7 @@ struct TLinkList : public TNodeLinkList { } TLinkList::iterator begin() { - TNodeLinkList::iterator node_iter = TNodeLinkList::begin(); - TLinkList::iterator iter(node_iter); - return iter; + return iterator(TNodeLinkList::begin()); } TLinkList::const_iterator begin() const { @@ -130,6 +141,11 @@ struct TLinkList : public TNodeLinkList { TLinkList::iterator iter(TLinkList::end()); this->Insert(iter, element); } + + T& front() { + JUT_ASSERT(642, !empty()); + return *begin(); + } }; template @@ -147,6 +163,13 @@ struct TLinkList_factory : public TLinkList { virtual ~TLinkList_factory() {} virtual T* Do_create() = 0; virtual void Do_destroy(T*) = 0; + void Clear_destroy() { + while (!empty()) { + T* item = &front(); + pop_front(); + Do_destroy(item); + } + } }; template diff --git a/include/JSystem/JMessage/control.h b/include/JSystem/JMessage/control.h index b94516abe5d..36fbebfc47d 100644 --- a/include/JSystem/JMessage/control.h +++ b/include/JSystem/JMessage/control.h @@ -39,6 +39,19 @@ struct TControl { const char* getMessageText_begin() const { return pMessageText_begin_; } void* getMessageEntry() const { return pEntry_; } + void setSequenceProcessor(TSequenceProcessor* processor) { pSequenceProcessor_ = processor; } + void setRenderingProcessor(TRenderingProcessor* processor) { pRenderingProcessor_ = processor; } + void resetResourceCache() { + if (pSequenceProcessor_ != NULL) { + pSequenceProcessor_->resetResourceCache(); + } + + if (pRenderingProcessor_ != NULL) { + pRenderingProcessor_->resetResourceCache(); + } + + pResourceCache_ = NULL; + } /* 0x04 */ TSequenceProcessor* pSequenceProcessor_; /* 0x08 */ TRenderingProcessor* pRenderingProcessor_; diff --git a/include/JSystem/JMessage/processor.h b/include/JSystem/JMessage/processor.h index a01572c19c7..6cd21e08bcf 100644 --- a/include/JSystem/JMessage/processor.h +++ b/include/JSystem/JMessage/processor.h @@ -25,6 +25,7 @@ struct TReference { } TResourceContainer* getResourceContainer() const { return pcResource_; } + void setResourceContainer(TResourceContainer* container) { pcResource_ = container; } /* 0x4 */ TResourceContainer* pcResource_; }; @@ -208,6 +209,9 @@ struct TProcessor { return pReference_->getResourceContainer(); } + void setResourceCache(TResource* cache) { pResourceCache_ = cache; } + void resetResourceCache() { setResourceCache(NULL); } + /* 0x04 */ const TReference* pReference_; /* 0x08 */ const TResource* pResourceCache_; /* 0x0C */ const char* pszCurrent_; diff --git a/include/JSystem/JMessage/resource.h b/include/JSystem/JMessage/resource.h index 61c2bb2fadf..66c1e0d0021 100644 --- a/include/JSystem/JMessage/resource.h +++ b/include/JSystem/JMessage/resource.h @@ -56,6 +56,10 @@ struct TResource { struct TResource_color { TResource_color() : field_0x0(NULL), field_0x4(NULL) {} + void reset() { + field_0x0.setRaw(NULL); + field_0x4.setRaw(NULL); + } /* 0x0 */ data::TParse_THeader field_0x0; /* 0x4 */ data::TParse_TBlock_color field_0x4; @@ -83,6 +87,16 @@ struct TResourceContainer { bool isEncodingSettable(u8 e) const { return mEncodingType == e || mEncodingType == 0; } const TCResource* getResourceContainer() const { return &resContainer_; } + void destroyResource() { + resContainer_.Clear_destroy(); + } + void destroyResource_color() { + resColor_.reset(); + } + void destroyResource_all() { + destroyResource(); + destroyResource_color(); + } static JMessage::locale::parseCharacter_function sapfnParseCharacter_[5]; diff --git a/include/d/msg/d_msg_class.h b/include/d/msg/d_msg_class.h index 75a7885ed80..bad00f58c95 100644 --- a/include/d/msg/d_msg_class.h +++ b/include/d/msg/d_msg_class.h @@ -398,9 +398,16 @@ struct jmessage_string_tReference : public JMessage::TReference { u8 getLineMax() { return mLineMax; } u8 getNowPage() { return mNowPage; } JUTFont* getFont() { return mpFont; } + s16 getLineCount() { return mLineCount; } void setLineCount(s16 lineCount) { mLineCount = lineCount; } void addLineCount() { mLineCount++; } u8 isFlag(u8 flag) { return mFlags & flag; } + void setColor(u32 ccColor, u32 gcColor) { + mCCColor = ccColor; + mGCColor = gcColor; + } + void setNowPage(u8 nowPage) { mNowPage = nowPage; } + void setLineMax(u8 lineMax) { mLineMax = lineMax; } /* 8022F94C */ virtual ~jmessage_string_tReference(); @@ -470,6 +477,8 @@ struct jmessage_string_tRenderingProcessor : public JMessage::TRenderingProcesso /* 80230D48 */ virtual void do_character(int); /* 80231110 */ virtual bool do_tag(u32, void const*, u32); + char* getString() { return field_0x54; } + /* 0x038 */ jmessage_string_tReference* mpReference; /* 0x03C */ f32 field_0x3c; /* 0x040 */ f32 field_0x40; diff --git a/include/d/msg/d_msg_string_base.h b/include/d/msg/d_msg_string_base.h index 1a6c2ad9a2c..da2787f493a 100644 --- a/include/d/msg/d_msg_string_base.h +++ b/include/d/msg/d_msg_string_base.h @@ -16,16 +16,16 @@ public: /* 802493B4 */ dMsgStringBase_c(); /* 80249528 */ ~dMsgStringBase_c(); /* 80249700 */ void getResource(); - /* 80249768 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8); - /* 802498D8 */ void getStringPageLocal(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, + /* 80249768 */ f32 getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8); + /* 802498D8 */ f32 getStringPageLocal(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8); - /* 80249A48 */ void getPageMax(int); - /* 80249A70 */ void getMessageLocal(u32, char*); + /* 80249A48 */ u8 getPageMax(int); + /* 80249A70 */ f32 getMessageLocal(u32, char*); /* 80249BB0 */ virtual f32 getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8); - /* 80249BD0 */ virtual void getStringPage(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, + /* 80249BD0 */ virtual f32 getStringPage(u32, u8, u8, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8); - /* 80249BF8 */ virtual void getMessage(u32, char*); + /* 80249BF8 */ virtual f32 getMessage(u32, char*); /* 80249C18 */ virtual void resetStringLocal(J2DTextBox*); /* 80249C1C */ virtual void drawOutFontLocal(J2DTextBox*, f32); /* 80249BAC */ virtual void drawFontLocal(J2DTextBox*, u8, f32, f32, f32, f32, u32, u8); diff --git a/src/d/msg/d_msg_string_base.cpp b/src/d/msg/d_msg_string_base.cpp index 0b3937331aa..64e960db8e3 100644 --- a/src/d/msg/d_msg_string_base.cpp +++ b/src/d/msg/d_msg_string_base.cpp @@ -4,10 +4,14 @@ // #include "d/msg/d_msg_string_base.h" +#include "d/msg/d_msg_class.h" #include "d/com/d_com_inf_game.h" #include "d/meter/d_meter2_info.h" #include "dol2asm.h" #include "dolphin/types.h" +#include "JSystem/JUtility/JUTAssert.h" +#include "JSystem/JKernel/JKRArchive.h" +#include "JSystem/J2DGraph/J2DTextBox.h" // // Forward References: @@ -84,16 +88,53 @@ SECTION_DATA extern void* __vt__16dMsgStringBase_c[8] = { }; /* 802493B4-80249528 243CF4 0174+00 0/0 2/2 0/0 .text __ct__16dMsgStringBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dMsgStringBase_c::dMsgStringBase_c() { - nofralloc -#include "asm/d/msg/d_msg_string_base/__ct__16dMsgStringBase_cFv.s" +dMsgStringBase_c::dMsgStringBase_c() { + field_0x20 = 0; + getResource(); + mpResCont = new JMessage::TResourceContainer(); + JUT_ASSERT(33, mpResCont != 0); + mpCtrl = new jmessage_string_tControl(); + JUT_ASSERT(36, mpCtrl != 0); + mpRefer = new jmessage_string_tReference(); + JUT_ASSERT(39, mpRefer != 0); + mpSeqProc = new jmessage_string_tSequenceProcessor(mpRefer, mpCtrl); + JUT_ASSERT(42, mpSeqProc != 0); + mpRenProc = new jmessage_string_tRenderingProcessor(mpRefer); + JUT_ASSERT(45, mpRenProc != 0); + mpParse = new JMessage::TParse(mpResCont); + JUT_ASSERT(48, mpParse != 0); + mpRefer->setResourceContainer(mpResCont); + mpCtrl->setSequenceProcessor(mpSeqProc); + mpCtrl->setRenderingProcessor(mpRenProc); + mpParse->parse(field_0x1c, 0); + mpCtrl->reset(); + mpCtrl->resetResourceCache(); } -#pragma pop /* 80249528-80249700 243E68 01D8+00 0/0 1/1 0/0 .text __dt__16dMsgStringBase_cFv */ +// linklist begin/front/pop_front iterator stack +#ifdef NONMATCHING +dMsgStringBase_c::~dMsgStringBase_c() { + mpResCont->destroyResource_all(); + delete mpResCont; + mpResCont = NULL; + delete mpCtrl; + mpCtrl = NULL; + delete mpRefer; + mpRefer = NULL; + delete mpSeqProc; + mpSeqProc = NULL; + delete mpRenProc; + mpRenProc = NULL; + delete mpParse; + mpParse = NULL; + + void* iVar1 = dMeter2Info_getMsgResource(); + if (iVar1 == NULL) { + dComIfGp_getMsgDtArchive(0)->removeResourceAll(); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -102,78 +143,111 @@ asm dMsgStringBase_c::~dMsgStringBase_c() { #include "asm/d/msg/d_msg_string_base/__dt__16dMsgStringBase_cFv.s" } #pragma pop - -/* ############################################################################################## */ -/* 80399C98-80399C98 0262F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80399C98 = "zel_00.bmg"; -#pragma pop +#endif /* 80249700-80249768 244040 0068+00 1/1 2/2 0/0 .text getResource__16dMsgStringBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgStringBase_c::getResource() { - nofralloc -#include "asm/d/msg/d_msg_string_base/getResource__16dMsgStringBase_cFv.s" +void dMsgStringBase_c::getResource() { + field_0x1c = dMeter2Info_getMsgResource(); + if (field_0x1c == NULL) { + field_0x1c = JKRGetTypeResource('ROOT', "zel_00.bmg", dComIfGp_getMsgDtArchive(0)); + } } -#pragma pop /* 80249768-802498D8 2440A8 0170+00 1/1 1/1 0/0 .text * getStringLocal__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgStringBase_c::getStringLocal(u32 param_0, J2DTextBox* param_1, J2DTextBox* param_2, - JUTFont* param_3, COutFont_c* param_4, u8 param_5) { - nofralloc -#include "asm/d/msg/d_msg_string_base/getStringLocal__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s" +f32 dMsgStringBase_c::getStringLocal(u32 param_1, J2DTextBox* param_2, J2DTextBox* param_3, + JUTFont* param_4, COutFont_c* param_5, u8 param_6) { + if (dMeter2Info_getMsgResource() != NULL) { + if (param_1 > 5000) { + if (field_0x1c != dMeter2Info_getStageMsgResource()) { + field_0x1c = dMeter2Info_getStageMsgResource(); + mpParse->parse(field_0x1c, 0x80); + } + } else { + if (field_0x1c != dMeter2Info_getMsgResource()) { + field_0x1c = dMeter2Info_getMsgResource(); + mpParse->parse(field_0x1c, 0x80); + } + } + } + mpRefer->init(param_2, param_3, param_4, param_5, param_6); + mpRefer->setColor(param_2->getCharColor(), param_2->getGradColor()); + mpCtrl->setMessageID(param_1, 0, NULL); + mpCtrl->update(); + mpCtrl->render(); + f32 lineLength = mpRefer->getLineLength(0); + mpCtrl->reset(); + mpCtrl->resetResourceCache(); + return lineLength; } -#pragma pop - -/* ############################################################################################## */ -/* 80454D70-80454D78 003370 0004+04 2/2 0/0 0/0 .sdata2 @4046 */ -SECTION_SDATA2 static f32 lit_4046[1 + 1 /* padding */] = { - 0.0f, - /* padding */ - 0.0f, -}; /* 802498D8-80249A48 244218 0170+00 1/1 1/1 0/0 .text * getStringPageLocal__16dMsgStringBase_cFUlUcUcP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgStringBase_c::getStringPageLocal(u32 param_0, u8 param_1, u8 param_2, - J2DTextBox* param_3, J2DTextBox* param_4, - JUTFont* param_5, COutFont_c* param_6, u8 param_7) { - nofralloc -#include "asm/d/msg/d_msg_string_base/func_802498D8.s" +// Matches with literals +f32 dMsgStringBase_c::getStringPageLocal(u32 param_1, u8 param_2, u8 param_3, + J2DTextBox* param_4, J2DTextBox* param_5, + JUTFont* param_6, COutFont_c* param_7, u8 param_8) { + if (dMeter2Info_getMsgResource() != NULL) { + if (param_1 > 5000) { + if (field_0x1c != dMeter2Info_getStageMsgResource()) { + field_0x1c = dMeter2Info_getStageMsgResource(); + mpParse->parse(field_0x1c, 0x80); + } + } else { + if (field_0x1c != dMeter2Info_getMsgResource()) { + field_0x1c = dMeter2Info_getMsgResource(); + mpParse->parse(field_0x1c, 0x80); + } + } + } + mpRefer->init(param_4, param_5, param_6, param_7, param_8); + mpRefer->setNowPage(param_2); + mpRefer->setLineMax(param_3); + mpRefer->setColor(param_4->getCharColor(), param_4->getGradColor()); + mpCtrl->setMessageID(param_1, 0, NULL); + mpCtrl->update(); + mpCtrl->render(); + mpCtrl->reset(); + mpCtrl->resetResourceCache(); + return 0.0f; } -#pragma pop /* 80249A48-80249A70 244388 0028+00 0/0 1/1 0/0 .text getPageMax__16dMsgStringBase_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgStringBase_c::getPageMax(int param_0) { - nofralloc -#include "asm/d/msg/d_msg_string_base/getPageMax__16dMsgStringBase_cFi.s" +u8 dMsgStringBase_c::getPageMax(int param_0) { + s16 lineCount = mpRefer->getLineCount(); + u8 pageMax = (lineCount / param_0) & 0xff; + if (lineCount % param_0 != 0) { + return pageMax + 1; + } + return pageMax; } -#pragma pop /* 80249A70-80249BAC 2443B0 013C+00 1/1 0/0 0/0 .text getMessageLocal__16dMsgStringBase_cFUlPc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgStringBase_c::getMessageLocal(u32 param_0, char* param_1) { - nofralloc -#include "asm/d/msg/d_msg_string_base/getMessageLocal__16dMsgStringBase_cFUlPc.s" +f32 dMsgStringBase_c::getMessageLocal(u32 param_1, char* param_2) { + if (dMeter2Info_getMsgResource() != NULL) { + if (param_1 > 5000) { + if (field_0x1c != dMeter2Info_getStageMsgResource()) { + field_0x1c = dMeter2Info_getStageMsgResource(); + mpParse->parse(field_0x1c, 0x80); + } + } else { + if (field_0x1c != dMeter2Info_getMsgResource()) { + field_0x1c = dMeter2Info_getMsgResource(); + mpParse->parse(field_0x1c, 0x80); + } + } + } + mpRefer->init(NULL, NULL, NULL, NULL, 0); + mpCtrl->setMessageID(param_1, 0, NULL); + mpCtrl->update(); + mpCtrl->render(); + mpCtrl->reset(); + mpCtrl->resetResourceCache(); + strcpy(param_2, mpRenProc->getString()); + return 0.0f; } -#pragma pop /* 80249BAC-80249BB0 2444EC 0004+00 1/0 0/0 0/0 .text * drawFontLocal__16dMsgStringBase_cFP10J2DTextBoxUcffffUlUc */ @@ -184,39 +258,24 @@ void dMsgStringBase_c::drawFontLocal(J2DTextBox* param_0, u8 param_1, f32 param_ /* 80249BB0-80249BD0 2444F0 0020+00 1/0 0/0 0/0 .text * getString__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm f32 dMsgStringBase_c::getString(u32 param_0, J2DTextBox* param_1, J2DTextBox* param_2, +f32 dMsgStringBase_c::getString(u32 param_0, J2DTextBox* param_1, J2DTextBox* param_2, JUTFont* param_3, COutFont_c* param_4, u8 param_5) { - nofralloc -#include "asm/d/msg/d_msg_string_base/getString__16dMsgStringBase_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s" + return getStringLocal(param_0, param_1, param_2, param_3, param_4, param_5); } -#pragma pop /* 80249BD0-80249BF8 244510 0028+00 1/0 0/0 0/0 .text * getStringPage__16dMsgStringBase_cFUlUcUcP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgStringBase_c::getStringPage(u32 param_0, u8 param_1, u8 param_2, J2DTextBox* param_3, +f32 dMsgStringBase_c::getStringPage(u32 param_0, u8 param_1, u8 param_2, J2DTextBox* param_3, J2DTextBox* param_4, JUTFont* param_5, COutFont_c* param_6, u8 param_7) { - nofralloc -#include "asm/d/msg/d_msg_string_base/getStringPage__16dMsgStringBase_cFUlUcUcP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s" + return getStringPageLocal(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7); } -#pragma pop /* 80249BF8-80249C18 244538 0020+00 1/0 1/0 0/0 .text getMessage__16dMsgStringBase_cFUlPc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dMsgStringBase_c::getMessage(u32 param_0, char* param_1) { - nofralloc -#include "asm/d/msg/d_msg_string_base/getMessage__16dMsgStringBase_cFUlPc.s" +f32 dMsgStringBase_c::getMessage(u32 param_0, char* param_1) { + return getMessageLocal(param_0, param_1); } -#pragma pop /* 80249C18-80249C1C 244558 0004+00 1/0 0/0 0/0 .text * resetStringLocal__16dMsgStringBase_cFP10J2DTextBox */