2017-01-14 19:53:20 +00:00
|
|
|
#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
|
|
|
|
|
2017-03-07 13:44:41 +00:00
|
|
|
#define NUM_TEXT_PRINTERS 32
|
|
|
|
|
|
|
|
struct TextWindow {
|
|
|
|
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;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct TextPrinter
|
|
|
|
{
|
|
|
|
struct TextWindow window;
|
|
|
|
|
2017-03-08 20:44:44 +00:00
|
|
|
void (*callback)(struct TextWindow *, u16); // 0x10
|
2017-03-07 13:44:41 +00:00
|
|
|
|
|
|
|
union {
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
u8 field_0; // 0x14
|
|
|
|
u8 field_1;
|
|
|
|
u8 field_2;
|
|
|
|
u8 field_3;
|
|
|
|
u8 field_4; // 0x18
|
|
|
|
u8 field_5;
|
|
|
|
u8 field_6;
|
2017-03-08 20:44:44 +00:00
|
|
|
u8 active;
|
2017-03-07 13:44:41 +00:00
|
|
|
} 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;
|
|
|
|
};
|
|
|
|
|
2017-01-14 19:53:20 +00:00
|
|
|
#endif // GUARD_TEXT_H
|