From 49ffd4a2e95e1fad04466a9d7e2b95a7d5c66745 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Tue, 6 Jun 2023 10:55:42 -0400 Subject: [PATCH] Easy Chat always shows words in uppercase --- gflib/string_util.c | 17 +++++++++++++++++ gflib/string_util.h | 1 + include/union_room_chat.h | 2 ++ src/easy_chat.c | 2 +- src/union_room_chat.c | 6 +++--- 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/gflib/string_util.c b/gflib/string_util.c index 8d969d1bf..0826c9a04 100644 --- a/gflib/string_util.c +++ b/gflib/string_util.c @@ -2,6 +2,7 @@ #include "string_util.h" #include "text.h" #include "strings.h" +#include "union_room_chat.h" EWRAM_DATA u8 gStringVar1[0x100] = {0}; EWRAM_DATA u8 gStringVar2[0x100] = {0}; @@ -779,3 +780,19 @@ void StripExtCtrlCodes(u8 *str) } str[destIndex] = EOS; } + +u8 *StringCopyUppercase(u8 *dest, const u8 *src) +{ + while (*src != EOS) + { + if (*src >= CHAR_a && *src <= CHAR_z) + *dest = gCaseToggleTable[*src]; + else + *dest = *src; + dest++; + src++; + } + + *dest = EOS; + return dest; +} diff --git a/gflib/string_util.h b/gflib/string_util.h index 0a8a99fb9..9e5dfffd5 100644 --- a/gflib/string_util.h +++ b/gflib/string_util.h @@ -42,5 +42,6 @@ u8 GetExtCtrlCodeLength(u8 code); s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2); void ConvertInternationalString(u8 *s, u8 language); void StripExtCtrlCodes(u8 *str); +u8 *StringCopyUppercase(u8 *dest, const u8 *src); #endif // GUARD_STRING_UTIL_H diff --git a/include/union_room_chat.h b/include/union_room_chat.h index dbd45c543..e5e3a3fef 100755 --- a/include/union_room_chat.h +++ b/include/union_room_chat.h @@ -4,4 +4,6 @@ void EnterUnionRoomChat(void); void InitUnionRoomChatRegisteredTexts(void); +extern const u8 gCaseToggleTable[256]; + #endif // GUARD_UNION_ROOM_CHAT_H diff --git a/src/easy_chat.c b/src/easy_chat.c index 8621a0163..476702c20 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -5224,7 +5224,7 @@ u8 *CopyEasyChatWord(u8 *dest, u16 easyChatWord) { u16 index = EC_INDEX(easyChatWord); u8 groupId = EC_GROUP(easyChatWord); - resultStr = StringCopy(dest, GetEasyChatWord(groupId, index)); + resultStr = StringCopyUppercase(dest, GetEasyChatWord(groupId, index)); } else { diff --git a/src/union_room_chat.c b/src/union_room_chat.c index 253e02568..dabb49422 100644 --- a/src/union_room_chat.c +++ b/src/union_room_chat.c @@ -335,7 +335,7 @@ static const u8 sKeyboardPageMaxRow[UNION_ROOM_KB_PAGE_COUNT] = [UNION_ROOM_KB_PAGE_REGISTER] = 9 }; -static const u8 sCaseToggleTable[256] = { +const u8 gCaseToggleTable[256] = { [CHAR_A] = CHAR_a, [CHAR_B] = CHAR_b, [CHAR_C] = CHAR_c, @@ -1734,7 +1734,7 @@ static void SwitchCaseOfLastMessageCharacter(void) str = GetLastCharOfMessagePtr(); if (*str != CHAR_EXTRA_SYMBOL) { - character = sCaseToggleTable[*str]; + character = gCaseToggleTable[*str]; if (character) *str = character; } @@ -1997,7 +1997,7 @@ static int GetShouldShowCaseToggleIcon(void) { u8 *str = GetLastCharOfMessagePtr(); u32 character = *str; - if (character > EOS || sCaseToggleTable[character] == character || sCaseToggleTable[character] == CHAR_SPACE) + if (character > EOS || gCaseToggleTable[character] == character || gCaseToggleTable[character] == CHAR_SPACE) return 3; // Don't show else return 0; // Show