diff --git a/src/g_game.c b/src/g_game.c index 03e286d80..8fa6ebf4e 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -2249,6 +2249,24 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) 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) { K_StopRoulette(&itemRoulette); @@ -2256,22 +2274,6 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) itemtype = 0; itemamount = 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; kickstartaccel = 0; khudfault = 0; @@ -2308,7 +2310,6 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) else growshrinktimer = 0; - rings = players[player].rings; spheres = players[player].spheres; kickstartaccel = players[player].kickstartaccel; diff --git a/src/p_user.c b/src/p_user.c index 1c55f0236..a8064ce6d 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -4425,9 +4425,6 @@ void P_PlayerThink(player_t *player) { // Allows some turning 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)