Font6Func

This commit is contained in:
PikalaxALT
2017-09-21 23:43:13 -04:00
parent ed9e0e2054
commit 15212c4f8d
5 changed files with 241 additions and 547 deletions

View File

@@ -78,6 +78,22 @@
#define NUM_TEXT_PRINTERS 32
struct TextPrinterSubStruct
{
u8 font_type:4; // 0x14
u8 font_type_upper:1;
u8 font_type_5:3;
u8 field_1:5;
u8 field_1_upmid:2;
u8 field_1_top:1;
u8 frames_visible_counter;
u8 field_3;
u8 field_4; // 0x18
u8 field_5;
u8 field_6;
u8 active;
};
struct TextPrinter
{
struct TextSubPrinter { // TODO: Better name
@@ -99,20 +115,7 @@ struct TextPrinter
void (*callback)(struct TextSubPrinter *, u16); // 0x10
union {
struct TextPrinterSubStruct
{
u8 font_type:4; // 0x14
u8 font_type_upper:4;
u8 field_1:5;
u8 field_1_upmid:2;
u8 field_1_top:1;
u8 frames_visible_counter;
u8 field_3;
u8 field_4; // 0x18
u8 field_5;
u8 field_6;
u8 active;
} sub;
struct TextPrinterSubStruct sub;
u8 sub_fields[8];
} sub_union;
@@ -138,6 +141,8 @@ struct FontInfo
u8 shadowColor:4;
};
extern const struct FontInfo *gFonts;
struct GlyphWidthFunc{
u32 font_id;
u32 (*func)(u16 glyphId, bool32 isJapanese);
@@ -149,11 +154,26 @@ struct KeypadIcon {
u8 height;
};
typedef struct {
u8 flag_0:1;
u8 flag_1:1;
u8 flag_2:1;
} TextFlags;
extern TextFlags gTextFlags;
extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
extern u8 gStringVar4[];
u8 gUnknown_03002F84;
u8 gUnknown_03002F90[0x20];
u8 gUnknown_03002FB0[0x20];
u8 gUnknown_03002FD0[0x20];
u8 gUnknown_03002FF0[0x20];
u8 gGlyphDimensions[0x2];
void SetFontsPointer(const struct FontInfo *fonts);
void DeactivateAllTextPrinters (void);
u16 PrintTextOnWindow(u8 windowId, u8 fontId, u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16));
@@ -182,8 +202,8 @@ void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter);
void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter);
void TextPrinterClearDownArrow(struct TextPrinter *textPrinter);
bool8 TextPrinterWaitAutoMode(struct TextPrinter *textPrinter);
bool8 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter);
bool8 TextPrinterWait(struct TextPrinter *textPrinter);
bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter);
bool16 TextPrinterWait(struct TextPrinter *textPrinter);
void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *counter, u8 *yCoordIndex);
u16 RenderText(struct TextPrinter *textPrinter);
u32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing);