mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 04:21:47 +00:00
Improve the Preview area for Challenges significantly.
- New Previews of random-per-session maps with an overlay for
- SECRET_ENCORE (Phantom Ruby)
- SECRET_TIMEATTACK and SECRET_BREAKTHECAPSULES (Lap center circle stopwatch)
- SECRET_HARDSPEED (Rocket Sneaker, a sneaky reference to the current MS webview)
- Fix the position of SECRET_MAP's map to match the above
- Add a grey background at the bottom to really bring the feng shui together
This commit is contained in:
parent
d5ab51fe38
commit
ac95f8b494
1 changed files with 85 additions and 3 deletions
|
|
@ -3940,8 +3940,8 @@ static void M_DrawReplayHutReplayInfo(menudemo_t *demoref)
|
||||||
{
|
{
|
||||||
static angle_t rubyfloattime = 0;
|
static angle_t rubyfloattime = 0;
|
||||||
const fixed_t rubyheight = FINESINE(rubyfloattime>>ANGLETOFINESHIFT);
|
const fixed_t rubyheight = FINESINE(rubyfloattime>>ANGLETOFINESHIFT);
|
||||||
V_DrawFixedPatch((x+40)<<FRACBITS, ((y+50)<<FRACBITS) - (rubyheight<<1), FRACUNIT, V_SNAPTOTOP, W_CachePatchName("RUBYICON", PU_CACHE), NULL);
|
V_DrawFixedPatch((x+40)<<FRACBITS, ((y+25)<<FRACBITS) - (rubyheight<<1), FRACUNIT, V_SNAPTOTOP, W_CachePatchName("RUBYICON", PU_CACHE), NULL);
|
||||||
rubyfloattime += (ANGLE_MAX/NEWTICRATE);
|
rubyfloattime += FixedMul(ANGLE_MAX/NEWTICRATE, renderdeltatics);
|
||||||
}
|
}
|
||||||
|
|
||||||
x += 85;
|
x += 85;
|
||||||
|
|
@ -4575,9 +4575,11 @@ static void M_DrawChallengePreview(INT32 x, INT32 y)
|
||||||
{
|
{
|
||||||
unlockable_t *ref = NULL;
|
unlockable_t *ref = NULL;
|
||||||
UINT8 *colormap = NULL;
|
UINT8 *colormap = NULL;
|
||||||
|
UINT16 specialmap = NEXTMAP_INVALID;
|
||||||
|
|
||||||
if (challengesmenu.currentunlock >= MAXUNLOCKABLES)
|
if (challengesmenu.currentunlock >= MAXUNLOCKABLES)
|
||||||
{
|
{
|
||||||
|
V_DrawFill(0, 146, BASEVIDWIDTH, 54, challengesbordercolor);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4587,9 +4589,13 @@ static void M_DrawChallengePreview(INT32 x, INT32 y)
|
||||||
if (!gamedata->unlocked[challengesmenu.currentunlock])
|
if (!gamedata->unlocked[challengesmenu.currentunlock])
|
||||||
{
|
{
|
||||||
// todo draw some sort of question mark?
|
// todo draw some sort of question mark?
|
||||||
|
V_DrawFill(0, 146, BASEVIDWIDTH, 54, challengesbordercolor);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ref->type != SECRET_CUP)
|
||||||
|
V_DrawFill(0, 146, BASEVIDWIDTH, 54, challengesbordercolor);
|
||||||
|
|
||||||
switch (ref->type)
|
switch (ref->type)
|
||||||
{
|
{
|
||||||
case SECRET_SKIN:
|
case SECRET_SKIN:
|
||||||
|
|
@ -4652,18 +4658,94 @@ static void M_DrawChallengePreview(INT32 x, INT32 y)
|
||||||
{
|
{
|
||||||
UINT16 mapnum = M_UnlockableMapNum(ref);
|
UINT16 mapnum = M_UnlockableMapNum(ref);
|
||||||
K_DrawMapThumbnail(
|
K_DrawMapThumbnail(
|
||||||
(x-30)<<FRACBITS, (y)<<FRACBITS,
|
(x-30)<<FRACBITS, (146+2)<<FRACBITS,
|
||||||
60<<FRACBITS,
|
60<<FRACBITS,
|
||||||
0,
|
0,
|
||||||
mapnum,
|
mapnum,
|
||||||
NULL);
|
NULL);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case SECRET_ENCORE:
|
||||||
|
{
|
||||||
|
static UINT16 encoremapcache = NEXTMAP_INVALID;
|
||||||
|
if (encoremapcache > nummapheaders)
|
||||||
|
{
|
||||||
|
encoremapcache = G_RandMap(G_TOLFlag(GT_RACE), -1, 2, 0, false, NULL);
|
||||||
|
}
|
||||||
|
specialmap = encoremapcache;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SECRET_TIMEATTACK:
|
||||||
|
{
|
||||||
|
static UINT16 tamapcache = NEXTMAP_INVALID;
|
||||||
|
if (tamapcache > nummapheaders)
|
||||||
|
{
|
||||||
|
tamapcache = G_RandMap(G_TOLFlag(GT_RACE), -1, 2, 0, false, NULL);
|
||||||
|
}
|
||||||
|
specialmap = tamapcache;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SECRET_BREAKTHECAPSULES:
|
||||||
|
{
|
||||||
|
static UINT16 btcmapcache = NEXTMAP_INVALID;
|
||||||
|
if (btcmapcache > nummapheaders)
|
||||||
|
{
|
||||||
|
btcmapcache = G_RandMap(G_TOLFlag(GT_BATTLE), -1, 2, 0, false, NULL);
|
||||||
|
}
|
||||||
|
specialmap = btcmapcache;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SECRET_HARDSPEED:
|
||||||
|
{
|
||||||
|
static UINT16 hardmapcache = NEXTMAP_INVALID;
|
||||||
|
if (hardmapcache > nummapheaders)
|
||||||
|
{
|
||||||
|
hardmapcache = G_RandMap(G_TOLFlag(GT_RACE), -1, 2, 0, false, NULL);
|
||||||
|
}
|
||||||
|
specialmap = hardmapcache;
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (specialmap == NEXTMAP_INVALID || !ref)
|
||||||
|
return;
|
||||||
|
|
||||||
|
x -= 50;
|
||||||
|
y = 146+2;
|
||||||
|
|
||||||
|
K_DrawMapThumbnail(
|
||||||
|
(x)<<FRACBITS, (y)<<FRACBITS,
|
||||||
|
80<<FRACBITS,
|
||||||
|
(ref->type == SECRET_ENCORE) ? V_FLIP : 0,
|
||||||
|
specialmap,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
if (ref->type == SECRET_ENCORE)
|
||||||
|
{
|
||||||
|
static angle_t rubyfloattime = 0;
|
||||||
|
const fixed_t rubyheight = FINESINE(rubyfloattime>>ANGLETOFINESHIFT);
|
||||||
|
V_DrawFixedPatch((x+40)<<FRACBITS, ((y+25)<<FRACBITS) - (rubyheight<<1), FRACUNIT, 0, W_CachePatchName("RUBYICON", PU_CACHE), NULL);
|
||||||
|
rubyfloattime += FixedMul(ANGLE_MAX/NEWTICRATE, renderdeltatics);
|
||||||
|
}
|
||||||
|
else if (ref->type == SECRET_HARDSPEED)
|
||||||
|
{
|
||||||
|
V_DrawFixedPatch((x+40-25)<<FRACBITS, ((y+25-25)<<FRACBITS),
|
||||||
|
FRACUNIT, 0,
|
||||||
|
W_CachePatchName(K_GetItemPatch(KITEM_ROCKETSNEAKER, false), PU_CACHE),
|
||||||
|
NULL);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
colormap = R_GetTranslationColormap(TC_DEFAULT, cv_playercolor[0].value, GTC_MENUCACHE);
|
||||||
|
V_DrawFixedPatch((x+40)<<FRACBITS, ((y+25)<<FRACBITS),
|
||||||
|
FRACUNIT/2, 0,
|
||||||
|
W_CachePatchName("K_LAPE02", PU_CACHE),
|
||||||
|
colormap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void M_DrawChallenges(void)
|
void M_DrawChallenges(void)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue