mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-12-20 06:53:00 +00:00
Merge branch 'tasteless-audio' into 'master'
Tasteless Taunts See merge request KartKrew/Kart!2215
This commit is contained in:
commit
1f97d70ff8
11 changed files with 45 additions and 32 deletions
|
|
@ -103,8 +103,6 @@ CV_PossibleValue_t gpdifficulty_cons_t[] = {
|
||||||
{0, NULL}
|
{0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
CV_PossibleValue_t kartvoices_cons_t[] = {{0, "Never"}, {1, "Tasteful"}, {2, "Meme"}, {0, NULL}};
|
|
||||||
|
|
||||||
// Filter consvars by EXECVERSION
|
// Filter consvars by EXECVERSION
|
||||||
// First implementation is 2 (1.0.2), so earlier configs default at 1 (1.0.0)
|
// 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
|
// 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;
|
max = KARTSPEED_HARD+1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (var->PossibleValue == kartvoices_cons_t
|
|
||||||
&& !M_SecretUnlocked(SECRET_MEMETAUNTS, true))
|
|
||||||
{
|
|
||||||
max--;
|
|
||||||
}
|
|
||||||
#ifdef PARANOIA
|
#ifdef PARANOIA
|
||||||
if (currentindice == -1)
|
if (currentindice == -1)
|
||||||
I_Error("CV_AddValue: current value %d not found in possible value\n",
|
I_Error("CV_AddValue: current value %d not found in possible value\n",
|
||||||
|
|
|
||||||
|
|
@ -234,7 +234,6 @@ extern CV_PossibleValue_t CV_TrueFalse[];
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
// the KARTSPEED and KARTGP were previously defined here, but moved to doomstat to avoid circular dependencies
|
// 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 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_cheats;
|
||||||
extern consvar_t cv_execversion;
|
extern consvar_t cv_execversion;
|
||||||
|
|
|
||||||
|
|
@ -515,9 +515,8 @@ consvar_t cv_httpsource = Server("http_source", "");
|
||||||
void JoinTimeout_OnChange(void);
|
void JoinTimeout_OnChange(void);
|
||||||
consvar_t cv_jointimeout = Server("jointimeout", "210").min_max(TICRATE/7, 60*TICRATE).onchange(JoinTimeout_OnChange);
|
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", "On").on_off();
|
||||||
consvar_t cv_karthorns = Server("taunthorns", "Tasteful").values(kartvoices_cons_t);
|
consvar_t cv_kartvoices = Server("tauntvoices", "On").on_off();
|
||||||
consvar_t cv_kartvoices = Server("tauntvoices", "Tasteful").values(kartvoices_cons_t);
|
|
||||||
|
|
||||||
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_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);
|
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_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_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.
|
// Dummy variables used solely in the menu system.
|
||||||
|
|
|
||||||
|
|
@ -101,6 +101,7 @@ extern consvar_t cv_battletest;
|
||||||
|
|
||||||
extern consvar_t cv_bighead;
|
extern consvar_t cv_bighead;
|
||||||
extern consvar_t cv_shittysigns;
|
extern consvar_t cv_shittysigns;
|
||||||
|
extern consvar_t cv_tastelesstaunts;
|
||||||
extern consvar_t cv_4thgear;
|
extern consvar_t cv_4thgear;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
|
||||||
|
|
@ -2451,8 +2451,6 @@ static INT16 parseunlockabletype(char *type)
|
||||||
return SECRET_SOUNDTEST;
|
return SECRET_SOUNDTEST;
|
||||||
else if (fastcmp(type, "ALTTITLE"))
|
else if (fastcmp(type, "ALTTITLE"))
|
||||||
return SECRET_ALTTITLE;
|
return SECRET_ALTTITLE;
|
||||||
else if (fastcmp(type, "MEMETAUNTS"))
|
|
||||||
return SECRET_MEMETAUNTS;
|
|
||||||
else if (fastcmp(type, "ITEMFINDER"))
|
else if (fastcmp(type, "ITEMFINDER"))
|
||||||
return SECRET_ITEMFINDER;
|
return SECRET_ITEMFINDER;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -757,8 +757,13 @@ void K_FollowerHornTaunt(player_t *taunter, player_t *victim, boolean mysticmelo
|
||||||
|
|
||||||
// More expensive checks
|
// More expensive checks
|
||||||
if (
|
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->mo) == true
|
||||||
|| P_MobjWasRemoved(taunter->follower) == 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);
|
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;
|
mobj_t *honk = taunter->follower->hprev;
|
||||||
const fixed_t desiredscale = (2*taunter->mo->scale)/3;
|
const fixed_t desiredscale = (2*taunter->mo->scale)/3;
|
||||||
|
|
|
||||||
22
src/k_kart.c
22
src/k_kart.c
|
|
@ -2720,8 +2720,10 @@ static void K_PlayGenericTastefulTaunt(mobj_t *source, sfxenum_t sfx_id)
|
||||||
boolean tasteful = (!source->player || !source->player->karthud[khud_tauntvoices]);
|
boolean tasteful = (!source->player || !source->player->karthud[khud_tauntvoices]);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
cv_kartvoices.value
|
(
|
||||||
&& (tasteful || cv_kartvoices.value == 2)
|
(cv_kartvoices.value && tasteful)
|
||||||
|
|| cv_tastelesstaunts.value
|
||||||
|
)
|
||||||
&& R_CanShowSkinInDemo(skinid)
|
&& R_CanShowSkinInDemo(skinid)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
@ -2757,8 +2759,10 @@ void K_PlayOvertakeSound(mobj_t *source)
|
||||||
boolean tasteful = (!source->player || !source->player->karthud[khud_voices]);
|
boolean tasteful = (!source->player || !source->player->karthud[khud_voices]);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
cv_kartvoices.value
|
(
|
||||||
&& (tasteful || cv_kartvoices.value == 2)
|
(cv_kartvoices.value && tasteful)
|
||||||
|
|| cv_tastelesstaunts.value
|
||||||
|
)
|
||||||
&& R_CanShowSkinInDemo(skinid)
|
&& R_CanShowSkinInDemo(skinid)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
@ -2785,7 +2789,7 @@ static void K_PlayGenericCombatSound(mobj_t *source, mobj_t *other, sfxenum_t sf
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
cv_kartvoices.value
|
(cv_kartvoices.value || cv_tastelesstaunts.value)
|
||||||
&& R_CanShowSkinInDemo(skinid)
|
&& R_CanShowSkinInDemo(skinid)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
@ -2847,7 +2851,7 @@ void K_PlayPowerGloatSound(mobj_t *source)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
cv_kartvoices.value
|
(cv_kartvoices.value || cv_tastelesstaunts.value)
|
||||||
&& R_CanShowSkinInDemo(skinid)
|
&& R_CanShowSkinInDemo(skinid)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
|
@ -2865,7 +2869,7 @@ void P_PlayVictorySound(mobj_t *source)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
cv_kartvoices.value
|
(cv_kartvoices.value || cv_tastelesstaunts.value)
|
||||||
&& R_CanShowSkinInDemo(skinid)
|
&& 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,
|
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
|
K_RegularVoiceTimers(player); // and you can't for a bit
|
||||||
}
|
}
|
||||||
else // Otherwise,
|
else // Otherwise,
|
||||||
{
|
{
|
||||||
K_PlayOvertakeSound(player->mo); // Say "YOU'RE TOO SLOW!"
|
K_PlayOvertakeSound(player->mo); // Say "YOU'RE TOO SLOW!"
|
||||||
player->oldposition = player->position; // Restore the old position,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
player->oldposition = player->position;
|
||||||
|
|
||||||
// Prevent ring misfire
|
// Prevent ring misfire
|
||||||
if (!(cmd->buttons & BT_ATTACK))
|
if (!(cmd->buttons & BT_ATTACK))
|
||||||
|
|
|
||||||
|
|
@ -6612,7 +6612,6 @@ static void M_DrawChallengeTile(INT16 i, INT16 j, INT32 x, INT32 y, UINT8 *flash
|
||||||
case SECRET_EGGTV:
|
case SECRET_EGGTV:
|
||||||
case SECRET_SOUNDTEST:
|
case SECRET_SOUNDTEST:
|
||||||
case SECRET_ALTTITLE:
|
case SECRET_ALTTITLE:
|
||||||
case SECRET_MEMETAUNTS:
|
|
||||||
categoryid = '6';
|
categoryid = '6';
|
||||||
break;
|
break;
|
||||||
case SECRET_TIMEATTACK:
|
case SECRET_TIMEATTACK:
|
||||||
|
|
@ -6709,9 +6708,6 @@ static void M_DrawChallengeTile(INT16 i, INT16 j, INT32 x, INT32 y, UINT8 *flash
|
||||||
case SECRET_ALTTITLE:
|
case SECRET_ALTTITLE:
|
||||||
iconid = 6;
|
iconid = 6;
|
||||||
break;
|
break;
|
||||||
case SECRET_MEMETAUNTS:
|
|
||||||
iconid = 13;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SECRET_TIMEATTACK:
|
case SECRET_TIMEATTACK:
|
||||||
iconid = 7;
|
iconid = 7;
|
||||||
|
|
|
||||||
|
|
@ -261,7 +261,6 @@ typedef enum
|
||||||
SECRET_EGGTV, // Permit replay playback menu
|
SECRET_EGGTV, // Permit replay playback menu
|
||||||
SECRET_SOUNDTEST, // Permit Sound Test
|
SECRET_SOUNDTEST, // Permit Sound Test
|
||||||
SECRET_ALTTITLE, // Permit alternate titlescreen
|
SECRET_ALTTITLE, // Permit alternate titlescreen
|
||||||
SECRET_MEMETAUNTS, // Permit "Meme" for kartvoices_cons_t
|
|
||||||
|
|
||||||
// Assist restrictions
|
// Assist restrictions
|
||||||
SECRET_ITEMFINDER, // Permit locating in-level secrets
|
SECRET_ITEMFINDER, // Permit locating in-level secrets
|
||||||
|
|
|
||||||
14
src/m_pw.cpp
14
src/m_pw.cpp
|
|
@ -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()
|
void f_4thgear()
|
||||||
{
|
{
|
||||||
CV_SetValue(&cv_4thgear, !cv_4thgear.value);
|
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_bighead, "V+YkwthNUePKS7zs5uB90VwN6Jeqgl+1r663U5zSGOEIxAO6BoWipzZoxa5H//LM+5Ag9GIGRnEcLbU21hjGfQ==");
|
||||||
passwords.emplace_back(f_4thgear, "zRMhR+s27VTYE0jgFf2l+PX51N3qJPvZ3oWuM/71oUaKY5zyQ2y7WIrIb464MFWn4IsK2P5rShsR9MotC/9ojQ==");
|
passwords.emplace_back(f_4thgear, "zRMhR+s27VTYE0jgFf2l+PX51N3qJPvZ3oWuM/71oUaKY5zyQ2y7WIrIb464MFWn4IsK2P5rShsR9MotC/9ojQ==");
|
||||||
passwords.emplace_back(f_shittysigns, "fdqz0cQdVKfS4zgN4usUz75+5AhYdDPsrl61H7sIEKHoaEUHPOfcful0jEkVvrV/rpELE0/3srRpxmJYpQofmA==");
|
passwords.emplace_back(f_shittysigns, "fdqz0cQdVKfS4zgN4usUz75+5AhYdDPsrl61H7sIEKHoaEUHPOfcful0jEkVvrV/rpELE0/3srRpxmJYpQofmA==");
|
||||||
|
passwords.emplace_back(f_tastelesstaunts, "4QfCuCG0/7z5U5A1hxqlqx83uQTGmQ1aaWPBQ8pqQvw9KRGvxxiDq9UF0N24fDlu0+XYksgkPHJg4A5h5aEQiw==");
|
||||||
#ifdef DEVELOP
|
#ifdef DEVELOP
|
||||||
passwords.emplace_back(f_devmode, "qXe5jAii7ntJ0VwmaZj9ujDKU69KLUfdGV3Rn2G7xMxOxKo37QpYZvo1E/PIul56ca+nDT6IggGfRqhA8gf6Gw==");
|
passwords.emplace_back(f_devmode, "qXe5jAii7ntJ0VwmaZj9ujDKU69KLUfdGV3Rn2G7xMxOxKo37QpYZvo1E/PIul56ca+nDT6IggGfRqhA8gf6Gw==");
|
||||||
passwords.emplace_back(f_gaster, "GZPKJsa++Tt134yS3eBKdP+8vdAHB1thwK2ys6VDfFxcIRtABtM9j4qt8WULFrI+KxCSYMZ6K0mwt5BVzcvvuw==");
|
passwords.emplace_back(f_gaster, "GZPKJsa++Tt134yS3eBKdP+8vdAHB1thwK2ys6VDfFxcIRtABtM9j4qt8WULFrI+KxCSYMZ6K0mwt5BVzcvvuw==");
|
||||||
|
|
|
||||||
|
|
@ -233,6 +233,10 @@ void init_routine(void)
|
||||||
if (allow)
|
if (allow)
|
||||||
OPTIONS_Sound[sopt_followhorns].status = IT_STRING | IT_CVAR;
|
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) ||
|
if (M_SecretUnlocked(SECRET_TIMEATTACK, true) ||
|
||||||
M_SecretUnlocked(SECRET_PRISONBREAK, true) ||
|
M_SecretUnlocked(SECRET_PRISONBREAK, true) ||
|
||||||
M_SecretUnlocked(SECRET_SPECIALATTACK, 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.",
|
{IT_STRING | IT_CVAR, "Chat Notifications", "Play a sound effect when chat messages appear.",
|
||||||
NULL, {.cvar = &cv_chatnotifications}, 0, 0},
|
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},
|
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},
|
NULL, {.cvar = &cv_karthorns}, 0, 0},
|
||||||
|
|
||||||
{IT_STRING | IT_CVAR, "Continuous Attack Music", "Keep music playing seamlessly when retrying in Attack modes.",
|
{IT_STRING | IT_CVAR, "Continuous Attack Music", "Keep music playing seamlessly when retrying in Attack modes.",
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue