From 7ef8b081fe5e9a8ae0019d841e52fe0c30dd40a6 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 3 Jun 2025 09:55:13 +0200 Subject: [PATCH] More naming screen documentation --- include/menu_input.h | 2 +- include/text_2.h | 4 +- src/code_8023144.c | 6 +- src/code_8031D70.c | 2 +- src/dungeon_message.c | 2 +- src/menu_input.c | 19 +++-- src/naming_screen.c | 164 ++++++++++++++++++++++-------------------- src/pokemon_mail.c | 2 +- src/string_format.c | 2 +- src/text_2.c | 6 +- src/text_3.c | 16 ++--- 11 files changed, 114 insertions(+), 111 deletions(-) diff --git a/include/menu_input.h b/include/menu_input.h index 4e69a1f95..45ce30d76 100644 --- a/include/menu_input.h +++ b/include/menu_input.h @@ -8,7 +8,7 @@ u32 sub_8012A64(MenuInputStructSub *r0, s32 r1); s32 GetKeyPress(MenuInputStruct *r0); s32 sub_8012AE8(void); void sub_8012BC4(u32 x, u32 y, s32 n, s32 len, u32 color, u32 windowId); -void sub_8012C60(u32 x, u32 y, u32 param_3, u32 color, u32 param_5); +void DrawCharOnWindowWidth12(u32 x, u32 y, u32 param_3, u32 color, u32 param_5); void sub_8012CAC(WindowTemplate *param_1, const MenuItem *param_2); void sub_8012D08(WindowTemplate *param_1, s32 param_2); void sub_8012D34(WindowTemplate *param_1, s32 param_2); diff --git a/include/text_2.h b/include/text_2.h index 4e0d7e3bb..fa3f509fc 100644 --- a/include/text_2.h +++ b/include/text_2.h @@ -16,9 +16,9 @@ void sub_8007B7C(u32 a0, s32 x, s32 y, s32 a3, u32 color); void sub_8007E20(u32 a0, u32 a1, u32 a2, u32 a3, u32 a4, u32 *a5, u32 a6); void sub_80087EC(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4); void sub_80089AC(const WindowTemplate *r4, DungeonPos *r5_Str); -u32 xxx_call_draw_char(s32 x, s32 y, u32 chr, u32 color, u32 windowId); +u32 DrawCharOnWindow(s32 x, s32 y, u32 chr, u32 color, u32 windowId); bool8 xxx_call_update_bg_vram(void); -u32 xxx_draw_char(Window *windows, s32 x, s32 y, u32 chr, u32 color, u32 windowId); +u32 DrawCharOnWindowInternal(Window *windows, s32 x, s32 y, u32 chr, u32 color, u32 windowId); const u8 *xxx_get_next_char_from_string(const u8 *a1, u32 *dstChr); #endif // GUARD_TEXT_2_H diff --git a/src/code_8023144.c b/src/code_8023144.c index ad73ab849..c5d8565ef 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -175,17 +175,17 @@ static void sub_80234BC(void) iVar4 = GetDexInternalNo(species, 0); cVar2 = (iVar4 % 10) + 48; - sub_8012C60(20, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId); + DrawCharOnWindowWidth12(20, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId); if (9 < iVar4) { iVar4 /= 10; cVar2 = (iVar4 % 10) + 48; - sub_8012C60(13, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId); + DrawCharOnWindowWidth12(13, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId); if (9 < iVar4) { uVar3 = iVar4 / 10; cVar2 = (uVar3 % 10) + 48; - sub_8012C60(6, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId); + DrawCharOnWindowWidth12(6, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId); } } diff --git a/src/code_8031D70.c b/src/code_8031D70.c index 7a13380c4..471dcabf4 100644 --- a/src/code_8031D70.c +++ b/src/code_8031D70.c @@ -171,7 +171,7 @@ void DrawSOSPasswordScreen(void) } rowIndex = index % 0x12; x = rowIndex * 0xb + 6; - sub_8012C60(x,y,buffer[index],color,gUnknown_203B334->unk10); // Draw character + DrawCharOnWindowWidth12(x,y,buffer[index],color,gUnknown_203B334->unk10); // Draw character AddDoubleUnderScoreHighlight(gUnknown_203B334->unk10,x,y + 0xA,10,COLOR_CYAN); // Draw underscore beneath character } sub_80073E0(gUnknown_203B334->unk10); diff --git a/src/dungeon_message.c b/src/dungeon_message.c index 5037cfde9..ed81bc5d2 100644 --- a/src/dungeon_message.c +++ b/src/dungeon_message.c @@ -252,7 +252,7 @@ void xxx_draw_string_80524F0(void) sp.unk0 += 6; } else { - sp.unk0 += xxx_call_draw_char(sp.unk0, sp.unk2, currChr, sp.unk10, 0); + sp.unk0 += DrawCharOnWindow(sp.unk0, sp.unk2, currChr, sp.unk10, 0); } } sub_80073E0(0); diff --git a/src/menu_input.c b/src/menu_input.c index 9a0478b88..b87de29a4 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -199,7 +199,7 @@ void sub_8012BC4(u32 x, u32 y, s32 n, s32 len, u32 color, u32 windowId) chr = ReturnIntFromChar2(iVar1 + 0x30); iVar3 = GetCharacter(chr); total_x += iVar3->width; - xxx_call_draw_char(x - total_x, y, chr, color, windowId); + DrawCharOnWindow(x - total_x, y, chr, color, windowId); counter++; if (counter >= len) break; @@ -207,21 +207,18 @@ void sub_8012BC4(u32 x, u32 y, s32 n, s32 len, u32 color, u32 windowId) } } -void sub_8012C60(u32 x, u32 y, u32 a2, u32 color, u32 a4) +void DrawCharOnWindowWidth12(u32 x, u32 y, u32 chr, u32 color, u32 windowId) { u32 add_x; - const unkChar *iVar3; - u32 uVar2; + u32 chrId = ReturnIntFromChar2(chr); + const unkChar *chrInfo = GetCharacter(chrId); - uVar2 = ReturnIntFromChar2(a2); - iVar3 = GetCharacter(uVar2); - - if (iVar3->width < 12) - add_x = ((12 - iVar3->width) / 2); + if (chrInfo->width < 12) + add_x = ((12 - chrInfo->width) / 2); else add_x = 0; - xxx_call_draw_char(x + add_x, y, uVar2, color, a4); + DrawCharOnWindow(x + add_x, y, chrId, color, windowId); } void sub_8012CAC(WindowTemplate *a0, const MenuItem *a1) @@ -1082,7 +1079,7 @@ void sub_8013C68(unkStructFor8013AA0 *a0) else ch = '0' + sp[i]; - sub_8012C60(a0->unk1C - ((i + 1) * 12), a0->unk20, ch, 7, a0->unk14); + DrawCharOnWindowWidth12(a0->unk1C - ((i + 1) * 12), a0->unk20, ch, 7, a0->unk14); } for (i = 0; i < a0->unk10; i++) diff --git a/src/naming_screen.c b/src/naming_screen.c index 45933a779..b40c636f0 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -346,17 +346,23 @@ void sub_80151A4(void) #define MAX_TEXT_SIZE 54 +enum +{ + MODE_OVR, + MODE_INS, +}; + struct NamingScreen { // size: 0x198 u32 type; bool8 isPassword; // Note: These had to be declared like these, because SpriteOAM is aligned by 4 and these aren't. Makes you think if SpriteOAM is actually a struct, and not just an array of 4 u16s. - u16 sprite1Attribs[4]; - u16 sprite2Attribs[4]; + u16 spriteLetterCursor[4]; + u16 spriteInputCursor[4]; u8 letterCursorFrames; u8 inputCursorFrames; - u8 unk18; + u8 insOvr; u8 inputCursorArrId; // Always 0 u8 inputCursorPosition; u8 maxLetters; @@ -374,11 +380,11 @@ static EWRAM_INIT struct NamingScreen *sNamingScreen = NULL; static s32 GetEnteredNameLength(void); static void UpdateInputWindow(bool8); static void UpdateNameWindow(void); -void sub_8015F84(); +static void UpdateLetterWidths(void); static void SetLetterCursorSpritePosition(void); static void HandleInputCursor(void); -static void sub_8015E10(u8 *a0, s32 a1, s32 _a2); -static void sub_8015EB4(u8 *a0, s32 a1, s32 _a2); +static void UpdatePassword1Window(u8 *text, s32 windowId, s32 _yAdd); +static void UpdatePassword2Window(u8 *text, s32 windowId, s32 _yAdd); s32 GetMaxPokeNameWidth(void); s32 GetStrWidth(u8 *buffer, s32 size); static u32 HandleAPress(void); @@ -406,7 +412,7 @@ u32 NamingScreen_Init(u32 type, u8 *defaultText) sNamingScreen = MemoryAlloc(sizeof(*sNamingScreen), 8); sNamingScreen->type = type; sNamingScreen->inputCursorArrId = 0; - sNamingScreen->unk18 = 0; + sNamingScreen->insOvr = MODE_OVR; sNamingScreen->isPassword = 0; switch (sNamingScreen->type) { @@ -451,32 +457,32 @@ u32 NamingScreen_Init(u32 type, u8 *defaultText) sNamingScreen->letterCursorPos--; } - SpriteSetAffine1((SpriteOAM *) &sNamingScreen->sprite1Attribs, 0); - SpriteSetAffine2((SpriteOAM *) &sNamingScreen->sprite1Attribs, 0); - SpriteSetObjMode((SpriteOAM *) &sNamingScreen->sprite1Attribs, 0); - SpriteSetMosaic((SpriteOAM *) &sNamingScreen->sprite1Attribs, 0); - SpriteSetBpp((SpriteOAM *) &sNamingScreen->sprite1Attribs, 0); - SpriteSetPriority((SpriteOAM *) &sNamingScreen->sprite1Attribs, 0); - SpriteSetPalNum((SpriteOAM *) &sNamingScreen->sprite1Attribs, 15); - SpriteSetX((SpriteOAM *) &sNamingScreen->sprite1Attribs, DISPLAY_WIDTH); - SpriteSetY((SpriteOAM *) &sNamingScreen->sprite1Attribs, DISPLAY_WIDTH); + SpriteSetAffine1((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 0); + SpriteSetAffine2((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 0); + SpriteSetObjMode((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 0); + SpriteSetMosaic((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 0); + SpriteSetBpp((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 0); + SpriteSetPriority((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 0); + SpriteSetPalNum((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 15); + SpriteSetX((SpriteOAM *) &sNamingScreen->spriteLetterCursor, DISPLAY_WIDTH); + SpriteSetY((SpriteOAM *) &sNamingScreen->spriteLetterCursor, DISPLAY_WIDTH); if (sNamingScreen->isPassword) { - SpriteSetMatrixNum((SpriteOAM *) &sNamingScreen->sprite1Attribs, 0); - SpriteSetTileNum((SpriteOAM *) &sNamingScreen->sprite1Attribs, 0x3F6); - SpriteSetSize((SpriteOAM *) &sNamingScreen->sprite1Attribs, 0); - SpriteSetShape((SpriteOAM *) &sNamingScreen->sprite1Attribs, 1); + SpriteSetMatrixNum((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 0); + SpriteSetTileNum((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 0x3F6); + SpriteSetSize((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 0); + SpriteSetShape((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 1); } else { - SpriteSetMatrixNum((SpriteOAM *) &sNamingScreen->sprite1Attribs, 16); - SpriteSetTileNum((SpriteOAM *) &sNamingScreen->sprite1Attribs, 0x3F0); - SpriteSetSize((SpriteOAM *) &sNamingScreen->sprite1Attribs, 0); - SpriteSetShape((SpriteOAM *) &sNamingScreen->sprite1Attribs, 1); + SpriteSetMatrixNum((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 16); + SpriteSetTileNum((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 0x3F0); + SpriteSetSize((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 0); + SpriteSetShape((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 1); } sNamingScreen->letterCursorFrames = 4; - sprite = (SpriteOAM *) &sNamingScreen->sprite2Attribs; + sprite = (SpriteOAM *) &sNamingScreen->spriteInputCursor; SpriteSetAffine1(sprite, 0); SpriteSetAffine2(sprite, 0); @@ -511,7 +517,7 @@ u32 NamingScreen_Init(u32 type, u8 *defaultText) UpdateInputWindow(TRUE); UpdateNameWindow(); - sub_8015F84(); + UpdateLetterWidths(); return 1; } @@ -520,13 +526,13 @@ u32 NamingScreen_HandleInput(void) sNamingScreen->letterCursorFrames++; SetLetterCursorSpritePosition(); if (sNamingScreen->letterCursorFrames & 8) { - AddSprite((SpriteOAM *) &sNamingScreen->sprite1Attribs, 0x100, NULL, NULL); + AddSprite((SpriteOAM *) &sNamingScreen->spriteLetterCursor, 0x100, NULL, NULL); } sNamingScreen->inputCursorFrames++; HandleInputCursor(); if (sNamingScreen->inputCursorFrames & 8) { - AddSprite((SpriteOAM *) &sNamingScreen->sprite2Attribs, 0x100, NULL, NULL); + AddSprite((SpriteOAM *) &sNamingScreen->spriteInputCursor, 0x100, NULL, NULL); } switch (sub_8012AE8()) { @@ -578,7 +584,7 @@ static u32 HandleAPress(void) switch (letter) { case NAMING_LETTER_INS_OVR: - sNamingScreen->unk18 = (sNamingScreen->unk18 == 0); + sNamingScreen->insOvr = (sNamingScreen->insOvr == 0); // Flip PlayMenuSoundEffect(4); UpdateInputWindow(FALSE); break; @@ -602,7 +608,7 @@ static u32 HandleAPress(void) PlayMenuSoundEffect(2); } else { - if (sNamingScreen->unk18 == 1) { + if (sNamingScreen->insOvr == MODE_INS) { s32 i; for (i = sNamingScreen->maxLetters - 2; i >= sNamingScreen->letterCursorPos; i--) { u8 *ptr = &sNamingScreen->textPtr[i]; @@ -620,7 +626,7 @@ static u32 HandleAPress(void) PlayMenuSoundEffect(0); UpdateNameWindow(); - sub_8015F84(); + UpdateLetterWidths(); } break; } @@ -628,7 +634,7 @@ static u32 HandleAPress(void) return 0; } -bool8 HandleBPress(void) +static bool8 HandleBPress(void) { if (sNamingScreen->textPtr[sNamingScreen->letterCursorPos] == '\0') { if (sNamingScreen->letterCursorPos == 0) { @@ -640,7 +646,7 @@ bool8 HandleBPress(void) sNamingScreen->textPtr[sNamingScreen->letterCursorPos] = '\0'; PlayMenuSoundEffect(1); UpdateNameWindow(); - sub_8015F84(); + UpdateLetterWidths(); } } else { @@ -654,7 +660,7 @@ bool8 HandleBPress(void) sNamingScreen->textPtr[n] = 0; PlayMenuSoundEffect(1); UpdateNameWindow(); - sub_8015F84(); + UpdateLetterWidths(); } return FALSE; @@ -669,28 +675,28 @@ static void SetLetterCursorSpritePosition(void) s32 x, y; x = gUnknown_80DAFC0[sNamingScreen->letterCursorPos].x + (window->x * 8); - SpriteSetX((SpriteOAM *) &sNamingScreen->sprite1Attribs, x); + SpriteSetX((SpriteOAM *) &sNamingScreen->spriteLetterCursor, x); y = gUnknown_80DAFC0[sNamingScreen->letterCursorPos].y + (window->y * 8) + 5; - SpriteSetY((SpriteOAM *) &sNamingScreen->sprite1Attribs, y); + SpriteSetY((SpriteOAM *) &sNamingScreen->spriteLetterCursor, y); } else if (sNamingScreen->type == NAMING_PASSWORD2) { s32 x, y; x = gUnknown_80DB098[sNamingScreen->letterCursorPos].x + (window->x * 8); - SpriteSetX((SpriteOAM *) &sNamingScreen->sprite1Attribs, x); + SpriteSetX((SpriteOAM *) &sNamingScreen->spriteLetterCursor, x); y = gUnknown_80DB098[sNamingScreen->letterCursorPos].y + (window->y * 8) + 5; - SpriteSetY((SpriteOAM *) &sNamingScreen->sprite1Attribs, y); + SpriteSetY((SpriteOAM *) &sNamingScreen->spriteLetterCursor, y); } else { s32 x, y; x = sNamingScreen->letterTotalWidths[sNamingScreen->letterCursorPos] + (sNamingScreen->letterWidths[sNamingScreen->letterCursorPos] / 2) + 30 + (window->x * 8); - SpriteSetX((SpriteOAM *) &sNamingScreen->sprite1Attribs, (u16) x); + SpriteSetX((SpriteOAM *) &sNamingScreen->spriteLetterCursor, (u16) x); y = (window->y * 8) + 34; - SpriteSetY((SpriteOAM *) &sNamingScreen->sprite1Attribs, y); + SpriteSetY((SpriteOAM *) &sNamingScreen->spriteLetterCursor, y); } } @@ -726,8 +732,8 @@ static void HandleInputCursor(void) x = sLayoutInfo[sNamingScreen->inputCursorArrId][sNamingScreen->inputCursorPosition].x + (window->x * 8) - 5; y = sLayoutInfo[sNamingScreen->inputCursorArrId][sNamingScreen->inputCursorPosition].y + (window->y * 8) + 1; - SpriteSetX((SpriteOAM *) &sNamingScreen->sprite2Attribs, x); - SpriteSetY((SpriteOAM *) &sNamingScreen->sprite2Attribs, y); + SpriteSetX((SpriteOAM *) &sNamingScreen->spriteInputCursor, x); + SpriteSetY((SpriteOAM *) &sNamingScreen->spriteInputCursor, y); } static void UpdateInputWindow(bool8 unused) @@ -770,7 +776,7 @@ static void UpdateInputWindow(bool8 unused) if (letter != NAMING_LETTER_BLANK) { if (letter == NAMING_LETTER_INS_OVR) { - if (sNamingScreen->unk18 == 0) { + if (sNamingScreen->insOvr == MODE_OVR) { PrintStringOnWindow(sLayoutInfo[sNamingScreen->inputCursorArrId][i].x + 3, sLayoutInfo[sNamingScreen->inputCursorArrId][i].y, _("{COLOR GREEN}OVR{RESET}"), NAMING_WINDOW_INPUT, '\0'); } else { @@ -786,7 +792,7 @@ static void UpdateInputWindow(bool8 unused) PrintStringOnWindow(sLayoutInfo[sNamingScreen->inputCursorArrId][i].x + 3, sLayoutInfo[sNamingScreen->inputCursorArrId][i].y, text2, NAMING_WINDOW_INPUT, '\0'); } else { - sub_8012C60(sLayoutInfo[sNamingScreen->inputCursorArrId][i].x, sLayoutInfo[sNamingScreen->inputCursorArrId][i].y, (u8) letter, color, 0); + DrawCharOnWindowWidth12(sLayoutInfo[sNamingScreen->inputCursorArrId][i].x, sLayoutInfo[sNamingScreen->inputCursorArrId][i].y, (u8) letter, color, 0); } } } @@ -840,10 +846,10 @@ static void UpdateNameWindow(void) switch (sNamingScreen->type) { case NAMING_PASSWORD1: - sub_8015E10(sNamingScreen->textPtr, 1, 0); + UpdatePassword1Window(sNamingScreen->textPtr, NAMING_WINDOW_NAME, 0); break; case NAMING_PASSWORD2: - sub_8015EB4(sNamingScreen->textPtr, 1, 0); + UpdatePassword2Window(sNamingScreen->textPtr, NAMING_WINDOW_NAME, 0); break; case NAMING_SELF: case NAMING_TEAM: @@ -866,51 +872,51 @@ static void UpdateNameWindow(void) sub_80073E0(NAMING_WINDOW_NAME); } -static void sub_8015E10(u8 *a0, s32 a1, s32 _a2) +static void UpdatePassword1Window(u8 *text, s32 windowId, s32 _yAdd) { s32 i; - s32 a2 = (s16) _a2; + s32 yAdd = (s16) _yAdd; for (i = 0; i < ARRAY_COUNT_INT(gUnknown_80DAFC0); i++) { - AddDoubleUnderScoreHighlight(a1, gUnknown_80DAFC0[i].x, gUnknown_80DAFC0[i].y + 11 + a2, 11, 5); + AddDoubleUnderScoreHighlight(windowId, gUnknown_80DAFC0[i].x, gUnknown_80DAFC0[i].y + 11 + yAdd, 11, 5); } - for (i = 0; i < ARRAY_COUNT_INT(gUnknown_80DAFC0) && a0[i] != 0; i++) { - s32 arg3; + for (i = 0; i < ARRAY_COUNT_INT(gUnknown_80DAFC0) && text[i] != '\0'; i++) { + s32 color; - if (i <= 4) arg3 = 7; - else if (i <= 12) arg3 = 6; - else if (i <= 17) arg3 = 7; - else if (i <= 22) arg3 = 7; - else if (i <= 30) arg3 = 6; - else if (i <= 35) arg3 = 7; - else if (i <= 40) arg3 = 7; - else if (i <= 48) arg3 = 6; - else arg3 = 7; + if (i <= 4) color = 7; + else if (i <= 12) color = 6; + else if (i <= 17) color = 7; + else if (i <= 22) color = 7; + else if (i <= 30) color = 6; + else if (i <= 35) color = 7; + else if (i <= 40) color = 7; + else if (i <= 48) color = 6; + else color = 7; - sub_8012C60(gUnknown_80DAFC0[i].x, gUnknown_80DAFC0[i].y + a2, a0[i], arg3, a1); + DrawCharOnWindowWidth12(gUnknown_80DAFC0[i].x, gUnknown_80DAFC0[i].y + yAdd, text[i], color, windowId); } } -static void sub_8015EB4(u8 *a0, s32 a1, s32 _a2) +static void UpdatePassword2Window(u8 *text, s32 windowId, s32 _yAdd) { s32 i; - s32 a2 = (s16) _a2; + s32 yAdd = (s16) _yAdd; for (i = 0; i < ARRAY_COUNT_INT(gUnknown_80DB098); i++) { - AddDoubleUnderScoreHighlight(a1, gUnknown_80DB098[i].x, gUnknown_80DB098[i].y + 11 + a2, 12, 5); + AddDoubleUnderScoreHighlight(windowId, gUnknown_80DB098[i].x, gUnknown_80DB098[i].y + 11 + yAdd, 12, 5); } - for (i = 0; i < ARRAY_COUNT_INT(gUnknown_80DB098) && a0[i] != 0; i++) { - s32 arg3; + for (i = 0; i < ARRAY_COUNT_INT(gUnknown_80DB098) && text[i] != '\0'; i++) { + s32 color; - if (i <= 3) arg3 = 7; - else if (i <= 7) arg3 = 6; - else if (i <= 15) arg3 = 7; - else if (i <= 19) arg3 = 6; - else arg3 = 7; + if (i <= 3) color = 7; + else if (i <= 7) color = 6; + else if (i <= 15) color = 7; + else if (i <= 19) color = 6; + else color = 7; - sub_8012C60(gUnknown_80DB098[i].x, gUnknown_80DB098[i].y + a2, a0[i], arg3, a1); + DrawCharOnWindowWidth12(gUnknown_80DB098[i].x, gUnknown_80DB098[i].y + yAdd, text[i], color, windowId); } } @@ -931,10 +937,10 @@ static s32 GetEnteredNameLength(void) return len; } -void sub_8015F84(void) +static void UpdateLetterWidths(void) { - u32 uVar2; - const unkChar *puVar3; + u32 chrId; + const unkChar *chrInfo; s32 i; s32 total = 0; @@ -944,10 +950,10 @@ void sub_8015F84(void) sNamingScreen->letterWidths[i] = 8; return; } - uVar2 = ReturnIntFromChar2(sNamingScreen->textPtr[i]); - puVar3 = GetCharacter(uVar2); - sNamingScreen->letterWidths[i] = puVar3->width; - total += puVar3->width; + chrId = ReturnIntFromChar2(sNamingScreen->textPtr[i]); + chrInfo = GetCharacter(chrId); + sNamingScreen->letterWidths[i] = chrInfo->width; + total += chrInfo->width; } } diff --git a/src/pokemon_mail.c b/src/pokemon_mail.c index a62b9b751..c7308b826 100644 --- a/src/pokemon_mail.c +++ b/src/pokemon_mail.c @@ -379,7 +379,7 @@ void CreateRescueDescription(unkStruct_802C39C *param_1) } x = counter % 12; - sub_8012C60((x * 10) + 84, y, local_34[counter], color, param_1->unk0[0]); + DrawCharOnWindowWidth12((x * 10) + 84, y, local_34[counter], color, param_1->unk0[0]); } } } diff --git a/src/string_format.c b/src/string_format.c index 3527bf375..4161f829d 100644 --- a/src/string_format.c +++ b/src/string_format.c @@ -376,7 +376,7 @@ void DrawDialogueBoxString(void) u32 chr; str = xxx_get_next_char_from_string(str, &chr); - gUnknown_202E748.unk0 += xxx_call_draw_char(gUnknown_202E748.unk0, gUnknown_202E748.unk2, chr, gUnknown_202E748.unk10, 0); + gUnknown_202E748.unk0 += DrawCharOnWindow(gUnknown_202E748.unk0, gUnknown_202E748.unk2, chr, gUnknown_202E748.unk10, 0); gUnknown_202E748.unk2C = gUnknown_202E78C; } diff --git a/src/text_2.c b/src/text_2.c index c24504e5b..0497dc253 100644 --- a/src/text_2.c +++ b/src/text_2.c @@ -24,9 +24,9 @@ static bool8 xxx_update_bg_vram(Window *windows); // TODO: Find these funcs in blue. DTCM funcs // In NDS, this func is copied to 01FF9F34 -u32 xxx_call_draw_char(s32 x, s32 y, u32 chr, u32 color, u32 windowId) +u32 DrawCharOnWindow(s32 x, s32 y, u32 chr, u32 color, u32 windowId) { - return xxx_draw_char(gWindows, x, y, chr, color, windowId); + return DrawCharOnWindowInternal(gWindows, x, y, chr, color, windowId); } UNUSED static bool8 sub_8007464(void) @@ -35,7 +35,7 @@ UNUSED static bool8 sub_8007464(void) } // In NDS, this func is copied to 01FF994C -u32 xxx_draw_char(Window *windows, s32 x, s32 y, u32 chr, u32 color, u32 windowId) +u32 DrawCharOnWindowInternal(Window *windows, s32 x, s32 y, u32 chr, u32 color, u32 windowId) { u32 *r3; const unkShiftData *shiftData; diff --git a/src/text_3.c b/src/text_3.c index 0ff5aa8a8..8e0296cdb 100644 --- a/src/text_3.c +++ b/src/text_3.c @@ -6,7 +6,7 @@ static const u8 *HandleTextFormat(Window *windows, const u8 *str, UnkDrawStringStruct *sp); static s32 InterpretColorChar(u8 a0); static const u8 *sub_800915C(s16 *a0, const u8 *str); -static void xxx_draw_string(Window *strArr, s32 x, s32 y, const u8 *str, u32 windowId, u32 terminatingChr, s32 characterSpacing, s32 lineSpacing); +static void DrawStringInternal(Window *windows, s32 x, s32 y, const u8 *str, u32 windowId, u32 terminatingChr, s32 characterSpacing, s32 lineSpacing); // arm9.bin::02003D4C bool8 sub_8008D8C(s32 windowId) @@ -140,13 +140,13 @@ s32 sub_8008ED0(const u8 *str) // arm9.bin::02003AE8 void PrintStringOnWindow2(s32 x, s32 y, const u8 *str, u32 windowId, u32 terminatingChr, s32 lineSpacing) { - xxx_draw_string(gWindows, x, y, str, windowId, terminatingChr, 0, lineSpacing); + DrawStringInternal(gWindows, x, y, str, windowId, terminatingChr, 0, lineSpacing); } // arm9.bin::02003A9C void PrintStringOnWindow(s32 x, s32 y, const u8 *str, u32 windowId, u32 terminatingChr) { - xxx_draw_string(gWindows, x, y, str, windowId, terminatingChr, 0, 13); + DrawStringInternal(gWindows, x, y, str, windowId, terminatingChr, 0, 13); } // arm9.bin::02003A50 @@ -159,7 +159,7 @@ UNUSED static void nullsub_170(s32 x, s32 y, const u8 *str, u32 windowId, u32 te // Identical to PrintStringOnWindow UNUSED static void UnusedPrintStringOnWindow(s32 x, u32 y, const u8 *str, u32 windowId, u32 terminatingChr) { - xxx_draw_string(gWindows, x, y, str, windowId, terminatingChr, 0, 13); + DrawStringInternal(gWindows, x, y, str, windowId, terminatingChr, 0, 13); } UNUSED static void nullsub_171(void) @@ -168,7 +168,7 @@ UNUSED static void nullsub_171(void) #endif // arm9.bin::020038A4 -static void xxx_draw_string(Window *strArr, s32 x, s32 y, const u8 *str, u32 windowId, u32 terminatingChr, s32 characterSpacing, s32 lineSpacing) +static void DrawStringInternal(Window *windows, s32 x, s32 y, const u8 *str, u32 windowId, u32 terminatingChr, s32 characterSpacing, s32 lineSpacing) { UnkDrawStringStruct sp; u32 currChr; @@ -178,7 +178,7 @@ static void xxx_draw_string(Window *strArr, s32 x, s32 y, const u8 *str, u32 win sp.unkC = x; sp.unk10 = 7; while (TRUE) { - str = HandleTextFormat(strArr, str, &sp); + str = HandleTextFormat(windows, str, &sp); str = xxx_get_next_char_from_string(str, &currChr); if (currChr == '\0' || currChr == terminatingChr) break; @@ -204,7 +204,7 @@ static void xxx_draw_string(Window *strArr, s32 x, s32 y, const u8 *str, u32 win sp.unk0 += 6; } else if (characterSpacing == 0) { - sp.unk0 += xxx_draw_char(strArr, sp.unk0, sp.unk2, currChr, sp.unk10, windowId); + sp.unk0 += DrawCharOnWindowInternal(windows, sp.unk0, sp.unk2, currChr, sp.unk10, windowId); } else { const unkChar *chrPtr = GetCharacter(currChr); @@ -212,7 +212,7 @@ static void xxx_draw_string(Window *strArr, s32 x, s32 y, const u8 *str, u32 win s32 x = sp.unk0; s32 x2 = gCharacterSpacing + 10; x +=((x2 - chrPtr->width) / 2); - xxx_draw_char(strArr, x, sp.unk2, currChr, sp.unk10, windowId); + DrawCharOnWindowInternal(windows, x, sp.unk2, currChr, sp.unk10, windowId); sp.unk0 += characterSpacing; } }