Allow for second private chat trigger (bug 3667, r,a11=pred).
Allow for second private chat trigger (
bug 3667, r,a11=pred).
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;