Merge branch 'invalid-rings' into 'master'

Rings should ALWAYS be reset to map start's value on true death

See merge request KartKrew/Kart!2191
This commit is contained in:
Oni 2024-03-31 05:52:44 +00:00
commit ce2ace87f3
2 changed files with 18 additions and 20 deletions

View file

@ -2249,6 +2249,24 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps)
memcpy(&public_key, &players[player].public_key, sizeof(public_key)); memcpy(&public_key, &players[player].public_key, sizeof(public_key));
// "Real death should always bring you back to the map starting count for rings" - :japanese_ogre:
if (gametyperules & GTR_SPHERES)
{
rings = 0;
}
else if (G_TimeAttackStart())
{
rings = 20;
}
else if (gametyperules & GTR_CATCHER)
{
rings = 20;
}
else
{
rings = 5;
}
if (betweenmaps || leveltime < introtime) if (betweenmaps || leveltime < introtime)
{ {
K_StopRoulette(&itemRoulette); K_StopRoulette(&itemRoulette);
@ -2256,22 +2274,6 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps)
itemtype = 0; itemtype = 0;
itemamount = 0; itemamount = 0;
growshrinktimer = 0; growshrinktimer = 0;
if (gametyperules & GTR_SPHERES)
{
rings = 0;
}
else if (G_TimeAttackStart())
{
rings = 20;
}
else if (gametyperules & GTR_CATCHER)
{
rings = 20;
}
else
{
rings = 5;
}
spheres = 0; spheres = 0;
kickstartaccel = 0; kickstartaccel = 0;
khudfault = 0; khudfault = 0;
@ -2308,7 +2310,6 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps)
else else
growshrinktimer = 0; growshrinktimer = 0;
rings = players[player].rings;
spheres = players[player].spheres; spheres = players[player].spheres;
kickstartaccel = players[player].kickstartaccel; kickstartaccel = players[player].kickstartaccel;

View file

@ -4425,9 +4425,6 @@ void P_PlayerThink(player_t *player)
{ {
// Allows some turning // Allows some turning
P_MovePlayer(player); P_MovePlayer(player);
if (player->rings <= -20) // We got here from death, so give the player a fresh start.
player->rings = 5;
} }
} }
else if (player->mo->reactiontime) else if (player->mo->reactiontime)