From b17a56a7fd5c3fde76188f9b9955020198d7d393 Mon Sep 17 00:00:00 2001 From: ineed bots Date: Fri, 1 Sep 2023 01:11:55 -0600 Subject: [PATCH] update hooking --- src/utils/hook.hpp | 72 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 3 deletions(-) diff --git a/src/utils/hook.hpp b/src/utils/hook.hpp index 7e2f89a..2bb5ea9 100644 --- a/src/utils/hook.hpp +++ b/src/utils/hook.hpp @@ -99,7 +99,25 @@ namespace utils::hook template T invoke(Args... args) { - return static_cast(this->get_original())(args...); + return static_cast(this->get_original())(args...); + } + + template + T invoke_pascal(Args... args) + { + return static_cast(this->get_original())(args...); + } + + template + T invoke_this(Args... args) + { + return static_cast(this->get_original())(args...); + } + + template + T invoke_fast(Args... args) + { + return static_cast(this->get_original())(args...); } [[nodiscard]] void* get_original() const; @@ -153,15 +171,63 @@ namespace utils::hook return set(reinterpret_cast(place), value); } + template + static T get(void* place) + { + return *static_cast(place); + } + + template + static T get(const size_t place) + { + return get(reinterpret_cast(place)); + } + template static T invoke(size_t func, Args... args) { - return reinterpret_cast(func)(args...); + return reinterpret_cast(func)(args...); } template static T invoke(void* func, Args... args) { - return static_cast(func)(args...); + return static_cast(func)(args...); + } + + template + static T invoke_pascal(size_t func, Args... args) + { + return reinterpret_cast(func)(args...); + } + + template + static T invoke_pascal(void* func, Args... args) + { + return static_cast(func)(args...); + } + + template + static T invoke_this(size_t func, Args... args) + { + return reinterpret_cast(func)(args...); + } + + template + static T invoke_this(void* func, Args... args) + { + return static_cast(func)(args...); + } + + template + static T invoke_fast(size_t func, Args... args) + { + return reinterpret_cast(func)(args...); + } + + template + static T invoke_fast(void* func, Args... args) + { + return static_cast(func)(args...); } } \ No newline at end of file