fix HelpSystemRenderText fakematching

This commit is contained in:
Kurausukun
2021-04-19 02:14:36 -04:00
parent 918ed2d31e
commit d4a5f580c5
+14 -22
View File
@@ -400,7 +400,8 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
case PLACEHOLDER_BEGIN: case PLACEHOLDER_BEGIN:
curChar = *src; curChar = *src;
src++; src++;
if (curChar == PLACEHOLDER_ID_PLAYER) { if (curChar == PLACEHOLDER_ID_PLAYER)
{
for (i = 0; i < 10; i++) for (i = 0; i < 10; i++)
{ {
if (gSaveBlock2Ptr->playerName[i] == EOS) if (gSaveBlock2Ptr->playerName[i] == EOS)
@@ -477,42 +478,33 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
case EXT_CTRL_CODE_SHIFT_RIGHT: case EXT_CTRL_CODE_SHIFT_RIGHT:
case EXT_CTRL_CODE_SHIFT_DOWN: case EXT_CTRL_CODE_SHIFT_DOWN:
src++; src++;
case EXT_CTRL_CODE_RESET_FONT:
case EXT_CTRL_CODE_WAIT_BUTTON:
case EXT_CTRL_CODE_WAIT_SE:
case EXT_CTRL_CODE_FILL_WINDOW:
break;
case EXT_CTRL_CODE_CLEAR:
case EXT_CTRL_CODE_SKIP:
src++;
break; break;
case EXT_CTRL_CODE_CLEAR_TO: case EXT_CTRL_CODE_CLEAR_TO:
{ {
#ifdef NONMATCHING clearPixels = *src + orig_x - x;
curChar = *src;
clearPixels = curChar + orig_x - x;
#else // dumb fakematch
s32 r0;
register const u8 * _src asm("r2") = src;
asm("":::"r1");
r0 = *_src;
r0 += orig_x;
clearPixels = r0 - x;
#endif
if (clearPixels > 0) if (clearPixels > 0)
{ {
destBlit.pixels = dest; destBlit.pixels = dest;
destBlit.width = width * 8; destBlit.width = width * 8;
destBlit.height = height * 8; destBlit.height = height * 8;
FillBitmapRect4Bit(&destBlit, x, y, clearPixels, GetFontAttribute(font, FONTATTR_MAX_LETTER_HEIGHT), FillBitmapRect4Bit(&destBlit, x, y, clearPixels, GetFontAttribute(font, FONTATTR_MAX_LETTER_HEIGHT), 0);
0);
x += clearPixels; x += clearPixels;
} }
src++; src++;
break; break;
} }
case EXT_CTRL_CODE_CLEAR:
case EXT_CTRL_CODE_SKIP:
case EXT_CTRL_CODE_MIN_LETTER_SPACING: case EXT_CTRL_CODE_MIN_LETTER_SPACING:
src++; src++;
break; break;
case EXT_CTRL_CODE_RESET_FONT:
case EXT_CTRL_CODE_WAIT_BUTTON:
case EXT_CTRL_CODE_WAIT_SE:
case EXT_CTRL_CODE_FILL_WINDOW:
break;
case EXT_CTRL_CODE_JPN: case EXT_CTRL_CODE_JPN:
case EXT_CTRL_CODE_ENG: case EXT_CTRL_CODE_ENG:
break; break;
@@ -521,7 +513,7 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
case CHAR_KEYPAD_ICON: case CHAR_KEYPAD_ICON:
curChar = *src; curChar = *src;
src++; src++;
srcBlit.pixels = (u8 *)gKeypadIconTiles + 0x20 * GetKeypadIconTileOffset(curChar); srcBlit.pixels = (u8 *)&gKeypadIconTiles[0x20 * GetKeypadIconTileOffset(curChar)];
srcBlit.width = 0x80; srcBlit.width = 0x80;
srcBlit.height = 0x80; srcBlit.height = 0x80;
destBlit.pixels = dest; destBlit.pixels = dest;