Split intercom.h into separate headers and reduce shared header inclusion.
This commit is contained in:
		
							parent
							
								
									4f1705e001
								
							
						
					
					
						commit
						4e275eea97
					
				
							
								
								
									
										46
									
								
								bridge/include/BridgeAPI.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								bridge/include/BridgeAPI.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,46 @@ | |||||||
|  | // vim: set ts=4 sw=4 tw=99 noet:
 | ||||||
|  | // =============================================================================
 | ||||||
|  | // SourceMod
 | ||||||
|  | // Copyright (C) 2004-2015 AlliedModders LLC.  All rights reserved.
 | ||||||
|  | // =============================================================================
 | ||||||
|  | //
 | ||||||
|  | // This program is free software; you can redistribute it and/or modify it under
 | ||||||
|  | // the terms of the GNU General Public License, version 3.0, as published by the
 | ||||||
|  | // Free Software Foundation.
 | ||||||
|  | // 
 | ||||||
|  | // This program is distributed in the hope that it will be useful, but WITHOUT
 | ||||||
|  | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | ||||||
|  | // FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | ||||||
|  | // details.
 | ||||||
|  | //
 | ||||||
|  | // You should have received a copy of the GNU General Public License along with
 | ||||||
|  | // this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | //
 | ||||||
|  | // As a special exception, AlliedModders LLC gives you permission to link the
 | ||||||
|  | // code of this program (as well as its derivative works) to "Half-Life 2," the
 | ||||||
|  | // "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | ||||||
|  | // by the Valve Corporation.  You must obey the GNU General Public License in
 | ||||||
|  | // all respects for all other code used.  Additionally, AlliedModders LLC grants
 | ||||||
|  | // this exception to all derivative works.  AlliedModders LLC defines further
 | ||||||
|  | // exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | ||||||
|  | // or <http://www.sourcemod.net/license.php>.
 | ||||||
|  | #ifndef _INCLUDE_SOURCEMOD_BRIDGE_API_H_ | ||||||
|  | #define _INCLUDE_SOURCEMOD_BRIDGE_API_H_ | ||||||
|  | 
 | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
|  | #include <bridge/include/LogicProvider.h> | ||||||
|  | #include <stdint.h> | ||||||
|  | 
 | ||||||
|  | namespace SourceMod { | ||||||
|  | 
 | ||||||
|  | // Add 1 to the RHS of this expression to bump the intercom file
 | ||||||
|  | // This is to prevent mismatching core/logic binaries
 | ||||||
|  | static const uint32_t SM_LOGIC_MAGIC = 0x0F47C0DE - 50; | ||||||
|  | 
 | ||||||
|  | } // namespace SourceMod
 | ||||||
|  | 
 | ||||||
|  | typedef void (*LogicInitFunction)(SourceMod::CoreProvider *core, SourceMod::sm_logic_t *logic); | ||||||
|  | typedef LogicInitFunction (*LogicLoadFunction)(uint32_t magic); | ||||||
|  | typedef SourceMod::ITextParsers *(*GetITextParsers)(); | ||||||
|  | 
 | ||||||
|  | #endif // _INCLUDE_SOURCEMOD_BRIDGE_API_H_
 | ||||||
							
								
								
									
										132
									
								
								bridge/include/CoreProvider.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								bridge/include/CoreProvider.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,132 @@ | |||||||
|  | // vim: set ts=4 sw=4 tw=99 noet:
 | ||||||
|  | // =============================================================================
 | ||||||
|  | // SourceMod
 | ||||||
|  | // Copyright (C) 2004-2015 AlliedModders LLC.  All rights reserved.
 | ||||||
|  | // =============================================================================
 | ||||||
|  | //
 | ||||||
|  | // This program is free software; you can redistribute it and/or modify it under
 | ||||||
|  | // the terms of the GNU General Public License, version 3.0, as published by the
 | ||||||
|  | // Free Software Foundation.
 | ||||||
|  | // 
 | ||||||
|  | // This program is distributed in the hope that it will be useful, but WITHOUT
 | ||||||
|  | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | ||||||
|  | // FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | ||||||
|  | // details.
 | ||||||
|  | //
 | ||||||
|  | // You should have received a copy of the GNU General Public License along with
 | ||||||
|  | // this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | //
 | ||||||
|  | // As a special exception, AlliedModders LLC gives you permission to link the
 | ||||||
|  | // code of this program (as well as its derivative works) to "Half-Life 2," the
 | ||||||
|  | // "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | ||||||
|  | // by the Valve Corporation.  You must obey the GNU General Public License in
 | ||||||
|  | // all respects for all other code used.  Additionally, AlliedModders LLC grants
 | ||||||
|  | // this exception to all derivative works.  AlliedModders LLC defines further
 | ||||||
|  | // exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | ||||||
|  | // or <http://www.sourcemod.net/license.php>.
 | ||||||
|  | #ifndef _INCLUDE_SOURCEMOD_CORE_PROVIDER_API_H_ | ||||||
|  | #define _INCLUDE_SOURCEMOD_CORE_PROVIDER_API_H_ | ||||||
|  | 
 | ||||||
|  | #include <stddef.h> | ||||||
|  | #include <stdint.h> | ||||||
|  | #include <IAdminSystem.h> | ||||||
|  | 
 | ||||||
|  | namespace SourcePawn { | ||||||
|  | class ISourcePawnEngine; | ||||||
|  | class ISourcePawnEngine2; | ||||||
|  | } // namespace SourcePawn
 | ||||||
|  | 
 | ||||||
|  | // SDK types.
 | ||||||
|  | #if defined(SM_LOGIC) | ||||||
|  | class ConCommandBase {}; | ||||||
|  | class ConVar : public ConCommandBase {}; | ||||||
|  | #else | ||||||
|  | class ConCommandBase; | ||||||
|  | class ConVar; | ||||||
|  | #endif | ||||||
|  | class KeyValues; | ||||||
|  | 
 | ||||||
