# HG changeset patch # User David Anderson # Date 1235607756 18000 # Node ID fa286305bd3fa689043cafd334aabcbcb1863b92 # Parent 4501927019285f0dbd631057f287a5826000f1b1 Allow for second private chat trigger (bug 3667, r,a11=pred). diff -r 450192701928 -r fa286305bd3f configs/core.cfg --- a/configs/core.cfg Thu Feb 19 14:22:22 2009 +1300 +++ b/configs/core.cfg Wed Feb 25 19:22:36 2009 -0500 @@ -46,6 +46,13 @@ * String to use as the silent chat trigger. Set an empty string to disable. */ "SilentChatTrigger" "/" + + /** + * Optional, second string to use as the silent chat trigger. Set an empty + * string to disable. This is can be useful on games that steal the primary + * choice (such as TF2 and "/") + */ + "SilentChatTrigger2" "." /** * If a say command is a silent chat trigger, and is used by an admin, diff -r 450192701928 -r fa286305bd3f core/ChatTriggers.cpp --- a/core/ChatTriggers.cpp Thu Feb 19 14:22:22 2009 +1300 +++ b/core/ChatTriggers.cpp Wed Feb 25 19:22:36 2009 -0500 @@ -63,8 +63,10 @@ { m_PubTrigger = sm_strdup("!"); m_PrivTrigger = sm_strdup("/"); + m_PrivTrigger2 = sm_strdup("."); m_PubTriggerSize = 1; m_PrivTriggerSize = 1; + m_PrivTriggerSize2 = 1; m_bIsChatTrigger = false; } @@ -74,6 +76,8 @@ m_PubTrigger = NULL; delete [] m_PrivTrigger; m_PrivTrigger = NULL; + delete [] m_PrivTrigger2; + m_PrivTrigger2 = NULL; } ConfigResult ChatTriggers::OnSourceModConfigChanged(const char *key, @@ -96,6 +100,13 @@ m_PrivTriggerSize = strlen(m_PrivTrigger); return ConfigResult_Accept; } + else if (strcmp(key, "SilentChatTrigger2") == 0) + { + delete [] m_PrivTrigger2; + m_PrivTrigger2 = sm_strdup(value); + m_PrivTriggerSize2 = strlen(m_PrivTrigger2); + return ConfigResult_Accept; + } else if (strcmp(key, "SilentFailSuppress") == 0) { g_bSupressSilentFails = strcmp(value, "yes") == 0; @@ -252,12 +263,18 @@ is_trigger = true; args = &args[m_PubTriggerSize]; } - else if (m_PrivTriggerSize && strncmp(args, m_PrivTrigger, m_PrivTriggerSize) == 0) + else if (m_PrivTriggerSize && strncmp(args, m_PrivTrigger, m_PrivTriggerSize) == 0) { is_trigger = true; is_silent = true; args = &args[m_PrivTriggerSize]; } + else if (m_PrivTriggerSize2 && strncmp(args, m_PrivTrigger2, m_PrivTriggerSize2) == 0) + { + is_trigger = true; + is_silent = true; + args = &args[m_PrivTriggerSize2]; + } if (!is_trigger) { diff -r 450192701928 -r fa286305bd3f core/ChatTriggers.h --- a/core/ChatTriggers.h Thu Feb 19 14:22:22 2009 +1300 +++ b/core/ChatTriggers.h Wed Feb 25 19:22:36 2009 -0500 @@ -75,7 +75,9 @@ char *m_PubTrigger; size_t m_PubTriggerSize; char *m_PrivTrigger; + char *m_PrivTrigger2; size_t m_PrivTriggerSize; + size_t m_PrivTriggerSize2; bool m_bWillProcessInPost; bool m_bTriggerWasSilent; bool m_bIsChatTrigger;