diff --git a/src/k_kart.c b/src/k_kart.c index b2e7c6d7e..cf1fb5a20 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -9292,6 +9292,9 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) player->flashing = K_GetKartFlashing(player); } + if (player->spinouttimer && player->respawn.state != RESPAWNST_NONE) + player->spinouttimer = 0; + if (player->spinouttimer) { if (((P_IsObjectOnGround(player->mo) diff --git a/src/p_inter.c b/src/p_inter.c index 09ac618c7..11f59d73a 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -2600,20 +2600,20 @@ static boolean P_KillPlayer(player_t *player, mobj_t *inflictor, mobj_t *source, player->roundconditions.checkthisframe = true; } - if (gametyperules & (GTR_BUMPERS|GTR_CHECKPOINTS)) + if ((player->pitblame > -1) && (player->pitblame < MAXPLAYERS) + && (playeringame[player->pitblame]) && (!players[player->pitblame].spectator) + && (players[player->pitblame].mo) && (!P_MobjWasRemoved(players[player->pitblame].mo))) { - if ((player->pitblame > -1) && (player->pitblame < MAXPLAYERS) - && (playeringame[player->pitblame]) && (!players[player->pitblame].spectator) - && (players[player->pitblame].mo) && (!P_MobjWasRemoved(players[player->pitblame].mo))) - { + if (gametyperules & (GTR_BUMPERS|GTR_CHECKPOINTS)) P_DamageMobj(player->mo, players[player->pitblame].mo, players[player->pitblame].mo, 1, DMG_KARMA); - player->pitblame = -1; - } - else if (player->mo->health > 1 || K_Cooperative()) - { + else + K_SpawnAmps(&players[player->pitblame], 20, player->mo); + player->pitblame = -1; + } + else if (player->mo->health > 1 || K_Cooperative()) + { + if (gametyperules & (GTR_BUMPERS|GTR_CHECKPOINTS)) player->mo->health--; - } - } if (modeattacking & ATTACKING_SPB)