More character select quality of life

- When selecting follower category, initial follower category is now the category of your last used follower (or None)
- More C/Extra button functionality:
    - Profile selection: Toggle between your last used profile and guest
    - Follower category: Toggle between category of your last selected follower and None
    - Follower: Return to category selection and hover over None (flows seamlessly into above option)
This commit is contained in:
toaster 2022-11-07 20:57:02 +00:00
parent e086b52055
commit 6eda325561

View file

@ -2066,6 +2066,12 @@ static void M_SetupProfileGridPos(setup_player_t *p)
// While we're here, read follower values. // While we're here, read follower values.
p->followern = K_FollowerAvailable(pr->follower); p->followern = K_FollowerAvailable(pr->follower);
if (p->followern < 0 || p->followern >= numfollowers || followers[p->followern].category >= numfollowercategories)
p->followercategory = -1;
else
p->followercategory = followers[p->followern].category;
p->followercolor = pr->followercolor; p->followercolor = pr->followercolor;
// Now position the grid for skin // Now position the grid for skin
@ -2490,6 +2496,16 @@ static boolean M_HandleCSelectProfile(setup_player_t *p, UINT8 num)
S_StartSound(NULL, sfx_s3k63); S_StartSound(NULL, sfx_s3k63);
} }
else if (M_MenuExtraPressed(num))
{
UINT8 yourprofile = min(cv_lastprofile[realnum].value, PR_GetNumProfiles());
if (p->profilen == yourprofile)
p->profilen = PROFILE_GUEST;
else
p->profilen = yourprofile;
S_StartSound(NULL, sfx_s3k7b); //sfx_s3kc3s
M_SetMenuDelay(num);
}
return false; return false;
@ -2863,7 +2879,10 @@ static void M_HandleFollowerCategoryRotate(setup_player_t *p, UINT8 num)
} }
else if (M_MenuExtraPressed(num)) else if (M_MenuExtraPressed(num))
{ {
p->followercategory = -1; if (p->followercategory >= 0 || p->followern < 0 || p->followern >= numfollowers || followers[p->followern].category >= numfollowercategories)
p->followercategory = -1;
else
p->followercategory = followers[p->followern].category;
p->rotate = CSROTATETICS; p->rotate = CSROTATETICS;
p->hitlag = true; p->hitlag = true;
S_StartSound(NULL, sfx_s3k7b); //sfx_s3kc3s S_StartSound(NULL, sfx_s3k7b); //sfx_s3kc3s
@ -2938,6 +2957,15 @@ static void M_HandleFollowerRotate(setup_player_t *p, UINT8 num)
S_StartSound(NULL, sfx_s3k5b); S_StartSound(NULL, sfx_s3k5b);
M_SetMenuDelay(num); M_SetMenuDelay(num);
} }
else if (M_MenuExtraPressed(num))
{
p->mdepth = CSSTEP_FOLLOWERCATEGORY;
p->followercategory = -1;
p->rotate = CSROTATETICS;
p->hitlag = true;
S_StartSound(NULL, sfx_s3k7b); //sfx_s3kc3s
M_SetMenuDelay(num);
}
} }
static void M_HandleFollowerColorRotate(setup_player_t *p, UINT8 num) static void M_HandleFollowerColorRotate(setup_player_t *p, UINT8 num)