From c42a26bb664ba88091c6cf7be2c73fd9cea7e076 Mon Sep 17 00:00:00 2001 From: David Anderson <dvander@alliedmods.net> Date: Sat, 12 Apr 2008 01:33:55 +0000 Subject: [PATCH] fixed crash bug on shutdown removed implementations from header --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%402043 --- extensions/sdktools/output.cpp | 39 ++++++++++++++++++++++++++++++++++ extensions/sdktools/output.h | 37 +++++--------------------------- 2 files changed, 44 insertions(+), 32 deletions(-) diff --git a/extensions/sdktools/output.cpp b/extensions/sdktools/output.cpp index 1f69edcf..2dd5d550 100644 --- a/extensions/sdktools/output.cpp +++ b/extensions/sdktools/output.cpp @@ -35,6 +35,45 @@ ISourcePawnEngine *spengine = NULL; EntityOutputManager g_OutputManager; +EntityOutputManager::EntityOutputManager() +{ + info_address = NULL; + info_callback = NULL; + HookCount = 0; + is_detoured = false; + enabled = false; +} + +EntityOutputManager::~EntityOutputManager() +{ + if (!enabled) + { + return; + } + + EntityOutputs->Destroy(); + ClassNames->Destroy(); + ShutdownFireEventDetour(); +} + +void EntityOutputManager::Init() +{ + enabled = CreateFireEventDetour(); + + if (!enabled) + { + return; + } + + EntityOutputs = adtfactory->CreateBasicTrie(); + ClassNames = adtfactory->CreateBasicTrie(); +} + +bool EntityOutputManager::IsEnabled() +{ + return enabled; +} + bool EntityOutputManager::CreateFireEventDetour() { if (!g_pGameConf->GetMemSig("FireOutput", &info_address) || !info_address) diff --git a/extensions/sdktools/output.h b/extensions/sdktools/output.h index 8c28f78b..1c9a1996 100644 --- a/extensions/sdktools/output.h +++ b/extensions/sdktools/output.h @@ -91,39 +91,12 @@ struct ClassNameStruct class EntityOutputManager : public IPluginsListener { public: - EntityOutputManager() - { - info_address = NULL; - info_callback = NULL; - HookCount = 0; - is_detoured = false; - enabled = false; - } + EntityOutputManager(); + ~EntityOutputManager(); +public: + void Init(); - ~EntityOutputManager() - { - EntityOutputs->Destroy(); - ClassNames->Destroy(); - ShutdownFireEventDetour(); - } - - void Init() - { - enabled = CreateFireEventDetour(); - - if (!enabled) - { - return; - } - - EntityOutputs = adtfactory->CreateBasicTrie(); - ClassNames = adtfactory->CreateBasicTrie(); - } - - bool IsEnabled() - { - return enabled; - } + bool IsEnabled(); void FireEventDetour(void *pOutput, CBaseEntity *pActivator, CBaseEntity *pCaller, float fDelay);