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_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[] = {
|
static CV_PossibleValue_t serversort_cons_t[] = {
|
||||||
{0,"Ping"},
|
{0,"Ping"},
|
||||||
{1,"Modified State"},
|
{1,"Modified State"},
|
||||||
|
|
@ -1630,6 +1633,19 @@ boolean M_Responder(event_t *ev)
|
||||||
|
|
||||||
return true;
|
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:
|
case KEY_BACKSPACE:
|
||||||
if (!item || !item->cvar
|
if (!item || !item->cvar
|
||||||
|| item->cvar == &cv_chooseskin
|
|| item->cvar == &cv_chooseskin
|
||||||
|
|
@ -2002,6 +2018,9 @@ void M_Init(void)
|
||||||
|
|
||||||
COM_AddCommand("manual", Command_Manual_f);
|
COM_AddCommand("manual", Command_Manual_f);
|
||||||
|
|
||||||
|
CV_RegisterVar(&cv_showallmaps);
|
||||||
|
CV_RegisterVar(&cv_showtrackaddon);
|
||||||
|
|
||||||
// Menu hacks
|
// Menu hacks
|
||||||
CV_RegisterVar(&cv_dummymenuplayer);
|
CV_RegisterVar(&cv_dummymenuplayer);
|
||||||
CV_RegisterVar(&cv_dummyteam);
|
CV_RegisterVar(&cv_dummyteam);
|
||||||
|
|
@ -2831,17 +2850,17 @@ boolean M_CanShowLevelInList(INT32 mapnum, INT32 gt)
|
||||||
switch (levellistmode)
|
switch (levellistmode)
|
||||||
{
|
{
|
||||||
case LLM_CREATESERVER:
|
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
|
// Check for TOL
|
||||||
if (gt >= 0 && !(mapheaderinfo[mapnum]->typeoflevel & G_TOLFlag(gt)))
|
if (gt >= 0 && !(mapheaderinfo[mapnum]->typeoflevel & G_TOLFlag(gt)))
|
||||||
return false;
|
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;
|
return true;
|
||||||
|
|
||||||
/*case LLM_LEVELSELECT:
|
/*case LLM_LEVELSELECT:
|
||||||
|
|
@ -6401,12 +6420,28 @@ static void M_DrawLevelSelectOnly(INT16 y, boolean selected, boolean leftfade, b
|
||||||
patch_t *PictureOfLevel;
|
patch_t *PictureOfLevel;
|
||||||
INT32 x, w, i, oldval, trans, dupadjust = ((vid.width/vid.dupx) - BASEVIDWIDTH)>>1;
|
INT32 x, w, i, oldval, trans, dupadjust = ((vid.width/vid.dupx) - BASEVIDWIDTH)>>1;
|
||||||
fixed_t scale = M_GetMapThumbnail(cv_nextmap.value-1, &PictureOfLevel)/4;
|
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);
|
w = FixedMul(SHORT(PictureOfLevel->width), scale);
|
||||||
i = FixedMul(SHORT(PictureOfLevel->height), scale);
|
i = FixedMul(SHORT(PictureOfLevel->height), scale);
|
||||||
x = BASEVIDWIDTH/2 - w/2;
|
x = BASEVIDWIDTH/2 - w/2;
|
||||||
y = y + 60 - i;
|
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)
|
if (selected && skullAnimCounter < 4)
|
||||||
trans = 0;
|
trans = 0;
|
||||||
else
|
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...
|
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)
|
if ((cv_kartencore.value != 1) || gamestate == GS_TIMEATTACK || cv_newgametype.value != GT_RACE)
|
||||||
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, scale, 0, PictureOfLevel, NULL);
|
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, scale, 0, PictureOfLevel, NULL);
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue