Fix end-of-race standings

This commit is contained in:
TehRealSalt 2019-10-15 23:37:20 -04:00
parent 52624cb6de
commit c91986cc97

View file

@ -6035,6 +6035,14 @@ void K_KartUpdatePosition(player_t *player)
continue;
if (G_RaceGametype())
{
if (player->exiting) // End of match standings
{
// Only time matters
if (players[i].realtime < player->realtime)
position++;
}
else
{
// I'm a lap behind this player OR
// My distance to the finish line is higher, so I'm behind
@ -6044,18 +6052,21 @@ void K_KartUpdatePosition(player_t *player)
position++;
}
}
}
else if (G_BattleGametype())
{
if (player->exiting) // End of match standings
{
if (players[i].marescore > player->marescore) // Only score matters
// Only score matters
if (players[i].marescore > player->marescore)
position++;
}
else
{
if (players[i].kartstuff[k_bumper] == player->kartstuff[k_bumper] && players[i].marescore > player->marescore)
position++;
else if (players[i].kartstuff[k_bumper] > player->kartstuff[k_bumper])
// I have less points than but the same bumpers as this player OR
// I have less bumpers than this player
if ((players[i].kartstuff[k_bumper] == player->kartstuff[k_bumper] && players[i].marescore > player->marescore)
|| (players[i].kartstuff[k_bumper] > player->kartstuff[k_bumper]))
position++;
}
}