From e8734a60f85b9233c4cd8bbc80ad1863ab7c5528 Mon Sep 17 00:00:00 2001 From: TotallyNotElite <1yourexperiment@protonmail.com> Date: Sat, 8 Sep 2018 19:29:57 +0200 Subject: [PATCH] New method to make createmove functions! --- include/hooks/CMakeLists.txt | 3 ++- include/hooks/HookTools.hpp | 14 ++++++++++++++ src/hooks/CMakeLists.txt | 3 ++- src/hooks/CreateMove.cpp | 6 ++++++ src/hooks/HookTools.cpp | 35 +++++++++++++++++++++++++++++++++++ 5 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 include/hooks/HookTools.hpp create mode 100644 src/hooks/HookTools.cpp diff --git a/include/hooks/CMakeLists.txt b/include/hooks/CMakeLists.txt index 9588f1d1..0d64d432 100755 --- a/include/hooks/CMakeLists.txt +++ b/include/hooks/CMakeLists.txt @@ -1,5 +1,6 @@ target_sources(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}/HookedMethods.hpp" + "${CMAKE_CURRENT_LIST_DIR}/HookTools.hpp" "${CMAKE_CURRENT_LIST_DIR}/PreDataUpdate.hpp") -target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") \ No newline at end of file +target_include_directories(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}") diff --git a/include/hooks/HookTools.hpp b/include/hooks/HookTools.hpp new file mode 100644 index 00000000..c7084e15 --- /dev/null +++ b/include/hooks/HookTools.hpp @@ -0,0 +1,14 @@ +#pragma once +#include +#include +#include +#include "core/logging.hpp" + +namespace HookTools { + void CreateMove(); +} + +struct CreateMove +{ + CreateMove(int priority = 5, std::function func = [](){}); +}; diff --git a/src/hooks/CMakeLists.txt b/src/hooks/CMakeLists.txt index f2b1d82a..6878ef52 100755 --- a/src/hooks/CMakeLists.txt +++ b/src/hooks/CMakeLists.txt @@ -16,8 +16,9 @@ target_sources(cathook PRIVATE "${CMAKE_CURRENT_LIST_DIR}/FireEvent.cpp" "${CMAKE_CURRENT_LIST_DIR}/FireEventClientSide.cpp" "${CMAKE_CURRENT_LIST_DIR}/IsPlayingTimeDemo.cpp" + "${CMAKE_CURRENT_LIST_DIR}/HookTools.cpp" "${CMAKE_CURRENT_LIST_DIR}/SendDatagram.cpp") if(EnableVisuals) add_subdirectory(visual) -endif() \ No newline at end of file +endif() diff --git a/src/hooks/CreateMove.cpp b/src/hooks/CreateMove.cpp index 83a494e5..e9f09dbf 100644 --- a/src/hooks/CreateMove.cpp +++ b/src/hooks/CreateMove.cpp @@ -14,6 +14,7 @@ #include #include #include "NavBot.hpp" +#include "HookTools.hpp" #include "HookedMethods.hpp" #include "PreDataUpdate.hpp" @@ -255,6 +256,11 @@ DEFINE_HOOKED_METHOD(CreateMove, bool, void *this_, float input_sample_time, hacks::shared::anti_anti_aim::createMove(); } + { + PROF_SECTION(CM_WRAPPER); + HookTools::CreateMove(); + } + #if ENABLE_IPC #if !LAGBOT_MODE if (hacks::shared::followbot::isEnabled()) diff --git a/src/hooks/HookTools.cpp b/src/hooks/HookTools.cpp new file mode 100644 index 00000000..8d3bc9c4 --- /dev/null +++ b/src/hooks/HookTools.cpp @@ -0,0 +1,35 @@ +#include "HookTools.hpp" + +std::vector>> &GetCreateMoves() +{ + static std::vector>> CreateMoves; + return CreateMoves; +} + +CreateMove::CreateMove(int priority, std::function func) +{ + auto &CreateMoves = GetCreateMoves(); + CreateMoves.emplace_back(priority, func); +} + +// ----------------------------------------------------------- + +void HookTools::CreateMove() +{ + for (auto i : GetCreateMoves()) + { + i.second(); + } +} + +static InitRoutine init([]() { + auto &CreateMoves = GetCreateMoves(); + std::sort(CreateMoves.begin(), + CreateMoves.end(), + [](std::pair> a, + std::pair> b) { + return a.first > b.first; + }); + logging::Info("Sorted CreateMove functions: %i", + CreateMoves.size()); +});