Merged in vgpowerlord/dhooks2/sdhooks-fix (pull request #1)
Fix for SDKHooks dependency issue
This commit is contained in:
		
						commit
						36838be6af
					
				| @ -110,3 +110,47 @@ void DHooks::OnPluginUnloaded(IPlugin *plugin) | |||||||
| 		g_pEntityListener->CleanupListeners(plugin->GetBaseContext()); | 		g_pEntityListener->CleanupListeners(plugin->GetBaseContext()); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | // The next 3 functions handle cleanup if our interfaces are going to be unloaded
 | ||||||
|  | bool DHooks::QueryRunning(char *error, size_t maxlength) | ||||||
|  | { | ||||||
|  | 	SM_CHECK_IFACE(SDKTOOLS, g_pSDKTools); | ||||||
|  | 	SM_CHECK_IFACE(BINTOOLS, g_pBinTools); | ||||||
|  | 	SM_CHECK_IFACE(SDKHOOKS, g_pSDKHooks); | ||||||
|  | 	return true; | ||||||
|  | } | ||||||
|  | /*
 | ||||||
|  | // The default for this one is *supposed* to be false already
 | ||||||
|  | bool DHooks::QueryInterfaceDrop(SMInterface *pInterface) | ||||||
|  | { | ||||||
|  | 	if (strcmp(pInterface->GetInterfaceName(), SMINTERFACE_SDKTOOLS_NAME) == 0 | ||||||
|  | 		|| strcmp(pInterface->GetInterfaceName(), SMINTERFACE_BINTOOL_NAME) == 0) | ||||||
|  | 		|| strcmp(pInterface->GetInterfaceName(), SMINTERFACE_SDKHOOKS_NAME) == 0) | ||||||
|  | 	{ | ||||||
|  | 		return false; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	return true; | ||||||
|  | } | ||||||
|  | */ | ||||||
|  | void DHooks::NotifyInterfaceDrop(SMInterface *pInterface) | ||||||
|  | { | ||||||
|  | 	if (strcmp(pInterface->GetInterfaceName(), SMINTERFACE_SDKHOOKS_NAME) == 0) | ||||||
|  | 	{ | ||||||
|  | 		if (g_pEntityListener) | ||||||
|  | 		{ | ||||||
|  | 			// If this fails, remove this line and just delete the ent listener instead
 | ||||||
|  | 			g_pSDKHooks->RemoveEntityListener(g_pEntityListener);  | ||||||
|  | 			delete g_pEntityListener; | ||||||
|  | 			g_pEntityListener = NULL; | ||||||
|  | 		} | ||||||
|  | 		g_pSDKHooks = NULL; | ||||||
|  | 	} | ||||||
|  | 	else if (strcmp(pInterface->GetInterfaceName(), SMINTERFACE_BINTOOLS_NAME) == 0) | ||||||
|  | 	{ | ||||||
|  | 		g_pBinTools = NULL; | ||||||
|  | 	} | ||||||
|  | 	else if (strcmp(pInterface->GetInterfaceName(), SMINTERFACE_SDKTOOLS_NAME) == 0) | ||||||
|  | 	{ | ||||||
|  | 		g_pSDKTools = NULL; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | |||||||
| @ -88,7 +88,9 @@ public: | |||||||
| 	 * @param maxlength	Size of error message buffer. | 	 * @param maxlength	Size of error message buffer. | ||||||
| 	 * @return			True if working, false otherwise. | 	 * @return			True if working, false otherwise. | ||||||
| 	 */ | 	 */ | ||||||
| 	//virtual bool QueryRunning(char *error, size_t maxlength);
 | 	virtual bool QueryRunning(char *error, size_t maxlength); | ||||||
|  | 	//virtual bool QueryInterfaceDrop(SMInterface *pInterface);
 | ||||||
|  | 	virtual void NotifyInterfaceDrop(SMInterface *pInterface); | ||||||
| public: | public: | ||||||
| #if defined SMEXT_CONF_METAMOD | #if defined SMEXT_CONF_METAMOD | ||||||
| 	/**
 | 	/**
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user