Increase parity with heartgold in string functions

This commit is contained in:
Kellan Clark 2023-06-19 19:33:00 -04:00
parent 2b7065bb33
commit 66b4d3dfc2
37 changed files with 367 additions and 117 deletions

View File

@ -1151,7 +1151,7 @@ FUN_02062DB0: ; 0x02062DB0
ldr r2, [r4, #0x0]
mov r0, #0x0
lsl r1, r1, #0x6
bl FUN_02002EEC
bl LoadFontPal1
mov r0, #0x13
str r0, [sp, #0x0]
mov r0, #0x1b

View File

@ -1983,7 +1983,7 @@ FUN_02066334: ; 0x02066334
ldr r2, [r4, #0x0]
mov r0, #0x0
lsl r1, r1, #0x6
bl FUN_02002EEC
bl LoadFontPal1
mov r0, #0x13
str r0, [sp, #0x0]
mov r0, #0x1b

View File

@ -1298,7 +1298,7 @@ FUN_0206FD24: ; 0x0206FD24
mov r0, #0x0
lsl r1, r1, #0x4
mov r2, #0xc
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #0x0
str r1, [sp, #0x0]
mov r0, #0xc

View File

@ -2353,7 +2353,7 @@ FUN_02077FE8: ; 0x02077FE8
mov r0, #0x0
lsl r1, r1, #0x6
mov r2, #0x12
bl FUN_02002EEC
bl LoadFontPal1
ldr r0, [r5, #0x18]
bl Options_GetFrame
lsl r0, r0, #0x18
@ -2373,7 +2373,7 @@ FUN_02077FE8: ; 0x02077FE8
mov r0, #0x4
lsl r1, r1, #0x6
mov r2, #0x12
bl FUN_02002EEC
bl LoadFontPal1
mov r3, #0x4b
mov r0, #0x12
lsl r3, r3, #0x4

View File

@ -1655,7 +1655,7 @@ _0207A99E:
mov r0, #0x0
lsl r1, r1, #0x6
mov r2, #0x13
bl FUN_02002EEC
bl LoadFontPal1
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r5, r0]
@ -4733,7 +4733,7 @@ FUN_0207C23C: ; 0x0207C23C
mov r0, #0x0
sub r1, #0xda
mov r2, #0x13
bl FUN_02002EEC
bl LoadFontPal1
mov r0, #0x93
lsl r0, r0, #0x2
ldr r0, [r4, r0]

View File

@ -238,7 +238,7 @@
.extern FUN_02002E14
.extern GetFontAttribute
.extern LoadFontPal0
.extern FUN_02002EEC
.extern LoadFontPal1
.extern FUN_02002F08
.extern FUN_02002F40
.extern FUN_02002F90

View File

@ -41729,7 +41729,7 @@ MOD06_0224DBCC: ; 0x0224DBCC
ldr r2, [r4, #0x18]
mov r0, #0
lsl r1, r1, #6
bl FUN_02002EEC
bl LoadFontPal1
mov r0, #0
str r0, [sp]
ldr r0, [r4, #0x18]

View File

@ -4671,7 +4671,7 @@ MOD17_021D9918: ; 0x021D9918
mov r0, #0
mov r1, #0xe0
mov r2, #0xe
bl FUN_02002EEC
bl LoadFontPal1
str r4, [sp]
add r0, sp, #0x20
ldrb r1, [r0, #0x10]
@ -11774,7 +11774,7 @@ MOD17_021DCC38: ; 0x021DCC38
mov r0, #4
mov r1, #0x40
mov r2, #0xe
bl FUN_02002EEC
bl LoadFontPal1
add sp, #8
pop {r4, pc}
thumb_func_end MOD17_021DCC38

View File

@ -782,12 +782,12 @@ MOD53_021D7B60: ; 0x021D7B60
mov r0, #0
lsl r1, r1, #4
mov r2, #0x27
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #0x1a
mov r0, #4
lsl r1, r1, #4
mov r2, #0x27
bl FUN_02002EEC
bl LoadFontPal1
mov r0, #0
str r0, [sp]
mov r0, #2

View File

@ -708,12 +708,12 @@ MOD54_021D7AA0: ; 0x021D7AA0
mov r0, #0
lsl r1, r1, #4
mov r2, #0x33
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #0x1a
mov r0, #4
lsl r1, r1, #4
mov r2, #0x33
bl FUN_02002EEC
bl LoadFontPal1
mov r0, #0
str r0, [sp]
str r0, [sp, #4]

View File

@ -739,12 +739,12 @@ MOD55_021D7AE0: ; 0x021D7AE0
mov r0, #0
lsl r1, r1, #4
mov r2, #0x34
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #6
mov r0, #0
lsl r1, r1, #6
mov r2, #0x34
bl FUN_02002EEC
bl LoadFontPal1
ldr r1, _021D7BE4 ; =0x000052D8
add r0, sp, #0x10
strh r1, [r0]

View File

@ -963,12 +963,12 @@ MOD56_0221257C: ; 0x0221257C
mov r0, #0
lsl r1, r1, #4
mov r2, #0x36
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #6
mov r0, #0
lsl r1, r1, #6
mov r2, #0x36
bl FUN_02002EEC
bl LoadFontPal1
mov r3, #0
str r3, [sp]
str r3, [sp, #4]

View File

@ -594,12 +594,12 @@ MOD58_021D9F14: ; 0x021D9F14
mov r0, #0
lsl r1, r1, #4
mov r2, #0x27
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #0x1a
mov r0, #4
lsl r1, r1, #4
mov r2, #0x27
bl FUN_02002EEC
bl LoadFontPal1
mov r0, #1
mov r1, #0x20
mov r2, #0

View File

@ -593,7 +593,7 @@ void MOD59_IntroSetupBg(MOD59_IntroOverlayData *data)
FUN_0200CD68(data->bgConfig, 0, 994, 4, 0, data->heap_id);
LoadUserFrameGfx1(data->bgConfig, GF_BG_LYR_MAIN_0, 985, 3, 0, data->heap_id);
LoadFontPal0(GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_OFFSET_5, data->heap_id);
FUN_02002EEC(GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_OFFSET_6, data->heap_id);
LoadFontPal1(GF_PAL_LOCATION_MAIN_BG, GF_PAL_SLOT_OFFSET_6, data->heap_id);
struct BgTemplate bgTemplateSub = MOD59_021D9EBC;
bgTemplateSub.screenBase = GX_BG_SCRBASE_0x7800;

View File

@ -913,12 +913,12 @@ MOD60_021D7BA4: ; 0x021D7BA4
ldr r2, [r4]
mov r0, #0
lsl r1, r1, #6
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #6
ldr r2, [r4]
mov r0, #4
lsl r1, r1, #6
bl FUN_02002EEC
bl LoadFontPal1
add r0, r4, #0
add r0, #0x2c
mov r1, #0

View File

@ -970,7 +970,7 @@ MOD65_021D7C04: ; 0x021D7C04
ldr r2, [r6]
mov r0, #0
lsl r1, r1, #6
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #0x1a
ldr r2, [r6]
mov r0, #4
@ -3284,7 +3284,7 @@ MOD65_021D8E68: ; 0x021D8E68
ldr r2, [r4]
mov r0, #0
lsl r1, r1, #4
bl FUN_02002EEC
bl LoadFontPal1
add sp, #8
pop {r4, pc}
nop

View File

@ -2312,7 +2312,7 @@ MOD71_0222E900: ; 0x0222E900
mov r0, #0
lsl r1, r1, #4
mov r2, #0x1a
bl FUN_02002EEC
bl LoadFontPal1
mov r0, #0
str r0, [sp]
mov r0, #9
@ -2357,7 +2357,7 @@ MOD71_0222E900: ; 0x0222E900
mov r0, #0
mov r1, #0x40
mov r2, #0x1a
bl FUN_02002EEC
bl LoadFontPal1
mov r0, #0
mov r1, #0x60
mov r2, #0x1a
@ -2407,7 +2407,7 @@ MOD71_0222E900: ; 0x0222E900
mov r0, #4
mov r1, #0x40
mov r2, #0x1a
bl FUN_02002EEC
bl LoadFontPal1
mov r0, #4
mov r1, #0x60
mov r2, #0x1a

View File

@ -5001,7 +5001,7 @@ MOD73_021D9BE0: ; 0x021D9BE0
mov r0, #4
mov r1, #0x20
add r2, r4, #0
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #1
ldr r0, [r5, #8]
add r2, r1, #0
@ -5904,7 +5904,7 @@ MOD73_021DA2AC: ; 0x021DA2AC
ldr r2, [sp, #0x14]
mov r0, #0
mov r1, #0x40
bl FUN_02002EEC
bl LoadFontPal1
mov r0, #0
str r0, [sp]
ldr r0, [sp, #0x14]

View File

@ -829,7 +829,7 @@ MOD75_021E7214: ; 0x021E7214
mov r0, #0
lsl r1, r1, #4
mov r2, #6
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #0
str r1, [sp]
mov r0, #6

View File

@ -426,7 +426,7 @@ MOD76_021D7814: ; 0x021D7814
mov r0, #0
lsl r1, r1, #6
mov r2, #0x43
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #0
str r1, [sp]
mov r0, #0x43

View File

@ -2802,7 +2802,7 @@ MOD80_0222EB6C: ; 0x0222EB6C
mov r0, #0
lsl r1, r1, #4
mov r2, #0x3e
bl FUN_02002EEC
bl LoadFontPal1
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl Options_GetFrame
@ -4096,7 +4096,7 @@ MOD80_0222F5A8: ; 0x0222F5A8
mov r0, #0
lsl r1, r1, #4
mov r2, #0x3e
bl FUN_02002EEC
bl LoadFontPal1
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl Options_GetFrame
@ -5385,7 +5385,7 @@ MOD80_02230054: ; 0x02230054
lsl r1, r1, #4
mov r2, #0x3e
ldr r4, [r5, #4]
bl FUN_02002EEC
bl LoadFontPal1
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl Options_GetFrame
@ -6392,7 +6392,7 @@ MOD80_02230840: ; 0x02230840
mov r0, #0
lsl r1, r1, #4
mov r2, #0x3e
bl FUN_02002EEC
bl LoadFontPal1
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl Options_GetFrame
@ -8804,7 +8804,7 @@ MOD80_02231BF4: ; 0x02231BF4
mov r0, #0
lsl r1, r1, #4
mov r2, #0x3e
bl FUN_02002EEC
bl LoadFontPal1
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl Options_GetFrame
@ -11833,7 +11833,7 @@ MOD80_0223346C: ; 0x0223346C
mov r0, #0
lsl r1, r1, #4
mov r2, #0x3e
bl FUN_02002EEC
bl LoadFontPal1
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl Options_GetFrame
@ -14377,7 +14377,7 @@ MOD80_022348CC: ; 0x022348CC
mov r0, #0
lsl r1, r1, #4
mov r2, #0x3e
bl FUN_02002EEC
bl LoadFontPal1
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl Options_GetFrame
@ -18016,12 +18016,12 @@ MOD80_02236488: ; 0x02236488
mov r0, #0
lsl r1, r1, #4
mov r2, #0x3e
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #0x1a
mov r0, #4
lsl r1, r1, #4
mov r2, #0x3e
bl FUN_02002EEC
bl LoadFontPal1
ldr r0, [r5]
ldr r0, [r0, #0x24]
bl Options_GetFrame

View File

@ -1630,12 +1630,12 @@ MOD82_0222E264: ; 0x0222E264
mov r0, #0
lsl r1, r1, #4
mov r2, #0x44
bl FUN_02002EEC
bl LoadFontPal1
mov r1, #0x1a
mov r0, #4
lsl r1, r1, #4
mov r2, #0x44
bl FUN_02002EEC
bl LoadFontPal1
ldr r0, [r5]
ldr r0, [r0, #0x10]
bl Options_GetFrame

View File

@ -774,7 +774,7 @@ MOD85_021D7B28: ; 0x021D7B28
mov r0, #0
lsl r1, r1, #4
mov r2, #0x4f
bl FUN_02002EEC
bl LoadFontPal1
ldr r2, _021D7BAC ; =0x000001E9
mov r0, #0
mov r1, #0x1a

View File

@ -163,15 +163,14 @@ s32 GetFontAttribute(u8 fontId, s32 attr)
return ret;
}
void LoadFontPal0(enum GFPalLoadLocation location, enum GFPalSlotOffset palSlotOffset, u32 heap_id)
void LoadFontPal0(enum GFPalLoadLocation location, enum GFPalSlotOffset palSlotOffset, u32 heapId)
{
GfGfxLoader_GXLoadPal(NARC_GRAPHIC_FONT, NARC_font_narc_0006_NCLR, location, palSlotOffset, 0x20, heap_id);
GfGfxLoader_GXLoadPal(NARC_GRAPHIC_FONT, NARC_font_narc_0006_NCLR, location, palSlotOffset, 0x20, heapId);
}
void FUN_02002EEC(enum GFPalLoadLocation location, enum GFPalSlotOffset palSlotOffset, u32 heap_id)
void LoadFontPal1(enum GFPalLoadLocation location, enum GFPalSlotOffset palSlotOffset, u32 heapId)
{
GfGfxLoader_GXLoadPal(
NARC_GRAPHIC_FONT, NARC_font_narc_0007_NCLR, location, palSlotOffset, 0x20, heap_id);
GfGfxLoader_GXLoadPal(NARC_GRAPHIC_FONT, NARC_font_narc_0007_NCLR, location, palSlotOffset, 0x20, heapId);
}
s32 FUN_02002F08(u32 param0, struct String *str, u32 param2)
@ -197,13 +196,13 @@ u32 FUN_02002F58(const u16 *str)
u32 r5 = 1;
while (*str != EOS)
{
if (*str == 0xFFFE)
if (*str == EXT_CTRL_CODE_BEGIN)
{
str = MsgArray_SkipControlCode(str);
continue;
}
if (*str == 0xE000)
if (*str == CHAR_LF)
{
r5++;
str++;

View File

@ -813,9 +813,9 @@ void FUN_0200B9EC(struct UnkStruct_0200B870 * string, u32 value, u32 n, enum Pri
ConvertUIntToDecimalString(string->data, value, mode, n);
for (int i = 0; string->data[i] != EOS; i++)
{
if (string->data[i] >= CHAR_0 && string->data[i] <= CHAR_9)
if (string->data[i] >= CHAR_JP_0 && string->data[i] <= CHAR_JP_9)
{
BlitBitmapRectToWindow(window, string->unk_4->unk_14 + (string->data[i] - CHAR_0) * 32, 0, 0, 8, 8, (u16)x, (u16)y, 8, 8);
BlitBitmapRectToWindow(window, string->unk_4->unk_14 + (string->data[i] - CHAR_JP_0) * 32, 0, 0, 8, 8, (u16)x, (u16)y, 8, 8);
}
else
{

View File

@ -60,7 +60,7 @@ u32 RenderText(struct TextPrinter *printer)
{
case EOS:
return 1;
case 0xE000:
case CHAR_LF:
printer->printerTemplate.currentX = printer->printerTemplate.x;
s32 fontAttribute = GetFontAttribute(printer->printerTemplate.fontId, 1);
@ -72,7 +72,7 @@ u32 RenderText(struct TextPrinter *printer)
case 0xF0FD:
printer->printerTemplate.currentChar.raw++;
return 2;
case 0xFFFE:
case EXT_CTRL_CODE_BEGIN:
printer->printerTemplate.currentChar.raw--;
switch ((u16)MsgArray_GetControlCode(printer->printerTemplate.currentChar.raw))
{

View File

@ -1,31 +1,31 @@
#include "global.h"
#include "string_control_code.h"
const u16 * MsgArray_SkipControlCode(const u16 * r4)
const u16 * MsgArray_SkipControlCode(const u16 *arr)
{
GF_ASSERT(*r4 == 0xFFFE);
if (*r4 == 0xFFFE) {
u16 r0 = r4[2];
r4 += 3;
r4 += r0;
GF_ASSERT(*arr == EXT_CTRL_CODE_BEGIN);
if (*arr == EXT_CTRL_CODE_BEGIN) {
u16 size = arr[2];
arr += 3;
arr += size;
}
return r4;
return arr;
}
u32 MsgArray_GetControlCode(const u16 * r4)
u32 MsgArray_GetControlCode(const u16 *arr)
{
GF_ASSERT(*r4 == 0xFFFE);
return r4[1];
GF_ASSERT(*arr == EXT_CTRL_CODE_BEGIN);
return arr[1];
}
BOOL MsgArray_ControlCodeIsStrVar(const u16 * r4)
BOOL MsgArray_ControlCodeIsStrVar(const u16 *arr)
{
return (MsgArray_GetControlCode(r4) & 0xFF00) == 0x100;
return (MsgArray_GetControlCode(arr) & 0xFF00) == 0x100;
}
u32 MsgArray_ControlCodeGetField(const u16 * r5, u32 r4)
u32 MsgArray_ControlCodeGetField(const u16 *arr, u32 fieldno)
{
GF_ASSERT(*r5 == 0xFFFE);
GF_ASSERT(r4 < r5[2]);
return r5[3 + r4];
GF_ASSERT(*arr == EXT_CTRL_CODE_BEGIN);
GF_ASSERT(fieldno < arr[2]);
return arr[3 + fieldno];
}

View File

@ -61,16 +61,11 @@ u16 *CopyU16StringArrayN(u16 *dest, const u16 *src, u32 num)
return dest + num;
}
u32 StringLength(const u16 *s)
u32 StringLength(const u16 *str)
{
u16 c = *s;
u32 len = 0;
while (c != EOS) {
s++;
c = *s;
len++;
}
return len;
int i;
for (i = 0; str[i] != EOS; i++);
return i;
}
BOOL StringNotEqual(const u16 *s1, const u16 *s2)
@ -128,11 +123,11 @@ u16 *ConvertUIntToDecimalString(u16 *dest, u32 value, enum PrintingMode mode, u3
u16 res = (u16)(value / x);
value = value - x * res;
if (mode == PRINTING_MODE_LEADING_ZEROS) {
*dest = res >= 10 ? (u16)NON_DIGIT : gDigitTable[res];
*dest = res >= 10 ? (u16)CHAR_JP_QUESTION_MARK : gDigitTable[res];
dest++;
} else if (res != 0 || x == 1) {
mode = PRINTING_MODE_LEADING_ZEROS;
*dest = res >= 10 ? (u16)NON_DIGIT : gDigitTable[res];
*dest = res >= 10 ? (u16)CHAR_JP_QUESTION_MARK : gDigitTable[res];
dest++;
} else if (mode == PRINTING_MODE_RIGHT_ALIGN) {
*dest = 1;

View File

@ -13,7 +13,7 @@ void FUN_02054590(enum GFPalLoadLocation location, u32 param1)
ResetAllTextPrinters();
}
LoadFontPal0(location, GF_PAL_SLOT_OFFSET_13, 4);
FUN_02002EEC(location, GF_PAL_SLOT_OFFSET_12, 4);
LoadFontPal1(location, GF_PAL_SLOT_OFFSET_12, 4);
}
void FUN_020545B8(struct BgConfig *param0, struct Window *param1, u32 param2)

View File

@ -188,7 +188,7 @@ u32 GetStringWidth(struct FontData * ptr, const u16 * str, u32 letterSpacing)
while (*str != EOS)
{
if (*str == 0xFFFE)
if (*str == EXT_CTRL_CODE_BEGIN)
{
str = MsgArray_SkipControlCode(str);
if (*str == EOS)
@ -215,13 +215,13 @@ s32 GetStringWidthMultiline(struct FontData * r7, const u16 * arr, u32 r6)
{
s32 ret = 0;
u32 r4 = 0;
while (*arr != 0xFFFF)
while (*arr != EOS)
{
if (*arr == 0xFFFE)
if (*arr == EXT_CTRL_CODE_BEGIN)
{
arr = MsgArray_SkipControlCode(arr);
}
else if (*arr == 0xE000) // newline
else if (*arr == CHAR_LF)
{
if (ret < r4 - r6)
ret = (int)(r4 - r6);
@ -242,9 +242,9 @@ s32 GetStringWidthMultiline(struct FontData * r7, const u16 * arr, u32 r6)
s32 StringGetWidth_SingleLine_HandleClearToControlCode(struct FontData * r6, const u16 * arr)
{
s32 ret = 0;
while (*arr != 0xFFFF)
while (*arr != EOS)
{
if (*arr == 0xFFFE)
if (*arr == EXT_CTRL_CODE_BEGIN)
{
if (MsgArray_GetControlCode(arr) == 515)
{

View File

@ -180,7 +180,7 @@ int StringCountLines(volatile struct String * str)
int i, nline;
for (i = 0, nline = 1; i < str->size; i++)
{
if (str->data[i] == 0xE000)
if (str->data[i] == CHAR_LF)
nline++;
}
return nline;
@ -196,7 +196,7 @@ void StringGetLineN(struct String * dest, volatile struct String * src, u32 n)
{
for (i = 0; i < src->size; i++)
{
if (src->data[i] == 0xE000 && --n == 0)
if (src->data[i] == CHAR_LF && --n == 0)
{
i++;
break;
@ -207,7 +207,7 @@ void StringGetLineN(struct String * dest, volatile struct String * src, u32 n)
for (; i < src->size; i++)
{
u16 c = src->data[i];
if (c == 0xE000)
if (c == CHAR_LF)
break;
StrAddChar(dest, c);
}

View File

@ -0,0 +1,271 @@
#ifndef POKEDIAMOND_CONSTANTS_CHARCODE_H
#define POKEDIAMOND_CONSTANTS_CHARCODE_H
#define CHAR_NUL 0
#define CHAR_JP_SPACE 1
#define CHAR_JP_HIRA_A_SMALL 2
#define CHAR_JP_HIRA_A 3
#define CHAR_JP_HIRA_I_SMALL 4
#define CHAR_JP_HIRA_I 5
#define CHAR_JP_HIRA_U_SMALL 6
#define CHAR_JP_HIRA_U 7
#define CHAR_JP_HIRA_E_SMALL 8
#define CHAR_JP_HIRA_E 9
#define CHAR_JP_HIRA_O_SMALL 10
#define CHAR_JP_HIRA_O 11
#define CHAR_JP_HIRA_KA 12
#define CHAR_JP_HIRA_GA 13
#define CHAR_JP_HIRA_KI 14
#define CHAR_JP_HIRA_GI 15
#define CHAR_JP_HIRA_KU 16
#define CHAR_JP_HIRA_GU 17
#define CHAR_JP_HIRA_KE 18
#define CHAR_JP_HIRA_GE 19
#define CHAR_JP_HIRA_KO 20
#define CHAR_JP_HIRA_GO 21
#define CHAR_JP_HIRA_SA 22
#define CHAR_JP_HIRA_ZA 23
#define CHAR_JP_HIRA_SI 24
#define CHAR_JP_HIRA_ZI 25
#define CHAR_JP_HIRA_SU 26
#define CHAR_JP_HIRA_ZU 27
#define CHAR_JP_HIRA_SE 28
#define CHAR_JP_HIRA_ZE 29
#define CHAR_JP_HIRA_SO 30
#define CHAR_JP_HIRA_ZO 31
#define CHAR_JP_HIRA_TA 32
#define CHAR_JP_HIRA_DA 33
#define CHAR_JP_HIRA_TI 34
#define CHAR_JP_HIRA_DI 35
#define CHAR_JP_HIRA_TU_SMALL 36
#define CHAR_JP_HIRA_TU 37
#define CHAR_JP_HIRA_DU 38
#define CHAR_JP_HIRA_TE 39
#define CHAR_JP_HIRA_DE 40
#define CHAR_JP_HIRA_TO 41
#define CHAR_JP_HIRA_DO 42
#define CHAR_JP_HIRA_NA 43
#define CHAR_JP_HIRA_NI 44
#define CHAR_JP_HIRA_NU 45
#define CHAR_JP_HIRA_NE 46
#define CHAR_JP_HIRA_NO 47
#define CHAR_JP_HIRA_HA 48
#define CHAR_JP_HIRA_BA 49
#define CHAR_JP_HIRA_PA 50
#define CHAR_JP_HIRA_HI 51
#define CHAR_JP_HIRA_BI 52
#define CHAR_JP_HIRA_PI 53
#define CHAR_JP_HIRA_HU 54
#define CHAR_JP_HIRA_BU 55
#define CHAR_JP_HIRA_PU 56
#define CHAR_JP_HIRA_HE 57
#define CHAR_JP_HIRA_BE 58
#define CHAR_JP_HIRA_PE 59
#define CHAR_JP_HIRA_HO 60
#define CHAR_JP_HIRA_BO 61
#define CHAR_JP_HIRA_PO 62
#define CHAR_JP_HIRA_MA 63
#define CHAR_JP_HIRA_MI 64
#define CHAR_JP_HIRA_MU 65
#define CHAR_JP_HIRA_ME 66
#define CHAR_JP_HIRA_MO 67
#define CHAR_JP_HIRA_YA_SMALL 68
#define CHAR_JP_HIRA_YA 69
#define CHAR_JP_HIRA_YU_SMALL 70
#define CHAR_JP_HIRA_YU 71
#define CHAR_JP_HIRA_YO_SMALL 72
#define CHAR_JP_HIRA_YO 73
#define CHAR_JP_HIRA_RA 74
#define CHAR_JP_HIRA_RI 75
#define CHAR_JP_HIRA_RU 76
#define CHAR_JP_HIRA_RE 77
#define CHAR_JP_HIRA_RO 78
#define CHAR_JP_HIRA_WA 79
#define CHAR_JP_HIRA_WO 80
#define CHAR_JP_HIRA_N_ 81
#define CHAR_JP_KATA_A_SMALL 82
#define CHAR_JP_KATA_A 83
#define CHAR_JP_KATA_I_SMALL 84
#define CHAR_JP_KATA_I 85
#define CHAR_JP_KATA_U_SMALL 86
#define CHAR_JP_KATA_U 87
#define CHAR_JP_KATA_E_SMALL 88
#define CHAR_JP_KATA_E 89
#define CHAR_JP_KATA_O_SMALL 90
#define CHAR_JP_KATA_O 91
#define CHAR_JP_KATA_KA 92
#define CHAR_JP_KATA_GA 93
#define CHAR_JP_KATA_KI 94
#define CHAR_JP_KATA_GI 95
#define CHAR_JP_KATA_KU 96
#define CHAR_JP_KATA_GU 97
#define CHAR_JP_KATA_KE 98
#define CHAR_JP_KATA_GE 99
#define CHAR_JP_KATA_KO 100
#define CHAR_JP_KATA_GO 101
#define CHAR_JP_KATA_SA 102
#define CHAR_JP_KATA_ZA 103
#define CHAR_JP_KATA_SI 104
#define CHAR_JP_KATA_ZI 105
#define CHAR_JP_KATA_SU 106
#define CHAR_JP_KATA_ZU 107
#define CHAR_JP_KATA_SE 108
#define CHAR_JP_KATA_ZE 109
#define CHAR_JP_KATA_SO 110
#define CHAR_JP_KATA_ZO 111
#define CHAR_JP_KATA_TA 112
#define CHAR_JP_KATA_DA 113
#define CHAR_JP_KATA_TI 114
#define CHAR_JP_KATA_DI 115
#define CHAR_JP_KATA_TU_SMALL 116
#define CHAR_JP_KATA_TU 117
#define CHAR_JP_KATA_DU 118
#define CHAR_JP_KATA_TE 119
#define CHAR_JP_KATA_DE 120
#define CHAR_JP_KATA_TO 121
#define CHAR_JP_KATA_DO 122
#define CHAR_JP_KATA_NA 123
#define CHAR_JP_KATA_NI 124
#define CHAR_JP_KATA_NU 125
#define CHAR_JP_KATA_NE 126
#define CHAR_JP_KATA_NO 127
#define CHAR_JP_KATA_HA 128
#define CHAR_JP_KATA_BA 129
#define CHAR_JP_KATA_PA 130
#define CHAR_JP_KATA_HI 131
#define CHAR_JP_KATA_BI 132
#define CHAR_JP_KATA_PI 133
#define CHAR_JP_KATA_HU 134
#define CHAR_JP_KATA_BU 135
#define CHAR_JP_KATA_PU 136
#define CHAR_JP_KATA_HE 137
#define CHAR_JP_KATA_BE 138
#define CHAR_JP_KATA_PE 139
#define CHAR_JP_KATA_HO 140
#define CHAR_JP_KATA_BO 141
#define CHAR_JP_KATA_PO 142
#define CHAR_JP_KATA_MA 143
#define CHAR_JP_KATA_MI 144
#define CHAR_JP_KATA_MU 145
#define CHAR_JP_KATA_ME 146
#define CHAR_JP_KATA_MO 147
#define CHAR_JP_KATA_YA_SMALL 148
#define CHAR_JP_KATA_YA 149
#define CHAR_JP_KATA_YU_SMALL 150
#define CHAR_JP_KATA_YU 151
#define CHAR_JP_KATA_YO_SMALL 152
#define CHAR_JP_KATA_YO 153
#define CHAR_JP_KATA_RA 154
#define CHAR_JP_KATA_RI 155
#define CHAR_JP_KATA_RU 156
#define CHAR_JP_KATA_RE 157
#define CHAR_JP_KATA_RO 158
#define CHAR_JP_KATA_WA 159
#define CHAR_JP_KATA_WO 160
#define CHAR_JP_KATA_N_ 161
#define CHAR_JP_0 162
#define CHAR_JP_1 163
#define CHAR_JP_2 164
#define CHAR_JP_3 165
#define CHAR_JP_4 166
#define CHAR_JP_5 167
#define CHAR_JP_6 168
#define CHAR_JP_7 169
#define CHAR_JP_8 170
#define CHAR_JP_9 171
#define CHAR_JP_A 172
#define CHAR_JP_B 173
#define CHAR_JP_C 174
#define CHAR_JP_D 175
#define CHAR_JP_E 176
#define CHAR_JP_F 177
#define CHAR_JP_QUESTION_MARK 226
#define CHAR_JP_HYPHEN 241
#define CHAR_0 289
#define CHAR_1 290
#define CHAR_2 291
#define CHAR_3 292
#define CHAR_4 293
#define CHAR_5 294
#define CHAR_6 295
#define CHAR_7 296
#define CHAR_8 297
#define CHAR_9 298
#define CHAR_A 299
#define CHAR_B 300
#define CHAR_C 301
#define CHAR_D 302
#define CHAR_E 303
#define CHAR_F 304
#define CHAR_G 305
#define CHAR_H 306
#define CHAR_I 307
#define CHAR_J 308
#define CHAR_K 309
#define CHAR_L 310
#define CHAR_M 311
#define CHAR_N 312
#define CHAR_O 313
#define CHAR_P 314
#define CHAR_Q 315
#define CHAR_R 316
#define CHAR_S 317
#define CHAR_T 318
#define CHAR_U 319
#define CHAR_V 320
#define CHAR_W 321
#define CHAR_X 322
#define CHAR_Y 323
#define CHAR_Z 324
#define CHAR_a 325
#define CHAR_b 326
#define CHAR_c 327
#define CHAR_d 328
#define CHAR_e 329
#define CHAR_f 330
#define CHAR_g 331
#define CHAR_h 332
#define CHAR_i 333
#define CHAR_j 334
#define CHAR_k 335
#define CHAR_l 336
#define CHAR_m 337
#define CHAR_n 338
#define CHAR_o 339
#define CHAR_p 340
#define CHAR_q 341
#define CHAR_r 342
#define CHAR_s 343
#define CHAR_t 344
#define CHAR_u 345
#define CHAR_v 346
#define CHAR_w 347
#define CHAR_x 348
#define CHAR_y 349
#define CHAR_z 350
#define CHAR_ELLIPSIS 431
#define CHAR_HYPHEN 446
#define CHAR_SPACE 478
#define CHAR_NARROW_SPACE 482
#define CHAR_ONE_DOT 491
#define CHAR_TWO_DOTS 492
#define CHAR_LF 0xE000
#define TRNAMECODE 0xF100
#define EXT_CTRL_CODE_BEGIN 0xFFFE
#define EOS 0xFFFF // _EOM
#define TRNAME_MASK 0x1FF
#define EOS_TRNAME 0x1FF
#endif //POKEDIAMOND_CONSTANTS_CHARCODE_H

View File

@ -1,6 +1,8 @@
#ifndef POKEDIAMOND_CONSTANTS_GLOBAL_H
#define POKEDIAMOND_CONSTANTS_GLOBAL_H
#include "constants/charcode.h"
#define POKEMON_NAME_LENGTH 10
#define PLAYER_NAME_LENGTH 7

View File

@ -39,8 +39,8 @@ u32 FontFunc(u32 fontId, struct TextPrinter *printer);
u32 FUN_02002DE0(u32 param0, u16 *str, u32 param2);
u32 FUN_02002E14(u32 param0, struct String *str, u32 param2);
s32 GetFontAttribute(u8 fontId, s32 attr);
void LoadFontPal0(enum GFPalLoadLocation location, enum GFPalSlotOffset palSlotOffset, u32 heap_id);
void FUN_02002EEC(enum GFPalLoadLocation location, enum GFPalSlotOffset palSlotOffset, u32 heap_id);
void LoadFontPal0(enum GFPalLoadLocation location, enum GFPalSlotOffset palSlotOffset, u32 heapId);
void LoadFontPal1(enum GFPalLoadLocation location, enum GFPalSlotOffset palSlotOffset, u32 heapId);
s32 FUN_02002F08(u32 param0, struct String *str, u32 param2);
u32 FUN_02002F40(u32 param0, struct String *str, u32 param2, u32 param3);
u32 FUN_02002F58(const u16 *str);

View File

@ -1,9 +1,9 @@
#ifndef POKEDIAMOND_STRING_CONTROL_CODE_H
#define POKEDIAMOND_STRING_CONTROL_CODE_H
const u16 * MsgArray_SkipControlCode(const u16 * r4);
u32 MsgArray_GetControlCode(const u16 * r4);
BOOL MsgArray_ControlCodeIsStrVar(const u16 * r4);
u32 MsgArray_ControlCodeGetField(const u16 * r5, u32 r4);
const u16 * MsgArray_SkipControlCode(const u16 *arr);
u32 MsgArray_GetControlCode(const u16 *arr);
BOOL MsgArray_ControlCodeIsStrVar(const u16 *arr);
u32 MsgArray_ControlCodeGetField(const u16 *arr, u32 fieldno);
#endif //POKEDIAMOND_STRING_CONTROL_CODE_H

View File

@ -7,11 +7,6 @@
#include "global.h"
//todo: move to charcode.h
#define EOS 0xFFFF
#define NON_DIGIT 0xE2
#define EXT_CTRL_CODE_BEGIN 0xFFFE
enum PrintingMode {
PRINTING_MODE_LEFT_ALIGN,
PRINTING_MODE_RIGHT_ALIGN,
@ -20,7 +15,7 @@ enum PrintingMode {
void CopyU16StringArray(u16 *dest, const u16 *src);
u16 *CopyU16StringArrayN(u16 *dest, const u16 *src, u32 num);
u32 StringLength(const u16 *s);
u32 StringLength(const u16 *str);
BOOL StringNotEqual(const u16 *s1, const u16 *s2);
BOOL StringNotEqualN(const u16 *s1, const u16 *s2, u32 num);
u16 *StringFill(u16 *dest, u16 value, u32 num);

View File

@ -4,18 +4,6 @@
#include "global.h"
#include "bg_window.h"
#define CHAR_0 0x00A2
#define CHAR_1 0x00A3
#define CHAR_2 0x00A4
#define CHAR_3 0x00A5
#define CHAR_4 0x00A6
#define CHAR_5 0x00A7
#define CHAR_6 0x00A8
#define CHAR_7 0x00A9
#define CHAR_8 0x00AA
#define CHAR_9 0x00AB
union StrbufForPrint
{
struct String * wrapped;