Menus/Character Select: show character/follower behind ALL GOOD/CHANGE options

- Drawn at 50% transparency
This commit is contained in:
James R 2023-12-28 01:44:34 -08:00 committed by toaster
parent 68a73a4bf0
commit 8b65779a4e
2 changed files with 8 additions and 7 deletions

View file

@ -1829,7 +1829,7 @@ static boolean M_DrawFollowerSprite(INT16 x, INT16 y, INT32 num, boolean charfli
if (p != NULL) if (p != NULL)
{ {
UINT16 color = K_GetEffectiveFollowerColor( UINT16 color = K_GetEffectiveFollowerColor(
(p->mdepth < CSSTEP_FOLLOWERCOLORS) ? fl->defaultcolor : p->followercolor, (p->mdepth < CSSTEP_FOLLOWERCOLORS && p->mdepth != CSSTEP_ASKCHANGES) ? fl->defaultcolor : p->followercolor,
fl, fl,
p->color, p->color,
&skins[p->skin] &skins[p->skin]
@ -1854,7 +1854,7 @@ static void M_DrawCharSelectSprite(UINT8 num, INT16 x, INT16 y, boolean charflip
return; return;
} }
if (p->mdepth < CSSTEP_COLORS) if (p->mdepth < CSSTEP_COLORS && p->mdepth != CSSTEP_ASKCHANGES)
{ {
color = skins[p->skin].prefcolor; color = skins[p->skin].prefcolor;
} }
@ -1870,7 +1870,8 @@ static void M_DrawCharSelectSprite(UINT8 num, INT16 x, INT16 y, boolean charflip
colormap = R_GetTranslationColormap(p->skin, color, GTC_MENUCACHE); colormap = R_GetTranslationColormap(p->skin, color, GTC_MENUCACHE);
M_DrawCharacterSprite(x, y, p->skin, SPR2_STIN, (charflip ? 1 : 7), ((p->mdepth == CSSTEP_READY) ? setup_animcounter : 0), 0, colormap); M_DrawCharacterSprite(x, y, p->skin, SPR2_STIN, (charflip ? 1 : 7), ((p->mdepth == CSSTEP_READY) ? setup_animcounter : 0),
p->mdepth == CSSTEP_ASKCHANGES ? V_TRANSLUCENT : 0, colormap);
} }
static void M_DrawCharSelectPreview(UINT8 num) static void M_DrawCharSelectPreview(UINT8 num)
@ -1888,7 +1889,7 @@ static void M_DrawCharSelectPreview(UINT8 num)
V_DrawScaledPatch(x, y+6, V_TRANSLUCENT, W_CachePatchName("PREVBACK", PU_CACHE)); V_DrawScaledPatch(x, y+6, V_TRANSLUCENT, W_CachePatchName("PREVBACK", PU_CACHE));
if (p->mdepth >= CSSTEP_CHARS) if (p->mdepth >= CSSTEP_CHARS || p->mdepth == CSSTEP_ASKCHANGES)
{ {
M_DrawCharSelectSprite(num, x+32, y+75, charflip); M_DrawCharSelectSprite(num, x+32, y+75, charflip);
M_DrawCharSelectCircle(p, x+32, y+64); M_DrawCharSelectCircle(p, x+32, y+64);
@ -1909,9 +1910,9 @@ static void M_DrawCharSelectPreview(UINT8 num)
V_DrawCenteredFileString(backx+26, y+2, 0, pr ? pr->profilename : "PLAYER"); V_DrawCenteredFileString(backx+26, y+2, 0, pr ? pr->profilename : "PLAYER");
} }
if (p->mdepth >= CSSTEP_FOLLOWER) if (p->mdepth >= CSSTEP_FOLLOWER || p->mdepth == CSSTEP_ASKCHANGES)
{ {
M_DrawFollowerSprite(x+32+((charflip ? 1 : -1)*16), y+75, -1, charflip, 0, 0, p); M_DrawFollowerSprite(x+32+((charflip ? 1 : -1)*16), y+75, -1, charflip, p->mdepth == CSSTEP_ASKCHANGES ? V_TRANSLUCENT : 0, NULL, p);
} }
if ((setup_animcounter/10) & 1) if ((setup_animcounter/10) & 1)

View file

@ -620,6 +620,7 @@ static boolean M_HandleCSelectProfile(setup_player_t *p, UINT8 num)
else else
{ {
p->mdepth = CSSTEP_ASKCHANGES; p->mdepth = CSSTEP_ASKCHANGES;
M_GetFollowerState(p);
} }
S_StartSound(NULL, sfx_s3k63); S_StartSound(NULL, sfx_s3k63);
@ -678,7 +679,6 @@ static void M_HandleCharAskChange(setup_player_t *p, UINT8 num)
if (!p->changeselect) if (!p->changeselect)
{ {
// no changes // no changes
M_GetFollowerState(p);
M_HandlePlayerFinalise(p); M_HandlePlayerFinalise(p);
} }
else else