fix SPB weirdo distances

This commit is contained in:
TehRealSalt 2019-10-16 00:12:03 -04:00
parent c91986cc97
commit a94601a793

View file

@ -848,9 +848,7 @@ static INT32 K_KartGetItemOdds(UINT8 pos, SINT8 item, fixed_t mashed, boolean sp
if (first != -1 && second != -1) // calculate 2nd's distance from 1st, for SPB if (first != -1 && second != -1) // calculate 2nd's distance from 1st, for SPB
{ {
secondist = P_AproxDistance(P_AproxDistance(players[first].mo->x - players[second].mo->x, secondist = players[second]->distancetofinish - players[first].distancetofinish;
players[first].mo->y - players[second].mo->y),
players[first].mo->z - players[second].mo->z) / mapobjectscale;
if (franticitems) if (franticitems)
secondist = (15 * secondist) / 14; secondist = (15 * secondist) / 14;
secondist = ((28 + (8-pingame)) * secondist) / 28; secondist = ((28 + (8-pingame)) * secondist) / 28;
@ -1088,7 +1086,8 @@ static void K_KartItemRoulette(player_t *player, ticcmd_t *cmd)
for (i = 0; i < MAXPLAYERS; i++) for (i = 0; i < MAXPLAYERS; i++)
{ {
if (players[i].kartstuff[k_position] == 1) if (playeringame[i] && !players[i].spectator
&& players[i].kartstuff[k_position] == 1)
{ {
// This player is first! Yay! // This player is first! Yay!
pdis = player->distancetofinish - players[i].distancetofinish; pdis = player->distancetofinish - players[i].distancetofinish;
@ -9979,13 +9978,13 @@ static void K_drawDistributionDebugger(void)
// lovely double loop...... // lovely double loop......
for (i = 0; i < MAXPLAYERS; i++) for (i = 0; i < MAXPLAYERS; i++)
{ {
if (playeringame[i] && !players[i].spectator && players[i].mo if (playeringame[i] && !players[i].spectator
&& players[i].kartstuff[k_position] < stplyr->kartstuff[k_position]) && players[i].kartstuff[k_position] == 1)
pdis += P_AproxDistance(P_AproxDistance(players[i].mo->x - stplyr->mo->x, {
players[i].mo->y - stplyr->mo->y), // This player is first! Yay!
players[i].mo->z - stplyr->mo->z) / mapobjectscale pdis = stplyr->distancetofinish - players[i].distancetofinish;
* (pingame - players[i].kartstuff[k_position]) break;
/ max(1, ((pingame - 1) * (pingame + 1) / 3)); }
} }
if (franticitems) // Frantic items make the distances between everyone artifically higher, for crazier items if (franticitems) // Frantic items make the distances between everyone artifically higher, for crazier items