Replace usages of deprecated Sourcehook Add/Remove macros (bug 5631, r=dvander).
authorKyle Sanderson <kyle.leet@gmail.com>
Sat Mar 16 22:15:25 2013 -0400 (2013-03-16)
changeset 3819d17aed3d46bf
parent 3818 f25d64a5cd7a
child 3820 30f8cf3de6c4
Replace usages of deprecated Sourcehook Add/Remove macros (bug 5631, r=dvander).
core/ChatTriggers.cpp
core/ConCmdManager.cpp
core/ConVarManager.cpp
core/ConsoleDetours.cpp
core/CoreConfig.cpp
core/EventManager.cpp
core/Logger.cpp
core/MenuStyle_Valve.cpp
core/NextMap.cpp
core/PlayerManager.cpp
core/UserMessages.cpp
core/concmd_cleaner.cpp
core/sourcemod.cpp
extensions/cstrike/extension.cpp
extensions/sdkhooks/extension.cpp
extensions/sdktools/extension.cpp
extensions/sdktools/hooks.cpp
extensions/sdktools/tenatives.cpp
extensions/sdktools/voice.cpp
extensions/sdktools/vsound.cpp
public/mms_sample_ext/stub_mm.cpp
     1.1 --- a/core/ChatTriggers.cpp	Sat Mar 16 18:05:22 2013 -0400
     1.2 +++ b/core/ChatTriggers.cpp	Sat Mar 16 22:15:25 2013 -0400
     1.3 @@ -123,13 +123,13 @@
     1.4  
     1.5  	if (m_pSayCmd)
     1.6  	{
     1.7 -		SH_ADD_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayCmd, this, &ChatTriggers::OnSayCommand_Pre, false);
     1.8 -		SH_ADD_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayCmd, this, &ChatTriggers::OnSayCommand_Post, true);
     1.9 +		SH_ADD_HOOK(ConCommand, Dispatch, m_pSayCmd, SH_MEMBER(this, &ChatTriggers::OnSayCommand_Pre), false);
    1.10 +		SH_ADD_HOOK(ConCommand, Dispatch, m_pSayCmd, SH_MEMBER(this, &ChatTriggers::OnSayCommand_Post), true);
    1.11  	}
    1.12  	if (m_pSayTeamCmd)
    1.13  	{
    1.14 -		SH_ADD_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayTeamCmd, this, &ChatTriggers::OnSayCommand_Pre, false);
    1.15 -		SH_ADD_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayTeamCmd, this, &ChatTriggers::OnSayCommand_Post, true);
    1.16 +		SH_ADD_HOOK(ConCommand, Dispatch, m_pSayTeamCmd, SH_MEMBER(this, &ChatTriggers::OnSayCommand_Pre), false);
    1.17 +		SH_ADD_HOOK(ConCommand, Dispatch, m_pSayTeamCmd, SH_MEMBER(this, &ChatTriggers::OnSayCommand_Post), true);
    1.18  	}
    1.19  }
    1.20  
    1.21 @@ -137,13 +137,13 @@
    1.22  {
    1.23  	if (m_pSayTeamCmd)
    1.24  	{
    1.25 -		SH_REMOVE_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayTeamCmd, this, &ChatTriggers::OnSayCommand_Post, true);
    1.26 -		SH_REMOVE_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayTeamCmd, this, &ChatTriggers::OnSayCommand_Pre, false);
    1.27 +		SH_REMOVE_HOOK(ConCommand, Dispatch, m_pSayTeamCmd, SH_MEMBER(this, &ChatTriggers::OnSayCommand_Post), true);
    1.28 +		SH_REMOVE_HOOK(ConCommand, Dispatch, m_pSayTeamCmd, SH_MEMBER(this, &ChatTriggers::OnSayCommand_Pre), false);
    1.29  	}
    1.30  	if (m_pSayCmd)
    1.31  	{
    1.32 -		SH_REMOVE_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayCmd, this, &ChatTriggers::OnSayCommand_Post, true);
    1.33 -		SH_REMOVE_HOOK_MEMFUNC(ConCommand, Dispatch, m_pSayCmd, this, &ChatTriggers::OnSayCommand_Pre, false);
    1.34 +		SH_REMOVE_HOOK(ConCommand, Dispatch, m_pSayCmd, SH_MEMBER(this, &ChatTriggers::OnSayCommand_Post), true);
    1.35 +		SH_REMOVE_HOOK(ConCommand, Dispatch, m_pSayCmd, SH_MEMBER(this, &ChatTriggers::OnSayCommand_Pre), false);
    1.36  	}
    1.37  
    1.38  	g_Forwards.ReleaseForward(m_pShouldFloodBlock);
     2.1 --- a/core/ConCmdManager.cpp	Sat Mar 16 18:05:22 2013 -0400
     2.2 +++ b/core/ConCmdManager.cpp	Sat Mar 16 22:15:25 2013 -0400
     2.3 @@ -75,13 +75,13 @@
     2.4  {
     2.5  	g_PluginSys.AddPluginsListener(this);
     2.6  	g_RootMenu.AddRootConsoleCommand("cmds", "List console commands", this);
     2.7 -	SH_ADD_HOOK_MEMFUNC(IServerGameClients, SetCommandClient, serverClients, this, &ConCmdManager::SetCommandClient, false);
     2.8 +	SH_ADD_HOOK(IServerGameClients, SetCommandClient, serverClients, SH_MEMBER(this, &ConCmdManager::SetCommandClient), false);
     2.9  }
    2.10  
    2.11  void ConCmdManager::OnSourceModShutdown()
    2.12  {
    2.13  	/* All commands should already be removed by the time we're done */
    2.14 -	SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, SetCommandClient, serverClients, this, &ConCmdManager::SetCommandClient, false);
    2.15 +	SH_REMOVE_HOOK(IServerGameClients, SetCommandClient, serverClients, SH_MEMBER(this, &ConCmdManager::SetCommandClient), false);
    2.16  	g_RootMenu.RemoveRootConsoleCommand("cmds", this);
    2.17  }
    2.18  
    2.19 @@ -826,7 +826,7 @@
    2.20  			if (is_read_safe)
    2.21  			{
    2.22  				/* Remove the external hook */
    2.23 -				SH_REMOVE_HOOK_STATICFUNC(ConCommand, Dispatch, info->pCmd, CommandCallback, false);
    2.24 +				SH_REMOVE_HOOK(ConCommand, Dispatch, info->pCmd, SH_STATIC(CommandCallback), false);
    2.25  			}
    2.26  			if (untrack)
    2.27  			{
    2.28 @@ -897,7 +897,7 @@
    2.29  		else
    2.30  		{
    2.31  			TrackConCommandBase(pCmd, this);
    2.32 -			SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, pCmd, CommandCallback, false);
    2.33 +			SH_ADD_HOOK(ConCommand, Dispatch, pCmd, SH_STATIC(CommandCallback), false);
    2.34  		}
    2.35  
    2.36  		pInfo->pCmd = pCmd;
     3.1 --- a/core/ConVarManager.cpp	Sat Mar 16 18:05:22 2013 -0400
     3.2 +++ b/core/ConVarManager.cpp	Sat Mar 16 22:15:25 2013 -0400
     3.3 @@ -121,12 +121,12 @@
     3.4  #if SOURCE_ENGINE == SE_EPISODEONE
     3.5  	if (g_SMAPI->GetGameDLLVersion() >= 6)
     3.6  	{
     3.7 -		SH_ADD_HOOK_MEMFUNC(IServerGameDLL, OnQueryCvarValueFinished, gamedll, this, &ConVarManager::OnQueryCvarValueFinished, false);
     3.8 +		SH_ADD_HOOK(IServerGameDLL, OnQueryCvarValueFinished, gamedll, SH_MEMBER(this, &ConVarManager::OnQueryCvarValueFinished), false);
     3.9  		m_bIsDLLQueryHooked = true;
    3.10  	}
    3.11  #endif
    3.12  
    3.13 -	SH_ADD_HOOK_STATICFUNC(ICvar, CallGlobalChangeCallbacks, icvar, OnConVarChanged, false);
    3.14 +	SH_ADD_HOOK(ICvar, CallGlobalChangeCallbacks, icvar, SH_STATIC(OnConVarChanged), false);
    3.15  
    3.16  	g_PluginSys.AddPluginsListener(this);
    3.17  
    3.18 @@ -181,17 +181,17 @@
    3.19  	/* Unhook things */
    3.20  	if (m_bIsDLLQueryHooked)
    3.21  	{
    3.22 -		SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, OnQueryCvarValueFinished, gamedll, this, &ConVarManager::OnQueryCvarValueFinished, false);
    3.23 +		SH_REMOVE_HOOK(IServerGameDLL, OnQueryCvarValueFinished, gamedll, SH_MEMBER(this, &ConVarManager::OnQueryCvarValueFinished), false);
    3.24  		m_bIsDLLQueryHooked = false;
    3.25  	}
    3.26  	else if (m_bIsVSPQueryHooked)
    3.27  	{
    3.28 -		SH_REMOVE_HOOK_MEMFUNC(IServerPluginCallbacks, OnQueryCvarValueFinished, vsp_interface, this, &ConVarManager::OnQueryCvarValueFinished, false);
    3.29 +		SH_REMOVE_HOOK(IServerPluginCallbacks, OnQueryCvarValueFinished, vsp_interface, SH_MEMBER(this, &ConVarManager::OnQueryCvarValueFinished), false);
    3.30  		m_bIsVSPQueryHooked = false;
    3.31  	}
    3.32  #endif
    3.33  
    3.34 -	SH_REMOVE_HOOK_STATICFUNC(ICvar, CallGlobalChangeCallbacks, icvar, OnConVarChanged, false);
    3.35 +	SH_REMOVE_HOOK(ICvar, CallGlobalChangeCallbacks, icvar, SH_STATIC(OnConVarChanged), false);
    3.36  
    3.37  	/* Remove the 'convars' option from the 'sm' console command */
    3.38  	g_RootMenu.RemoveRootConsoleCommand("cvars", this);
    3.39 @@ -230,7 +230,7 @@
    3.40  #endif
    3.41  
    3.42  #if SOURCE_ENGINE != SE_DARKMESSIAH
    3.43 -	SH_ADD_HOOK_MEMFUNC(IServerPluginCallbacks, OnQueryCvarValueFinished, vsp_interface, this, &ConVarManager::OnQueryCvarValueFinished, false);
    3.44 +	SH_ADD_HOOK(IServerPluginCallbacks, OnQueryCvarValueFinished, vsp_interface, SH_MEMBER(this, &ConVarManager::OnQueryCvarValueFinished), false);
    3.45  	m_bIsVSPQueryHooked = true;
    3.46  #endif
    3.47  }
     4.1 --- a/core/ConsoleDetours.cpp	Sat Mar 16 18:05:22 2013 -0400
     4.2 +++ b/core/ConsoleDetours.cpp	Sat Mar 16 22:15:25 2013 -0400
     4.3 @@ -731,10 +731,10 @@
     4.4  		/* See bug 4020 - we can't optimize this because looking at the vtable
     4.5  		 * is probably more expensive, since there's no SH_GET_ORIG_VFNPTR_ENTRY.
     4.6  		 */
     4.7 -		SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, pBase, DummyHook, false);
     4.8 +		SH_ADD_HOOK(ConCommand, Dispatch, pBase, SH_STATIC(DummyHook), false);
     4.9  		dummy_hook_set = true;
    4.10  		pBase->Dispatch();
    4.11 -		SH_REMOVE_HOOK_STATICFUNC(ConCommand, Dispatch, pBase, DummyHook, false);
    4.12 +		SH_REMOVE_HOOK(ConCommand, Dispatch, pBase, SH_STATIC(DummyHook), false);
    4.13  	}
    4.14  	else
    4.15  	{
     5.1 --- a/core/CoreConfig.cpp	Sat Mar 16 18:05:22 2013 -0400
     5.2 +++ b/core/CoreConfig.cpp	Sat Mar 16 22:15:25 2013 -0400
     5.3 @@ -136,8 +136,8 @@
     5.4  
     5.5  	if (g_pExecPtr != NULL)
     5.6  	{
     5.7 -		SH_REMOVE_HOOK_STATICFUNC(ConCommand, Dispatch, g_pExecPtr, Hook_ExecDispatchPre, false);
     5.8 -		SH_REMOVE_HOOK_STATICFUNC(ConCommand, Dispatch, g_pExecPtr, Hook_ExecDispatchPost, true);
     5.9 +		SH_REMOVE_HOOK(ConCommand, Dispatch, g_pExecPtr, SH_STATIC(Hook_ExecDispatchPre), false);
    5.10 +		SH_REMOVE_HOOK(ConCommand, Dispatch, g_pExecPtr, SH_STATIC(Hook_ExecDispatchPost), true);
    5.11  		g_pExecPtr = NULL;
    5.12  	}
    5.13  }
    5.14 @@ -162,8 +162,8 @@
    5.15  			g_pExecPtr = FindCommand("exec");
    5.16  			if (g_pExecPtr != NULL)
    5.17  			{
    5.18 -				SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, g_pExecPtr, Hook_ExecDispatchPre, false);
    5.19 -				SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, g_pExecPtr, Hook_ExecDispatchPost, true);
    5.20 +				SH_ADD_HOOK(ConCommand, Dispatch, g_pExecPtr, SH_STATIC(Hook_ExecDispatchPre), false);
    5.21 +				SH_ADD_HOOK(ConCommand, Dispatch, g_pExecPtr, SH_STATIC(Hook_ExecDispatchPost), true);
    5.22  			}
    5.23  			else
    5.24  			{
     6.1 --- a/core/EventManager.cpp	Sat Mar 16 18:05:22 2013 -0400
     6.2 +++ b/core/EventManager.cpp	Sat Mar 16 22:15:25 2013 -0400
     6.3 @@ -79,8 +79,8 @@
     6.4  void EventManager::OnSourceModAllInitialized()
     6.5  {
     6.6  	/* Add a hook for IGameEventManager2::FireEvent() */
     6.7 -	SH_ADD_HOOK_MEMFUNC(IGameEventManager2, FireEvent, gameevents, this, &EventManager::OnFireEvent, false);
     6.8 -	SH_ADD_HOOK_MEMFUNC(IGameEventManager2, FireEvent, gameevents, this, &EventManager::OnFireEvent_Post, true);
     6.9 +	SH_ADD_HOOK(IGameEventManager2, FireEvent, gameevents, SH_MEMBER(this, &EventManager::OnFireEvent), false);
    6.10 +	SH_ADD_HOOK(IGameEventManager2, FireEvent, gameevents, SH_MEMBER(this, &EventManager::OnFireEvent_Post), true);
    6.11  
    6.12  	HandleAccess sec;
    6.13  
    6.14 @@ -96,8 +96,8 @@
    6.15  void EventManager::OnSourceModShutdown()
    6.16  {
    6.17  	/* Remove hook for IGameEventManager2::FireEvent() */
    6.18 -	SH_REMOVE_HOOK_MEMFUNC(IGameEventManager2, FireEvent, gameevents, this, &EventManager::OnFireEvent, false);
    6.19 -	SH_REMOVE_HOOK_MEMFUNC(IGameEventManager2, FireEvent, gameevents, this, &EventManager::OnFireEvent_Post, true);
    6.20 +	SH_REMOVE_HOOK(IGameEventManager2, FireEvent, gameevents, SH_MEMBER(this, &EventManager::OnFireEvent), false);
    6.21 +	SH_REMOVE_HOOK(IGameEventManager2, FireEvent, gameevents, SH_MEMBER(this, &EventManager::OnFireEvent_Post), true);
    6.22  
    6.23  	/* Remove the 'GameEvent' handle type */
    6.24  	g_HandleSys.RemoveType(m_EventType, g_pCoreIdent);
     7.1 --- a/core/Logger.cpp	Sat Mar 16 18:05:22 2013 -0400
     7.2 +++ b/core/Logger.cpp	Sat Mar 16 22:15:25 2013 -0400
     7.3 @@ -108,13 +108,13 @@
     7.4  {
     7.5  	InitLogger(m_Mode);
     7.6  
     7.7 -	SH_ADD_HOOK_STATICFUNC(IVEngineServer, LogPrint, engine, HookLogPrint, false);
     7.8 +	SH_ADD_HOOK(IVEngineServer, LogPrint, engine, SH_STATIC(HookLogPrint), false);
     7.9  }
    7.10  
    7.11  void Logger::OnSourceModAllShutdown()
    7.12  {
    7.13  	CloseLogger();
    7.14 -	SH_REMOVE_HOOK_STATICFUNC(IVEngineServer, LogPrint, engine, HookLogPrint, false);
    7.15 +	SH_REMOVE_HOOK(IVEngineServer, LogPrint, engine, SH_STATIC(HookLogPrint), false);
    7.16  }
    7.17  
    7.18  void Logger::OnSourceModLevelChange(const char *mapName)
     8.1 --- a/core/MenuStyle_Valve.cpp	Sat Mar 16 18:05:22 2013 -0400
     8.2 +++ b/core/MenuStyle_Valve.cpp	Sat Mar 16 22:15:25 2013 -0400
     8.3 @@ -66,14 +66,14 @@
     8.4  void ValveMenuStyle::OnSourceModAllInitialized()
     8.5  {
     8.6  	g_Players.AddClientListener(this);
     8.7 -	SH_ADD_HOOK_MEMFUNC(IServerPluginHelpers, CreateMessage, serverpluginhelpers, this, &ValveMenuStyle::HookCreateMessage, false);
     8.8 +	SH_ADD_HOOK(IServerPluginHelpers, CreateMessage, serverpluginhelpers, SH_MEMBER(this, &ValveMenuStyle::HookCreateMessage), false);
     8.9  	g_pSPHCC = SH_GET_CALLCLASS(serverpluginhelpers);
    8.10  }
    8.11  
    8.12  void ValveMenuStyle::OnSourceModShutdown()
    8.13  {
    8.14  	SH_RELEASE_CALLCLASS(g_pSPHCC);
    8.15 -	SH_REMOVE_HOOK_MEMFUNC(IServerPluginHelpers, CreateMessage, serverpluginhelpers, this, &ValveMenuStyle::HookCreateMessage, false);
    8.16 +	SH_REMOVE_HOOK(IServerPluginHelpers, CreateMessage, serverpluginhelpers, SH_MEMBER(this, &ValveMenuStyle::HookCreateMessage), false);
    8.17  	g_Players.RemoveClientListener(this);
    8.18  }
    8.19  
     9.1 --- a/core/NextMap.cpp	Sat Mar 16 18:05:22 2013 -0400
     9.2 +++ b/core/NextMap.cpp	Sat Mar 16 22:15:25 2013 -0400
     9.3 @@ -69,13 +69,13 @@
     9.4  #if SOURCE_ENGINE >= SE_ORANGEBOX
     9.5  	SH_ADD_HOOK(IVEngineServer, ChangeLevel, engine, SH_MEMBER(this, &NextMapManager::HookChangeLevel), false);
     9.6  #else
     9.7 -	SH_ADD_HOOK_MEMFUNC(IVEngineServer, ChangeLevel, engine, this, &NextMapManager::HookChangeLevel, false);
     9.8 +	SH_ADD_HOOK(IVEngineServer, ChangeLevel, engine, SH_MEMBER(this, &NextMapManager::HookChangeLevel), false);
     9.9  #endif
    9.10  
    9.11  	ConCommand *pCmd = FindCommand("changelevel");
    9.12  	if (pCmd != NULL)
    9.13  	{
    9.14 -		SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, pCmd, CmdChangeLevelCallback, false);
    9.15 +		SH_ADD_HOOK(ConCommand, Dispatch, pCmd, SH_STATIC(CmdChangeLevelCallback), false);
    9.16  		changeLevelCmd = pCmd;
    9.17  	}
    9.18  }
    9.19 @@ -85,12 +85,12 @@
    9.20  #if SOURCE_ENGINE >= SE_ORANGEBOX
    9.21  	SH_REMOVE_HOOK(IVEngineServer, ChangeLevel, engine, SH_MEMBER(this, &NextMapManager::HookChangeLevel), false);
    9.22  #else
    9.23 -	SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, ChangeLevel, engine, this, &NextMapManager::HookChangeLevel, false);
    9.24 +	SH_REMOVE_HOOK(IVEngineServer, ChangeLevel, engine, SH_MEMBER(this, &NextMapManager::HookChangeLevel), false);
    9.25  #endif
    9.26  
    9.27  	if (changeLevelCmd != NULL)
    9.28  	{
    9.29 -		SH_REMOVE_HOOK_STATICFUNC(ConCommand, Dispatch, changeLevelCmd, CmdChangeLevelCallback, false);
    9.30 +		SH_REMOVE_HOOK(ConCommand, Dispatch, changeLevelCmd, SH_STATIC(CmdChangeLevelCallback), false);
    9.31  	}
    9.32  
    9.33  	SourceHook::List<MapChangeData *>::iterator iter;
    10.1 --- a/core/PlayerManager.cpp	Sat Mar 16 18:05:22 2013 -0400
    10.2 +++ b/core/PlayerManager.cpp	Sat Mar 16 22:15:25 2013 -0400
    10.3 @@ -132,14 +132,14 @@
    10.4  
    10.5  void PlayerManager::OnSourceModAllInitialized()
    10.6  {
    10.7 -	SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientConnect, serverClients, this, &PlayerManager::OnClientConnect, false);
    10.8 -	SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientConnect, serverClients, this, &PlayerManager::OnClientConnect_Post, true);
    10.9 -	SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientPutInServer, serverClients, this, &PlayerManager::OnClientPutInServer, true);
   10.10 -	SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientDisconnect, serverClients, this, &PlayerManager::OnClientDisconnect, false);
   10.11 -	SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientDisconnect, serverClients, this, &PlayerManager::OnClientDisconnect_Post, true);
   10.12 -	SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientCommand, serverClients, this, &PlayerManager::OnClientCommand, false);
   10.13 -	SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientSettingsChanged, serverClients, this, &PlayerManager::OnClientSettingsChanged, true);
   10.14 -	SH_ADD_HOOK_MEMFUNC(IServerGameDLL, ServerActivate, gamedll, this, &PlayerManager::OnServerActivate, true);
   10.15 +	SH_ADD_HOOK(IServerGameClients, ClientConnect, serverClients, SH_MEMBER(this, &PlayerManager::OnClientConnect), false);
   10.16 +	SH_ADD_HOOK(IServerGameClients, ClientConnect, serverClients, SH_MEMBER(this, &PlayerManager::OnClientConnect_Post), true);
   10.17 +	SH_ADD_HOOK(IServerGameClients, ClientPutInServer, serverClients, SH_MEMBER(this, &PlayerManager::OnClientPutInServer), true);
   10.18 +	SH_ADD_HOOK(IServerGameClients, ClientDisconnect, serverClients, SH_MEMBER(this, &PlayerManager::OnClientDisconnect), false);
   10.19 +	SH_ADD_HOOK(IServerGameClients, ClientDisconnect, serverClients, SH_MEMBER(this, &PlayerManager::OnClientDisconnect_Post), true);
   10.20 +	SH_ADD_HOOK(IServerGameClients, ClientCommand, serverClients, SH_MEMBER(this, &PlayerManager::OnClientCommand), false);
   10.21 +	SH_ADD_HOOK(IServerGameClients, ClientSettingsChanged, serverClients, SH_MEMBER(this, &PlayerManager::OnClientSettingsChanged), true);
   10.22 +	SH_ADD_HOOK(IServerGameDLL, ServerActivate, gamedll, SH_MEMBER(this, &PlayerManager::OnServerActivate), true);
   10.23  
   10.24  	g_ShareSys.AddInterface(NULL, this);
   10.25  
   10.26 @@ -167,21 +167,21 @@
   10.27  	ConCommand *pCmd = FindCommand("maxplayers");
   10.28  	if (pCmd != NULL)
   10.29  	{
   10.30 -		SH_ADD_HOOK_STATICFUNC(ConCommand, Dispatch, pCmd, CmdMaxplayersCallback, true);
   10.31 +		SH_ADD_HOOK(ConCommand, Dispatch, pCmd, SH_STATIC(CmdMaxplayersCallback), true);
   10.32  		maxplayersCmd = pCmd;
   10.33  	}
   10.34  }
   10.35  
   10.36  void PlayerManager::OnSourceModShutdown()
   10.37  {
   10.38 -	SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientConnect, serverClients, this, &PlayerManager::OnClientConnect, false);
   10.39 -	SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientConnect, serverClients, this, &PlayerManager::OnClientConnect_Post, true);
   10.40 -	SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientPutInServer, serverClients, this, &PlayerManager::OnClientPutInServer, true);
   10.41 -	SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientDisconnect, serverClients, this, &PlayerManager::OnClientDisconnect, false);
   10.42 -	SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientDisconnect, serverClients, this, &PlayerManager::OnClientDisconnect_Post, true);
   10.43 -	SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientCommand, serverClients, this, &PlayerManager::OnClientCommand, false);
   10.44 -	SH_REMOVE_HOOK_MEMFUNC(IServerGameClients, ClientSettingsChanged, serverClients, this, &PlayerManager::OnClientSettingsChanged, true);
   10.45 -	SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, ServerActivate, gamedll, this, &PlayerManager::OnServerActivate, true);
   10.46 +	SH_REMOVE_HOOK(IServerGameClients, ClientConnect, serverClients, SH_MEMBER(this, &PlayerManager::OnClientConnect), false);
   10.47 +	SH_REMOVE_HOOK(IServerGameClients, ClientConnect, serverClients, SH_MEMBER(this, &PlayerManager::OnClientConnect_Post), true);
   10.48 +	SH_REMOVE_HOOK(IServerGameClients, ClientPutInServer, serverClients, SH_MEMBER(this, &PlayerManager::OnClientPutInServer), true);
   10.49 +	SH_REMOVE_HOOK(IServerGameClients, ClientDisconnect, serverClients, SH_MEMBER(this, &PlayerManager::OnClientDisconnect), false);
   10.50 +	SH_REMOVE_HOOK(IServerGameClients, ClientDisconnect, serverClients, SH_MEMBER(this, &PlayerManager::OnClientDisconnect_Post), true);
   10.51 +	SH_REMOVE_HOOK(IServerGameClients, ClientCommand, serverClients, SH_MEMBER(this, &PlayerManager::OnClientCommand), false);
   10.52 +	SH_REMOVE_HOOK(IServerGameClients, ClientSettingsChanged, serverClients, SH_MEMBER(this, &PlayerManager::OnClientSettingsChanged), true);
   10.53 +	SH_REMOVE_HOOK(IServerGameDLL, ServerActivate, gamedll, SH_MEMBER(this, &PlayerManager::OnServerActivate), true);
   10.54  
   10.55  	/* Release forwards */
   10.56  	g_Forwards.ReleaseForward(m_clconnect);
   10.57 @@ -203,7 +203,7 @@
   10.58  
   10.59  	if (maxplayersCmd != NULL)
   10.60  	{
   10.61 -		SH_REMOVE_HOOK_STATICFUNC(ConCommand, Dispatch, maxplayersCmd, CmdMaxplayersCallback, true);
   10.62 +		SH_REMOVE_HOOK(ConCommand, Dispatch, maxplayersCmd, SH_STATIC(CmdMaxplayersCallback), true);
   10.63  	}
   10.64  }
   10.65  
    11.1 --- a/core/UserMessages.cpp	Sat Mar 16 18:05:22 2013 -0400
    11.2 +++ b/core/UserMessages.cpp	Sat Mar 16 22:15:25 2013 -0400
    11.3 @@ -97,13 +97,13 @@
    11.4  	if (m_HookCount)
    11.5  	{
    11.6  #if SOURCE_ENGINE == SE_CSGO
    11.7 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, SendUserMessage, engine, this, &UserMessages::OnSendUserMessage_Pre, false);
    11.8 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, SendUserMessage, engine, this, &UserMessages::OnSendUserMessage_Post, true);
    11.9 +		SH_REMOVE_HOOK(IVEngineServer, SendUserMessage, engine, SH_MEMBER(this, &UserMessages::OnSendUserMessage_Pre), false);
   11.10 +		SH_REMOVE_HOOK(IVEngineServer, SendUserMessage, engine, SH_MEMBER(this, &UserMessages::OnSendUserMessage_Post), true);
   11.11  #else
   11.12 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, UserMessageBegin, engine, this, &UserMessages::OnStartMessage_Pre, false);
   11.13 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, UserMessageBegin, engine, this, &UserMessages::OnStartMessage_Post, true);
   11.14 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, MessageEnd, engine, this, &UserMessages::OnMessageEnd_Pre, false);
   11.15 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, MessageEnd, engine, this, &UserMessages::OnMessageEnd_Post, true);
   11.16 +		SH_REMOVE_HOOK(IVEngineServer, UserMessageBegin, engine, SH_MEMBER(this, &UserMessages::OnStartMessage_Pre), false);
   11.17 +		SH_REMOVE_HOOK(IVEngineServer, UserMessageBegin, engine, SH_MEMBER(this, &UserMessages::OnStartMessage_Post), true);
   11.18 +		SH_REMOVE_HOOK(IVEngineServer, MessageEnd, engine, SH_MEMBER(this, &UserMessages::OnMessageEnd_Pre), false);
   11.19 +		SH_REMOVE_HOOK(IVEngineServer, MessageEnd, engine, SH_MEMBER(this, &UserMessages::OnMessageEnd_Post), true);
   11.20  #endif
   11.21  	}
   11.22  	m_HookCount = 0;
   11.23 @@ -416,13 +416,13 @@
   11.24  	if (!m_HookCount++)
   11.25  	{
   11.26  #if SOURCE_ENGINE == SE_CSGO
   11.27 -		SH_ADD_HOOK_MEMFUNC(IVEngineServer, SendUserMessage, engine, this, &UserMessages::OnSendUserMessage_Pre, false);
   11.28 -		SH_ADD_HOOK_MEMFUNC(IVEngineServer, SendUserMessage, engine, this, &UserMessages::OnSendUserMessage_Post, true);
   11.29 +		SH_ADD_HOOK(IVEngineServer, SendUserMessage, engine, SH_MEMBER(this, &UserMessages::OnSendUserMessage_Pre), false);
   11.30 +		SH_ADD_HOOK(IVEngineServer, SendUserMessage, engine, SH_MEMBER(this, &UserMessages::OnSendUserMessage_Post), true);
   11.31  #else
   11.32 -		SH_ADD_HOOK_MEMFUNC(IVEngineServer, UserMessageBegin, engine, this, &UserMessages::OnStartMessage_Pre, false);
   11.33 -		SH_ADD_HOOK_MEMFUNC(IVEngineServer, UserMessageBegin, engine, this, &UserMessages::OnStartMessage_Post, true);
   11.34 -		SH_ADD_HOOK_MEMFUNC(IVEngineServer, MessageEnd, engine, this, &UserMessages::OnMessageEnd_Pre, false);
   11.35 -		SH_ADD_HOOK_MEMFUNC(IVEngineServer, MessageEnd, engine, this, &UserMessages::OnMessageEnd_Post, true);
   11.36 +		SH_ADD_HOOK(IVEngineServer, UserMessageBegin, engine, SH_MEMBER(this, &UserMessages::OnStartMessage_Pre), false);
   11.37 +		SH_ADD_HOOK(IVEngineServer, UserMessageBegin, engine, SH_MEMBER(this, &UserMessages::OnStartMessage_Post), true);
   11.38 +		SH_ADD_HOOK(IVEngineServer, MessageEnd, engine, SH_MEMBER(this, &UserMessages::OnMessageEnd_Pre), false);
   11.39 +		SH_ADD_HOOK(IVEngineServer, MessageEnd, engine, SH_MEMBER(this, &UserMessages::OnMessageEnd_Post), true);
   11.40  #endif
   11.41  	}
   11.42  
   11.43 @@ -482,13 +482,13 @@
   11.44  	if (--m_HookCount == 0)
   11.45  	{
   11.46  #if SOURCE_ENGINE == SE_CSGO
   11.47 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, SendUserMessage, engine, this, &UserMessages::OnSendUserMessage_Pre, false);
   11.48 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, SendUserMessage, engine, this, &UserMessages::OnSendUserMessage_Post, true);
   11.49 +		SH_REMOVE_HOOK(IVEngineServer, SendUserMessage, engine, SH_MEMBER(this, &UserMessages::OnSendUserMessage_Pre), false);
   11.50 +		SH_REMOVE_HOOK(IVEngineServer, SendUserMessage, engine, SH_MEMBER(this, &UserMessages::OnSendUserMessage_Post), true);
   11.51  #else
   11.52 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, UserMessageBegin, engine, this, &UserMessages::OnStartMessage_Pre, false);
   11.53 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, UserMessageBegin, engine, this, &UserMessages::OnStartMessage_Post, true);
   11.54 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, MessageEnd, engine, this, &UserMessages::OnMessageEnd_Pre, false);
   11.55 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, MessageEnd, engine, this, &UserMessages::OnMessageEnd_Post, true);
   11.56 +		SH_REMOVE_HOOK(IVEngineServer, UserMessageBegin, engine, SH_MEMBER(this, &UserMessages::OnStartMessage_Pre), false);
   11.57 +		SH_REMOVE_HOOK(IVEngineServer, UserMessageBegin, engine, SH_MEMBER(this, &UserMessages::OnStartMessage_Post), true);
   11.58 +		SH_REMOVE_HOOK(IVEngineServer, MessageEnd, engine, SH_MEMBER(this, &UserMessages::OnMessageEnd_Pre), false);
   11.59 +		SH_REMOVE_HOOK(IVEngineServer, MessageEnd, engine, SH_MEMBER(this, &UserMessages::OnMessageEnd_Post), true);
   11.60  #endif
   11.61  	}
   11.62  }
    12.1 --- a/core/concmd_cleaner.cpp	Sat Mar 16 18:05:22 2013 -0400
    12.2 +++ b/core/concmd_cleaner.cpp	Sat Mar 16 22:15:25 2013 -0400
    12.3 @@ -64,20 +64,20 @@
    12.4  	void OnSourceModAllInitialized()
    12.5  	{
    12.6  #if SOURCE_ENGINE >= SE_ORANGEBOX
    12.7 -		SH_ADD_HOOK_MEMFUNC(ICvar, UnregisterConCommand, icvar, this, &ConCommandCleaner::UnlinkConCommandBase, false);
    12.8 -		SH_ADD_HOOK_MEMFUNC(ICvar, RegisterConCommand, icvar, this, &ConCommandCleaner::LinkConCommandBase, false);
    12.9 +		SH_ADD_HOOK(ICvar, UnregisterConCommand, icvar, SH_MEMBER(this, &ConCommandCleaner::UnlinkConCommandBase), false);
   12.10 +		SH_ADD_HOOK(ICvar, RegisterConCommand, icvar, SH_MEMBER(this, &ConCommandCleaner::LinkConCommandBase), false);
   12.11  #else
   12.12 -		SH_ADD_HOOK_MEMFUNC(ICvar, RegisterConCommandBase, icvar, this, &ConCommandCleaner::LinkConCommandBase, false);
   12.13 +		SH_ADD_HOOK(ICvar, RegisterConCommandBase, icvar, SH_MEMBER(this, &ConCommandCleaner::LinkConCommandBase), false);
   12.14  #endif
   12.15  	}
   12.16  
   12.17  	void OnSourceModShutdown()
   12.18  	{
   12.19  #if SOURCE_ENGINE >= SE_ORANGEBOX
   12.20 -		SH_REMOVE_HOOK_MEMFUNC(ICvar, UnregisterConCommand, icvar, this, &ConCommandCleaner::UnlinkConCommandBase, false);
   12.21 -		SH_REMOVE_HOOK_MEMFUNC(ICvar, RegisterConCommand, icvar, this, &ConCommandCleaner::LinkConCommandBase, false);
   12.22 +		SH_REMOVE_HOOK(ICvar, UnregisterConCommand, icvar, SH_MEMBER(this, &ConCommandCleaner::UnlinkConCommandBase), false);
   12.23 +		SH_REMOVE_HOOK(ICvar, RegisterConCommand, icvar, SH_MEMBER(this, &ConCommandCleaner::LinkConCommandBase), false);
   12.24  #else
   12.25 -		SH_REMOVE_HOOK_MEMFUNC(ICvar, RegisterConCommandBase, icvar, this, &ConCommandCleaner::LinkConCommandBase, false);
   12.26 +		SH_REMOVE_HOOK(ICvar, RegisterConCommandBase, icvar, SH_MEMBER(this, &ConCommandCleaner::LinkConCommandBase), false);
   12.27  #endif
   12.28  	}
   12.29  
    13.1 --- a/core/sourcemod.cpp	Sat Mar 16 18:05:22 2013 -0400
    13.2 +++ b/core/sourcemod.cpp	Sat Mar 16 22:15:25 2013 -0400
    13.3 @@ -244,7 +244,7 @@
    13.4  	g_pSourcePawn2->SetDebugListener(logicore.debugger);
    13.5  
    13.6  	/* Hook this now so we can detect startup without calling StartSourceMod() */
    13.7 -	SH_ADD_HOOK_MEMFUNC(IServerGameDLL, LevelInit, gamedll, this, &SourceModBase::LevelInit, false);
    13.8 +	SH_ADD_HOOK(IServerGameDLL, LevelInit, gamedll, SH_MEMBER(this, &SourceModBase::LevelInit), false);
    13.9  
   13.10  	/* Only load if we're not late */
   13.11  	if (!late)
   13.12 @@ -257,8 +257,8 @@
   13.13  
   13.14  void SourceModBase::StartSourceMod(bool late)
   13.15  {
   13.16 -	SH_ADD_HOOK_MEMFUNC(IServerGameDLL, LevelShutdown, gamedll, this, &SourceModBase::LevelShutdown, false);
   13.17 -	SH_ADD_HOOK_MEMFUNC(IServerGameDLL, GameFrame, gamedll, &g_Timers, &TimerSystem::GameFrame, false);
   13.18 +	SH_ADD_HOOK(IServerGameDLL, LevelShutdown, gamedll, SH_MEMBER(this, &SourceModBase::LevelShutdown), false);
   13.19 +	SH_ADD_HOOK(IServerGameDLL, GameFrame, gamedll, SH_MEMBER(&g_Timers, &TimerSystem::GameFrame), false);
   13.20  
   13.21  	enginePatch = SH_GET_CALLCLASS(engine);
   13.22  	gamedllPatch = SH_GET_CALLCLASS(gamedll);
   13.23 @@ -489,7 +489,7 @@
   13.24  	/* Unload extensions */
   13.25  	g_Extensions.Shutdown();
   13.26  
   13.27 -	SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, LevelInit, gamedll, this, &SourceModBase::LevelInit, false);
   13.28 +	SH_REMOVE_HOOK(IServerGameDLL, LevelInit, gamedll, SH_MEMBER(this, &SourceModBase::LevelInit), false);
   13.29  
   13.30  	if (g_Loaded)
   13.31  	{
   13.32 @@ -536,8 +536,8 @@
   13.33  			gamedllPatch = NULL;
   13.34  		}
   13.35  
   13.36 -		SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, LevelShutdown, gamedll, this, &SourceModBase::LevelShutdown, false);
   13.37 -		SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, GameFrame, gamedll, &g_Timers, &TimerSystem::GameFrame, false);
   13.38 +		SH_REMOVE_HOOK(IServerGameDLL, LevelShutdown, gamedll, SH_MEMBER(this, &SourceModBase::LevelShutdown), false);
   13.39 +		SH_REMOVE_HOOK(IServerGameDLL, GameFrame, gamedll, SH_MEMBER(&g_Timers, &TimerSystem::GameFrame), false);
   13.40  	}
   13.41  
   13.42  	/* Rest In Peace */
    14.1 --- a/extensions/cstrike/extension.cpp	Sat Mar 16 18:05:22 2013 -0400
    14.2 +++ b/extensions/cstrike/extension.cpp	Sat Mar 16 22:15:25 2013 -0400
    14.3 @@ -113,7 +113,7 @@
    14.4  	if (hooked_everything)
    14.5  	{
    14.6  		gameevents->RemoveListener(&g_TimeLeftEvents);
    14.7 -		SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, LevelInit, gamedll, &g_TimeLeftEvents, &TimeLeftEvents::LevelInit, true);
    14.8 +		SH_REMOVE_HOOK(IServerGameDLL, LevelInit, gamedll, SH_MEMBER(&g_TimeLeftEvents, &TimeLeftEvents::LevelInit), true);
    14.9  		hooked_everything = false;
   14.10  	}
   14.11  	g_RegNatives.UnregisterAll();
   14.12 @@ -140,7 +140,7 @@
   14.13  	}
   14.14  	gameevents->AddListener(&g_TimeLeftEvents, "round_start", true);
   14.15  	gameevents->AddListener(&g_TimeLeftEvents, "round_end", true);
   14.16 -	SH_ADD_HOOK_MEMFUNC(IServerGameDLL, LevelInit, gamedll, &g_TimeLeftEvents, &TimeLeftEvents::LevelInit, true);
   14.17 +	SH_ADD_HOOK(IServerGameDLL, LevelInit, gamedll, SH_MEMBER(&g_TimeLeftEvents, &TimeLeftEvents::LevelInit), true);
   14.18  	hooked_everything = true;
   14.19  
   14.20  	SM_GET_LATE_IFACE(BINTOOLS, g_pBinTools);
    15.1 --- a/extensions/sdkhooks/extension.cpp	Sat Mar 16 18:05:22 2013 -0400
    15.2 +++ b/extensions/sdkhooks/extension.cpp	Sat Mar 16 22:15:25 2013 -0400
    15.3 @@ -255,16 +255,16 @@
    15.4  inline void HookLevelInit()
    15.5  {
    15.6  	assert(g_hookOnLevelInit == 0);
    15.7 -	g_hookOnLevelInit = SH_ADD_HOOK_MEMFUNC(IServerGameDLL, LevelInit, gamedll, &g_Interface, &SDKHooks::Hook_LevelInit, false);
    15.8 +	g_hookOnLevelInit = SH_ADD_HOOK(IServerGameDLL, LevelInit, gamedll, SH_MEMBER(&g_Interface, &SDKHooks::Hook_LevelInit), false);
    15.9  	assert(g_hookOnGetMapEntitiesString == 0);
   15.10 -	g_hookOnGetMapEntitiesString = SH_ADD_HOOK_MEMFUNC(IVEngineServer, GetMapEntitiesString, engine, &g_Interface, &SDKHooks::Hook_GetMapEntitiesString, false);
   15.11 +	g_hookOnGetMapEntitiesString = SH_ADD_HOOK(IVEngineServer, GetMapEntitiesString, engine, SH_MEMBER(&g_Interface, &SDKHooks::Hook_GetMapEntitiesString), false);
   15.12  }
   15.13  
   15.14  #ifdef GAMEDESC_CAN_CHANGE
   15.15  inline void HookGetGameDescription()
   15.16  {
   15.17  	assert(g_hookOnGetGameDescription == 0);
   15.18 -	g_hookOnGetGameDescription = SH_ADD_HOOK_MEMFUNC(IServerGameDLL, GetGameDescription, gamedll, &g_Interface, &SDKHooks::Hook_GetGameDescription, false);
   15.19 +	g_hookOnGetGameDescription = SH_ADD_HOOK(IServerGameDLL, GetGameDescription, gamedll, SH_MEMBER(&g_Interface, &SDKHooks::Hook_GetGameDescription), false);
   15.20  }
   15.21  #endif
   15.22  
   15.23 @@ -528,123 +528,123 @@
   15.24  		switch(type)
   15.25  		{
   15.26  			case SDKHook_EndTouch:
   15.27 -				SH_ADD_MANUALHOOK_MEMFUNC(EndTouch, pEnt, &g_Interface, &SDKHooks::Hook_EndTouch, false);
   15.28 +				SH_ADD_MANUALHOOK(EndTouch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_EndTouch), false);
   15.29  				break;
   15.30  			case SDKHook_EndTouchPost:
   15.31 -				SH_ADD_MANUALHOOK_MEMFUNC(EndTouch, pEnt, &g_Interface, &SDKHooks::Hook_EndTouchPost, true);
   15.32 +				SH_ADD_MANUALHOOK(EndTouch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_EndTouchPost), true);
   15.33  				break;
   15.34  			case SDKHook_FireBulletsPost:
   15.35 -				SH_ADD_MANUALHOOK_MEMFUNC(FireBullets, pEnt, &g_Interface, &SDKHooks::Hook_FireBulletsPost, true);
   15.36 +				SH_ADD_MANUALHOOK(FireBullets, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_FireBulletsPost), true);
   15.37  				break;
   15.38  #ifdef GETMAXHEALTH_IS_VIRTUAL
   15.39  			case SDKHook_GetMaxHealth:
   15.40 -				SH_ADD_MANUALHOOK_MEMFUNC(GetMaxHealth, pEnt, &g_Interface, &SDKHooks::Hook_GetMaxHealth, false);
   15.41 +				SH_ADD_MANUALHOOK(GetMaxHealth, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_GetMaxHealth), false);
   15.42  				break;
   15.43  #endif
   15.44  			case SDKHook_GroundEntChangedPost:
   15.45 -				SH_ADD_MANUALHOOK_MEMFUNC(GroundEntChanged, pEnt, &g_Interface, &SDKHooks::Hook_GroundEntChangedPost, true);
   15.46 +				SH_ADD_MANUALHOOK(GroundEntChanged, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_GroundEntChangedPost), true);
   15.47  				break;
   15.48  			case SDKHook_OnTakeDamage:
   15.49 -				SH_ADD_MANUALHOOK_MEMFUNC(OnTakeDamage, pEnt, &g_Interface, &SDKHooks::Hook_OnTakeDamage, false);
   15.50 +				SH_ADD_MANUALHOOK(OnTakeDamage, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_OnTakeDamage), false);
   15.51  				break;
   15.52  			case SDKHook_OnTakeDamagePost:
   15.53 -				SH_ADD_MANUALHOOK_MEMFUNC(OnTakeDamage, pEnt, &g_Interface, &SDKHooks::Hook_OnTakeDamagePost, true);
   15.54 +				SH_ADD_MANUALHOOK(OnTakeDamage, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_OnTakeDamagePost), true);
   15.55  				break;
   15.56  			case SDKHook_PreThink:
   15.57 -				SH_ADD_MANUALHOOK_MEMFUNC(PreThink, pEnt, &g_Interface, &SDKHooks::Hook_PreThink, false);
   15.58 +				SH_ADD_MANUALHOOK(PreThink, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_PreThink), false);
   15.59  				break;
   15.60  			case SDKHook_PreThinkPost:
   15.61 -				SH_ADD_MANUALHOOK_MEMFUNC(PreThink, pEnt, &g_Interface, &SDKHooks::Hook_PreThinkPost, true);
   15.62 +				SH_ADD_MANUALHOOK(PreThink, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_PreThinkPost), true);
   15.63  				break;
   15.64  			case SDKHook_PostThink:
   15.65 -				SH_ADD_MANUALHOOK_MEMFUNC(PostThink, pEnt, &g_Interface, &SDKHooks::Hook_PostThink, false);
   15.66 +				SH_ADD_MANUALHOOK(PostThink, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_PostThink), false);
   15.67  				break;
   15.68  			case SDKHook_PostThinkPost:
   15.69 -				SH_ADD_MANUALHOOK_MEMFUNC(PostThink, pEnt, &g_Interface, &SDKHooks::Hook_PostThinkPost, true);
   15.70 +				SH_ADD_MANUALHOOK(PostThink, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_PostThinkPost), true);
   15.71  				break;
   15.72  			case SDKHook_Reload:
   15.73 -				SH_ADD_MANUALHOOK_MEMFUNC(Reload, pEnt, &g_Interface, &SDKHooks::Hook_Reload, false);
   15.74 +				SH_ADD_MANUALHOOK(Reload, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_Reload), false);
   15.75  				break;
   15.76  			case SDKHook_ReloadPost:
   15.77 -				SH_ADD_MANUALHOOK_MEMFUNC(Reload, pEnt, &g_Interface, &SDKHooks::Hook_ReloadPost, true);
   15.78 +				SH_ADD_MANUALHOOK(Reload, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_ReloadPost), true);
   15.79  				break;
   15.80  			case SDKHook_SetTransmit:
   15.81 -				SH_ADD_MANUALHOOK_MEMFUNC(SetTransmit, pEnt, &g_Interface, &SDKHooks::Hook_SetTransmit, false);
   15.82 +				SH_ADD_MANUALHOOK(SetTransmit, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_SetTransmit), false);
   15.83  				break;
   15.84  			case SDKHook_Spawn:
   15.85 -				SH_ADD_MANUALHOOK_MEMFUNC(Spawn, pEnt, &g_Interface, &SDKHooks::Hook_Spawn, false);
   15.86 +				SH_ADD_MANUALHOOK(Spawn, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_Spawn), false);
   15.87  				break;
   15.88  			case SDKHook_SpawnPost:
   15.89 -				SH_ADD_MANUALHOOK_MEMFUNC(Spawn, pEnt, &g_Interface, &SDKHooks::Hook_SpawnPost, true);
   15.90 +				SH_ADD_MANUALHOOK(Spawn, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_SpawnPost), true);
   15.91  				break;
   15.92  			case SDKHook_StartTouch:
   15.93 -				SH_ADD_MANUALHOOK_MEMFUNC(StartTouch, pEnt, &g_Interface, &SDKHooks::Hook_StartTouch, false);
   15.94 +				SH_ADD_MANUALHOOK(StartTouch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_StartTouch), false);
   15.95  				break;
   15.96  			case SDKHook_StartTouchPost:
   15.97 -				SH_ADD_MANUALHOOK_MEMFUNC(StartTouch, pEnt, &g_Interface, &SDKHooks::Hook_StartTouchPost, true);
   15.98 +				SH_ADD_MANUALHOOK(StartTouch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_StartTouchPost), true);
   15.99  				break;
  15.100  			case SDKHook_Think:
  15.101 -				SH_ADD_MANUALHOOK_MEMFUNC(Think, pEnt, &g_Interface, &SDKHooks::Hook_Think, false);
  15.102 +				SH_ADD_MANUALHOOK(Think, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_Think), false);
  15.103  				break;
  15.104  			case SDKHook_ThinkPost:
  15.105 -				SH_ADD_MANUALHOOK_MEMFUNC(Think, pEnt, &g_Interface, &SDKHooks::Hook_ThinkPost, true);
  15.106 +				SH_ADD_MANUALHOOK(Think, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_ThinkPost), true);
  15.107  				break;
  15.108  			case SDKHook_Touch:
  15.109 -				SH_ADD_MANUALHOOK_MEMFUNC(Touch, pEnt, &g_Interface, &SDKHooks::Hook_Touch, false);
  15.110 +				SH_ADD_MANUALHOOK(Touch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_Touch), false);
  15.111  				break;
  15.112  			case SDKHook_TouchPost:
  15.113 -				SH_ADD_MANUALHOOK_MEMFUNC(Touch, pEnt, &g_Interface, &SDKHooks::Hook_TouchPost, true);
  15.114 +				SH_ADD_MANUALHOOK(Touch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_TouchPost), true);
  15.115  				break;
  15.116  			case SDKHook_TraceAttack:
  15.117 -				SH_ADD_MANUALHOOK_MEMFUNC(TraceAttack, pEnt, &g_Interface, &SDKHooks::Hook_TraceAttack, false);
  15.118 +				SH_ADD_MANUALHOOK(TraceAttack, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_TraceAttack), false);
  15.119  				break;
  15.120  			case SDKHook_TraceAttackPost:
  15.121 -				SH_ADD_MANUALHOOK_MEMFUNC(TraceAttack, pEnt, &g_Interface, &SDKHooks::Hook_TraceAttackPost, true);
  15.122 +				SH_ADD_MANUALHOOK(TraceAttack, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_TraceAttackPost), true);
  15.123  				break;
  15.124  			case SDKHook_Use:
  15.125 -				SH_ADD_MANUALHOOK_MEMFUNC(Use, pEnt, &g_Interface, &SDKHooks::Hook_Use, false);
  15.126 +				SH_ADD_MANUALHOOK(Use, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_Use), false);
  15.127  				break;
  15.128  			case SDKHook_UsePost:
  15.129 -				SH_ADD_MANUALHOOK_MEMFUNC(Use, pEnt, &g_Interface, &SDKHooks::Hook_UsePost, true);
  15.130 +				SH_ADD_MANUALHOOK(Use, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_UsePost), true);
  15.131  				break;
  15.132  			case SDKHook_VPhysicsUpdate:
  15.133 -				SH_ADD_MANUALHOOK_MEMFUNC(VPhysicsUpdate, pEnt, &g_Interface, &SDKHooks::Hook_VPhysicsUpdate, false);
  15.134 +				SH_ADD_MANUALHOOK(VPhysicsUpdate, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_VPhysicsUpdate), false);
  15.135  				break;
  15.136  			case SDKHook_VPhysicsUpdatePost:
  15.137 -				SH_ADD_MANUALHOOK_MEMFUNC(VPhysicsUpdate, pEnt, &g_Interface, &SDKHooks::Hook_VPhysicsUpdatePost, true);
  15.138 +				SH_ADD_MANUALHOOK(VPhysicsUpdate, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_VPhysicsUpdatePost), true);
  15.139  				break;
  15.140  			case SDKHook_WeaponCanSwitchTo:
  15.141 -				SH_ADD_MANUALHOOK_MEMFUNC(Weapon_CanSwitchTo, pEnt, &g_Interface, &SDKHooks::Hook_WeaponCanSwitchTo, false);
  15.142 +				SH_ADD_MANUALHOOK(Weapon_CanSwitchTo, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponCanSwitchTo), false);
  15.143  				break;
  15.144  			case SDKHook_WeaponCanSwitchToPost:
  15.145 -				SH_ADD_MANUALHOOK_MEMFUNC(Weapon_CanSwitchTo, pEnt, &g_Interface, &SDKHooks::Hook_WeaponCanSwitchToPost, true);
  15.146 +				SH_ADD_MANUALHOOK(Weapon_CanSwitchTo, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponCanSwitchToPost), true);
  15.147  				break;
  15.148  			case SDKHook_WeaponCanUse:
  15.149 -				SH_ADD_MANUALHOOK_MEMFUNC(Weapon_CanUse, pEnt, &g_Interface, &SDKHooks::Hook_WeaponCanUse, false);
  15.150 +				SH_ADD_MANUALHOOK(Weapon_CanUse, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponCanUse), false);
  15.151  				break;
  15.152  			case SDKHook_WeaponCanUsePost:
  15.153 -				SH_ADD_MANUALHOOK_MEMFUNC(Weapon_CanUse, pEnt, &g_Interface, &SDKHooks::Hook_WeaponCanUsePost, true);
  15.154 +				SH_ADD_MANUALHOOK(Weapon_CanUse, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponCanUsePost), true);
  15.155  				break;
  15.156  			case SDKHook_WeaponDrop:
  15.157 -				SH_ADD_MANUALHOOK_MEMFUNC(Weapon_Drop, pEnt, &g_Interface, &SDKHooks::Hook_WeaponDrop, false);
  15.158 +				SH_ADD_MANUALHOOK(Weapon_Drop, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponDrop), false);
  15.159  				break;
  15.160  			case SDKHook_WeaponDropPost:
  15.161 -				SH_ADD_MANUALHOOK_MEMFUNC(Weapon_Drop, pEnt, &g_Interface, &SDKHooks::Hook_WeaponDropPost, true);
  15.162 +				SH_ADD_MANUALHOOK(Weapon_Drop, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponDropPost), true);
  15.163  				break;
  15.164  			case SDKHook_WeaponEquip:
  15.165 -				SH_ADD_MANUALHOOK_MEMFUNC(Weapon_Equip, pEnt, &g_Interface, &SDKHooks::Hook_WeaponEquip, false);
  15.166 +				SH_ADD_MANUALHOOK(Weapon_Equip, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponEquip), false);
  15.167  				break;
  15.168  			case SDKHook_WeaponEquipPost:
  15.169 -				SH_ADD_MANUALHOOK_MEMFUNC(Weapon_Equip, pEnt, &g_Interface, &SDKHooks::Hook_WeaponEquipPost, true);
  15.170 +				SH_ADD_MANUALHOOK(Weapon_Equip, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponEquipPost), true);
  15.171  				break;
  15.172  			case SDKHook_WeaponSwitch:
  15.173 -				SH_ADD_MANUALHOOK_MEMFUNC(Weapon_Switch, pEnt, &g_Interface, &SDKHooks::Hook_WeaponSwitch, false);
  15.174 +				SH_ADD_MANUALHOOK(Weapon_Switch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponSwitch), false);
  15.175  				break;
  15.176  			case SDKHook_WeaponSwitchPost:
  15.177 -				SH_ADD_MANUALHOOK_MEMFUNC(Weapon_Switch, pEnt, &g_Interface, &SDKHooks::Hook_WeaponSwitchPost, true);
  15.178 +				SH_ADD_MANUALHOOK(Weapon_Switch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponSwitchPost), true);
  15.179  				break;
  15.180  			case SDKHook_ShouldCollide:
  15.181 -				SH_ADD_MANUALHOOK_MEMFUNC(ShouldCollide, pEnt, &g_Interface, &SDKHooks::Hook_ShouldCollide, false);
  15.182 +				SH_ADD_MANUALHOOK(ShouldCollide, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_ShouldCollide), false);
  15.183  				break;
  15.184  		}
  15.185  	}
  15.186 @@ -686,123 +686,123 @@
  15.187  		switch(g_HookList[index].type)
  15.188  		{
  15.189  			case SDKHook_EndTouch:
  15.190 -				SH_REMOVE_MANUALHOOK_MEMFUNC(EndTouch, pEnt, &g_Interface, &SDKHooks::Hook_EndTouch, false);
  15.191 +				SH_REMOVE_MANUALHOOK(EndTouch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_EndTouch), false);
  15.192  				break;
  15.193  			case SDKHook_EndTouchPost:
  15.194 -				SH_REMOVE_MANUALHOOK_MEMFUNC(EndTouch, pEnt, &g_Interface, &SDKHooks::Hook_EndTouchPost, true);
  15.195 +				SH_REMOVE_MANUALHOOK(EndTouch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_EndTouchPost), true);
  15.196  				break;
  15.197  			case SDKHook_FireBulletsPost:
  15.198 -				SH_REMOVE_MANUALHOOK_MEMFUNC(FireBullets, pEnt, &g_Interface, &SDKHooks::Hook_FireBulletsPost, true);
  15.199 +				SH_REMOVE_MANUALHOOK(FireBullets, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_FireBulletsPost), true);
  15.200  				break;
  15.201  #ifdef GETMAXHEALTH_IS_VIRTUAL
  15.202  			case SDKHook_GetMaxHealth:
  15.203 -				SH_REMOVE_MANUALHOOK_MEMFUNC(GetMaxHealth, pEnt, &g_Interface, &SDKHooks::Hook_GetMaxHealth, false);
  15.204 +				SH_REMOVE_MANUALHOOK(GetMaxHealth, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_GetMaxHealth), false);
  15.205  				break;
  15.206  #endif
  15.207  			case SDKHook_GroundEntChangedPost:
  15.208 -				SH_REMOVE_MANUALHOOK_MEMFUNC(GroundEntChanged, pEnt, &g_Interface, &SDKHooks::Hook_GroundEntChangedPost, true);
  15.209 +				SH_REMOVE_MANUALHOOK(GroundEntChanged, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_GroundEntChangedPost), true);
  15.210  				break;
  15.211  			case SDKHook_OnTakeDamage:
  15.212 -				SH_REMOVE_MANUALHOOK_MEMFUNC(OnTakeDamage, pEnt, &g_Interface, &SDKHooks::Hook_OnTakeDamage, false);
  15.213 +				SH_REMOVE_MANUALHOOK(OnTakeDamage, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_OnTakeDamage), false);
  15.214  				break;
  15.215  			case SDKHook_OnTakeDamagePost:
  15.216 -				SH_REMOVE_MANUALHOOK_MEMFUNC(OnTakeDamage, pEnt, &g_Interface, &SDKHooks::Hook_OnTakeDamagePost, true);
  15.217 +				SH_REMOVE_MANUALHOOK(OnTakeDamage, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_OnTakeDamagePost), true);
  15.218  				break;
  15.219  			case SDKHook_PreThink:
  15.220 -				SH_REMOVE_MANUALHOOK_MEMFUNC(PreThink, pEnt, &g_Interface, &SDKHooks::Hook_PreThink, false);
  15.221 +				SH_REMOVE_MANUALHOOK(PreThink, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_PreThink), false);
  15.222  				break;
  15.223  			case SDKHook_PreThinkPost:
  15.224 -				SH_REMOVE_MANUALHOOK_MEMFUNC(PreThink, pEnt, &g_Interface, &SDKHooks::Hook_PreThinkPost, true);
  15.225 +				SH_REMOVE_MANUALHOOK(PreThink, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_PreThinkPost), true);
  15.226  				break;
  15.227  			case SDKHook_PostThink:
  15.228 -				SH_REMOVE_MANUALHOOK_MEMFUNC(PostThink, pEnt, &g_Interface, &SDKHooks::Hook_PostThink, false);
  15.229 +				SH_REMOVE_MANUALHOOK(PostThink, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_PostThink), false);
  15.230  				break;
  15.231  			case SDKHook_PostThinkPost:
  15.232 -				SH_REMOVE_MANUALHOOK_MEMFUNC(PostThink, pEnt, &g_Interface, &SDKHooks::Hook_PostThinkPost, true);
  15.233 +				SH_REMOVE_MANUALHOOK(PostThink, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_PostThinkPost), true);
  15.234  				break;
  15.235  			case SDKHook_Reload:
  15.236 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Reload, pEnt, &g_Interface, &SDKHooks::Hook_Reload, false);
  15.237 +				SH_REMOVE_MANUALHOOK(Reload, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_Reload), false);
  15.238  				break;
  15.239  			case SDKHook_ReloadPost:
  15.240 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Reload, pEnt, &g_Interface, &SDKHooks::Hook_ReloadPost, true);
  15.241 +				SH_REMOVE_MANUALHOOK(Reload, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_ReloadPost), true);
  15.242  				break;
  15.243  			case SDKHook_SetTransmit:
  15.244 -				SH_REMOVE_MANUALHOOK_MEMFUNC(SetTransmit, pEnt, &g_Interface, &SDKHooks::Hook_SetTransmit, false);
  15.245 +				SH_REMOVE_MANUALHOOK(SetTransmit, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_SetTransmit), false);
  15.246  				break;
  15.247  			case SDKHook_Spawn:
  15.248 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Spawn, pEnt, &g_Interface, &SDKHooks::Hook_Spawn, false);
  15.249 +				SH_REMOVE_MANUALHOOK(Spawn, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_Spawn), false);
  15.250  				break;
  15.251  			case SDKHook_SpawnPost:
  15.252 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Spawn, pEnt, &g_Interface, &SDKHooks::Hook_SpawnPost, true);
  15.253 +				SH_REMOVE_MANUALHOOK(Spawn, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_SpawnPost), true);
  15.254  				break;
  15.255  			case SDKHook_StartTouch:
  15.256 -				SH_REMOVE_MANUALHOOK_MEMFUNC(StartTouch, pEnt, &g_Interface, &SDKHooks::Hook_StartTouch, false);
  15.257 +				SH_REMOVE_MANUALHOOK(StartTouch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_StartTouch), false);
  15.258  				break;
  15.259  			case SDKHook_StartTouchPost:
  15.260 -				SH_REMOVE_MANUALHOOK_MEMFUNC(StartTouch, pEnt, &g_Interface, &SDKHooks::Hook_StartTouchPost, true);
  15.261 +				SH_REMOVE_MANUALHOOK(StartTouch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_StartTouchPost), true);
  15.262  				break;
  15.263  			case SDKHook_Think:
  15.264 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Think, pEnt, &g_Interface, &SDKHooks::Hook_Think, false);
  15.265 +				SH_REMOVE_MANUALHOOK(Think, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_Think), false);
  15.266  				break;
  15.267  			case SDKHook_ThinkPost:
  15.268 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Think, pEnt, &g_Interface, &SDKHooks::Hook_ThinkPost, true);
  15.269 +				SH_REMOVE_MANUALHOOK(Think, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_ThinkPost), true);
  15.270  				break;
  15.271  			case SDKHook_Touch:
  15.272 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Touch, pEnt, &g_Interface, &SDKHooks::Hook_Touch, false);
  15.273 +				SH_REMOVE_MANUALHOOK(Touch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_Touch), false);
  15.274  				break;
  15.275  			case SDKHook_TouchPost:
  15.276 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Touch, pEnt, &g_Interface, &SDKHooks::Hook_TouchPost, true);
  15.277 +				SH_REMOVE_MANUALHOOK(Touch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_TouchPost), true);
  15.278  				break;
  15.279  			case SDKHook_TraceAttack:
  15.280 -				SH_REMOVE_MANUALHOOK_MEMFUNC(TraceAttack, pEnt, &g_Interface, &SDKHooks::Hook_TraceAttack, false);
  15.281 +				SH_REMOVE_MANUALHOOK(TraceAttack, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_TraceAttack), false);
  15.282  				break;
  15.283  			case SDKHook_TraceAttackPost:
  15.284 -				SH_REMOVE_MANUALHOOK_MEMFUNC(TraceAttack, pEnt, &g_Interface, &SDKHooks::Hook_TraceAttackPost, true);
  15.285 +				SH_REMOVE_MANUALHOOK(TraceAttack, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_TraceAttackPost), true);
  15.286  				break;
  15.287  			case SDKHook_Use:
  15.288 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Use, pEnt, &g_Interface, &SDKHooks::Hook_Use, false);
  15.289 +				SH_REMOVE_MANUALHOOK(Use, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_Use), false);
  15.290  				break;
  15.291  			case SDKHook_UsePost:
  15.292 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Use, pEnt, &g_Interface, &SDKHooks::Hook_UsePost, true);
  15.293 +				SH_REMOVE_MANUALHOOK(Use, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_UsePost), true);
  15.294  				break;
  15.295  			case SDKHook_VPhysicsUpdate:
  15.296 -				SH_REMOVE_MANUALHOOK_MEMFUNC(VPhysicsUpdate, pEnt, &g_Interface, &SDKHooks::Hook_VPhysicsUpdate, false);
  15.297 +				SH_REMOVE_MANUALHOOK(VPhysicsUpdate, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_VPhysicsUpdate), false);
  15.298  				break;
  15.299  			case SDKHook_VPhysicsUpdatePost:
  15.300 -				SH_REMOVE_MANUALHOOK_MEMFUNC(VPhysicsUpdate, pEnt, &g_Interface, &SDKHooks::Hook_VPhysicsUpdatePost, true);
  15.301 +				SH_REMOVE_MANUALHOOK(VPhysicsUpdate, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_VPhysicsUpdatePost), true);
  15.302  				break;
  15.303  			case SDKHook_WeaponCanSwitchTo:
  15.304 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Weapon_CanSwitchTo, pEnt, &g_Interface, &SDKHooks::Hook_WeaponCanSwitchTo, false);
  15.305 +				SH_REMOVE_MANUALHOOK(Weapon_CanSwitchTo, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponCanSwitchTo), false);
  15.306  				break;
  15.307  			case SDKHook_WeaponCanSwitchToPost:
  15.308 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Weapon_CanSwitchTo, pEnt, &g_Interface, &SDKHooks::Hook_WeaponCanSwitchToPost, true);
  15.309 +				SH_REMOVE_MANUALHOOK(Weapon_CanSwitchTo, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponCanSwitchToPost), true);
  15.310  				break;
  15.311  			case SDKHook_WeaponCanUse:
  15.312 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Weapon_CanUse, pEnt, &g_Interface, &SDKHooks::Hook_WeaponCanUse, false);
  15.313 +				SH_REMOVE_MANUALHOOK(Weapon_CanUse, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponCanUse), false);
  15.314  				break;
  15.315  			case SDKHook_WeaponCanUsePost:
  15.316 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Weapon_CanUse, pEnt, &g_Interface, &SDKHooks::Hook_WeaponCanUsePost, true);
  15.317 +				SH_REMOVE_MANUALHOOK(Weapon_CanUse, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponCanUsePost), true);
  15.318  				break;
  15.319  			case SDKHook_WeaponDrop:
  15.320 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Weapon_Drop, pEnt, &g_Interface, &SDKHooks::Hook_WeaponDrop, false);
  15.321 +				SH_REMOVE_MANUALHOOK(Weapon_Drop, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponDrop), false);
  15.322  				break;
  15.323  			case SDKHook_WeaponDropPost:
  15.324 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Weapon_Drop, pEnt, &g_Interface, &SDKHooks::Hook_WeaponDropPost, true);
  15.325 +				SH_REMOVE_MANUALHOOK(Weapon_Drop, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponDropPost), true);
  15.326  				break;
  15.327  			case SDKHook_WeaponEquip:
  15.328 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Weapon_Equip, pEnt, &g_Interface, &SDKHooks::Hook_WeaponEquip, false);
  15.329 +				SH_REMOVE_MANUALHOOK(Weapon_Equip, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponEquip), false);
  15.330  				break;
  15.331  			case SDKHook_WeaponEquipPost:
  15.332 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Weapon_Equip, pEnt, &g_Interface, &SDKHooks::Hook_WeaponEquipPost, true);
  15.333 +				SH_REMOVE_MANUALHOOK(Weapon_Equip, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponEquipPost), true);
  15.334  				break;
  15.335  			case SDKHook_WeaponSwitch:
  15.336 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Weapon_Switch, pEnt, &g_Interface, &SDKHooks::Hook_WeaponSwitch, false);
  15.337 +				SH_REMOVE_MANUALHOOK(Weapon_Switch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponSwitch), false);
  15.338  				break;
  15.339  			case SDKHook_WeaponSwitchPost:
  15.340 -				SH_REMOVE_MANUALHOOK_MEMFUNC(Weapon_Switch, pEnt, &g_Interface, &SDKHooks::Hook_WeaponSwitchPost, true);
  15.341 +				SH_REMOVE_MANUALHOOK(Weapon_Switch, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_WeaponSwitchPost), true);
  15.342  				break;
  15.343  			case SDKHook_ShouldCollide:
  15.344 -				SH_REMOVE_MANUALHOOK_MEMFUNC(ShouldCollide, pEnt, &g_Interface, &SDKHooks::Hook_ShouldCollide, false);
  15.345 +				SH_REMOVE_MANUALHOOK(ShouldCollide, pEnt, SH_MEMBER(&g_Interface, &SDKHooks::Hook_ShouldCollide), false);
  15.346  				break;
  15.347  			default:
  15.348  				return;
    16.1 --- a/extensions/sdktools/extension.cpp	Sat Mar 16 18:05:22 2013 -0400
    16.2 +++ b/extensions/sdktools/extension.cpp	Sat Mar 16 22:15:25 2013 -0400
    16.3 @@ -143,7 +143,7 @@
    16.4  #endif
    16.5  	CONVAR_REGISTER(this);
    16.6  
    16.7 -	SH_ADD_HOOK_MEMFUNC(IServerGameDLL, LevelInit, gamedll, this, &SDKTools::LevelInit, true);
    16.8 +	SH_ADD_HOOK(IServerGameDLL, LevelInit, gamedll, SH_MEMBER(this, &SDKTools::LevelInit), true);
    16.9  
   16.10  	playerhelpers->RegisterCommandTargetProcessor(this);
   16.11  
   16.12 @@ -210,7 +210,7 @@
   16.13  	playerhelpers->UnregisterCommandTargetProcessor(this);
   16.14  	plsys->RemovePluginsListener(&g_OutputManager);
   16.15  
   16.16 -	SH_REMOVE_HOOK_MEMFUNC(IServerGameDLL, LevelInit, gamedll, this, &SDKTools::LevelInit, true);
   16.17 +	SH_REMOVE_HOOK(IServerGameDLL, LevelInit, gamedll, SH_MEMBER(this, &SDKTools::LevelInit), true);
   16.18  
   16.19  	if (enginePatch)
   16.20  	{
    17.1 --- a/extensions/sdktools/hooks.cpp	Sat Mar 16 18:05:22 2013 -0400
    17.2 +++ b/extensions/sdktools/hooks.cpp	Sat Mar 16 22:15:25 2013 -0400
    17.3 @@ -105,7 +105,7 @@
    17.4  		return;
    17.5  	}
    17.6  
    17.7 -	SH_ADD_MANUALHOOK_MEMFUNC(PlayerRunCmdHook, pEntity, this, &CHookManager::PlayerRunCmd, false);
    17.8 +	SH_ADD_MANUALHOOK(PlayerRunCmdHook, pEntity, SH_MEMBER(this, &CHookManager::PlayerRunCmd), false);
    17.9  }
   17.10  
   17.11  void CHookManager::OnClientDisconnecting(int client)
   17.12 @@ -134,7 +134,7 @@
   17.13  		return;
   17.14  	}
   17.15  
   17.16 -	SH_REMOVE_MANUALHOOK_MEMFUNC(PlayerRunCmdHook, pEntity, this, &CHookManager::PlayerRunCmd, false);
   17.17 +	SH_REMOVE_MANUALHOOK(PlayerRunCmdHook, pEntity, SH_MEMBER(this, &CHookManager::PlayerRunCmd), false);
   17.18  }
   17.19  
   17.20  void CHookManager::PlayerRunCmd(CUserCmd *ucmd, IMoveHelper *moveHelper)
    18.1 --- a/extensions/sdktools/tenatives.cpp	Sat Mar 16 18:05:22 2013 -0400
    18.2 +++ b/extensions/sdktools/tenatives.cpp	Sat Mar 16 22:15:25 2013 -0400
    18.3 @@ -120,7 +120,7 @@
    18.4  {
    18.5  	if (m_HookCount++ == 0)
    18.6  	{
    18.7 -		SH_ADD_HOOK_MEMFUNC(IVEngineServer, PlaybackTempEntity, engine, this, &TempEntHooks::OnPlaybackTempEntity, false);
    18.8 +		SH_ADD_HOOK(IVEngineServer, PlaybackTempEntity, engine, SH_MEMBER(this, &TempEntHooks::OnPlaybackTempEntity), false);
    18.9  	}
   18.10  }
   18.11  
   18.12 @@ -128,7 +128,7 @@
   18.13  {
   18.14  	if (--m_HookCount == 0)
   18.15  	{
   18.16 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, PlaybackTempEntity, engine, this, &TempEntHooks::OnPlaybackTempEntity, false);
   18.17 +		SH_REMOVE_HOOK(IVEngineServer, PlaybackTempEntity, engine, SH_MEMBER(this, &TempEntHooks::OnPlaybackTempEntity), false);
   18.18  	}
   18.19  }
   18.20  
    19.1 --- a/extensions/sdktools/voice.cpp	Sat Mar 16 18:05:22 2013 -0400
    19.2 +++ b/extensions/sdktools/voice.cpp	Sat Mar 16 22:15:25 2013 -0400
    19.3 @@ -68,7 +68,7 @@
    19.4  {
    19.5  	if (g_VoiceHookCount == 0)
    19.6  	{
    19.7 -		SH_REMOVE_HOOK_MEMFUNC(IVoiceServer, SetClientListening, voiceserver, &g_SdkTools, &SDKTools::OnSetClientListening, false);
    19.8 +		SH_REMOVE_HOOK(IVoiceServer, SetClientListening, voiceserver, SH_MEMBER(&g_SdkTools, &SDKTools::OnSetClientListening), false);
    19.9  		return true;
   19.10  	}
   19.11  
   19.12 @@ -79,7 +79,7 @@
   19.13  {
   19.14  	if (!g_VoiceHookCount++)
   19.15  	{
   19.16 -		SH_ADD_HOOK_MEMFUNC(IVoiceServer, SetClientListening, voiceserver, &g_SdkTools, &SDKTools::OnSetClientListening, false);
   19.17 +		SH_ADD_HOOK(IVoiceServer, SetClientListening, voiceserver, SH_MEMBER(&g_SdkTools, &SDKTools::OnSetClientListening), false);
   19.18  	}
   19.19  }
   19.20  
   19.21 @@ -88,7 +88,7 @@
   19.22  	memset(g_VoiceMap, 0, sizeof(g_VoiceMap));
   19.23  	memset(g_ClientMutes, 0, sizeof(g_ClientMutes));
   19.24  
   19.25 -	SH_ADD_HOOK_MEMFUNC(IServerGameClients, ClientCommand, serverClients, this, &SDKTools::OnClientCommand, true);
   19.26 +	SH_ADD_HOOK(IServerGameClients, ClientCommand, serverClients, SH_MEMBER(this, &SDKTools::OnClientCommand), true);
   19.27  }
   19.28  
   19.29  #if SOURCE_ENGINE >= SE_ORANGEBOX
    20.1 --- a/extensions/sdktools/vsound.cpp	Sat Mar 16 18:05:22 2013 -0400
    20.2 +++ b/extensions/sdktools/vsound.cpp	Sat Mar 16 22:15:25 2013 -0400
    20.3 @@ -80,15 +80,15 @@
    20.4  	{
    20.5  		if (m_NormalCount++ == 0)
    20.6  		{
    20.7 -			SH_ADD_HOOK_MEMFUNC(IEngineSound, EmitSound, engsound, this, &SoundHooks::OnEmitSound, false);
    20.8 -			SH_ADD_HOOK_MEMFUNC(IEngineSound, EmitSound, engsound, this, &SoundHooks::OnEmitSound2, false);
    20.9 +			SH_ADD_HOOK(IEngineSound, EmitSound, engsound, SH_MEMBER(this, &SoundHooks::OnEmitSound), false);
   20.10 +			SH_ADD_HOOK(IEngineSound, EmitSound, engsound, SH_MEMBER(this, &SoundHooks::OnEmitSound2), false);
   20.11  		}
   20.12  	}
   20.13  	else if (type == AMBIENT_SOUND_HOOK)
   20.14  	{
   20.15  		if (m_AmbientCount++ == 0)
   20.16  		{
   20.17 -			SH_ADD_HOOK_MEMFUNC(IVEngineServer, EmitAmbientSound, engine, this, &SoundHooks::OnEmitAmbientSound, false);
   20.18 +			SH_ADD_HOOK(IVEngineServer, EmitAmbientSound, engine, SH_MEMBER(this, &SoundHooks::OnEmitAmbientSound), false);
   20.19  		}
   20.20  	}
   20.21  }
   20.22 @@ -99,15 +99,15 @@
   20.23  	{
   20.24  		if (--m_NormalCount == 0)
   20.25  		{
   20.26 -			SH_REMOVE_HOOK_MEMFUNC(IEngineSound, EmitSound, engsound, this, &SoundHooks::OnEmitSound, false);
   20.27 -			SH_REMOVE_HOOK_MEMFUNC(IEngineSound, EmitSound, engsound, this, &SoundHooks::OnEmitSound2, false);
   20.28 +			SH_REMOVE_HOOK(IEngineSound, EmitSound, engsound, SH_MEMBER(this, &SoundHooks::OnEmitSound), false);
   20.29 +			SH_REMOVE_HOOK(IEngineSound, EmitSound, engsound, SH_MEMBER(this, &SoundHooks::OnEmitSound2), false);
   20.30  		}
   20.31  	}
   20.32  	else if (type == AMBIENT_SOUND_HOOK)
   20.33  	{
   20.34  		if (--m_AmbientCount == 0)
   20.35  		{
   20.36 -			SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, EmitAmbientSound, engine, this, &SoundHooks::OnEmitAmbientSound, false);
   20.37 +			SH_REMOVE_HOOK(IVEngineServer, EmitAmbientSound, engine, SH_MEMBER(this, &SoundHooks::OnEmitAmbientSound), false);
   20.38  		}
   20.39  	}
   20.40  }
   20.41 @@ -122,12 +122,12 @@
   20.42  	plsys->RemovePluginsListener(this);
   20.43  	if (m_NormalCount)
   20.44  	{
   20.45 -		SH_REMOVE_HOOK_MEMFUNC(IEngineSound, EmitSound, engsound, this, &SoundHooks::OnEmitSound, false);
   20.46 -		SH_REMOVE_HOOK_MEMFUNC(IEngineSound, EmitSound, engsound, this, &SoundHooks::OnEmitSound2, false);
   20.47 +		SH_REMOVE_HOOK(IEngineSound, EmitSound, engsound, SH_MEMBER(this, &SoundHooks::OnEmitSound), false);
   20.48 +		SH_REMOVE_HOOK(IEngineSound, EmitSound, engsound, SH_MEMBER(this, &SoundHooks::OnEmitSound2), false);
   20.49  	}
   20.50  	if (m_AmbientCount)
   20.51  	{
   20.52 -		SH_REMOVE_HOOK_MEMFUNC(IVEngineServer, EmitAmbientSound, engine, this, &SoundHooks::OnEmitAmbientSound, false);
   20.53 +		SH_REMOVE_HOOK(IVEngineServer, EmitAmbientSound, engine, SH_MEMBER(this, &SoundHooks::OnEmitAmbientSound), false);
   20.54  	}
   20.55  }
   20.56  
    21.1 --- a/public/mms_sample_ext/stub_mm.cpp	Sat Mar 16 18:05:22 2013 -0400
    21.2 +++ b/public/mms_sample_ext/stub_mm.cpp	Sat Mar 16 22:15:25 2013 -0400
    21.3 @@ -39,7 +39,7 @@
    21.4  	GET_V_IFACE_ANY(engineFactory, engine, IVEngineServer, INTERFACEVERSION_VENGINESERVER);
    21.5  #endif
    21.6  
    21.7 -	SH_ADD_HOOK_STATICFUNC(IServerGameDLL, ServerActivate, server, Hook_ServerActivate, true);
    21.8 +	SH_ADD_HOOK(IServerGameDLL, ServerActivate, server, SH_STATIC(Hook_ServerActivate), true);
    21.9  
   21.10  	ismm->AddListener(this, this);
   21.11  
   21.12 @@ -50,7 +50,7 @@
   21.13  {
   21.14  	SM_UnloadExtension();
   21.15  
   21.16 -	SH_REMOVE_HOOK_STATICFUNC(IServerGameDLL, ServerActivate, server, Hook_ServerActivate, true);
   21.17 +	SH_REMOVE_HOOK_STATIC(IServerGameDLL, ServerActivate, server, SH_STATIC(Hook_ServerActivate), true);
   21.18  
   21.19  	return true;
   21.20  }