summaryrefslogtreecommitdiff
path: root/sourcemod/scripting/include/gokz/quiet.inc
diff options
context:
space:
mode:
Diffstat (limited to 'sourcemod/scripting/include/gokz/quiet.inc')
-rw-r--r--sourcemod/scripting/include/gokz/quiet.inc205
1 files changed, 205 insertions, 0 deletions
diff --git a/sourcemod/scripting/include/gokz/quiet.inc b/sourcemod/scripting/include/gokz/quiet.inc
new file mode 100644
index 0000000..a328b7e
--- /dev/null
+++ b/sourcemod/scripting/include/gokz/quiet.inc
@@ -0,0 +1,205 @@
+/*
+ gokz-quiet Plugin Include
+
+ Website: https://bitbucket.org/kztimerglobalteam/gokz
+*/
+
+#if defined _gokz_quiet_included_
+#endinput
+#endif
+#define _gokz_quiet_included_
+
+
+
+// =====[ ENUMS ]=====
+
+enum QTOption:
+{
+ QTOPTION_INVALID = -1,
+ QTOption_ShowPlayers,
+ QTOption_Soundscapes,
+ QTOption_FallDamageSound,
+ QTOption_AmbientSounds,
+ QTOption_CheckpointVolume,
+ QTOption_TeleportVolume,
+ QTOption_TimerVolume,
+ QTOption_ErrorVolume,
+ QTOption_ServerRecordVolume,
+ QTOption_WorldRecordVolume,
+ QTOption_JumpstatsVolume,
+ QTOPTION_COUNT
+};
+
+enum
+{
+ ShowPlayers_Disabled = 0,
+ ShowPlayers_Enabled,
+ SHOWPLAYERS_COUNT
+};
+
+enum
+{
+ Soundscapes_Disabled = 0,
+ Soundscapes_Enabled,
+ SOUNDSCAPES_COUNT
+};
+
+// =====[ CONSTANTS ]=====
+
+#define QUIET_OPTION_CATEGORY "Quiet"
+#define DEFAULT_VOLUME 10
+#define VOLUME_COUNT 21 // Maximum of 200%
+
+#define EFFECT_IMPACT 8
+#define EFFECT_KNIFESLASH 2
+#define BLANK_SOUNDSCAPEINDEX 482 // Search for "coopcementplant.missionselect_blank" id with sv_soundscape_printdebuginfo.
+
+stock char gC_QTOptionNames[QTOPTION_COUNT][] =
+{
+ "GOKZ QT - Show Players",
+ "GOKZ QT - Soundscapes",
+ "GOKZ QT - Fall Damage Sound",
+ "GOKZ QT - Ambient Sounds",
+ "GOKZ QT - Checkpoint Volume",
+ "GOKZ QT - Teleport Volume",
+ "GOKZ QT - Timer Volume",
+ "GOKZ QT - Error Volume",
+ "GOKZ QT - Server Record Volume",
+ "GOKZ QT - World Record Volume",
+ "GOKZ QT - Jumpstats Volume"
+};
+
+stock char gC_QTOptionDescriptions[QTOPTION_COUNT][] =
+{
+ "Visibility of Other Players - 0 = Disabled, 1 = Enabled",
+ "Play Soundscapes - 0 = Disabled, 1 = Enabled",
+ "Play Fall Damage Sound - 0 to 20 = 0% to 200%",
+ "Play Ambient Sounds - 0 to 20 = 0% to 200%",
+ "Checkpoint Volume - 0 to 20 = 0% to 200%",
+ "Teleport Volume - 0 to 20 = 0% to 200%",
+ "Timer Volume - 0 to 20 = 0% to 200%",
+ "Error Volume - 0 to 20 = 0% to 200%",
+ "Server Record Volume - 0 to 20 = 0% to 200%",
+ "World Record Volume - 0 to 20 = 0% to 200%",
+ "Jumpstats Volume - 0 to 20 = 0% to 200%"
+};
+
+stock int gI_QTOptionDefaultValues[QTOPTION_COUNT] =
+{
+ ShowPlayers_Enabled,
+ Soundscapes_Enabled,
+ DEFAULT_VOLUME, // Fall damage volume
+ DEFAULT_VOLUME, // Ambient volume
+ DEFAULT_VOLUME, // Checkpoint volume
+ DEFAULT_VOLUME, // Teleport volume
+ DEFAULT_VOLUME, // Timer volume
+ DEFAULT_VOLUME, // Error volume
+ DEFAULT_VOLUME, // Server Record Volume
+ DEFAULT_VOLUME, // World Record Volume
+ DEFAULT_VOLUME // Jumpstats Volume
+};
+
+stock int gI_QTOptionCounts[QTOPTION_COUNT] =
+{
+ SHOWPLAYERS_COUNT,
+ SOUNDSCAPES_COUNT,
+ VOLUME_COUNT, // Fall damage volume
+ VOLUME_COUNT, // Ambient volume
+ VOLUME_COUNT, // Checkpoint volume
+ VOLUME_COUNT, // Teleport volume
+ VOLUME_COUNT, // Timer volume
+ VOLUME_COUNT, // Error volume
+ VOLUME_COUNT, // Server Record volume
+ VOLUME_COUNT, // World Record volume
+ VOLUME_COUNT // Jumpstats volume
+};
+
+stock char gC_QTOptionPhrases[QTOPTION_COUNT][] =
+{
+ "Options Menu - Show Players",
+ "Options Menu - Soundscapes",
+ "Options Menu - Fall Damage Sounds",
+ "Options Menu - Ambient Sounds",
+ "Options Menu - Checkpoint Volume",
+ "Options Menu - Teleport Volume",
+ "Options Menu - Timer Volume",
+ "Options Menu - Error Volume",
+ "Options Menu - Server Record Volume",
+ "Options Menu - World Record Volume",
+ "Options Menu - Jumpstats Volume"
+};
+
+// =====[ STOCKS ]=====
+
+/**
+ * Returns whether an option is a gokz-quiet option.
+ *
+ * @param option Option name.
+ * @param optionEnum Variable to store enumerated gokz-quiet option (if it is one).
+ * @return Whether option is a gokz-quiet option.
+ */
+stock bool GOKZ_QT_IsQTOption(const char[] option, QTOption &optionEnum = QTOPTION_INVALID)
+{
+ for (QTOption i; i < QTOPTION_COUNT; i++)
+ {
+ if (StrEqual(option, gC_QTOptionNames[i]))
+ {
+ optionEnum = i;
+ return true;
+ }
+ }
+ return false;
+}
+
+/**
+ * Gets the current value of a player's gokz-quiet option.
+ *
+ * @param client Client index.
+ * @param option gokz-quiet option.
+ * @return Current value of option.
+ */
+stock any GOKZ_QT_GetOption(int client, QTOption option)
+{
+ return GOKZ_GetOption(client, gC_QTOptionNames[option]);
+}
+
+/**
+ * Sets a player's gokz-quiet option's value.
+ *
+ * @param client Client index.
+ * @param option gokz-quiet option.
+ * @param value New option value.
+ * @return Whether option was successfully set.
+ */
+stock bool GOKZ_QT_SetOption(int client, QTOption option, any value)
+{
+ return GOKZ_SetOption(client, gC_QTOptionNames[option], value);
+}
+
+/**
+ * Increment an integer-type gokz-quiet option's value.
+ * Loops back to '0' if max value is exceeded.
+ *
+ * @param client Client index.
+ * @param option gokz-quiet option.
+ * @return Whether option was successfully set.
+ */
+stock bool GOKZ_QT_CycleOption(int client, QTOption option)
+{
+ return GOKZ_CycleOption(client, gC_QTOptionNames[option]);
+}
+
+
+
+// =====[ DEPENDENCY ]=====
+
+public SharedPlugin __pl_gokz_quiet =
+{
+ name = "gokz-quiet",
+ file = "gokz-quiet.smx",
+ #if defined REQUIRE_PLUGIN
+ required = 1,
+ #else
+ required = 0,
+ #endif
+}; \ No newline at end of file