Merge branch 'tasteless-audio' into 'master'

Tasteless Taunts

See merge request KartKrew/Kart!2215
This commit is contained in:
Oni 2024-04-03 00:48:21 +00:00
commit 1f97d70ff8
11 changed files with 45 additions and 32 deletions

View file

@ -103,8 +103,6 @@ CV_PossibleValue_t gpdifficulty_cons_t[] = {
{0, NULL}
};
CV_PossibleValue_t kartvoices_cons_t[] = {{0, "Never"}, {1, "Tasteful"}, {2, "Meme"}, {0, NULL}};
// Filter consvars by EXECVERSION
// First implementation is 2 (1.0.2), so earlier configs default at 1 (1.0.0)
// Also set CV_HIDDEN during runtime, after config is loaded
@ -2315,11 +2313,6 @@ void CV_AddValue(consvar_t *var, INT32 increment)
max = KARTSPEED_HARD+1;
}
}
else if (var->PossibleValue == kartvoices_cons_t
&& !M_SecretUnlocked(SECRET_MEMETAUNTS, true))
{
max--;
}
#ifdef PARANOIA
if (currentindice == -1)
I_Error("CV_AddValue: current value %d not found in possible value\n",

View file

@ -234,7 +234,6 @@ extern CV_PossibleValue_t CV_TrueFalse[];
// SRB2kart
// the KARTSPEED and KARTGP were previously defined here, but moved to doomstat to avoid circular dependencies
extern CV_PossibleValue_t kartspeed_cons_t[], dummykartspeed_cons_t[], gpdifficulty_cons_t[];
extern CV_PossibleValue_t kartvoices_cons_t[];
extern consvar_t cv_cheats;
extern consvar_t cv_execversion;

View file

@ -515,9 +515,8 @@ consvar_t cv_httpsource = Server("http_source", "");
void JoinTimeout_OnChange(void);
consvar_t cv_jointimeout = Server("jointimeout", "210").min_max(TICRATE/7, 60*TICRATE).onchange(JoinTimeout_OnChange);
extern CV_PossibleValue_t kartvoices_cons_t[];
consvar_t cv_karthorns = Server("taunthorns", "Tasteful").values(kartvoices_cons_t);
consvar_t cv_kartvoices = Server("tauntvoices", "Tasteful").values(kartvoices_cons_t);
consvar_t cv_karthorns = Server("taunthorns", "On").on_off();
consvar_t cv_kartvoices = Server("tauntvoices", "On").on_off();
consvar_t cv_kartspeedometer = Server("speedometer", "Percentage").values({{0, "Off"}, {1, "Percentage"}, {2, "Kilometers"}, {3, "Miles"}, {4, "Fracunits"}}); // use tics in display
consvar_t cv_kicktime = Server("kicktime", "20").values(CV_Unsigned);
@ -918,6 +917,7 @@ consvar_t cv_renderhitbox = PlayerCheat("renderhitbox", "Off").values(renderhitb
consvar_t cv_bighead = Player("bighead", "Off").dont_save().values(CV_OnOff).flags(CV_NOSHOWHELP).description("Works out at the library");
consvar_t cv_shittysigns = Player("shittysigns", "Off").dont_save().values(CV_OnOff).flags(CV_NOSHOWHELP).description("It's better because it's worse");
consvar_t cv_tastelesstaunts = Player("tastelesstaunts", "Off").dont_save().values(CV_OnOff).flags(CV_NOSHOWHELP).description("Universally hated in dev");
//
// Dummy variables used solely in the menu system.

View file

@ -101,6 +101,7 @@ extern consvar_t cv_battletest;
extern consvar_t cv_bighead;
extern consvar_t cv_shittysigns;
extern consvar_t cv_tastelesstaunts;
extern consvar_t cv_4thgear;
typedef enum {

View file

@ -2451,8 +2451,6 @@ static INT16 parseunlockabletype(char *type)
return SECRET_SOUNDTEST;
else if (fastcmp(type, "ALTTITLE"))
return SECRET_ALTTITLE;
else if (fastcmp(type, "MEMETAUNTS"))
return SECRET_MEMETAUNTS;
else if (fastcmp(type, "ITEMFINDER"))
return SECRET_ITEMFINDER;

View file

@ -757,8 +757,13 @@ void K_FollowerHornTaunt(player_t *taunter, player_t *victim, boolean mysticmelo
// More expensive checks
if (
(cv_karthorns.value == 0 && mysticmelodyspecial == false)
|| (P_IsDisplayPlayer(victim) == false && cv_karthorns.value != 2)
(
cv_tastelesstaunts.value == 0
&& (
(cv_karthorns.value == 0 && mysticmelodyspecial == false)
|| P_IsDisplayPlayer(victim) == false
)
)
|| P_MobjWasRemoved(taunter->mo) == true
|| P_MobjWasRemoved(taunter->follower) == true
)
@ -768,7 +773,7 @@ void K_FollowerHornTaunt(player_t *taunter, player_t *victim, boolean mysticmelo
const boolean tasteful = (taunter->karthud[khud_taunthorns] == 0);
if (tasteful || cv_karthorns.value == 2)
if (tasteful || cv_tastelesstaunts.value)
{
mobj_t *honk = taunter->follower->hprev;
const fixed_t desiredscale = (2*taunter->mo->scale)/3;

View file

@ -2720,8 +2720,10 @@ static void K_PlayGenericTastefulTaunt(mobj_t *source, sfxenum_t sfx_id)
boolean tasteful = (!source->player || !source->player->karthud[khud_tauntvoices]);
if (
cv_kartvoices.value
&& (tasteful || cv_kartvoices.value == 2)
(
(cv_kartvoices.value && tasteful)
|| cv_tastelesstaunts.value
)
&& R_CanShowSkinInDemo(skinid)
)
{
@ -2757,8 +2759,10 @@ void K_PlayOvertakeSound(mobj_t *source)
boolean tasteful = (!source->player || !source->player->karthud[khud_voices]);
if (
cv_kartvoices.value
&& (tasteful || cv_kartvoices.value == 2)
(
(cv_kartvoices.value && tasteful)
|| cv_tastelesstaunts.value
)
&& R_CanShowSkinInDemo(skinid)
)
{
@ -2785,7 +2789,7 @@ static void K_PlayGenericCombatSound(mobj_t *source, mobj_t *other, sfxenum_t sf
}
if (
cv_kartvoices.value
(cv_kartvoices.value || cv_tastelesstaunts.value)
&& R_CanShowSkinInDemo(skinid)
)
{
@ -2847,7 +2851,7 @@ void K_PlayPowerGloatSound(mobj_t *source)
return;
if (
cv_kartvoices.value
(cv_kartvoices.value || cv_tastelesstaunts.value)
&& R_CanShowSkinInDemo(skinid)
)
{
@ -2865,7 +2869,7 @@ void P_PlayVictorySound(mobj_t *source)
return;
if (
cv_kartvoices.value
(cv_kartvoices.value || cv_tastelesstaunts.value)
&& R_CanShowSkinInDemo(skinid)
)
{
@ -12122,15 +12126,15 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
{
if (player->oldposition < player->position) // But first, if you lost a place,
{
player->oldposition = player->position; // then the other player taunts.
// then the other player taunts.
K_RegularVoiceTimers(player); // and you can't for a bit
}
else // Otherwise,
{
K_PlayOvertakeSound(player->mo); // Say "YOU'RE TOO SLOW!"
player->oldposition = player->position; // Restore the old position,
}
}
player->oldposition = player->position;
// Prevent ring misfire
if (!(cmd->buttons & BT_ATTACK))

View file

@ -6612,7 +6612,6 @@ static void M_DrawChallengeTile(INT16 i, INT16 j, INT32 x, INT32 y, UINT8 *flash
case SECRET_EGGTV:
case SECRET_SOUNDTEST:
case SECRET_ALTTITLE:
case SECRET_MEMETAUNTS:
categoryid = '6';
break;
case SECRET_TIMEATTACK:
@ -6709,9 +6708,6 @@ static void M_DrawChallengeTile(INT16 i, INT16 j, INT32 x, INT32 y, UINT8 *flash
case SECRET_ALTTITLE:
iconid = 6;
break;
case SECRET_MEMETAUNTS:
iconid = 13;
break;
case SECRET_TIMEATTACK:
iconid = 7;

View file

@ -261,7 +261,6 @@ typedef enum
SECRET_EGGTV, // Permit replay playback menu
SECRET_SOUNDTEST, // Permit Sound Test
SECRET_ALTTITLE, // Permit alternate titlescreen
SECRET_MEMETAUNTS, // Permit "Meme" for kartvoices_cons_t
// Assist restrictions
SECRET_ITEMFINDER, // Permit locating in-level secrets

View file

@ -202,6 +202,19 @@ void f_shittysigns()
}
}
void f_tastelesstaunts()
{
CV_SetValue(&cv_tastelesstaunts, !cv_tastelesstaunts.value);
if (cv_tastelesstaunts.value)
{
S_StartSound(NULL, sfx_kslow);
}
else
{
S_StartSound(NULL, sfx_kc46);
}
}
void f_4thgear()
{
CV_SetValue(&cv_4thgear, !cv_4thgear.value);
@ -395,6 +408,7 @@ void M_PasswordInit(void)
passwords.emplace_back(f_bighead, "V+YkwthNUePKS7zs5uB90VwN6Jeqgl+1r663U5zSGOEIxAO6BoWipzZoxa5H//LM+5Ag9GIGRnEcLbU21hjGfQ==");
passwords.emplace_back(f_4thgear, "zRMhR+s27VTYE0jgFf2l+PX51N3qJPvZ3oWuM/71oUaKY5zyQ2y7WIrIb464MFWn4IsK2P5rShsR9MotC/9ojQ==");
passwords.emplace_back(f_shittysigns, "fdqz0cQdVKfS4zgN4usUz75+5AhYdDPsrl61H7sIEKHoaEUHPOfcful0jEkVvrV/rpELE0/3srRpxmJYpQofmA==");
passwords.emplace_back(f_tastelesstaunts, "4QfCuCG0/7z5U5A1hxqlqx83uQTGmQ1aaWPBQ8pqQvw9KRGvxxiDq9UF0N24fDlu0+XYksgkPHJg4A5h5aEQiw==");
#ifdef DEVELOP
passwords.emplace_back(f_devmode, "qXe5jAii7ntJ0VwmaZj9ujDKU69KLUfdGV3Rn2G7xMxOxKo37QpYZvo1E/PIul56ca+nDT6IggGfRqhA8gf6Gw==");
passwords.emplace_back(f_gaster, "GZPKJsa++Tt134yS3eBKdP+8vdAHB1thwK2ys6VDfFxcIRtABtM9j4qt8WULFrI+KxCSYMZ6K0mwt5BVzcvvuw==");

View file

@ -233,6 +233,10 @@ void init_routine(void)
if (allow)
OPTIONS_Sound[sopt_followhorns].status = IT_STRING | IT_CVAR;
OPTIONS_Sound[sopt_followhorns].tooltip = cv_tastelesstaunts.value
? "Press B to announce that you are pressing B."
: "Followers taunt your opponents when looking back at them.";
if (M_SecretUnlocked(SECRET_TIMEATTACK, true) ||
M_SecretUnlocked(SECRET_PRISONBREAK, true) ||
M_SecretUnlocked(SECRET_SPECIALATTACK, true))
@ -279,10 +283,10 @@ menuitem_t OPTIONS_Sound[] =
{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 round.",
{IT_STRING | IT_CVAR, "Character Voices", "Characters speak when interacting on the course.",
NULL, {.cvar = &cv_kartvoices}, 0, 0},
{IT_STRING | IT_CVAR, "Follower Horns", "How often to play follower horns in a round.",
{IT_STRING | IT_CVAR, "Follower Horns", NULL, // set in init_routine
NULL, {.cvar = &cv_karthorns}, 0, 0},
{IT_STRING | IT_CVAR, "Continuous Attack Music", "Keep music playing seamlessly when retrying in Attack modes.",