mirror of
https://github.com/zeldaret/oot.git
synced 2025-07-04 15:04:31 +00:00
Reworked text extraction + add JP text extraction (#1980)
* Reworked text extraction + add JP text extraction * Format * Suggested changes * Correct address for gc-us sJpnMessageEntryTable Co-authored-by: cadmic <cadmic24@gmail.com> --------- Co-authored-by: cadmic <cadmic24@gmail.com>
This commit is contained in:
parent
264581ff3f
commit
baf1e8c174
19 changed files with 1326 additions and 707 deletions
|
@ -38,8 +38,8 @@ void Font_LoadOrderedFont(Font* font) {
|
|||
s32 fontBufIndex;
|
||||
u32 offset;
|
||||
|
||||
font->msgOffset = _message_0xFFFC_nes - (const char*)_nes_message_data_staticSegmentStart;
|
||||
len = font->msgLength = _message_0xFFFD_nes - _message_0xFFFC_nes;
|
||||
font->msgOffset = FONT_MESSAGE_OFFSET;
|
||||
len = font->msgLength = FONT_MESSAGE_LENGTH;
|
||||
|
||||
DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset, len,
|
||||
"../z_kanfont.c", 122);
|
||||
|
|
|
@ -28,30 +28,49 @@ s16 sMessageHasSetSfx = false;
|
|||
u16 sOcarinaSongBitFlags = 0; // ocarina bit flags
|
||||
|
||||
MessageTableEntry sNesMessageEntryTable[] = {
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) \
|
||||
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
{ textId, (_SHIFTL(type, 4, 8) | _SHIFTL(yPos, 0, 8)), _message_##textId##_nes },
|
||||
#define DEFINE_MESSAGE_NES(textId, type, yPos, nesMessage) DEFINE_MESSAGE(textId, type, yPos, nesMessage, , )
|
||||
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage)
|
||||
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
/* Present */ DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage)
|
||||
#include "assets/text/message_data.h"
|
||||
#undef DEFINE_MESSAGE
|
||||
#undef DEFINE_MESSAGE_NES
|
||||
#undef DEFINE_MESSAGE_JPN
|
||||
#undef DEFINE_MESSAGE_FFFC
|
||||
{ 0xFFFF, 0, NULL },
|
||||
};
|
||||
|
||||
const char* sGerMessageEntryTable[] = {
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) _message_##textId##_ger,
|
||||
#define DEFINE_MESSAGE_NES(textId, type, yPos, nesMessage)
|
||||
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) _message_##textId##_ger,
|
||||
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage)
|
||||
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
|
||||
#include "assets/text/message_data.h"
|
||||
#undef DEFINE_MESSAGE
|
||||
#undef DEFINE_MESSAGE_NES
|
||||
#undef DEFINE_MESSAGE_JPN
|
||||
#undef DEFINE_MESSAGE_FFFC
|
||||
NULL,
|
||||
};
|
||||
|
||||
const char* sFraMessageEntryTable[] = {
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) _message_##textId##_fra,
|
||||
#define DEFINE_MESSAGE_NES(textId, type, yPos, nesMessage)
|
||||
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) _message_##textId##_fra,
|
||||
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
|
||||
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
|
||||
DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage)
|
||||
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) /* Not Present */
|
||||
#include "assets/text/message_data.h"
|
||||
#undef DEFINE_MESSAGE
|
||||
#undef DEFINE_MESSAGE_NES
|
||||
#undef DEFINE_MESSAGE_JPN
|
||||
#undef DEFINE_MESSAGE_FFFC
|
||||
NULL,
|
||||
};
|
||||
|
||||
|
@ -390,7 +409,7 @@ void Message_FindCreditsMessage(PlayState* play, u16 textId) {
|
|||
|
||||
void Message_SetTextColor(MessageContext* msgCtx, u16 colorParameter) {
|
||||
switch (colorParameter) {
|
||||
case MSGCOL_RED:
|
||||
case TEXT_COLOR_RED:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
|
||||
msgCtx->textColorR = 255;
|
||||
msgCtx->textColorG = 120;
|
||||
|
@ -401,7 +420,7 @@ void Message_SetTextColor(MessageContext* msgCtx, u16 colorParameter) {
|
|||
msgCtx->textColorB = 60;
|
||||
}
|
||||
break;
|
||||
case MSGCOL_ADJUSTABLE:
|
||||
case TEXT_COLOR_ADJUSTABLE:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
|
||||
msgCtx->textColorR = R_TEXT_ADJUST_COLOR_1_R;
|
||||
msgCtx->textColorG = R_TEXT_ADJUST_COLOR_1_G;
|
||||
|
@ -412,7 +431,7 @@ void Message_SetTextColor(MessageContext* msgCtx, u16 colorParameter) {
|
|||
msgCtx->textColorB = R_TEXT_ADJUST_COLOR_2_B;
|
||||
}
|
||||
break;
|
||||
case MSGCOL_BLUE:
|
||||
case TEXT_COLOR_BLUE:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
|
||||
msgCtx->textColorR = 80;
|
||||
msgCtx->textColorG = 110;
|
||||
|
@ -423,7 +442,7 @@ void Message_SetTextColor(MessageContext* msgCtx, u16 colorParameter) {
|
|||
msgCtx->textColorB = 255;
|
||||
}
|
||||
break;
|
||||
case MSGCOL_LIGHTBLUE:
|
||||
case TEXT_COLOR_LIGHTBLUE:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
|
||||
msgCtx->textColorR = 90;
|
||||
msgCtx->textColorG = 180;
|
||||
|
@ -438,7 +457,7 @@ void Message_SetTextColor(MessageContext* msgCtx, u16 colorParameter) {
|
|||
msgCtx->textColorB = 255;
|
||||
}
|
||||
break;
|
||||
case MSGCOL_PURPLE:
|
||||
case TEXT_COLOR_PURPLE:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
|
||||
msgCtx->textColorR = 210;
|
||||
msgCtx->textColorG = 100;
|
||||
|
@ -449,7 +468,7 @@ void Message_SetTextColor(MessageContext* msgCtx, u16 colorParameter) {
|
|||
msgCtx->textColorB = 180;
|
||||
}
|
||||
break;
|
||||
case MSGCOL_YELLOW:
|
||||
case TEXT_COLOR_YELLOW:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
|
||||
msgCtx->textColorR = 255;
|
||||
msgCtx->textColorG = 255;
|
||||
|
@ -460,10 +479,10 @@ void Message_SetTextColor(MessageContext* msgCtx, u16 colorParameter) {
|
|||
msgCtx->textColorB = 50;
|
||||
}
|
||||
break;
|
||||
case MSGCOL_BLACK:
|
||||
case TEXT_COLOR_BLACK:
|
||||
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0;
|
||||
break;
|
||||
case MSGCOL_DEFAULT:
|
||||
case TEXT_COLOR_DEFAULT:
|
||||
default:
|
||||
if (msgCtx->textBoxType == TEXTBOX_TYPE_NONE_NO_SHADOW) {
|
||||
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue