More naming screen documentation

This commit is contained in:
DizzyEggg
2025-06-03 09:55:13 +02:00
parent f3c1371291
commit 7ef8b081fe
11 changed files with 114 additions and 111 deletions

View File

@@ -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);

View File

@@ -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

View File

@@ -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);
}
}

View File

@@ -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);

View File

@@ -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);

View File

@@ -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++)

View File

@@ -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;
}
}

View File

@@ -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]);
}
}
}

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;
}
}