diff options
| author | aura <nw@moneybot.cc> | 2026-02-17 23:42:09 +0100 |
|---|---|---|
| committer | aura <nw@moneybot.cc> | 2026-02-17 23:42:09 +0100 |
| commit | 5e2eb7d67ae933b7566f1944d0bb7744da03d586 (patch) | |
| tree | 054acff1113270a9cd07933df760f3768c1b6853 /source/sourcemod/scripting/gokz-jumpstats/options.sp | |
| parent | 341db13a008dc12bb22ceb50452d93d01476308c (diff) | |
move source stuff to its own folder
Diffstat (limited to 'source/sourcemod/scripting/gokz-jumpstats/options.sp')
| -rw-r--r-- | source/sourcemod/scripting/gokz-jumpstats/options.sp | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/source/sourcemod/scripting/gokz-jumpstats/options.sp b/source/sourcemod/scripting/gokz-jumpstats/options.sp new file mode 100644 index 0000000..7e0e9e9 --- /dev/null +++ b/source/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"); + } + } + } + } +} |
