diff --git a/src/k_menu.h b/src/k_menu.h index b22853bde..186c7350a 100644 --- a/src/k_menu.h +++ b/src/k_menu.h @@ -385,8 +385,10 @@ typedef enum sopt_sfxvolume, sopt_musicvolume, sopt_spacer1, + sopt_preferences, sopt_chatnotifs, sopt_charvoices, + sopt_followhorns, sopt_attackmusic, sopt_spacer2, sopt_advanced, diff --git a/src/menus/options-1.c b/src/menus/options-1.c index b7037b900..a48faf412 100644 --- a/src/menus/options-1.c +++ b/src/menus/options-1.c @@ -5,6 +5,7 @@ #include "../k_menu.h" #include "../k_grandprix.h" // K_CanChangeRules #include "../m_cond.h" // Condition Sets +#include "../k_follower.h" #include "../s_sound.h" // options menu -- see mopt_e @@ -96,6 +97,7 @@ void M_InitOptions(INT32 choice) (M_SecretUnlocked(SECRET_ENCORE, false) ? (IT_STRING | IT_CVAR) : IT_DISABLED); } + // Data Options OPTIONS_DataAdvancedDef.menuitems[daopt_addon].status = (M_SecretUnlocked(SECRET_ADDONS, true) ? (IT_STRING | IT_SUBMENU) : (IT_NOTHING | IT_SPACE)); diff --git a/src/menus/options-sound.cpp b/src/menus/options-sound.cpp index 1f73a0d14..b5a5a8014 100644 --- a/src/menus/options-sound.cpp +++ b/src/menus/options-sound.cpp @@ -210,8 +210,29 @@ void tick_routine(void) void init_routine(void) { + OPTIONS_Sound[sopt_followhorns].status = IT_SECRET; OPTIONS_Sound[sopt_attackmusic].status = IT_SECRET; + // We show a kindness. If you have online available, + // even if you haven't found a single Follower, you + // should be able to turn off other people's horns. + bool allow = M_SecretUnlocked(SECRET_ONLINE, true); + if (!allow) + { + UINT16 j; + for (j = 0; j < numfollowers; j++) + { + if (!K_FollowerUsable(j)) + continue; + + allow = true; + break; + } + } + + if (allow) + OPTIONS_Sound[sopt_followhorns].status = IT_STRING | IT_CVAR; + if (M_SecretUnlocked(SECRET_TIMEATTACK, true) || M_SecretUnlocked(SECRET_PRISONBREAK, true) || M_SecretUnlocked(SECRET_SPECIALATTACK, true)) @@ -252,16 +273,22 @@ menuitem_t OPTIONS_Sound[] = {IT_SPACE | IT_NOTHING, NULL, NULL, NULL, {NULL}, 0, 0}, + {IT_HEADER, "Preferences...", NULL, + NULL, {NULL}, 0, 0}, + {IT_STRING | IT_CVAR, "Chat Notifications", "Play a sound effect when chat messages appear.", NULL, {.cvar = &cv_chatnotifications}, 0, 0}, - {IT_STRING | IT_CVAR, "Character Voices", "How often to play character voices in a race.", + {IT_STRING | IT_CVAR, "Character Voices", "How often to play character voices in a round.", NULL, {.cvar = &cv_kartvoices}, 0, 0}, + {IT_STRING | IT_CVAR, "Follower Horns", "How often to play follower horns in a round.", + NULL, {.cvar = &cv_karthorns}, 0, 0}, + {IT_STRING | IT_CVAR, "Continuous Attack Music", "Keep music playing seamlessly when retrying in Attack modes.", NULL, {.cvar = &cv_continuousmusic}, 0, 0}, - {IT_SPACE | IT_NOTHING, NULL, NULL, + {IT_SPACE | IT_DYBIGSPACE, NULL, NULL, NULL, {NULL}, 0, 0}, {IT_HEADER, "Advanced...", NULL,