From 9d5a3f50c84dd50290dd851fee1d4f1bb01d5e80 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Sat, 1 Dec 2018 20:48:19 -0500 Subject: [PATCH] Fireworks carry momentum, UFOs spawn fireworks --- src/p_inter.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/p_inter.c b/src/p_inter.c index 93bca79ec..716ab0717 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -504,6 +504,9 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) for (i = 0; i < 5; i++) { mobj_t *firework = P_SpawnMobj(special->x, special->y, special->z, MT_KARMAFIREWORK); + firework->momx = (special->target->momx + toucher->momx) / 2; + firework->momy = (special->target->momy + toucher->momy) / 2; + firework->momz = (special->target->momz + toucher->momz) / 2; P_Thrust(firework, FixedAngle((72*i)<scale); P_SetObjectMomZ(firework, P_RandomRange(1,8)*special->scale, false); firework->color = special->target->color; @@ -638,6 +641,18 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) player->kartstuff[k_itemroulette] = 1; player->kartstuff[k_roulettetype] = 1; + // Karma fireworks + for (i = 0; i < 5; i++) + { + mobj_t *firework = P_SpawnMobj(special->x, special->y, special->z, MT_KARMAFIREWORK); + firework->momx = toucher->momx; + firework->momy = toucher->momy; + firework->momz = toucher->momz; + P_Thrust(firework, FixedAngle((72*i)<scale); + P_SetObjectMomZ(firework, P_RandomRange(1,8)*special->scale, false); + firework->color = special->target->color; + } + S_StartSound(toucher, sfx_cdfm73); // they don't make this sound in the original game but it's nice to have a "reward" for good play //special->momx = special->momy = special->momz = 0;