summaryrefslogtreecommitdiff
path: root/app/legion/networkmessages.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'app/legion/networkmessages.cpp')
-rw-r--r--app/legion/networkmessages.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/app/legion/networkmessages.cpp b/app/legion/networkmessages.cpp
new file mode 100644
index 0000000..3b382a9
--- /dev/null
+++ b/app/legion/networkmessages.cpp
@@ -0,0 +1,51 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: A network message that sends chat messages
+//
+// $Revision: $
+// $NoKeywords: $
+//===========================================================================//
+
+#include "networkmessages.h"
+#include "networkmanager.h"
+#include "tier1/bitbuf.h"
+
+
+//-----------------------------------------------------------------------------
+// Chat network message
+//-----------------------------------------------------------------------------
+REGISTER_NETWORK_MESSAGE( CNetworkMessage_Chat );
+
+CNetworkMessage_Chat::CNetworkMessage_Chat()
+{
+ SetReliable( false );
+}
+
+bool CNetworkMessage_Chat::WriteToBuffer( bf_write &buffer )
+{
+ int nLen = m_Message.Length();
+ buffer.WriteShort( nLen );
+ if ( nLen )
+ {
+ buffer.WriteBytes( m_Message.Get(), nLen );
+ }
+ return !buffer.IsOverflowed();
+}
+
+bool CNetworkMessage_Chat::ReadFromBuffer( bf_read &buffer )
+{
+ int nLen = buffer.ReadShort();
+ if ( nLen )
+ {
+ m_Message.SetLength( nLen + 1 );
+ char *pDest = m_Message.Get();
+ buffer.ReadBytes( pDest, nLen );
+ pDest[ nLen ] = 0;
+ }
+ else
+ {
+ m_Message.Set( NULL );
+ }
+ return !buffer.IsOverflowed();
+}
+