Merge branch 'furybike' into 'master'

Fury Bike

See merge request KartKrew/Kart!2273
This commit is contained in:
Oni 2024-04-12 03:41:24 +00:00
commit a7951fc41c
5 changed files with 22 additions and 8 deletions

View file

@ -147,6 +147,7 @@ boolean modifiedgame = false; // Set if homebrew PWAD stuff has been added.
boolean majormods = false; // Set if Lua/Gameplay SOC/replacement map has been added. boolean majormods = false; // Set if Lua/Gameplay SOC/replacement map has been added.
boolean savemoddata = false; boolean savemoddata = false;
boolean usedCheats = false; // Set when a "cheats on" is ever used. boolean usedCheats = false; // Set when a "cheats on" is ever used.
boolean usedTourney = false; // Entered the "Tournament Mode" cheat.
UINT8 paused; UINT8 paused;
UINT8 modeattacking = ATTACKING_NONE; UINT8 modeattacking = ATTACKING_NONE;
boolean imcontinuing = false; boolean imcontinuing = false;

View file

@ -84,6 +84,8 @@ extern tic_t timeinmap; // Ticker for time spent in level (used for levelcard di
extern INT32 pausedelay; extern INT32 pausedelay;
extern boolean pausebreakkey; extern boolean pausebreakkey;
extern boolean usedTourney;
extern boolean promptactive; extern boolean promptactive;
extern consvar_t cv_tutorialprompt; extern consvar_t cv_tutorialprompt;

View file

@ -3023,6 +3023,11 @@ char *M_BuildConditionSetString(UINT16 unlockid)
} }
} }
if (usedTourney && unlockables[unlockid].conditionset == 55 && gamedata->unlocked[unlockid] == false)
{
strcpy(message, "Power shrouds this challenge in darkness... (Return here without Tournament Mode!)\0");
}
// Finally, do a clean wordwrap! // Finally, do a clean wordwrap!
return V_ScaledWordWrap( return V_ScaledWordWrap(
DESCRIPTIONWIDTH << FRACBITS, DESCRIPTIONWIDTH << FRACBITS,

View file

@ -110,6 +110,8 @@ void f_tournament()
{ {
if (!unlockables[i].conditionset) if (!unlockables[i].conditionset)
continue; continue;
if (unlockables[i].conditionset == 55)
continue;
if (gamedata->unlocked[i]) if (gamedata->unlocked[i])
continue; continue;
@ -146,10 +148,12 @@ void f_tournament()
S_StartSound(0, sfx_kc42); S_StartSound(0, sfx_kc42);
text = M_GetText( text = M_GetText(
"All challenges temporarily unlocked.\n" "Unlocked\x83 almost\x80 everything.\n"
"Saving is disabled - the game will\n" "Saving is disabled - the game will\n"
"return to normal on next launch.\n" "return to normal on next launch.\n"
); );
usedTourney = true;
} }
else else
{ {
@ -158,18 +162,20 @@ void f_tournament()
if (usedCheats) if (usedCheats)
{ {
text = M_GetText( text = M_GetText(
"This is the correct password, but\n" "This is the correct password,\n"
"you already have every challenge\n" "but there's nothing to unlock\n"
"unlocked, so nothing has changed.\n" "right now -- nothing has changed.\n"
); );
} }
else else
{ {
text = M_GetText( text = M_GetText(
"This is the correct password, but\n" "This is the correct password, but\n"
"you already have every challenge\n" "there's nothing to unlock right\n"
"unlocked, so saving is still allowed!\n" "now, so saving is still allowed!\n"
); );
usedTourney = true;
} }
} }
@ -308,7 +314,7 @@ try_password_e M_TryPassword(const char *password, boolean conditions)
add_job(pw.hash_.data(), &pw); add_job(pw.hash_.data(), &pw);
// Only consider challenges passwords as needed. // Only consider challenges passwords as needed.
if (conditions) if (conditions && !usedTourney)
iter_conditions([&](condition_t* cn) { add_job((const UINT8*)cn->stringvar, cn); }); iter_conditions([&](condition_t* cn) { add_job((const UINT8*)cn->stringvar, cn); });
try_password_e return_code = M_PW_INVALID; try_password_e return_code = M_PW_INVALID;

View file

@ -847,7 +847,7 @@ boolean M_ChallengesInputs(INT32 ch)
{ {
M_ChallengesTutorial(CCTUTORIAL_MAJORSKIP); M_ChallengesTutorial(CCTUTORIAL_MAJORSKIP);
} }
else if (M_CanKeyHiliTile()) else if (M_CanKeyHiliTile() && !usedTourney)
{ {
challengesmenu.chaokeyhold = 1; challengesmenu.chaokeyhold = 1;
} }