Cvars: Add new description param in get_plugins_cvar

This commit is contained in:
Arkshine 2015-01-25 11:38:01 +01:00
parent cb0b9da51f
commit 8a241ed0fd
3 changed files with 29 additions and 11 deletions

View File

@ -234,6 +234,17 @@ cvar_t* CvarManager::CreateCvar(const char* name, const char* value, const char*
// Make sure that whether an existing or new cvar is set to the given value. // Make sure that whether an existing or new cvar is set to the given value.
CVAR_DIRECTSET(var, value); CVAR_DIRECTSET(var, value);
} }
else
{
// In case a plugin has been recompiling with some changes
// after a change map occurred, we keep default data up to date.
info->description = helpText;
info->defaultval = value;
info->hasMin = hasMin;
info->minVal = min;
info->hasMax = hasMin;
info->maxVal = max;
}
// Detour is disabled on map change. // Detour is disabled on map change.
m_HookDetour->EnableDetour(); m_HookDetour->EnableDetour();

View File

@ -553,7 +553,7 @@ static cell AMX_NATIVE_CALL remove_cvar_flags(AMX *amx, cell *params)
return 0; return 0;
} }
// get_plugins_cvar(id, name[], namelen, &flags=0, &plugin_id=0, &pcvar_handle=0) // get_plugins_cvar(id, name[], namelen, &flags=0, &plugin_id=0, &pcvar_handle=0, description[]="", desc_len=0)
static cell AMX_NATIVE_CALL get_plugins_cvar(AMX *amx, cell *params) static cell AMX_NATIVE_CALL get_plugins_cvar(AMX *amx, cell *params)
{ {
CvarInfo* info = g_CvarManager.FindCvar(params[1]); CvarInfo* info = g_CvarManager.FindCvar(params[1]);
@ -565,6 +565,11 @@ static cell AMX_NATIVE_CALL get_plugins_cvar(AMX *amx, cell *params)
*get_amxaddr(amx, params[5]) = info->pluginId; *get_amxaddr(amx, params[5]) = info->pluginId;
*get_amxaddr(amx, params[6]) = reinterpret_cast<cell>(info->var); *get_amxaddr(amx, params[6]) = reinterpret_cast<cell>(info->var);
if (*params / sizeof(cell) >= 7)
{
set_amxstring(amx, params[7], info->description.chars(), params[8]);
}
return 1; return 1;
} }

View File

@ -36,18 +36,18 @@
* @note The returned cvar pointer should be used with the get_pcvar_* and * @note The returned cvar pointer should be used with the get_pcvar_* and
* set_pcvar_* set of functions. * set_pcvar_* set of functions.
* *
* @param name Cvar name * @param name Cvar name
* @param string Default cvar value * @param string Default cvar value
* @param flags Optional bitstring of flags determining how the convar should be handled * @param flags Optional bitstring of flags determining how the convar should be handled
* @param help_text Optional description of the cvar * @param description Optional description of the cvar
* @param has_min Optional boolean that determines if the convar has a minimum valu * @param has_min Optional boolean that determines if the convar has a minimum valu
* @param min_val Minimum floating point value that the convar can have if has_min is true * @param min_val Minimum floating point value that the convar can have if has_min is true
* @param has_max Optional boolean that determines if the convar has a maximum value * @param has_max Optional boolean that determines if the convar has a maximum value
* @param max_val Maximum floating point value that the convar can have if has_max is true * @param max_val Maximum floating point value that the convar can have if has_max is true
* *
* @return Unique cvar pointer * @return Unique cvar pointer
*/ */
native create_cvar(const name[], const string[], flags = FCVAR_NONE, const help_text[] = "", bool:has_min = false, Float:min_val = 0.0, bool:has_max = false, Float:max_val = 0.0); native create_cvar(const name[], const string[], flags = FCVAR_NONE, const description[] = "", bool:has_min = false, Float:min_val = 0.0, bool:has_max = false, Float:max_val = 0.0);
/** /**
* Registers a new cvar for the engine. * Registers a new cvar for the engine.
@ -448,10 +448,12 @@ native get_plugins_cvarsnum();
* @param flags Variable to store cvar flags to * @param flags Variable to store cvar flags to
* @param plugin_id Variable to store id of the registering plugin to * @param plugin_id Variable to store id of the registering plugin to
* @param pcvar_handle Variable to store cvar pointer to * @param pcvar_handle Variable to store cvar pointer to
* @param description Variable to store cvar description to
* @param desc_len Maximum length of string buffer
* *
* @return 1 on success, 0 if index is invalid * @return 1 on success, 0 if index is invalid
*/ */
native get_plugins_cvar(num, name[], namelen, &flags=0, &plugin_id=0, &pcvar_handle=0); native get_plugins_cvar(num, name[], namelen, &flags=0, &plugin_id=0, &pcvar_handle=0, description[]="", desc_len=0);
/** /**
* Dispatches a client cvar query, allowing the plugin to query for its value on * Dispatches a client cvar query, allowing the plugin to query for its value on