mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-02-17 11:06:30 +00:00
Character Select: Press R (drift) to toggle an "extra info" mode
- Hides "A PLAYER/A $profilename" text
- Shows extra info relevant text
- Early stages: "[EXTRAINFOMODE]"
- Grid select: Speed and weight
- Clone select/READY!!: Character name
- Color: Color name
- Follower category: Category name
- Follower: Follower name
- Follower color: Follower color name
- The hidden setup_page toggle feature now only uses L button
This commit is contained in:
parent
1ccde62f8a
commit
26ceb13672
3 changed files with 94 additions and 19 deletions
|
|
@ -650,6 +650,7 @@ struct setup_player_t
|
|||
UINT16 color;
|
||||
UINT8 mdepth;
|
||||
boolean hitlag;
|
||||
boolean showextra;
|
||||
|
||||
// Hack, save player 1's original device even if they init charsel with keyboard.
|
||||
// If they play ALONE, allow them to retain that original device, otherwise, ignore this.
|
||||
|
|
|
|||
|
|
@ -1366,16 +1366,19 @@ static void M_DrawCharSelectPreview(UINT8 num)
|
|||
M_DrawCharSelectCircle(p, x+32, y+64);
|
||||
}
|
||||
|
||||
V_DrawScaledPatch(x+9, y+2, 0, W_CachePatchName("FILEBACK", PU_CACHE));
|
||||
V_DrawScaledPatch(x, y+2, 0, W_CachePatchName(va("CHARSEL%c", letter), PU_CACHE));
|
||||
if (p->mdepth > CSSTEP_PROFILE)
|
||||
if (p->showextra == false)
|
||||
{
|
||||
profile_t *pr = PR_GetProfile(p->profilen);
|
||||
V_DrawCenteredFileString(x+16+18, y+2, 0, pr->profilename);
|
||||
}
|
||||
else
|
||||
{
|
||||
V_DrawFileString(x+16, y+2, 0, "PLAYER");
|
||||
V_DrawScaledPatch(x+9, y+2, 0, W_CachePatchName("FILEBACK", PU_CACHE));
|
||||
V_DrawScaledPatch(x, y+2, 0, W_CachePatchName(va("CHARSEL%c", letter), PU_CACHE));
|
||||
if (p->mdepth > CSSTEP_PROFILE)
|
||||
{
|
||||
profile_t *pr = PR_GetProfile(p->profilen);
|
||||
V_DrawCenteredFileString(x+16+18, y+2, 0, pr->profilename);
|
||||
}
|
||||
else
|
||||
{
|
||||
V_DrawFileString(x+16, y+2, 0, "PLAYER");
|
||||
}
|
||||
}
|
||||
|
||||
if (p->mdepth >= CSSTEP_FOLLOWER)
|
||||
|
|
@ -1474,6 +1477,82 @@ static void M_DrawCharSelectPreview(UINT8 num)
|
|||
V_DrawThinString(xpos+16, cy, (p->changeselect == i ? highlightflags : 0)|V_6WIDTHSPACE, choices[i]);
|
||||
}
|
||||
}
|
||||
|
||||
if (p->showextra == true)
|
||||
{
|
||||
switch (p->mdepth)
|
||||
{
|
||||
case CSSTEP_CHARS: // Character Select grid
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE, va("Speed %u - Weight %u", p->gridx+1, p->gridy+1));
|
||||
break;
|
||||
case CSSTEP_ALTS: // Select clone
|
||||
case CSSTEP_READY:
|
||||
if (p->clonenum < setup_chargrid[p->gridx][p->gridy].numskins
|
||||
&& setup_chargrid[p->gridx][p->gridy].skinlist[p->clonenum] < numskins)
|
||||
{
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE,
|
||||
skins[setup_chargrid[p->gridx][p->gridy].skinlist[p->clonenum]].name);
|
||||
}
|
||||
else
|
||||
{
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE, va("BAD CLONENUM %u", p->clonenum));
|
||||
}
|
||||
break;
|
||||
case CSSTEP_COLORS: // Select color
|
||||
if (p->color < numskincolors)
|
||||
{
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE, skincolors[p->color].name);
|
||||
}
|
||||
else
|
||||
{
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE, va("BAD COLOR %u", p->color));
|
||||
}
|
||||
break;
|
||||
case CSSTEP_FOLLOWERCATEGORY:
|
||||
if (p->followercategory == -1)
|
||||
{
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE, "None");
|
||||
}
|
||||
else
|
||||
{
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE,
|
||||
followercategories[setup_followercategories[p->followercategory][1]].name);
|
||||
}
|
||||
break;
|
||||
case CSSTEP_FOLLOWER:
|
||||
if (p->followern == -1)
|
||||
{
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE, "None");
|
||||
}
|
||||
else
|
||||
{
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE,
|
||||
followers[p->followern].name);
|
||||
}
|
||||
break;
|
||||
case CSSTEP_FOLLOWERCOLORS:
|
||||
if (p->followercolor == FOLLOWERCOLOR_MATCH)
|
||||
{
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE, "Match");
|
||||
}
|
||||
else if (p->followercolor == FOLLOWERCOLOR_OPPOSITE)
|
||||
{
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE, "Opposite");
|
||||
}
|
||||
else if (p->followercolor < numskincolors)
|
||||
{
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE, skincolors[p->followercolor].name);
|
||||
}
|
||||
else
|
||||
{
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE, va("BAD FOLLOWERCOLOR %u", p->followercolor));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
V_DrawThinString(x-3, y+2, V_6WIDTHSPACE, "[extrainfo mode]");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void M_DrawCharSelectExplosions(boolean charsel, INT16 basex, INT16 basey)
|
||||
|
|
|
|||
|
|
@ -905,16 +905,6 @@ static boolean M_HandleCharacterGrid(setup_player_t *p, UINT8 num)
|
|||
if (num == 0 && setup_numplayers == 1 && setup_maxpage && !forceskin) // ONLY one player.
|
||||
{
|
||||
if (M_MenuButtonPressed(num, MBT_L))
|
||||
{
|
||||
if (setup_page == 0)
|
||||
setup_page = setup_maxpage;
|
||||
else
|
||||
setup_page--;
|
||||
|
||||
S_StartSound(NULL, sfx_s3k63);
|
||||
M_SetMenuDelay(num);
|
||||
}
|
||||
else if (M_MenuButtonPressed(num, MBT_R))
|
||||
{
|
||||
if (setup_page == setup_maxpage)
|
||||
setup_page = 0;
|
||||
|
|
@ -1295,6 +1285,11 @@ boolean M_CharacterSelectHandler(INT32 choice)
|
|||
if (i > 0 && setup_player[i-1].mdepth < CSSTEP_READY)
|
||||
continue;
|
||||
}
|
||||
|
||||
if (M_MenuButtonPressed(i, MBT_R))
|
||||
{
|
||||
p->showextra ^= true;
|
||||
}
|
||||
}
|
||||
|
||||
switch (p->mdepth)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue