From 5913bcf0e93f4741ce5b84bdd4a52d781fb7d6fb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 1 Nov 2019 09:55:25 -0400 Subject: Port pokemon_size_record from Emerald --- include/pokemon_size_record.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/pokemon_size_record.h b/include/pokemon_size_record.h index d62ced51d..8324f44bf 100644 --- a/include/pokemon_size_record.h +++ b/include/pokemon_size_record.h @@ -11,8 +11,8 @@ void InitLotadSizeRecord(void); void GetLotadSizeRecordInfo(void); void CompareLotadSize(void); -void sub_80A0904(void); -void sub_80A0958(void); +void InitHeracrossSizeRecord(void); +void InitMagikarpSizeRecord(void); void GiveGiftRibbonToParty(u8 index, u8 ribbonId); -- cgit v1.2.3 From a8c2fecbd5427ad504d5b9be543edf549e792508 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 1 Nov 2019 13:36:16 -0400 Subject: Redump easy chat to C --- include/constants/easy_chat.h | 6 ++---- include/easy_chat.h | 26 ++++++++++++++++++++++++++ include/strings.h | 23 +++++++++++++++++++++++ 3 files changed, 51 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h index 2c437c88e..5d6536490 100644 --- a/include/constants/easy_chat.h +++ b/include/constants/easy_chat.h @@ -1,7 +1,7 @@ #ifndef GUARD_CONSTANTS_EASY_CHAT_H #define GUARD_CONSTANTS_EASY_CHAT_H -#define EC_GROUP_POKEMON 0x0 +#define EC_GROUP_POKEMON_2 0x0 #define EC_GROUP_TRAINER 0x1 #define EC_GROUP_STATUS 0x2 #define EC_GROUP_BATTLE 0x3 @@ -22,7 +22,7 @@ #define EC_GROUP_MOVE_1 0x12 #define EC_GROUP_MOVE_2 0x13 #define EC_GROUP_TRENDY_SAYING 0x14 -#define EC_GROUP_POKEMON_2 0x15 +#define EC_GROUP_POKEMON 0x15 // TRAINER #define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0 @@ -51,7 +51,6 @@ #define EC_WORD_GOLD (EC_GROUP_TRAINER << 9) | 0x17 #define EC_WORD_LEAF (EC_GROUP_TRAINER << 9) | 0x18 #define EC_WORD_SILVER (EC_GROUP_TRAINER << 9) | 0x19 -#define EC_WORD_EMERALD (EC_GROUP_TRAINER << 9) | 0x1a // STATUS #define EC_WORD_DARK (EC_GROUP_STATUS << 9) | 0x0 @@ -1031,7 +1030,6 @@ #define EC_WORD_UNION (EC_GROUP_EVENTS << 9) | 0x19 #define EC_WORD_ROOM (EC_GROUP_EVENTS << 9) | 0x1a #define EC_WORD_WIRELESS (EC_GROUP_EVENTS << 9) | 0x1b -#define EC_WORD_FRONTIER (EC_GROUP_EVENTS << 9) | 0x1c // TRENDY_SAYING #define EC_WORD_KTHX_BYE (EC_GROUP_TRENDY_SAYING << 9) | 0x0 diff --git a/include/easy_chat.h b/include/easy_chat.h index a487c9456..f1031bd7b 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -30,6 +30,32 @@ enum EC_GROUP_POKEMON_2, }; +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 EasyChatWordsByLetter +{ + const u16 *words; + int numWords; +}; + void InitEasyChatPhrases(void); void easy_chat_input_maybe(void); void CopyEasyChatWord(u8 *dest, u16 word); diff --git a/include/strings.h b/include/strings.h index 7231755c5..86a26f332 100644 --- a/include/strings.h +++ b/include/strings.h @@ -686,4 +686,27 @@ extern const u8 gUnknown_84170E0[]; extern const u8 gUnknown_84170FC[]; extern const u8 gUnknown_841E09F[]; +extern const u8 gEasyChatGroupName_Pokemon[]; +extern const u8 gEasyChatGroupName_Trainer[]; +extern const u8 gEasyChatGroupName_Status[]; +extern const u8 gEasyChatGroupName_Battle[]; +extern const u8 gEasyChatGroupName_Greetings[]; +extern const u8 gEasyChatGroupName_People[]; +extern const u8 gEasyChatGroupName_Voices[]; +extern const u8 gEasyChatGroupName_Speech[]; +extern const u8 gEasyChatGroupName_Endings[]; +extern const u8 gEasyChatGroupName_Feelings[]; +extern const u8 gEasyChatGroupName_Conditions[]; +extern const u8 gEasyChatGroupName_Actions[]; +extern const u8 gEasyChatGroupName_Lifestyle[]; +extern const u8 gEasyChatGroupName_Hobbies[]; +extern const u8 gEasyChatGroupName_Time[]; +extern const u8 gEasyChatGroupName_Misc[]; +extern const u8 gEasyChatGroupName_Adjectives[]; +extern const u8 gEasyChatGroupName_Events[]; +extern const u8 gEasyChatGroupName_Move1[]; +extern const u8 gEasyChatGroupName_Move2[]; +extern const u8 gEasyChatGroupName_TrendySaying[]; +extern const u8 gEasyChatGroupName_Pokemon2[]; + #endif //GUARD_STRINGS_H -- cgit v1.2.3 From 6a90a57318aa20fb83797bbf99eafcda062b34f8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 1 Nov 2019 13:51:30 -0400 Subject: Disassemble bike data --- include/easy_chat.h | 27 --------------------------- 1 file changed, 27 deletions(-) (limited to 'include') diff --git a/include/easy_chat.h b/include/easy_chat.h index f1031bd7b..b64916123 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -3,33 +3,6 @@ #include "global.h" -// Taken from Pokeruby, check if it's correct -enum -{ - EC_GROUP_POKEMON, - EC_GROUP_TRAINER, - EC_GROUP_STATUS, - EC_GROUP_BATTLE, - EC_GROUP_GREETINGS, - EC_GROUP_PEOPLE, - EC_GROUP_VOICES, - EC_GROUP_SPEECH, - EC_GROUP_ENDINGS, - EC_GROUP_FEELINGS, - EC_GROUP_CONDITIONS, - EC_GROUP_ACTIONS, - EC_GROUP_LIFESTYLE, - EC_GROUP_HOBBIES, - EC_GROUP_TIME, - EC_GROUP_MISC, - EC_GROUP_ADJECTIVES, - EC_GROUP_EVENTS, - EC_GROUP_MOVE_1, - EC_GROUP_MOVE_2, - EC_GROUP_TRENDY_SAYING, - EC_GROUP_POKEMON_2, -}; - struct EasyChatWordInfo { const u8 *text; -- cgit v1.2.3 From 36bea47ea6d2a76a0add9eaf7f5f817eea9c49e5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 1 Nov 2019 15:59:24 -0400 Subject: Static symbols in easy_chat --- include/constants/easy_chat.h | 2 ++ include/easy_chat.h | 13 +++++++++++-- include/global.h | 8 ++++---- include/mevent.h | 1 + include/strings.h | 1 + 5 files changed, 19 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h index 5d6536490..11a8a1ba7 100644 --- a/include/constants/easy_chat.h +++ b/include/constants/easy_chat.h @@ -23,6 +23,7 @@ #define EC_GROUP_MOVE_2 0x13 #define EC_GROUP_TRENDY_SAYING 0x14 #define EC_GROUP_POKEMON 0x15 +#define EC_NUM_GROUPS 0x16 // TRAINER #define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0 @@ -1073,5 +1074,6 @@ #define EC_GROUP(word) ((word) >> 9) #define EC_INDEX(word) ((word) & 0x1FF) +#define EC_WORD(groupId, index) ((((groupId) & 0x7F) << 9) | ((index) & 0x1FF)) #endif // GUARD_CONSTANTS_EASY_CHAT_H diff --git a/include/easy_chat.h b/include/easy_chat.h index b64916123..3aee386ad 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -2,6 +2,7 @@ #define GUARD_EASYCHAT_H #include "global.h" +#include "constants/easy_chat.h" struct EasyChatWordInfo { @@ -31,13 +32,21 @@ struct EasyChatWordsByLetter void InitEasyChatPhrases(void); void easy_chat_input_maybe(void); -void CopyEasyChatWord(u8 *dest, u16 word); +u8 *CopyEasyChatWord(u8 *dest, u16 word); bool32 sub_811F8D8(u16 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 length1, u16 length2); bool8 ECWord_CheckIfOutsideOfValidRange(u16 word); void sub_80BDE28(void); void InitEasyChatPhrases(void); void EnableRareWord(u8); +bool8 sub_80BDE44(void); +void sub_80BDE70(void); +u8 sub_80BDF44(u8); +void sub_80BE16C(int, u16); +u16 sub_80BE1D4(void); +u16 sub_80BE19C(u16); +const u8 *GetEasyChatWordGroupName(u8); +u8 *CopyEasyChatWordPadded(u8 *, u16, u16); #endif // GUARD_EASYCHAT_H diff --git a/include/global.h b/include/global.h index 9588deae3..22faa7b1c 100644 --- a/include/global.h +++ b/include/global.h @@ -754,10 +754,10 @@ struct SaveBlock1 /*0x1000*/ u16 vars[VARS_COUNT]; /*0x1200*/ u32 gameStats[NUM_GAME_STATS]; /*0x1300*/ struct QuestLog questLog[4]; - /*0x2CA0*/ u16 unk2CA0[6]; - /*0x2CAC*/ u16 unk2CAC[6]; - /*0x2CB8*/ u16 unk2CB8[6]; - /*0x2CC4*/ u16 unk2CC4[6]; + /*0x2CA0*/ u16 easyChatProfile[6]; + /*0x2CAC*/ u16 easyChatBattleStart[6]; + /*0x2CB8*/ u16 easyChatBattleWon[6]; + /*0x2CC4*/ u16 easyChatBattleLost[6]; /*0x2CD0*/ struct MailStruct mail[MAIL_COUNT]; /*0x2F10*/ u8 additionalPhrases[EASY_CHAT_EXTRA_PHRASES_SIZE]; /*0x2F18*/ OldMan oldMan; // unused diff --git a/include/mevent.h b/include/mevent.h index 6b67aa27c..31ab9e421 100644 --- a/include/mevent.h +++ b/include/mevent.h @@ -69,5 +69,6 @@ u32 MENews_GetInput(u16 input); void sub_8143D24(void); u16 sub_81445C0(u32 command); void sub_8144714(u32 a0, u32 a1); +u16 *sub_8143DA8(void); #endif //GUARD_MEVENT_H diff --git a/include/strings.h b/include/strings.h index 86a26f332..45f228e19 100644 --- a/include/strings.h +++ b/include/strings.h @@ -708,5 +708,6 @@ extern const u8 gEasyChatGroupName_Move1[]; extern const u8 gEasyChatGroupName_Move2[]; extern const u8 gEasyChatGroupName_TrendySaying[]; extern const u8 gEasyChatGroupName_Pokemon2[]; +extern const u8 gText_ThreeQuestionMarks[]; #endif //GUARD_STRINGS_H -- cgit v1.2.3 From 115fd2aa9b8a57e55666e1ac7cff01fc34b63f4a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 1 Nov 2019 16:13:54 -0400 Subject: Remove nonexistant easy_chat prototypes --- include/easy_chat.h | 4 ---- 1 file changed, 4 deletions(-) (limited to 'include') diff --git a/include/easy_chat.h b/include/easy_chat.h index 3aee386ad..8bd371892 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -31,12 +31,8 @@ struct EasyChatWordsByLetter }; void InitEasyChatPhrases(void); -void easy_chat_input_maybe(void); u8 *CopyEasyChatWord(u8 *dest, u16 word); -bool32 sub_811F8D8(u16 word); -void InitializeEasyChatWordArray(u16 *words, u16 length); u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2); -bool8 ECWord_CheckIfOutsideOfValidRange(u16 word); void sub_80BDE28(void); void InitEasyChatPhrases(void); void EnableRareWord(u8); -- cgit v1.2.3 From 2100eb9d8194683f8814237c16333b76bfb2c0c9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 1 Nov 2019 16:40:31 -0400 Subject: Document easy_chat --- include/constants/easy_chat.h | 2 ++ include/easy_chat.h | 15 ++++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h index 11a8a1ba7..746f10679 100644 --- a/include/constants/easy_chat.h +++ b/include/constants/easy_chat.h @@ -1076,4 +1076,6 @@ #define EC_INDEX(word) ((word) & 0x1FF) #define EC_WORD(groupId, index) ((((groupId) & 0x7F) << 9) | ((index) & 0x1FF)) +#define EC_WORD_UNDEFINED (0xFFFF) + #endif // GUARD_CONSTANTS_EASY_CHAT_H diff --git a/include/easy_chat.h b/include/easy_chat.h index 8bd371892..6c3947ea9 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -33,15 +33,16 @@ struct EasyChatWordsByLetter void InitEasyChatPhrases(void); u8 *CopyEasyChatWord(u8 *dest, u16 word); u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2); -void sub_80BDE28(void); +bool8 EC_DoesEasyChatStringFitOnLine(const u16 *easyChatWords, u8 columns, u8 rows, u16 maxLength); +void ResetSomeMEventECBuffer_3120_338(void); void InitEasyChatPhrases(void); void EnableRareWord(u8); -bool8 sub_80BDE44(void); -void sub_80BDE70(void); -u8 sub_80BDF44(u8); -void sub_80BE16C(int, u16); -u16 sub_80BE1D4(void); -u16 sub_80BE19C(u16); +bool8 InitEasyChatSelection(void); +void DestroyEasyChatSelectionData(void); +u8 GetSelectedGroupByIndex(u8); +void GetUnlockedECWords(bool32 isAlphabetical, u16 groupId); +u16 GetDisplayedWordByIndex(u16 index); +u16 GetNumDisplayedWords(void); const u8 *GetEasyChatWordGroupName(u8); u8 *CopyEasyChatWordPadded(u8 *, u16, u16); -- cgit v1.2.3