From dda1e3210cb80c96141d10ddc422f53f8f36910b Mon Sep 17 00:00:00 2001 From: Nemirtingas Date: Thu, 1 Aug 2019 17:04:49 +0200 Subject: [PATCH] Fixed dual hook on last function call --- overlay_experimental/Base_Hook.cpp | 2 +- overlay_experimental/Base_Hook.h | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/overlay_experimental/Base_Hook.cpp b/overlay_experimental/Base_Hook.cpp index 59d4762..d0da907 100644 --- a/overlay_experimental/Base_Hook.cpp +++ b/overlay_experimental/Base_Hook.cpp @@ -34,7 +34,7 @@ void Base_Hook::UnhookAll() } } -void Base_Hook::HookFuncs(std::pair hook) +void Base_Hook::HookFunc(std::pair hook) { if( DetourAttach(hook.first, hook.second) == 0 ) _hooked_funcs.emplace_back(hook); diff --git a/overlay_experimental/Base_Hook.h b/overlay_experimental/Base_Hook.h index 7fb9281..153bac6 100644 --- a/overlay_experimental/Base_Hook.h +++ b/overlay_experimental/Base_Hook.h @@ -29,13 +29,18 @@ public: void EndHook(); void UnhookAll(); - void HookFuncs(std::pair hook); + void HookFunc(std::pair hook); + + template + void HookFuncs(std::pair funcs) + { + HookFunc(funcs); + } template void HookFuncs(std::pair funcs, Args... args) { - _hooked_funcs.emplace_back(std::move(funcs)); - HookFuncs(funcs); + HookFunc(funcs); HookFuncs(args...); } };