diff options
Diffstat (limited to 'include/easy_chat.h')
-rw-r--r-- | include/easy_chat.h | 125 |
1 files changed, 122 insertions, 3 deletions
diff --git a/include/easy_chat.h b/include/easy_chat.h index 23fd9ed83..b7685e48c 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -2,18 +2,137 @@ #define GUARD_EASYCHAT_H #include "main.h" +#include "constants/easy_chat.h" + +struct EasyChatScreenTemplate +{ + u8 unk_00; + u8 numColumns; + u8 numRows; + u8 unk_03_0:7; + u8 unk_03_7:1; + const u8 *titleText; + const u8 *instructionsText1; + const u8 *instructionsText2; + const u8 *confirmText1; + const u8 *confirmText2; +}; + +struct EasyChatScreen +{ + /*0x00*/ u8 kind; + /*0x01*/ u8 templateId; + /*0x02*/ u8 numColumns; + /*0x03*/ u8 numRows; + /*0x04*/ u8 state; + /*0x05*/ s8 mainCursorColumn; + /*0x06*/ s8 mainCursorRow; + /*0x07*/ u8 unk_07; + /*0x08*/ u8 unk_08; + /*0x09*/ u8 unk_09; + /*0x0A*/ s8 unk_0a; + /*0x0B*/ s8 unk_0b; + /*0x0C*/ u8 unk_0c; + /*0x0D*/ u8 unk_0d; + /*0x0E*/ u8 unk_0e; + /*0x0F*/ u8 unk_0f; + /*0x10*/ s8 unk_10; + /*0x11*/ s8 unk_11; + /*0x12*/ u8 sizeParam; + /*0x13*/ u8 unk_13; + /*0x14*/ u8 unk_14[0x20]; + /*0x34*/ const u8 *titleText; + /*0x38*/ u16 *words; + /*0x3C*/ u16 ecWordBuffer[9]; +}; + +struct Unk203A11C +{ + u16 unk0; + u16 windowId; + u16 unk4; + u8 unk6; + u8 unk7; + s8 unk8; + u8 unk9; + u8 unkA; + u8 unkB[0xC1]; + u8 unkCC[0x202]; + u16 unk2CE; + int unk2D0; + int unk2D4; + struct Sprite *unk2D8; + struct Sprite *unk2DC; + struct Sprite *unk2E0; + struct Sprite *unk2E4; + struct Sprite *unk2E8; + struct Sprite *unk2EC; + struct Sprite *unk2F0; + struct Sprite *unk2F4; + struct Sprite *unk2F8; + struct Sprite *unk2FC; + u16 unk300[BG_SCREEN_SIZE / 2]; + u16 unkB00[BG_SCREEN_SIZE / 2]; +}; + +struct Unk08597C30 +{ + u8 unk0_0:5; + u8 unk0_5:3; + u8 unk1; + u8 unk2; + u8 unk3; +}; + +struct EasyChatWordInfo +{ + const u8 *text; + int alphabeticalOrder; + int enabled; +}; + +typedef union +{ + const u16 *valueList; + const struct EasyChatWordInfo *words; +} EasyChatGroupWordData; + +struct EasyChatGroup +{ + EasyChatGroupWordData wordData; + u16 numWords; + u16 numEnabledWords; +}; + +struct Unk203A120 +{ + u16 unk0; + u16 unk2[EC_NUM_GROUPS]; + u16 unk2E[27]; + u16 unk64[27][270]; + u8 filler3958[0x2C]; + u16 unk3984[0x10E]; + u16 unk3BA0; +}; /*size = 0x3BA4*/ + +struct EasyChatWordsByLetter +{ + const u16 *words; + int numWords; +}; void InitEasyChatPhrases(void); void easy_chat_input_maybe(void); u8 * CopyEasyChatWord(u8 *dest, u16 word); -bool32 sub_811F8D8(u16 word); +bool32 sub_811F8D8(int word); void InitializeEasyChatWordArray(u16 *words, u16 length); -void ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2); +u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows); bool8 ECWord_CheckIfOutsideOfValidRange(u16 word); u16 sub_811EE38(u16 group); u16 sub_811F01C(void); -bool16 EasyChat_GetNumWordsInGroup(u8); +u16 EasyChat_GetNumWordsInGroup(u8); u16 sub_811EE90(u16); void sub_811A20C(u8 kind, u16 *words, MainCallback callback, u8 sizeParam); +void sub_811F8BC(void); #endif // GUARD_EASYCHAT_H |