aboutsummaryrefslogtreecommitdiff
path: root/NorthstarDedicatedTest/localchatwriter.h
diff options
context:
space:
mode:
authorTom Barham <me@cpdt.dev>2022-02-22 08:33:53 +1000
committerGitHub <noreply@github.com>2022-02-21 19:33:53 -0300
commit8c9f34283f8670dda98959d0785d682e6f652a93 (patch)
tree5e9d8c10fb5d1df2816fac43e4db3b80cc7f93a0 /NorthstarDedicatedTest/localchatwriter.h
parentae9df9bc734c6c0364028c71db5e7236e7c344dd (diff)
downloadNorthstarLauncher-8c9f34283f8670dda98959d0785d682e6f652a93.tar.gz
NorthstarLauncher-8c9f34283f8670dda98959d0785d682e6f652a93.zip
Advanced chat: custom messages and client hooks (#74)
Co-authored-by: Emma Miler <27428383+emma-miler@users.noreply.github.com>
Diffstat (limited to 'NorthstarDedicatedTest/localchatwriter.h')
-rw-r--r--NorthstarDedicatedTest/localchatwriter.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/NorthstarDedicatedTest/localchatwriter.h b/NorthstarDedicatedTest/localchatwriter.h
new file mode 100644
index 00000000..b9ca3220
--- /dev/null
+++ b/NorthstarDedicatedTest/localchatwriter.h
@@ -0,0 +1,50 @@
+#pragma once
+#include "pch.h"
+
+struct vgui_Color
+{
+ unsigned char r;
+ unsigned char g;
+ unsigned char b;
+ unsigned char a;
+};
+
+class LocalChatWriter
+{
+ public:
+ enum Context
+ {
+ NetworkContext = 0,
+ GameContext = 1
+ };
+ enum SwatchColor
+ {
+ MainTextColor,
+ SameTeamNameColor,
+ EnemyTeamNameColor,
+ NetworkNameColor
+ };
+
+ explicit LocalChatWriter(Context context);
+
+ // Custom chat writing with ANSI escape codes
+ void Write(const char* str);
+ void WriteLine(const char* str);
+
+ // Low-level RichText access
+ void InsertChar(wchar_t ch);
+ void InsertText(const char* str);
+ void InsertText(const wchar_t* str);
+ void InsertColorChange(vgui_Color color);
+ void InsertSwatchColorChange(SwatchColor color);
+
+ private:
+ Context m_context;
+
+ const char* ApplyAnsiEscape(const char* escape);
+ void InsertDefaultFade();
+};
+
+bool IsFirstHud(void* hud);
+
+void InitialiseLocalChatWriter(HMODULE baseAddress);