Check if requests for interfaces succeed
IBinTools might not be available if we're running on a newer SourceMod version than the extension is compiled against.
This commit is contained in:
		
							parent
							
								
									0a5cab577a
								
							
						
					
					
						commit
						9d07c9d74c
					
				@ -113,12 +113,21 @@ void SourceTVManager::SDK_OnAllLoaded()
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	SM_GET_LATE_IFACE(BINTOOLS, bintools);
 | 
						SM_GET_LATE_IFACE(BINTOOLS, bintools);
 | 
				
			||||||
 | 
						if (!bintools)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							smutils->LogError(myself, "Could not find interface: %s. Won't be able to send events to local spectators only.", SMINTERFACE_BINTOOLS_NAME);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	SM_GET_LATE_IFACE(SDKTOOLS, sdktools);
 | 
						SM_GET_LATE_IFACE(SDKTOOLS, sdktools);
 | 
				
			||||||
 | 
						if (!sdktools)
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							smutils->LogError(myself, "Could not find interface: %s. Some functions won't work.", SMINTERFACE_SDKTOOLS_NAME);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	g_pSTVForwards.Init();
 | 
						g_pSTVForwards.Init();
 | 
				
			||||||
	SetupNativeCalls();
 | 
						SetupNativeCalls();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	iserver = sdktools->GetIServer();
 | 
						if (sdktools)
 | 
				
			||||||
 | 
							iserver = sdktools->GetIServer();
 | 
				
			||||||
	if (!iserver)
 | 
						if (!iserver)
 | 
				
			||||||
		smutils->LogError(myself, "Failed to get IServer interface from SDKTools. Some functions won't work.");
 | 
							smutils->LogError(myself, "Failed to get IServer interface from SDKTools. Some functions won't work.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -35,6 +35,7 @@
 | 
				
			|||||||
#include "extension.h"
 | 
					#include "extension.h"
 | 
				
			||||||
#include "amtl/am-vector.h"
 | 
					#include "amtl/am-vector.h"
 | 
				
			||||||
#include "amtl/am-utility.h"
 | 
					#include "amtl/am-utility.h"
 | 
				
			||||||
 | 
					#include "amtl/am-autoptr.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class HLTVServerWrapper {
 | 
					class HLTVServerWrapper {
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
 | 
				
			|||||||
@ -235,6 +235,9 @@ static bool BroadcastEventLocal(IHLTVServer *server, IGameEvent *event, bool bRe
 | 
				
			|||||||
			return false;
 | 
								return false;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (!bintools)
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		PassInfo pass[2];
 | 
							PassInfo pass[2];
 | 
				
			||||||
		pass[0].flags = PASSFLAG_BYVAL;
 | 
							pass[0].flags = PASSFLAG_BYVAL;
 | 
				
			||||||
		pass[0].type = PassType_Basic;
 | 
							pass[0].type = PassType_Basic;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user