From a19df4b116d35368eb597f5d1d7a3d437fb9212d Mon Sep 17 00:00:00 2001 From: notkoen <45914779+notkoen@users.noreply.github.com> Date: Thu, 13 Nov 2025 12:59:47 -0800 Subject: [PATCH] detours: add edge case to chat timer detection --- src/detours.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/detours.cpp b/src/detours.cpp index 9d38e563..65964d20 100644 --- a/src/detours.cpp +++ b/src/detours.cpp @@ -288,13 +288,21 @@ void SayChatMessageWithTimer(IRecipientFilter& filter, const char* pText, CCSPla uiNextWordLength = strlen(pNextWord); } - // Case: ... X sec(onds) ... or ... X min(utes) ... - if (pNextWord != NULL && uiNextWordLength > 2 && uiCurrentValue > 0) + // Case: ... X sec(onds) ... or ... X s ... or ... X min(utes) ... + if (pNextWord != NULL && uiCurrentValue > 0) { - if (pNextWord[0] == 's' && pNextWord[1] == 'e' && pNextWord[2] == 'c') - uiTriggerTimerLength = uiCurrentValue; - if (pNextWord[0] == 'm' && pNextWord[1] == 'i' && pNextWord[2] == 'n') - uiTriggerTimerLength = uiCurrentValue * 60; + if (uiNextWordLength == 1) + { + if (pNextWord[0] == 's') + uiTriggerTimerLength = uiCurrentValue; + } + else if (uiNextWordLength > 2) + { + if (pNextWord[0] == 's' && pNextWord[1] == 'e' && pNextWord[2] == 'c') + uiTriggerTimerLength = uiCurrentValue; + if (pNextWord[0] == 'm' && pNextWord[1] == 'i' && pNextWord[2] == 'n') + uiTriggerTimerLength = uiCurrentValue * 60; + } } // Case: ... Xs - only support up to 3 digit numbers (in seconds) for this timer parse method