mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-12-01 16:52:25 +00:00
menu stuff
This commit is contained in:
parent
35adf2ce4a
commit
147815b87c
2 changed files with 48 additions and 26 deletions
|
@ -1420,12 +1420,12 @@ void F_InitMenuPresValues(void)
|
||||||
curfadevalue = 16;
|
curfadevalue = 16;
|
||||||
curhidepics = hidetitlepics;
|
curhidepics = hidetitlepics;
|
||||||
curbgcolor = -1;
|
curbgcolor = -1;
|
||||||
curbgxspeed = titlescrollxspeed;
|
curbgxspeed = (gamestate == GS_TIMEATTACK) ? 0 : titlescrollxspeed;
|
||||||
curbgyspeed = titlescrollyspeed;
|
curbgyspeed = (gamestate == GS_TIMEATTACK) ? 22 : titlescrollyspeed;
|
||||||
curbghide = true;
|
curbghide = (gamestate == GS_TIMEATTACK) ? false : true;
|
||||||
|
|
||||||
// Find current presentation values
|
// Find current presentation values
|
||||||
M_SetMenuCurBackground((gamestate == GS_TIMEATTACK) ? "SRB2BACK" : "TITLESKY");
|
M_SetMenuCurBackground((gamestate == GS_TIMEATTACK) ? "RECATTBG" : "TITLESKY");
|
||||||
M_SetMenuCurFadeValue(16);
|
M_SetMenuCurFadeValue(16);
|
||||||
M_SetMenuCurHideTitlePics();
|
M_SetMenuCurHideTitlePics();
|
||||||
}
|
}
|
||||||
|
|
66
src/m_menu.c
66
src/m_menu.c
|
@ -159,6 +159,7 @@ static INT32 vidm_previousmode;
|
||||||
static INT32 vidm_selected = 0;
|
static INT32 vidm_selected = 0;
|
||||||
static INT32 vidm_nummodes;
|
static INT32 vidm_nummodes;
|
||||||
static INT32 vidm_column_size;
|
static INT32 vidm_column_size;
|
||||||
|
tic_t recfgtimer = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// PROTOTYPES
|
// PROTOTYPES
|
||||||
|
@ -1601,24 +1602,24 @@ menu_t SP_LevelStatsDef =
|
||||||
|
|
||||||
menu_t SP_TimeAttackLevelSelectDef = MAPPLATTERMENUSTYLE(
|
menu_t SP_TimeAttackLevelSelectDef = MAPPLATTERMENUSTYLE(
|
||||||
MN_SP_MAIN + (MN_SP_TIMEATTACK << 6) + (MN_SP_TIMEATTACK_LEVELSELECT << 12),
|
MN_SP_MAIN + (MN_SP_TIMEATTACK << 6) + (MN_SP_TIMEATTACK_LEVELSELECT << 12),
|
||||||
"M_ATTACK", SP_TimeAttackLevelSelectMenu);
|
NULL, SP_TimeAttackLevelSelectMenu);
|
||||||
|
|
||||||
static menu_t SP_TimeAttackDef =
|
static menu_t SP_TimeAttackDef =
|
||||||
{
|
{
|
||||||
MN_SP_MAIN + (MN_SP_TIMEATTACK << 6),
|
MN_SP_MAIN + (MN_SP_TIMEATTACK << 6),
|
||||||
"M_ATTACK",
|
NULL,
|
||||||
sizeof (SP_TimeAttackMenu)/sizeof (menuitem_t),
|
sizeof (SP_TimeAttackMenu)/sizeof (menuitem_t),
|
||||||
&MainDef, // Doesn't matter.
|
&MainDef, // Doesn't matter.
|
||||||
SP_TimeAttackMenu,
|
SP_TimeAttackMenu,
|
||||||
M_DrawTimeAttackMenu,
|
M_DrawTimeAttackMenu,
|
||||||
32, 40,
|
32, 28,
|
||||||
0,
|
0,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
static menu_t SP_ReplayDef =
|
static menu_t SP_ReplayDef =
|
||||||
{
|
{
|
||||||
MN_SP_MAIN + (MN_SP_TIMEATTACK << 6) + (MN_SP_REPLAY << 12),
|
MN_SP_MAIN + (MN_SP_TIMEATTACK << 6) + (MN_SP_REPLAY << 12),
|
||||||
"M_ATTACK",
|
NULL,
|
||||||
sizeof(SP_ReplayMenu)/sizeof(menuitem_t),
|
sizeof(SP_ReplayMenu)/sizeof(menuitem_t),
|
||||||
&SP_TimeAttackDef,
|
&SP_TimeAttackDef,
|
||||||
SP_ReplayMenu,
|
SP_ReplayMenu,
|
||||||
|
@ -1630,7 +1631,7 @@ static menu_t SP_ReplayDef =
|
||||||
static menu_t SP_GuestReplayDef =
|
static menu_t SP_GuestReplayDef =
|
||||||
{
|
{
|
||||||
MN_SP_MAIN + (MN_SP_TIMEATTACK << 6) + (MN_SP_GUESTREPLAY << 12),
|
MN_SP_MAIN + (MN_SP_TIMEATTACK << 6) + (MN_SP_GUESTREPLAY << 12),
|
||||||
"M_ATTACK",
|
NULL,
|
||||||
sizeof(SP_GuestReplayMenu)/sizeof(menuitem_t),
|
sizeof(SP_GuestReplayMenu)/sizeof(menuitem_t),
|
||||||
&SP_TimeAttackDef,
|
&SP_TimeAttackDef,
|
||||||
SP_GuestReplayMenu,
|
SP_GuestReplayMenu,
|
||||||
|
@ -1642,7 +1643,7 @@ static menu_t SP_GuestReplayDef =
|
||||||
static menu_t SP_GhostDef =
|
static menu_t SP_GhostDef =
|
||||||
{
|
{
|
||||||
MN_SP_MAIN + (MN_SP_TIMEATTACK << 6) + (MN_SP_GHOST << 12),
|
MN_SP_MAIN + (MN_SP_TIMEATTACK << 6) + (MN_SP_GHOST << 12),
|
||||||
"M_ATTACK",
|
NULL,
|
||||||
sizeof(SP_GhostMenu)/sizeof(menuitem_t),
|
sizeof(SP_GhostMenu)/sizeof(menuitem_t),
|
||||||
&SP_TimeAttackDef,
|
&SP_TimeAttackDef,
|
||||||
SP_GhostMenu,
|
SP_GhostMenu,
|
||||||
|
@ -2467,16 +2468,16 @@ static void M_HandleMenuPresState(menu_t *newMenu)
|
||||||
curfadevalue = 16;
|
curfadevalue = 16;
|
||||||
curhidepics = hidetitlepics;
|
curhidepics = hidetitlepics;
|
||||||
curbgcolor = -1;
|
curbgcolor = -1;
|
||||||
curbgxspeed = titlescrollxspeed;
|
curbgxspeed = (gamestate == GS_TIMEATTACK) ? 0 : titlescrollxspeed;
|
||||||
curbgyspeed = titlescrollyspeed;
|
curbgyspeed = (gamestate == GS_TIMEATTACK) ? 18 : titlescrollyspeed;
|
||||||
curbghide = true;
|
curbghide = (gamestate == GS_TIMEATTACK) ? false : true;
|
||||||
|
|
||||||
// don't do the below during the in-game menus
|
// don't do the below during the in-game menus
|
||||||
if (gamestate != GS_TITLESCREEN && gamestate != GS_TIMEATTACK)
|
if (gamestate != GS_TITLESCREEN && gamestate != GS_TIMEATTACK)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Find current presentation values
|
// Find current presentation values
|
||||||
M_SetMenuCurBackground((gamestate == GS_TIMEATTACK) ? "SRB2BACK" : "TITLESKY");
|
M_SetMenuCurBackground((gamestate == GS_TIMEATTACK) ? "RECATTBG" : "TITLESKY");
|
||||||
M_SetMenuCurFadeValue(16);
|
M_SetMenuCurFadeValue(16);
|
||||||
M_SetMenuCurHideTitlePics();
|
M_SetMenuCurHideTitlePics();
|
||||||
|
|
||||||
|
@ -5043,6 +5044,10 @@ static void M_DrawLevelPlatterMenu(void)
|
||||||
|
|
||||||
if (gamestate == GS_TIMEATTACK)
|
if (gamestate == GS_TIMEATTACK)
|
||||||
{
|
{
|
||||||
|
curbgxspeed = 0;
|
||||||
|
curbgyspeed = 18;
|
||||||
|
curbghide = false;
|
||||||
|
strncpy(curbgname, "RECATTBG", 8);
|
||||||
if (curbgcolor >= 0)
|
if (curbgcolor >= 0)
|
||||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, curbgcolor);
|
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, curbgcolor);
|
||||||
else if (!curbghide || !titlemapinaction)
|
else if (!curbghide || !titlemapinaction)
|
||||||
|
@ -8056,8 +8061,15 @@ void M_DrawTimeAttackMenu(void)
|
||||||
INT32 i, x, y, cursory = 0;
|
INT32 i, x, y, cursory = 0;
|
||||||
UINT16 dispstatus;
|
UINT16 dispstatus;
|
||||||
patch_t *PictureOfUrFace;
|
patch_t *PictureOfUrFace;
|
||||||
|
patch_t *menufg;
|
||||||
|
|
||||||
|
curbgxspeed = 0;
|
||||||
|
curbgyspeed = 18;
|
||||||
|
curbghide = false;
|
||||||
|
|
||||||
|
strncpy(curbgname, "RECATTBG", 8);
|
||||||
M_ChangeMenuMusic("_inter", true); // Eww, but needed for when user hits escape during demo playback
|
M_ChangeMenuMusic("_inter", true); // Eww, but needed for when user hits escape during demo playback
|
||||||
|
menufg = W_CachePatchName("RECATFG", PU_CACHE);
|
||||||
|
|
||||||
if (curbgcolor >= 0)
|
if (curbgcolor >= 0)
|
||||||
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, curbgcolor);
|
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, curbgcolor);
|
||||||
|
@ -8066,6 +8078,12 @@ void M_DrawTimeAttackMenu(void)
|
||||||
if (curfadevalue)
|
if (curfadevalue)
|
||||||
V_DrawFadeScreen(0xFF00, curfadevalue);
|
V_DrawFadeScreen(0xFF00, curfadevalue);
|
||||||
|
|
||||||
|
// Draw and animate foreground
|
||||||
|
V_DrawSciencePatch(0, -(130<<FRACBITS) + FixedMul(130<<FRACBITS, FixedDiv(recfgtimer%70, 70)), V_SNAPTOTOP|V_SNAPTOLEFT, menufg, FRACUNIT);
|
||||||
|
V_DrawSciencePatch(320<<FRACBITS, -(130<<FRACBITS) + FixedMul(130<<FRACBITS, FixedDiv(recfgtimer%70, 70)), V_SNAPTOTOP|V_SNAPTORIGHT|V_FLIP, menufg, FRACUNIT);
|
||||||
|
recfgtimer++;
|
||||||
|
CONS_Printf("%d\n", recfgtimer);
|
||||||
|
|
||||||
M_DrawMenuTitle();
|
M_DrawMenuTitle();
|
||||||
|
|
||||||
// draw menu (everything else goes on top of it)
|
// draw menu (everything else goes on top of it)
|
||||||
|
@ -8130,7 +8148,7 @@ void M_DrawTimeAttackMenu(void)
|
||||||
lumpnum_t lumpnum;
|
lumpnum_t lumpnum;
|
||||||
char beststr[40];
|
char beststr[40];
|
||||||
|
|
||||||
M_DrawLevelPlatterHeader(32-lsheadingheight/2, cv_nextmap.string, true, false);
|
M_DrawLevelPlatterHeader(24-lsheadingheight, cv_nextmap.string, true, false);
|
||||||
|
|
||||||
// A 160x100 image of the level as entry MAPxxP
|
// A 160x100 image of the level as entry MAPxxP
|
||||||
lumpnum = W_CheckNumForName(va("%sP", G_BuildMapName(cv_nextmap.value)));
|
lumpnum = W_CheckNumForName(va("%sP", G_BuildMapName(cv_nextmap.value)));
|
||||||
|
@ -8140,17 +8158,17 @@ void M_DrawTimeAttackMenu(void)
|
||||||
else
|
else
|
||||||
PictureOfLevel = W_CachePatchName("BLANKLVL", PU_CACHE);
|
PictureOfLevel = W_CachePatchName("BLANKLVL", PU_CACHE);
|
||||||
|
|
||||||
V_DrawSmallScaledPatch(208, 32+lsheadingheight, 0, PictureOfLevel);
|
V_DrawSmallScaledPatch(208, 24+lsheadingheight/2, 0, PictureOfLevel);
|
||||||
|
|
||||||
V_DrawString(104 - 72, 32+lsheadingheight/2, 0, "* LEVEL RECORDS *");
|
V_DrawString(104 - 72, lsheadingheight+8, 0, "* LEVEL RECORDS *");
|
||||||
|
|
||||||
if (!mainrecords[cv_nextmap.value-1] || !mainrecords[cv_nextmap.value-1]->score)
|
if (!mainrecords[cv_nextmap.value-1] || !mainrecords[cv_nextmap.value-1]->score)
|
||||||
sprintf(beststr, "(none)");
|
sprintf(beststr, "(none)");
|
||||||
else
|
else
|
||||||
sprintf(beststr, "%u", mainrecords[cv_nextmap.value-1]->score);
|
sprintf(beststr, "%u", mainrecords[cv_nextmap.value-1]->score);
|
||||||
|
|
||||||
V_DrawString(104-72, 48+lsheadingheight/2, V_YELLOWMAP, "SCORE:");
|
V_DrawString(104-72, 32+lsheadingheight/2, V_YELLOWMAP, "SCORE:");
|
||||||
V_DrawRightAlignedString(104+72, 48+lsheadingheight/2, V_ALLOWLOWERCASE, beststr);
|
V_DrawRightAlignedString(104+72, 32+lsheadingheight/2, V_ALLOWLOWERCASE, beststr);
|
||||||
|
|
||||||
if (!mainrecords[cv_nextmap.value-1] || !mainrecords[cv_nextmap.value-1]->time)
|
if (!mainrecords[cv_nextmap.value-1] || !mainrecords[cv_nextmap.value-1]->time)
|
||||||
sprintf(beststr, "(none)");
|
sprintf(beststr, "(none)");
|
||||||
|
@ -8159,16 +8177,16 @@ void M_DrawTimeAttackMenu(void)
|
||||||
G_TicsToSeconds(mainrecords[cv_nextmap.value-1]->time),
|
G_TicsToSeconds(mainrecords[cv_nextmap.value-1]->time),
|
||||||
G_TicsToCentiseconds(mainrecords[cv_nextmap.value-1]->time));
|
G_TicsToCentiseconds(mainrecords[cv_nextmap.value-1]->time));
|
||||||
|
|
||||||
V_DrawString(104-72, 58+lsheadingheight/2, V_YELLOWMAP, "TIME:");
|
V_DrawString(104-72, 40+lsheadingheight/2, V_YELLOWMAP, "TIME:");
|
||||||
V_DrawRightAlignedString(104+72, 58+lsheadingheight/2, V_ALLOWLOWERCASE, beststr);
|
V_DrawRightAlignedString(104+72, 40+lsheadingheight/2, V_ALLOWLOWERCASE, beststr);
|
||||||
|
|
||||||
if (!mainrecords[cv_nextmap.value-1] || !mainrecords[cv_nextmap.value-1]->rings)
|
if (!mainrecords[cv_nextmap.value-1] || !mainrecords[cv_nextmap.value-1]->rings)
|
||||||
sprintf(beststr, "(none)");
|
sprintf(beststr, "(none)");
|
||||||
else
|
else
|
||||||
sprintf(beststr, "%hu", mainrecords[cv_nextmap.value-1]->rings);
|
sprintf(beststr, "%hu", mainrecords[cv_nextmap.value-1]->rings);
|
||||||
|
|
||||||
V_DrawString(104-72, 68+lsheadingheight/2, V_YELLOWMAP, "RINGS:");
|
V_DrawString(104-72, 48+lsheadingheight/2, V_YELLOWMAP, "RINGS:");
|
||||||
V_DrawRightAlignedString(104+72, 68+lsheadingheight/2, V_ALLOWLOWERCASE, beststr);
|
V_DrawRightAlignedString(104+72, 48+lsheadingheight/2, V_ALLOWLOWERCASE, beststr);
|
||||||
|
|
||||||
// Draw record emblems.
|
// Draw record emblems.
|
||||||
em = M_GetLevelEmblems(cv_nextmap.value);
|
em = M_GetLevelEmblems(cv_nextmap.value);
|
||||||
|
@ -8176,9 +8194,9 @@ void M_DrawTimeAttackMenu(void)
|
||||||
{
|
{
|
||||||
switch (em->type)
|
switch (em->type)
|
||||||
{
|
{
|
||||||
case ET_SCORE: yHeight = 48; break;
|
case ET_SCORE: yHeight = 32; break;
|
||||||
case ET_TIME: yHeight = 58; break;
|
case ET_TIME: yHeight = 40; break;
|
||||||
case ET_RINGS: yHeight = 68; break;
|
case ET_RINGS: yHeight = 48; break;
|
||||||
default:
|
default:
|
||||||
goto skipThisOne;
|
goto skipThisOne;
|
||||||
}
|
}
|
||||||
|
@ -8208,6 +8226,10 @@ void M_DrawTimeAttackMenu(void)
|
||||||
V_DrawString(x, y + SP_TimeAttackMenu[taplayer].alphaKey, V_TRANSLUCENT, SP_TimeAttackMenu[taplayer].text);
|
V_DrawString(x, y + SP_TimeAttackMenu[taplayer].alphaKey, V_TRANSLUCENT, SP_TimeAttackMenu[taplayer].text);
|
||||||
V_DrawString(BASEVIDWIDTH - x - V_StringWidth(ncv->string, 0), y + SP_TimeAttackMenu[taplayer].alphaKey, V_YELLOWMAP|V_TRANSLUCENT, ncv->string);
|
V_DrawString(BASEVIDWIDTH - x - V_StringWidth(ncv->string, 0), y + SP_TimeAttackMenu[taplayer].alphaKey, V_YELLOWMAP|V_TRANSLUCENT, ncv->string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Draw press ESC to exit string on main record attack menu
|
||||||
|
if (currentMenu == &SP_TimeAttackDef)
|
||||||
|
V_DrawString(104-72, 170, V_TRANSLUCENT, M_GetText("Press ESC to exit"));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void M_TimeAttackLevelSelect(INT32 choice)
|
static void M_TimeAttackLevelSelect(INT32 choice)
|
||||||
|
|
Loading…
Reference in a new issue