diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/easy_chat.c | 214 | ||||
-rw-r--r-- | src/mevent.c | 2 |
2 files changed, 108 insertions, 108 deletions
diff --git a/src/easy_chat.c b/src/easy_chat.c index 76fcdf109..29bc714ac 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -32,26 +32,26 @@ struct Unk203A120 { - u16 unk0; - u16 unk2[EC_NUM_GROUPS]; - u16 unk2E[27]; - u16 unk64[27][270]; + u16 numGroups; + u16 groups[EC_NUM_GROUPS]; + u16 alphabeticalGroups[27]; + u16 alphabeticalWordsByGroup[27][270]; u8 filler3958[0x2C]; - u16 unk3984[0x10E]; - u16 unk3BA0; + u16 allWords[270]; + u16 totalWords; }; /*size = 0x3BA4*/ -static EWRAM_DATA struct Unk203A120 * gUnknown_20399BC = NULL; +static EWRAM_DATA struct Unk203A120 * sEasyChatSelectionData = NULL; -static bool8 sub_80BDCA8(void); +static bool8 EC_IsNationalPokedexEnabled(void); static u16 GetRandomECPokemon(void); -static void sub_80BDE88(void); -static void sub_80BDFF8(void); -static u16 sub_80BE1E8(u16); -static u16 sub_80BE2F8(u16); -static bool8 sub_80BE3A4(u16, u8); -static int sub_80BE418(u16 species); -static u8 sub_80BE440(u16 word); +static void PopulateECGroups(void); +static void PopulateAlphabeticalGroups(void); +static u16 GetUnlockedWordsInECGroup(u16); +static u16 GetUnlockedWordsInAlphabeticalGroup(u16); +static bool8 UnlockedECMonOrMove(u16, u8); +static int EC_IsDeoxys(u16 species); +static u8 IsWordUnlocked(u16 word); #include "data/easy_chat/easy_chat_groups.h" #include "data/easy_chat/easy_chat_words_by_letter.h" @@ -97,11 +97,11 @@ static const u16 sDefaultBattleStartWords[] = { EC_WORD_EXCL, }; -static const u16 gUnknown_83EE004[] = { +static const u16 sDeoxysValue[] = { SPECIES_DEOXYS, }; -static bool8 sub_80BD718(u8 groupId) +static bool8 IsECGroupUnlocked(u8 groupId) { switch (groupId) { @@ -112,7 +112,7 @@ static bool8 sub_80BD718(u8 groupId) case EC_GROUP_MOVE_2: return FlagGet(FLAG_SYS_GAME_CLEAR); case EC_GROUP_POKEMON: - return sub_80BDCA8(); + return EC_IsNationalPokedexEnabled(); default: return TRUE; } @@ -123,20 +123,20 @@ static u16 EasyChat_GetNumWordsInGroup(u8 groupId) if (groupId == EC_GROUP_POKEMON) return GetNationalPokedexCount(FLAG_GET_SEEN); - if (sub_80BD718(groupId)) + if (IsECGroupUnlocked(groupId)) return gEasyChatGroups[groupId].numEnabledWords; return 0; } -static bool8 sub_80BD78C(u16 easyChatWord) +static bool8 IsECWordInvalid(u16 easyChatWord) { u16 i; u8 groupId; u32 index; u16 numWords; const u16 *list; - if (easyChatWord == 0xFFFF) + if (easyChatWord == EC_WORD_UNDEFINED) return FALSE; groupId = EC_GROUP(easyChatWord); @@ -184,11 +184,11 @@ static const u8 *GetEasyChatWord(u8 groupId, u16 index) u8 *CopyEasyChatWord(u8 *dest, u16 easyChatWord) { u8 *resultStr; - if (sub_80BD78C(easyChatWord)) + if (IsECWordInvalid(easyChatWord)) { resultStr = StringCopy(dest, gText_ThreeQuestionMarks); } - else if (easyChatWord != 0xFFFF) + else if (easyChatWord != EC_WORD_UNDEFINED) { u16 index = EC_INDEX(easyChatWord); u8 groupId = EC_GROUP(easyChatWord); @@ -213,7 +213,7 @@ u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows for (j = 0; j < numColumns; j++) { dest = CopyEasyChatWord(dest, *src); - if (*src != 0xFFFF) + if (*src != EC_WORD_UNDEFINED) { *dest = CHAR_SPACE; dest++; @@ -234,10 +234,10 @@ u8 *ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 columns, u16 rows static u16 GetEasyChatWordStringLength(u16 easyChatWord) { - if (easyChatWord == 0xFFFF) + if (easyChatWord == EC_WORD_UNDEFINED) return 0; - if (sub_80BD78C(easyChatWord)) + if (IsECWordInvalid(easyChatWord)) { return StringLength(gText_ThreeQuestionMarks); } @@ -249,24 +249,24 @@ static u16 GetEasyChatWordStringLength(u16 easyChatWord) } } -bool8 sub_80BD974(const u16 *easyChatWords, u8 arg1, u8 arg2, u16 arg3) +bool8 EC_DoesEasyChatStringFitOnLine(const u16 *easyChatWords, u8 columns, u8 rows, u16 maxLength) { u8 i, j; - for (i = 0; i < arg2; i++) + for (i = 0; i < rows; i++) { - u16 totalLength = arg1 - 1; - for (j = 0; j < arg1; j++) + u16 totalLength = columns - 1; + for (j = 0; j < columns; j++) totalLength += GetEasyChatWordStringLength(*(easyChatWords++)); - if (totalLength > arg3) + if (totalLength > maxLength) return TRUE; } return FALSE; } -static u16 sub_80BD9E8(u16 groupId) +static u16 GetRandomWordFromGroup(u16 groupId) { u16 index = Random() % gEasyChatGroups[groupId].numWords; if (groupId == EC_GROUP_POKEMON_2 @@ -280,18 +280,18 @@ static u16 sub_80BD9E8(u16 groupId) return EC_WORD(groupId, index); } -static u16 sub_80BDA40(u16 groupId) +static u16 GetRandomWordFromAnyGroup(u16 groupId) { - if (!sub_80BD718(groupId)) - return 0xFFFF; + if (!IsECGroupUnlocked(groupId)) + return EC_WORD_UNDEFINED; if (groupId == EC_GROUP_POKEMON) return GetRandomECPokemon(); - return sub_80BD9E8(groupId); + return GetRandomWordFromGroup(groupId); } -void sub_80BDA7C(void) +void Special_BufferEasyChatMessage(void) { u16 *easyChatWords; int columns, rows; @@ -304,7 +304,7 @@ void sub_80BDA7C(void) break; case 1: easyChatWords = gSaveBlock1Ptr->easyChatBattleStart; - if (sub_80BD974(gSaveBlock1Ptr->easyChatBattleStart, 3, 2, 18)) + if (EC_DoesEasyChatStringFitOnLine(gSaveBlock1Ptr->easyChatBattleStart, 3, 2, 18)) { columns = 2; rows = 3; @@ -336,7 +336,7 @@ void sub_80BDA7C(void) void BufferRandomHobbyOrLifestyleString(void) { int groupId = Random() & 1 ? EC_GROUP_HOBBIES : EC_GROUP_LIFESTYLE; - u16 easyChatWord = sub_80BDA40(groupId); + u16 easyChatWord = GetRandomWordFromAnyGroup(groupId); CopyEasyChatWord(gStringVar2, easyChatWord); } @@ -377,7 +377,7 @@ static u16 UnlockRandomTrendySaying(void) u16 additionalPhraseId; u8 numAdditionalPhrasesUnlocked = GetNumUnlockedTrendySayings(); if (numAdditionalPhrasesUnlocked == 33) - return 0xFFFF; + return EC_WORD_UNDEFINED; additionalPhraseId = Random() % (33 - numAdditionalPhrasesUnlocked); for (i = 0; i < 33; i++) @@ -396,7 +396,7 @@ static u16 UnlockRandomTrendySaying(void) } } - return 0xFFFF; + return EC_WORD_UNDEFINED; } static u16 GetRandomUnlockedTrendySaying(void) @@ -404,7 +404,7 @@ static u16 GetRandomUnlockedTrendySaying(void) u16 i; u16 additionalPhraseId = GetNumUnlockedTrendySayings(); if (additionalPhraseId == 0) - return 0xFFFF; + return EC_WORD_UNDEFINED; additionalPhraseId = Random() % additionalPhraseId; for (i = 0; i < 33; i++) @@ -418,10 +418,10 @@ static u16 GetRandomUnlockedTrendySaying(void) } } - return 0xFFFF; + return EC_WORD_UNDEFINED; } -static bool8 sub_80BDCA8(void) +static bool8 EC_IsNationalPokedexEnabled(void) { return IsNationalPokedexEnabled(); } @@ -433,7 +433,7 @@ static u16 GetRandomECPokemon(void) const u16 *species; u16 index = EasyChat_GetNumWordsInGroup(EC_GROUP_POKEMON_2); if (index == 0) - return 0xFFFF; + return EC_WORD_UNDEFINED; index = Random() % index; species = gEasyChatGroups[EC_GROUP_POKEMON_2].wordData.valueList; @@ -452,7 +452,7 @@ static u16 GetRandomECPokemon(void) species++; } - return 0xFFFF; + return EC_WORD_UNDEFINED; } void InitEasyChatPhrases(void) @@ -467,14 +467,14 @@ void InitEasyChatPhrases(void) for (i = 0; i < 6; i++) { - gSaveBlock1Ptr->easyChatBattleWon[i] = 0xFFFF; - gSaveBlock1Ptr->easyChatBattleLost[i] = 0xFFFF; + gSaveBlock1Ptr->easyChatBattleWon[i] = EC_WORD_UNDEFINED; + gSaveBlock1Ptr->easyChatBattleLost[i] = EC_WORD_UNDEFINED; } for (i = 0; i < MAIL_COUNT; i++) { for (j = 0; j < MAIL_WORDS_COUNT; j++) - gSaveBlock1Ptr->mail[i].words[j] = 0xFFFF; + gSaveBlock1Ptr->mail[i].words[j] = EC_WORD_UNDEFINED; } // BUG: This is supposed to clear 64 bits, but this loop is clearing 64 bytes. @@ -485,64 +485,64 @@ void InitEasyChatPhrases(void) gSaveBlock1Ptr->additionalPhrases[i] = 0; } -void sub_80BDE28(void) +void ResetSomeMEventECBuffer_3120_338(void) { s32 i; u16 *ptr = sub_8143DA8(); for (i = 0; i < 4; i++) - ptr[i] = 0xFFFF; + ptr[i] = EC_WORD_UNDEFINED; } -bool8 sub_80BDE44(void) +bool8 InitEasyChatSelection(void) { - gUnknown_20399BC = Alloc(sizeof(*gUnknown_20399BC)); - if (!gUnknown_20399BC) + sEasyChatSelectionData = Alloc(sizeof(*sEasyChatSelectionData)); + if (!sEasyChatSelectionData) return FALSE; - sub_80BDE88(); - sub_80BDFF8(); + PopulateECGroups(); + PopulateAlphabeticalGroups(); return TRUE; } -void sub_80BDE70(void) +void DestroyEasyChatSelectionData(void) { - if (gUnknown_20399BC != NULL) - Free(gUnknown_20399BC); + if (sEasyChatSelectionData != NULL) + Free(sEasyChatSelectionData); } -static void sub_80BDE88(void) +static void PopulateECGroups(void) { int i; - gUnknown_20399BC->unk0 = 0; + sEasyChatSelectionData->numGroups = 0; if (GetNationalPokedexCount(FLAG_GET_SEEN)) - gUnknown_20399BC->unk2[gUnknown_20399BC->unk0++] = EC_GROUP_POKEMON; + sEasyChatSelectionData->groups[sEasyChatSelectionData->numGroups++] = EC_GROUP_POKEMON; for (i = EC_GROUP_TRAINER; i <= EC_GROUP_ADJECTIVES; i++) - gUnknown_20399BC->unk2[gUnknown_20399BC->unk0++] = i; + sEasyChatSelectionData->groups[sEasyChatSelectionData->numGroups++] = i; if (FlagGet(FLAG_SYS_GAME_CLEAR)) { - gUnknown_20399BC->unk2[gUnknown_20399BC->unk0++] = EC_GROUP_EVENTS; - gUnknown_20399BC->unk2[gUnknown_20399BC->unk0++] = EC_GROUP_MOVE_1; - gUnknown_20399BC->unk2[gUnknown_20399BC->unk0++] = EC_GROUP_MOVE_2; + sEasyChatSelectionData->groups[sEasyChatSelectionData->numGroups++] = EC_GROUP_EVENTS; + sEasyChatSelectionData->groups[sEasyChatSelectionData->numGroups++] = EC_GROUP_MOVE_1; + sEasyChatSelectionData->groups[sEasyChatSelectionData->numGroups++] = EC_GROUP_MOVE_2; } if (IsNationalPokedexEnabled()) - gUnknown_20399BC->unk2[gUnknown_20399BC->unk0++] = EC_GROUP_POKEMON_2; + sEasyChatSelectionData->groups[sEasyChatSelectionData->numGroups++] = EC_GROUP_POKEMON_2; } -u8 sub_80BDF38(void) +u8 GetNumDisplayableGroups(void) { - return gUnknown_20399BC->unk0; + return sEasyChatSelectionData->numGroups; } -u8 sub_80BDF44(u8 index) +u8 GetSelectedGroupByIndex(u8 index) { - if (index >= gUnknown_20399BC->unk0) + if (index >= sEasyChatSelectionData->numGroups) return EC_NUM_GROUPS; else - return gUnknown_20399BC->unk2[index]; + return sEasyChatSelectionData->groups[index]; } static u8 *unref_sub_80BDF6C(u8 *dest, u8 groupId, u16 totalChars) @@ -578,7 +578,7 @@ u8 *CopyEasyChatWordPadded(u8 *dest, u16 easyChatWord, u16 totalChars) return str; } -static void sub_80BDFF8(void) +static void PopulateAlphabeticalGroups(void) { static int i; static int j; @@ -592,11 +592,11 @@ static void sub_80BDFF8(void) { numWords = gEasyChatWordsByLetterPointers[i].numWords; words = gEasyChatWordsByLetterPointers[i].words; - gUnknown_20399BC->unk2E[i] = 0; + sEasyChatSelectionData->alphabeticalGroups[i] = 0; index = 0; for (j = 0; j < numWords; ) { - if (*words == 0xFFFF) + if (*words == EC_WORD_UNDEFINED) { words++; numToProcess = *words++; @@ -609,10 +609,10 @@ static void sub_80BDFF8(void) for (k = 0; k < numToProcess; k++) { - if (sub_80BE440(words[k])) + if (IsWordUnlocked(words[k])) { - gUnknown_20399BC->unk64[i][index++] = words[k]; - gUnknown_20399BC->unk2E[i]++; + sEasyChatSelectionData->alphabeticalWordsByGroup[i][index++] = words[k]; + sEasyChatSelectionData->alphabeticalGroups[i]++; break; } } @@ -623,28 +623,28 @@ static void sub_80BDFF8(void) } } -void sub_80BE16C(int arg0, u16 groupId) +void GetUnlockedECWords(bool32 isAlphabetical, u16 groupId) { - if (!arg0) - gUnknown_20399BC->unk3BA0 = sub_80BE1E8(groupId); + if (!isAlphabetical) + sEasyChatSelectionData->totalWords = GetUnlockedWordsInECGroup(groupId); else - gUnknown_20399BC->unk3BA0 = sub_80BE2F8(groupId); + sEasyChatSelectionData->totalWords = GetUnlockedWordsInAlphabeticalGroup(groupId); } -u16 sub_80BE19C(u16 arg0) +u16 GetDisplayedWordByIndex(u16 index) { - if (arg0 >= gUnknown_20399BC->unk3BA0) - return 0xFFFF; + if (index >= sEasyChatSelectionData->totalWords) + return EC_WORD_UNDEFINED; else - return gUnknown_20399BC->unk3984[arg0]; + return sEasyChatSelectionData->allWords[index]; } -u16 sub_80BE1D4(void) +u16 GetNumDisplayedWords(void) { - return gUnknown_20399BC->unk3BA0; + return sEasyChatSelectionData->totalWords; } -static u16 sub_80BE1E8(u16 groupId) +static u16 GetUnlockedWordsInECGroup(u16 groupId) { u16 i; u16 totalWords; @@ -658,8 +658,8 @@ static u16 sub_80BE1E8(u16 groupId) list = gEasyChatGroups[groupId].wordData.valueList; for (i = 0, totalWords = 0; i < numWords; i++) { - if (sub_80BE3A4(list[i], groupId)) - gUnknown_20399BC->unk3984[totalWords++] = EC_WORD(groupId, list[i]); + if (UnlockedECMonOrMove(list[i], groupId)) + sEasyChatSelectionData->allWords[totalWords++] = EC_WORD(groupId, list[i]); } return totalWords; @@ -670,45 +670,45 @@ static u16 sub_80BE1E8(u16 groupId) for (i = 0, totalWords = 0; i < numWords; i++) { u16 alphabeticalOrder = wordInfo[i].alphabeticalOrder; - if (sub_80BE3A4(alphabeticalOrder, groupId)) - gUnknown_20399BC->unk3984[totalWords++] = EC_WORD(groupId, alphabeticalOrder); + if (UnlockedECMonOrMove(alphabeticalOrder, groupId)) + sEasyChatSelectionData->allWords[totalWords++] = EC_WORD(groupId, alphabeticalOrder); } return totalWords; } } -static u16 sub_80BE2F8(u16 alphabeticalGroup) +static u16 GetUnlockedWordsInAlphabeticalGroup(u16 alphabeticalGroup) { u16 i; u16 totalWords; - for (i = 0, totalWords = 0; i < gUnknown_20399BC->unk2E[alphabeticalGroup]; i++) - gUnknown_20399BC->unk3984[totalWords++] = gUnknown_20399BC->unk64[alphabeticalGroup][i]; + for (i = 0, totalWords = 0; i < sEasyChatSelectionData->alphabeticalGroups[alphabeticalGroup]; i++) + sEasyChatSelectionData->allWords[totalWords++] = sEasyChatSelectionData->alphabeticalWordsByGroup[alphabeticalGroup][i]; return totalWords; } -static bool8 sub_80BE36C(u8 arg0) +static bool8 IsGroupSelectable(u8 groupIdx) { int i; - for (i = 0; i < gUnknown_20399BC->unk0; i++) + for (i = 0; i < sEasyChatSelectionData->numGroups; i++) { - if (gUnknown_20399BC->unk2[i] == arg0) + if (sEasyChatSelectionData->groups[i] == groupIdx) return TRUE; } return FALSE; } -static bool8 sub_80BE3A4(u16 wordIndex, u8 groupId) +static bool8 UnlockedECMonOrMove(u16 wordIndex, u8 groupId) { switch (groupId) { case EC_GROUP_POKEMON: return GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN); case EC_GROUP_POKEMON_2: - if (sub_80BE418(wordIndex)) + if (EC_IsDeoxys(wordIndex)) return GetSetPokedexFlag(SpeciesToNationalPokedexNum(wordIndex), FLAG_GET_SEEN); return TRUE; case EC_GROUP_MOVE_1: @@ -719,25 +719,25 @@ static bool8 sub_80BE3A4(u16 wordIndex, u8 groupId) } } -static int sub_80BE418(u16 species) +static int EC_IsDeoxys(u16 species) { u32 i; - for (i = 0; i < ARRAY_COUNT(gUnknown_83EE004); i++) + for (i = 0; i < ARRAY_COUNT(sDeoxysValue); i++) { - if (gUnknown_83EE004[i] == species) + if (sDeoxysValue[i] == species) return TRUE; } return FALSE; } -static u8 sub_80BE440(u16 easyChatWord) +static u8 IsWordUnlocked(u16 easyChatWord) { u8 groupId = EC_GROUP(easyChatWord); u32 index = EC_INDEX(easyChatWord); - if (!sub_80BE36C(groupId)) + if (!IsGroupSelectable(groupId)) return FALSE; else - return sub_80BE3A4(index, groupId); + return UnlockedECMonOrMove(index, groupId); } diff --git a/src/mevent.c b/src/mevent.c index 903166e7e..00bffdfc3 100644 --- a/src/mevent.c +++ b/src/mevent.c @@ -487,7 +487,7 @@ void sub_8143D24(void) { CpuFill32(0, &gSaveBlock1Ptr->unk_3120, sizeof(gSaveBlock1Ptr->unk_3120)); sub_8143ED0(); - sub_80BDE28(); + ResetSomeMEventECBuffer_3120_338(); } struct MEventBuffer_3120_Sub * GetSavedWonderNews(void) |