summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Longstaff <JordanLongstaff@users.noreply.github.com>2025-12-06 17:36:31 -0500
committerGitHub <noreply@github.com>2025-12-06 14:36:31 -0800
commitf973883b060874f5ed6c4dd08a8fda2d5ba1b0d4 (patch)
treeee984e55390a6ab4c9349583c48a49768da46a26
parent5898c3e2b0603acfb0cb55f7d1226853f9dfefaf (diff)
Document `func_80148CBC` (#1836)
* Document `func_80148CBC` * Add doc comment
-rw-r--r--include/z64message.h2
-rw-r--r--src/code/z_message.c29
-rw-r--r--src/code/z_message_nes.c12
-rw-r--r--tools/disasm/n64-us/functions.txt2
-rw-r--r--tools/sizes/code_functions.csv2
5 files changed, 25 insertions, 22 deletions
diff --git a/include/z64message.h b/include/z64message.h
index da4349d69..4142ef324 100644
--- a/include/z64message.h
+++ b/include/z64message.h
@@ -211,7 +211,7 @@ typedef struct MessageContext {
/* 0x11FF8 */ s16 unk11FF8;
/* 0x11FFA */ s16 unk11FFA;
/* 0x11FFC */ s16 unk11FFC;
- /* 0x11FFE */ s16 unk11FFE[0x3];
+ /* 0x11FFE */ s16 choicePosY[0x3];
/* 0x12004 */ s16 textboxXTarget;
/* 0x12006 */ s16 textboxYTarget;
/* 0x12008 */ s16 unk12008;
diff --git a/src/code/z_message.c b/src/code/z_message.c
index 375491e82..dbeba7d3f 100644
--- a/src/code/z_message.c
+++ b/src/code/z_message.c
@@ -524,14 +524,17 @@ void Message_HandleChoiceSelection(PlayState* play, u8 numChoices) {
}
}
-void func_80148CBC(PlayState* play, Gfx** gfxP, u8 arg2) {
+/**
+ * Draws the arrow icon next to the currently selected choice.
+ */
+void Message_DrawChoiceIcon(PlayState* play, Gfx** gfxP, u8 numChoices) {
MessageContext* msgCtx = &play->msgCtx;
msgCtx->textPosX = 48;
- if (arg2 == 1) {
- msgCtx->textPosY = msgCtx->unk11FFE[1 + msgCtx->choiceIndex];
+ if (numChoices == 1) {
+ msgCtx->textPosY = msgCtx->choicePosY[1 + msgCtx->choiceIndex];
} else {
- msgCtx->textPosY = msgCtx->unk11FFE[msgCtx->choiceIndex];
+ msgCtx->textPosY = msgCtx->choicePosY[msgCtx->choiceIndex];
}
Message_DrawTextboxIcon(play, gfxP, msgCtx->textPosX, msgCtx->textPosY);
}
@@ -5051,15 +5054,15 @@ void Message_DrawMain(PlayState* play, Gfx** gfxP) {
switch (msgCtx->textboxEndType) {
case TEXTBOX_ENDTYPE_TWO_CHOICE:
- func_80148CBC(play, &gfx, 1);
+ Message_DrawChoiceIcon(play, &gfx, 1);
break;
case TEXTBOX_ENDTYPE_THREE_CHOICE:
- func_80148CBC(play, &gfx, 2);
+ Message_DrawChoiceIcon(play, &gfx, 2);
break;
case TEXTBOX_ENDTYPE_12:
- func_80148CBC(play, &gfx, 1);
+ Message_DrawChoiceIcon(play, &gfx, 1);
break;
case TEXTBOX_ENDTYPE_PERSISTENT:
@@ -5377,13 +5380,13 @@ void Message_Update(PlayState* play) {
msgCtx->textboxXTarget = sTextboxXPositions[var_v1];
if ((gSaveContext.options.language == LANGUAGE_JPN) && !msgCtx->textIsCredits) {
- msgCtx->unk11FFE[0] = (s16)(msgCtx->textboxYTarget + 7);
- msgCtx->unk11FFE[1] = (s16)(msgCtx->textboxYTarget + 25);
- msgCtx->unk11FFE[2] = (s16)(msgCtx->textboxYTarget + 43);
+ msgCtx->choicePosY[0] = (s16)(msgCtx->textboxYTarget + 7);
+ msgCtx->choicePosY[1] = (s16)(msgCtx->textboxYTarget + 25);
+ msgCtx->choicePosY[2] = (s16)(msgCtx->textboxYTarget + 43);
} else {
- msgCtx->unk11FFE[0] = (s16)(msgCtx->textboxYTarget + 20);
- msgCtx->unk11FFE[1] = (s16)(msgCtx->textboxYTarget + 32);
- msgCtx->unk11FFE[2] = (s16)(msgCtx->textboxYTarget + 44);
+ msgCtx->choicePosY[0] = (s16)(msgCtx->textboxYTarget + 20);
+ msgCtx->choicePosY[1] = (s16)(msgCtx->textboxYTarget + 32);
+ msgCtx->choicePosY[2] = (s16)(msgCtx->textboxYTarget + 44);
}
if ((msgCtx->textBoxType == TEXTBOX_TYPE_4) || (msgCtx->textBoxType == TEXTBOX_TYPE_5)) {
diff --git a/src/code/z_message_nes.c b/src/code/z_message_nes.c
index eeea22495..9e475c51e 100644
--- a/src/code/z_message_nes.c
+++ b/src/code/z_message_nes.c
@@ -747,9 +747,9 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) {
msgCtx->stateTimer = 4;
Font_LoadMessageBoxEndIcon(font, 2);
if (msgCtx->unk120D8 != 3) {
- msgCtx->unk11FFE[0] = (s16)(msgCtx->textboxYTarget + 14);
- msgCtx->unk11FFE[1] = (s16)(msgCtx->textboxYTarget + 26);
- msgCtx->unk11FFE[2] = (s16)(msgCtx->textboxYTarget + 38);
+ msgCtx->choicePosY[0] = (s16)(msgCtx->textboxYTarget + 14);
+ msgCtx->choicePosY[1] = (s16)(msgCtx->textboxYTarget + 26);
+ msgCtx->choicePosY[2] = (s16)(msgCtx->textboxYTarget + 38);
}
}
break;
@@ -762,9 +762,9 @@ void Message_DrawTextNES(PlayState* play, Gfx** gfxP, u16 textDrawPos) {
msgCtx->stateTimer = 4;
Font_LoadMessageBoxEndIcon(font, 2);
if (msgCtx->unk120D8 != 3) {
- msgCtx->unk11FFE[0] = (s16)(msgCtx->textboxYTarget + 14);
- msgCtx->unk11FFE[1] = (s16)(msgCtx->textboxYTarget + 26);
- msgCtx->unk11FFE[2] = (s16)(msgCtx->textboxYTarget + 38);
+ msgCtx->choicePosY[0] = (s16)(msgCtx->textboxYTarget + 14);
+ msgCtx->choicePosY[1] = (s16)(msgCtx->textboxYTarget + 26);
+ msgCtx->choicePosY[2] = (s16)(msgCtx->textboxYTarget + 38);
}
}
break;
diff --git a/tools/disasm/n64-us/functions.txt b/tools/disasm/n64-us/functions.txt
index c81547ca8..3a8364736 100644
--- a/tools/disasm/n64-us/functions.txt
+++ b/tools/disasm/n64-us/functions.txt
@@ -2826,7 +2826,7 @@ Message_DrawTextboxIcon = 0x80147818; // type:func
func_80147F18 = 0x80147F18; // type:func
func_80148558 = 0x80148558; // type:func
Message_HandleChoiceSelection = 0x80148B98; // type:func
-func_80148CBC = 0x80148CBC; // type:func
+Message_DrawChoiceIcon = 0x80148CBC; // type:func
func_80148D64 = 0x80148D64; // type:func
func_80149048 = 0x80149048; // type:func
func_801491DC = 0x801491DC; // type:func
diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv
index 984d59dbc..c26e9443e 100644
--- a/tools/sizes/code_functions.csv
+++ b/tools/sizes/code_functions.csv
@@ -2343,7 +2343,7 @@ asm/non_matchings/code/z_message/Message_DrawTextboxIcon.s,Message_DrawTextboxIc
asm/non_matchings/code/z_message/func_80147F18.s,func_80147F18,0x80147F18,0x190
asm/non_matchings/code/z_message/func_80148558.s,func_80148558,0x80148558,0x190
asm/non_matchings/code/z_message/Message_HandleChoiceSelection.s,Message_HandleChoiceSelection,0x80148B98,0x49
-asm/non_matchings/code/z_message/func_80148CBC.s,func_80148CBC,0x80148CBC,0x2A
+asm/non_matchings/code/z_message/Message_DrawChoiceIcon.s,Message_DrawChoiceIcon,0x80148CBC,0x2A
asm/non_matchings/code/z_message/func_80148D64.s,func_80148D64,0x80148D64,0xB9
asm/non_matchings/code/z_message/func_80149048.s,func_80149048,0x80149048,0x65
asm/non_matchings/code/z_message/func_801491DC.s,func_801491DC,0x801491DC,0x9E