aboutsummaryrefslogtreecommitdiff
path: root/primedev/client/localchatwriter.h
diff options
context:
space:
mode:
Diffstat (limited to 'primedev/client/localchatwriter.h')
-rw-r--r--primedev/client/localchatwriter.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/primedev/client/localchatwriter.h b/primedev/client/localchatwriter.h
new file mode 100644
index 00000000..acf6f87e
--- /dev/null
+++ b/primedev/client/localchatwriter.h
@@ -0,0 +1,64 @@
+#pragma once
+#include "core/math/color.h"
+
+class vgui_BaseRichText;
+
+class CHudChat
+{
+public:
+ static CHudChat** allHuds;
+
+ char unknown1[720];
+
+ Color m_sameTeamColor;
+ Color m_enemyTeamColor;
+ Color m_mainTextColor;
+ Color m_networkNameColor;
+
+ char unknown2[12];
+
+ int m_unknownContext;
+
+ char unknown3[8];
+
+ vgui_BaseRichText* m_richText;
+
+ CHudChat* next;
+ CHudChat* previous;
+};
+
+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(Color color);
+ void InsertSwatchColorChange(SwatchColor color);
+
+private:
+ Context m_context;
+
+ const char* ApplyAnsiEscape(const char* escape);
+ void InsertDefaultFade();
+};