mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Linear Level Select polish
- Even if there's only one level in the group, only skip over the mini linear list in a Time Attack mode
- Improves some of the jumpscare of looking into Lost and Found and being blasted to TEST RUN
- Fix lists of one map being wedged against the bottom of the screen
- Precache valid map count
This commit is contained in:
parent
0f14079555
commit
492babd73d
3 changed files with 8 additions and 6 deletions
|
|
@ -737,6 +737,7 @@ extern struct levellist_s {
|
|||
UINT16 y;
|
||||
UINT16 dest;
|
||||
UINT16 choosemap;
|
||||
UINT16 mapcount;
|
||||
UINT8 newgametype;
|
||||
UINT8 guessgt;
|
||||
levelsearch_t levelsearch;
|
||||
|
|
|
|||
|
|
@ -161,7 +161,7 @@ void M_CupSelectHandler(INT32 choice)
|
|||
|
||||
restoreMenu = &PLAY_CupSelectDef;
|
||||
}
|
||||
else if (count == 1)
|
||||
else if (count == 1 && levellist.levelsearch.timeattack == true)
|
||||
{
|
||||
PLAY_TimeAttackDef.transitionID = currentMenu->transitionID+1;
|
||||
M_LevelSelected(0);
|
||||
|
|
@ -174,6 +174,7 @@ void M_CupSelectHandler(INT32 choice)
|
|||
levellist.cursor = 0;
|
||||
}
|
||||
|
||||
levellist.mapcount = count;
|
||||
M_LevelSelectScrollDest();
|
||||
levellist.y = levellist.dest;
|
||||
|
||||
|
|
|
|||
|
|
@ -195,14 +195,14 @@ UINT16 M_GetNextLevelInList(UINT16 mapnum, UINT8 *i, levelsearch_t *levelsearch)
|
|||
|
||||
void M_LevelSelectScrollDest(void)
|
||||
{
|
||||
UINT16 m = M_CountLevelsToShowInList(&levellist.levelsearch)-1;
|
||||
UINT16 m = levellist.mapcount-1;
|
||||
|
||||
levellist.dest = (6*levellist.cursor);
|
||||
|
||||
if (levellist.dest < 3)
|
||||
levellist.dest = 3;
|
||||
|
||||
if (levellist.dest > (6*m)-3)
|
||||
if (m && levellist.dest > (6*m)-3)
|
||||
levellist.dest = (6*m)-3;
|
||||
}
|
||||
|
||||
|
|
@ -400,6 +400,7 @@ boolean M_LevelListFromGametype(INT16 gt)
|
|||
levellist.levelsearch.cup = NULL;
|
||||
}
|
||||
|
||||
levellist.mapcount = M_CountLevelsToShowInList(&levellist.levelsearch);
|
||||
M_LevelSelectScrollDest();
|
||||
levellist.y = levellist.dest;
|
||||
|
||||
|
|
@ -562,7 +563,6 @@ void M_LevelSelected(INT16 add)
|
|||
|
||||
void M_LevelSelectHandler(INT32 choice)
|
||||
{
|
||||
INT16 maxlevels = M_CountLevelsToShowInList(&levellist.levelsearch);
|
||||
const UINT8 pid = 0;
|
||||
|
||||
(void)choice;
|
||||
|
|
@ -575,7 +575,7 @@ void M_LevelSelectHandler(INT32 choice)
|
|||
if (menucmd[pid].dpad_ud > 0)
|
||||
{
|
||||
levellist.cursor++;
|
||||
if (levellist.cursor >= maxlevels)
|
||||
if (levellist.cursor >= levellist.mapcount)
|
||||
levellist.cursor = 0;
|
||||
S_StartSound(NULL, sfx_s3k5b);
|
||||
M_SetMenuDelay(pid);
|
||||
|
|
@ -584,7 +584,7 @@ void M_LevelSelectHandler(INT32 choice)
|
|||
{
|
||||
levellist.cursor--;
|
||||
if (levellist.cursor < 0)
|
||||
levellist.cursor = maxlevels-1;
|
||||
levellist.cursor = levellist.mapcount-1;
|
||||
S_StartSound(NULL, sfx_s3k5b);
|
||||
M_SetMenuDelay(pid);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue