Allow for second private chat trigger (bug 3667, r,a11=pred).
authorDavid Anderson <dvander@alliedmods.net>
Wed Feb 25 19:22:36 2009 -0500 (2009-02-25)
changeset 2603fa286305bd3f
parent 2589 450192701928
child 2604 d1e000a860e0
child 2607 f3b8bbe17f85
Allow for second private chat trigger (bug 3667, r,a11=pred).
configs/core.cfg
core/ChatTriggers.cpp
core/ChatTriggers.h
     1.1 --- a/configs/core.cfg	Thu Feb 19 14:22:22 2009 +1300
     1.2 +++ b/configs/core.cfg	Wed Feb 25 19:22:36 2009 -0500
     1.3 @@ -46,6 +46,13 @@
     1.4  	 * String to use as the silent chat trigger.  Set an empty string to disable.
     1.5  	 */
     1.6  	"SilentChatTrigger"		"/"
     1.7 +
     1.8 +	/**
     1.9 +	 * Optional, second string to use as the silent chat trigger.  Set an empty 
    1.10 +	 * string to disable.  This is can be useful on games that steal the primary 
    1.11 +	 * choice (such as TF2 and "/")
    1.12 +	 */
    1.13 +	"SilentChatTrigger2"	"."
    1.14  	
    1.15  	/**
    1.16  	 * If a say command is a silent chat trigger, and is used by an admin, 
     2.1 --- a/core/ChatTriggers.cpp	Thu Feb 19 14:22:22 2009 +1300
     2.2 +++ b/core/ChatTriggers.cpp	Wed Feb 25 19:22:36 2009 -0500
     2.3 @@ -63,8 +63,10 @@
     2.4  {
     2.5  	m_PubTrigger = sm_strdup("!");
     2.6  	m_PrivTrigger = sm_strdup("/");
     2.7 +	m_PrivTrigger2 = sm_strdup(".");
     2.8  	m_PubTriggerSize = 1;
     2.9  	m_PrivTriggerSize = 1;
    2.10 +	m_PrivTriggerSize2 = 1;
    2.11  	m_bIsChatTrigger = false;
    2.12  }
    2.13  
    2.14 @@ -74,6 +76,8 @@
    2.15  	m_PubTrigger = NULL;
    2.16  	delete [] m_PrivTrigger;
    2.17  	m_PrivTrigger = NULL;
    2.18 +	delete [] m_PrivTrigger2;
    2.19 +	m_PrivTrigger2 = NULL;
    2.20  }
    2.21  
    2.22  ConfigResult ChatTriggers::OnSourceModConfigChanged(const char *key, 
    2.23 @@ -96,6 +100,13 @@
    2.24  		m_PrivTriggerSize = strlen(m_PrivTrigger);
    2.25  		return ConfigResult_Accept;
    2.26  	}
    2.27 +	else if (strcmp(key, "SilentChatTrigger2") == 0)
    2.28 +	{
    2.29 +		delete [] m_PrivTrigger2;
    2.30 +		m_PrivTrigger2 = sm_strdup(value);
    2.31 +		m_PrivTriggerSize2 = strlen(m_PrivTrigger2);
    2.32 +		return ConfigResult_Accept;
    2.33 +	}
    2.34  	else if (strcmp(key, "SilentFailSuppress") == 0)
    2.35  	{
    2.36  		g_bSupressSilentFails = strcmp(value, "yes") == 0;
    2.37 @@ -252,12 +263,18 @@
    2.38  		is_trigger = true;
    2.39  		args = &args[m_PubTriggerSize];
    2.40  	} 
    2.41 -	else if (m_PrivTriggerSize && strncmp(args, m_PrivTrigger, m_PrivTriggerSize) == 0) 
    2.42 +	else if (m_PrivTriggerSize && strncmp(args, m_PrivTrigger, m_PrivTriggerSize) == 0)
    2.43  	{
    2.44  		is_trigger = true;
    2.45  		is_silent = true;
    2.46  		args = &args[m_PrivTriggerSize];
    2.47  	}
    2.48 +	else if (m_PrivTriggerSize2 && strncmp(args, m_PrivTrigger2, m_PrivTriggerSize2) == 0)
    2.49 +	{
    2.50 +		is_trigger = true;
    2.51 +		is_silent = true;
    2.52 +		args = &args[m_PrivTriggerSize2];
    2.53 +	}
    2.54  
    2.55  	if (!is_trigger)
    2.56  	{
     3.1 --- a/core/ChatTriggers.h	Thu Feb 19 14:22:22 2009 +1300
     3.2 +++ b/core/ChatTriggers.h	Wed Feb 25 19:22:36 2009 -0500
     3.3 @@ -75,7 +75,9 @@
     3.4  	char *m_PubTrigger;
     3.5  	size_t m_PubTriggerSize;
     3.6  	char *m_PrivTrigger;
     3.7 +	char *m_PrivTrigger2;
     3.8  	size_t m_PrivTriggerSize;
     3.9 +	size_t m_PrivTriggerSize2;
    3.10  	bool m_bWillProcessInPost;
    3.11  	bool m_bTriggerWasSilent;
    3.12  	bool m_bIsChatTrigger;