diff options
author | p0358 <p0358@users.noreply.github.com> | 2023-01-06 19:00:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-06 18:00:42 +0000 |
commit | 3cfd6f96e3f459223294cbf80fa2108424aefe96 (patch) | |
tree | 63e019978c842eabaae2494ffe1b8193782a80ed /NorthstarDLL/scripts | |
parent | 2f4a12aee9cf39de7e0211538f480438497cca8a (diff) | |
download | NorthstarLauncher-3cfd6f96e3f459223294cbf80fa2108424aefe96.tar.gz NorthstarLauncher-3cfd6f96e3f459223294cbf80fa2108424aefe96.zip |
Fix issues of restriction of chat message charset (#391)v1.12.0-rc1
Diffstat (limited to 'NorthstarDLL/scripts')
-rw-r--r-- | NorthstarDLL/scripts/client/clientchathooks.cpp | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/NorthstarDLL/scripts/client/clientchathooks.cpp b/NorthstarDLL/scripts/client/clientchathooks.cpp index d4fa0c41..a1a9e503 100644 --- a/NorthstarDLL/scripts/client/clientchathooks.cpp +++ b/NorthstarDLL/scripts/client/clientchathooks.cpp @@ -1,5 +1,6 @@ #include "pch.h" #include "squirrel/squirrel.h" +#include "util/utils.h" #include "server/serverchathooks.h" #include "client/localchatwriter.h" @@ -8,25 +9,6 @@ AUTOHOOK_INIT() -static char* skip_valid_ansi_csi_sgr(char* str) -{ - if (*str++ != '\x1B') - return NULL; - if (*str++ != '[') // CSI - return NULL; - for (char* c = str; *c; c++) - { - if (*c >= '0' && *c <= '9') - continue; - if (*c == ';') - continue; - if (*c == 'm') // SGR - break; - return NULL; - } - return str; -} - // clang-format off AUTOHOOK(CHudChat__AddGameLine, client.dll + 0x22E580, void, __fastcall, (void* self, const char* message, int inboxId, bool isTeam, bool isDead)) @@ -49,13 +31,7 @@ void, __fastcall, (void* self, const char* message, int inboxId, bool isTeam, bo payload = message + 1; } - for (char* c = const_cast<char*>(message); *c; c++) - { - if (*c == '\x1B' && (c = skip_valid_ansi_csi_sgr(c))) - c--; - else if (*c <= 9 || (*c >= 12 && *c <= 31)) - *c = ' '; - } + NS::Utils::RemoveAsciiControlSequences(const_cast<char*>(message), true); SQRESULT result = g_pSquirrel<ScriptContext::CLIENT>->Call( "CHudChat_ProcessMessageStartThread", static_cast<int>(senderId) - 1, payload, isTeam, isDead, type); |