mirror of
https://github.com/rehlds/metamod-r.git
synced 2025-01-14 23:57:57 +03:00
Added clientmeta option
This commit is contained in:
parent
3674c3e946
commit
29b0f402f1
@ -36,6 +36,7 @@ public:
|
|||||||
int m_debuglevel; // to use for meta_debug
|
int m_debuglevel; // to use for meta_debug
|
||||||
char *m_gamedll; // string if specified in config.ini
|
char *m_gamedll; // string if specified in config.ini
|
||||||
char *m_exec_cfg; // ie exec.cfg
|
char *m_exec_cfg; // ie exec.cfg
|
||||||
|
int m_clientmeta;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
option_t *m_list;
|
option_t *m_list;
|
||||||
|
@ -22,6 +22,7 @@ void MM_PRE_HOOK EXT_FUNC mm_ClientDisconnect(edict_t *pEntity)
|
|||||||
g_players.clear_player_cvar_query(pEntity);
|
g_players.clear_player_cvar_query(pEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// this forward can be disabled from metamod.cpp
|
||||||
void MM_PRE_HOOK mm_ClientCommand(edict_t *pEntity)
|
void MM_PRE_HOOK mm_ClientCommand(edict_t *pEntity)
|
||||||
{
|
{
|
||||||
if (!strcmp(CMD_ARGV(0), "meta")) {
|
if (!strcmp(CMD_ARGV(0), "meta")) {
|
||||||
@ -281,3 +282,8 @@ void compile_gamedll_callbacks()
|
|||||||
compile_dllfunc_callbacks();
|
compile_dllfunc_callbacks();
|
||||||
compile_newdllfunc_callbacks();
|
compile_newdllfunc_callbacks();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void disable_clientcommand_fwd()
|
||||||
|
{
|
||||||
|
g_dllfunc_cdata[offsetof(DLL_FUNCTIONS, pfnClientCommand) / sizeof(int)].mm_hook = 0;
|
||||||
|
}
|
||||||
|
@ -14,4 +14,5 @@ C_DLLEXPORT int GetNewDLLFunctions(NEW_DLL_FUNCTIONS *pNewFunctionTable, int *in
|
|||||||
|
|
||||||
#ifdef METAMOD_CORE
|
#ifdef METAMOD_CORE
|
||||||
void compile_gamedll_callbacks();
|
void compile_gamedll_callbacks();
|
||||||
|
void disable_clientcommand_fwd();
|
||||||
#endif
|
#endif
|
||||||
|
@ -7,11 +7,12 @@ MConfig *g_config = &g_static_config;
|
|||||||
option_t g_global_options[] =
|
option_t g_global_options[] =
|
||||||
{
|
{
|
||||||
{ "debuglevel", CF_INT, &g_config->m_debuglevel, "0" },
|
{ "debuglevel", CF_INT, &g_config->m_debuglevel, "0" },
|
||||||
{ "gamedll", CF_PATH, &g_config->m_gamedll, NULL },
|
{ "gamedll", CF_PATH, &g_config->m_gamedll, nullptr },
|
||||||
{ "exec_cfg", CF_STR, &g_config->m_exec_cfg, NULL },
|
{ "exec_cfg", CF_STR, &g_config->m_exec_cfg, nullptr },
|
||||||
|
{ "clientmeta", CF_BOOL, &g_config->m_clientmeta, false },
|
||||||
|
|
||||||
// list terminator
|
// list terminator
|
||||||
{ NULL, CF_NONE, NULL, NULL }
|
{ nullptr, CF_NONE, nullptr, nullptr }
|
||||||
};
|
};
|
||||||
|
|
||||||
gamedll_t g_GameDLL;
|
gamedll_t g_GameDLL;
|
||||||
@ -139,11 +140,20 @@ void metamod_startup()
|
|||||||
g_config->set("exec_cfg", cp);
|
g_config->set("exec_cfg", cp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((cp = LOCALINFO("mm_clientmeta")) && *cp != '\0')
|
||||||
|
{
|
||||||
|
META_LOG("Clientmeta specified via localinfo: %s", cp);
|
||||||
|
g_config->set("clientmeta", cp);
|
||||||
|
}
|
||||||
|
|
||||||
// Check for an initial debug level, since cfg files don't get exec'd
|
// Check for an initial debug level, since cfg files don't get exec'd
|
||||||
// until later.
|
// until later.
|
||||||
if (g_config->m_debuglevel != 0)
|
if (g_config->m_debuglevel != 0)
|
||||||
CVAR_SET_FLOAT("meta_debug", g_config->m_debuglevel);
|
CVAR_SET_FLOAT("meta_debug", g_config->m_debuglevel);
|
||||||
|
|
||||||
|
if (!g_config->m_clientmeta)
|
||||||
|
disable_clientcommand_fwd();
|
||||||
|
|
||||||
// Prepare for registered commands from plugins.
|
// Prepare for registered commands from plugins.
|
||||||
g_regCmds = new MRegCmdList();
|
g_regCmds = new MRegCmdList();
|
||||||
g_regCvars = new MRegCvarList();
|
g_regCvars = new MRegCvarList();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user