mirror of https://github.com/pret/pokeemerald.git
113 lines
2.3 KiB
C
113 lines
2.3 KiB
C
#ifndef GUARD_TEXT_H
|
|
#define GUARD_TEXT_H
|
|
|
|
#define CHAR_SPACE 0x00
|
|
#define CHAR_QUESTION_MARK 0xAC
|
|
#define CHAR_HYPHEN 0xAE
|
|
#define CHAR_CURRENCY 0xB7
|
|
#define CHAR_COLON 0xF0
|
|
#define EXT_CTRL_CODE_BEGIN 0xFC // extended control code
|
|
#define PLACEHOLDER_BEGIN 0xFD // string placeholder
|
|
#define CHAR_NEWLINE 0xFE
|
|
#define EOS 0xFF // end of string
|
|
|
|
#define NUM_TEXT_PRINTERS 32
|
|
#define NUM_WINDOWS 20
|
|
|
|
struct Window
|
|
{
|
|
u8 priority;
|
|
u8 tilemapLeft;
|
|
u8 tilemapTop;
|
|
u8 width;
|
|
u8 height;
|
|
u8 paletteNum;
|
|
u16 baseBlock;
|
|
u8 *tileData;
|
|
};
|
|
|
|
struct TextPrinter
|
|
{
|
|
struct TextSubPrinter { // TODO: Better name
|
|
u8* current_text_offset;
|
|
u8 windowId;
|
|
u8 fontId;
|
|
u8 x;
|
|
u8 y;
|
|
u8 currentX; // 0x8
|
|
u8 currentY;
|
|
u8 letterSpacing;
|
|
u8 lineSpacing;
|
|
u8 fontColor_l:4; // 0xC
|
|
u8 fontColor_h:4;
|
|
u8 bgColor:4;
|
|
u8 shadowColor:4;
|
|
} subPrinter;
|
|
|
|
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;
|
|
|
|
u8 sub_fields[8];
|
|
} sub_union;
|
|
|
|
u8 state; // 0x1C
|
|
u8 text_speed;
|
|
u8 delayCounter;
|
|
u8 scrollDistance;
|
|
u8 minLetterSpacing; // 0x20
|
|
u8 japanese;
|
|
};
|
|
|
|
struct FontInfo
|
|
{
|
|
u16 (*fontFunction)(struct TextPrinter *x);
|
|
u8 maxLetterWidth;
|
|
u8 maxLetterHeight;
|
|
u8 letterSpacing;
|
|
u8 lineSpacing;
|
|
u8 fontColor_l:4;
|
|
u8 fontColor_h:4;
|
|
u8 bgColor:4;
|
|
u8 shadowColor:4;
|
|
};
|
|
|
|
struct Bitmap // TODO: Find a better spot for this
|
|
{
|
|
u8* pixels;
|
|
u32 width:16;
|
|
u32 height:16;
|
|
};
|
|
|
|
struct GlyphWidthFunc{
|
|
u32 font_id;
|
|
u32 (*func)(u16 glyphId, bool32 isJapanese);
|
|
};
|
|
|
|
struct KeypadIcon {
|
|
u16 tile_offset;
|
|
u8 width;
|
|
u8 height;
|
|
};
|
|
|
|
extern u8 gStringVar1[];
|
|
extern u8 gStringVar2[];
|
|
extern u8 gStringVar3[];
|
|
extern u8 gStringVar4[];
|
|
|
|
#endif // GUARD_TEXT_H
|