summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouist103 <35883445+louist103@users.noreply.github.com>2023-11-22 17:20:42 -0500
committerlouist103 <35883445+louist103@users.noreply.github.com>2023-11-22 17:20:42 -0500
commitd53f57333556f5515baa2b88033d6f280cc1de86 (patch)
treec8f9ab4e2a133725e9f9cf3c03b2c59dbdae5eb5
parentd7817c519e4d9a1d09bf427ad9fca2dadd136702 (diff)
Message in the same state as the minibuild.
-rw-r--r--mm/assets/xml/text/message_data_static.xml8
-rw-r--r--mm/src/code/z_message.c53
-rw-r--r--mm/src/code/z_message_nes.c6
-rw-r--r--mm/src/code/z_play.c2
4 files changed, 51 insertions, 18 deletions
diff --git a/mm/assets/xml/text/message_data_static.xml b/mm/assets/xml/text/message_data_static.xml
new file mode 100644
index 000000000..dfbb98c74
--- /dev/null
+++ b/mm/assets/xml/text/message_data_static.xml
@@ -0,0 +1,8 @@
+<Root>
+ <File Name="message_data_static">
+ <TextMM Name="message_data_static" CodeOffset="0x1210D8"/>
+ </File>
+ <File Name="staff_message_data_static">
+ <TextMM Name="staff_message_data_static" CodeOffset="0x12A048"/>
+ </File>
+</Root> \ No newline at end of file
diff --git a/mm/src/code/z_message.c b/mm/src/code/z_message.c
index c9cfadeb1..6265033e8 100644
--- a/mm/src/code/z_message.c
+++ b/mm/src/code/z_message.c
@@ -5,6 +5,7 @@
#include "message_data_static.h"
#include "interface/parameter_static/parameter_static.h"
#include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h"
+#include "BenPort.h"
u8 D_801C6A70 = 0;
s16 sOcarinaButtonIndexBufPos = 0;
@@ -1819,6 +1820,8 @@ s16 D_801CFF94[] = {
void Message_LoadItemIcon(PlayState* play, u16 itemId, s16 arg2) {
MessageContext* msgCtx = &play->msgCtx;
u16* new_var2 = &itemId;
+ itemId = 0;
+ // BENTODO: Test
if (itemId == ITEM_RECOVERY_HEART) {
msgCtx->unk12010 = (msgCtx->unk11FF8 - D_801CFF88[gSaveContext.options.language]);
@@ -1836,37 +1839,40 @@ void Message_LoadItemIcon(PlayState* play, u16 itemId, s16 arg2) {
msgCtx->unk12010 = (msgCtx->unk11FF8 - D_801CFF88[gSaveContext.options.language]);
msgCtx->unk12012 = (arg2 + 0xA);
msgCtx->unk12014 = 0x10;
- CmpDma_LoadFile(SEGMENT_ROM_START(icon_item_static_yar), ITEM_SONG_SONATA, msgCtx->textboxSegment + 0x1000,
- 0x180);
+ void* tex = ResourceMgr_LoadTexOrDListByName(gItemIcons[ITEM_SONG_SONATA]);
+ memcpy(msgCtx->textboxSegment + 0x1000, tex, 0x1000);
} else if (itemId == ITEM_BOMBERS_NOTEBOOK) {
msgCtx->unk12010 = (msgCtx->unk11FF8 - D_801CFF70[gSaveContext.options.language]);
msgCtx->unk12012 = (arg2 + 6);
msgCtx->unk12014 = 0x20;
- CmpDma_LoadFile(SEGMENT_ROM_START(icon_item_static_yar), ITEM_SONG_SONATA, msgCtx->textboxSegment + 0x1000,
- 0x1000);
+ void* tex = ResourceMgr_LoadTexOrDListByName(gItemIcons[ITEM_SONG_SONATA]);
+ memcpy(msgCtx->textboxSegment + 0x1000, tex, 0x1000);
} else if (itemId <= ITEM_REMAINS_TWINMOLD) {
msgCtx->unk12010 = (msgCtx->unk11FF8 - D_801CFF70[gSaveContext.options.language]);
msgCtx->unk12012 = (arg2 + 6);
msgCtx->unk12014 = 0x20;
- CmpDma_LoadFile(SEGMENT_ROM_START(icon_item_static_yar), itemId, msgCtx->textboxSegment + 0x1000, 0x1000);
+ // BENTODO this wasn't done in the minibuild
+ void* tex = ResourceMgr_LoadTexOrDListByName(gItemIcons[itemId]);
+ memcpy(msgCtx->textboxSegment + 0x1000, tex, 0x1000);
+ //CmpDma_LoadFile(SEGMENT_ROM_START(icon_item_static_yar), itemId, msgCtx->textboxSegment + 0x1000, 0x1000);
} else if (itemId == ITEM_CC) {
msgCtx->unk12010 = (msgCtx->unk11FF8 - D_801CFF70[gSaveContext.options.language]);
msgCtx->unk12012 = (arg2 + 8);
msgCtx->unk12014 = 0x20;
- CmpDma_LoadFile(SEGMENT_ROM_START(schedule_dma_static_yar), ITEM_POTION_BLUE, msgCtx->textboxSegment + 0x1000,
- 0x400);
+ void* tex = ResourceMgr_LoadTexOrDListByName(gItemIcons[ITEM_POTION_BLUE]);
+ memcpy(msgCtx->textboxSegment + 0x1000, tex, 0x400);
} else if (itemId >= ITEM_B8) {
msgCtx->unk12010 = (msgCtx->unk11FF8 - D_801CFF70[gSaveContext.options.language]);
msgCtx->unk12012 = (arg2 + 8);
msgCtx->unk12014 = 0x20;
- CmpDma_LoadFile(SEGMENT_ROM_START(schedule_dma_static_yar), (itemId - ITEM_B8), msgCtx->textboxSegment + 0x1000,
- 0x800);
+ void* tex = ResourceMgr_LoadTexOrDListByName(gItemIcons[itemId - ITEM_B8]);
+ memcpy(msgCtx->textboxSegment + 0x1000, tex, 0x800);
} else if (itemId >= ITEM_SKULL_TOKEN) {
msgCtx->unk12010 = (msgCtx->unk11FF8 - D_801CFF7C[gSaveContext.options.language]);
msgCtx->unk12012 = (arg2 + 0xA);
msgCtx->unk12014 = 0x18;
- CmpDma_LoadFile(SEGMENT_ROM_START(icon_item_24_static_yar), (itemId - ITEM_SKULL_TOKEN),
- msgCtx->textboxSegment + 0x1000, 0x900);
+ void* tex = ResourceMgr_LoadTexOrDListByName(gItemIcons[itemId - ITEM_SKULL_TOKEN]);
+ memcpy(msgCtx->textboxSegment + 0x1000, tex, 0x900);
}
if (play->pauseCtx.bombersNotebookOpen) {
@@ -2175,6 +2181,9 @@ void Message_Decode(PlayState* play) {
u16 curChar;
u8 index2 = 0;
+ //BENTODO do this somewhere else
+ gSaveContext.options.language = LANGUAGE_ENG;
+
msgCtx->textDelayTimer = 0;
msgCtx->textDelay = msgCtx->textDelayTimer;
msgCtx->textFade = 0;
@@ -3092,6 +3101,9 @@ void Message_OpenText(PlayState* play, u16 textId) {
Player* player = GET_PLAYER(play);
f32 var_fv0;
+ // BENTODO do this somewhere else
+ gSaveContext.options.language = LANGUAGE_ENG;
+
if (play->msgCtx.msgMode == MSGMODE_NONE) {
gSaveContext.prevHudVisibility = gSaveContext.hudVisibility;
}
@@ -3177,7 +3189,10 @@ void Message_OpenText(PlayState* play, u16 textId) {
// font->messageEnd);
} else {
Message_FindMessageNES(play, textId);
- msgCtx->msgLength = font->messageEnd;
+ MessageTableEntry* msgEntry = (MessageTableEntry*)font->messageStart;
+ msgCtx->msgLength = msgEntry->msgSize;
+ memcpy(&font->msgBuf, msgEntry->segment, msgEntry->msgSize);
+ //msgCtx->msgLength = font->messageEnd;
//DmaMgr_SendRequest0(&font->msgBuf, SEGMENT_ROM_START(message_data_static) + font->messageStart,
// font->messageEnd);
} //
@@ -3233,6 +3248,8 @@ void func_801514B0(PlayState* play, u16 arg1, u8 arg2) {
Font* font = &msgCtx->font;
Player* player = GET_PLAYER(play);
f32 temp = 1024.0f;
+ // BENTODO do this somewhere else
+ gSaveContext.options.language = LANGUAGE_ENG;
msgCtx->ocarinaAction = 0xFFFF;
@@ -3272,7 +3289,10 @@ void func_801514B0(PlayState* play, u16 arg1, u8 arg2) {
// font->messageEnd);
} else {
Message_FindMessageNES(play, arg1);
- msgCtx->msgLength = font->messageEnd;
+ MessageTableEntry* msgEntry = (MessageTableEntry*)font->messageStart;
+ msgCtx->msgLength = msgEntry->msgSize;
+ memcpy(&font->msgBuf, msgEntry->segment, msgEntry->msgSize);
+ //msgCtx->msgLength = font->messageEnd;
// BENTODO
//DmaMgr_SendRequest0(&font->msgBuf, SEGMENT_ROM_START(message_data_static) + font->messageStart,
// font->messageEnd);
@@ -4159,6 +4179,8 @@ void Message_DrawMain(PlayState* play, Gfx** gfxP) {
s32 j;
s16 temp_v0_33;
s16 temp;
+ // BENTODO
+ msgCtx->textIsCredits = false;
gfx = *gfxP;
@@ -5994,8 +6016,9 @@ void Message_Update(PlayState* play) {
}
void Message_SetTables(PlayState* play) {
- play->msgCtx.messageEntryTableNes = D_801C6B98;
- play->msgCtx.messageTableStaff = D_801CFB08;
+ //play->msgCtx.messageEntryTableNes = D_801C6B98;
+ //play->msgCtx.messageTableStaff = D_801CFB08;
+ OTRMessage_Init(play);
}
void Message_Init(PlayState* play) {
diff --git a/mm/src/code/z_message_nes.c b/mm/src/code/z_message_nes.c
index b8bfd18e8..9477153c0 100644
--- a/mm/src/code/z_message_nes.c
+++ b/mm/src/code/z_message_nes.c
@@ -25,11 +25,13 @@ void Message_FindMessageNES(PlayState* play, u16 textId) {
while (msgEntry->textId != 0xFFFF) {
if (msgEntry->textId == textId) {
+ font->messageStart = msgEntry;
foundSegment = msgEntry->segment;
msgEntry++;
nextSegment = msgEntry->segment;
- font->messageStart = foundSegment - segment;
- font->messageEnd = nextSegment - foundSegment;
+
+ //font->messageStart = foundSegment - segment;
+ //font->messageEnd = nextSegment - foundSegment;
return;
}
msgEntry++;
diff --git a/mm/src/code/z_play.c b/mm/src/code/z_play.c
index 9e98b1b0b..a5ffdf92d 100644
--- a/mm/src/code/z_play.c
+++ b/mm/src/code/z_play.c
@@ -2356,7 +2356,7 @@ void Play_Init(GameState* thisx) {
gSaveContext.ambienceId = this->sequenceCtx.ambienceId;
AnimationContext_Update(this, &this->animationCtx);
// BENTODO: crash in Message_FindMessage
- // Cutscene_HandleEntranceTriggers(this);
+ Cutscene_HandleEntranceTriggers(this);
gSaveContext.respawnFlag = 0;
sBombersNotebookOpen = false;
BombersNotebook_Init(&sBombersNotebook);