mirror of
https://github.com/alliedmodders/metamod-source.git
synced 2024-12-01 13:24:25 +01:00
1d9949e1a0
--HG-- rename : core-1.4/CPlugin.cpp => core-legacy/CPlugin.cpp rename : core-1.4/CPlugin.h => core-legacy/CPlugin.h rename : core-1.4/CSmmAPI.cpp => core-legacy/CSmmAPI.cpp rename : core-1.4/CSmmAPI.h => core-legacy/CSmmAPI.h rename : core-1.4/IPluginManager.h => core-legacy/IPluginManager.h rename : core-1.4/ISmmAPI.h => core-legacy/ISmmAPI.h rename : core-1.4/ISmmPlugin.h => core-legacy/ISmmPlugin.h rename : core-1.4/Makefile => core-legacy/Makefile rename : core-1.4/concommands.cpp => core-legacy/concommands.cpp rename : core-1.4/concommands.h => core-legacy/concommands.h rename : core-1.4/convar_smm.h => core-legacy/convar_smm.h rename : core-1.4/msvc7/sourcemm.sln => core-legacy/msvc7/sourcemm.sln rename : core-1.4/msvc7/sourcemm.vcproj => core-legacy/msvc7/sourcemm.vcproj rename : core-1.4/msvc8/sourcemm.sln => core-legacy/msvc8/sourcemm.sln rename : core-1.4/msvc8/sourcemm.vcproj => core-legacy/msvc8/sourcemm.vcproj rename : core-1.4/msvc9/sourcemm.sln => core-legacy/msvc9/sourcemm.sln rename : core-1.4/msvc9/sourcemm.vcproj => core-legacy/msvc9/sourcemm.vcproj rename : core-1.4/oslink.cpp => core-legacy/oslink.cpp rename : core-1.4/oslink.h => core-legacy/oslink.h rename : core-1.4/sourcehook.cpp => core-legacy/sourcehook.cpp rename : core-1.4/sourcehook/FastDelegate.h => core-legacy/sourcehook/FastDelegate.h rename : core-1.4/sourcehook/generate/FastDelegate.h => core-legacy/sourcehook/generate/FastDelegate.h rename : core-1.4/sourcehook/generate/FastDelegate.hxx => core-legacy/sourcehook/generate/FastDelegate.hxx rename : core-1.4/sourcehook/generate/generate => core-legacy/sourcehook/generate/generate rename : core-1.4/sourcehook/generate/generate.bat => core-legacy/sourcehook/generate/generate.bat rename : core-1.4/sourcehook/generate/sh_memfuncinfo.h => core-legacy/sourcehook/generate/sh_memfuncinfo.h rename : core-1.4/sourcehook/generate/sh_memfuncinfo.hxx => core-legacy/sourcehook/generate/sh_memfuncinfo.hxx rename : core-1.4/sourcehook/generate/shworker.bin => core-legacy/sourcehook/generate/shworker.bin rename : core-1.4/sourcehook/generate/shworker.exe => core-legacy/sourcehook/generate/shworker.exe rename : core-1.4/sourcehook/generate/shworker/Makefile => core-legacy/sourcehook/generate/shworker/Makefile rename : core-1.4/sourcehook/generate/shworker/fd_hopter.cpp => core-legacy/sourcehook/generate/shworker/fd_hopter.cpp rename : core-1.4/sourcehook/generate/shworker/msvc7/shworker.vcproj => core-legacy/sourcehook/generate/shworker/msvc7/shworker.vcproj rename : core-1.4/sourcehook/generate/shworker/msvc8/shworker.vcproj => core-legacy/sourcehook/generate/shworker/msvc8/shworker.vcproj rename : core-1.4/sourcehook/generate/shworker/shworker.cpp => core-legacy/sourcehook/generate/shworker/shworker.cpp rename : core-1.4/sourcehook/generate/sourcehook.h => core-legacy/sourcehook/generate/sourcehook.h rename : core-1.4/sourcehook/generate/sourcehook.hxx => core-legacy/sourcehook/generate/sourcehook.hxx rename : core-1.4/sourcehook/sh_list.h => core-legacy/sourcehook/sh_list.h rename : core-1.4/sourcehook/sh_memfuncinfo.h => core-legacy/sourcehook/sh_memfuncinfo.h rename : core-1.4/sourcehook/sh_memory.h => core-legacy/sourcehook/sh_memory.h rename : core-1.4/sourcehook/sh_stack.h => core-legacy/sourcehook/sh_stack.h rename : core-1.4/sourcehook/sh_string.h => core-legacy/sourcehook/sh_string.h rename : core-1.4/sourcehook/sh_tinyhash.h => core-legacy/sourcehook/sh_tinyhash.h rename : core-1.4/sourcehook/sh_vector.h => core-legacy/sourcehook/sh_vector.h rename : core-1.4/sourcehook/sourcehook.cpp => core-legacy/sourcehook/sourcehook.cpp rename : core-1.4/sourcehook/sourcehook.h => core-legacy/sourcehook/sourcehook.h rename : core-1.4/sourcehook/sourcehook_impl.h => core-legacy/sourcehook/sourcehook_impl.h rename : core-1.4/sourcehook/test/Makefile => core-legacy/sourcehook/test/Makefile rename : core-1.4/sourcehook/test/main.cpp => core-legacy/sourcehook/test/main.cpp rename : core-1.4/sourcehook/test/msvc7/test.vcproj => core-legacy/sourcehook/test/msvc7/test.vcproj rename : core-1.4/sourcehook/test/msvc8/test.vcproj => core-legacy/sourcehook/test/msvc8/test.vcproj rename : core-1.4/sourcehook/test/sourcehook_test.h => core-legacy/sourcehook/test/sourcehook_test.h rename : core-1.4/sourcehook/test/test1.cpp => core-legacy/sourcehook/test/test1.cpp rename : core-1.4/sourcehook/test/test2.cpp => core-legacy/sourcehook/test/test2.cpp rename : core-1.4/sourcehook/test/test3.cpp => core-legacy/sourcehook/test/test3.cpp rename : core-1.4/sourcehook/test/test4.cpp => core-legacy/sourcehook/test/test4.cpp rename : core-1.4/sourcehook/test/testbail.cpp => core-legacy/sourcehook/test/testbail.cpp rename : core-1.4/sourcehook/test/testbail.h => core-legacy/sourcehook/test/testbail.h rename : core-1.4/sourcehook/test/testbail2.cpp => core-legacy/sourcehook/test/testbail2.cpp rename : core-1.4/sourcehook/test/testevents.h => core-legacy/sourcehook/test/testevents.h rename : core-1.4/sourcehook/test/testlist.cpp => core-legacy/sourcehook/test/testlist.cpp rename : core-1.4/sourcehook/test/testmanual.cpp => core-legacy/sourcehook/test/testmanual.cpp rename : core-1.4/sourcehook/test/testmulti.cpp => core-legacy/sourcehook/test/testmulti.cpp rename : core-1.4/sourcehook/test/testrecall.cpp => core-legacy/sourcehook/test/testrecall.cpp rename : core-1.4/sourcehook/test/testreentr.cpp => core-legacy/sourcehook/test/testreentr.cpp rename : core-1.4/sourcehook/test/testref.cpp => core-legacy/sourcehook/test/testref.cpp rename : core-1.4/sourcehook/test/testrefret.cpp => core-legacy/sourcehook/test/testrefret.cpp rename : core-1.4/sourcemm.cpp => core-legacy/sourcemm.cpp rename : core-1.4/sourcemm.h => core-legacy/sourcemm.h rename : core-1.4/svn_version.h => core-legacy/svn_version.h rename : core-1.4/svn_version.tpl => core-legacy/svn_version.tpl rename : core-1.4/util.cpp => core-legacy/util.cpp rename : core-1.4/util.h => core-legacy/util.h rename : core-1.4/version.rc => core-legacy/version.rc rename : core-1.4/vsp_listener.cpp => core-legacy/vsp_listener.cpp rename : core-1.4/vsp_listener.h => core-legacy/vsp_listener.h
99 lines
2.7 KiB
C++
99 lines
2.7 KiB
C++
/* ======== SourceMM ========
|
|
* Copyright (C) 2004-2008 Metamod:Source Development Team
|
|
* No warranties of any kind
|
|
*
|
|
* License: zlib/libpng
|
|
*
|
|
* Author(s): David "BAILOPAN" Anderson
|
|
* ============================
|
|
*/
|
|
|
|
#ifndef _INCLUDE_CSMM_API_H
|
|
#define _INCLUDE_CSMM_API_H
|
|
|
|
/**
|
|
* @brief Header for CSmmAPI implementation
|
|
* @file CSmmAPI.h
|
|
*/
|
|
|
|
#include "ISmmAPI.h"
|
|
#include <tier1/utldict.h>
|
|
|
|
struct UserMessage
|
|
{
|
|
int size;
|
|
const char *name;
|
|
};
|
|
|
|
typedef CUtlDict<UserMessage *, int> UserMsgDict;
|
|
|
|
typedef void (*CONPRINTF_FUNC)(const char *, ...);
|
|
|
|
namespace SourceMM
|
|
{
|
|
class CSmmAPI : public ISmmAPI
|
|
{
|
|
public:
|
|
CSmmAPI();
|
|
~CSmmAPI();
|
|
public:
|
|
void LogMsg(ISmmPlugin *pl, const char *msg, ...);
|
|
public:
|
|
CreateInterfaceFn engineFactory(bool syn=true);
|
|
CreateInterfaceFn physicsFactory(bool syn=true);
|
|
CreateInterfaceFn fileSystemFactory(bool syn=true);
|
|
CreateInterfaceFn serverFactory(bool syn=true);
|
|
CGlobalVars *pGlobals();
|
|
void SetLastMetaReturn(META_RES res);
|
|
META_RES GetLastMetaReturn();
|
|
IConCommandBaseAccessor *GetCvarBaseAccessor();
|
|
bool RegisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand);
|
|
void UnregisterConCmdBase(ISmmPlugin *plugin, ConCommandBase *pCommand);
|
|
void ConPrint(const char *fmt);
|
|
void ConPrintf(const char *fmt, ...);
|
|
bool RemotePrintingAvailable()
|
|
{
|
|
return CmdCacheSuccessful();
|
|
}
|
|
virtual void GetApiVersions(int &major, int &minor, int &plvers, int &plmin);
|
|
virtual void GetShVersions(int &shvers, int &shimpl);
|
|
virtual void AddListener(ISmmPlugin *plugin, IMetamodListener *pListener);
|
|
virtual void *MetaFactory(const char *iface, int *ret, PluginId *id);
|
|
virtual int FormatIface(char buffer[], unsigned int maxlength);
|
|
virtual void *InterfaceSearch(CreateInterfaceFn fn, const char *iface, int max, int *ret);
|
|
virtual const char *GetBaseDir();
|
|
virtual void PathFormat(char *buffer, size_t len, const char *fmt, ...);
|
|
void ClientConPrintf(edict_t *client, const char *fmt, ...);
|
|
void *VInterfaceMatch(CreateInterfaceFn fn, const char *iface, int min=-1);
|
|
void EnableVSPListener();
|
|
int GetGameDLLVersion();
|
|
int GetUserMessageCount();
|
|
int FindUserMessage(const char *name, int *size=NULL);
|
|
const char *GetUserMessage(int index, int *size=NULL);
|
|
public:
|
|
bool CacheCmds();
|
|
bool CmdCacheSuccessful();
|
|
void LoadAsVSP();
|
|
bool VSPEnabled()
|
|
{
|
|
return m_VSP;
|
|
}
|
|
bool CacheUserMessages();
|
|
bool MsgCacheSuccessful();
|
|
private:
|
|
META_RES m_Res;
|
|
CONPRINTF_FUNC m_ConPrintf;
|
|
bool m_CmdCache;
|
|
bool m_VSP;
|
|
int m_MsgCount;
|
|
UserMsgDict m_UserMessages;
|
|
};
|
|
};
|
|
|
|
extern SourceMM::CSmmAPI g_SmmAPI;
|
|
|
|
#define CONMSG g_SmmAPI.ConPrintf
|
|
#define CLIENT_CONMSG g_SmmAPI.ClientConPrintf
|
|
|
|
#endif //_INCLUDE_CSMM_API_H
|