mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
M_CheckLevelEmblems: Support tagging ET_TIME emblems
An ET_TIME emblem with a nonzero tag is directly bound to a staff ghost's finish time. This will make late development medal implementation signifcantly easier.
This commit is contained in:
parent
2d54acae30
commit
42969d8d15
2 changed files with 29 additions and 6 deletions
20
src/k_hud.c
20
src/k_hud.c
|
|
@ -1578,6 +1578,15 @@ void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT16 emblemmap, UI
|
||||||
goto bademblem;
|
goto bademblem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (emblem->tag > 0)
|
||||||
|
{
|
||||||
|
if (emblem->tag > mapheaderinfo[emblemmap-1]->ghostCount
|
||||||
|
|| mapheaderinfo[emblemmap-1]->ghostBrief[emblem->tag-1] == NULL)
|
||||||
|
goto bademblem;
|
||||||
|
|
||||||
|
timetoreach = mapheaderinfo[emblemmap-1]->ghostBrief[emblem->tag-1]->time;
|
||||||
|
}
|
||||||
|
|
||||||
snprintf(targettext, 9, "%i'%02i\"%02i",
|
snprintf(targettext, 9, "%i'%02i\"%02i",
|
||||||
G_TicsToMinutes(timetoreach, false),
|
G_TicsToMinutes(timetoreach, false),
|
||||||
G_TicsToSeconds(timetoreach),
|
G_TicsToSeconds(timetoreach),
|
||||||
|
|
@ -1605,9 +1614,10 @@ void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT16 emblemmap, UI
|
||||||
goto bademblem;
|
goto bademblem;
|
||||||
}
|
}
|
||||||
|
|
||||||
V_DrawRightAlignedString(workx, worky, splitflags|V_6WIDTHSPACE, targettext);
|
workx -= V_ThinStringWidth(targettext, splitflags|V_6WIDTHSPACE);
|
||||||
workx -= 67;
|
V_DrawThinString(workx, worky, splitflags|V_6WIDTHSPACE, targettext);
|
||||||
V_DrawSmallScaledPatch(workx + 4, worky, splitflags, W_CachePatchName("NEEDIT", PU_CACHE));
|
workx -= 11;
|
||||||
|
V_DrawSmallScaledPatch(workx, worky, splitflags, W_CachePatchName("NEEDIT", PU_CACHE));
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -1619,8 +1629,8 @@ bademblem:
|
||||||
splitflags = (splitflags &~ V_HUDTRANSHALF)|V_HUDTRANS;
|
splitflags = (splitflags &~ V_HUDTRANSHALF)|V_HUDTRANS;
|
||||||
while (curemb--)
|
while (curemb--)
|
||||||
{
|
{
|
||||||
workx -= 12;
|
workx -= 11;
|
||||||
V_DrawSmallMappedPatch(workx + 4, worky, splitflags, emblempic[curemb], emblemcol[curemb]);
|
V_DrawSmallMappedPatch(workx, worky, splitflags, emblempic[curemb], emblemcol[curemb]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
15
src/m_cond.c
15
src/m_cond.c
|
|
@ -949,6 +949,7 @@ UINT8 M_CheckLevelEmblems(void)
|
||||||
{
|
{
|
||||||
INT32 i;
|
INT32 i;
|
||||||
INT32 valToReach;
|
INT32 valToReach;
|
||||||
|
INT16 tag;
|
||||||
INT16 levelnum;
|
INT16 levelnum;
|
||||||
UINT8 res;
|
UINT8 res;
|
||||||
UINT8 somethingUnlocked = 0;
|
UINT8 somethingUnlocked = 0;
|
||||||
|
|
@ -968,11 +969,23 @@ UINT8 M_CheckLevelEmblems(void)
|
||||||
|
|
||||||
levelnum = checkLevel;
|
levelnum = checkLevel;
|
||||||
valToReach = emblemlocations[i].var;
|
valToReach = emblemlocations[i].var;
|
||||||
|
tag = emblemlocations[i].tag;
|
||||||
|
|
||||||
switch (emblemlocations[i].type)
|
switch (emblemlocations[i].type)
|
||||||
{
|
{
|
||||||
case ET_TIME: // Requires time on map <= x
|
case ET_TIME: // Requires time on map <= x
|
||||||
res = (G_GetBestTime(levelnum) <= (unsigned)valToReach);
|
if (tag > 0)
|
||||||
|
{
|
||||||
|
if (tag > mapheaderinfo[checkLevel]->ghostCount
|
||||||
|
|| mapheaderinfo[checkLevel]->ghostBrief[tag-1] == NULL)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
res = (G_GetBestTime(levelnum) <= mapheaderinfo[checkLevel]->ghostBrief[tag-1]->time);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
res = (G_GetBestTime(levelnum) <= (unsigned)valToReach);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default: // unreachable but shuts the compiler up.
|
default: // unreachable but shuts the compiler up.
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue