From cc465fe043780383d9445a5ac1a0bb0b7fef9d44 Mon Sep 17 00:00:00 2001 From: Archez Date: Mon, 26 Feb 2024 20:28:32 -0500 Subject: [PATCH] Support loading credits text, take 2 (#133) * support loading credits tex * code review feedback --- mm/src/code/z_message.c | 8 ++++---- mm/src/code/z_message_staff.c | 7 ++----- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/mm/src/code/z_message.c b/mm/src/code/z_message.c index c9ff40d45..6c435731f 100644 --- a/mm/src/code/z_message.c +++ b/mm/src/code/z_message.c @@ -3359,7 +3359,9 @@ void Message_OpenText(PlayState* play, u16 textId) { // BENTODO all of these if (msgCtx->textIsCredits) { Message_FindCreditsMessage(play, textId); - msgCtx->msgLength = font->messageEnd; + MessageTableEntry* msgEntry = (MessageTableEntry*)font->messageStart; + msgCtx->msgLength = msgEntry->msgSize; + memcpy(&font->msgBuf, msgEntry->segment, msgEntry->msgSize); //DmaMgr_SendRequest0(&font->msgBuf, SEGMENT_ROM_START(staff_message_data_static) + font->messageStart, // font->messageEnd); } else if (gSaveContext.options.language == LANGUAGE_JPN) { @@ -3375,7 +3377,7 @@ void Message_OpenText(PlayState* play, u16 textId) { //msgCtx->msgLength = font->messageEnd; //DmaMgr_SendRequest0(&font->msgBuf, SEGMENT_ROM_START(message_data_static) + font->messageStart, // font->messageEnd); - } // + } msgCtx->choiceNum = 0; msgCtx->textUnskippable = false; @@ -4365,8 +4367,6 @@ void Message_DrawMain(PlayState* play, Gfx** gfxP) { s32 j; s16 temp_v0_33; s16 temp; - // BENTODO - msgCtx->textIsCredits = false; gfx = *gfxP; diff --git a/mm/src/code/z_message_staff.c b/mm/src/code/z_message_staff.c index 4a7addd9c..a18328781 100644 --- a/mm/src/code/z_message_staff.c +++ b/mm/src/code/z_message_staff.c @@ -12,12 +12,9 @@ void Message_FindCreditsMessage(PlayState* play, u16 textId) { while (msgEntry->textId != 0xFFFF) { if (msgEntry->textId == textId) { - foundSegment = msgEntry->segment; + // 2SH2 [Port] Just assign the msgEntry, we don't need to change the messageStart and messageEnd + font->messageStart = msgEntry; font->charBuf[font->unk_11D88][0] = msgEntry->typePos; - msgEntry++; - nextSegment = msgEntry->segment; - font->messageStart = foundSegment - segment; - font->messageEnd = nextSegment - foundSegment; break; } msgEntry++;