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:
Arkshine
2015-01-16 23:14:15 +01:00
parent 34d91789c4
commit faeaf9259e
6 changed files with 39 additions and 1 deletions

View File

@ -329,6 +329,8 @@ extern int FF_PluginEnd;
extern int FF_InconsistentFile;
extern int FF_ClientAuthorized;
extern int FF_ChangeLevel;
extern int FF_CvarChanged;
extern bool g_coloredmenus;
typedef void (*AUTHORIZEFUNC)(int player, const char *authstring);

View File

@ -15,7 +15,16 @@ CDetour *Cvar_DirectSetDetour;
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);
}

View File

@ -143,6 +143,7 @@ int FF_PluginEnd = -1;
int FF_InconsistentFile = -1;
int FF_ClientAuthorized = -1;
int FF_ChangeLevel = -1;
int FF_CvarChanged = -1;
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_ClientAuthorized = registerForward("client_authorized", ET_IGNORE, FP_CELL, 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 (!g_BinLog.Open())