summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Longstaff <JordanLongstaff@users.noreply.github.com>2025-12-06 18:32:14 -0500
committerGitHub <noreply@github.com>2025-12-06 15:32:14 -0800
commitf6b17e23584c17fd2d6ec0d1867b8e395a0ed747 (patch)
tree3ee7b9d216ec5f3c1169c3331f83f6be641fb7d0
parentf973883b060874f5ed6c4dd08a8fda2d5ba1b0d4 (diff)
Document textbox types, backgrounds and two related global array variables (#1835)
* Document `D_801CFC78`, `func_80150A84` and textbox types * Format * Textbox background enum * More enum usages * Rename D_801D03A8 * Fix value of TEXTBOX_BG_NONE * Convert background type enum to macros * Restore enum, fix BSS ordering * Rename to SetTextboxColor * More BSS fixing
-rw-r--r--include/z64message.h33
-rw-r--r--src/code/cutscene_camera.c2
-rw-r--r--src/code/z_camera.c2
-rw-r--r--src/code/z_message.c297
-rw-r--r--src/code/z_message_nes.c28
-rw-r--r--src/code/z_message_staff.c2
-rw-r--r--tools/disasm/n64-us/functions.txt2
-rw-r--r--tools/disasm/n64-us/variables.txt4
-rw-r--r--tools/sizes/code_functions.csv2
9 files changed, 195 insertions, 177 deletions
diff --git a/include/z64message.h b/include/z64message.h
index 4142ef324..77ebcfc0c 100644
--- a/include/z64message.h
+++ b/include/z64message.h
@@ -15,25 +15,34 @@ struct OcarinaStaff;
struct PlayState;
typedef enum TextBoxType {
- /* 0x00 */ TEXTBOX_TYPE_0,
- /* 0x01 */ TEXTBOX_TYPE_1,
- /* 0x02 */ TEXTBOX_TYPE_2,
- /* 0x03 */ TEXTBOX_TYPE_3,
+ /* 0x00 */ TEXTBOX_TYPE_BLACK,
+ /* 0x01 */ TEXTBOX_TYPE_WOODEN,
+ /* 0x02 */ TEXTBOX_TYPE_BLUE_FADED,
+ /* 0x03 */ TEXTBOX_TYPE_OCARINA,
/* 0x04 */ TEXTBOX_TYPE_4,
- /* 0x05 */ TEXTBOX_TYPE_5,
- /* 0x06 */ TEXTBOX_TYPE_6,
- /* 0x07 */ TEXTBOX_TYPE_7,
- /* 0x08 */ TEXTBOX_TYPE_8,
- /* 0x09 */ TEXTBOX_TYPE_9,
+ /* 0x05 */ TEXTBOX_TYPE_CLEAR,
+ /* 0x06 */ TEXTBOX_TYPE_DISPLAY_ALL,
+ /* 0x07 */ TEXTBOX_TYPE_CLEAR_DISPLAY_ALL,
+ /* 0x08 */ TEXTBOX_TYPE_BLUE,
+ /* 0x09 */ TEXTBOX_TYPE_PAUSE_INFO,
/* 0x0A */ TEXTBOX_TYPE_A,
/* 0x0B */ TEXTBOX_TYPE_B,
- /* 0x0C */ TEXTBOX_TYPE_C,
- /* 0x0D */ TEXTBOX_TYPE_D,
- /* 0x0E */ TEXTBOX_TYPE_E,
+ /* 0x0C */ TEXTBOX_TYPE_TITLE_CARD,
+ /* 0x0D */ TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION,
+ /* 0x0E */ TEXTBOX_TYPE_OCARINA_FREE_PLAY,
/* 0x0F */ TEXTBOX_TYPE_F,
/* 0x10 */ TEXTBOX_TYPE_MAX
} TextBoxType;
+typedef enum TextBoxBackground {
+ /* 0x0 */ TEXTBOX_BG_DEFAULT,
+ /* 0x1 */ TEXTBOX_BG_WOODEN,
+ /* 0x2 */ TEXTBOX_BG_OCARINA,
+ /* 0x3 */ TEXTBOX_BG_FADED,
+ /* 0x4 */ TEXTBOX_BG_NOTEBOOK,
+ /* 0xE */ TEXTBOX_BG_NONE = 14,
+} TextBoxBackground;
+
#define TEXTBOX_ENDTYPE_DEFAULT 0x00
#define TEXTBOX_ENDTYPE_TWO_CHOICE 0x10
diff --git a/src/code/cutscene_camera.c b/src/code/cutscene_camera.c
index 8c7d5538b..195a9d4e0 100644
--- a/src/code/cutscene_camera.c
+++ b/src/code/cutscene_camera.c
@@ -4,6 +4,8 @@
#include "z64olib.h"
+#pragma increment_block_number "n64-us:128"
+
CutsceneCamera* sCurCsCamera;
typedef s16 (*CsCamInterpolateCallback)(Vec3f*, f32*, s16*, CsCmdCamPoint*, CsCmdCamMisc*, CutsceneCameraInterp*);
diff --git a/src/code/z_camera.c b/src/code/z_camera.c
index c3fe07830..fb732b65e 100644
--- a/src/code/z_camera.c
+++ b/src/code/z_camera.c
@@ -57,6 +57,8 @@
#include "overlays/actors/ovl_En_Horse/z_en_horse.h"
+#pragma increment_block_number "n64-us:128"
+
void func_800DDFE0(Camera* camera);
s32 Camera_ChangeMode(Camera* camera, s16 mode);
s16 Camera_ChangeSettingFlags(Camera* camera, s16 setting, s16 flags);
diff --git a/src/code/z_message.c b/src/code/z_message.c
index dbeba7d3f..5a5c5a910 100644
--- a/src/code/z_message.c
+++ b/src/code/z_message.c
@@ -74,23 +74,23 @@ MessageTableEntry sMessageTableCredits[] = {
#undef DEFINE_MESSAGE
-s16 D_801CFC78[TEXTBOX_TYPE_MAX] = {
- 0, // TEXTBOX_TYPE_0
- 1, // TEXTBOX_TYPE_1
- 3, // TEXTBOX_TYPE_2
- 2, // TEXTBOX_TYPE_3
- 14, // TEXTBOX_TYPE_4
- 14, // TEXTBOX_TYPE_5
- 0, // TEXTBOX_TYPE_6
- 14, // TEXTBOX_TYPE_7
- 0, // TEXTBOX_TYPE_8
- 0, // TEXTBOX_TYPE_9
- 0, // TEXTBOX_TYPE_A
- 14, // TEXTBOX_TYPE_B
- 14, // TEXTBOX_TYPE_C
- 4, // TEXTBOX_TYPE_D
- 14, // TEXTBOX_TYPE_E
- 0, // TEXTBOX_TYPE_F
+s16 gTextBoxBackgroundTypes[TEXTBOX_TYPE_MAX] = {
+ TEXTBOX_BG_DEFAULT, // TEXTBOX_TYPE_BLACK
+ TEXTBOX_BG_WOODEN, // TEXTBOX_TYPE_WOODEN
+ TEXTBOX_BG_FADED, // TEXTBOX_TYPE_BLUE_FADED
+ TEXTBOX_BG_OCARINA, // TEXTBOX_TYPE_OCARINA
+ TEXTBOX_BG_NONE, // TEXTBOX_TYPE_4
+ TEXTBOX_BG_NONE, // TEXTBOX_TYPE_CLEAR
+ TEXTBOX_BG_DEFAULT, // TEXTBOX_TYPE_DISPLAY_ALL
+ TEXTBOX_BG_NONE, // TEXTBOX_TYPE_CLEAR_DISPLAY_ALL
+ TEXTBOX_BG_DEFAULT, // TEXTBOX_TYPE_BLUE
+ TEXTBOX_BG_DEFAULT, // TEXTBOX_TYPE_PAUSE_INFO
+ TEXTBOX_BG_DEFAULT, // TEXTBOX_TYPE_A
+ TEXTBOX_BG_NONE, // TEXTBOX_TYPE_B
+ TEXTBOX_BG_NONE, // TEXTBOX_TYPE_TITLE_CARD
+ TEXTBOX_BG_NOTEBOOK, // TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION
+ TEXTBOX_BG_NONE, // TEXTBOX_TYPE_OCARINA_FREE_PLAY
+ TEXTBOX_BG_DEFAULT, // TEXTBOX_TYPE_F
};
u8 sOcarinaButtonIndexBuf[12] = { 0 };
s16 sOcarinaButtonAlphaValues[9] = { 0 };
@@ -748,7 +748,7 @@ void Message_DrawTextChar(PlayState* play, TexturePtr texture, Gfx** gfxP) {
gDPLoadTextureBlock_4b(gfx++, texture, G_IM_FMT_I, 16, 16, 0, G_TX_NOMIRROR | G_TX_CLAMP,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
- if ((msgCtx->textBoxType != TEXTBOX_TYPE_5) && (msgCtx->textBoxType != TEXTBOX_TYPE_D) &&
+ if ((msgCtx->textBoxType != TEXTBOX_TYPE_CLEAR) && (msgCtx->textBoxType != TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION) &&
!play->pauseCtx.bombersNotebookOpen) {
gDPSetPrimColor(gfx++, 0, 0, 0, 0, 0, msgCtx->textColorAlpha);
gSPTextureRectangle(gfx++, (x + 1) << 2, (y + 1) << 2, (x + sCharTexSize + 1) << 2, (y + sCharTexSize + 1) << 2,
@@ -1112,9 +1112,9 @@ void Message_DrawTextDefault(PlayState* play, Gfx** gfxP) {
switch (character) {
case 0x2000:
- if (play->pauseCtx.bombersNotebookOpen || (msgCtx->textBoxType == TEXTBOX_TYPE_D)) {
+ if (play->pauseCtx.bombersNotebookOpen || (msgCtx->textBoxType == TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION)) {
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0;
- } else if (msgCtx->textBoxType == TEXTBOX_TYPE_5) {
+ } else if (msgCtx->textBoxType == TEXTBOX_TYPE_CLEAR) {
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0;
} else {
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 255;
@@ -1166,11 +1166,11 @@ void Message_DrawTextDefault(PlayState* play, Gfx** gfxP) {
msgCtx->textColorR = sColorsBombersNotebookJPN[(s16)(character - 0x2001)].r;
msgCtx->textColorG = sColorsBombersNotebookJPN[(s16)(character - 0x2001)].g;
msgCtx->textColorB = sColorsBombersNotebookJPN[(s16)(character - 0x2001)].b;
- } else if (msgCtx->textBoxType == TEXTBOX_TYPE_1) {
+ } else if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
msgCtx->textColorR = D_801CFE74[(s16)(character - 0x2001)].r;
msgCtx->textColorG = D_801CFE74[(s16)(character - 0x2001)].g;
msgCtx->textColorB = D_801CFE74[(s16)(character - 0x2001)].b;
- } else if (msgCtx->textBoxType == TEXTBOX_TYPE_D) {
+ } else if (msgCtx->textBoxType == TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION) {
msgCtx->textColorR = D_801CFF04[(s16)(character - 0x2001)].r;
msgCtx->textColorG = D_801CFF04[(s16)(character - 0x2001)].g;
msgCtx->textColorB = D_801CFF04[(s16)(character - 0x2001)].b;
@@ -1429,7 +1429,7 @@ void Message_DrawTextDefault(PlayState* play, Gfx** gfxP) {
case 0x240:
case 0x500:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
- if (msgCtx->textBoxType == TEXTBOX_TYPE_3) {
+ if (msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) {
Message_HandleOcarina(play);
*gfxP = gfx;
return;
@@ -2226,7 +2226,7 @@ void Message_Decode(PlayState* play) {
}
spC0 = 0.0f;
if (curChar == 0xB) {
- if ((msgCtx->textBoxType != TEXTBOX_TYPE_3) && (msgCtx->textBoxType != TEXTBOX_TYPE_4)) {
+ if ((msgCtx->textBoxType != TEXTBOX_TYPE_OCARINA) && (msgCtx->textBoxType != TEXTBOX_TYPE_4)) {
if (numLines < 2) {
msgCtx->unk11FFA = msgCtx->textboxY + 0x16;
} else if (numLines == 2) {
@@ -2236,7 +2236,7 @@ void Message_Decode(PlayState* play) {
} else {
s8 requiredScopeTemp;
- if ((msgCtx->textBoxType != TEXTBOX_TYPE_3) && (msgCtx->textBoxType != TEXTBOX_TYPE_4)) {
+ if ((msgCtx->textBoxType != TEXTBOX_TYPE_OCARINA) && (msgCtx->textBoxType != TEXTBOX_TYPE_4)) {
if (numLines == 0) {
msgCtx->unk11FFA = msgCtx->textboxY + 0x16;
} else if (numLines == 1) {
@@ -2251,10 +2251,11 @@ void Message_Decode(PlayState* play) {
}
msgCtx->decodedTextLen = decodedBufPos;
- if (msgCtx->textboxSkipped || (msgCtx->textBoxType == TEXTBOX_TYPE_1) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_3) || (msgCtx->textBoxType == TEXTBOX_TYPE_6) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_8) || (msgCtx->textBoxType == TEXTBOX_TYPE_9) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_B) || (msgCtx->unk11F0C == 3)) {
+ if (msgCtx->textboxSkipped || (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_DISPLAY_ALL) || (msgCtx->textBoxType == TEXTBOX_TYPE_BLUE) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_PAUSE_INFO) || (msgCtx->textBoxType == TEXTBOX_TYPE_B) ||
+ (msgCtx->unk11F0C == 3)) {
msgCtx->textDrawPos = msgCtx->decodedTextLen;
}
@@ -3013,10 +3014,11 @@ void Message_Decode(PlayState* play) {
msgCtx->decodedBuffer.wchar[++decodedBufPos] = font->msgBuf.wchar[++msgCtx->msgBufPos] & 0xFF;
} else if (curChar == 0x120) {
msgCtx->decodedBuffer.wchar[++decodedBufPos] = font->msgBuf.wchar[++msgCtx->msgBufPos];
- if (msgCtx->textboxSkipped || (msgCtx->textBoxType == TEXTBOX_TYPE_1) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_3) || (msgCtx->textBoxType == TEXTBOX_TYPE_6) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_8) || (msgCtx->textBoxType == TEXTBOX_TYPE_9) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_B) || (msgCtx->unk11F0C == 3)) {
+ if (msgCtx->textboxSkipped || (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_DISPLAY_ALL) || (msgCtx->textBoxType == TEXTBOX_TYPE_BLUE) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_PAUSE_INFO) || (msgCtx->textBoxType == TEXTBOX_TYPE_B) ||
+ (msgCtx->unk11F0C == 3)) {
Audio_PlaySfx(msgCtx->decodedBuffer.wchar[decodedBufPos]);
}
} else if (curChar == 0x128) {
@@ -3056,29 +3058,29 @@ void Message_Decode(PlayState* play) {
}
}
-void func_80150A84(PlayState* play) {
+void Message_SetTextboxColor(PlayState* play) {
MessageContext* msgCtx = &play->msgCtx;
s32 textBoxType = msgCtx->textBoxType;
- if (D_801CFC78[textBoxType] != 14) {
- DmaMgr_RequestSync(msgCtx->textboxSegment, SEGMENT_ROM_START(message_static) + D_801CFC78[textBoxType] * 0x1000,
- 0x1000);
+ if (gTextBoxBackgroundTypes[textBoxType] != TEXTBOX_BG_NONE) {
+ DmaMgr_RequestSync(msgCtx->textboxSegment,
+ SEGMENT_ROM_START(message_static) + gTextBoxBackgroundTypes[textBoxType] * 0x1000, 0x1000);
if (!play->pauseCtx.bombersNotebookOpen) {
- if ((textBoxType == TEXTBOX_TYPE_0) || (textBoxType == TEXTBOX_TYPE_6) || (textBoxType == TEXTBOX_TYPE_A) ||
- (textBoxType == TEXTBOX_TYPE_B)) {
+ if ((textBoxType == TEXTBOX_TYPE_BLACK) || (textBoxType == TEXTBOX_TYPE_DISPLAY_ALL) ||
+ (textBoxType == TEXTBOX_TYPE_A) || (textBoxType == TEXTBOX_TYPE_B)) {
msgCtx->textboxColorRed = 0;
msgCtx->textboxColorGreen = 0;
msgCtx->textboxColorBlue = 0;
- } else if (textBoxType == TEXTBOX_TYPE_1) {
+ } else if (textBoxType == TEXTBOX_TYPE_WOODEN) {
msgCtx->textboxColorRed = 70;
msgCtx->textboxColorGreen = 50;
msgCtx->textboxColorBlue = 30;
- } else if ((textBoxType == TEXTBOX_TYPE_2) || (textBoxType == TEXTBOX_TYPE_8)) {
+ } else if ((textBoxType == TEXTBOX_TYPE_BLUE_FADED) || (textBoxType == TEXTBOX_TYPE_BLUE)) {
msgCtx->textboxColorRed = 0;
msgCtx->textboxColorGreen = 10;
msgCtx->textboxColorBlue = 50;
- } else if (textBoxType == TEXTBOX_TYPE_D) {
+ } else if (textBoxType == TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION) {
msgCtx->textboxColorRed = 255;
msgCtx->textboxColorGreen = 255;
msgCtx->textboxColorBlue = 195;
@@ -3088,11 +3090,11 @@ void func_80150A84(PlayState* play) {
msgCtx->textboxColorBlue = 0;
}
- if (textBoxType == TEXTBOX_TYPE_1) {
+ if (textBoxType == TEXTBOX_TYPE_WOODEN) {
msgCtx->textboxColorAlphaTarget = 230;
- } else if (textBoxType == TEXTBOX_TYPE_3) {
+ } else if (textBoxType == TEXTBOX_TYPE_OCARINA) {
msgCtx->textboxColorAlphaTarget = 180;
- } else if (textBoxType == TEXTBOX_TYPE_D) {
+ } else if (textBoxType == TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION) {
msgCtx->textboxColorAlphaTarget = 220;
} else {
msgCtx->textboxColorAlphaTarget = 170;
@@ -3223,7 +3225,7 @@ void Message_OpenText(PlayState* play, u16 textId) {
}
msgCtx->itemId = 0xFE;
- if ((msgCtx->textBoxType == TEXTBOX_TYPE_5) || (msgCtx->textBoxType == TEXTBOX_TYPE_D) ||
+ if ((msgCtx->textBoxType == TEXTBOX_TYPE_CLEAR) || (msgCtx->textBoxType == TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION) ||
(play->pauseCtx.bombersNotebookOpen)) {
msgCtx->unk120CE = msgCtx->unk120D0 = msgCtx->unk120D2 = 0;
} else {
@@ -3304,11 +3306,12 @@ void Message_PauseMenu_ShowDescription(PlayState* play, u16 textId, u8 textBoxPo
msgCtx->decodedTextLen = 0;
msgCtx->unk11F08 = font->msgBuf.wchar[msgCtx->msgBufPos];
msgCtx->unk11F18 = (msgCtx->unk11F08 & 0xF000) >> 0xC;
- msgCtx->textBoxType = TEXTBOX_TYPE_9;
+ msgCtx->textBoxType = TEXTBOX_TYPE_PAUSE_INFO;
msgCtx->textBoxPos = textBoxPos;
msgCtx->unk11F0C = msgCtx->unk11F08 & 0xF;
msgCtx->textUnskippable = true;
- DmaMgr_RequestSync(msgCtx->textboxSegment, SEGMENT_ROM_START(message_static) + (D_801CFC78[0] * 0x1000), 0x1000);
+ DmaMgr_RequestSync(msgCtx->textboxSegment,
+ SEGMENT_ROM_START(message_static) + (gTextBoxBackgroundTypes[0] * 0x1000), 0x1000);
msgCtx->textboxColorRed = 0;
msgCtx->textboxColorGreen = 0;
msgCtx->textboxColorBlue = 0;
@@ -3342,7 +3345,7 @@ void Message_ContinueTextbox(PlayState* play, u16 textId) {
msgCtx->msgLength = 0;
Message_OpenText(play, textId);
- func_80150A84(play);
+ Message_SetTextboxColor(play);
msgCtx->msgMode = MSGMODE_TEXT_CONTINUING;
msgCtx->stateTimer = 8;
msgCtx->textDelayTimer = 0;
@@ -3369,7 +3372,7 @@ void Message_DisplaySceneTitleCard(PlayState* play, u16 textId) {
msgCtx->msgLength = 0;
Message_OpenText(play, textId);
- func_80150A84(play);
+ Message_SetTextboxColor(play);
Message_DecodeNES(play);
msgCtx->msgMode = MSGMODE_SCENE_TITLE_CARD_FADE_IN_BACKGROUND;
msgCtx->textDelayTimer = 0;
@@ -3523,40 +3526,40 @@ void Message_DisplayOcarinaStaffImpl(PlayState* play, u16 ocarinaAction) {
if ((ocarinaAction >= OCARINA_ACTION_TIMED_PROMPT_SONATA) &&
(ocarinaAction <= OCARINA_ACTION_TIMED_PROMPT_STORMS)) {
Message_OpenText(play, 0x1B59);
- func_80150A84(play);
+ Message_SetTextboxColor(play);
} else if ((ocarinaAction == OCARINA_ACTION_3B) || (ocarinaAction == OCARINA_ACTION_3C)) {
noStop = true;
Message_OpenText(play, D_801D028C[ocarinaAction - 0x29]);
- func_80150A84(play);
+ Message_SetTextboxColor(play);
} else if ((ocarinaAction >= OCARINA_ACTION_DEMONSTRATE_EVAN_PART1_FIRST_HALF) &&
(ocarinaAction <= OCARINA_ACTION_PROMPT_EVAN_PART2_SECOND_HALF)) {
noStop = true;
Message_OpenText(play, D_801D028C[ocarinaAction - 0x29]);
- func_80150A84(play);
+ Message_SetTextboxColor(play);
} else if ((ocarinaAction >= OCARINA_ACTION_PROMPT_WIND_FISH_HUMAN) &&
(ocarinaAction <= OCARINA_ACTION_PROMPT_WIND_FISH_DEKU)) {
noStop = true;
Message_OpenText(play, 0x1B59);
- func_80150A84(play);
+ Message_SetTextboxColor(play);
} else if ((ocarinaAction == OCARINA_ACTION_FREE_PLAY) || (ocarinaAction >= OCARINA_ACTION_CHECK_TIME)) {
if ((ocarinaAction >= OCARINA_ACTION_CHECK_TIME) && (ocarinaAction <= OCARINA_ACTION_CHECK_STORMS)) {
Audio_PlaySfx(NA_SE_SY_TRE_BOX_APPEAR);
}
if (ocarinaAction == OCARINA_ACTION_SCARECROW_SPAWN_DEMONSTRATION) {
Message_OpenText(play, 0x1B5B);
- func_80150A84(play);
+ Message_SetTextboxColor(play);
} else {
Message_OpenText(play, 0x1B5A);
- func_80150A84(play);
+ Message_SetTextboxColor(play);
}
} else {
noStop = true;
if (ocarinaAction >= OCARINA_ACTION_PROMPT_SONATA) {
Message_OpenText(play, 0x1B59);
- func_80150A84(play);
+ Message_SetTextboxColor(play);
} else {
Message_OpenText(play, D_801D028C[ocarinaAction]);
- func_80150A84(play);
+ Message_SetTextboxColor(play);
}
}
@@ -3586,12 +3589,12 @@ void Message_DisplayOcarinaStaffImpl(PlayState* play, u16 ocarinaAction) {
if ((ocarinaAction == OCARINA_ACTION_FREE_PLAY) || (ocarinaAction == OCARINA_ACTION_CHECK_NOTIME)) {
msgCtx->msgMode = MSGMODE_OCARINA_STARTING;
- msgCtx->textBoxType = TEXTBOX_TYPE_E;
+ msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA_FREE_PLAY;
} else if (ocarinaAction == OCARINA_ACTION_3A) {
msgCtx->msgMode = MSGMODE_32;
} else if (ocarinaAction == OCARINA_ACTION_37) {
msgCtx->msgMode = MSGMODE_2F;
- msgCtx->textBoxType = TEXTBOX_TYPE_2;
+ msgCtx->textBoxType = TEXTBOX_TYPE_BLUE_FADED;
} else if (ocarinaAction == OCARINA_ACTION_SCARECROW_LONG_DEMONSTRATION) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
@@ -3702,10 +3705,10 @@ void Message_DrawTextBox(PlayState* play, Gfx** gfxP) {
gDPPipeSync(gfx++);
- if (((u32)msgCtx->textBoxType == TEXTBOX_TYPE_0) || (msgCtx->textBoxType == TEXTBOX_TYPE_2) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_9) || (msgCtx->textBoxType == TEXTBOX_TYPE_A)) {
+ if (((u32)msgCtx->textBoxType == TEXTBOX_TYPE_BLACK) || (msgCtx->textBoxType == TEXTBOX_TYPE_BLUE_FADED) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_PAUSE_INFO) || (msgCtx->textBoxType == TEXTBOX_TYPE_A)) {
gDPSetRenderMode(gfx++, G_RM_CLD_SURF, G_RM_CLD_SURF2);
- } else if (msgCtx->textBoxType == TEXTBOX_TYPE_3) {
+ } else if (msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) {
gDPSetAlphaCompare(gfx++, G_AC_THRESHOLD);
gDPSetRenderMode(gfx++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
}
@@ -3713,17 +3716,17 @@ void Message_DrawTextBox(PlayState* play, Gfx** gfxP) {
gDPSetPrimColor(gfx++, 0, 0, msgCtx->textboxColorRed, msgCtx->textboxColorGreen, msgCtx->textboxColorBlue,
msgCtx->textboxColorAlphaCurrent);
- if (((u32)msgCtx->textBoxType == TEXTBOX_TYPE_0) || (msgCtx->textBoxType == TEXTBOX_TYPE_2) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_6) || (msgCtx->textBoxType == TEXTBOX_TYPE_8) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_9) || (msgCtx->textBoxType == TEXTBOX_TYPE_A)) {
+ if (((u32)msgCtx->textBoxType == TEXTBOX_TYPE_BLACK) || (msgCtx->textBoxType == TEXTBOX_TYPE_BLUE_FADED) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_DISPLAY_ALL) || (msgCtx->textBoxType == TEXTBOX_TYPE_BLUE) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_PAUSE_INFO) || (msgCtx->textBoxType == TEXTBOX_TYPE_A)) {
gDPLoadTextureBlock_4b(gfx++, msgCtx->textboxSegment, G_IM_FMT_I, 128, 64, 0, G_TX_MIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, 7, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
} else {
gDPPipeSync(gfx++);
- if (msgCtx->textBoxType == TEXTBOX_TYPE_3) {
+ if (msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) {
gDPSetEnvColor(gfx++, 0, 0, 0, 255);
- } else if (msgCtx->textBoxType == TEXTBOX_TYPE_D) {
+ } else if (msgCtx->textBoxType == TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION) {
gDPSetEnvColor(gfx++, 20, 0, 10, 255);
} else {
gDPSetEnvColor(gfx++, 50, 20, 0, 255);
@@ -3743,7 +3746,7 @@ void Message_DrawTextBox(PlayState* play, Gfx** gfxP) {
}
// Draw treble clef
- if (msgCtx->textBoxType == TEXTBOX_TYPE_3) {
+ if (msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) {
gDPPipeSync(gfx++);
gDPSetCombineLERP(gfx++, 1, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, 1, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE,
0);
@@ -4151,22 +4154,22 @@ u8 sPlayerFormOcarinaInstruments[] = {
OCARINA_INSTRUMENT_DEKU_PIPES,
};
-s16 D_801D03A8[TEXTBOX_TYPE_MAX] = {
- 0x3B, // TEXTBOX_TYPE_0
- 0x3B, // TEXTBOX_TYPE_1
- 0x3B, // TEXTBOX_TYPE_2
- 0x3B, // TEXTBOX_TYPE_3
+s16 gTextBoxNextIconYOffsets[TEXTBOX_TYPE_MAX] = {
+ 0x3B, // TEXTBOX_TYPE_BLACK
+ 0x3B, // TEXTBOX_TYPE_WOODEN
+ 0x3B, // TEXTBOX_TYPE_BLUE_FADED
+ 0x3B, // TEXTBOX_TYPE_OCARINA
0x22, // TEXTBOX_TYPE_4
- 0x3B, // TEXTBOX_TYPE_5
- 0x3B, // TEXTBOX_TYPE_6
- 0x3B, // TEXTBOX_TYPE_7
- 0x3B, // TEXTBOX_TYPE_8
- 0x3B, // TEXTBOX_TYPE_9
+ 0x3B, // TEXTBOX_TYPE_CLEAR
+ 0x3B, // TEXTBOX_TYPE_DISPLAY_ALL
+ 0x3B, // TEXTBOX_TYPE_CLEAR_DISPLAY_ALL
+ 0x3B, // TEXTBOX_TYPE_BLUE
+ 0x3B, // TEXTBOX_TYPE_PAUSE_INFO
0x3B, // TEXTBOX_TYPE_A
0x3B, // TEXTBOX_TYPE_B
- 0x3B, // TEXTBOX_TYPE_C
- 0x3B, // TEXTBOX_TYPE_D
- 0x3B, // TEXTBOX_TYPE_E
+ 0x3B, // TEXTBOX_TYPE_TITLE_CARD
+ 0x3B, // TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION
+ 0x3B, // TEXTBOX_TYPE_OCARINA_FREE_PLAY
0x3B, // TEXTBOX_TYPE_F
};
@@ -4197,7 +4200,7 @@ void Message_DrawMain(PlayState* play, Gfx** gfxP) {
(msgCtx->msgMode != MSGMODE_40) &&
(((msgCtx->msgMode >= MSGMODE_TEXT_BOX_GROWING) && (msgCtx->msgMode <= MSGMODE_TEXT_DONE)) ||
((msgCtx->msgMode >= MSGMODE_NEW_CYCLE_0) && (msgCtx->msgMode <= MSGMODE_OWL_SAVE_2))) &&
- (D_801CFC78[msgCtx->textBoxType] != 0xE)) {
+ (gTextBoxBackgroundTypes[msgCtx->textBoxType] != TEXTBOX_BG_NONE)) {
Message_DrawTextBox(play, &gfx);
}
}
@@ -4270,7 +4273,7 @@ void Message_DrawMain(PlayState* play, Gfx** gfxP) {
case MSGMODE_TEXT_AWAIT_NEXT:
Message_DrawText(play, &gfx);
Message_DrawTextboxIcon(play, &gfx, 158,
- (s16)(D_801D03A8[msgCtx->textBoxType] + msgCtx->textboxYTarget));
+ (s16)(gTextBoxNextIconYOffsets[msgCtx->textBoxType] + msgCtx->textboxYTarget));
break;
case MSGMODE_OCARINA_STARTING:
@@ -4414,7 +4417,7 @@ void Message_DrawMain(PlayState* play, Gfx** gfxP) {
} else {
Message_ContinueTextbox(play, 0x1B5B);
msgCtx->msgMode = MSGMODE_SONG_PLAYED;
- msgCtx->textBoxType = TEXTBOX_TYPE_3;
+ msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA;
msgCtx->stateTimer = 10;
Audio_PlaySfx(NA_SE_SY_TRE_BOX_APPEAR);
Interface_SetHudVisibility(HUD_VISIBILITY_NONE);
@@ -4428,7 +4431,7 @@ void Message_DrawMain(PlayState* play, Gfx** gfxP) {
} else {
Message_ContinueTextbox(play, 0x1B5B);
msgCtx->msgMode = MSGMODE_SONG_PLAYED;
- msgCtx->textBoxType = TEXTBOX_TYPE_3;
+ msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA;
msgCtx->stateTimer = 10;
Audio_PlaySfx(NA_SE_SY_TRE_BOX_APPEAR);
Interface_SetHudVisibility(HUD_VISIBILITY_NONE);
@@ -4436,7 +4439,7 @@ void Message_DrawMain(PlayState* play, Gfx** gfxP) {
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY) {
Message_ContinueTextbox(play, 0x1B5B);
msgCtx->msgMode = MSGMODE_SONG_PLAYED;
- msgCtx->textBoxType = TEXTBOX_TYPE_3;
+ msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA;
msgCtx->stateTimer = 10;
Audio_PlaySfx(NA_SE_SY_TRE_BOX_APPEAR);
} else {
@@ -4485,17 +4488,17 @@ void Message_DrawMain(PlayState* play, Gfx** gfxP) {
if (msgCtx->msgMode == MSGMODE_E) {
Message_ContinueTextbox(play, 0x1B5B);
msgCtx->msgMode = MSGMODE_SONG_PLAYED;
- msgCtx->textBoxType = TEXTBOX_TYPE_3;
+ msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA;
msgCtx->stateTimer = 1;
} else if (msgCtx->msgMode == MSGMODE_SONG_PROMPT_SUCCESS) {
Message_ContinueTextbox(play, 0x1B5B);
msgCtx->msgMode = MSGMODE_SONG_PLAYED;
- msgCtx->textBoxType = TEXTBOX_TYPE_3;
+ msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA;
msgCtx->stateTimer = 1;
} else if (msgCtx->msgMode == MSGMODE_22) {
msgCtx->msgMode = MSGMODE_23;
play->msgCtx.ocarinaMode = OCARINA_MODE_EVENT;
- msgCtx->textBoxType = TEXTBOX_TYPE_0;
+ msgCtx->textBoxType = TEXTBOX_TYPE_BLACK;
} else if (msgCtx->msgMode == MSGMODE_34) {
if (msgCtx->songPlayed == OCARINA_SONG_TERMINA_WALL) {
Message_CloseTextbox(play);
@@ -4766,7 +4769,7 @@ void Message_DrawMain(PlayState* play, Gfx** gfxP) {
msgCtx->stateTimer--;
if (msgCtx->stateTimer == 0) {
msgCtx->msgMode = MSGMODE_21;
- msgCtx->textBoxType = TEXTBOX_TYPE_0;
+ msgCtx->textBoxType = TEXTBOX_TYPE_BLACK;
}
}
break;
@@ -4975,7 +4978,7 @@ void Message_DrawMain(PlayState* play, Gfx** gfxP) {
D_801C6A94 += D_801C6A94;
if (D_801C6A94 >= 0x226) {
Message_ResetOcarinaButtonAlphas();
- msgCtx->textBoxType = TEXTBOX_TYPE_0;
+ msgCtx->textBoxType = TEXTBOX_TYPE_BLACK;
msgCtx->textboxColorRed = msgCtx->textboxColorGreen = msgCtx->textboxColorBlue = 0;
msgCtx->stateTimer = 3;
msgCtx->msgMode++;
@@ -5079,13 +5082,15 @@ void Message_DrawMain(PlayState* play, Gfx** gfxP) {
case TEXTBOX_ENDTYPE_INPUT_BANK:
case TEXTBOX_ENDTYPE_INPUT_DOGGY_RACETRACK_BET:
default:
- Message_DrawTextboxIcon(play, &gfx, 158,
- (s16)(D_801D03A8[msgCtx->textBoxType] + msgCtx->textboxYTarget));
+ Message_DrawTextboxIcon(
+ play, &gfx, 158,
+ (s16)(gTextBoxNextIconYOffsets[msgCtx->textBoxType] + msgCtx->textboxYTarget));
break;
case TEXTBOX_ENDTYPE_EVENT2:
- Message_DrawTextboxIcon(play, &gfx, 158,
- (s16)(D_801D03A8[msgCtx->textBoxType] + msgCtx->textboxYTarget));
+ Message_DrawTextboxIcon(
+ play, &gfx, 158,
+ (s16)(gTextBoxNextIconYOffsets[msgCtx->textBoxType] + msgCtx->textboxYTarget));
break;
}
break;
@@ -5143,78 +5148,78 @@ void Message_Draw(PlayState* play) {
}
s16 sTextboxXPositions[TEXTBOX_TYPE_MAX] = {
- 34, // TEXTBOX_TYPE_0
- 34, // TEXTBOX_TYPE_1
- 34, // TEXTBOX_TYPE_2
- 34, // TEXTBOX_TYPE_3
+ 34, // TEXTBOX_TYPE_BLACK
+ 34, // TEXTBOX_TYPE_WOODEN
+ 34, // TEXTBOX_TYPE_BLUE_FADED
+ 34, // TEXTBOX_TYPE_OCARINA
34, // TEXTBOX_TYPE_4
- 34, // TEXTBOX_TYPE_5
- 34, // TEXTBOX_TYPE_6
- 34, // TEXTBOX_TYPE_7
- 34, // TEXTBOX_TYPE_8
- 34, // TEXTBOX_TYPE_9
+ 34, // TEXTBOX_TYPE_CLEAR
+ 34, // TEXTBOX_TYPE_DISPLAY_ALL
+ 34, // TEXTBOX_TYPE_CLEAR_DISPLAY_ALL
+ 34, // TEXTBOX_TYPE_BLUE
+ 34, // TEXTBOX_TYPE_PAUSE_INFO
34, // TEXTBOX_TYPE_A
34, // TEXTBOX_TYPE_B
- 34, // TEXTBOX_TYPE_C
- 34, // TEXTBOX_TYPE_D
- 34, // TEXTBOX_TYPE_E
+ 34, // TEXTBOX_TYPE_TITLE_CARD
+ 34, // TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION
+ 34, // TEXTBOX_TYPE_OCARINA_FREE_PLAY
34, // TEXTBOX_TYPE_F
};
s16 sTextboxLowerYPositions[] = {
- 142, // TEXTBOX_TYPE_0
- 142, // TEXTBOX_TYPE_1
- 142, // TEXTBOX_TYPE_2
- 142, // TEXTBOX_TYPE_3
+ 142, // TEXTBOX_TYPE_BLACK
+ 142, // TEXTBOX_TYPE_WOODEN
+ 142, // TEXTBOX_TYPE_BLUE_FADED
+ 142, // TEXTBOX_TYPE_OCARINA
174, // TEXTBOX_TYPE_4
- 142, // TEXTBOX_TYPE_5
- 142, // TEXTBOX_TYPE_6
- 142, // TEXTBOX_TYPE_7
- 142, // TEXTBOX_TYPE_8
- 130, // TEXTBOX_TYPE_9
+ 142, // TEXTBOX_TYPE_CLEAR
+ 142, // TEXTBOX_TYPE_DISPLAY_ALL
+ 142, // TEXTBOX_TYPE_CLEAR_DISPLAY_ALL
+ 142, // TEXTBOX_TYPE_BLUE
+ 130, // TEXTBOX_TYPE_PAUSE_INFO
174, // TEXTBOX_TYPE_A
0, // TEXTBOX_TYPE_B
- 142, // TEXTBOX_TYPE_C
- 142, // TEXTBOX_TYPE_D
- 142, // TEXTBOX_TYPE_E
+ 142, // TEXTBOX_TYPE_TITLE_CARD
+ 142, // TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION
+ 142, // TEXTBOX_TYPE_OCARINA_FREE_PLAY
142, // TEXTBOX_TYPE_F
};
s16 sTextboxUpperYPositions[] = {
- 38, // TEXTBOX_TYPE_0
- 38, // TEXTBOX_TYPE_1
- 38, // TEXTBOX_TYPE_2
- 38, // TEXTBOX_TYPE_3
+ 38, // TEXTBOX_TYPE_BLACK
+ 38, // TEXTBOX_TYPE_WOODEN
+ 38, // TEXTBOX_TYPE_BLUE_FADED
+ 38, // TEXTBOX_TYPE_OCARINA
174, // TEXTBOX_TYPE_4
- 38, // TEXTBOX_TYPE_5
- 38, // TEXTBOX_TYPE_6
- 38, // TEXTBOX_TYPE_7
- 38, // TEXTBOX_TYPE_8
- 60, // TEXTBOX_TYPE_9
+ 38, // TEXTBOX_TYPE_CLEAR
+ 38, // TEXTBOX_TYPE_DISPLAY_ALL
+ 38, // TEXTBOX_TYPE_CLEAR_DISPLAY_ALL
+ 38, // TEXTBOX_TYPE_BLUE
+ 60, // TEXTBOX_TYPE_PAUSE_INFO
174, // TEXTBOX_TYPE_A
0, // TEXTBOX_TYPE_B
- 38, // TEXTBOX_TYPE_C
- 38, // TEXTBOX_TYPE_D
- 38, // TEXTBOX_TYPE_E
+ 38, // TEXTBOX_TYPE_TITLE_CARD
+ 38, // TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION
+ 38, // TEXTBOX_TYPE_OCARINA_FREE_PLAY
38, // TEXTBOX_TYPE_F
};
s16 sTextboxMidYPositions[] = {
- 90, // TEXTBOX_TYPE_0
- 90, // TEXTBOX_TYPE_1
- 90, // TEXTBOX_TYPE_2
- 90, // TEXTBOX_TYPE_3
+ 90, // TEXTBOX_TYPE_BLACK
+ 90, // TEXTBOX_TYPE_WOODEN
+ 90, // TEXTBOX_TYPE_BLUE_FADED
+ 90, // TEXTBOX_TYPE_OCARINA
174, // TEXTBOX_TYPE_4
- 90, // TEXTBOX_TYPE_5
- 90, // TEXTBOX_TYPE_6
- 90, // TEXTBOX_TYPE_7
- 90, // TEXTBOX_TYPE_8
- 90, // TEXTBOX_TYPE_9
+ 90, // TEXTBOX_TYPE_CLEAR
+ 90, // TEXTBOX_TYPE_DISPLAY_ALL
+ 90, // TEXTBOX_TYPE_CLEAR_DISPLAY_ALL
+ 90, // TEXTBOX_TYPE_BLUE
+ 90, // TEXTBOX_TYPE_PAUSE_INFO
174, // TEXTBOX_TYPE_A
0, // TEXTBOX_TYPE_B
- 90, // TEXTBOX_TYPE_C
- 90, // TEXTBOX_TYPE_D
- 90, // TEXTBOX_TYPE_E
+ 90, // TEXTBOX_TYPE_TITLE_CARD
+ 90, // TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION
+ 90, // TEXTBOX_TYPE_OCARINA_FREE_PLAY
90, // TEXTBOX_TYPE_F
};
@@ -5389,7 +5394,7 @@ void Message_Update(PlayState* play) {
msgCtx->choicePosY[2] = (s16)(msgCtx->textboxYTarget + 44);
}
- if ((msgCtx->textBoxType == TEXTBOX_TYPE_4) || (msgCtx->textBoxType == TEXTBOX_TYPE_5)) {
+ if ((msgCtx->textBoxType == TEXTBOX_TYPE_4) || (msgCtx->textBoxType == TEXTBOX_TYPE_CLEAR)) {
msgCtx->msgMode = MSGMODE_TEXT_STARTING;
msgCtx->textboxX = msgCtx->textboxXTarget;
msgCtx->textboxY = msgCtx->textboxYTarget;
@@ -5406,7 +5411,7 @@ void Message_Update(PlayState* play) {
msgCtx->msgMode = MSGMODE_TEXT_BOX_GROWING;
if (!pauseCtx->itemDescriptionOn) {
- func_80150A84(play);
+ Message_SetTextboxColor(play);
}
}
break;
diff --git a/src/code/z_message_nes.c b/src/code/z_message_nes.c
index 9e475c51e..64407fc53 100644
--- a/src/code/z_message_nes.c
+++ b/src/code/z_message_nes.c
@@ -454,9 +454,9 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) {
switch (character) {
case MESSAGE_COLOR_DEFAULT:
- if (play->pauseCtx.bombersNotebookOpen || (msgCtx->textBoxType == TEXTBOX_TYPE_D)) {
+ if (play->pauseCtx.bombersNotebookOpen || (msgCtx->textBoxType == TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION)) {
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0;
- } else if (msgCtx->textBoxType == TEXTBOX_TYPE_5) {
+ } else if (msgCtx->textBoxType == TEXTBOX_TYPE_CLEAR) {
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0;
} else {
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 255;
@@ -512,11 +512,11 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) {
msgCtx->textColorR = sColorsBombersNotebookNES[(s16)(character - 1)].r;
msgCtx->textColorG = sColorsBombersNotebookNES[(s16)(character - 1)].g;
msgCtx->textColorB = sColorsBombersNotebookNES[(s16)(character - 1)].b;
- } else if (msgCtx->textBoxType == TEXTBOX_TYPE_1) {
+ } else if (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) {
msgCtx->textColorR = D_801D07DC[(s16)(character - 1)].r;
msgCtx->textColorG = D_801D07DC[(s16)(character - 1)].g;
msgCtx->textColorB = D_801D07DC[(s16)(character - 1)].b;
- } else if (msgCtx->textBoxType == TEXTBOX_TYPE_D) {
+ } else if (msgCtx->textBoxType == TEXTBOX_TYPE_NOTEBOOK_NOTIFICATION) {
msgCtx->textColorR = D_801D086C[(s16)(character - 1)].r;
msgCtx->textColorG = D_801D086C[(s16)(character - 1)].g;
msgCtx->textColorB = D_801D086C[(s16)(character - 1)].b;
@@ -813,7 +813,7 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) {
case MESSAGE_CONTINUE:
case MESSAGE_END:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
- if (msgCtx->textBoxType == TEXTBOX_TYPE_3) {
+ if (msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) {
Message_HandleOcarina(play);
*gfxP = gfx;
return;
@@ -1053,7 +1053,7 @@ void Message_DecodeNES(PlayState* play) {
(curChar == MESSAGE_END) || (curChar == MESSAGE_CONTINUE) || (curChar == MESSAGE_PERSISTENT)) {
msgCtx->msgMode = MSGMODE_TEXT_DISPLAYING;
msgCtx->textDrawPos = 1;
- if (msgCtx->textBoxType == TEXTBOX_TYPE_3) {
+ if (msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) {
msgCtx->unk11FFA = msgCtx->textboxY + 2;
} else {
msgCtx->unk11FFA = msgCtx->textboxY + 8;
@@ -1066,7 +1066,7 @@ void Message_DecodeNES(PlayState* play) {
spA4 = 0.0f;
if (curChar == MESSAGE_BOX_BREAK2) {
- if ((msgCtx->textBoxType != TEXTBOX_TYPE_3) && (msgCtx->textBoxType != TEXTBOX_TYPE_4)) {
+ if ((msgCtx->textBoxType != TEXTBOX_TYPE_OCARINA) && (msgCtx->textBoxType != TEXTBOX_TYPE_4)) {
if (numLines < 2) {
msgCtx->unk11FFA = msgCtx->textboxY + XREG(10);
} else if (numLines == 2) {
@@ -1076,7 +1076,7 @@ void Message_DecodeNES(PlayState* play) {
}
}
} else {
- if ((msgCtx->textBoxType != TEXTBOX_TYPE_3) && (msgCtx->textBoxType != TEXTBOX_TYPE_4)) {
+ if ((msgCtx->textBoxType != TEXTBOX_TYPE_OCARINA) && (msgCtx->textBoxType != TEXTBOX_TYPE_4)) {
if (numLines == 0) {
msgCtx->unk11FFA = msgCtx->textboxY + XREG(13) + XREG(10);
} else if (numLines == 1) {
@@ -1101,9 +1101,9 @@ void Message_DecodeNES(PlayState* play) {
msgCtx->decodedTextLen = decodedBufPos;
msgCtx->unk120D8 = numLines;
- if (msgCtx->textboxSkipped || (msgCtx->textBoxType == TEXTBOX_TYPE_1) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_3) || (msgCtx->textBoxType == TEXTBOX_TYPE_6) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_8) || (msgCtx->textBoxType == TEXTBOX_TYPE_9) ||
+ if (msgCtx->textboxSkipped || (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) || (msgCtx->textBoxType == TEXTBOX_TYPE_DISPLAY_ALL) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_BLUE) || (msgCtx->textBoxType == TEXTBOX_TYPE_PAUSE_INFO) ||
(msgCtx->textBoxType == TEXTBOX_TYPE_B) || (msgCtx->unk11F0C == 3)) {
msgCtx->textDrawPos = msgCtx->decodedTextLen;
}
@@ -1934,9 +1934,9 @@ void Message_DecodeNES(PlayState* play) {
} else if (curChar == MESSAGE_SFX) {
msgCtx->decodedBuffer.schar[++decodedBufPos] = font->msgBuf.schar[++msgCtx->msgBufPos];
msgCtx->decodedBuffer.schar[++decodedBufPos] = font->msgBuf.schar[++msgCtx->msgBufPos];
- if (msgCtx->textboxSkipped || (msgCtx->textBoxType == TEXTBOX_TYPE_1) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_3) || (msgCtx->textBoxType == TEXTBOX_TYPE_6) ||
- (msgCtx->textBoxType == TEXTBOX_TYPE_8) || (msgCtx->textBoxType == TEXTBOX_TYPE_9) ||
+ if (msgCtx->textboxSkipped || (msgCtx->textBoxType == TEXTBOX_TYPE_WOODEN) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_OCARINA) || (msgCtx->textBoxType == TEXTBOX_TYPE_DISPLAY_ALL) ||
+ (msgCtx->textBoxType == TEXTBOX_TYPE_BLUE) || (msgCtx->textBoxType == TEXTBOX_TYPE_PAUSE_INFO) ||
(msgCtx->textBoxType == TEXTBOX_TYPE_B) || (msgCtx->unk11F0C == 3)) {
sfxHi = msgCtx->decodedBuffer.schar[decodedBufPos - 1] << 8;
sfxHi |= msgCtx->decodedBuffer.schar[decodedBufPos];
diff --git a/src/code/z_message_staff.c b/src/code/z_message_staff.c
index 78f55902a..f80d3000f 100644
--- a/src/code/z_message_staff.c
+++ b/src/code/z_message_staff.c
@@ -56,7 +56,7 @@ void Message_DrawTextCredits(PlayState* play, Gfx** gfxP) {
msgCtx->textPosY = 48;
}
- if (msgCtx->textBoxType == TEXTBOX_TYPE_5) {
+ if (msgCtx->textBoxType == TEXTBOX_TYPE_CLEAR) {
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 0;
} else {
msgCtx->textColorR = msgCtx->textColorG = msgCtx->textColorB = 255;
diff --git a/tools/disasm/n64-us/functions.txt b/tools/disasm/n64-us/functions.txt
index 3a8364736..2bf1d8bb0 100644
--- a/tools/disasm/n64-us/functions.txt
+++ b/tools/disasm/n64-us/functions.txt
@@ -2846,7 +2846,7 @@ Message_DecodeHeader = 0x8014CFDC; // type:func
Message_LoadTime = 0x8014D304; // type:func
Message_LoadOwlWarpText = 0x8014D62C; // type:func
Message_Decode = 0x8014D7B4; // type:func
-func_80150A84 = 0x80150A84; // type:func
+Message_SetTextboxColor = 0x80150A84; // type:func
Message_OpenText = 0x80150D08; // type:func
Message_PauseMenu_ShowDescription = 0x801514B0; // type:func
Message_StartTextbox = 0x801518B0; // type:func
diff --git a/tools/disasm/n64-us/variables.txt b/tools/disasm/n64-us/variables.txt
index 437312dd9..47753be00 100644
--- a/tools/disasm/n64-us/variables.txt
+++ b/tools/disasm/n64-us/variables.txt
@@ -1093,7 +1093,7 @@ gBombersNotebookWeekEventFlags = 0x801C6B28; // size:0x70
D_801C6B98 = 0x801C6B98; // size:0x81A8
D_801CED40 = 0x801CED40; // size:0xDC8
D_801CFB08 = 0x801CFB08; // size:0x170
-D_801CFC78 = 0x801CFC78; // size:0x2
+gTextBoxBackgroundTypes = 0x801CFC78; // size:0x2
D_801CFC7A = 0x801CFC7A; // size:0x2
D_801CFC7C = 0x801CFC7C; // size:0x2
D_801CFC7E = 0x801CFC7E; // size:0x6
@@ -1186,7 +1186,7 @@ D_801D0364 = 0x801D0364; // size:0x14
D_801D0378 = 0x801D0378; // size:0x24
D_801D039C = 0x801D039C; // size:0x8
D_801D03A4 = 0x801D03A4; // size:0x4
-D_801D03A8 = 0x801D03A8; // size:0x20
+gTextBoxNextIconYOffsets = 0x801D03A8; // size:0x20
D_801D03C8 = 0x801D03C8; // size:0x20
D_801D03E8 = 0x801D03E8; // size:0x8
D_801D03F0 = 0x801D03F0; // size:0x11
diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv
index c26e9443e..1ed99aeda 100644
--- a/tools/sizes/code_functions.csv
+++ b/tools/sizes/code_functions.csv
@@ -2363,7 +2363,7 @@ asm/non_matchings/code/z_message/Message_DecodeHeader.s,Message_DecodeHeader,0x8
asm/non_matchings/code/z_message/Message_LoadTime.s,Message_LoadTime,0x8014D304,0xCA
asm/non_matchings/code/z_message/Message_LoadOwlWarpText.s,Message_LoadOwlWarpText,0x8014D62C,0x62
asm/non_matchings/code/z_message/Message_Decode.s,Message_Decode,0x8014D7B4,0xCB4
-asm/non_matchings/code/z_message/func_80150A84.s,func_80150A84,0x80150A84,0xA1
+asm/non_matchings/code/z_message/Message_SetTextboxColor.s,Message_SetTextboxColor,0x80150A84,0xA1
asm/non_matchings/code/z_message/Message_OpenText.s,Message_OpenText,0x80150D08,0x1EA
asm/non_matchings/code/z_message/Message_PauseMenu_ShowDescription.s,Message_PauseMenu_ShowDescription,0x801514B0,0x100
asm/non_matchings/code/z_message/Message_StartTextbox.s,Message_StartTextbox,0x801518B0,0x22