added say_team hooks
--HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%40903
This commit is contained in:
parent
7ab88f2020
commit
f6a1db7633
@ -18,6 +18,13 @@ ChatTriggers::ChatTriggers() : m_pSayCmd(NULL), m_bWillProcessInPost(false),
|
|||||||
m_PrivTriggerSize = 1;
|
m_PrivTriggerSize = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ChatTriggers::~ChatTriggers()
|
||||||
|
{
|
||||||
|
delete [] m_PubTrigger;
|
||||||
|
m_PubTrigger = NULL;
|
||||||
|
delete [] m_PrivTrigger;
|
||||||
|
m_PrivTrigger = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
ConfigResult ChatTriggers::OnSourceModConfigChanged(const char *key,
|
ConfigResult ChatTriggers::OnSourceModConfigChanged(const char *key,
|
||||||
const char *value,
|
const char *value,
|
||||||
@ -43,6 +50,7 @@ ConfigResult ChatTriggers::OnSourceModConfigChanged(const char *key,
|
|||||||
|
|
||||||
void ChatTriggers::OnSourceModGameInitialized()
|
void ChatTriggers::OnSourceModGameInitialized()
|
||||||
{
|
{
|
||||||
|
unsigned int total = 2;
|
||||||
ConCommandBase *pCmd = icvar->GetCommands();
|
ConCommandBase *pCmd = icvar->GetCommands();
|
||||||
const char *name;
|
const char *name;
|
||||||
while (pCmd)
|
while (pCmd)
|
||||||
@ -50,10 +58,19 @@ void ChatTriggers::OnSourceModGameInitialized()
|
|||||||
if (pCmd->IsCommand())
|
if (pCmd->IsCommand())
|
||||||
{
|
{
|
||||||
name = pCmd->GetName();
|
name = pCmd->GetName();
|
||||||
if (strcmp(name, "say") == 0)
|
if (!m_pSayCmd && strcmp(name, "say") == 0)
|
||||||
{
|
{
|
||||||
m_pSayCmd = (ConCommand *)pCmd;
|
m_pSayCmd = (ConCommand *)pCmd;
|
||||||
break;
|
if (--total == 0)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (!m_pSayTeamCmd && strcmp(name, "say_team") == 0) {
|
||||||
|
m_pSayTeamCmd = (ConCommand *)pCmd;
|
||||||
|
if (--total == 0)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pCmd = const_cast<ConCommandBase *>(pCmd->GetNext());
|
pCmd = const_cast<ConCommandBase *>(pCmd->GetNext());
|
||||||
@ -64,10 +81,20 @@ void ChatTriggers::OnSourceModGameInitialized()
|
|||||||
SH_ADD_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayCmd, this, &ChatTriggers::OnSayCommand_Pre, false);
|
SH_ADD_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayCmd, this, &ChatTriggers::OnSayCommand_Pre, false);
|
||||||
SH_ADD_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayCmd, this, &ChatTriggers::OnSayCommand_Post, true);
|
SH_ADD_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayCmd, this, &ChatTriggers::OnSayCommand_Post, true);
|
||||||
}
|
}
|
||||||
|
if (m_pSayTeamCmd)
|
||||||
|
{
|
||||||
|
SH_ADD_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayTeamCmd, this, &ChatTriggers::OnSayCommand_Pre, false);
|
||||||
|
SH_ADD_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayTeamCmd, this, &ChatTriggers::OnSayCommand_Post, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ChatTriggers::OnSourceModShutdown()
|
void ChatTriggers::OnSourceModShutdown()
|
||||||
{
|
{
|
||||||
|
if (m_pSayTeamCmd)
|
||||||
|
{
|
||||||
|
SH_REMOVE_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayTeamCmd, this, &ChatTriggers::OnSayCommand_Post, true);
|
||||||
|
SH_REMOVE_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayTeamCmd, this, &ChatTriggers::OnSayCommand_Pre, false);
|
||||||
|
}
|
||||||
if (m_pSayCmd)
|
if (m_pSayCmd)
|
||||||
{
|
{
|
||||||
SH_REMOVE_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayCmd, this, &ChatTriggers::OnSayCommand_Post, true);
|
SH_REMOVE_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayCmd, this, &ChatTriggers::OnSayCommand_Post, true);
|
||||||
|
@ -11,6 +11,7 @@ class ChatTriggers : public SMGlobalClass
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ChatTriggers();
|
ChatTriggers();
|
||||||
|
~ChatTriggers();
|
||||||
public: //SMGlobalClass
|
public: //SMGlobalClass
|
||||||
void OnSourceModGameInitialized();
|
void OnSourceModGameInitialized();
|
||||||
void OnSourceModShutdown();
|
void OnSourceModShutdown();
|
||||||
@ -29,6 +30,7 @@ private:
|
|||||||
bool ProcessTrigger(edict_t *pEdict, const char *args, bool is_quoted);
|
bool ProcessTrigger(edict_t *pEdict, const char *args, bool is_quoted);
|
||||||
private:
|
private:
|
||||||
ConCommand *m_pSayCmd;
|
ConCommand *m_pSayCmd;
|
||||||
|
ConCommand *m_pSayTeamCmd;
|
||||||
char *m_PubTrigger;
|
char *m_PubTrigger;
|
||||||
size_t m_PubTriggerSize;
|
size_t m_PubTriggerSize;
|
||||||
char *m_PrivTrigger;
|
char *m_PrivTrigger;
|
||||||
|
Loading…
Reference in New Issue
Block a user