mirror of
https://github.com/pret/pokediamond.git
synced 2026-04-25 15:42:51 -05:00
Increase parity with heartgold in string functions
This commit is contained in:
parent
2b7065bb33
commit
66b4d3dfc2
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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++;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
271
include/constants/charcode.h
Normal file
271
include/constants/charcode.h
Normal 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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user