Fix All other event crashes

Found some more i did not notice were a thing before
This commit is contained in:
BenCat07 2020-05-27 14:08:56 +02:00
parent 9ca31329f9
commit fb14172081
4 changed files with 20 additions and 2 deletions

View File

@ -115,14 +115,19 @@ ACListener listener;
void Init() void Init()
{ {
// FIXME free listener
g_IGameEventManager->AddListener(&listener, false); g_IGameEventManager->AddListener(&listener, false);
} }
void Shutdown()
{
g_IGameEventManager->RemoveListener(&listener);
}
static InitRoutine EC([]() { static InitRoutine EC([]() {
EC::Register(EC::CreateMove, CreateMove, "cm_AntiCheat", EC::average); EC::Register(EC::CreateMove, CreateMove, "cm_AntiCheat", EC::average);
EC::Register(EC::LevelInit, ResetEverything, "init_AntiCheat", EC::average); EC::Register(EC::LevelInit, ResetEverything, "init_AntiCheat", EC::average);
EC::Register(EC::LevelShutdown, ResetEverything, "reset_AntiCheat", EC::average); EC::Register(EC::LevelShutdown, ResetEverything, "reset_AntiCheat", EC::average);
EC::Register(EC::Shutdown, Shutdown, "shutdown_AntiCheat", EC::average);
Init(); Init();
}); });
} // namespace hacks::shared::anticheat } // namespace hacks::shared::anticheat

View File

@ -922,6 +922,12 @@ void level_init()
level_init_timer.update(); level_init_timer.update();
} }
void shutdown()
{
g_IEventManager2->RemoveListener(&listener());
g_IEventManager2->RemoveListener(&listener2());
}
#if ENABLE_VISUALS #if ENABLE_VISUALS
static void draw() static void draw()
{ {
@ -938,6 +944,7 @@ static InitRoutine runinit([]() {
EC::Register(EC::CreateMove, cm, "cm_catbot", EC::average); EC::Register(EC::CreateMove, cm, "cm_catbot", EC::average);
EC::Register(EC::CreateMove, update, "cm2_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::LevelInit, level_init, "levelinit_catbot", EC::average);
EC::Register(EC::Shutdown, shutdown, "shutdown_catbot", EC::average);
#if ENABLE_VISUALS #if ENABLE_VISUALS
EC::Register(EC::Draw, draw, "draw_catbot", EC::average); EC::Register(EC::Draw, draw, "draw_catbot", EC::average);
#endif #endif

View File

@ -135,5 +135,9 @@ HurtListener &listener()
return l; return l;
} }
InitRoutine init([]() { g_IGameEventManager->AddListener(&listener(), false); }); InitRoutine init([]() {
g_IGameEventManager->AddListener(&listener(), false);
EC::Register(
EC::Shutdown, []() {}, "shutdown_hitrate");
});
} // namespace hitrate } // namespace hitrate

View File

@ -88,6 +88,8 @@ void DrawSpinner()
static InitRoutine init([]() { static InitRoutine init([]() {
InitSpinner(); InitSpinner();
EC::Register(EC::Draw, DrawSpinner, "spinner"); EC::Register(EC::Draw, DrawSpinner, "spinner");
EC::Register(
EC::Shutdown, []() { g_IGameEventManager->RemoveListener(&spinner_listener); }, "shutdown_spinner");
}); });
#endif #endif