summaryrefslogtreecommitdiff
path: root/app/legion/networkmessages.cpp
blob: 3b382a9a4eb394dea68df4497bd2459e5de398fb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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();
}