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()
{
// 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

View File

@ -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

View File

@ -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

View File

@ -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