|  | struct ServerGlobals | ||||||
|  | { | ||||||
|  | 	const double *universalTime; | ||||||
|  | 	float *interval_per_tick; | ||||||
|  | 	float *frametime; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | namespace SourceMod { | ||||||
|  | 
 | ||||||
|  | class ISourceMod; | ||||||
|  | class IVEngineServerBridge; | ||||||
|  | class IFileSystemBridge; | ||||||
|  | class ITimerSystem; | ||||||
|  | class IPlayerManager; | ||||||
|  | class IGameHelpers; | ||||||
|  | class IMenuManager; | ||||||
|  | struct DatabaseInfo; | ||||||
|  | class IPlayerInfoBridge; | ||||||
|  | 
 | ||||||
|  | class CoreProvider | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	/* Objects */ | ||||||
|  | 	ISourceMod		*sm; | ||||||
|  | 	IVEngineServerBridge *engine; | ||||||
|  | 	IFileSystemBridge *filesystem; | ||||||
|  | 	IPlayerInfoBridge *playerInfo; | ||||||
|  | 	ITimerSystem    *timersys; | ||||||
|  | 	IPlayerManager  *playerhelpers; | ||||||
|  | 	IGameHelpers    *gamehelpers; | ||||||
|  | 	IMenuManager	*menus; | ||||||
|  | 	SourcePawn::ISourcePawnEngine **spe1; | ||||||
|  | 	SourcePawn::ISourcePawnEngine2 **spe2; | ||||||
|  | 	const char		*gamesuffix; | ||||||
|  | 	/* Data */ | ||||||
|  | 	ServerGlobals   *serverGlobals; | ||||||
|  | 	void *          serverFactory; | ||||||
|  | 	void *          engineFactory; | ||||||
|  | 	void *          matchmakingDSFactory; | ||||||
|  | 	SMGlobalClass *	listeners; | ||||||
|  | 
 | ||||||
|  | 	// ConVar functions.
 | ||||||
|  | 	virtual ConVar *FindConVar(const char *name) = 0; | ||||||
|  | 	virtual const char *GetCvarString(ConVar *cvar) = 0; | ||||||
|  | 	virtual bool GetCvarBool(ConVar* cvar) = 0; | ||||||
|  | 
 | ||||||
|  | 	// Game description functions.
 | ||||||
|  | 	virtual bool GetGameName(char *buffer, size_t maxlength) = 0; | ||||||
|  | 	virtual const char *GetGameDescription() = 0; | ||||||
|  | 	virtual const char *GetSourceEngineName() = 0; | ||||||
|  | 	virtual bool SymbolsAreHidden() = 0; | ||||||
|  | 
 | ||||||
|  | 	// Game state and helper functions.
 | ||||||
|  | 	virtual bool IsMapLoading() = 0; | ||||||
|  | 	virtual bool IsMapRunning() = 0; | ||||||
|  | 	virtual int MaxClients() = 0; | ||||||
|  | 	virtual bool DescribePlayer(int index, const char **namep, const char **authp, int *useridp) = 0; | ||||||
|  | 	virtual void LogToGame(const char *message) = 0; | ||||||
|  | 	virtual void ConPrint(const char *message) = 0; | ||||||
|  | 	virtual void ConsolePrintVa(const char *fmt, va_list ap) = 0; | ||||||
|  | 
 | ||||||
|  | 	// Game engine helper functions.
 | ||||||
|  | 	virtual bool IsClientConVarQueryingSupported() = 0; | ||||||
|  | 	virtual int QueryClientConVar(int client, const char *cvar) = 0; | ||||||
|  | 
 | ||||||
|  | 	// Metamod:Source functions.
 | ||||||
|  | 	virtual int LoadMMSPlugin(const char *file, bool *ok, char *error, size_t maxlength) = 0; | ||||||
|  | 	virtual void UnloadMMSPlugin(int id) = 0; | ||||||
|  | 
 | ||||||
|  | 	const char *	(*GetCoreConfigValue)(const char*); | ||||||
|  | 	void			(*DoGlobalPluginLoads)(); | ||||||
|  | 	bool			(*AreConfigsExecuted)(); | ||||||
|  | 	void			(*ExecuteConfigs)(IPluginContext *ctx); | ||||||
|  | 	void			(*GetDBInfoFromKeyValues)(KeyValues *, DatabaseInfo *); | ||||||
|  | 	int				(*GetActivityFlags)(); | ||||||
|  | 	int				(*GetImmunityMode)(); | ||||||
|  | 	void			(*UpdateAdminCmdFlags)(const char *cmd, OverrideType type, FlagBits bits, bool remove); | ||||||
|  | 	bool			(*LookForCommandAdminFlags)(const char *cmd, FlagBits *pFlags); | ||||||
|  | 	int             (*GetGlobalTarget)(); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace SourceMod
 | ||||||
|  | 
 | ||||||
|  | #endif // _INCLUDE_SOURCEMOD_CORE_PROVIDER_API_H_
 | ||||||
							
								
								
									
										81
									
								
								bridge/include/IExtensionBridge.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								bridge/include/IExtensionBridge.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,81 @@ | |||||||
|  | // vim: set ts=4 sw=4 tw=99 noet:
 | ||||||
|  | // =============================================================================
 | ||||||
|  | // SourceMod
 | ||||||
|  | // Copyright (C) 2004-2015 AlliedModders LLC.  All rights reserved.
 | ||||||
|  | // =============================================================================
 | ||||||
|  | //
 | ||||||
|  | // This program is free software; you can redistribute it and/or modify it under
 | ||||||
|  | // the terms of the GNU General Public License, version 3.0, as published by the
 | ||||||
|  | // Free Software Foundation.
 | ||||||
|  | // 
 | ||||||
|  | // This program is distributed in the hope that it will be useful, but WITHOUT
 | ||||||
|  | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | ||||||
|  | // FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | ||||||
|  | // details.
 | ||||||
|  | //
 | ||||||
|  | // You should have received a copy of the GNU General Public License along with
 | ||||||
|  | // this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | //
 | ||||||
|  | // As a special exception, AlliedModders LLC gives you permission to link the
 | ||||||
|  | // code of this program (as well as its derivative works) to "Half-Life 2," the
 | ||||||
|  | // "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | ||||||
|  | // by the Valve Corporation.  You must obey the GNU General Public License in
 | ||||||
|  | // all respects for all other code used.  Additionally, AlliedModders LLC grants
 | ||||||
|  | // this exception to all derivative works.  AlliedModders LLC defines further
 | ||||||
|  | // exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | ||||||
|  | // or <http://www.sourcemod.net/license.php>.
 | ||||||
|  | #ifndef _INCLUDE_SOURCEMOD_BRIDGE_INCLUDE_IEXTBRIDGE_H_ | ||||||
|  | #define _INCLUDE_SOURCEMOD_BRIDGE_INCLUDE_IEXTBRIDGE_H_ | ||||||
|  | 
 | ||||||
|  | #include <sp_vm_api.h> | ||||||
|  | #include <IExtensionSys.h> | ||||||
|  | #include <sh_vector.h> | ||||||
|  | 
 | ||||||
|  | struct edict_t; | ||||||
|  | 
 | ||||||
|  | namespace SourceMod { | ||||||
|  | 
 | ||||||
|  | using namespace SourceHook; | ||||||
|  | using namespace SourcePawn; | ||||||
|  | class SMPlugin; | ||||||
|  | 
 | ||||||
|  | class IExtensionSys : public IExtensionManager | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	virtual IExtension *LoadAutoExtension(const char *name, bool bErrorOnMissing=true) = 0; | ||||||
|  | 	virtual void TryAutoload() = 0; | ||||||
|  | 	virtual void Shutdown() = 0; | ||||||
|  | 	virtual IExtension *FindExtensionByFile(const char *name) = 0; | ||||||
|  | 	virtual bool LibraryExists(const char *name) = 0; | ||||||
|  | 	virtual void CallOnCoreMapStart(edict_t *edictList, int edictCount, int maxClients) = 0; | ||||||
|  | 	virtual IExtension *GetExtensionFromIdent(IdentityToken_t *token) = 0; | ||||||
|  | 	virtual void BindChildPlugin(IExtension *ext, SMPlugin *plugin) = 0; | ||||||
|  | 	virtual void AddRawDependency(IExtension *myself, IdentityToken_t *token, void *iface) = 0; | ||||||
|  | 	virtual const CVector<IExtension *> *ListExtensions() = 0; | ||||||
|  | 	virtual void FreeExtensionList(const CVector<IExtension *> *list) = 0; | ||||||
|  | 	virtual void CallOnCoreMapEnd() = 0; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | class AutoExtensionList | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	AutoExtensionList(IExtensionSys *extensions) | ||||||
|  | 		: extensions_(extensions), list_(extensions_->ListExtensions()) | ||||||
|  | 	{ | ||||||
|  | 	} | ||||||
|  | 	~AutoExtensionList() | ||||||
|  | 	{ | ||||||
|  | 		extensions_->FreeExtensionList(list_); | ||||||
|  | 	} | ||||||
|  | 	const CVector<IExtension *> *operator ->() | ||||||
|  | 	{ | ||||||
|  | 		return list_; | ||||||
|  | 	} | ||||||
|  | private: | ||||||
|  | 	IExtensionSys *extensions_; | ||||||
|  | 	const CVector<IExtension *> *list_; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace SourceMod
 | ||||||
|  | 
 | ||||||
|  | #endif // _INCLUDE_SOURCEMOD_BRIDGE_INCLUDE_IEXTBRIDGE_H_
 | ||||||
							
								
								
									
										63
									
								
								bridge/include/IFileSystemBridge.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								bridge/include/IFileSystemBridge.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,63 @@ | |||||||
|  | // vim: set ts=4 sw=4 tw=99 noet:
 | ||||||
|  | // =============================================================================
 | ||||||
|  | // SourceMod
 | ||||||
|  | // Copyright (C) 2004-2015 AlliedModders LLC.  All rights reserved.
 | ||||||
|  | // =============================================================================
 | ||||||
|  | //
 | ||||||
|  | // This program is free software; you can redistribute it and/or modify it under
 | ||||||
|  | // the terms of the GNU General Public License, version 3.0, as published by the
 | ||||||
|  | // Free Software Foundation.
 | ||||||
|  | // 
 | ||||||
|  | // This program is distributed in the hope that it will be useful, but WITHOUT
 | ||||||
|  | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | ||||||
|  | // FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | ||||||
|  | // details.
 | ||||||
|  | //
 | ||||||
|  | // You should have received a copy of the GNU General Public License along with
 | ||||||
|  | // this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | //
 | ||||||
|  | // As a special exception, AlliedModders LLC gives you permission to link the
 | ||||||
|  | // code of this program (as well as its derivative works) to "Half-Life 2," the
 | ||||||
|  | // "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | ||||||
|  | // by the Valve Corporation.  You must obey the GNU General Public License in
 | ||||||
|  | // all respects for all other code used.  Additionally, AlliedModders LLC grants
 | ||||||
|  | // this exception to all derivative works.  AlliedModders LLC defines further
 | ||||||
|  | // exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | ||||||
|  | // or <http://www.sourcemod.net/license.php>.
 | ||||||
|  | #ifndef _INCLUDE_SOURCEMOD_BRIDGE_IFILESYSTEM_H_ | ||||||
|  | #define _INCLUDE_SOURCEMOD_BRIDGE_IFILESYSTEM_H_ | ||||||
|  | 
 | ||||||
|  | typedef void * FileHandle_t; | ||||||
|  | typedef int FileFindHandle_t;  | ||||||
|  | 
 | ||||||
|  | namespace SourceMod { | ||||||
|  | 
 | ||||||
|  | class IFileSystemBridge | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	virtual const char *FindFirstEx(const char *pWildCard, const char *pPathID, FileFindHandle_t *pHandle) = 0; | ||||||
|  | 	virtual const char *FindNext(FileFindHandle_t handle) = 0; | ||||||
|  | 	virtual bool FindIsDirectory(FileFindHandle_t handle) = 0; | ||||||
|  | 	virtual void FindClose(FileFindHandle_t handle) = 0; | ||||||
|  | 	virtual FileHandle_t Open(const char *pFileName, const char *pOptions, const char *pathID = 0) = 0; | ||||||
|  | 	virtual void Close(FileHandle_t file) = 0; | ||||||
|  | 	virtual char *ReadLine(char *pOutput, int maxChars, FileHandle_t file) = 0; | ||||||
|  | 	virtual bool EndOfFile(FileHandle_t file) = 0; | ||||||
|  | 	virtual bool FileExists(const char *pFileName, const char *pPathID = 0) = 0; | ||||||
|  | 	virtual unsigned int Size(const char *pFileName, const char *pPathID = 0) = 0; | ||||||
|  | 	virtual int Read(void* pOutput, int size, FileHandle_t file) = 0; | ||||||
|  | 	virtual int Write(void const* pInput, int size, FileHandle_t file) = 0; | ||||||
|  | 	virtual void Seek(FileHandle_t file, int post, int seekType) = 0; | ||||||
|  | 	virtual unsigned int Tell(FileHandle_t file) = 0; | ||||||
|  | 	virtual int FPrint(FileHandle_t file, const char *pData) = 0; | ||||||
|  | 	virtual void Flush(FileHandle_t file) = 0; | ||||||
|  | 	virtual bool IsOk(FileHandle_t file) = 0; | ||||||
|  | 	virtual void RemoveFile(const char *pRelativePath, const char *pathID = 0) = 0; | ||||||
|  | 	virtual void RenameFile(char const *pOldPath, char const *pNewPath, const char *pathID = 0) = 0; | ||||||
|  | 	virtual bool IsDirectory(const char *pFileName, const char *pathID = 0) = 0; | ||||||
|  | 	virtual void CreateDirHierarchy(const char *path, const char *pathID = 0) = 0; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace SourceMod
 | ||||||
|  | 
 | ||||||
|  | #endif // _INCLUDE_SOURCEMOD_BRIDGE_IFILESYSTEM_H_
 | ||||||
							
								
								
									
										43
									
								
								bridge/include/ILogger.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								bridge/include/ILogger.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,43 @@ | |||||||
|  | // vim: set ts=4 sw=4 tw=99 noet:
 | ||||||
|  | // =============================================================================
 | ||||||
|  | // SourceMod
 | ||||||
|  | // Copyright (C) 2004-2015 AlliedModders LLC.  All rights reserved.
 | ||||||
|  | // =============================================================================
 | ||||||
|  | //
 | ||||||
|  | // This program is free software; you can redistribute it and/or modify it under
 | ||||||
|  | // the terms of the GNU General Public License, version 3.0, as published by the
 | ||||||
|  | // Free Software Foundation.
 | ||||||
|  | // 
 | ||||||
|  | // This program is distributed in the hope that it will be useful, but WITHOUT
 | ||||||
|  | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | ||||||
|  | // FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | ||||||
|  | // details.
 | ||||||
|  | //
 | ||||||
|  | // You should have received a copy of the GNU General Public License along with
 | ||||||
|  | // this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | //
 | ||||||
|  | // As a special exception, AlliedModders LLC gives you permission to link the
 | ||||||
|  | // code of this program (as well as its derivative works) to "Half-Life 2," the
 | ||||||
|  | // "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | ||||||
|  | // by the Valve Corporation.  You must obey the GNU General Public License in
 | ||||||
|  | // all respects for all other code used.  Additionally, AlliedModders LLC grants
 | ||||||
|  | // this exception to all derivative works.  AlliedModders LLC defines further
 | ||||||
|  | // exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | ||||||
|  | // or <http://www.sourcemod.net/license.php>.
 | ||||||
|  | #ifndef _INCLUDE_SOURCEMOD_BRIDGE_LOGGER_H_ | ||||||
|  | #define _INCLUDE_SOURCEMOD_BRIDGE_LOGGER_H_ | ||||||
|  | 
 | ||||||
|  | namespace SourceMod { | ||||||
|  | 
 | ||||||
|  | class ILogger | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	virtual void LogMessage(const char *msg, ...) = 0; | ||||||
|  | 	virtual void LogError(const char *msg, ...) = 0; | ||||||
|  | 	virtual void LogFatal(const char *msg, ...) = 0; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace SourceMod
 | ||||||
|  | 
 | ||||||
|  | #endif // _INCLUDE_SOURCEMOD_BRIDGE_LOGGER_H_
 | ||||||
|  | 
 | ||||||
							
								
								
									
										55
									
								
								bridge/include/IPlayerInfoBridge.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								bridge/include/IPlayerInfoBridge.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,55 @@ | |||||||
|  | // vim: set ts=4 sw=4 tw=99 noet:
 | ||||||
|  | // =============================================================================
 | ||||||
|  | // SourceMod
 | ||||||
|  | // Copyright (C) 2004-2015 AlliedModders LLC.  All rights reserved.
 | ||||||
|  | // =============================================================================
 | ||||||
|  | //
 | ||||||
|  | // This program is free software; you can redistribute it and/or modify it under
 | ||||||
|  | // the terms of the GNU General Public License, version 3.0, as published by the
 | ||||||
|  | // Free Software Foundation.
 | ||||||
|  | // 
 | ||||||
|  | // This program is distributed in the hope that it will be useful, but WITHOUT
 | ||||||
|  | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | ||||||
|  | // FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | ||||||
|  | // details.
 | ||||||
|  | //
 | ||||||
|  | // You should have received a copy of the GNU General Public License along with
 | ||||||
|  | // this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | //
 | ||||||
|  | // As a special exception, AlliedModders LLC gives you permission to link the
 | ||||||
|  | // code of this program (as well as its derivative works) to "Half-Life 2," the
 | ||||||
|  | // "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | ||||||
|  | // by the Valve Corporation.  You must obey the GNU General Public License in
 | ||||||
|  | // all respects for all other code used.  Additionally, AlliedModders LLC grants
 | ||||||
|  | // this exception to all derivative works.  AlliedModders LLC defines further
 | ||||||
|  | // exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | ||||||
|  | // or <http://www.sourcemod.net/license.php>.
 | ||||||
|  | #ifndef _INCLUDE_SOURCEMOD_BRIDGE_INCLUDE_IPLAYERINFO_H_ | ||||||
|  | #define _INCLUDE_SOURCEMOD_BRIDGE_INCLUDE_IPLAYERINFO_H_ | ||||||
|  | 
 | ||||||
|  | class IPlayerInfo; | ||||||
|  | 
 | ||||||
|  | namespace SourceMod { | ||||||
|  | 
 | ||||||
|  | class IPlayerInfoBridge | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	virtual bool IsObserver(IPlayerInfo *pInfo) = 0; | ||||||
|  | 	virtual int GetTeamIndex(IPlayerInfo *pInfo) = 0; | ||||||
|  | 	virtual int GetFragCount(IPlayerInfo *pInfo) = 0; | ||||||
|  | 	virtual int GetDeathCount(IPlayerInfo *pInfo) = 0; | ||||||
|  | 	virtual int GetArmorValue(IPlayerInfo *pInfo) = 0; | ||||||
|  | 	virtual void GetAbsOrigin(IPlayerInfo *pInfo, float *x, float *y, float *z) = 0; | ||||||
|  | 	virtual void GetAbsAngles(IPlayerInfo *pInfo, float *x, float *y, float *z) = 0; | ||||||
|  | 	virtual void GetPlayerMins(IPlayerInfo *pInfo, float *x, float *y, float *z) = 0; | ||||||
|  | 	virtual void GetPlayerMaxs(IPlayerInfo *pInfo, float *x, float *y, float *z) = 0; | ||||||
|  | 	virtual const char *GetWeaponName(IPlayerInfo *pInfo) = 0; | ||||||
|  | 	virtual const char *GetModelName(IPlayerInfo *pInfo) = 0; | ||||||
|  | 	virtual int GetHealth(IPlayerInfo *pInfo) = 0; | ||||||
|  | 	virtual void ChangeTeam(IPlayerInfo *pInfo, int iTeamNum) = 0; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace SourceMod
 | ||||||
|  | 
 | ||||||
|  | #endif // _INCLUDE_SOURCEMOD_BRIDGE_INCLUDE_IPLAYERINFO_H_
 | ||||||
|  | 
 | ||||||
							
								
								
									
										42
									
								
								bridge/include/IProviderCallbacks.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								bridge/include/IProviderCallbacks.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,42 @@ | |||||||
|  | // vim: set ts=4 sw=4 tw=99 noet:
 | ||||||
|  | // =============================================================================
 | ||||||
|  | // SourceMod
 | ||||||
|  | // Copyright (C) 2004-2015 AlliedModders LLC.  All rights reserved.
 | ||||||
|  | // =============================================================================
 | ||||||
|  | //
 | ||||||
|  | // This program is free software; you can redistribute it and/or modify it under
 | ||||||
|  | // the terms of the GNU General Public License, version 3.0, as published by the
 | ||||||
|  | // Free Software Foundation.
 | ||||||
|  | // 
 | ||||||
|  | // This program is distributed in the hope that it will be useful, but WITHOUT
 | ||||||
|  | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | ||||||
|  | // FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | ||||||
|  | // details.
 | ||||||
|  | //
 | ||||||
|  | // You should have received a copy of the GNU General Public License along with
 | ||||||
|  | // this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | //
 | ||||||
|  | // As a special exception, AlliedModders LLC gives you permission to link the
 | ||||||
|  | // code of this program (as well as its derivative works) to "Half-Life 2," the
 | ||||||
|  | // "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | ||||||
|  | // by the Valve Corporation.  You must obey the GNU General Public License in
 | ||||||
|  | // all respects for all other code used.  Additionally, AlliedModders LLC grants
 | ||||||
|  | // this exception to all derivative works.  AlliedModders LLC defines further
 | ||||||
|  | // exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | ||||||
|  | // or <http://www.sourcemod.net/license.php>.
 | ||||||
|  | #ifndef _INCLUDE_SOURCEMOD_BRIDGE_INCLUDE_IPROVIDERCALLBACK_H_ | ||||||
|  | #define _INCLUDE_SOURCEMOD_BRIDGE_INCLUDE_IPROVIDERCALLBACK_H_ | ||||||
|  | 
 | ||||||
|  | namespace SourceMod { | ||||||
|  | 
 | ||||||
|  | // Global callbacks provided to Core.
 | ||||||
|  | class IProviderCallbacks | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	// Called when a log message is printed. Return true to supercede.
 | ||||||
|  | 	virtual bool OnLogPrint(const char *msg) = 0; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace SourceMod
 | ||||||
|  | 
 | ||||||
|  | #endif // _INCLUDE_SOURCEMOD_BRIDGE_INCLUDE_IPROVIDERCALLBACK_H_
 | ||||||
							
								
								
									
										112
									
								
								bridge/include/IScriptManager.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								bridge/include/IScriptManager.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,112 @@ | |||||||
|  | // vim: set ts=4 sw=4 tw=99 noet:
 | ||||||
|  | // =============================================================================
 | ||||||
|  | // SourceMod
 | ||||||
|  | // Copyright (C) 2004-2015 AlliedModders LLC.  All rights reserved.
 | ||||||
|  | // =============================================================================
 | ||||||
|  | //
 | ||||||
|  | // This program is free software; you can redistribute it and/or modify it under
 | ||||||
|  | // the terms of the GNU General Public License, version 3.0, as published by the
 | ||||||
|  | // Free Software Foundation.
 | ||||||
|  | // 
 | ||||||
|  | // This program is distributed in the hope that it will be useful, but WITHOUT
 | ||||||
|  | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | ||||||
|  | // FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | ||||||
|  | // details.
 | ||||||
|  | //
 | ||||||
|  | // You should have received a copy of the GNU General Public License along with
 | ||||||
|  | // this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | //
 | ||||||
|  | // As a special exception, AlliedModders LLC gives you permission to link the
 | ||||||
|  | // code of this program (as well as its derivative works) to "Half-Life 2," the
 | ||||||
|  | // "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | ||||||
|  | // by the Valve Corporation.  You must obey the GNU General Public License in
 | ||||||
|  | // all respects for all other code used.  Additionally, AlliedModders LLC grants
 | ||||||
|  | // this exception to all derivative works.  AlliedModders LLC defines further
 | ||||||
|  | // exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | ||||||
|  | // or <http://www.sourcemod.net/license.php>.
 | ||||||
|  | #ifndef _INCLUDE_SOURCEMOD_BRIDGE_INCLUDE_ISCRIPTMANAGER_H_ | ||||||
|  | #define _INCLUDE_SOURCEMOD_BRIDGE_INCLUDE_ISCRIPTMANAGER_H_ | ||||||
|  | 
 | ||||||
|  | #include <sp_vm_api.h> | ||||||
|  | #include <IPluginSys.h> | ||||||
|  | #include <sh_vector.h> | ||||||
|  | #include <sh_string.h> | ||||||
|  | 
 | ||||||
|  | namespace SourceMod { | ||||||
|  | 
 | ||||||
|  | using namespace SourceHook; | ||||||
|  | using namespace SourcePawn; | ||||||
|  | 
 | ||||||
|  | class IChangeableForward; | ||||||
|  | 
 | ||||||
|  | enum LibraryAction | ||||||
|  | { | ||||||
|  | 	LibraryAction_Removed, | ||||||
|  | 	LibraryAction_Added | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | struct AutoConfig | ||||||
|  | { | ||||||
|  | 	SourceHook::String autocfg; | ||||||
|  | 	SourceHook::String folder; | ||||||
|  | 	bool create; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | class SMPlugin : public IPlugin | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	virtual size_t GetConfigCount() = 0; | ||||||
|  | 	virtual AutoConfig *GetConfig(size_t i) = 0; | ||||||
|  | 	virtual void AddLibrary(const char *name) = 0; | ||||||
|  | 	virtual void AddConfig(bool create, const char *cfg, const char *folder) = 0; | ||||||
|  | 	virtual void SetErrorState(PluginStatus status, const char *fmt, ...) = 0; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | class IScriptManager | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	virtual void LoadAll(const char *config_path, const char *plugins_path) = 0; | ||||||
|  | 	virtual void RefreshAll() = 0; | ||||||
|  | 	virtual void Shutdown() = 0; | ||||||
|  | 	virtual IdentityToken_t *GetIdentity() = 0; | ||||||
|  | 	virtual void SyncMaxClients(int maxClients) = 0; | ||||||
|  | 	virtual void AddPluginsListener(IPluginsListener *listener) = 0; | ||||||
|  | 	virtual void RemovePluginsListener(IPluginsListener *listener) = 0; | ||||||
|  | 	virtual IPluginIterator *GetPluginIterator() = 0; | ||||||
|  | 	virtual void OnLibraryAction(const char *name, LibraryAction action) = 0; | ||||||
|  | 	virtual bool LibraryExists(const char *name) = 0; | ||||||
|  | 	virtual SMPlugin *FindPluginByOrder(unsigned num) = 0; | ||||||
|  | 	virtual SMPlugin *FindPluginByIdentity(IdentityToken_t *ident) = 0; | ||||||
|  | 	virtual SMPlugin *FindPluginByContext(IPluginContext *ctx) = 0; | ||||||
|  | 	virtual SMPlugin *FindPluginByContext(sp_context_t *ctx) = 0; | ||||||
|  | 	virtual SMPlugin *FindPluginByConsoleArg(const char *text) = 0; | ||||||
|  | 	virtual SMPlugin *FindPluginByHandle(Handle_t hndl, HandleError *errp) = 0; | ||||||
|  | 	virtual bool UnloadPlugin(IPlugin *plugin) = 0; | ||||||
|  | 	virtual const CVector<SMPlugin *> *ListPlugins() = 0; | ||||||
|  | 	virtual void FreePluginList(const CVector<SMPlugin *> *list) = 0; | ||||||
|  | 	virtual void AddFunctionsToForward(const char *name, IChangeableForward *fwd) = 0; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | class AutoPluginList | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	AutoPluginList(IScriptManager *scripts) | ||||||
|  | 		: scripts_(scripts), list_(scripts->ListPlugins()) | ||||||
|  | 	{ | ||||||
|  | 	} | ||||||
|  | 	~AutoPluginList() | ||||||
|  | 	{ | ||||||
|  | 		scripts_->FreePluginList(list_); | ||||||
|  | 	} | ||||||
|  | 	const CVector<SMPlugin *> *operator ->() | ||||||
|  | 	{ | ||||||
|  | 		return list_; | ||||||
|  | 	} | ||||||
|  | private: | ||||||
|  | 	IScriptManager *scripts_; | ||||||
|  | 	const CVector<SMPlugin *> *list_; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace SourceMod
 | ||||||
|  | 
 | ||||||
|  | #endif // _INCLUDE_SOURCEMOD_BRIDGE_INCLUDE_ISCRIPTMANAGER_H_
 | ||||||
							
								
								
									
										48
									
								
								bridge/include/IVEngineServerBridge.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								bridge/include/IVEngineServerBridge.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,48 @@ | |||||||
|  | // vim: set ts=4 sw=4 tw=99 noet:
 | ||||||
|  | // =============================================================================
 | ||||||
|  | // SourceMod
 | ||||||
|  | // Copyright (C) 2004-2015 AlliedModders LLC.  All rights reserved.
 | ||||||
|  | // =============================================================================
 | ||||||
|  | //
 | ||||||
|  | // This program is free software; you can redistribute it and/or modify it under
 | ||||||
|  | // the terms of the GNU General Public License, version 3.0, as published by the
 | ||||||
|  | // Free Software Foundation.
 | ||||||
|  | // 
 | ||||||
|  | // This program is distributed in the hope that it will be useful, but WITHOUT
 | ||||||
|  | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | ||||||
|  | // FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | ||||||
|  | // details.
 | ||||||
|  | //
 | ||||||
|  | // You should have received a copy of the GNU General Public License along with
 | ||||||
|  | // this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | //
 | ||||||
|  | // As a special exception, AlliedModders LLC gives you permission to link the
 | ||||||
|  | // code of this program (as well as its derivative works) to "Half-Life 2," the
 | ||||||
|  | // "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | ||||||
|  | // by the Valve Corporation.  You must obey the GNU General Public License in
 | ||||||
|  | // all respects for all other code used.  Additionally, AlliedModders LLC grants
 | ||||||
|  | // this exception to all derivative works.  AlliedModders LLC defines further
 | ||||||
|  | // exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | ||||||
|  | // or <http://www.sourcemod.net/license.php>.
 | ||||||
|  | #ifndef _INCLUDE_SOURCEMOD_BRIDGE_IVENGINESERVER_H_ | ||||||
|  | #define _INCLUDE_SOURCEMOD_BRIDGE_IVENGINESERVER_H_ | ||||||
|  | 
 | ||||||
|  | struct edict_t; | ||||||
|  | 
 | ||||||
|  | namespace SourceMod { | ||||||
|  | 
 | ||||||
|  | class IVEngineServerBridge | ||||||
|  | { | ||||||
|  | public: | ||||||
|  | 	virtual bool IsDedicatedServer() = 0; | ||||||
|  | 	virtual void InsertServerCommand(const char *cmd) = 0; | ||||||
|  | 	virtual void ServerCommand(const char *cmd) = 0; | ||||||
|  | 	virtual void ServerExecute() = 0; | ||||||
|  | 	virtual const char *GetClientConVarValue(int clientIndex, const char *name) = 0; | ||||||
|  | 	virtual void ClientCommand(edict_t *pEdict, const char *szCommand) = 0; | ||||||
|  | 	virtual void FakeClientCommand(edict_t *pEdict, const char *szCommand) = 0; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace SourceMod
 | ||||||
|  | 
 | ||||||
|  | #endif // _INCLUDE_SOURCEMOD_BRIDGE_IVENGINESERVER_H_
 | ||||||
							
								
								
									
										90
									
								
								bridge/include/LogicProvider.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								bridge/include/LogicProvider.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,90 @@ | |||||||
|  | // vim: set ts=4 sw=4 tw=99 noet:
 | ||||||
|  | // =============================================================================
 | ||||||
|  | // SourceMod
 | ||||||
|  | // Copyright (C) 2004-2015 AlliedModders LLC.  All rights reserved.
 | ||||||
|  | // =============================================================================
 | ||||||
|  | //
 | ||||||
|  | // This program is free software; you can redistribute it and/or modify it under
 | ||||||
|  | // the terms of the GNU General Public License, version 3.0, as published by the
 | ||||||
|  | // Free Software Foundation.
 | ||||||
|  | // 
 | ||||||
|  | // This program is distributed in the hope that it will be useful, but WITHOUT
 | ||||||
|  | // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | ||||||
|  | // FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 | ||||||
|  | // details.
 | ||||||
|  | //
 | ||||||
|  | // You should have received a copy of the GNU General Public License along with
 | ||||||
|  | // this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||||
|  | //
 | ||||||
|  | // As a special exception, AlliedModders LLC gives you permission to link the
 | ||||||
|  | // code of this program (as well as its derivative works) to "Half-Life 2," the
 | ||||||
|  | // "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
 | ||||||
|  | // by the Valve Corporation.  You must obey the GNU General Public License in
 | ||||||
|  | // all respects for all other code used.  Additionally, AlliedModders LLC grants
 | ||||||
|  | // this exception to all derivative works.  AlliedModders LLC defines further
 | ||||||
|  | // exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
 | ||||||
|  | // or <http://www.sourcemod.net/license.php>.
 | ||||||
|  | #ifndef _INCLUDE_SOURCEMOD_LOGIC_PROVIDER_API_H_ | ||||||
|  | #define _INCLUDE_SOURCEMOD_LOGIC_PROVIDER_API_H_ | ||||||
|  | 
 | ||||||
|  | #include <sp_vm_api.h> | ||||||
|  | 
 | ||||||
|  | class SMGlobalClass; | ||||||
|  | 
 | ||||||
|  | namespace SourceMod { | ||||||
|  | 
 | ||||||
|  | using namespace SourcePawn; | ||||||
|  | 
 | ||||||
|  | class CoreProvider; | ||||||
|  | class IThreader; | ||||||
|  | class ITranslator; | ||||||
|  | class IGameConfig; | ||||||
|  | class IScriptManager; | ||||||
|  | class IShareSys; | ||||||
|  | class IHandleSys; | ||||||
|  | class ICommandArgs; | ||||||
|  | class IForwardManager; | ||||||
|  | class IAdminSystem; | ||||||
|  | class IRootConsole; | ||||||
|  | class IProviderCallbacks; | ||||||
|  | class IExtensionSys; | ||||||
|  | class ITextParsers; | ||||||
|  | class ILogger; | ||||||
|  | 
 | ||||||
|  | struct sm_logic_t | ||||||
|  | { | ||||||
|  | 	SMGlobalClass	*head; | ||||||
|  | 	IThreader		*threader; | ||||||
|  | 	ITranslator		*translator; | ||||||
|  | 	const char      *(*stristr)(const char *, const char *); | ||||||
|  | 	size_t			(*atcprintf)(char *, size_t, const char *, IPluginContext *, const cell_t *, int *); | ||||||
|  | 	bool			(*CoreTranslate)(char *,  size_t, const char *, unsigned int, size_t *, ...); | ||||||
|  | 	void            (*AddCorePhraseFile)(const char *filename); | ||||||
|  | 	unsigned int	(*ReplaceAll)(char*, size_t, const char *, const char *, bool); | ||||||
|  | 	char            *(*ReplaceEx)(char *, size_t, const char *, size_t, const char *, size_t, bool); | ||||||
|  | 	size_t          (*DecodeHexString)(unsigned char *, size_t, const char *); | ||||||
|  | 	IGameConfig *   (*GetCoreGameConfig)(); | ||||||
|  | 	IDebugListener   *debugger; | ||||||
|  | 	void			(*GenerateError)(IPluginContext *, cell_t, int, const char *, ...); | ||||||
|  | 	void			(*AddNatives)(sp_nativeinfo_t *natives); | ||||||
|  | 	void			(*DumpHandles)(void (*dumpfn)(const char *fmt, ...)); | ||||||
|  | 	bool			(*DumpAdminCache)(const char *filename); | ||||||
|  | 	void            (*RegisterProfiler)(IProfilingTool *tool); | ||||||
|  | 	void			(*OnRootCommand)(const ICommandArgs *args); | ||||||
|  | 	IScriptManager	*scripts; | ||||||
|  | 	IShareSys		*sharesys; | ||||||
|  | 	IExtensionSys	*extsys; | ||||||
|  | 	IHandleSys		*handlesys; | ||||||
|  | 	IForwardManager	*forwardsys; | ||||||
|  | 	IAdminSystem	*adminsys; | ||||||
|  | 	IdentityToken_t *core_ident; | ||||||
|  | 	ILogger			*logger; | ||||||
|  | 	IRootConsole	*rootmenu; | ||||||
|  | 	IProviderCallbacks *callbacks; | ||||||
|  | 	float			sentinel; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace SourceMod
 | ||||||
|  | 
 | ||||||
|  | #endif // _INCLUDE_SOURCEMOD_LOGIC_PROVIDER_API_H_
 | ||||||
|  | 
 | ||||||
| @ -51,6 +51,10 @@ for sdk_name in SM.sdks: | |||||||
|   binary = SM.HL2Config(project, binary_name, sdk) |   binary = SM.HL2Config(project, binary_name, sdk) | ||||||
|   compiler = binary.compiler |   compiler = binary.compiler | ||||||
| 
 | 
 | ||||||
|  |   compiler.cxxincludes += [ | ||||||
|  |     builder.sourcePath | ||||||
|  |   ] | ||||||
|  | 
 | ||||||
|   if sdk.name == 'csgo': |   if sdk.name == 'csgo': | ||||||
|     compiler.cxxincludes += [ |     compiler.cxxincludes += [ | ||||||
|       os.path.join(sdk.path, 'common', 'protobuf-2.5.0', 'src'), |       os.path.join(sdk.path, 'common', 'protobuf-2.5.0', 'src'), | ||||||
|  | |||||||
| @ -36,6 +36,7 @@ | |||||||
| #include "ChatTriggers.h" | #include "ChatTriggers.h" | ||||||
| #include "logic_bridge.h" | #include "logic_bridge.h" | ||||||
| #include "sourcemod.h" | #include "sourcemod.h" | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
| 
 | 
 | ||||||
| using namespace ke; | using namespace ke; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -35,6 +35,7 @@ | |||||||
| #include "logic_bridge.h" | #include "logic_bridge.h" | ||||||
| #include "sourcemod.h" | #include "sourcemod.h" | ||||||
| #include "provider.h" | #include "provider.h" | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
| 
 | 
 | ||||||
| ConVarManager g_ConVarManager; | ConVarManager g_ConVarManager; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -51,6 +51,7 @@ | |||||||
| #include "ConCommandBaseIterator.h" | #include "ConCommandBaseIterator.h" | ||||||
| #include "logic_bridge.h" | #include "logic_bridge.h" | ||||||
| #include <am-utility.h> | #include <am-utility.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
| 
 | 
 | ||||||
| #if defined PLATFORM_POSIX | #if defined PLATFORM_POSIX | ||||||
| # include <dlfcn.h> | # include <dlfcn.h> | ||||||
|  | |||||||
| @ -42,6 +42,9 @@ | |||||||
| #include <amtl/os/am-path.h> | #include <amtl/os/am-path.h> | ||||||
| #include <amtl/os/am-fsutil.h> | #include <amtl/os/am-fsutil.h> | ||||||
| #include <sh_list.h> | #include <sh_list.h> | ||||||
|  | #include <IForwardSys.h> | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
| 
 | 
 | ||||||
| using namespace SourceHook; | using namespace SourceHook; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -32,6 +32,7 @@ | |||||||
| #include "EventManager.h" | #include "EventManager.h" | ||||||
| #include "sm_stringutil.h" | #include "sm_stringutil.h" | ||||||
| #include "logic_bridge.h" | #include "logic_bridge.h" | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
| 
 | 
 | ||||||
| EventManager g_EventManager; | EventManager g_EventManager; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -41,6 +41,7 @@ | |||||||
| #include <amtl/os/am-shared-library.h> | #include <amtl/os/am-shared-library.h> | ||||||
| #include "logic_bridge.h" | #include "logic_bridge.h" | ||||||
| #include <tier0/mem.h> | #include <tier0/mem.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
| 
 | 
 | ||||||
| #if SOURCE_ENGINE == SE_DOTA | #if SOURCE_ENGINE == SE_DOTA | ||||||
| #include <game/shared/protobuf/usermessages.pb.h> | #include <game/shared/protobuf/usermessages.pb.h> | ||||||
|  | |||||||
| @ -37,6 +37,7 @@ | |||||||
| #include "TimerSys.h" | #include "TimerSys.h" | ||||||
| #include "logic_bridge.h" | #include "logic_bridge.h" | ||||||
| #include <sourcemod_version.h> | #include <sourcemod_version.h> | ||||||
|  | #include <bridge/include/IProviderCallbacks.h> | ||||||
| 
 | 
 | ||||||
| bool g_in_game_log_hook = false; | bool g_in_game_log_hook = false; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -37,6 +37,8 @@ | |||||||
| #include "sourcehook.h" | #include "sourcehook.h" | ||||||
| #include "logic_bridge.h" | #include "logic_bridge.h" | ||||||
| #include "compat_wrappers.h" | #include "compat_wrappers.h" | ||||||
|  | #include <time.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
| 
 | 
 | ||||||
| NextMapManager g_NextMap; | NextMapManager g_NextMap; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -47,6 +47,9 @@ | |||||||
| #include "logic_bridge.h" | #include "logic_bridge.h" | ||||||
| #include <sourcemod_version.h> | #include <sourcemod_version.h> | ||||||
| #include "smn_keyvalues.h" | #include "smn_keyvalues.h" | ||||||
|  | #include <bridge/include/IExtensionBridge.h> | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
| 
 | 
 | ||||||
| PlayerManager g_Players; | PlayerManager g_Players; | ||||||
| bool g_OnMapStarted = false; | bool g_OnMapStarted = false; | ||||||
|  | |||||||
| @ -3,6 +3,7 @@ import os | |||||||
| 
 | 
 | ||||||
| binary = SM.Library(builder, 'sourcemod.logic') | binary = SM.Library(builder, 'sourcemod.logic') | ||||||
| binary.compiler.cxxincludes += [ | binary.compiler.cxxincludes += [ | ||||||
|  |   builder.sourcePath, | ||||||
|   os.path.join(builder.sourcePath, 'core', 'logic'), |   os.path.join(builder.sourcePath, 'core', 'logic'), | ||||||
|   os.path.join(builder.sourcePath, 'public'), |   os.path.join(builder.sourcePath, 'public'), | ||||||
|   os.path.join(builder.sourcePath, 'sourcepawn', 'include'), |   os.path.join(builder.sourcePath, 'sourcepawn', 'include'), | ||||||
|  | |||||||
| @ -40,6 +40,9 @@ | |||||||
| #include "Translator.h" | #include "Translator.h" | ||||||
| #include "common_logic.h" | #include "common_logic.h" | ||||||
| #include "stringutil.h" | #include "stringutil.h" | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
|  | #include <bridge/include/IVEngineServerBridge.h> | ||||||
| 
 | 
 | ||||||
| #define LEVEL_STATE_NONE		0 | #define LEVEL_STATE_NONE		0 | ||||||
| #define LEVEL_STATE_LEVELS		1 | #define LEVEL_STATE_LEVELS		1 | ||||||
|  | |||||||
| @ -36,6 +36,7 @@ | |||||||
| #include "PluginSys.h" | #include "PluginSys.h" | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <IThreader.h> | #include <IThreader.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
| 
 | 
 | ||||||
| #define DBPARSE_LEVEL_NONE		0 | #define DBPARSE_LEVEL_NONE		0 | ||||||
| #define DBPARSE_LEVEL_MAIN		1 | #define DBPARSE_LEVEL_MAIN		1 | ||||||
|  | |||||||
| @ -37,6 +37,8 @@ | |||||||
| #include "PluginSys.h" | #include "PluginSys.h" | ||||||
| #include <am-utility.h> | #include <am-utility.h> | ||||||
| #include <am-string.h> | #include <am-string.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
| 
 | 
 | ||||||
| CExtensionManager g_Extensions; | CExtensionManager g_Extensions; | ||||||
| IdentityType_t g_ExtType; | IdentityType_t g_ExtType; | ||||||
|  | |||||||
| @ -41,6 +41,7 @@ | |||||||
| #include <IRootConsoleMenu.h> | #include <IRootConsoleMenu.h> | ||||||
| #include "NativeOwner.h" | #include "NativeOwner.h" | ||||||
| #include "ShareSys.h" | #include "ShareSys.h" | ||||||
|  | #include <bridge/include/IExtensionBridge.h> | ||||||
| 
 | 
 | ||||||
| class CPlayer; | class CPlayer; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -35,6 +35,7 @@ | |||||||
| #include "ForwardSys.h" | #include "ForwardSys.h" | ||||||
| #include "DebugReporter.h" | #include "DebugReporter.h" | ||||||
| #include "common_logic.h" | #include "common_logic.h" | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
| 
 | 
 | ||||||
| CForwardManager g_Forwards; | CForwardManager g_Forwards; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -43,6 +43,8 @@ | |||||||
| #include "sm_crc32.h" | #include "sm_crc32.h" | ||||||
| #include "MemoryUtils.h" | #include "MemoryUtils.h" | ||||||
| #include <am-string.h> | #include <am-string.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
| 
 | 
 | ||||||
| #if defined PLATFORM_POSIX | #if defined PLATFORM_POSIX | ||||||
| #include <dlfcn.h> | #include <dlfcn.h> | ||||||
|  | |||||||
| @ -40,7 +40,6 @@ | |||||||
| #include <sm_namehashset.h> | #include <sm_namehashset.h> | ||||||
| 
 | 
 | ||||||
| using namespace SourceMod; | using namespace SourceMod; | ||||||
| using namespace SourceHook; |  | ||||||
| 
 | 
 | ||||||
| class SendProp; | class SendProp; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -37,6 +37,7 @@ | |||||||
| #include "ExtensionSys.h" | #include "ExtensionSys.h" | ||||||
| #include "PluginSys.h" | #include "PluginSys.h" | ||||||
| #include <am-string.h> | #include <am-string.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
| 
 | 
 | ||||||
| HandleSystem g_HandleSys; | HandleSystem g_HandleSys; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -35,6 +35,8 @@ | |||||||
| #include <sourcemod_version.h> | #include <sourcemod_version.h> | ||||||
| #include <ISourceMod.h> | #include <ISourceMod.h> | ||||||
| #include <am-string.h> | #include <am-string.h> | ||||||
|  | #include <ILibrarySys.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
| 
 | 
 | ||||||
| Logger g_Logger; | Logger g_Logger; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -32,10 +32,10 @@ | |||||||
| #ifndef _INCLUDE_SOURCEMOD_CLOGGER_H_ | #ifndef _INCLUDE_SOURCEMOD_CLOGGER_H_ | ||||||
| #define _INCLUDE_SOURCEMOD_CLOGGER_H_ | #define _INCLUDE_SOURCEMOD_CLOGGER_H_ | ||||||
| 
 | 
 | ||||||
|  | #include "common_logic.h" | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <sh_string.h> | #include <sh_string.h> | ||||||
| 
 | #include <bridge/include/ILogger.h> | ||||||
| #include "common_logic.h" |  | ||||||
| 
 | 
 | ||||||
| using namespace SourceHook; | using namespace SourceHook; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -38,6 +38,8 @@ | |||||||
| #include <am-refcounting.h> | #include <am-refcounting.h> | ||||||
| #include "common_logic.h" | #include "common_logic.h" | ||||||
| 
 | 
 | ||||||
|  | class CNativeOwner; | ||||||
|  | 
 | ||||||
| struct FakeNative | struct FakeNative | ||||||
| { | { | ||||||
| 	FakeNative(const char *name, IPluginFunction *fun) | 	FakeNative(const char *name, IPluginFunction *fun) | ||||||
|  | |||||||
| @ -37,6 +37,7 @@ | |||||||
| #include <am-vector.h> | #include <am-vector.h> | ||||||
| #include "common_logic.h" | #include "common_logic.h" | ||||||
| #include "Native.h" | #include "Native.h" | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
| 
 | 
 | ||||||
| struct Native; | struct Native; | ||||||
| class CPlugin; | class CPlugin; | ||||||
|  | |||||||
| @ -44,6 +44,8 @@ | |||||||
| #include "Translator.h" | #include "Translator.h" | ||||||
| #include "Logger.h" | #include "Logger.h" | ||||||
| #include <am-string.h> | #include <am-string.h> | ||||||
|  | #include <bridge/include/IVEngineServerBridge.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
| 
 | 
 | ||||||
| CPluginManager g_PluginSys; | CPluginManager g_PluginSys; | ||||||
| HandleType_t g_PluginType = 0; | HandleType_t g_PluginType = 0; | ||||||
|  | |||||||
| @ -50,6 +50,7 @@ | |||||||
| #include "IGameConfigs.h" | #include "IGameConfigs.h" | ||||||
| #include "NativeOwner.h" | #include "NativeOwner.h" | ||||||
| #include "ShareSys.h" | #include "ShareSys.h" | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
| 
 | 
 | ||||||
| class CPlayer; | class CPlayer; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -27,6 +27,7 @@ | |||||||
| #include "RootConsoleMenu.h" | #include "RootConsoleMenu.h" | ||||||
| #include <amtl/am-string.h> | #include <amtl/am-string.h> | ||||||
| #include <sourcemod_version.h> | #include <sourcemod_version.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
| 
 | 
 | ||||||
| RootConsoleMenu g_RootMenu; | RootConsoleMenu g_RootMenu; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -42,6 +42,8 @@ | |||||||
| #include "stringutil.h" | #include "stringutil.h" | ||||||
| #include "sprintf.h" | #include "sprintf.h" | ||||||
| #include <am-string.h> | #include <am-string.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
| 
 | 
 | ||||||
| Translator g_Translator; | Translator g_Translator; | ||||||
| IPhraseCollection *g_pCorePhrases = NULL; | IPhraseCollection *g_pCorePhrases = NULL; | ||||||
|  | |||||||
| @ -42,6 +42,7 @@ | |||||||
| 
 | 
 | ||||||
| /* :TODO: write a templatized version of tries? */ | /* :TODO: write a templatized version of tries? */ | ||||||
| 
 | 
 | ||||||
|  | using namespace SourceMod; | ||||||
| using namespace SourceHook; | using namespace SourceHook; | ||||||
| class Translator; | class Translator; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -54,6 +54,8 @@ | |||||||
| #include "sprintf.h" | #include "sprintf.h" | ||||||
| #include "LibrarySys.h" | #include "LibrarySys.h" | ||||||
| #include "RootConsoleMenu.h" | #include "RootConsoleMenu.h" | ||||||
|  | #include <bridge/include/BridgeAPI.h> | ||||||
|  | #include <bridge/include/IProviderCallbacks.h> | ||||||
| 
 | 
 | ||||||
| SMGlobalClass *SMGlobalClass::head = NULL; | SMGlobalClass *SMGlobalClass::head = NULL; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -32,32 +32,53 @@ | |||||||
| #ifndef _INCLUDE_SOURCEMOD_COMMON_LOGIC_H_ | #ifndef _INCLUDE_SOURCEMOD_COMMON_LOGIC_H_ | ||||||
| #define _INCLUDE_SOURCEMOD_COMMON_LOGIC_H_ | #define _INCLUDE_SOURCEMOD_COMMON_LOGIC_H_ | ||||||
| 
 | 
 | ||||||
| #include <IHandleSys.h> |  | ||||||
| 
 |  | ||||||
| #include "../sm_globals.h" | #include "../sm_globals.h" | ||||||
| #include "intercom.h" |  | ||||||
| 
 | 
 | ||||||
| extern CoreProvider *bridge; | namespace SourceMod { | ||||||
| extern IHandleSys *handlesys; | class CoreProvider; | ||||||
| extern ISourceMod *g_pSM; | class IHandleSys; | ||||||
| extern ILibrarySys *libsys; | class ISourceMod; | ||||||
| extern ITextParsers *textparser; | class ILibrarySys; | ||||||
| extern IShareSys *sharesys; | class ITextParsers; | ||||||
| extern IRootConsole *rootmenu; | class IShareSys; | ||||||
| extern IPluginManager *pluginsys; | class IRootConsole ; | ||||||
| extern IForwardManager *forwardsys; | class IPluginManager; | ||||||
| extern ITimerSystem *timersys; | class IForwardManager; | ||||||
|  | class ITimerSystem; | ||||||
|  | class IPlayerManager; | ||||||
|  | class IAdminSystem; | ||||||
|  | class IGameHelpers; | ||||||
|  | class IScriptManager; | ||||||
|  | class IExtensionSys; | ||||||
|  | class ILogger; | ||||||
|  | class IMenuManager; | ||||||
|  | #if defined SM_LOGIC | ||||||
|  | class IVEngineServerBridge; | ||||||
|  | #endif | ||||||
|  | } // namespace SourceMod
 | ||||||
|  | struct ServerGlobals; | ||||||
|  | 
 | ||||||
|  | extern SourceMod::CoreProvider *bridge; | ||||||
|  | extern SourceMod::IHandleSys *handlesys; | ||||||
|  | extern SourceMod::ISourceMod *g_pSM; | ||||||
|  | extern SourceMod::ILibrarySys *libsys; | ||||||
|  | extern SourceMod::ITextParsers *textparser; | ||||||
|  | extern SourceMod::IShareSys *sharesys; | ||||||
|  | extern SourceMod::IRootConsole *rootmenu; | ||||||
|  | extern SourceMod::IPluginManager *pluginsys; | ||||||
|  | extern SourceMod::IForwardManager *forwardsys; | ||||||
|  | extern SourceMod::ITimerSystem *timersys; | ||||||
| extern ServerGlobals serverGlobals; | extern ServerGlobals serverGlobals; | ||||||
| extern IPlayerManager *playerhelpers; | extern SourceMod::IPlayerManager *playerhelpers; | ||||||
| extern IAdminSystem *adminsys; | extern SourceMod::IAdminSystem *adminsys; | ||||||
| extern IGameHelpers *gamehelpers; | extern SourceMod::IGameHelpers *gamehelpers; | ||||||
| extern IScriptManager *scripts; | extern SourceMod::IScriptManager *scripts; | ||||||
| extern IExtensionSys *extsys; | extern SourceMod::IExtensionSys *extsys; | ||||||
| extern ILogger *logger; | extern SourceMod::ILogger *logger; | ||||||
| extern IMenuManager *menus; | extern SourceMod::IMenuManager *menus; | ||||||
| 
 | 
 | ||||||
| #if defined SM_LOGIC | #if defined SM_LOGIC | ||||||
| extern IVEngineServerBridge *engine; | extern SourceMod::IVEngineServerBridge *engine; | ||||||
| #else | #else | ||||||
| extern IVEngineServer *engine; | extern IVEngineServer *engine; | ||||||
| #endif | #endif | ||||||
|  | |||||||
| @ -32,6 +32,7 @@ | |||||||
| #define _include_sourcemod_handle_helpers_h_ | #define _include_sourcemod_handle_helpers_h_ | ||||||
| 
 | 
 | ||||||
| #include "common_logic.h" | #include "common_logic.h" | ||||||
|  | #include <IHandleSys.h> | ||||||
| 
 | 
 | ||||||
| // T must be a pointer type.
 | // T must be a pointer type.
 | ||||||
| template <typename T> | template <typename T> | ||||||
|  | |||||||
| @ -1,374 +0,0 @@ | |||||||
| /**
 |  | ||||||
|  * vim: set ts=4 sw=4 tw=99 noet: |  | ||||||
|  * ============================================================================= |  | ||||||
|  * SourceMod |  | ||||||
|  * Copyright (C) 2004-2009 AlliedModders LLC.  All rights reserved. |  | ||||||
|  * ============================================================================= |  | ||||||
|  * |  | ||||||
|  * This program is free software; you can redistribute it and/or modify it under |  | ||||||
|  * the terms of the GNU General Public License, version 3.0, as published by the |  | ||||||
|  * Free Software Foundation. |  | ||||||
|  *  |  | ||||||
|  * This program is distributed in the hope that it will be useful, but WITHOUT |  | ||||||
|  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |  | ||||||
|  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more |  | ||||||
|  * details. |  | ||||||
|  * |  | ||||||
|  * You should have received a copy of the GNU General Public License along with |  | ||||||
|  * this program.  If not, see <http://www.gnu.org/licenses/>.
 |  | ||||||
|  * |  | ||||||
|  * As a special exception, AlliedModders LLC gives you permission to link the |  | ||||||
|  * code of this program (as well as its derivative works) to "Half-Life 2," the |  | ||||||
|  * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software |  | ||||||
|  * by the Valve Corporation.  You must obey the GNU General Public License in |  | ||||||
|  * all respects for all other code used.  Additionally, AlliedModders LLC grants |  | ||||||
|  * this exception to all derivative works.  AlliedModders LLC defines further |  | ||||||
|  * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007), |  | ||||||
|  * or <http://www.sourcemod.net/license.php>.
 |  | ||||||
|  * |  | ||||||
|  * Version: $Id$ |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| #ifndef _INCLUDE_SOURCEMOD_INTERCOM_H_ |  | ||||||
| #define _INCLUDE_SOURCEMOD_INTERCOM_H_ |  | ||||||
| 
 |  | ||||||
| #include <sp_vm_api.h> |  | ||||||
| #include <IHandleSys.h> |  | ||||||
| #include <IShareSys.h> |  | ||||||
| #include <IPluginSys.h> |  | ||||||
| #include <IDBDriver.h> |  | ||||||
| #include <sh_string.h> |  | ||||||
| #include <sp_vm_api.h> |  | ||||||
| #include <sh_vector.h> |  | ||||||
| #include <IExtensionSys.h> |  | ||||||
| #include <IForwardSys.h> |  | ||||||
| #include <IAdminSystem.h> |  | ||||||
| 
 |  | ||||||
| using namespace SourceMod; |  | ||||||
| using namespace SourcePawn; |  | ||||||
| using namespace SourceHook; |  | ||||||
| 
 |  | ||||||
| /**
 |  | ||||||
|  * Add 1 to the RHS of this expression to bump the intercom file |  | ||||||
|  * This is to prevent mismatching core/logic binaries |  | ||||||
|  */ |  | ||||||
| #define SM_LOGIC_MAGIC		(0x0F47C0DE - 48) |  | ||||||
| 
 |  | ||||||
| class IVEngineServerBridge |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	virtual bool IsDedicatedServer() = 0; |  | ||||||
| 	virtual void InsertServerCommand(const char *cmd) = 0; |  | ||||||
| 	virtual void ServerCommand(const char *cmd) = 0; |  | ||||||
| 	virtual void ServerExecute() = 0; |  | ||||||
| 	virtual const char *GetClientConVarValue(int clientIndex, const char *name) = 0; |  | ||||||
| 	virtual void ClientCommand(edict_t *pEdict, const char *szCommand) = 0; |  | ||||||
| 	virtual void FakeClientCommand(edict_t *pEdict, const char *szCommand) = 0; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| typedef void * FileHandle_t; |  | ||||||
| typedef int FileFindHandle_t;  |  | ||||||
| 
 |  | ||||||
| class IFileSystemBridge |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	virtual const char *FindFirstEx(const char *pWildCard, const char *pPathID, FileFindHandle_t *pHandle) = 0; |  | ||||||
| 	virtual const char *FindNext(FileFindHandle_t handle) = 0; |  | ||||||
| 	virtual bool FindIsDirectory(FileFindHandle_t handle) = 0; |  | ||||||
| 	virtual void FindClose(FileFindHandle_t handle) = 0; |  | ||||||
| 	virtual FileHandle_t Open(const char *pFileName, const char *pOptions, const char *pathID = 0) = 0; |  | ||||||
| 	virtual void Close(FileHandle_t file) = 0; |  | ||||||
| 	virtual char *ReadLine(char *pOutput, int maxChars, FileHandle_t file) = 0; |  | ||||||
| 	virtual bool EndOfFile(FileHandle_t file) = 0; |  | ||||||
| 	virtual bool FileExists(const char *pFileName, const char *pPathID = 0) = 0; |  | ||||||
| 	virtual unsigned int Size(const char *pFileName, const char *pPathID = 0) = 0; |  | ||||||
| 	virtual int Read(void* pOutput, int size, FileHandle_t file) = 0; |  | ||||||
| 	virtual int Write(void const* pInput, int size, FileHandle_t file) = 0; |  | ||||||
| 	virtual void Seek(FileHandle_t file, int post, int seekType) = 0; |  | ||||||
| 	virtual unsigned int Tell(FileHandle_t file) = 0; |  | ||||||
| 	virtual int FPrint(FileHandle_t file, const char *pData) = 0; |  | ||||||
| 	virtual void Flush(FileHandle_t file) = 0; |  | ||||||
| 	virtual bool IsOk(FileHandle_t file) = 0; |  | ||||||
| 	virtual void RemoveFile(const char *pRelativePath, const char *pathID = 0) = 0; |  | ||||||
| 	virtual void RenameFile(char const *pOldPath, char const *pNewPath, const char *pathID = 0) = 0; |  | ||||||
| 	virtual bool IsDirectory(const char *pFileName, const char *pathID = 0) = 0; |  | ||||||
| 	virtual void CreateDirHierarchy(const char *path, const char *pathID = 0) = 0; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| namespace SourceMod |  | ||||||
| { |  | ||||||
| 	class ISourceMod; |  | ||||||
| 	class ILibrarySys; |  | ||||||
| 	class ITextParsers; |  | ||||||
| 	class IThreader; |  | ||||||
| 	class IRootConsole; |  | ||||||
| 	class IPluginManager; |  | ||||||
| 	class IForwardManager; |  | ||||||
| 	class ITimerSystem; |  | ||||||
| 	class IPlayerManager; |  | ||||||
| 	class IAdminSystem; |  | ||||||
| 	class IGameHelpers; |  | ||||||
| 	class IPhraseCollection; |  | ||||||
| 	class ITranslator; |  | ||||||
| 	class IGameConfig; |  | ||||||
| 	class IMenuManager; |  | ||||||
| 	class ICommandArgs; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| class ConVar; |  | ||||||
| class KeyValues; |  | ||||||
| class SMGlobalClass; |  | ||||||
| class IPlayerInfo; |  | ||||||
| 
 |  | ||||||
| class IPlayerInfoBridge |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	virtual bool IsObserver(IPlayerInfo *pInfo) = 0; |  | ||||||
| 	virtual int GetTeamIndex(IPlayerInfo *pInfo) = 0; |  | ||||||
| 	virtual int GetFragCount(IPlayerInfo *pInfo) = 0; |  | ||||||
| 	virtual int GetDeathCount(IPlayerInfo *pInfo) = 0; |  | ||||||
| 	virtual int GetArmorValue(IPlayerInfo *pInfo) = 0; |  | ||||||
| 	virtual void GetAbsOrigin(IPlayerInfo *pInfo, float *x, float *y, float *z) = 0; |  | ||||||
| 	virtual void GetAbsAngles(IPlayerInfo *pInfo, float *x, float *y, float *z) = 0; |  | ||||||
| 	virtual void GetPlayerMins(IPlayerInfo *pInfo, float *x, float *y, float *z) = 0; |  | ||||||
| 	virtual void GetPlayerMaxs(IPlayerInfo *pInfo, float *x, float *y, float *z) = 0; |  | ||||||
| 	virtual const char *GetWeaponName(IPlayerInfo *pInfo) = 0; |  | ||||||
| 	virtual const char *GetModelName(IPlayerInfo *pInfo) = 0; |  | ||||||
| 	virtual int GetHealth(IPlayerInfo *pInfo) = 0; |  | ||||||
| 	virtual void ChangeTeam(IPlayerInfo *pInfo, int iTeamNum) = 0; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| namespace SourceMod |  | ||||||
| { |  | ||||||
| 	class IChangeableForward; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| struct ServerGlobals |  | ||||||
| { |  | ||||||
| 	const double *universalTime; |  | ||||||
| 	float *interval_per_tick; |  | ||||||
| 	float *frametime; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| struct AutoConfig |  | ||||||
| { |  | ||||||
| 	SourceHook::String autocfg; |  | ||||||
| 	SourceHook::String folder; |  | ||||||
| 	bool create; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| enum LibraryAction |  | ||||||
| { |  | ||||||
| 	LibraryAction_Removed, |  | ||||||
| 	LibraryAction_Added |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class CNativeOwner; |  | ||||||
| 
 |  | ||||||
| class SMPlugin : public IPlugin |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	virtual size_t GetConfigCount() = 0; |  | ||||||
| 	virtual AutoConfig *GetConfig(size_t i) = 0; |  | ||||||
| 	virtual void AddLibrary(const char *name) = 0; |  | ||||||
| 	virtual void AddConfig(bool create, const char *cfg, const char *folder) = 0; |  | ||||||
| 	virtual void SetErrorState(PluginStatus status, const char *fmt, ...) = 0; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class IScriptManager |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	virtual void LoadAll(const char *config_path, const char *plugins_path) = 0; |  | ||||||
| 	virtual void RefreshAll() = 0; |  | ||||||
| 	virtual void Shutdown() = 0; |  | ||||||
| 	virtual IdentityToken_t *GetIdentity() = 0; |  | ||||||
| 	virtual void SyncMaxClients(int maxClients) = 0; |  | ||||||
| 	virtual void AddPluginsListener(IPluginsListener *listener) = 0; |  | ||||||
| 	virtual void RemovePluginsListener(IPluginsListener *listener) = 0; |  | ||||||
| 	virtual IPluginIterator *GetPluginIterator() = 0; |  | ||||||
| 	virtual void OnLibraryAction(const char *name, LibraryAction action) = 0; |  | ||||||
| 	virtual bool LibraryExists(const char *name) = 0; |  | ||||||
| 	virtual SMPlugin *FindPluginByOrder(unsigned num) = 0; |  | ||||||
| 	virtual SMPlugin *FindPluginByIdentity(IdentityToken_t *ident) = 0; |  | ||||||
| 	virtual SMPlugin *FindPluginByContext(IPluginContext *ctx) = 0; |  | ||||||
| 	virtual SMPlugin *FindPluginByContext(sp_context_t *ctx) = 0; |  | ||||||
| 	virtual SMPlugin *FindPluginByConsoleArg(const char *text) = 0; |  | ||||||
| 	virtual SMPlugin *FindPluginByHandle(Handle_t hndl, HandleError *errp) = 0; |  | ||||||
| 	virtual bool UnloadPlugin(IPlugin *plugin) = 0; |  | ||||||
| 	virtual const CVector<SMPlugin *> *ListPlugins() = 0; |  | ||||||
| 	virtual void FreePluginList(const CVector<SMPlugin *> *list) = 0; |  | ||||||
| 	virtual void AddFunctionsToForward(const char *name, IChangeableForward *fwd) = 0; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class IExtensionSys : public IExtensionManager |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	virtual IExtension *LoadAutoExtension(const char *name, bool bErrorOnMissing=true) = 0; |  | ||||||
| 	virtual void TryAutoload() = 0; |  | ||||||
| 	virtual void Shutdown() = 0; |  | ||||||
| 	virtual IExtension *FindExtensionByFile(const char *name) = 0; |  | ||||||
| 	virtual bool LibraryExists(const char *name) = 0; |  | ||||||
| 	virtual void CallOnCoreMapStart(edict_t *edictList, int edictCount, int maxClients) = 0; |  | ||||||
| 	virtual IExtension *GetExtensionFromIdent(IdentityToken_t *token) = 0; |  | ||||||
| 	virtual void BindChildPlugin(IExtension *ext, SMPlugin *plugin) = 0; |  | ||||||
| 	virtual void AddRawDependency(IExtension *myself, IdentityToken_t *token, void *iface) = 0; |  | ||||||
| 	virtual const CVector<IExtension *> *ListExtensions() = 0; |  | ||||||
| 	virtual void FreeExtensionList(const CVector<IExtension *> *list) = 0; |  | ||||||
| 	virtual void CallOnCoreMapEnd() = 0; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class ILogger |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	virtual void LogMessage(const char *msg, ...) = 0; |  | ||||||
| 	virtual void LogError(const char *msg, ...) = 0; |  | ||||||
| 	virtual void LogFatal(const char *msg, ...) = 0; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class AutoPluginList |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	AutoPluginList(IScriptManager *scripts) |  | ||||||
| 		: scripts_(scripts), list_(scripts->ListPlugins()) |  | ||||||
| 	{ |  | ||||||
| 	} |  | ||||||
| 	~AutoPluginList() |  | ||||||
| 	{ |  | ||||||
| 		scripts_->FreePluginList(list_); |  | ||||||
| 	} |  | ||||||
| 	const CVector<SMPlugin *> *operator ->() |  | ||||||
| 	{ |  | ||||||
| 		return list_; |  | ||||||
| 	} |  | ||||||
| private: |  | ||||||
| 	IScriptManager *scripts_; |  | ||||||
| 	const CVector<SMPlugin *> *list_; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class AutoExtensionList |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	AutoExtensionList(IExtensionSys *extensions) |  | ||||||
| 		: extensions_(extensions), list_(extensions_->ListExtensions()) |  | ||||||
| 	{ |  | ||||||
| 	} |  | ||||||
| 	~AutoExtensionList() |  | ||||||
| 	{ |  | ||||||
| 		extensions_->FreeExtensionList(list_); |  | ||||||
| 	} |  | ||||||
| 	const CVector<IExtension *> *operator ->() |  | ||||||
| 	{ |  | ||||||
| 		return list_; |  | ||||||
| 	} |  | ||||||
| private: |  | ||||||
| 	IExtensionSys *extensions_; |  | ||||||
| 	const CVector<IExtension *> *list_; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class CoreProvider |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	/* Objects */ |  | ||||||
| 	ISourceMod		*sm; |  | ||||||
| 	IVEngineServerBridge *engine; |  | ||||||
| 	IFileSystemBridge *filesystem; |  | ||||||
| 	IPlayerInfoBridge *playerInfo; |  | ||||||
| 	ITimerSystem    *timersys; |  | ||||||
| 	IPlayerManager  *playerhelpers; |  | ||||||
| 	IGameHelpers    *gamehelpers; |  | ||||||
| 	IMenuManager	*menus; |  | ||||||
| 	ISourcePawnEngine **spe1; |  | ||||||
| 	ISourcePawnEngine2 **spe2; |  | ||||||
| 	const char		*gamesuffix; |  | ||||||
| 	/* Data */ |  | ||||||
| 	ServerGlobals   *serverGlobals; |  | ||||||
| 	void *          serverFactory; |  | ||||||
| 	void *          engineFactory; |  | ||||||
| 	void *          matchmakingDSFactory; |  | ||||||
| 	SMGlobalClass *	listeners; |  | ||||||
| 
 |  | ||||||
| 	// ConVar functions.
 |  | ||||||
| 	virtual ConVar *FindConVar(const char *name) = 0; |  | ||||||
| 	virtual const char *GetCvarString(ConVar *cvar) = 0; |  | ||||||
| 	virtual bool GetCvarBool(ConVar* cvar) = 0; |  | ||||||
| 
 |  | ||||||
| 	// Game description functions.
 |  | ||||||
| 	virtual bool GetGameName(char *buffer, size_t maxlength) = 0; |  | ||||||
| 	virtual const char *GetGameDescription() = 0; |  | ||||||
| 	virtual const char *GetSourceEngineName() = 0; |  | ||||||
| 	virtual bool SymbolsAreHidden() = 0; |  | ||||||
| 
 |  | ||||||
| 	// Game state and helper functions.
 |  | ||||||
| 	virtual bool IsMapLoading() = 0; |  | ||||||
| 	virtual bool IsMapRunning() = 0; |  | ||||||
| 	virtual int MaxClients() = 0; |  | ||||||
| 	virtual bool DescribePlayer(int index, const char **namep, const char **authp, int *useridp) = 0; |  | ||||||
| 	virtual void LogToGame(const char *message) = 0; |  | ||||||
| 	virtual void ConPrint(const char *message) = 0; |  | ||||||
| 	virtual void ConsolePrintVa(const char *fmt, va_list ap) = 0; |  | ||||||
| 
 |  | ||||||
| 	// Game engine helper functions.
 |  | ||||||
| 	virtual bool IsClientConVarQueryingSupported() = 0; |  | ||||||
| 	virtual int QueryClientConVar(int client, const char *cvar) = 0; |  | ||||||
| 
 |  | ||||||
| 	// Metamod:Source functions.
 |  | ||||||
| 	virtual int LoadMMSPlugin(const char *file, bool *ok, char *error, size_t maxlength) = 0; |  | ||||||
| 	virtual void UnloadMMSPlugin(int id) = 0; |  | ||||||
| 
 |  | ||||||
| 	const char *	(*GetCoreConfigValue)(const char*); |  | ||||||
| 	void			(*DoGlobalPluginLoads)(); |  | ||||||
| 	bool			(*AreConfigsExecuted)(); |  | ||||||
| 	void			(*ExecuteConfigs)(IPluginContext *ctx); |  | ||||||
| 	DatabaseInfo	(*GetDBInfoFromKeyValues)(KeyValues *); |  | ||||||
| 	int				(*GetActivityFlags)(); |  | ||||||
| 	int				(*GetImmunityMode)(); |  | ||||||
| 	void			(*UpdateAdminCmdFlags)(const char *cmd, OverrideType type, FlagBits bits, bool remove); |  | ||||||
| 	bool			(*LookForCommandAdminFlags)(const char *cmd, FlagBits *pFlags); |  | ||||||
| 	int             (*GetGlobalTarget)(); |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class IProviderCallbacks |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	// Called when a log message is printed. Return true to supercede.
 |  | ||||||
| 	virtual bool OnLogPrint(const char *msg) = 0; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| struct sm_logic_t |  | ||||||
| { |  | ||||||
| 	SMGlobalClass	*head; |  | ||||||
| 	IThreader		*threader; |  | ||||||
| 	ITranslator		*translator; |  | ||||||
| 	const char      *(*stristr)(const char *, const char *); |  | ||||||
| 	size_t			(*atcprintf)(char *, size_t, const char *, IPluginContext *, const cell_t *, int *); |  | ||||||
| 	bool			(*CoreTranslate)(char *,  size_t, const char *, unsigned int, size_t *, ...); |  | ||||||
| 	void            (*AddCorePhraseFile)(const char *filename); |  | ||||||
| 	unsigned int	(*ReplaceAll)(char*, size_t, const char *, const char *, bool); |  | ||||||
| 	char            *(*ReplaceEx)(char *, size_t, const char *, size_t, const char *, size_t, bool); |  | ||||||
| 	size_t          (*DecodeHexString)(unsigned char *, size_t, const char *); |  | ||||||
| 	IGameConfig *   (*GetCoreGameConfig)(); |  | ||||||
| 	IDebugListener   *debugger; |  | ||||||
| 	void			(*GenerateError)(IPluginContext *, cell_t, int, const char *, ...); |  | ||||||
| 	void			(*AddNatives)(sp_nativeinfo_t *natives); |  | ||||||
| 	void			(*DumpHandles)(void (*dumpfn)(const char *fmt, ...)); |  | ||||||
| 	bool			(*DumpAdminCache)(const char *filename); |  | ||||||
| 	void            (*RegisterProfiler)(IProfilingTool *tool); |  | ||||||
| 	void			(*OnRootCommand)(const ICommandArgs *args); |  | ||||||
| 	IScriptManager	*scripts; |  | ||||||
| 	IShareSys		*sharesys; |  | ||||||
| 	IExtensionSys	*extsys; |  | ||||||
| 	IHandleSys		*handlesys; |  | ||||||
| 	IForwardManager	*forwardsys; |  | ||||||
| 	IAdminSystem	*adminsys; |  | ||||||
| 	IdentityToken_t *core_ident; |  | ||||||
| 	ILogger			*logger; |  | ||||||
| 	IRootConsole	*rootmenu; |  | ||||||
| 	IProviderCallbacks *callbacks; |  | ||||||
| 	float			sentinel; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| typedef void (*LogicInitFunction)(CoreProvider *core, sm_logic_t *logic); |  | ||||||
| typedef LogicInitFunction (*LogicLoadFunction)(uint32_t magic); |  | ||||||
| typedef ITextParsers *(*GetITextParsers)(); |  | ||||||
| 
 |  | ||||||
| #endif /* _INCLUDE_SOURCEMOD_INTERCOM_H_ */ |  | ||||||
| @ -33,6 +33,7 @@ | |||||||
| #include "common_logic.h" | #include "common_logic.h" | ||||||
| #include "CellArray.h" | #include "CellArray.h" | ||||||
| #include "stringutil.h" | #include "stringutil.h" | ||||||
|  | #include <IHandleSys.h> | ||||||
| 
 | 
 | ||||||
| HandleType_t htCellArray; | HandleType_t htCellArray; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -34,6 +34,7 @@ | |||||||
| #include "CellArray.h" | #include "CellArray.h" | ||||||
| #include "handle_helpers.h" | #include "handle_helpers.h" | ||||||
| #include "stringutil.h" | #include "stringutil.h" | ||||||
|  | #include <IHandleSys.h> | ||||||
| 
 | 
 | ||||||
| HandleType_t htCellStack; | HandleType_t htCellStack; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -35,6 +35,7 @@ | |||||||
| #include <am-refcounting.h> | #include <am-refcounting.h> | ||||||
| #include <sm_stringhashmap.h> | #include <sm_stringhashmap.h> | ||||||
| #include "sm_memtable.h" | #include "sm_memtable.h" | ||||||
|  | #include <IHandleSys.h> | ||||||
| 
 | 
 | ||||||
| HandleType_t htCellTrie; | HandleType_t htCellTrie; | ||||||
| HandleType_t htSnapshot; | HandleType_t htSnapshot; | ||||||
|  | |||||||
| @ -36,6 +36,8 @@ | |||||||
| #include <IForwardSys.h> | #include <IForwardSys.h> | ||||||
| #include "stringutil.h" | #include "stringutil.h" | ||||||
| #include <am-string.h> | #include <am-string.h> | ||||||
|  | #include <bridge/include/IVEngineServerBridge.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
| 
 | 
 | ||||||
| #define BANFLAG_AUTO	(1<<0)	/**< Auto-detects whether to ban by steamid or IP */ | #define BANFLAG_AUTO	(1<<0)	/**< Auto-detects whether to ban by steamid or IP */ | ||||||
| #define BANFLAG_IP   	(1<<1)	/**< Always ban by IP address */ | #define BANFLAG_IP   	(1<<1)	/**< Always ban by IP address */ | ||||||
|  | |||||||
| @ -36,6 +36,8 @@ | |||||||
| #include <ISourceMod.h> | #include <ISourceMod.h> | ||||||
| #include <ITranslator.h> | #include <ITranslator.h> | ||||||
| #include "sprintf.h" | #include "sprintf.h" | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
|  | #include <bridge/include/IVEngineServerBridge.h> | ||||||
| 
 | 
 | ||||||
| static cell_t CheckCommandAccess(IPluginContext *pContext, const cell_t *params) | static cell_t CheckCommandAccess(IPluginContext *pContext, const cell_t *params) | ||||||
| { | { | ||||||
|  | |||||||
| @ -48,6 +48,15 @@ | |||||||
| #include <unistd.h> | #include <unistd.h> | ||||||
| #include <sys/times.h> | #include <sys/times.h> | ||||||
| #endif | #endif | ||||||
|  | #include <IForwardSys.h> | ||||||
|  | #include <ILibrarySys.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
|  | #include <bridge/include/IExtensionBridge.h> | ||||||
|  | 
 | ||||||
|  | using namespace SourceMod; | ||||||
|  | using namespace SourcePawn; | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| HandleType_t g_PlIter; | HandleType_t g_PlIter; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -35,9 +35,12 @@ | |||||||
| #include "stringutil.h" | #include "stringutil.h" | ||||||
| #include "ISourceMod.h" | #include "ISourceMod.h" | ||||||
| #include "AutoHandleRooter.h" | #include "AutoHandleRooter.h" | ||||||
| #include "am-string.h" | #include "common_logic.h" | ||||||
| #include "am-vector.h" | #include <amtl/am-string.h> | ||||||
| #include "am-refcounting.h" | #include <amtl/am-vector.h> | ||||||
|  | #include <amtl/am-refcounting.h> | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
| 
 | 
 | ||||||
| HandleType_t hStmtType; | HandleType_t hStmtType; | ||||||
| HandleType_t hCombinedQueryType; | HandleType_t hCombinedQueryType; | ||||||
| @ -1405,7 +1408,8 @@ static cell_t SQL_ConnectCustom(IPluginContext *pContext, const cell_t *params) | |||||||
| 										  err); | 										  err); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	DatabaseInfo info = bridge->GetDBInfoFromKeyValues(kv); | 	DatabaseInfo info; | ||||||
|  | 	bridge->GetDBInfoFromKeyValues(kv, &info); | ||||||
| 
 | 
 | ||||||
| 	IDBDriver *driver; | 	IDBDriver *driver; | ||||||
| 	if (info.driver[0] == '\0' || strcmp(info.driver, "default") == 0) | 	if (info.driver[0] == '\0' || strcmp(info.driver, "default") == 0) | ||||||
|  | |||||||
| @ -43,6 +43,8 @@ | |||||||
| #include "sprintf.h" | #include "sprintf.h" | ||||||
| #include <am-utility.h> | #include <am-utility.h> | ||||||
| #include "handle_helpers.h" | #include "handle_helpers.h" | ||||||
|  | #include <bridge/include/IFileSystemBridge.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
| 
 | 
 | ||||||
| #if defined PLATFORM_WINDOWS | #if defined PLATFORM_WINDOWS | ||||||
| #include <io.h> | #include <io.h> | ||||||
|  | |||||||
| @ -38,6 +38,9 @@ | |||||||
| #include <ITextParsers.h> | #include <ITextParsers.h> | ||||||
| #include <ISourceMod.h> | #include <ISourceMod.h> | ||||||
| #include "stringutil.h" | #include "stringutil.h" | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
|  | #include <bridge/include/IFileSystemBridge.h> | ||||||
| 
 | 
 | ||||||
| using namespace SourceHook; | using namespace SourceHook; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -39,6 +39,7 @@ | |||||||
| #endif | #endif | ||||||
| #include <ISourceMod.h> | #include <ISourceMod.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
| 
 | 
 | ||||||
| #if defined CreateMenu | #if defined CreateMenu | ||||||
| #undef CreateMenu | #undef CreateMenu | ||||||
|  | |||||||
| @ -41,6 +41,10 @@ | |||||||
| #include "CellArray.h" | #include "CellArray.h" | ||||||
| #include "AutoHandleRooter.h" | #include "AutoHandleRooter.h" | ||||||
| #include "stringutil.h" | #include "stringutil.h" | ||||||
|  | #include <bridge/include/IPlayerInfoBridge.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
|  | #include <bridge/include/IVEngineServerBridge.h> | ||||||
| 
 | 
 | ||||||
| using namespace SourceHook; | using namespace SourceHook; | ||||||
| using namespace SourceMod; | using namespace SourceMod; | ||||||
|  | |||||||
| @ -37,6 +37,7 @@ | |||||||
| #include <sys/time.h> | #include <sys/time.h> | ||||||
| #endif | #endif | ||||||
| #include "ProfileTools.h" | #include "ProfileTools.h" | ||||||
|  | #include <string.h> | ||||||
| 
 | 
 | ||||||
| struct Profiler | struct Profiler | ||||||
| { | { | ||||||
|  | |||||||
| @ -34,6 +34,7 @@ | |||||||
| #include <time.h> | #include <time.h> | ||||||
| #include "common_logic.h" | #include "common_logic.h" | ||||||
| #include "CellArray.h" | #include "CellArray.h" | ||||||
|  | #include <IHandleSys.h> | ||||||
| 
 | 
 | ||||||
| /***********************************
 | /***********************************
 | ||||||
|  *   About the double array hack   * |  *   About the double array hack   * | ||||||
|  | |||||||
| @ -36,6 +36,7 @@ | |||||||
| #include <IPluginSys.h> | #include <IPluginSys.h> | ||||||
| #include <sh_stack.h> | #include <sh_stack.h> | ||||||
| #include "DebugReporter.h" | #include "DebugReporter.h" | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
| 
 | 
 | ||||||
| using namespace SourceHook; | using namespace SourceHook; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -30,6 +30,9 @@ | |||||||
| #include "sprintf.h" | #include "sprintf.h" | ||||||
| #include <am-float.h> | #include <am-float.h> | ||||||
| #include <am-string.h> | #include <am-string.h> | ||||||
|  | #include <ITranslator.h> | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
|  | #include <bridge/include/CoreProvider.h> | ||||||
| 
 | 
 | ||||||
| using namespace SourceMod; | using namespace SourceMod; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -29,6 +29,10 @@ | |||||||
| 
 | 
 | ||||||
| #include <sp_vm_api.h> | #include <sp_vm_api.h> | ||||||
| 
 | 
 | ||||||
|  | namespace SourceMod { | ||||||
|  | class IPhraseCollection; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // "AMX Templated Cell Printf", originally. SourceMod doesn't have cell-strings
 | // "AMX Templated Cell Printf", originally. SourceMod doesn't have cell-strings
 | ||||||
| // so this is a normal sprintf(), except that its variadic arguments are
 | // so this is a normal sprintf(), except that its variadic arguments are
 | ||||||
| // derived from scripted arguments.
 | // derived from scripted arguments.
 | ||||||
| @ -46,7 +50,7 @@ size_t atcprintf(char *buffer, | |||||||
| bool gnprintf(char *buffer, | bool gnprintf(char *buffer, | ||||||
|               size_t maxlen, |               size_t maxlen, | ||||||
|               const char *format, |               const char *format, | ||||||
|               IPhraseCollection *pPhrases, |               SourceMod::IPhraseCollection *pPhrases, | ||||||
|               void **params, |               void **params, | ||||||
|               unsigned int numparams, |               unsigned int numparams, | ||||||
|               unsigned int &curparam, |               unsigned int &curparam, | ||||||
|  | |||||||
| @ -34,7 +34,6 @@ | |||||||
| #include "sourcemm_api.h" | #include "sourcemm_api.h" | ||||||
| #include "sm_globals.h" | #include "sm_globals.h" | ||||||
| #include "sm_autonatives.h" | #include "sm_autonatives.h" | ||||||
| #include "logic/intercom.h" |  | ||||||
| #include "sm_stringutil.h" | #include "sm_stringutil.h" | ||||||
| #include "Logger.h" | #include "Logger.h" | ||||||
| #include "TimerSys.h" | #include "TimerSys.h" | ||||||
| @ -59,6 +58,9 @@ | |||||||
| #endif | #endif | ||||||
| #include <amtl/os/am-shared-library.h> | #include <amtl/os/am-shared-library.h> | ||||||
| #include <amtl/os/am-path.h> | #include <amtl/os/am-path.h> | ||||||
|  | #include <bridge/include/IVEngineServerBridge.h> | ||||||
|  | #include <bridge/include/IPlayerInfoBridge.h> | ||||||
|  | #include <bridge/include/IFileSystemBridge.h> | ||||||
| 
 | 
 | ||||||
| #if defined _WIN32 | #if defined _WIN32 | ||||||
| # define MATCHMAKINGDS_SUFFIX	"" | # define MATCHMAKINGDS_SUFFIX	"" | ||||||
| @ -297,17 +299,15 @@ static const char* get_core_config_value(const char* key) | |||||||
| 	return g_CoreConfig.GetCoreConfigValue(key); | 	return g_CoreConfig.GetCoreConfigValue(key); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static DatabaseInfo keyvalues_to_dbinfo(KeyValues *kv) | static void keyvalues_to_dbinfo(KeyValues *kv, DatabaseInfo *out) | ||||||
| { | { | ||||||
| 	DatabaseInfo info; | 	out->database = kv->GetString("database", ""); | ||||||
| 	info.database = kv->GetString("database", ""); | 	out->driver = kv->GetString("driver", "default"); | ||||||
| 	info.driver = kv->GetString("driver", "default"); | 	out->host = kv->GetString("host", ""); | ||||||
| 	info.host = kv->GetString("host", ""); | 	out->maxTimeout = kv->GetInt("timeout", 0); | ||||||
| 	info.maxTimeout = kv->GetInt("timeout", 0); | 	out->pass = kv->GetString("pass", ""); | ||||||
| 	info.pass = kv->GetString("pass", ""); | 	out->port = kv->GetInt("port", 0); | ||||||
| 	info.port = kv->GetInt("port", 0); | 	out->user = kv->GetString("user", ""); | ||||||
| 	info.user = kv->GetString("user", ""); |  | ||||||
| 	return info; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int get_activity_flags() | static int get_activity_flags() | ||||||
|  | |||||||
| @ -31,20 +31,18 @@ | |||||||
| #ifndef _INCLUDE_SOURCEMOD_LOGIC_BRIDGE_H_ | #ifndef _INCLUDE_SOURCEMOD_LOGIC_BRIDGE_H_ | ||||||
| #define _INCLUDE_SOURCEMOD_LOGIC_BRIDGE_H_ | #define _INCLUDE_SOURCEMOD_LOGIC_BRIDGE_H_ | ||||||
| 
 | 
 | ||||||
| #include "logic/intercom.h" | #include <bridge/include/LogicProvider.h> | ||||||
| 
 | 
 | ||||||
| struct sm_logic_t; | extern SourceMod::sm_logic_t logicore; | ||||||
| 
 | extern SourceMod::ITranslator *translator; | ||||||
| extern sm_logic_t logicore; | extern SourceMod::IGameConfig *g_pGameConf; | ||||||
| extern ITranslator *translator; | extern SourceMod::IScriptManager *scripts; | ||||||
| extern IGameConfig *g_pGameConf; | extern SourceMod::IShareSys *sharesys; | ||||||
| extern IScriptManager *scripts; | extern SourceMod::IExtensionSys *extsys; | ||||||
| extern IShareSys *sharesys; | extern SourceMod::IHandleSys *handlesys; | ||||||
| extern IExtensionSys *extsys; | extern SourceMod::IForwardManager *forwardsys; | ||||||
| extern IHandleSys *handlesys; | extern SourceMod::IAdminSystem *adminsys; | ||||||
| extern IForwardManager *forwardsys; | extern SourceMod::ILogger *logger; | ||||||
| extern IAdminSystem *adminsys; | extern SourceMod::IRootConsole *rootmenu; | ||||||
| extern ILogger *logger; |  | ||||||
| extern IRootConsole *rootmenu; |  | ||||||
| 
 | 
 | ||||||
| #endif /* _INCLUDE_SOURCEMOD_LOGIC_BRIDGE_H_ */ | #endif /* _INCLUDE_SOURCEMOD_LOGIC_BRIDGE_H_ */ | ||||||
|  | |||||||
| @ -27,9 +27,9 @@ | |||||||
| #ifndef _INCLUDE_SOURCEMOD_CORE_PROVIDER_IMPL_H_ | #ifndef _INCLUDE_SOURCEMOD_CORE_PROVIDER_IMPL_H_ | ||||||
| #define _INCLUDE_SOURCEMOD_CORE_PROVIDER_IMPL_H_ | #define _INCLUDE_SOURCEMOD_CORE_PROVIDER_IMPL_H_ | ||||||
| 
 | 
 | ||||||
| #include "logic/intercom.h" |  | ||||||
| #include "GameHooks.h" |  | ||||||
| #include <amtl/os/am-shared-library.h> | #include <amtl/os/am-shared-library.h> | ||||||
|  | #include <bridge/include/BridgeAPI.h> | ||||||
|  | #include "GameHooks.h" | ||||||
| 
 | 
 | ||||||
| class CoreProviderImpl : public CoreProvider | class CoreProviderImpl : public CoreProvider | ||||||
| { | { | ||||||
|  | |||||||
| @ -47,6 +47,8 @@ | |||||||
| #include "logic_bridge.h" | #include "logic_bridge.h" | ||||||
| #include <sm_namehashset.h> | #include <sm_namehashset.h> | ||||||
| #include "smn_keyvalues.h" | #include "smn_keyvalues.h" | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
| 
 | 
 | ||||||
| #if SOURCE_ENGINE == SE_CSGO || SOURCE_ENGINE == SE_DOTA | #if SOURCE_ENGINE == SE_CSGO || SOURCE_ENGINE == SE_DOTA | ||||||
| #include <netmessages.pb.h> | #include <netmessages.pb.h> | ||||||
|  | |||||||
| @ -33,6 +33,7 @@ | |||||||
| #include "UserMessages.h" | #include "UserMessages.h" | ||||||
| #include "UserMessagePBHelpers.h" | #include "UserMessagePBHelpers.h" | ||||||
| #include "smn_usermsgs.h" | #include "smn_usermsgs.h" | ||||||
|  | #include <IHandleSys.h> | ||||||
| 
 | 
 | ||||||
| // Assumes pbuf message handle is param 1, gets message as msg
 | // Assumes pbuf message handle is param 1, gets message as msg
 | ||||||
| #define GET_MSG_FROM_HANDLE_OR_ERR()                  \ | #define GET_MSG_FROM_HANDLE_OR_ERR()                  \ | ||||||
|  | |||||||
| @ -33,8 +33,9 @@ | |||||||
| #include "smn_usermsgs.h" | #include "smn_usermsgs.h" | ||||||
| #include "logic_bridge.h" | #include "logic_bridge.h" | ||||||
| #ifdef USE_PROTOBUF_USERMESSAGES | #ifdef USE_PROTOBUF_USERMESSAGES | ||||||
| #include "UserMessagePBHelpers.h" | # include "UserMessagePBHelpers.h" | ||||||
| #endif | #endif | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
| 
 | 
 | ||||||
| HandleType_t g_ProtobufType = NO_HANDLE_TYPE; | HandleType_t g_ProtobufType = NO_HANDLE_TYPE; | ||||||
| HandleType_t g_WrBitBufType = NO_HANDLE_TYPE; | HandleType_t g_WrBitBufType = NO_HANDLE_TYPE; | ||||||
|  | |||||||
| @ -37,6 +37,8 @@ | |||||||
| #include "logic_bridge.h" | #include "logic_bridge.h" | ||||||
| #include <sourcemod_version.h> | #include <sourcemod_version.h> | ||||||
| #include "provider.h" | #include "provider.h" | ||||||
|  | #include <IExtensionSys.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
| 
 | 
 | ||||||
| SourceMod_Core g_SourceMod_Core; | SourceMod_Core g_SourceMod_Core; | ||||||
| IVEngineServer *engine = NULL; | IVEngineServer *engine = NULL; | ||||||
|  | |||||||
| @ -44,6 +44,9 @@ | |||||||
| #include "provider.h" | #include "provider.h" | ||||||
| #include <amtl/os/am-shared-library.h> | #include <amtl/os/am-shared-library.h> | ||||||
| #include <amtl/os/am-path.h> | #include <amtl/os/am-path.h> | ||||||
|  | #include <bridge/include/IExtensionBridge.h> | ||||||
|  | #include <bridge/include/IScriptManager.h> | ||||||
|  | #include <bridge/include/ILogger.h> | ||||||
| 
 | 
 | ||||||
| SH_DECL_HOOK6(IServerGameDLL, LevelInit, SH_NOATTRIB, false, bool, const char *, const char *, const char *, const char *, bool, bool); | SH_DECL_HOOK6(IServerGameDLL, LevelInit, SH_NOATTRIB, false, bool, const char *, const char *, const char *, const char *, bool, bool); | ||||||
| SH_DECL_HOOK0_void(IServerGameDLL, LevelShutdown, SH_NOATTRIB, false); | SH_DECL_HOOK0_void(IServerGameDLL, LevelShutdown, SH_NOATTRIB, false); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user