diff --git a/src/hacks/AntiCheat.cpp b/src/hacks/AntiCheat.cpp index d478de08..af7cb445 100644 --- a/src/hacks/AntiCheat.cpp +++ b/src/hacks/AntiCheat.cpp @@ -115,14 +115,19 @@ ACListener listener; void Init() { - // FIXME free listener g_IGameEventManager->AddListener(&listener, false); } +void Shutdown() +{ + g_IGameEventManager->RemoveListener(&listener); +} + static InitRoutine EC([]() { EC::Register(EC::CreateMove, CreateMove, "cm_AntiCheat", EC::average); EC::Register(EC::LevelInit, ResetEverything, "init_AntiCheat", EC::average); EC::Register(EC::LevelShutdown, ResetEverything, "reset_AntiCheat", EC::average); + EC::Register(EC::Shutdown, Shutdown, "shutdown_AntiCheat", EC::average); Init(); }); } // namespace hacks::shared::anticheat diff --git a/src/hacks/CatBot.cpp b/src/hacks/CatBot.cpp index 209f3a06..d2f76579 100644 --- a/src/hacks/CatBot.cpp +++ b/src/hacks/CatBot.cpp @@ -922,6 +922,12 @@ void level_init() level_init_timer.update(); } +void shutdown() +{ + g_IEventManager2->RemoveListener(&listener()); + g_IEventManager2->RemoveListener(&listener2()); +} + #if ENABLE_VISUALS static void draw() { @@ -938,6 +944,7 @@ static InitRoutine runinit([]() { EC::Register(EC::CreateMove, cm, "cm_catbot", EC::average); EC::Register(EC::CreateMove, update, "cm2_catbot", EC::average); EC::Register(EC::LevelInit, level_init, "levelinit_catbot", EC::average); + EC::Register(EC::Shutdown, shutdown, "shutdown_catbot", EC::average); #if ENABLE_VISUALS EC::Register(EC::Draw, draw, "draw_catbot", EC::average); #endif diff --git a/src/hitrate.cpp b/src/hitrate.cpp index 7551f164..791cd411 100644 --- a/src/hitrate.cpp +++ b/src/hitrate.cpp @@ -135,5 +135,9 @@ HurtListener &listener() return l; } -InitRoutine init([]() { g_IGameEventManager->AddListener(&listener(), false); }); +InitRoutine init([]() { + g_IGameEventManager->AddListener(&listener(), false); + EC::Register( + EC::Shutdown, []() {}, "shutdown_hitrate"); +}); } // namespace hitrate diff --git a/src/visual/fidgetspinner.cpp b/src/visual/fidgetspinner.cpp index 5f2cc072..7cef00ed 100644 --- a/src/visual/fidgetspinner.cpp +++ b/src/visual/fidgetspinner.cpp @@ -88,6 +88,8 @@ void DrawSpinner() static InitRoutine init([]() { InitSpinner(); EC::Register(EC::Draw, DrawSpinner, "spinner"); + EC::Register( + EC::Shutdown, []() { g_IGameEventManager->RemoveListener(&spinner_listener); }, "shutdown_spinner"); }); #endif