diff --git a/src/k_collide.cpp b/src/k_collide.cpp index 0392e0133..fe3d0981b 100644 --- a/src/k_collide.cpp +++ b/src/k_collide.cpp @@ -1121,6 +1121,9 @@ boolean K_KitchenSinkCollide(mobj_t *t1, mobj_t *t2) S_StartSound(NULL, sfx_bsnipe); // let all players hear it. + if (t1->target && !P_MobjWasRemoved(t1->target) && t1->target->player) + K_SpawnAmps(t1->target->player, 50, t2); + HU_SetCEchoFlags(0); HU_SetCEchoDuration(5); HU_DoCEcho(va("%s\\was hit by a kitchen sink.\\\\\\\\", player_names[t2->player-players])); diff --git a/src/k_kart.c b/src/k_kart.c index f90c99ac6..8a1a5e912 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -4253,6 +4253,9 @@ void K_SpawnAmps(player_t *player, UINT8 amps, mobj_t *impact) if (amps == 0) return; + if (!player->mo && P_MobjWasRemoved(player->mo)) + return; + UINT32 itemdistance = min(FRACUNIT-1, K_GetItemRouletteDistance(player, D_NumPlayersInRace())); // cap this to FRACUNIT-1, so it doesn't wrap when turning it into fixed_t fixed_t itemdistmult = FRACUNIT + min(FRACUNIT, (itemdistance<kartspeed) - (9-player->kartweight)) / 10);