diff --git a/src/k_grandprix.cpp b/src/k_grandprix.cpp index f994f786c..6572af6af 100644 --- a/src/k_grandprix.cpp +++ b/src/k_grandprix.cpp @@ -60,7 +60,7 @@ INT16 K_CalculateGPRankPoints(UINT16 exp, UINT8 position, UINT8 numplayers) { INT16 points; - if (position >= numplayers || position == 0) + if (position > numplayers || position == 0) { // Invalid position, no points return 0; diff --git a/src/p_user.c b/src/p_user.c index d95a3b0fc..0ce7d3775 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -3988,6 +3988,18 @@ void P_DoTimeOver(player_t *player) CON_LogMessage(va(M_GetText("%s ran out of time.\n"), player_names[player-players])); } + // actually, lets not do the below, because its a suitable penalty to not be granted the increase from remaining gradingpoints + + // iterate through remaining gradingpoints and update gradingfactor and exp for current position, as if you crossed all of them + // const UINT32 numgradingpoints = K_GetNumGradingPoints(); + // const UINT32 remaininggradingpoints = numgradingpoints - player->gradingpointnum; + // for (UINT32 i = 0; i < remaininggradingpoints; i++) + // { + // player->gradingfactor += K_GetGradingFactorAdjustment(player, player->gradingpointnum); + // player->gradingpointnum++; + // player->exp = K_GetEXP(player); + // } + player->pflags |= PF_NOCONTEST; K_UpdatePowerLevelsFinalize(player, false); diff --git a/src/y_inter.cpp b/src/y_inter.cpp index 00752ce83..cceb14a7e 100644 --- a/src/y_inter.cpp +++ b/src/y_inter.cpp @@ -295,8 +295,7 @@ static void Y_CalculateMatchData(UINT8 rankingsmode, void (*comparison)(INT32)) { UINT8 pointgetters = numplayersingame + spectateGriefed; - if (data.pos[data.numplayers] < pointgetters - && !(players[i].pflags & PF_NOCONTEST)) + if (data.pos[data.numplayers] <= pointgetters) { data.increase[i] = K_CalculateGPRankPoints((&players[i])->exp, data.pos[data.numplayers], pointgetters);