diff --git a/src/hu_stuff.c b/src/hu_stuff.c index 16f688027..5118fb759 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -2733,7 +2733,7 @@ static void HU_DrawRankings(void) tab[i].name = NULL; tab[i].count = INT32_MAX; - if (!playeringame[i] || players[i].spectator) + if (!playeringame[i] || players[i].spectator || !players[i].mo) continue; numplayersingame++; @@ -2744,7 +2744,7 @@ static void HU_DrawRankings(void) UINT8 lowestposition = MAXPLAYERS; for (i = 0; i < MAXPLAYERS; i++) { - if (!playeringame[i] || players[i].spectator || completed[i]) + if (completed[i] || !playeringame[i] || players[i].spectator || !players[i].mo) continue; if (players[i].kartstuff[k_position] >= lowestposition) diff --git a/src/k_kart.c b/src/k_kart.c index f6ad03548..52d8f0ecf 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -6431,16 +6431,19 @@ static boolean K_drawKartPositionFaces(void) for (j = 0; j < numplayersingame; j++) { + UINT8 lowestposition = MAXPLAYERS; for (i = 0; i < MAXPLAYERS; i++) { if (completed[i] || !playeringame[i] || players[i].spectator || !players[i].mo) continue; - if (rankplayer[ranklines] < 0 || players[i].kartstuff[k_position] < players[rankplayer[ranklines]].kartstuff[k_position]) - { - rankplayer[ranklines] = i; - } + if (players[i].kartstuff[k_position] >= lowestposition) + continue; + + rankplayer[ranklines] = i; + lowestposition = players[i].kartstuff[k_position]; } + i = rankplayer[ranklines]; completed[i] = true;