diff --git a/asm/international_string_util.s b/asm/international_string_util.s deleted file mode 100644 index 469d88787..000000000 --- a/asm/international_string_util.s +++ /dev/null @@ -1,355 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start sub_81DB41C -sub_81DB41C: @ 81DB41C - push {r4-r7,lr} - adds r4, r0, 0 - ldr r1, [r4] - movs r7, 0 - movs r6, 0 - ldrh r0, [r4, 0xC] - cmp r7, r0 - bge _081DB44C - adds r5, r1, 0 -_081DB42E: - ldrb r0, [r4, 0x17] - lsls r0, 26 - lsrs r0, 26 - ldr r1, [r5] - movs r2, 0 - bl GetStringWidth - cmp r0, r7 - ble _081DB442 - adds r7, r0, 0 -_081DB442: - adds r5, 0x8 - adds r6, 0x1 - ldrh r0, [r4, 0xC] - cmp r6, r0 - blt _081DB42E -_081DB44C: - ldrb r0, [r4, 0x12] - adds r1, r7, r0 - adds r0, r1, 0 - adds r0, 0x9 - cmp r0, 0 - bge _081DB45A - adds r0, 0x7 -_081DB45A: - asrs r0, 3 - cmp r0, 0x1C - ble _081DB462 - movs r0, 0x1C -_081DB462: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81DB41C - - thumb_func_start CopyMonCategoryText -CopyMonCategoryText: @ 81DB468 - push {lr} - adds r2, r0, 0 - adds r0, r1, 0 - lsls r2, 5 - ldr r1, =gPokedexEntries - adds r2, r1 - adds r1, r2, 0 - bl StringCopy - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - ldr r1, =gText_Pokemon - bl StringCopy - pop {r0} - bx r0 - .pool - thumb_func_end CopyMonCategoryText - - thumb_func_start sub_81DB494 -sub_81DB494: @ 81DB494 - push {r4-r7,lr} - adds r6, r1, 0 - adds r5, r2, 0 - adds r7, r3, 0 - cmp r5, 0 - beq _081DB4B6 - adds r1, r5, 0 - bl StringCopy - adds r4, r0, 0 - lsls r0, r6, 24 - lsrs r0, 24 - adds r1, r5, 0 - movs r2, 0 - bl GetStringWidth - b _081DB4BA -_081DB4B6: - adds r4, r0, 0 - movs r0, 0 -_081DB4BA: - subs r3, r7, r0 - cmp r3, 0 - ble _081DB4D4 - movs r0, 0xFC - strb r0, [r4] - adds r4, 0x1 - movs r0, 0x11 - strb r0, [r4] - adds r4, 0x1 - strb r3, [r4] - adds r4, 0x1 - movs r0, 0xFF - strb r0, [r4] -_081DB4D4: - adds r0, r4, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81DB494 - - thumb_func_start PadNameString -PadNameString: @ 81DB4DC - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - bl StripExtCtrlCodes - adds r0, r4, 0 - bl StringLength - lsls r0, 24 - lsrs r1, r0, 24 - cmp r5, 0xFC - bne _081DB51A - cmp r1, 0x5 - bhi _081DB51E - movs r3, 0xFC - movs r2, 0x7 -_081DB4FE: - adds r0, r4, r1 - strb r3, [r0] - strb r2, [r0, 0x1] - adds r0, r1, 0x2 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x5 - bls _081DB4FE - b _081DB51E -_081DB510: - adds r0, r4, r1 - strb r5, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 -_081DB51A: - cmp r1, 0x5 - bls _081DB510 -_081DB51E: - adds r1, r4, r1 - movs r0, 0xFF - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end PadNameString - - thumb_func_start sub_81DB52C -sub_81DB52C: @ 81DB52C - push {r4,lr} - adds r4, r0, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _081DB546 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString - b _081DB54C -_081DB546: - adds r0, r4, 0 - bl StripExtCtrlCodes -_081DB54C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81DB52C - - thumb_func_start sub_81DB554 -sub_81DB554: @ 81DB554 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _081DB572 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString - b _081DB5A4 -_081DB572: - cmp r5, 0xFC - bne _081DB57E - adds r0, r4, 0 - bl StripExtCtrlCodes - b _081DB5A4 -_081DB57E: - adds r1, r4, 0 - b _081DB584 -_081DB582: - adds r1, 0x1 -_081DB584: - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - bne _081DB582 - cmp r1, r4 - bcc _081DB5A4 - ldrb r0, [r1] - cmp r0, r5 - bne _081DB5A4 - movs r2, 0xFF -_081DB596: - strb r2, [r1] - subs r1, 0x1 - cmp r1, r4 - bcc _081DB5A4 - ldrb r0, [r1] - cmp r0, r5 - beq _081DB596 -_081DB5A4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81DB554 - - thumb_func_start sub_81DB5AC -sub_81DB5AC: @ 81DB5AC - push {lr} - adds r2, r0, 0 - ldrb r0, [r2] - adds r2, 0x1 - cmp r0, 0xFC - bne _081DB5E4 - ldrb r0, [r2] - adds r2, 0x1 - cmp r0, 0x15 - bne _081DB5E4 - b _081DB5CE -_081DB5C2: - cmp r1, 0xFC - bne _081DB5CC - ldrb r0, [r2, 0x1] - cmp r0, 0x16 - beq _081DB5E4 -_081DB5CC: - adds r2, 0x1 -_081DB5CE: - ldrb r1, [r2] - adds r0, r1, 0 - cmp r0, 0xFF - bne _081DB5C2 - movs r0, 0xFC - strb r0, [r2] - adds r2, 0x1 - movs r0, 0x16 - strb r0, [r2] - movs r0, 0xFF - strb r0, [r2, 0x1] -_081DB5E4: - pop {r0} - bx r0 - thumb_func_end sub_81DB5AC - - thumb_func_start TVShowConvertInternationalString -TVShowConvertInternationalString: @ 81DB5E8 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r2, 0 - bl StringCopy - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl ConvertInternationalString - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end TVShowConvertInternationalString - - thumb_func_start sub_81DB604 -sub_81DB604: @ 81DB604 - push {lr} - adds r1, r0, 0 - ldrb r0, [r1] - cmp r0, 0xFC - bne _081DB618 - ldrb r0, [r1, 0x1] - cmp r0, 0x15 - bne _081DB618 - movs r0, 0x1 - b _081DB61A -_081DB618: - movs r0, 0x2 -_081DB61A: - pop {r1} - bx r1 - thumb_func_end sub_81DB604 - - thumb_func_start sub_81DB620 -sub_81DB620: @ 81DB620 - push {r4-r7,lr} - sub sp, 0x4 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 2 - ldr r0, =gWindows - adds r4, r0 - lsls r7, r3, 5 - ldrb r0, [r4, 0x3] - lsls r6, r0, 5 - muls r2, r6 - ldr r0, [r4, 0x8] - adds r0, r2 - lsls r1, 5 - adds r5, r0, r1 - ldr r0, [sp, 0x18] - cmp r0, 0 - ble _081DB66C - adds r4, r0, 0 -_081DB646: - ldr r0, =0x11111111 - str r0, [sp] - adds r2, r7, 0 - cmp r2, 0 - bge _081DB652 - adds r2, 0x3 -_081DB652: - lsls r2, 9 - lsrs r2, 11 - movs r0, 0x80 - lsls r0, 17 - orrs r2, r0 - mov r0, sp - adds r1, r5, 0 - bl CpuFastSet - adds r5, r6 - subs r4, 0x1 - cmp r4, 0 - bne _081DB646 -_081DB66C: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81DB620 - - .align 2, 0 @ Don't pad with nop. diff --git a/include/international_string_util.h b/include/international_string_util.h index 343c5453c..2d5b1c871 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -2,22 +2,23 @@ #define GUARD_INTERNATIONAL_STRING_UTIL_H #include "menu.h" +#include "list_menu.h" -void sub_81DB52C(const u8 *src); -void TVShowConvertInternationalString(u8 *dest, const u8 *src, u8 language); -s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth); -s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth); -s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing); -s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing); -s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1); -s32 sub_81DB3D8(const struct MenuAction *str, const u8* arg1, s32 arg2); -// sub_81DB41C -// CopyMonCategoryText -// sub_81DB494 -void PadNameString(u8 *dst, u8 padWith); +void sub_81DB52C(u8 *src); +void TVShowConvertInternationalString(u8 *dest, const u8 *src, int language); +int GetStringCenterAlignXOffset(int fontId, const u8 *str, int totalWidth); +int GetStringRightAlignXOffset(int fontId, const u8 *str, int totalWidth); +int GetStringCenterAlignXOffsetWithLetterSpacing(int fontId, const u8 *str, int totalWidth, int letterSpacing); +int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int letterSpacing); +int GetMaxWidthInMenuTable(const struct MenuAction *str, int arg1); +int sub_81DB3D8(const struct MenuAction *str, const u8* arg1, int arg2); +int sub_81DB41C(const struct ListMenuTemplate *listMenu); +void CopyMonCategoryText(int dexNum, u8 *dest); +u8 *sub_81DB494(u8 *str, int fontId, u8 *str2, int totalStringWidth); +void PadNameString(u8 *dest, u8 padChar); void sub_81DB554(u8 *, u8); void sub_81DB5AC(u8 *); -u32 sub_81DB604(const u8 *); -// sub_81DB620 +int sub_81DB604(u8 *); +void sub_81DB620(int windowId, int columnStart, int rowStart, int numFillTiles, int numRows); #endif // GUARD_INTERNATIONAL_STRING_UTIL_H diff --git a/include/pokedex.h b/include/pokedex.h index 11e39997c..3f90e9508 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -4,13 +4,6 @@ extern u8 gUnknown_030060B0; extern void (*gUnknown_030060B4)(void); -void ResetPokedex(void); -void CopyMonCategoryText(u32 species, u8 *dst); -u16 GetPokedexHeightWeight(u16 dexNum, u8 data); -u16 GetNationalPokedexCount(u8); -u16 GetHoennPokedexCount(u8); -u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality); - enum { FLAG_GET_SEEN, @@ -19,6 +12,24 @@ enum FLAG_SET_CAUGHT }; +struct PokedexEntry +{ + /*0x00*/ u8 categoryName[12]; + /*0x0C*/ u16 height; //in decimeters + /*0x0E*/ u16 weight; //in hectograms + /*0x10*/ const u8 *description; + /*0x14*/ u16 unused; + /*0x16*/ u16 pokemonScale; + /*0x18*/ u16 pokemonOffset; + /*0x1A*/ u16 trainerScale; + /*0x1C*/ u16 trainerOffset; +}; /*size = 0x20*/ + +void ResetPokedex(void); +u16 GetPokedexHeightWeight(u16 dexNum, u8 data); +u16 GetNationalPokedexCount(u8); +u16 GetHoennPokedexCount(u8); +u8 CreateDexDisplayMonDataTask(u16 dexNum, u32 trainerId, u32 personality); s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId); u16 sub_80C0E9C(u16, s16, s16, u16); diff --git a/include/text.h b/include/text.h index 27a6364bb..69cbb87ed 100644 --- a/include/text.h +++ b/include/text.h @@ -89,6 +89,13 @@ #define EXT_CTRL_CODE_COLOR 0x1 #define EXT_CTRL_CODE_HIGHLIGHT 0x2 #define EXT_CTRL_CODE_SHADOW 0x3 +// +#define EXT_CTRL_CODE_UNKNOWN_7 0x7 +// +#define EXT_CTRL_CODE_CLEAR 0x11 +// +#define EXT_CTRL_CODE_JPN 0x15 +#define EXT_CTRL_CODE_ENG 0x16 #define TEXT_COLOR_TRANSPARENT 0x0 #define TEXT_COLOR_WHITE 0x1 @@ -102,9 +109,6 @@ // battle placeholders are located in battle_message.h -#define EXT_CTRL_CODE_JPN 0x15 -#define EXT_CTRL_CODE_ENG 0x16 - #define NUM_TEXT_PRINTERS 32 #define TEXT_SPEED_FF 0xFF diff --git a/ld_script.txt b/ld_script.txt index 4a8032174..c03573534 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -297,7 +297,6 @@ SECTIONS { src/gym_leader_rematch.o(.text); src/unk_transition.o(.text); src/international_string_util.o(.text); - asm/international_string_util.o(.text); } =0 script_data : diff --git a/src/international_string_util.c b/src/international_string_util.c index 9de338c59..a7c42c39e 100644 --- a/src/international_string_util.c +++ b/src/international_string_util.c @@ -1,40 +1,46 @@ #include "global.h" -#include "text.h" #include "international_string_util.h" +#include "list_menu.h" +#include "pokedex.h" +#include "script_menu.h" +#include "string_util.h" +#include "strings.h" +#include "text.h" +#include "window.h" -extern s32 convert_pixel_width_to_tile_width(s32 a0); // script menu +extern const struct PokedexEntry gPokedexEntries[]; -s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth) +int GetStringCenterAlignXOffset(int fontId, const u8 *str, int totalWidth) { return GetStringCenterAlignXOffsetWithLetterSpacing(fontId, str, totalWidth, 0); } -s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth) +int GetStringRightAlignXOffset(int fontId, const u8 *str, int totalWidth) { return GetStringWidthDifference(fontId, str, totalWidth, 0); } -s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing) +int GetStringCenterAlignXOffsetWithLetterSpacing(int fontId, const u8 *str, int totalWidth, int letterSpacing) { return GetStringWidthDifference(fontId, str, totalWidth, letterSpacing) / 2; } -s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing) +int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int letterSpacing) { - s32 stringWidth = GetStringWidth(fontId, str, letterSpacing); + int stringWidth = GetStringWidth(fontId, str, letterSpacing); if (totalWidth > stringWidth) return totalWidth - stringWidth; else return 0; } -s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1) +int GetMaxWidthInMenuTable(const struct MenuAction *str, int arg1) { - s32 i, var; + int i, var; for (var = 0, i = 0; i < arg1; i++) { - s32 stringWidth = GetStringWidth(1, str[i].text, 0); + int stringWidth = GetStringWidth(1, str[i].text, 0); if (stringWidth > var) var = stringWidth; } @@ -42,16 +48,192 @@ s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1) return convert_pixel_width_to_tile_width(var); } -s32 sub_81DB3D8(const struct MenuAction *str, const u8* arg1, s32 arg2) +int sub_81DB3D8(const struct MenuAction *str, const u8* arg1, int arg2) { - s32 i, var; + int i, var; for (var = 0, i = 0; i < arg2; i++) { - s32 stringWidth = GetStringWidth(1, str[arg1[i]].text, 0); + int stringWidth = GetStringWidth(1, str[arg1[i]].text, 0); if (stringWidth > var) var = stringWidth; } return convert_pixel_width_to_tile_width(var); } + +int sub_81DB41C(const struct ListMenuTemplate *listMenu) +{ + int i, maxWidth, finalWidth; + const struct ListMenuItem *items = listMenu->items; + + maxWidth = 0; + for (i = 0; i < listMenu->totalItems; i++) + { + int width = GetStringWidth(listMenu->fontId, items[i].name, 0); + if (width > maxWidth) + maxWidth = width; + } + + finalWidth = maxWidth + listMenu->item_X + 9; + if (finalWidth < 0) + finalWidth += 7; + + finalWidth >>= 3; + if (finalWidth > 28) + finalWidth = 28; + + return finalWidth; +} + +void CopyMonCategoryText(int dexNum, u8 *dest) +{ + u8 *str = StringCopy(dest, gPokedexEntries[dexNum].categoryName); + *str = CHAR_SPACE; + StringCopy(str + 1, gText_Pokemon); +} + +u8 *sub_81DB494(u8 *str, int fontId, u8 *str2, int totalStringWidth) +{ + u8 *buffer; + int width; + int clearWidth; + + if (str2) + { + buffer = StringCopy(str, str2); + width = GetStringWidth(fontId, str2, 0); + } + else + { + buffer = str; + width = 0; + } + + clearWidth = totalStringWidth - width; + if (clearWidth > 0) + { + *buffer = EXT_CTRL_CODE_BEGIN; + buffer++; + *buffer = EXT_CTRL_CODE_CLEAR; + buffer++; + *buffer = clearWidth; + buffer++; + *buffer = EOS; + } + + return buffer; +} + +void PadNameString(u8 *dest, u8 padChar) +{ + u8 length; + + StripExtCtrlCodes(dest); + length = StringLength(dest); + if (padChar == EXT_CTRL_CODE_BEGIN) + { + while (length < PLAYER_NAME_LENGTH - 1) + { + dest[length] = EXT_CTRL_CODE_BEGIN; + dest[length + 1] = EXT_CTRL_CODE_UNKNOWN_7; + length += 2; + } + } + else + { + while (length < PLAYER_NAME_LENGTH - 1) + { + dest[length] = padChar; + length++; + } + } + + dest[length] = EOS; +} + +void sub_81DB52C(u8 *str) +{ + if (StringLength(str) < PLAYER_NAME_LENGTH - 1) + ConvertInternationalString(str, LANGUAGE_JAPANESE); + else + StripExtCtrlCodes(str); +} + +void sub_81DB554(u8 *str, u8 arg1) +{ + u8 *buffer; + if (StringLength(str) < PLAYER_NAME_LENGTH - 1) + { + ConvertInternationalString(str, LANGUAGE_JAPANESE); + } + else if (arg1 == EXT_CTRL_CODE_BEGIN) + { + StripExtCtrlCodes(str); + } + else + { + buffer = str; + while (buffer[1] != EOS) + buffer++; + + while (buffer >= str && buffer[0] == arg1) + { + buffer[0] = EOS; + buffer--; + } + } +} + +void sub_81DB5AC(u8 *str) +{ + if (*str++ == EXT_CTRL_CODE_BEGIN && *str++ == EXT_CTRL_CODE_JPN) + { + while (*str != EOS) + { + if (str[0] == EXT_CTRL_CODE_BEGIN && str[1] == EXT_CTRL_CODE_ENG) + return; + + str++; + } + + *str++ = EXT_CTRL_CODE_BEGIN; + *str++ = EXT_CTRL_CODE_ENG; + *str = EOS; + } +} + +void TVShowConvertInternationalString(u8 *dest, const u8 *src, int language) +{ + StringCopy(dest, src); + ConvertInternationalString(dest, language); +} + +int sub_81DB604(u8 *str) +{ + if (str[0] == EXT_CTRL_CODE_BEGIN && str[1] == EXT_CTRL_CODE_JPN) + return LANGUAGE_JAPANESE; + else + return LANGUAGE_ENGLISH; +} + +void sub_81DB620(int windowId, int columnStart, int rowStart, int numFillTiles, int numRows) +{ + u8 *windowTileData; + int fillSize, windowRowSize, rowsToFill; + struct Window *window = &gWindows[windowId]; + + fillSize = numFillTiles * TILE_SIZE_4BPP; + windowRowSize = window->window.width * TILE_SIZE_4BPP; + windowTileData = window->tileData + (rowStart * windowRowSize) + (columnStart * TILE_SIZE_4BPP); + if (numRows > 0) + { + rowsToFill = numRows; + while (rowsToFill) + { + CpuFastFill8(0x11, windowTileData, fillSize); + windowTileData += windowRowSize; + rowsToFill--; + } + } +} diff --git a/src/pokedex.c b/src/pokedex.c index 66a68f0bd..fa3faab84 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -42,19 +42,6 @@ static EWRAM_DATA struct PokedexListItem *gUnknown_02039B54 = NULL; u8 gUnknown_030060B0; void (*gUnknown_030060B4)(void); -struct PokedexEntry -{ - /*0x00*/ u8 categoryName[12]; - /*0x0C*/ u16 height; //in decimeters - /*0x0E*/ u16 weight; //in hectograms - /*0x10*/ const u8 *description; - /*0x14*/ u16 unused; - /*0x16*/ u16 pokemonScale; - /*0x18*/ u16 pokemonOffset; - /*0x1A*/ u16 trainerScale; - /*0x1C*/ u16 trainerOffset; -}; /*size = 0x20*/ - struct UnknownStruct2 { const u8 *text1; diff --git a/src/record_mixing.c b/src/record_mixing.c index 5f1aef1df..df4a1a720 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -1848,7 +1848,7 @@ static void SanitizeDayCareMailForRuby(struct RecordMixingDayCareMail *src) if (mail->message.itemId != 0) { if (mail->gameLanguage != LANGUAGE_JAPANESE) - PadNameString(mail->OT_name, 0xFC); + PadNameString(mail->OT_name, EXT_CTRL_CODE_BEGIN); ConvertInternationalString(mail->monName, mail->monLanguage); } diff --git a/src/text.c b/src/text.c index ecd3a3095..07c15596e 100644 --- a/src/text.c +++ b/src/text.c @@ -1539,7 +1539,7 @@ u16 RenderText(struct TextPrinter *textPrinter) subStruct->glyphId = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; return 2; - case 7: + case EXT_CTRL_CODE_UNKNOWN_7: return 2; case 8: textPrinter->delayCounter = *textPrinter->printerTemplate.currentChar; @@ -1591,7 +1591,7 @@ u16 RenderText(struct TextPrinter *textPrinter) case 24: m4aMPlayContinue(&gMPlayInfo_BGM); return 2; - case 17: + case EXT_CTRL_CODE_CLEAR: width = *textPrinter->printerTemplate.currentChar; textPrinter->printerTemplate.currentChar++; if (width > 0) @@ -1622,10 +1622,10 @@ u16 RenderText(struct TextPrinter *textPrinter) case 20: textPrinter->minLetterSpacing = *textPrinter->printerTemplate.currentChar++; return 2; - case 21: + case EXT_CTRL_CODE_JPN: textPrinter->japanese = 1; return 2; - case 22: + case EXT_CTRL_CODE_ENG: textPrinter->japanese = 0; return 2; } @@ -1810,12 +1810,12 @@ u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing) case 0x14: ++strPos; break; - case 0x7: + case EXT_CTRL_CODE_UNKNOWN_7: case 0x9: case 0xA: case 0xF: - case 0x15: - case 0x16: + case EXT_CTRL_CODE_JPN: + case EXT_CTRL_CODE_ENG: default: break; } @@ -1970,13 +1970,13 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) case 0x14: minGlyphWidth = *++str; break; - case 0x15: + case EXT_CTRL_CODE_JPN: isJapanese = 1; break; - case 0x16: + case EXT_CTRL_CODE_ENG: isJapanese = 0; break; - case 0x7: + case EXT_CTRL_CODE_UNKNOWN_7: case 0x9: case 0xA: case 0xF: @@ -2096,12 +2096,12 @@ u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str) case 0x14: ++strPos; break; - case 0x7: + case EXT_CTRL_CODE_UNKNOWN_7: case 0x9: case 0xA: case 0xF: - case 0x15: - case 0x16: + case EXT_CTRL_CODE_JPN: + case EXT_CTRL_CODE_ENG: default: continue; }