Fixed chat trigger crash regression on ep1 (bug 5394, r=asherkin).
This commit is contained in:
parent
c79d547492
commit
5ca5ecee85
@ -256,9 +256,13 @@ void ChatTriggers::OnSayCommand_Pre()
|
|||||||
is_quoted = true;
|
is_quoted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char * pCommandName = command.Arg(0);
|
/* Save these off for post hook as the command data returned from the engine in older engine versions
|
||||||
|
* can be NULL, despite the data still being there and valid. */
|
||||||
|
m_Arg0Backup = command.Arg(0);
|
||||||
|
m_ArgSBackup = command.ArgS();
|
||||||
|
|
||||||
#if SOURCE_ENGINE == SE_EPISODEONE
|
#if SOURCE_ENGINE == SE_EPISODEONE
|
||||||
if (m_bIsINS && strcmp(pCommandName, "say2") == 0 && strlen(args) >= 4)
|
if (m_bIsINS && strcmp(m_Arg0Backup, "say2") == 0 && strlen(args) >= 4)
|
||||||
{
|
{
|
||||||
args += 4;
|
args += 4;
|
||||||
}
|
}
|
||||||
@ -298,8 +302,8 @@ void ChatTriggers::OnSayCommand_Pre()
|
|||||||
{
|
{
|
||||||
cell_t res = Pl_Continue;
|
cell_t res = Pl_Continue;
|
||||||
m_pOnClientSayCmd->PushCell(client);
|
m_pOnClientSayCmd->PushCell(client);
|
||||||
m_pOnClientSayCmd->PushString(pCommandName);
|
m_pOnClientSayCmd->PushString(m_Arg0Backup);
|
||||||
m_pOnClientSayCmd->PushString(command.ArgS());
|
m_pOnClientSayCmd->PushString(m_ArgSBackup);
|
||||||
m_pOnClientSayCmd->Execute(&res);
|
m_pOnClientSayCmd->Execute(&res);
|
||||||
|
|
||||||
if (res >= Pl_Handled)
|
if (res >= Pl_Handled)
|
||||||
@ -321,12 +325,10 @@ void ChatTriggers::OnSayCommand_Pre()
|
|||||||
|
|
||||||
#if SOURCE_ENGINE >= SE_ORANGEBOX
|
#if SOURCE_ENGINE >= SE_ORANGEBOX
|
||||||
void ChatTriggers::OnSayCommand_Post(const CCommand &command)
|
void ChatTriggers::OnSayCommand_Post(const CCommand &command)
|
||||||
{
|
|
||||||
#else
|
#else
|
||||||
void ChatTriggers::OnSayCommand_Post()
|
void ChatTriggers::OnSayCommand_Post()
|
||||||
{
|
|
||||||
CCommand command;
|
|
||||||
#endif
|
#endif
|
||||||
|
{
|
||||||
int client = g_ConCmds.GetCommandClient();
|
int client = g_ConCmds.GetCommandClient();
|
||||||
|
|
||||||
if (m_bWillProcessInPost)
|
if (m_bWillProcessInPost)
|
||||||
@ -347,8 +349,8 @@ void ChatTriggers::OnSayCommand_Post()
|
|||||||
else if (!m_bWasFloodedMessage && m_pOnClientSayCmd_Post->GetFunctionCount() != 0)
|
else if (!m_bWasFloodedMessage && m_pOnClientSayCmd_Post->GetFunctionCount() != 0)
|
||||||
{
|
{
|
||||||
m_pOnClientSayCmd_Post->PushCell(client);
|
m_pOnClientSayCmd_Post->PushCell(client);
|
||||||
m_pOnClientSayCmd_Post->PushString(command.Arg(0));
|
m_pOnClientSayCmd_Post->PushString(m_Arg0Backup);
|
||||||
m_pOnClientSayCmd_Post->PushString(command.ArgS());
|
m_pOnClientSayCmd_Post->PushString(m_ArgSBackup);
|
||||||
m_pOnClientSayCmd_Post->Execute(NULL);
|
m_pOnClientSayCmd_Post->Execute(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,6 +88,8 @@ private:
|
|||||||
bool m_bPluginIgnored;
|
bool m_bPluginIgnored;
|
||||||
unsigned int m_ReplyTo;
|
unsigned int m_ReplyTo;
|
||||||
char m_ToExecute[300];
|
char m_ToExecute[300];
|
||||||
|
const char *m_Arg0Backup;
|
||||||
|
const char *m_ArgSBackup;
|
||||||
IForward *m_pShouldFloodBlock;
|
IForward *m_pShouldFloodBlock;
|
||||||
IForward *m_pDidFloodBlock;
|
IForward *m_pDidFloodBlock;
|
||||||
IForward *m_pOnClientSayCmd;
|
IForward *m_pOnClientSayCmd;
|
||||||
|
Loading…
Reference in New Issue
Block a user