diff options
Diffstat (limited to 'sourcemod/scripting/gokz-jumpstats/options.sp')
| -rw-r--r-- | sourcemod/scripting/gokz-jumpstats/options.sp | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/sourcemod/scripting/gokz-jumpstats/options.sp b/sourcemod/scripting/gokz-jumpstats/options.sp new file mode 100644 index 0000000..7e0e9e9 --- /dev/null +++ b/sourcemod/scripting/gokz-jumpstats/options.sp @@ -0,0 +1,86 @@ +/* + Options for jumpstats, including an option to disable it completely. +*/ + + + +// =====[ PUBLIC ]===== + +bool GetJumpstatsDisabled(int client) +{ + return GOKZ_JS_GetOption(client, JSOption_JumpstatsMaster) == JSToggleOption_Disabled + || (GOKZ_JS_GetOption(client, JSOption_MinChatTier) == DistanceTier_None + && GOKZ_JS_GetOption(client, JSOption_MinConsoleTier) == DistanceTier_None + && GOKZ_JS_GetOption(client, JSOption_MinSoundTier) == DistanceTier_None + && GOKZ_JS_GetOption(client, JSOption_FailstatsConsole) == JSToggleOption_Disabled + && GOKZ_JS_GetOption(client, JSOption_FailstatsChat) == JSToggleOption_Disabled + && GOKZ_JS_GetOption(client, JSOption_JumpstatsAlways) == JSToggleOption_Disabled); +} + + + +// =====[ EVENTS ]===== + +void OnOptionsMenuReady_Options() +{ + RegisterOptions(); +} + +void OnClientPutInServer_Options(int client) +{ + if (GOKZ_JS_GetOption(client, JSOption_MinSoundTier) == DistanceTier_Meh) + { + GOKZ_JS_SetOption(client, JSOption_MinSoundTier, DistanceTier_Impressive); + } +} + +void OnOptionChanged_Options(int client, const char[] option, any newValue) +{ + JSOption jsOption; + if (GOKZ_JS_IsJSOption(option, jsOption)) + { + if (jsOption == JSOption_MinSoundTier && newValue == DistanceTier_Meh) + { + GOKZ_JS_SetOption(client, JSOption_MinSoundTier, DistanceTier_Impressive); + } + else + { + PrintOptionChangeMessage(client, jsOption, newValue); + } + } +} + + + +// =====[ PRIVATE ]===== + +static void RegisterOptions() +{ + for (JSOption option; option < JSOPTION_COUNT; option++) + { + GOKZ_RegisterOption(gC_JSOptionNames[option], gC_JSOptionDescriptions[option], + OptionType_Int, gI_JSOptionDefaults[option], 0, gI_JSOptionCounts[option] - 1); + } +} + +static void PrintOptionChangeMessage(int client, JSOption option, any newValue) +{ + // NOTE: Not all options have a message for when they are changed. + switch (option) + { + case JSOption_JumpstatsMaster: + { + switch (newValue) + { + case JSToggleOption_Enabled: + { + GOKZ_PrintToChat(client, true, "%t", "Jumpstats Option - Master Switch - Enable"); + } + case JSToggleOption_Disabled: + { + GOKZ_PrintToChat(client, true, "%t", "Jumpstats Option - Master Switch - Disable"); + } + } + } + } +} |
