Cvars: Add OnCvarChanged global forward
I really tried to use "cvar_changed" as name, but it bothered me so much to look that weird I could not keep it.
This commit is contained in:
parent
34d91789c4
commit
faeaf9259e
|
@ -329,6 +329,8 @@ extern int FF_PluginEnd;
|
||||||
extern int FF_InconsistentFile;
|
extern int FF_InconsistentFile;
|
||||||
extern int FF_ClientAuthorized;
|
extern int FF_ClientAuthorized;
|
||||||
extern int FF_ChangeLevel;
|
extern int FF_ChangeLevel;
|
||||||
|
extern int FF_CvarChanged;
|
||||||
|
|
||||||
extern bool g_coloredmenus;
|
extern bool g_coloredmenus;
|
||||||
|
|
||||||
typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
|
typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);
|
||||||
|
|
|
@ -15,7 +15,16 @@ CDetour *Cvar_DirectSetDetour;
|
||||||
|
|
||||||
DETOUR_DECL_STATIC2(Cvar_DirectSet, void, struct cvar_s*, var, const char*, value)
|
DETOUR_DECL_STATIC2(Cvar_DirectSet, void, struct cvar_s*, var, const char*, value)
|
||||||
{
|
{
|
||||||
printf("Cvar_DirectSet - %s -> %s\n", var->name, value);
|
if (var && value)
|
||||||
|
{
|
||||||
|
if (strcmp(var->string, value) != 0)
|
||||||
|
{
|
||||||
|
if (executeForwards(FF_CvarChanged, reinterpret_cast<cell>(var), var->string, value, var->name) > 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DETOUR_STATIC_CALL(Cvar_DirectSet)(var, value);
|
DETOUR_STATIC_CALL(Cvar_DirectSet)(var, value);
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,6 +143,7 @@ int FF_PluginEnd = -1;
|
||||||
int FF_InconsistentFile = -1;
|
int FF_InconsistentFile = -1;
|
||||||
int FF_ClientAuthorized = -1;
|
int FF_ClientAuthorized = -1;
|
||||||
int FF_ChangeLevel = -1;
|
int FF_ChangeLevel = -1;
|
||||||
|
int FF_CvarChanged = -1;
|
||||||
|
|
||||||
bool ColoredMenus(String & ModName)
|
bool ColoredMenus(String & ModName)
|
||||||
{
|
{
|
||||||
|
@ -503,6 +504,7 @@ int C_Spawn(edict_t *pent)
|
||||||
FF_InconsistentFile = registerForward("inconsistent_file", ET_STOP, FP_CELL, FP_STRING, FP_STRINGEX, FP_DONE);
|
FF_InconsistentFile = registerForward("inconsistent_file", ET_STOP, FP_CELL, FP_STRING, FP_STRINGEX, FP_DONE);
|
||||||
FF_ClientAuthorized = registerForward("client_authorized", ET_IGNORE, FP_CELL, FP_DONE);
|
FF_ClientAuthorized = registerForward("client_authorized", ET_IGNORE, FP_CELL, FP_DONE);
|
||||||
FF_ChangeLevel = registerForward("server_changelevel", ET_STOP, FP_STRING, FP_DONE);
|
FF_ChangeLevel = registerForward("server_changelevel", ET_STOP, FP_STRING, FP_DONE);
|
||||||
|
FF_CvarChanged = registerForward("OnCvarChanged", ET_STOP, FP_CELL, FP_STRING, FP_STRING, FP_STRING, FP_DONE);
|
||||||
|
|
||||||
#if defined BINLOG_ENABLED
|
#if defined BINLOG_ENABLED
|
||||||
if (!g_BinLog.Open())
|
if (!g_BinLog.Open())
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include <newmenus>
|
#include <newmenus>
|
||||||
#include <textparse_smc>
|
#include <textparse_smc>
|
||||||
#include <textparse_ini>
|
#include <textparse_ini>
|
||||||
|
#include <cvars>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called just after server activation.
|
* Called just after server activation.
|
||||||
|
|
23
plugins/include/cvars.inc
Normal file
23
plugins/include/cvars.inc
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
// vim: set ts=4 sw=4 tw=99 noet:
|
||||||
|
//
|
||||||
|
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
|
||||||
|
// Copyright (C) The AMX Mod X Development Team.
|
||||||
|
//
|
||||||
|
// This software is licensed under the GNU General Public License, version 3 or higher.
|
||||||
|
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
|
||||||
|
// https://alliedmods.net/amxmodx-license
|
||||||
|
|
||||||
|
#if defined _cvars_included
|
||||||
|
#endinput
|
||||||
|
#endif
|
||||||
|
#define _cvars_included
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called when a console variable's value is changed.
|
||||||
|
*
|
||||||
|
* @param cvarHandle Handle to the cvar that was changed
|
||||||
|
* @param oldValue String containing the value of the cvar before it was changed
|
||||||
|
* @param newValue String containing the new value of the cvar
|
||||||
|
* @param cvarName String containing the name of the cvar
|
||||||
|
*/
|
||||||
|
forward OnCvarChanged(cvarHandle, const oldValue[], const newValue[], const cvarName[]);
|
|
@ -245,6 +245,7 @@ scripting_files = [
|
||||||
'include/csstats.inc',
|
'include/csstats.inc',
|
||||||
'include/cstrike.inc',
|
'include/cstrike.inc',
|
||||||
'include/csx.inc',
|
'include/csx.inc',
|
||||||
|
'include/cvars.inc',
|
||||||
'include/datapack.inc',
|
'include/datapack.inc',
|
||||||
'include/dbi.inc',
|
'include/dbi.inc',
|
||||||
'include/dodconst.inc',
|
'include/dodconst.inc',
|
||||||
|
|
Loading…
Reference in New Issue
Block a user