diff --git a/src/k_kart.c b/src/k_kart.c index 32982cd2b..ae3dade94 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -4170,22 +4170,14 @@ void K_HandleBumperChanges(player_t *player, UINT8 prevBumpers) } else if (player->bumpers == 0 && prevBumpers > 0) { - mobj_t *karmahitbox = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_KARMAHITBOX); - P_SetTarget(&karmahitbox->target, player->mo); - - karmahitbox->destscale = player->mo->destscale; - P_SetScale(karmahitbox, player->mo->scale); - - player->karmadelay = comebacktime; - if (battlecapsules || bossinfo.valid) { player->pflags |= (PF_NOCONTEST|PF_ELIMINATED); P_DamageMobj(player->mo, NULL, NULL, 1, DMG_TIMEOVER); } - else if (netgame) + else { - CONS_Printf(M_GetText("%s lost all of their bumpers!\n"), player_names[player-players]); + P_KillMobj(player->mo, NULL, NULL, DMG_NORMAL); } } diff --git a/src/p_inter.c b/src/p_inter.c index 84f88b022..6cae648bd 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -1170,8 +1170,15 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget } if (gametyperules & GTR_BUMPERS) + { K_CheckBumpers(); + if (target->player->roundscore > 1) + target->player->roundscore -= 2; + else + target->player->roundscore = 0; + } + target->player->trickpanel = 0; } diff --git a/src/p_mobj.c b/src/p_mobj.c index e04fe01c5..795af53d8 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -11819,10 +11819,8 @@ void P_SpawnPlayer(INT32 playernum) } else if (p->bumpers <= 0) { - mobj_t *karmahitbox = P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_KARMAHITBOX); // Player hitbox is too small!! - P_SetTarget(&karmahitbox->target, mobj); - karmahitbox->destscale = mobj->scale; - P_SetScale(karmahitbox, mobj->scale); + p->bumpers = K_StartingBumperCount(); + K_SpawnPlayerBattleBumpers(p); } } }