Unlock system: Imprement SECRET_MASTERMODE

- Locks Master difficulty in GP difficulty select.
- Remove SECRET_LEGACYBOXRUMMAGE at the same time, because that plan is long dead.
This commit is contained in:
toaster 2023-02-27 13:39:47 +00:00
parent 95a1cb7108
commit 102ada37ca
4 changed files with 29 additions and 7 deletions

View file

@ -2241,6 +2241,11 @@ void CV_AddValue(consvar_t *var, INT32 increment)
if (var->PossibleValue == kartspeed_cons_t)
max++; // Accommodate KARTSPEED_AUTO
}
else if (var->PossibleValue == gpdifficulty_cons_t
&& !M_SecretUnlocked(SECRET_MASTERMODE, false))
{
max = KARTSPEED_HARD+1;
}
}
#ifdef PARANOIA
if (currentindice == -1)

View file

@ -2280,10 +2280,10 @@ void readunlockable(MYFILE *f, INT32 num)
unlockables[num].type = SECRET_FOLLOWER;
else if (fastcmp(word2, "HARDSPEED"))
unlockables[num].type = SECRET_HARDSPEED;
else if (fastcmp(word2, "MASTERMODE"))
unlockables[num].type = SECRET_MASTERMODE;
else if (fastcmp(word2, "ENCORE"))
unlockables[num].type = SECRET_ENCORE;
else if (fastcmp(word2, "LEGACYBOXRUMMAGE"))
unlockables[num].type = SECRET_LEGACYBOXRUMMAGE;
else if (fastcmp(word2, "TIMEATTACK"))
unlockables[num].type = SECRET_TIMEATTACK;
else if (fastcmp(word2, "BREAKTHECAPSULES"))

View file

@ -4711,8 +4711,8 @@ static void M_DrawChallengeTile(INT16 i, INT16 j, INT32 x, INT32 y, boolean hili
case SECRET_CUP:
categoryid = '4';
break;
//case SECRET_MASTERBOTS:
case SECRET_HARDSPEED:
case SECRET_MASTERMODE:
case SECRET_ENCORE:
categoryid = '5';
break;
@ -4773,12 +4773,12 @@ static void M_DrawChallengeTile(INT16 i, INT16 j, INT32 x, INT32 y, boolean hili
break;
}
/*case SECRET_MASTERBOTS:
iconid = 4;
break;*/
case SECRET_HARDSPEED:
iconid = 3;
break;
case SECRET_MASTERMODE:
iconid = 4;
break;
case SECRET_ENCORE:
iconid = 5;
break;
@ -5026,6 +5026,16 @@ static void M_DrawChallengePreview(INT32 x, INT32 y)
specialmap = hardmapcache;
break;
}
case SECRET_MASTERMODE:
{
static UINT16 mastermapcache = NEXTMAP_INVALID;
if (mastermapcache > nummapheaders)
{
mastermapcache = G_RandMap(G_TOLFlag(GT_RACE), -1, 2, 0, false, NULL);
}
specialmap = mastermapcache;
break;
}
case SECRET_ALTTITLE:
{
x = 8;
@ -5066,6 +5076,13 @@ static void M_DrawChallengePreview(INT32 x, INT32 y)
W_CachePatchName(K_GetItemPatch(KITEM_ROCKETSNEAKER, false), PU_CACHE),
NULL);
}
else if (ref->type == SECRET_MASTERMODE)
{
V_DrawFixedPatch((x+40-25)<<FRACBITS, ((y+25-25)<<FRACBITS),
FRACUNIT, 0,
W_CachePatchName(K_GetItemPatch(KITEM_JAWZ, false), PU_CACHE),
NULL);
}
else
{
colormap = R_GetTranslationColormap(TC_DEFAULT, cv_playercolor[0].value, GTC_MENUCACHE);

View file

@ -119,8 +119,8 @@ typedef enum
// Difficulty restrictions
SECRET_HARDSPEED, // Permit Hard gamespeed
SECRET_MASTERMODE, // Permit Master Mode bots in GP
SECRET_ENCORE, // Permit Encore option
SECRET_LEGACYBOXRUMMAGE, // Permit the Legacy Box for record attack, etc
// Menu restrictions
SECRET_TIMEATTACK, // Permit Time attack