mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-12-24 08:52:33 +00:00
Merge branch 'intermission-grade' into 'master'
Show rank on intermission See merge request KartKrew/Kart!1689
This commit is contained in:
commit
d68b5e7e10
4 changed files with 46 additions and 7 deletions
|
|
@ -170,6 +170,7 @@ struct recorddata_t
|
|||
|
||||
typedef enum
|
||||
{
|
||||
GRADE_INVALID = -1,
|
||||
GRADE_E,
|
||||
GRADE_D,
|
||||
GRADE_C,
|
||||
|
|
|
|||
|
|
@ -311,7 +311,7 @@ void level_tally_t::Init(player_t *player)
|
|||
points = pointLimit = 0;
|
||||
powerStones = 0;
|
||||
|
||||
rank = GRADE_E;
|
||||
rank = GRADE_INVALID;
|
||||
|
||||
if (player->spectator == false && player->bot == false && game_over == false)
|
||||
{
|
||||
|
|
@ -475,19 +475,27 @@ void level_tally_t::Init(player_t *player)
|
|||
header[sizeof header - 1] = '\0';
|
||||
|
||||
// Only show grade if there were any bonuses
|
||||
showGrade = (position > 0);
|
||||
if (showGrade == false)
|
||||
if (rank != GRADE_INVALID)
|
||||
{
|
||||
for (int i = 0; i < TALLY_WINDOW_SIZE; i++)
|
||||
showGrade = (position > 0);
|
||||
if (showGrade == false)
|
||||
{
|
||||
if (bonuses[i] != TALLY_BONUS_NA)
|
||||
for (int i = 0; i < TALLY_WINDOW_SIZE; i++)
|
||||
{
|
||||
showGrade = true;
|
||||
break;
|
||||
if (bonuses[i] != TALLY_BONUS_NA)
|
||||
{
|
||||
showGrade = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (showGrade == false)
|
||||
{
|
||||
rank = GRADE_INVALID;
|
||||
}
|
||||
|
||||
lineCount = 0;
|
||||
for (int i = 0; i < TALLY_WINDOW_SIZE; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -171,6 +171,7 @@ static void Y_CalculateMatchData(UINT8 rankingsmode, void (*comparison)(INT32))
|
|||
for (i = 0; i < MAXPLAYERS; i++)
|
||||
{
|
||||
data.val[i] = UINT32_MAX;
|
||||
data.grade[i] = GRADE_INVALID;
|
||||
|
||||
if (!playeringame[i] || players[i].spectator)
|
||||
{
|
||||
|
|
@ -205,6 +206,7 @@ static void Y_CalculateMatchData(UINT8 rankingsmode, void (*comparison)(INT32))
|
|||
i = data.num[data.numplayers];
|
||||
|
||||
completed[i] = true;
|
||||
data.grade[i] = players[i].tally.rank;
|
||||
|
||||
data.color[data.numplayers] = players[i].skincolor;
|
||||
data.character[data.numplayers] = players[i].skin;
|
||||
|
|
@ -736,7 +738,33 @@ void Y_PlayerStandingsDrawer(y_data_t *standings, INT32 xoffset)
|
|||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (standings->grade[pnum] != GRADE_INVALID)
|
||||
{
|
||||
patch_t *gradePtc = W_CachePatchName(va("R_INRNK%c", K_GetGradeChar(standings->grade[pnum])), PU_PATCH);
|
||||
patch_t *gradeBG = NULL;
|
||||
|
||||
UINT16 gradeColor = SKINCOLOR_NONE;
|
||||
UINT8 *gradeClm = NULL;
|
||||
|
||||
gradeColor = K_GetGradeColor(standings->grade[pnum]);
|
||||
if (gradeColor != SKINCOLOR_NONE)
|
||||
{
|
||||
gradeClm = R_GetTranslationColormap(TC_DEFAULT, gradeColor, GTC_CACHE);
|
||||
}
|
||||
|
||||
if (datarightofcolumn)
|
||||
{
|
||||
gradeBG = W_CachePatchName("R_INRNKR", PU_PATCH);
|
||||
V_DrawMappedPatch(x + 118, y, 0, gradeBG, gradeClm);
|
||||
V_DrawMappedPatch(x + 118 + 4, y - 1, 0, gradePtc, gradeClm);
|
||||
}
|
||||
else
|
||||
{
|
||||
gradeBG = W_CachePatchName("R_INRNKL", PU_PATCH);
|
||||
V_DrawMappedPatch(x - 12, y, 0, gradeBG, gradeClm);
|
||||
V_DrawMappedPatch(x - 12 + 3, y - 1, 0, gradePtc, gradeClm);
|
||||
}
|
||||
}
|
||||
|
||||
// Reverse the jitter offset
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@ typedef struct
|
|||
INT16 increase[MAXPLAYERS]; // how much did the score increase by?
|
||||
UINT8 jitter[MAXPLAYERS]; // wiggle
|
||||
|
||||
SINT8 grade[MAXPLAYERS]; // grade, if not a bot
|
||||
|
||||
UINT8 mainplayer; // Most successful local player
|
||||
INT32 linemeter; // For GP only
|
||||
} y_data_t;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue