From 57a38636fcb1bccfed0f69705b237e8f028c0d1a Mon Sep 17 00:00:00 2001 From: nosoop Date: Thu, 23 Sep 2021 03:00:52 -0700 Subject: [PATCH] TF2Tools: Prevent CalcIsAttackCriticalHelper* from being called twice (#1573) * Ensure CalcIsAttackCriticalHelper only gets called once * fixup: move origReturnValue up --- extensions/tf2/criticals.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extensions/tf2/criticals.cpp b/extensions/tf2/criticals.cpp index 4cc147883d..dac519cbe1 100644 --- a/extensions/tf2/criticals.cpp +++ b/extensions/tf2/criticals.cpp @@ -191,6 +191,7 @@ bool CritManager::Hook_CalcIsAttackCriticalHelpers(bool noCrits) returnValue = SH_MCALL(pWeapon, CalcIsAttackCriticalHelper)() ? 1 : 0; } + int origReturnValue = returnValue; int ownerIndex = -1; CBaseHandle &hndl = *(CBaseHandle *) ((intptr_t)pWeapon + info.actual_offset); CBaseEntity *pHandleEntity = gamehelpers->ReferenceToEntity(hndl.GetEntryIndex()); @@ -214,5 +215,5 @@ bool CritManager::Hook_CalcIsAttackCriticalHelpers(bool noCrits) RETURN_META_VALUE(MRES_SUPERCEDE, returnValue); } - RETURN_META_VALUE(MRES_IGNORED, false); + RETURN_META_VALUE(MRES_SUPERCEDE, origReturnValue); }