Port Saturn menu additions
This commit is contained in:
parent
e450f21ddf
commit
e1905d85cf
1 changed files with 57 additions and 7 deletions
64
src/m_menu.c
64
src/m_menu.c
|
|
@ -332,6 +332,9 @@ CV_PossibleValue_t gametype_cons_t[NUMGAMETYPES+1];
|
|||
|
||||
consvar_t cv_newgametype = CVAR_INIT ("newgametype", "Race", CV_HIDEN|CV_CALL, gametype_cons_t, Newgametype_OnChange);
|
||||
|
||||
consvar_t cv_showallmaps = CVAR_INIT ("showallmaps", "No", CV_SAVE, CV_YesNo, NULL);
|
||||
consvar_t cv_showtrackaddon = CVAR_INIT ("showtrackaddon", "Yes", CV_SAVE, CV_YesNo, NULL);
|
||||
|
||||
static CV_PossibleValue_t serversort_cons_t[] = {
|
||||
{0,"Ping"},
|
||||
{1,"Modified State"},
|
||||
|
|
@ -1630,6 +1633,19 @@ boolean M_Responder(event_t *ev)
|
|||
|
||||
return true;
|
||||
|
||||
case KEY_SPACE:
|
||||
noFurtherInput = true;
|
||||
if (!item || !item->cvar)
|
||||
return true;
|
||||
|
||||
if (item->cvar == &cv_nextmap)
|
||||
{
|
||||
S_StartSound(NULL, sfx_menu1);
|
||||
COM_ImmedExecute("add kartencore 1");
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
|
||||
case KEY_BACKSPACE:
|
||||
if (!item || !item->cvar
|
||||
|| item->cvar == &cv_chooseskin
|
||||
|
|
@ -2002,6 +2018,9 @@ void M_Init(void)
|
|||
|
||||
COM_AddCommand("manual", Command_Manual_f);
|
||||
|
||||
CV_RegisterVar(&cv_showallmaps);
|
||||
CV_RegisterVar(&cv_showtrackaddon);
|
||||
|
||||
// Menu hacks
|
||||
CV_RegisterVar(&cv_dummymenuplayer);
|
||||
CV_RegisterVar(&cv_dummyteam);
|
||||
|
|
@ -2831,17 +2850,17 @@ boolean M_CanShowLevelInList(INT32 mapnum, INT32 gt)
|
|||
switch (levellistmode)
|
||||
{
|
||||
case LLM_CREATESERVER:
|
||||
// Should the map be hidden?
|
||||
if (mapheaderinfo[mapnum]->menuflags & LF2_HIDEINMENU && mapnum+1 != gamemap)
|
||||
return false;
|
||||
|
||||
if (M_MapLocked(mapnum+1))
|
||||
return false; // not unlocked
|
||||
|
||||
// Check for TOL
|
||||
if (gt >= 0 && !(mapheaderinfo[mapnum]->typeoflevel & G_TOLFlag(gt)))
|
||||
return false;
|
||||
|
||||
// Should the map be hidden?
|
||||
if (mapheaderinfo[mapnum]->menuflags & LF2_HIDEINMENU && mapnum+1 != gamemap)
|
||||
return cv_showallmaps.value;
|
||||
|
||||
if (M_MapLocked(mapnum+1))
|
||||
return cv_showallmaps.value; // not unlocked
|
||||
|
||||
return true;
|
||||
|
||||
/*case LLM_LEVELSELECT:
|
||||
|
|
@ -6401,12 +6420,28 @@ static void M_DrawLevelSelectOnly(INT16 y, boolean selected, boolean leftfade, b
|
|||
patch_t *PictureOfLevel;
|
||||
INT32 x, w, i, oldval, trans, dupadjust = ((vid.width/vid.dupx) - BASEVIDWIDTH)>>1;
|
||||
fixed_t scale = M_GetMapThumbnail(cv_nextmap.value-1, &PictureOfLevel)/4;
|
||||
menuitem_t *item = currentMenu->numitems ? ¤tMenu->menuitems[itemOn] : NULL;
|
||||
|
||||
|
||||
w = FixedMul(SHORT(PictureOfLevel->width), scale);
|
||||
i = FixedMul(SHORT(PictureOfLevel->height), scale);
|
||||
x = BASEVIDWIDTH/2 - w/2;
|
||||
y = y + 60 - i;
|
||||
|
||||
if ((levellistmode != LLM_TIMEATTACK) && (item->cvar == &cv_nextmap)) // so it doesent show in record attack menu
|
||||
{
|
||||
char encoretoggle[40] = {0};
|
||||
const char *item1 = gamecontrol[0][gc_fire][0] != 0 ? G_KeynumToString(gamecontrol[0][gc_fire][0]) : NULL;
|
||||
const char *item2 = gamecontrol[0][gc_fire][1] != 0 ? G_KeynumToString(gamecontrol[0][gc_fire][1]) : NULL;
|
||||
|
||||
if (item1 != NULL && item2 != NULL)
|
||||
snprintf(encoretoggle, 40, "%s/%s - Toggle Encore: %s", item1, item2, cv_kartencore.string);
|
||||
else
|
||||
snprintf(encoretoggle, 40, "%s - Toggle Encore: %s", item1 != NULL ? item1 : item2 != NULL ? item2 : "Item", cv_kartencore.string);
|
||||
|
||||
V_DrawThinString(1, BASEVIDHEIGHT-8-1, V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_TRANSLUCENT|V_ALLOWLOWERCASE, encoretoggle);
|
||||
}
|
||||
|
||||
if (selected && skullAnimCounter < 4)
|
||||
trans = 0;
|
||||
else
|
||||
|
|
@ -6414,6 +6449,21 @@ static void M_DrawLevelSelectOnly(INT16 y, boolean selected, boolean leftfade, b
|
|||
|
||||
V_DrawFill(x-1, y-1, w+2, i+2, trans); // variable reuse...
|
||||
|
||||
if (cv_nextmap.value && cv_showtrackaddon.value)
|
||||
{
|
||||
char *addonname = wadfiles[WADFILENUM(mapheaderinfo[cv_nextmap.value-1]->lumpnum)]->filename;
|
||||
INT32 len;
|
||||
INT32 charlimit = 21 + (dupadjust/5);
|
||||
nameonly(addonname);
|
||||
len = strlen(addonname);
|
||||
#define charsonside 14
|
||||
if (len > charlimit)
|
||||
V_DrawThinString(x+w+5, y+i-8, V_TRANSLUCENT|MENUCAPS, va("%.*s...%s", charsonside, addonname, addonname+((len-charlimit) + charsonside))); // variable reuse...
|
||||
#undef charsonside
|
||||
else
|
||||
V_DrawThinString(x+w+5, y+i-8, V_TRANSLUCENT|MENUCAPS, addonname); // variable reuse...
|
||||
}
|
||||
|
||||
if ((cv_kartencore.value != 1) || gamestate == GS_TIMEATTACK || cv_newgametype.value != GT_RACE)
|
||||
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, scale, 0, PictureOfLevel, NULL);
|
||||
else
|
||||
|
|
|
|||
Loading…
Reference in a new issue