mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-25 03:04:15 +01:00
Sped text up
This commit is contained in:
parent
93c57b2bad
commit
c36f2b791b
382
gflib/text.c
382
gflib/text.c
@ -327,10 +327,10 @@ void RunTextPrinters(void)
|
|||||||
if (sTextPrinters[i].active)
|
if (sTextPrinters[i].active)
|
||||||
{
|
{
|
||||||
u16 renderCmd = RenderFont(&sTextPrinters[i]);
|
u16 renderCmd = RenderFont(&sTextPrinters[i]);
|
||||||
|
CopyWindowToVram(sTextPrinters[i].printerTemplate.windowId, COPYWIN_GFX);
|
||||||
switch (renderCmd)
|
switch (renderCmd)
|
||||||
{
|
{
|
||||||
case RENDER_PRINT:
|
case RENDER_PRINT:
|
||||||
CopyWindowToVram(sTextPrinters[i].printerTemplate.windowId, COPYWIN_GFX);
|
|
||||||
case RENDER_UPDATE:
|
case RENDER_UPDATE:
|
||||||
if (sTextPrinters[i].callback != NULL)
|
if (sTextPrinters[i].callback != NULL)
|
||||||
sTextPrinters[i].callback(&sTextPrinters[i].printerTemplate, renderCmd);
|
sTextPrinters[i].callback(&sTextPrinters[i].printerTemplate, renderCmd);
|
||||||
@ -938,6 +938,7 @@ static u16 RenderText(struct TextPrinter *textPrinter)
|
|||||||
u16 currChar;
|
u16 currChar;
|
||||||
s32 width;
|
s32 width;
|
||||||
s32 widthHelper;
|
s32 widthHelper;
|
||||||
|
u8 repeats;
|
||||||
|
|
||||||
switch (textPrinter->state)
|
switch (textPrinter->state)
|
||||||
{
|
{
|
||||||
@ -961,209 +962,228 @@ static u16 RenderText(struct TextPrinter *textPrinter)
|
|||||||
else
|
else
|
||||||
textPrinter->delayCounter = textPrinter->textSpeed;
|
textPrinter->delayCounter = textPrinter->textSpeed;
|
||||||
|
|
||||||
currChar = *textPrinter->printerTemplate.currentChar;
|
switch (GetPlayerTextSpeed())
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
|
|
||||||
switch (currChar)
|
|
||||||
{
|
{
|
||||||
case CHAR_NEWLINE:
|
case OPTIONS_TEXT_SPEED_SLOW:
|
||||||
textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x;
|
repeats = 1;
|
||||||
textPrinter->printerTemplate.currentY += (gFonts[textPrinter->printerTemplate.fontId].maxLetterHeight + textPrinter->printerTemplate.lineSpacing);
|
break;
|
||||||
return RENDER_REPEAT;
|
case OPTIONS_TEXT_SPEED_MID:
|
||||||
case PLACEHOLDER_BEGIN:
|
repeats = 2;
|
||||||
textPrinter->printerTemplate.currentChar++;
|
break;
|
||||||
return RENDER_REPEAT;
|
case OPTIONS_TEXT_SPEED_FAST:
|
||||||
case EXT_CTRL_CODE_BEGIN:
|
repeats = 4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
do {
|
||||||
|
|
||||||
currChar = *textPrinter->printerTemplate.currentChar;
|
currChar = *textPrinter->printerTemplate.currentChar;
|
||||||
textPrinter->printerTemplate.currentChar++;
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
|
||||||
switch (currChar)
|
switch (currChar)
|
||||||
{
|
{
|
||||||
case EXT_CTRL_CODE_COLOR:
|
case CHAR_NEWLINE:
|
||||||
textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_HIGHLIGHT:
|
|
||||||
textPrinter->printerTemplate.bgColor = *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_SHADOW:
|
|
||||||
textPrinter->printerTemplate.shadowColor = *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW:
|
|
||||||
textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
textPrinter->printerTemplate.bgColor = *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
textPrinter->printerTemplate.shadowColor = *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_PALETTE:
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_FONT:
|
|
||||||
subStruct->fontId = *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_RESET_FONT:
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_PAUSE:
|
|
||||||
textPrinter->delayCounter = *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
textPrinter->state = RENDER_STATE_PAUSE;
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS:
|
|
||||||
textPrinter->state = RENDER_STATE_WAIT;
|
|
||||||
if (gTextFlags.autoScroll)
|
|
||||||
subStruct->autoScrollDelay = 0;
|
|
||||||
return RENDER_UPDATE;
|
|
||||||
case EXT_CTRL_CODE_WAIT_SE:
|
|
||||||
textPrinter->state = RENDER_STATE_WAIT_SE;
|
|
||||||
return RENDER_UPDATE;
|
|
||||||
case EXT_CTRL_CODE_PLAY_BGM:
|
|
||||||
currChar = *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
currChar |= *textPrinter->printerTemplate.currentChar << 8;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
PlayBGM(currChar);
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_ESCAPE:
|
|
||||||
currChar = *textPrinter->printerTemplate.currentChar | 0x100;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
break;
|
|
||||||
case EXT_CTRL_CODE_PLAY_SE:
|
|
||||||
currChar = *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
currChar |= (*textPrinter->printerTemplate.currentChar << 8);
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
PlaySE(currChar);
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_SHIFT_RIGHT:
|
|
||||||
textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x + *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_SHIFT_DOWN:
|
|
||||||
textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y + *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_FILL_WINDOW:
|
|
||||||
FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor));
|
|
||||||
textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x;
|
textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x;
|
||||||
textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y;
|
textPrinter->printerTemplate.currentY += (gFonts[textPrinter->printerTemplate.fontId].maxLetterHeight + textPrinter->printerTemplate.lineSpacing);
|
||||||
return RENDER_REPEAT;
|
return RENDER_REPEAT;
|
||||||
case EXT_CTRL_CODE_PAUSE_MUSIC:
|
case PLACEHOLDER_BEGIN:
|
||||||
m4aMPlayStop(&gMPlayInfo_BGM);
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_RESUME_MUSIC:
|
|
||||||
m4aMPlayContinue(&gMPlayInfo_BGM);
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_CLEAR:
|
|
||||||
width = *textPrinter->printerTemplate.currentChar;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
if (width > 0)
|
|
||||||
{
|
|
||||||
ClearTextSpan(textPrinter, width);
|
|
||||||
textPrinter->printerTemplate.currentX += width;
|
|
||||||
return RENDER_PRINT;
|
|
||||||
}
|
|
||||||
return RENDER_REPEAT;
|
|
||||||
case EXT_CTRL_CODE_SKIP:
|
|
||||||
textPrinter->printerTemplate.currentX = *textPrinter->printerTemplate.currentChar + textPrinter->printerTemplate.x;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
textPrinter->printerTemplate.currentChar++;
|
||||||
return RENDER_REPEAT;
|
return RENDER_REPEAT;
|
||||||
case EXT_CTRL_CODE_CLEAR_TO:
|
case EXT_CTRL_CODE_BEGIN:
|
||||||
|
currChar = *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
switch (currChar)
|
||||||
{
|
{
|
||||||
widthHelper = *textPrinter->printerTemplate.currentChar;
|
case EXT_CTRL_CODE_COLOR:
|
||||||
widthHelper += textPrinter->printerTemplate.x;
|
textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_HIGHLIGHT:
|
||||||
|
textPrinter->printerTemplate.bgColor = *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_SHADOW:
|
||||||
|
textPrinter->printerTemplate.shadowColor = *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW:
|
||||||
|
textPrinter->printerTemplate.fgColor = *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
textPrinter->printerTemplate.bgColor = *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
textPrinter->printerTemplate.shadowColor = *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
GenerateFontHalfRowLookupTable(textPrinter->printerTemplate.fgColor, textPrinter->printerTemplate.bgColor, textPrinter->printerTemplate.shadowColor);
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_PALETTE:
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_FONT:
|
||||||
|
subStruct->fontId = *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_RESET_FONT:
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_PAUSE:
|
||||||
|
textPrinter->delayCounter = *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
textPrinter->state = RENDER_STATE_PAUSE;
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_PAUSE_UNTIL_PRESS:
|
||||||
|
textPrinter->state = RENDER_STATE_WAIT;
|
||||||
|
if (gTextFlags.autoScroll)
|
||||||
|
subStruct->autoScrollDelay = 0;
|
||||||
|
return RENDER_UPDATE;
|
||||||
|
case EXT_CTRL_CODE_WAIT_SE:
|
||||||
|
textPrinter->state = RENDER_STATE_WAIT_SE;
|
||||||
|
return RENDER_UPDATE;
|
||||||
|
case EXT_CTRL_CODE_PLAY_BGM:
|
||||||
|
currChar = *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
currChar |= *textPrinter->printerTemplate.currentChar << 8;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
PlayBGM(currChar);
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_ESCAPE:
|
||||||
|
currChar = *textPrinter->printerTemplate.currentChar | 0x100;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
break;
|
||||||
|
case EXT_CTRL_CODE_PLAY_SE:
|
||||||
|
currChar = *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
currChar |= (*textPrinter->printerTemplate.currentChar << 8);
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
PlaySE(currChar);
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_SHIFT_RIGHT:
|
||||||
|
textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x + *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_SHIFT_DOWN:
|
||||||
|
textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y + *textPrinter->printerTemplate.currentChar;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_FILL_WINDOW:
|
||||||
|
FillWindowPixelBuffer(textPrinter->printerTemplate.windowId, PIXEL_FILL(textPrinter->printerTemplate.bgColor));
|
||||||
|
textPrinter->printerTemplate.currentX = textPrinter->printerTemplate.x;
|
||||||
|
textPrinter->printerTemplate.currentY = textPrinter->printerTemplate.y;
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_PAUSE_MUSIC:
|
||||||
|
m4aMPlayStop(&gMPlayInfo_BGM);
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_RESUME_MUSIC:
|
||||||
|
m4aMPlayContinue(&gMPlayInfo_BGM);
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_CLEAR:
|
||||||
|
width = *textPrinter->printerTemplate.currentChar;
|
||||||
textPrinter->printerTemplate.currentChar++;
|
textPrinter->printerTemplate.currentChar++;
|
||||||
width = widthHelper - textPrinter->printerTemplate.currentX;
|
|
||||||
if (width > 0)
|
if (width > 0)
|
||||||
{
|
{
|
||||||
ClearTextSpan(textPrinter, width);
|
ClearTextSpan(textPrinter, width);
|
||||||
textPrinter->printerTemplate.currentX += width;
|
textPrinter->printerTemplate.currentX += width;
|
||||||
return RENDER_PRINT;
|
return RENDER_PRINT;
|
||||||
}
|
}
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_SKIP:
|
||||||
|
textPrinter->printerTemplate.currentX = *textPrinter->printerTemplate.currentChar + textPrinter->printerTemplate.x;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_CLEAR_TO:
|
||||||
|
{
|
||||||
|
widthHelper = *textPrinter->printerTemplate.currentChar;
|
||||||
|
widthHelper += textPrinter->printerTemplate.x;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
width = widthHelper - textPrinter->printerTemplate.currentX;
|
||||||
|
if (width > 0)
|
||||||
|
{
|
||||||
|
ClearTextSpan(textPrinter, width);
|
||||||
|
textPrinter->printerTemplate.currentX += width;
|
||||||
|
return RENDER_PRINT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_MIN_LETTER_SPACING:
|
||||||
|
textPrinter->minLetterSpacing = *textPrinter->printerTemplate.currentChar++;
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_JPN:
|
||||||
|
textPrinter->japanese = TRUE;
|
||||||
|
return RENDER_REPEAT;
|
||||||
|
case EXT_CTRL_CODE_ENG:
|
||||||
|
textPrinter->japanese = FALSE;
|
||||||
|
return RENDER_REPEAT;
|
||||||
}
|
}
|
||||||
return RENDER_REPEAT;
|
break;
|
||||||
case EXT_CTRL_CODE_MIN_LETTER_SPACING:
|
case CHAR_PROMPT_CLEAR:
|
||||||
textPrinter->minLetterSpacing = *textPrinter->printerTemplate.currentChar++;
|
textPrinter->state = RENDER_STATE_CLEAR;
|
||||||
return RENDER_REPEAT;
|
TextPrinterInitDownArrowCounters(textPrinter);
|
||||||
case EXT_CTRL_CODE_JPN:
|
return RENDER_UPDATE;
|
||||||
textPrinter->japanese = TRUE;
|
case CHAR_PROMPT_SCROLL:
|
||||||
return RENDER_REPEAT;
|
textPrinter->state = RENDER_STATE_SCROLL_START;
|
||||||
case EXT_CTRL_CODE_ENG:
|
TextPrinterInitDownArrowCounters(textPrinter);
|
||||||
textPrinter->japanese = FALSE;
|
return RENDER_UPDATE;
|
||||||
return RENDER_REPEAT;
|
case CHAR_EXTRA_SYMBOL:
|
||||||
|
currChar = *textPrinter->printerTemplate.currentChar | 0x100;
|
||||||
|
textPrinter->printerTemplate.currentChar++;
|
||||||
|
break;
|
||||||
|
case CHAR_KEYPAD_ICON:
|
||||||
|
currChar = *textPrinter->printerTemplate.currentChar++;
|
||||||
|
gCurGlyph.width = DrawKeypadIcon(textPrinter->printerTemplate.windowId, currChar, textPrinter->printerTemplate.currentX, textPrinter->printerTemplate.currentY);
|
||||||
|
textPrinter->printerTemplate.currentX += gCurGlyph.width + textPrinter->printerTemplate.letterSpacing;
|
||||||
|
return RENDER_PRINT;
|
||||||
|
case EOS:
|
||||||
|
return RENDER_FINISH;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
case CHAR_PROMPT_CLEAR:
|
|
||||||
textPrinter->state = RENDER_STATE_CLEAR;
|
|
||||||
TextPrinterInitDownArrowCounters(textPrinter);
|
|
||||||
return RENDER_UPDATE;
|
|
||||||
case CHAR_PROMPT_SCROLL:
|
|
||||||
textPrinter->state = RENDER_STATE_SCROLL_START;
|
|
||||||
TextPrinterInitDownArrowCounters(textPrinter);
|
|
||||||
return RENDER_UPDATE;
|
|
||||||
case CHAR_EXTRA_SYMBOL:
|
|
||||||
currChar = *textPrinter->printerTemplate.currentChar | 0x100;
|
|
||||||
textPrinter->printerTemplate.currentChar++;
|
|
||||||
break;
|
|
||||||
case CHAR_KEYPAD_ICON:
|
|
||||||
currChar = *textPrinter->printerTemplate.currentChar++;
|
|
||||||
gCurGlyph.width = DrawKeypadIcon(textPrinter->printerTemplate.windowId, currChar, textPrinter->printerTemplate.currentX, textPrinter->printerTemplate.currentY);
|
|
||||||
textPrinter->printerTemplate.currentX += gCurGlyph.width + textPrinter->printerTemplate.letterSpacing;
|
|
||||||
return RENDER_PRINT;
|
|
||||||
case EOS:
|
|
||||||
return RENDER_FINISH;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (subStruct->fontId)
|
switch (subStruct->fontId)
|
||||||
{
|
|
||||||
case FONT_SMALL:
|
|
||||||
DecompressGlyph_Small(currChar, textPrinter->japanese);
|
|
||||||
break;
|
|
||||||
case FONT_NORMAL:
|
|
||||||
DecompressGlyph_Normal(currChar, textPrinter->japanese);
|
|
||||||
break;
|
|
||||||
case FONT_SHORT:
|
|
||||||
case FONT_SHORT_COPY_1:
|
|
||||||
case FONT_SHORT_COPY_2:
|
|
||||||
case FONT_SHORT_COPY_3:
|
|
||||||
DecompressGlyph_Short(currChar, textPrinter->japanese);
|
|
||||||
break;
|
|
||||||
case FONT_NARROW:
|
|
||||||
DecompressGlyph_Narrow(currChar, textPrinter->japanese);
|
|
||||||
break;
|
|
||||||
case FONT_SMALL_NARROW:
|
|
||||||
DecompressGlyph_SmallNarrow(currChar, textPrinter->japanese);
|
|
||||||
break;
|
|
||||||
case FONT_BRAILLE:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
CopyGlyphToWindow(textPrinter);
|
|
||||||
|
|
||||||
if (textPrinter->minLetterSpacing)
|
|
||||||
{
|
|
||||||
textPrinter->printerTemplate.currentX += gCurGlyph.width;
|
|
||||||
width = textPrinter->minLetterSpacing - gCurGlyph.width;
|
|
||||||
if (width > 0)
|
|
||||||
{
|
{
|
||||||
ClearTextSpan(textPrinter, width);
|
case FONT_SMALL:
|
||||||
textPrinter->printerTemplate.currentX += width;
|
DecompressGlyph_Small(currChar, textPrinter->japanese);
|
||||||
|
break;
|
||||||
|
case FONT_NORMAL:
|
||||||
|
DecompressGlyph_Normal(currChar, textPrinter->japanese);
|
||||||
|
break;
|
||||||
|
case FONT_SHORT:
|
||||||
|
case FONT_SHORT_COPY_1:
|
||||||
|
case FONT_SHORT_COPY_2:
|
||||||
|
case FONT_SHORT_COPY_3:
|
||||||
|
DecompressGlyph_Short(currChar, textPrinter->japanese);
|
||||||
|
break;
|
||||||
|
case FONT_NARROW:
|
||||||
|
DecompressGlyph_Narrow(currChar, textPrinter->japanese);
|
||||||
|
break;
|
||||||
|
case FONT_SMALL_NARROW:
|
||||||
|
DecompressGlyph_SmallNarrow(currChar, textPrinter->japanese);
|
||||||
|
break;
|
||||||
|
case FONT_BRAILLE:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
CopyGlyphToWindow(textPrinter);
|
||||||
{
|
|
||||||
if (textPrinter->japanese)
|
if (textPrinter->minLetterSpacing)
|
||||||
textPrinter->printerTemplate.currentX += (gCurGlyph.width + textPrinter->printerTemplate.letterSpacing);
|
{
|
||||||
else
|
|
||||||
textPrinter->printerTemplate.currentX += gCurGlyph.width;
|
textPrinter->printerTemplate.currentX += gCurGlyph.width;
|
||||||
}
|
width = textPrinter->minLetterSpacing - gCurGlyph.width;
|
||||||
|
if (width > 0)
|
||||||
|
{
|
||||||
|
ClearTextSpan(textPrinter, width);
|
||||||
|
textPrinter->printerTemplate.currentX += width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (textPrinter->japanese)
|
||||||
|
textPrinter->printerTemplate.currentX += (gCurGlyph.width + textPrinter->printerTemplate.letterSpacing);
|
||||||
|
else
|
||||||
|
textPrinter->printerTemplate.currentX += gCurGlyph.width;
|
||||||
|
}
|
||||||
|
|
||||||
|
repeats--;
|
||||||
|
|
||||||
|
} while (repeats > 0);
|
||||||
return RENDER_PRINT;
|
return RENDER_PRINT;
|
||||||
case RENDER_STATE_WAIT:
|
case RENDER_STATE_WAIT:
|
||||||
if (TextPrinterWait(textPrinter))
|
if (TextPrinterWait(textPrinter))
|
||||||
|
@ -76,8 +76,8 @@ const u16 gStandardMenuPalette[] = INCBIN_U16("graphics/interface/std_menu.gbapa
|
|||||||
|
|
||||||
static const u8 sTextSpeedFrameDelays[] =
|
static const u8 sTextSpeedFrameDelays[] =
|
||||||
{
|
{
|
||||||
[OPTIONS_TEXT_SPEED_SLOW] = 8,
|
[OPTIONS_TEXT_SPEED_SLOW] = 1,
|
||||||
[OPTIONS_TEXT_SPEED_MID] = 4,
|
[OPTIONS_TEXT_SPEED_MID] = 1,
|
||||||
[OPTIONS_TEXT_SPEED_FAST] = 1
|
[OPTIONS_TEXT_SPEED_FAST] = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user