diff --git a/include/hacks/AutoJoin.hpp b/include/hacks/AutoJoin.hpp index 29cd048a..814bb264 100644 --- a/include/hacks/AutoJoin.hpp +++ b/include/hacks/AutoJoin.hpp @@ -14,6 +14,8 @@ namespace shared namespace autojoin { +extern CatVar auto_queue; + void Update(); void UpdateSearch(); } diff --git a/src/hacks/AutoJoin.cpp b/src/hacks/AutoJoin.cpp index 6164c69d..9b10c13f 100644 --- a/src/hacks/AutoJoin.cpp +++ b/src/hacks/AutoJoin.cpp @@ -62,11 +62,11 @@ void UpdateSearch() } } +Timer timer{}; + void Update() { - static Timer timer; - - if (timer.test_and_set(500)) + if (timer.test_and_set(500)) { if (autojoin_team and UnassignedTeam()) { diff --git a/src/hacks/Walkbot.cpp b/src/hacks/Walkbot.cpp index 4f87a176..40e28e63 100644 --- a/src/hacks/Walkbot.cpp +++ b/src/hacks/Walkbot.cpp @@ -848,15 +848,13 @@ index_t SelectNextNode() bool free_move_used = false; +Timer slot_timer{}; + void UpdateSlot() { - static auto last_check = std::chrono::system_clock::now(); - auto ms = std::chrono::duration_cast( - std::chrono::system_clock::now() - last_check) - .count(); - - if (CE_GOOD(LOCAL_E) && CE_GOOD(LOCAL_W) && !g_pLocalPlayer->life_state && - ms > 1000) + if (!slot_timer.test_and_set(1000)) + return; + if (CE_GOOD(LOCAL_E) && CE_GOOD(LOCAL_W) && !g_pLocalPlayer->life_state) { IClientEntity *weapon = RAW_ENT(LOCAL_W); // IsBaseCombatWeapon() @@ -869,8 +867,6 @@ void UpdateSlot() } } } - - last_check = std::chrono::system_clock::now(); } void UpdateWalker() diff --git a/src/hooks/CreateMove.cpp b/src/hooks/CreateMove.cpp index 2b019dbe..25a8c093 100644 --- a/src/hooks/CreateMove.cpp +++ b/src/hooks/CreateMove.cpp @@ -242,7 +242,7 @@ bool CreateMove_hook(void *thisptr, float inputSample, CUserCmd *cmd) } g_Settings.bInvalid = false; -// hacks::shared::autojoin::Update(); + hacks::shared::autojoin::Update(); #if ENABLE_IPC == 1 static int team_joining_state = 0; diff --git a/src/hooks/others.cpp b/src/hooks/others.cpp index 685cb993..b877d358 100644 --- a/src/hooks/others.cpp +++ b/src/hooks/others.cpp @@ -406,6 +406,9 @@ void Shutdown_hook(void *_this, const char *reason) { original(_this, reason); } + + if (hacks::shared::autojoin::auto_queue) + tfmm::abandon(); } static CatVar resolver(CV_SWITCH, "resolver", "0", "Resolve angles");