From 1ec5b7489266d7d5eb8ad53399524c36f60ef492 Mon Sep 17 00:00:00 2001 From: toaster Date: Wed, 28 Jun 2023 19:31:40 +0100 Subject: [PATCH] Implement SECRET_MEMETAUNTS Permits "Meme" player taunt voice and "Meme" follower horn options --- src/command.c | 7 +++++++ src/command.h | 1 + src/d_netcmd.c | 1 - src/deh_soc.c | 2 ++ src/k_menudraw.c | 10 +++++++--- src/m_cond.h | 1 + 6 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/command.c b/src/command.c index 01a34f3cb..7184ace42 100644 --- a/src/command.c +++ b/src/command.c @@ -110,6 +110,8 @@ 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 @@ -2260,6 +2262,11 @@ 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", diff --git a/src/command.h b/src/command.h index 8ad27bfbc..b3bae86a7 100644 --- a/src/command.h +++ b/src/command.h @@ -176,6 +176,7 @@ extern CV_PossibleValue_t CV_Natural[]; // 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_execversion; diff --git a/src/d_netcmd.c b/src/d_netcmd.c index f4db18463..b58334da6 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -410,7 +410,6 @@ static CV_PossibleValue_t kartencore_cons_t[] = {{-1, "Auto"}, {0, "Off"}, {1, " consvar_t cv_kartencore = CVAR_INIT ("encore", "Auto", CV_NETVAR|CV_CALL|CV_NOINIT, kartencore_cons_t, KartEncore_OnChange); static CV_PossibleValue_t kartspeedometer_cons_t[] = {{0, "Off"}, {1, "Percentage"}, {2, "Kilometers"}, {3, "Miles"}, {4, "Fracunits"}, {0, NULL}}; consvar_t cv_kartspeedometer = CVAR_INIT ("speedometer", "Percentage", CV_SAVE, kartspeedometer_cons_t, NULL); // use tics in display -static CV_PossibleValue_t kartvoices_cons_t[] = {{0, "Never"}, {1, "Tasteful"}, {2, "Meme"}, {0, NULL}}; consvar_t cv_kartvoices = CVAR_INIT ("tauntvoices", "Tasteful", CV_SAVE, kartvoices_cons_t, NULL); consvar_t cv_karthorns = CVAR_INIT ("taunthorns", "Tasteful", CV_SAVE, kartvoices_cons_t, NULL); diff --git a/src/deh_soc.c b/src/deh_soc.c index cbaf5da58..48f4f6828 100644 --- a/src/deh_soc.c +++ b/src/deh_soc.c @@ -2364,6 +2364,8 @@ void readunlockable(MYFILE *f, INT32 num) unlockables[num].type = SECRET_SOUNDTEST; else if (fastcmp(word2, "ALTTITLE")) unlockables[num].type = SECRET_ALTTITLE; + else if (fastcmp(word2, "MEMETAUNTS")) + unlockables[num].type = SECRET_MEMETAUNTS; else if (fastcmp(word2, "ITEMFINDER")) unlockables[num].type = SECRET_ITEMFINDER; else diff --git a/src/k_menudraw.c b/src/k_menudraw.c index 98696d5cc..e651336cd 100644 --- a/src/k_menudraw.c +++ b/src/k_menudraw.c @@ -5081,8 +5081,9 @@ static void M_DrawChallengeTile(INT16 i, INT16 j, INT32 x, INT32 y, boolean hili case SECRET_ONLINE: case SECRET_ADDONS: case SECRET_EGGTV: - case SECRET_ALTTITLE: case SECRET_SOUNDTEST: + case SECRET_ALTTITLE: + case SECRET_MEMETAUNTS: categoryid = '6'; break; case SECRET_TIMEATTACK: @@ -5169,11 +5170,14 @@ static void M_DrawChallengeTile(INT16 i, INT16 j, INT32 x, INT32 y, boolean hili case SECRET_EGGTV: iconid = 11; break; + case SECRET_SOUNDTEST: + iconid = 1; + break; case SECRET_ALTTITLE: iconid = 6; break; - case SECRET_SOUNDTEST: - iconid = 1; + case SECRET_MEMETAUNTS: + iconid = 13; break; case SECRET_TIMEATTACK: diff --git a/src/m_cond.h b/src/m_cond.h index 4a2a93ba0..6ca875ab5 100644 --- a/src/m_cond.h +++ b/src/m_cond.h @@ -203,6 +203,7 @@ 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