summaryrefslogtreecommitdiff
path: root/game/shared/usermessages.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/shared/usermessages.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/shared/usermessages.h')
-rw-r--r--game/shared/usermessages.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/game/shared/usermessages.h b/game/shared/usermessages.h
new file mode 100644
index 0000000..16a3279
--- /dev/null
+++ b/game/shared/usermessages.h
@@ -0,0 +1,65 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#ifndef USERMESSAGES_H
+#define USERMESSAGES_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include <utldict.h>
+#include <utlvector.h>
+#include <bitbuf.h>
+
+
+// Client dispatch function for usermessages
+typedef void (*pfnUserMsgHook)(bf_read &msg);
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CUserMessage
+{
+ public:
+ // byte size of message, or -1 for variable sized
+ int size;
+ const char *name;
+ // Client only dispatch function for message
+ CUtlVector<pfnUserMsgHook> clienthooks;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose: Interface for registering and dispatching usermessages
+// Shred code creates same ordered list on client/server
+//-----------------------------------------------------------------------------
+class CUserMessages
+{
+public:
+
+ CUserMessages();
+ ~CUserMessages();
+
+ // Returns -1 if not found, otherwise, returns appropriate index
+ int LookupUserMessage( const char *name );
+ int GetUserMessageSize( int index );
+ const char *GetUserMessageName( int index );
+ bool IsValidIndex( int index );
+
+ // Server only
+ void Register( const char *name, int size );
+
+ // Client only
+ void HookMessage( const char *name, pfnUserMsgHook hook );
+ bool DispatchUserMessage( int msg_type, bf_read &msg_data );
+
+private:
+
+ CUtlDict< CUserMessage*, int > m_UserMessages;
+};
+
+extern CUserMessages *usermessages;
+
+#endif // USERMESSAGES_H