From e1d5233dbac2689e3e438966218ad9beeb339767 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Fri, 19 Apr 2019 20:50:50 -0400 Subject: [PATCH] Update spawn positions in Race to use power levels --- src/g_game.c | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index 57bc1829e..cd388b8bd 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2839,11 +2839,16 @@ mapthing_t *G_FindRaceStart(INT32 playernum) { UINT8 i; UINT8 pos = 0; + boolean usepowerlvl = false; // SRB2Kart: figure out player spawn pos from points if (!playeringame[playernum] || players[playernum].spectator) return playerstarts[0]; // go to first spot if you're a spectator + // Setup power level type + if (netgame) + usepowerlvl = true; + for (i = 0; i < MAXPLAYERS; i++) { if (!playeringame[i] || players[i].spectator) @@ -2864,8 +2869,17 @@ mapthing_t *G_FindRaceStart(INT32 playernum) continue; if (j == i) continue; - if (players[j].score == players[i].score) - num++; + + if (usepowerlvl) + { + if (clientpowerlevels[j][0] == clientpowerlevels[i][0]) + num++; + } + else + { + if (players[j].score == players[i].score) + num++; + } } if (num > 1) // found dupes @@ -2873,8 +2887,21 @@ mapthing_t *G_FindRaceStart(INT32 playernum) } else { - if (players[i].score > players[playernum].score || i < playernum) + if (i < playernum) pos++; + else + { + if (usepowerlvl) + { + if (clientpowerlevels[i][0] > clientpowerlevels[playernum][0]) + pos++; + } + else + { + if (players[i].score > players[playernum].score) + pos++; + } + } } }