mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 12:31:54 +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;
|
UINT16 color;
|
||||||
UINT8 mdepth;
|
UINT8 mdepth;
|
||||||
boolean hitlag;
|
boolean hitlag;
|
||||||
|
boolean showextra;
|
||||||
|
|
||||||
// Hack, save player 1's original device even if they init charsel with keyboard.
|
// 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.
|
// 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);
|
M_DrawCharSelectCircle(p, x+32, y+64);
|
||||||
}
|
}
|
||||||
|
|
||||||
V_DrawScaledPatch(x+9, y+2, 0, W_CachePatchName("FILEBACK", PU_CACHE));
|
if (p->showextra == false)
|
||||||
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_DrawScaledPatch(x+9, y+2, 0, W_CachePatchName("FILEBACK", PU_CACHE));
|
||||||
V_DrawCenteredFileString(x+16+18, y+2, 0, pr->profilename);
|
V_DrawScaledPatch(x, y+2, 0, W_CachePatchName(va("CHARSEL%c", letter), PU_CACHE));
|
||||||
}
|
if (p->mdepth > CSSTEP_PROFILE)
|
||||||
else
|
{
|
||||||
{
|
profile_t *pr = PR_GetProfile(p->profilen);
|
||||||
V_DrawFileString(x+16, y+2, 0, "PLAYER");
|
V_DrawCenteredFileString(x+16+18, y+2, 0, pr->profilename);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
V_DrawFileString(x+16, y+2, 0, "PLAYER");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p->mdepth >= CSSTEP_FOLLOWER)
|
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]);
|
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)
|
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 (num == 0 && setup_numplayers == 1 && setup_maxpage && !forceskin) // ONLY one player.
|
||||||
{
|
{
|
||||||
if (M_MenuButtonPressed(num, MBT_L))
|
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)
|
if (setup_page == setup_maxpage)
|
||||||
setup_page = 0;
|
setup_page = 0;
|
||||||
|
|
@ -1295,6 +1285,11 @@ boolean M_CharacterSelectHandler(INT32 choice)
|
||||||
if (i > 0 && setup_player[i-1].mdepth < CSSTEP_READY)
|
if (i > 0 && setup_player[i-1].mdepth < CSSTEP_READY)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (M_MenuButtonPressed(i, MBT_R))
|
||||||
|
{
|
||||||
|
p->showextra ^= true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (p->mdepth)
|
switch (p->mdepth)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue