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