2010-05-29 07:25:38 +00:00
|
|
|
#ifndef GAME_CLIENT_COMPONENTS_CHAT_H
|
|
|
|
#define GAME_CLIENT_COMPONENTS_CHAT_H
|
|
|
|
#include <game/client/component.h>
|
|
|
|
#include <game/client/lineinput.h>
|
|
|
|
|
|
|
|
class CChat : public CComponent
|
|
|
|
{
|
|
|
|
CLineInput m_Input;
|
|
|
|
|
|
|
|
enum
|
|
|
|
{
|
2010-05-30 12:01:11 +00:00
|
|
|
MAX_LINES = 25,
|
2010-05-29 07:25:38 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct CLine
|
|
|
|
{
|
|
|
|
int64 m_Time;
|
|
|
|
int m_ClientId;
|
|
|
|
int m_Team;
|
|
|
|
int m_NameColor;
|
|
|
|
char m_aName[64];
|
|
|
|
char m_aText[512];
|
|
|
|
};
|
|
|
|
|
|
|
|
CLine m_aLines[MAX_LINES];
|
|
|
|
int m_CurrentLine;
|
|
|
|
|
|
|
|
// chat
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
MODE_NONE=0,
|
|
|
|
MODE_ALL,
|
|
|
|
MODE_TEAM,
|
|
|
|
};
|
|
|
|
|
|
|
|
int m_Mode;
|
2010-05-30 12:01:11 +00:00
|
|
|
bool m_Show;
|
2010-10-11 00:29:30 +00:00
|
|
|
bool m_InputUpdate;
|
|
|
|
int m_ChatStringOffset;
|
2010-05-29 07:25:38 +00:00
|
|
|
|
|
|
|
static void ConSay(IConsole::IResult *pResult, void *pUserData);
|
|
|
|
static void ConSayTeam(IConsole::IResult *pResult, void *pUserData);
|
|
|
|
static void ConChat(IConsole::IResult *pResult, void *pUserData);
|
2010-05-30 12:01:11 +00:00
|
|
|
static void ConShowChat(IConsole::IResult *pResult, void *pUserData);
|
2010-05-29 07:25:38 +00:00
|
|
|
|
|
|
|
public:
|
|
|
|
CChat();
|
|
|
|
|
|
|
|
bool IsActive() const { return m_Mode != MODE_NONE; }
|
|
|
|
|
|
|
|
void AddLine(int ClientId, int Team, const char *pLine);
|
|
|
|
|
|
|
|
void EnableMode(int Team);
|
|
|
|
|
|
|
|
void Say(int Team, const char *pLine);
|
|
|
|
|
|
|
|
virtual void OnReset();
|
|
|
|
virtual void OnConsoleInit();
|
|
|
|
virtual void OnStateChange(int NewState, int OldState);
|
|
|
|
virtual void OnRender();
|
2010-09-12 10:43:03 +00:00
|
|
|
virtual void OnRelease();
|
2010-05-29 07:25:38 +00:00
|
|
|
virtual void OnMessage(int MsgType, void *pRawMsg);
|
|
|
|
virtual bool OnInput(IInput::CEvent Event);
|
|
|
|
};
|
|
|
|
#endif
|