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);