From 9dbc6771c01459936d02624b7ffaf9670ebd639a Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Sat, 28 Jun 2025 16:27:16 -0400 Subject: [PATCH] Award amps for kitchen sink --- src/k_collide.cpp | 3 +++ src/k_kart.c | 3 +++ 2 files changed, 6 insertions(+) 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 aec2533c1..7f51842eb 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);