Some unlockable stuff

- Secrets renamed to Extras
- Extras leads to the checklist instead of another menu
- Credits & Sound Test are on the Options menu now
- New title screen cheat for unlocking everything ("banana", or "← ↑ → →
↑ ← ↓ → Enter")
This commit is contained in:
TehRealSalt 2018-03-01 19:00:16 -05:00
parent b0be1c7bbf
commit 1a6730fb72
3 changed files with 40 additions and 31 deletions

View file

@ -74,19 +74,20 @@ typedef struct
static UINT8 cheatf_warp(void) static UINT8 cheatf_warp(void)
{ {
if (modifiedgame) UINT8 i;
return 0;
/*if (modifiedgame)
return 0;*/
if (menuactive && currentMenu != &MainDef) if (menuactive && currentMenu != &MainDef)
return 0; // Only on the main menu! return 0; // Only on the main menu!
S_StartSound(0, sfx_itemup); S_StartSound(0, sfx_kc42);
// Temporarily unlock stuff. // Temporarily unlock EVERYTHING.
G_SetGameModified(false); G_SetGameModified(false);
unlockables[1].unlocked = true; // credits for (i = 0; i < MAXUNLOCKABLES; i++)
unlockables[2].unlocked = true; // sound test unlockables[i].unlocked = true;
//unlockables[16].unlocked = true; // level select
// Refresh secrets menu existing. // Refresh secrets menu existing.
M_ClearMenus(true); M_ClearMenus(true);
@ -135,14 +136,19 @@ static UINT8 cheatf_devmode(void)
static cheatseq_t cheat_warp = { static cheatseq_t cheat_warp = {
0, cheatf_warp, 0, cheatf_warp,
{ SCRAMBLE('r'), SCRAMBLE('e'), SCRAMBLE('d'), SCRAMBLE('x'), SCRAMBLE('v'), SCRAMBLE('i'), 0xff } //{ SCRAMBLE('r'), SCRAMBLE('e'), SCRAMBLE('d'), SCRAMBLE('x'), SCRAMBLE('v'), SCRAMBLE('i'), 0xff }
{ SCRAMBLE('b'), SCRAMBLE('a'), SCRAMBLE('n'), SCRAMBLE('a'), SCRAMBLE('n'), SCRAMBLE('a'), 0xff }
}; };
static cheatseq_t cheat_warp_joy = { static cheatseq_t cheat_warp_joy = {
0, cheatf_warp, 0, cheatf_warp,
{ SCRAMBLE(KEY_LEFTARROW), SCRAMBLE(KEY_LEFTARROW), SCRAMBLE(KEY_UPARROW), /*{ SCRAMBLE(KEY_LEFTARROW), SCRAMBLE(KEY_LEFTARROW), SCRAMBLE(KEY_UPARROW),
SCRAMBLE(KEY_RIGHTARROW), SCRAMBLE(KEY_RIGHTARROW), SCRAMBLE(KEY_UPARROW), SCRAMBLE(KEY_RIGHTARROW), SCRAMBLE(KEY_RIGHTARROW), SCRAMBLE(KEY_UPARROW),
SCRAMBLE(KEY_LEFTARROW), SCRAMBLE(KEY_UPARROW), SCRAMBLE(KEY_LEFTARROW), SCRAMBLE(KEY_UPARROW),
SCRAMBLE(KEY_ENTER), 0xff }*/
{ SCRAMBLE(KEY_LEFTARROW), SCRAMBLE(KEY_UPARROW), SCRAMBLE(KEY_RIGHTARROW),
SCRAMBLE(KEY_RIGHTARROW), SCRAMBLE(KEY_UPARROW), SCRAMBLE(KEY_LEFTARROW),
SCRAMBLE(KEY_DOWNARROW), SCRAMBLE(KEY_RIGHTARROW),
SCRAMBLE(KEY_ENTER), 0xff } SCRAMBLE(KEY_ENTER), 0xff }
}; };

View file

@ -207,8 +207,8 @@ menu_t MessageDef;
menu_t SPauseDef; menu_t SPauseDef;
// Sky Room // Sky Room
static void M_CustomLevelSelect(INT32 choice); //static void M_CustomLevelSelect(INT32 choice);
static void M_CustomWarp(INT32 choice); //static void M_CustomWarp(INT32 choice);
FUNCNORETURN static ATTRNORETURN void M_UltimateCheat(INT32 choice); FUNCNORETURN static ATTRNORETURN void M_UltimateCheat(INT32 choice);
static void M_LoadGameLevelSelect(INT32 choice); static void M_LoadGameLevelSelect(INT32 choice);
static void M_GetAllEmeralds(INT32 choice); static void M_GetAllEmeralds(INT32 choice);
@ -231,7 +231,7 @@ static void M_ConfirmSpectate(INT32 choice);
static void M_ConfirmEnterGame(INT32 choice); static void M_ConfirmEnterGame(INT32 choice);
static void M_ConfirmTeamScramble(INT32 choice); static void M_ConfirmTeamScramble(INT32 choice);
static void M_ConfirmTeamChange(INT32 choice); static void M_ConfirmTeamChange(INT32 choice);
static void M_SecretsMenu(INT32 choice); //static void M_SecretsMenu(INT32 choice);
static void M_SetupChoosePlayer(INT32 choice); static void M_SetupChoosePlayer(INT32 choice);
static void M_QuitSRB2(INT32 choice); static void M_QuitSRB2(INT32 choice);
menu_t SP_MainDef, MP_MainDef, OP_MainDef; menu_t SP_MainDef, MP_MainDef, OP_MainDef;
@ -475,7 +475,7 @@ static consvar_t cv_dummystaff = {"dummystaff", "0", CV_HIDEN|CV_CALL, dummystaf
// --------- // ---------
static menuitem_t MainMenu[] = static menuitem_t MainMenu[] =
{ {
{IT_CALL |IT_STRING, NULL, "Secrets", M_SecretsMenu, 84}, {IT_SUBMENU|IT_STRING, NULL, "Extras", &SR_UnlockChecklistDef, 84},
{IT_CALL |IT_STRING, NULL, "1 Player", M_SinglePlayerMenu, 92}, {IT_CALL |IT_STRING, NULL, "1 Player", M_SinglePlayerMenu, 92},
{IT_SUBMENU|IT_STRING, NULL, "Multiplayer", &MP_MainDef, 100}, {IT_SUBMENU|IT_STRING, NULL, "Multiplayer", &MP_MainDef, 100},
{IT_CALL |IT_STRING, NULL, "Options", M_Options, 108}, {IT_CALL |IT_STRING, NULL, "Options", M_Options, 108},
@ -1040,6 +1040,9 @@ static menuitem_t OP_MainMenu[] =
{IT_SUBMENU | IT_STRING, NULL, "Game Options...", &OP_GameOptionsDef, 70}, {IT_SUBMENU | IT_STRING, NULL, "Game Options...", &OP_GameOptionsDef, 70},
{IT_SUBMENU | IT_STRING, NULL, "Server Options...", &OP_ServerOptionsDef, 80}, {IT_SUBMENU | IT_STRING, NULL, "Server Options...", &OP_ServerOptionsDef, 80},
{IT_CALL | IT_STRING, NULL, "Play Credits", M_Credits, 90},
{IT_KEYHANDLER | IT_STRING, NULL, "Sound Test", M_HandleSoundTest, 100},
}; };
static menuitem_t OP_ControlsMenu[] = static menuitem_t OP_ControlsMenu[] =
@ -2692,7 +2695,7 @@ void M_StartControlPanel(void)
if (!Playing()) if (!Playing())
{ {
// Secret menu! // Secret menu!
MainMenu[secrets].status = (M_AnySecretUnlocked()) ? (IT_STRING | IT_CALL) : (IT_DISABLED); //MainMenu[secrets].status = (M_AnySecretUnlocked()) ? (IT_STRING | IT_CALL) : (IT_DISABLED);
currentMenu = &MainDef; currentMenu = &MainDef;
itemOn = singleplr; itemOn = singleplr;
@ -4403,7 +4406,7 @@ static void M_HandleSoundTest(INT32 choice)
} }
// Entering secrets menu // Entering secrets menu
static void M_SecretsMenu(INT32 choice) /*static void M_SecretsMenu(INT32 choice)
{ {
INT32 i, j, ul; INT32 i, j, ul;
UINT8 done[MAXUNLOCKABLES]; UINT8 done[MAXUNLOCKABLES];
@ -4478,7 +4481,7 @@ static void M_SecretsMenu(INT32 choice)
} }
M_SetupNextMenu(&SR_MainDef); M_SetupNextMenu(&SR_MainDef);
} }*/
// ================== // ==================
// NEW GAME FUNCTIONS // NEW GAME FUNCTIONS
@ -4496,14 +4499,14 @@ static void M_NewGame(void)
M_SetupChoosePlayer(0); M_SetupChoosePlayer(0);
} }
static void M_CustomWarp(INT32 choice) /*static void M_CustomWarp(INT32 choice)
{ {
INT32 ul = skyRoomMenuTranslations[choice-1]; INT32 ul = skyRoomMenuTranslations[choice-1];
startmap = (INT16)(unlockables[ul].variable); startmap = (INT16)(unlockables[ul].variable);
M_SetupChoosePlayer(0); M_SetupChoosePlayer(0);
} }*/
static void M_Credits(INT32 choice) static void M_Credits(INT32 choice)
{ {
@ -4513,7 +4516,7 @@ static void M_Credits(INT32 choice)
F_StartCredits(); F_StartCredits();
} }
static void M_CustomLevelSelect(INT32 choice) /*static void M_CustomLevelSelect(INT32 choice)
{ {
INT32 ul = skyRoomMenuTranslations[choice-1]; INT32 ul = skyRoomMenuTranslations[choice-1];
@ -4528,7 +4531,7 @@ static void M_CustomLevelSelect(INT32 choice)
M_PrepareLevelSelect(); M_PrepareLevelSelect();
M_SetupNextMenu(&SR_LevelSelectDef); M_SetupNextMenu(&SR_LevelSelectDef);
} }*/
// ================== // ==================
// SINGLE PLAYER MENU // SINGLE PLAYER MENU

View file

@ -583,7 +583,7 @@ typedef enum
sfx_kc2c, sfx_kc2c,
sfx_kc2d, sfx_kc2d,
sfx_kc2e, sfx_kc2e,
sfx_kc2f, sfx_kc2f, // Pogo Spring
sfx_kc30, sfx_kc30,
sfx_kc31, sfx_kc31,
sfx_kc32, sfx_kc32,
@ -593,7 +593,7 @@ typedef enum
sfx_kc36, sfx_kc36,
sfx_kc37, sfx_kc37,
sfx_kc38, sfx_kc38,
sfx_kc39, sfx_kc39, // Voting roulette
sfx_kc3a, sfx_kc3a,
sfx_kc3b, sfx_kc3b,
sfx_kc3c, sfx_kc3c,
@ -602,15 +602,15 @@ typedef enum
sfx_kc3f, sfx_kc3f,
sfx_kc40, sfx_kc40,
sfx_kc41, sfx_kc41,
sfx_kc42, sfx_kc42, // Unlock everything cheat
sfx_kc43, sfx_kc43,
sfx_kc44, sfx_kc44,
sfx_kc45, sfx_kc45,
sfx_kc46, sfx_kc46,
sfx_kc47, sfx_kc47,
sfx_kc48, sfx_kc48, // Vote picked
sfx_kc49, sfx_kc49,
sfx_kc4a, sfx_kc4a, // Voting beep
sfx_kc4b, sfx_kc4b,
sfx_kc4c, sfx_kc4c,
sfx_kc4d, sfx_kc4d,
@ -625,8 +625,8 @@ typedef enum
sfx_kc56, sfx_kc56,
sfx_kc57, sfx_kc57,
sfx_kc58, sfx_kc58,
sfx_kc59, sfx_kc59, // Shrink
sfx_kc5a, sfx_kc5a, // Grow
sfx_kc5b, sfx_kc5b,
sfx_kc5c, sfx_kc5c,
sfx_kc5d, sfx_kc5d,