Add level platter to ALL menus, clear out ALL the old nextmap code

and delete the unused custom preset stuff because the cvars just happened to
call Nextmap_OnChange
This commit is contained in:
GenericHeroGuy 2025-12-15 22:11:31 +01:00
parent 328aca3d28
commit 47f0289a52
7 changed files with 334 additions and 679 deletions

View file

@ -93,7 +93,7 @@
#define ASSET_HASH_TEXTURES_KART 0xb4211b2f32b6a291
#define ASSET_HASH_CHARS_KART 0x1e68a3e01aa5c68b
#define ASSET_HASH_MAPS_KART 0x38558ed00da41ce9
#define ASSET_HASH_MAIN_PK3 0xd4c96d40fb968918
#define ASSET_HASH_MAIN_PK3 0x948957d6e537751a
#define ASSET_HASH_MAPPATCH_PK3 0x6ad99efcfaafb70f
#define ASSET_HASH_BONUSCHARS_KART 0x60e6f13d822a7461
#ifdef USE_PATCH_FILE

View file

@ -1883,14 +1883,6 @@ static struct { const char *name; consvar_t *var; } HIDDENVARS[] = {
{ "DUMMYTEAM", &cv_dummyteam },
{ "DUMMYSPECTATE", &cv_dummyspectate },
{ "DUMMYSCRAMBLE", &cv_dummyscramble },
{ "DUMMYATTACKINGRINGS", &cv_dummyattackingrings },
{ "DUMMYATTACKINGSTACKING", &cv_dummyattackingstacking },
{ "DUMMYATTACKINGCHAINING", &cv_dummyattackingchaining },
{ "DUMMYATTACKINGSLIPDASH", &cv_dummyattackingslipdash },
{ "DUMMYATTACKINGPURPLEDRIFT", &cv_dummyattackingpurpledrift },
{ "DUMMYATTACKINGSLOPEBOOST", &cv_dummyattackingslopeboost },
{ "DUMMYATTACKINGAIRDROP", &cv_dummyattackingairdrop },
{ "DUMMYATTACKINGBUMPSPARK", &cv_dummyattackingbumpspark },
{ "DUMMYSTAFF", &cv_dummystaff },
{ "DUMMYMULTIPLAYER", &cv_dummymultiplayer },
{ "DUMMYIP", &cv_dummyip },

View file

@ -765,7 +765,6 @@ struct menu_routine_s const MENU_ROUTINES[] = {
{ "CONNECTIP", &MR_ConnectIP },
{ "CONNECTLASTSERVER", &MR_ConnectLastServer },
{ "QUITMULTIPLAYERMENU", &MR_QuitMultiPlayerMenu },
{ "STARTSERVERMENU", &MR_StartServerMenu },
{ "STARTSERVER", &MR_StartServer },
{ "CONNECTMENUMODCHECKS", &MR_ConnectMenuModChecks },
{ "CANCELCONNECT", &MR_CancelConnect },
@ -793,7 +792,6 @@ struct menu_routine_s const MENU_ROUTINES[] = {
{ "MODEATTACKENDGAME", &MR_ModeAttackEndGame },
{ "RETRY", &MR_Retry },
{ "ENDGAME", &MR_EndGame },
{ "MAPCHANGE", &MR_MapChange },
{ "SETUPMULTIPLAYER", &MR_SetupMultiPlayer },
{ "CONFIRMSPECTATE", &MR_ConfirmSpectate },
{ "CONFIRMENTERGAME", &MR_ConfirmEnterGame },
@ -825,7 +823,9 @@ struct menu_routine_s const MENU_ROUTINES[] = {
{ "CAMERASETUP", &MR_CameraSetup },
// { "BARCSS", &MR_HandleBarCss },
{ "HANDLESETUPMULTIPLAYERMENU", &MR_HandleSetupMultiPlayerMenu },
{ "PREPARELEVELPLATTER", &MR_PrepareLevelPlatter },
{ "HANDLELEVELPLATTER", &MR_HandleLevelPlatter },
{ "LEVELPLATTERRANDOM", &MR_LevelPlatterRandom },
#ifdef HAVE_DISCORDRPC
{ "HANDLEDISCORDREQUESTS", &MR_HandleDiscordRequests },
#endif
@ -1051,6 +1051,14 @@ struct int_const_s const INT_CONST[] = {
{"LF2_NOTIMEATTACK",LF2_NOTIMEATTACK},
{"LF2_VISITNEEDED",LF2_VISITNEEDED},
// Level list modes
{"LLM_CREATESERVER",LLM_CREATESERVER},
//{"LLM_LEVELSELECT",LLM_LEVELSELECT},
{"LLM_TIMEATTACK",LLM_TIMEATTACK},
{"LLM_ITEMBREAKER",LLM_ITEMBREAKER},
{"LLM_BOSS",LLM_BOSS},
{"LLM__MAX",LLM__MAX},
// Emeralds
{"EMERALD1",EMERALD1},
{"EMERALD2",EMERALD2},

View file

@ -7,8 +7,7 @@ _(PLAYBACK)
_(SP_MAIN)
_(SP_GRANDPRIX)
_(SP_TIMEATTACK)
_(SP_PRES)
_(SP_MODS)
_(SP_PRESETS)
_(SP_GUESTREPLAY)
_(SP_REPLAY)
_(SP_GHOST)

File diff suppressed because it is too large Load diff

View file

@ -115,11 +115,21 @@ M_waiting_mode_t;
extern M_waiting_mode_t m_waiting_mode;
typedef enum
{
LLM_CREATESERVER,
//LLM_LEVELSELECT,
LLM_TIMEATTACK,
LLM_ITEMBREAKER,
LLM_BOSS,
LLM__MAX,
} levellistmode_e;
// Called by linux_x/i_video_xshm.c
void M_QuitResponse(INT32 ch);
// Determines whether to show a level in the list (platter version does not need to be exposed)
boolean M_CanShowLevelInList(INT32 mapnum, INT32 gt);
boolean M_CanShowLevelInList(INT32 mapnum);
typedef enum
{
@ -274,7 +284,6 @@ INT32 MR_ReplayStaff(INT32 choice);
INT32 MR_ConnectIP(INT32 choice);
INT32 MR_ConnectLastServer(INT32 choice);
INT32 MR_QuitMultiPlayerMenu(INT32 choice);
INT32 MR_StartServerMenu(INT32 choice);
INT32 MR_StartServer(INT32 choice);
INT32 MR_ConnectMenuModChecks(INT32 choice);
INT32 MR_CancelConnect(INT32 choice);
@ -301,7 +310,6 @@ INT32 MR_GoBack(INT32 choice);
INT32 MR_ModeAttackEndGame(INT32 choice);
INT32 MR_Retry(INT32 choice);
INT32 MR_EndGame(INT32 choice);
INT32 MR_MapChange(INT32 choice);
INT32 MR_SetupMultiPlayer(INT32 choice);
INT32 MR_HandleSetupMultiPlayerMenu(INT32 choice);
INT32 MR_ConfirmSpectate(INT32 choice);
@ -331,7 +339,9 @@ INT32 MR_EnterViewServer(INT32 choice);
INT32 MR_QuitViewServer(INT32 choice);
INT32 MR_HandleViewServer(INT32 choice);
INT32 MR_CameraSetup(INT32 arg);
INT32 MR_PrepareLevelPlatter(INT32 choice);
INT32 MR_HandleLevelPlatter(INT32 choice);
INT32 MR_LevelPlatterRandom(INT32 choice);
#ifdef HAVE_DISCORDRPC
INT32 MR_HandleDiscordRequests(INT32 choice);
#endif
@ -400,9 +410,6 @@ extern consvar_t cv_showfocuslost;
extern consvar_t cv_newgametype, cv_nextmap, cv_chooseskin, cv_serversort, cv_levelsort;
extern consvar_t cv_dummygpdifficulty, cv_dummygpencore, cv_dummygpcup;
extern consvar_t cv_dummymenuplayer, cv_dummyteam, cv_dummyspectate, cv_dummyscramble;
extern consvar_t cv_dummyattackingrings, cv_dummyattackingstacking, cv_dummyattackingchaining;
extern consvar_t cv_dummyattackingslipdash, cv_dummyattackingpurpledrift, cv_dummyattackingslopeboost;
extern consvar_t cv_dummyattackingairdrop, cv_dummyattackingbumpspark;
extern consvar_t cv_dummystaff;
extern consvar_t cv_dummymultiplayer, cv_dummyip, cv_dummyname, cv_dummyfollower, cv_dummycolor;
extern consvar_t cv_dummyserverpage;
@ -429,9 +436,6 @@ extern INT16 char_on, startchar;
// File name appender for RA gametype+mod reading.
char *M_AppendGametypeAndModName(void);
// Level select updating
void Nextmap_OnChange(void);
// Screenshot menu updating
void Moviemode_mode_Onchange(void);
void Screenshot_option_Onchange(void);

View file

@ -8429,7 +8429,7 @@ static void P_TryAddGhosts(const char *gpath, boolean all, recordreplay_e which)
static void P_LoadRecordGhosts(void)
{
// see also m_menu.c's Nextmap_OnChange
// see also m_menu.c's M_UpdateTimeAttackMenu
CLEANUP(pfree) char *gpath = G_GetRecordReplayFolder(true, modeattacking == ATTACKING_ITEMBREAK);
// Best Time ghost